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