DS1991L多密鑰iButton替代方案
本文引用地址:http://butianyuan.cn/article/156514.htm
DS1961S帶有SHA-1引擎的1K位保護EEPROM iButton
DS1961S的安全性比DS1991L高得多。DS1961S采用EEPROM,并支持1-Wire高速通信模式。與基于密碼的系統(tǒng)不同,該器件的安全功能基于所安裝的密鑰,而且永遠不會在存儲區(qū)之間傳輸(暴露信息)。密鑰可以是器件特定信息,如:利用主機密鑰、存儲器數(shù)據(jù)、注冊碼以及常數(shù)按照SHA-1算法計算得到密鑰。除密鑰外,所有保存在DS1961S的數(shù)據(jù)開放讀取權(quán)限。但是,進行寫操作時需要知道密鑰。需要進行數(shù)據(jù)加密,以防止公眾得到器件存儲的數(shù)據(jù)。這三款替代型號,包括DS1991L在內(nèi),DS1961S的成本最低。由于采用EEPROM,DS1961S可從1-Wire主機獲得供電電源。在接觸式操作環(huán)境下,器件的寫操作與NV SRAM器件相比,數(shù)據(jù)遭到破壞的風險略高一些。
在5V電源、采用2.2kΩ或更低上拉電阻的環(huán)境中,DS1961S 應(yīng)用中的1-Wire主機無需采取任何特殊的供電措施。如果上拉電壓低于5V,應(yīng)減小上拉電阻(最方便的方法,見應(yīng)用筆記4255:“為1-Wire器件的擴展功能供電”),或采用強上拉以便提供寫操作和器件運行SHA-1引擎所需的額外功率。DS1961S主機必須知道或能夠計算所需的密鑰,以便驗證DS1961S是系統(tǒng)合法用戶,從而可以更改EEPROM數(shù)據(jù)。與計算自身SHA-1 MAC碼(信息認證碼)不同,主機可使用帶EEPROM的DS2460 SHA-1協(xié)處理器。
使用DS1961S之前,必須先定義、安裝器件密鑰。經(jīng)過計算的密鑰其安全性要高于類似于加載密碼的固定密鑰(常數(shù))。其次,應(yīng)用所需的數(shù)據(jù)必須寫入器件。對于容量相對較小的存儲器,可選擇使用1-Wire文件系統(tǒng)。如果適用,可對單頁或所有存儲器頁以及密鑰進行寫保護,以防止使用過程中發(fā)生變化。也可以將其中一個存儲器頁置于EPROM仿真模式,該模式下對應(yīng)位只能從1變?yōu)?;該項功能在一些應(yīng)用中非常有用。初始設(shè)置完成后,DS1961S準備就緒可以進行現(xiàn)場操作,即訪問存儲器數(shù)據(jù)、改寫數(shù)據(jù)。
為將現(xiàn)有的DS1991L應(yīng)用升級到DS1961S,需要以下兩個改動:
- 修改應(yīng)用軟件,使其識別新器件并知道如何使用。
- 如果工作在低壓環(huán)境,必須通過軟件激活強上拉功能,以便為計算和安裝新密鑰、計算頁MAC和更新EEPROM提供所需的功率。
發(fā)送Copy Scratchpad命令之前,始終驗證暫存器。為保證在接觸式操作環(huán)境下可靠運行,強烈建議按照應(yīng)用筆記159中有關(guān)保證數(shù)據(jù)完整性的措施進行設(shè)計(參見上文)。有關(guān)SHA-1安全性的其它信息,請參考本文檔最后給出的應(yīng)用筆記列表。需要強調(diào)的是應(yīng)用筆記1820:“White Paper 1: SHA Devices Used in Small Cash Systems”中說明了DS1961S在電子支付應(yīng)用中作為令牌的使用情況。
DS1963S SHA iButton
DS1963S的安全性遠遠高于DS1991L。DS1963S采用NV SRAM,對存儲器頁和密鑰執(zhí)行寫操作計數(shù),并支持1-Wire高速通信模式。DS1963S和DS1961S類似,均采用密鑰進行認證;密鑰已安裝但永遠不會在存儲區(qū)之間傳輸(暴露信息)。器件支持8個密鑰,每個密鑰對應(yīng)兩個存儲器頁。這些密鑰可以是器件特定信息,如:利用主機密鑰、存儲器數(shù)據(jù)、注冊碼、存儲器頁號以及常數(shù)按照SHA-1算法計算得到的密鑰。除密鑰外,保存在DS1963S的數(shù)據(jù)可以開放讀取權(quán)限。為了防止公眾得到器件存儲的數(shù)據(jù),需要進行數(shù)據(jù)加密。DS1963S與DS1961S的不同之處在于:在不知道密鑰的情況下也可以更改DS1963S的數(shù)據(jù);器件的存儲器頁或密鑰不帶寫保護功能。DS1963S成本低于DS1977;如果四個或多個應(yīng)用共用一片DS1963S,每個應(yīng)用的成本低于其它幾款替代型號。由于采用NV SRAM,讀操作、寫操作以及SHA-1計算所需電源均由內(nèi)部電池提供。這一功能對寫操作非常有利。一旦接受Copy Scratchpad命令,即使器件斷開與主機的連接也不會影響數(shù)據(jù)傳送到存儲器頁或密鑰。
DS1963S的存儲器數(shù)據(jù)在無需知道密鑰的前提下即可進行修改。因此,必須保留部分器件提供的應(yīng)用數(shù)據(jù)空間,用于存儲“簽名”,以便驗證應(yīng)用數(shù)據(jù)的有效性。器件通過質(zhì)詢-響應(yīng)進行認證后,還要進行其它認證操作,利用存儲器頁的內(nèi)部密鑰進行驗證。簽名可以是20字節(jié)的SHA-1 MAC碼。密鑰用來計算簽名數(shù)據(jù),通常不存儲在DS1963S內(nèi);除器件認證密鑰外,主機必須知道簽名密鑰,以便驗證數(shù)據(jù)并產(chǎn)生將要寫入器件的驗證數(shù)據(jù)。與計算自身SHA-1 MAC不同,主機應(yīng)使用帶EEPROM的DS2460 SHA-1協(xié)處理器。在存儲舊數(shù)據(jù)的地址(例如,電子支付應(yīng)用中完成一次支付后),為防止回復(fù)攻擊,嵌入簽名的計算必須包含頁的寫操作計數(shù)值。
使用DS1963S之前,必須先定義、安裝器件認證密鑰。經(jīng)過計算的密鑰其安全性要高于類似于加載密碼的固定密鑰(常數(shù))。其次,應(yīng)將所需的數(shù)據(jù),包括用于數(shù)據(jù)認證的有效嵌入簽名,寫入器件。為允許多個應(yīng)用共用一個DS1963S,推薦使用1-Wire文件系統(tǒng)。初始化設(shè)置完成后,DS1963S就緒可以進行現(xiàn)場操作,即可訪問存儲器并更改數(shù)據(jù)。
為將現(xiàn)有的DS1991L應(yīng)用升級到DS1963S,需要對應(yīng)用軟件進行修改,以識別新型號、了解命令、識別相應(yīng)的數(shù)據(jù)頁(多頁)并可驗證器件及其存儲數(shù)據(jù)的有效性。典型情況下,應(yīng)用改變存儲區(qū)的數(shù)據(jù),需要計算并在新的數(shù)據(jù)頁嵌入有效簽名。發(fā)送Copy Scratchpad命令之前總是需要驗證暫存器。為保證在接觸式操作環(huán)境下可靠運行,建議按照應(yīng)用筆記159有關(guān)保證數(shù)據(jù)完整性的措施進行設(shè)計。有關(guān)SHA-1安全性的詳細信息,請參考本文檔最后給出的應(yīng)用筆記列表。需要強調(diào)的是應(yīng)用筆記1820中說明了DS1963S在電子支付應(yīng)用中作為令牌使用以及SHA-1協(xié)處理器的情況。
評論