DS1991L多密鑰iButton替代方案
摘要:DS1991L多密鑰iButton是由Maxim的6英寸晶圓廠生產(chǎn),該晶圓廠的生產(chǎn)工藝已過時,且不再使用。DS1991L所提供的密碼保護(hù)已不再是數(shù)據(jù)安全領(lǐng)域的新技術(shù)。Maxim已開發(fā)出安全級別高于DS1991L而且成本更低的替代方案。因此,為了降低舊設(shè)備升級到新的生產(chǎn)工藝時的開發(fā)成本,Maxim啟動了最后一次采購DS1991L的流程,并鼓勵所有DS1991L用戶在現(xiàn)有庫存用完之前,將產(chǎn)品移植到更新、更安全的iButton器件。本應(yīng)用筆記討論了替代現(xiàn)有DS1991L應(yīng)用的三種選擇。每種替代方案都具有更好的性能。
DS1991L概述及背景資料
密碼保護(hù)不再屬于先進(jìn)技術(shù)。基于密碼保護(hù)的系統(tǒng)其最大缺陷是通過竊聽通信可以最終破譯密碼。
由于DS1991L不提供任何寫保護(hù)功能,惡意攻擊者可以很容易篡改密鑰信息(標(biāo)識、密碼、數(shù)據(jù)),從而造成器件在應(yīng)用中失效。具有質(zhì)詢-響應(yīng)認(rèn)證功能以及對應(yīng)用數(shù)據(jù)加密的器件成為更安全、性價比更高的替代方案。
在DS1991L應(yīng)用中,1-Wire®主機(jī)必須知道如何識別相關(guān)密鑰,必須知道對應(yīng)的密碼。使用DS1991L之前,必須安裝識別碼、密碼和密鑰數(shù)據(jù)。在此之后,器件可以進(jìn)行現(xiàn)場操作,經(jīng)常需要讀取密鑰數(shù)據(jù)、更換密鑰。該器件優(yōu)勢之一是內(nèi)置電池的NV SRAM技術(shù),即便主機(jī)(讀寫頭)掉電,也能保證從暫存器到加密數(shù)據(jù)區(qū)域的復(fù)制過程不受影響。
DS1991L替代方案
三款iButton可用來替代DS1991L。這三款器件是DS1977、DS1961S和DS1963S。表1列出了這三款器件與DS1991L以及各自特性比較。
DS1977與DS1991L類似,采用密碼保護(hù)功能,兩者特性非常接近。DS1961S和DS1963S采用基于SHA-1的認(rèn)證方案,即采用加密措施。沒有加密時,應(yīng)用數(shù)據(jù)是公開的,并可讀取。DS1961S和DS1977采用EEPROM工藝,DS1963S采用NV SRAM工藝。
表1. 器件比較
器件型號 | ||||
特性 | DS1991L | DS1977 | DS1961S | DS1963S |
用戶存儲器 | 3 x 48字節(jié),稱為密鑰 | 32K字節(jié) | 128字節(jié) | 8 x 2頁,每頁32字節(jié)(共512字節(jié)) |
安全性 | 三個獨立的8字節(jié)密碼(每個密碼對應(yīng)一個密鑰),讀、寫操作采用同一密碼 | 兩個8字節(jié)密碼(一個用于讀操作、一個用于完全訪問) | 一個8字節(jié)密鑰,用于安全寫操作 | 八個8字節(jié)密鑰 |
數(shù)據(jù)管理 | 三個8字節(jié)密鑰標(biāo)示區(qū)域(每個區(qū)域?qū)?yīng)一個密鑰) | 推薦1-Wire文件系統(tǒng) | 推薦1-Wire文件系統(tǒng) | 推薦1-Wire文件系統(tǒng) |
用于中間存儲和數(shù)據(jù)驗證的數(shù)據(jù)緩存器 | 64字節(jié)暫存器 | 64字節(jié)暫存器 | 8字節(jié)暫存器 | 32字節(jié)暫存器 |
認(rèn)證 | — | — | 3字節(jié)質(zhì)詢碼;20字節(jié)MAC碼響應(yīng) | 3字節(jié)質(zhì)詢碼;20字節(jié)MAC碼響應(yīng) |
寫操作計數(shù)器 | 0 | 0 | 0 | 16個(8個用于存儲器頁、8個用于密鑰) |
工藝 | NV SRAM | EEPROM | EEPROM | NV SRAM |
電源 | 內(nèi)置電池 | 主機(jī)寄生供電 | 主機(jī)寄生供電 | 內(nèi)置電池 |
1-Wire速率 | 標(biāo)準(zhǔn)速率 | 標(biāo)準(zhǔn)速率和高速模式 | 標(biāo)準(zhǔn)速率和高速模式 | 標(biāo)準(zhǔn)速率和高速模式 |
相對成本¹ | — | 高于DS1991L | 遠(yuǎn)低于DS1991L | 略高于DS1991L |
溫度范圍 | -40°C至+70°C | -40°C至+85°C | -40°C至+85°C | -40°C至+85°C |
其它功能 | 密碼不匹配時,偽隨機(jī)數(shù)發(fā)生器產(chǎn)生虛假數(shù)據(jù) | 可工作在無密碼保護(hù)狀態(tài) | 存儲器和密鑰帶有寫保護(hù);EPROM仿真模式 | 偽隨機(jī)數(shù)發(fā)生器;可用作SHA-1協(xié)處理器 |
DS1977密碼保護(hù)的32KB EEPROM iButton
與DS1991L相比,DS1977存儲器容量更大(32KB)、支持1-Wire高速模式并使用兩個密碼,一個用于讀操作,另一個用于完全訪問操作。可禁止DS1977的密碼保護(hù)功能,使其用于無需安全保護(hù)的設(shè)備。盡管成本高于DS1991L,但從單字節(jié)成本看,DS1977在所有替代型號和DS1991L中成本最低。
由于采用EEPROM,DS1977應(yīng)用中的1-Wire主機(jī)必須能夠?qū)崿F(xiàn)強(qiáng)上拉,以便為讀、寫操作提供電源。在接觸式操作環(huán)境下,可能導(dǎo)致讀操作錯誤,在寫操作時需要額外的防護(hù)措施。如果使能密碼保護(hù),則1-Wire主機(jī)必須知道至少一個密碼(讀操作或完全訪問)。對于任何基于密碼保護(hù)的系統(tǒng),可通過竊聽通信最終破譯密碼。
將DS1977用于密碼保護(hù)之前,必須安裝密碼并使能了密碼保護(hù)功能。為了優(yōu)化大容量存儲器的使用,建議按照1-Wire文件系統(tǒng)(參考應(yīng)用筆記114:“1-Wire File Structure”)格式化并使用存儲器。然后將應(yīng)用文件(或數(shù)據(jù))寫入DS1977。寫操作完成后,該器件準(zhǔn)備就緒,可用于存儲區(qū)域操作,即可以訪問存儲器數(shù)據(jù)并更改數(shù)據(jù)。
為將當(dāng)前的DS1991L應(yīng)用升級到DS1977,需要更改相應(yīng)的應(yīng)用程序,以識別新器件、器件命令,并在正確的時間置于強(qiáng)上拉狀態(tài),為器件供電。通常,建議在更改密碼前先禁止密碼保護(hù)功能。安裝密碼時,須確保已定義密碼的所有8個字節(jié)。發(fā)送Copy Scratchpad命令之前,需要驗證暫存器內(nèi)容。在新密碼從暫存器成功復(fù)制到對應(yīng)的存儲區(qū)域后,應(yīng)采用不同數(shù)據(jù)覆蓋暫存器內(nèi)容,以便擦除“開放空間”保留的密碼。為在接觸式操作環(huán)境下可靠運行,強(qiáng)烈建議按照應(yīng)用筆記159:“在iButton應(yīng)用中通過軟件方法實現(xiàn)可靠的1-Wire通信”中有關(guān)保證數(shù)據(jù)完整性的措施進(jìn)行設(shè)計。
DS1961S帶有SHA-1引擎的1K位保護(hù)EEPROM iButton
DS1961S的安全性比DS1991L高得多。DS1961S采用EEPROM,并支持1-Wire高速通信模式。與基于密碼的系統(tǒng)不同,該器件的安全功能基于所安裝的密鑰,而且永遠(yuǎn)不會在存儲區(qū)之間傳輸(暴露信息)。密鑰可以是器件特定信息,如:利用主機(jī)密鑰、存儲器數(shù)據(jù)、注冊碼以及常數(shù)按照SHA-1算法計算得到密鑰。除密鑰外,所有保存在DS1961S的數(shù)據(jù)開放讀取權(quán)限。但是,進(jìn)行寫操作時需要知道密鑰。需要進(jìn)行數(shù)據(jù)加密,以防止公眾得到器件存儲的數(shù)據(jù)。這三款替代型號,包括DS1991L在內(nèi),DS1961S的成本最低。由于采用EEPROM,DS1961S可從1-Wire主機(jī)獲得供電電源。在接觸式操作環(huán)境下,器件的寫操作與NV SRAM器件相比,數(shù)據(jù)遭到破壞的風(fēng)險略高一些。
在5V電源、采用2.2kΩ或更低上拉電阻的環(huán)境中,DS1961S 應(yīng)用中的1-Wire主機(jī)無需采取任何特殊的供電措施。如果上拉電壓低于5V,應(yīng)減小上拉電阻(最方便的方法,見應(yīng)用筆記4255:“為1-Wire器件的擴(kuò)展功能供電”),或采用強(qiáng)上拉以便提供寫操作和器件運行SHA-1引擎所需的額外功率。DS1961S主機(jī)必須知道或能夠計算所需的密鑰,以便驗證DS1961S是系統(tǒng)合法用戶,從而可以更改EEPROM數(shù)據(jù)。與計算自身SHA-1 MAC碼(信息認(rèn)證碼)不同,主機(jī)可使用帶EEPROM的DS2460 SHA-1協(xié)處理器。
使用DS1961S之前,必須先定義、安裝器件密鑰。經(jīng)過計算的密鑰其安全性要高于類似于加載密碼的固定密鑰(常數(shù))。其次,應(yīng)用所需的數(shù)據(jù)必須寫入器件。對于容量相對較小的存儲器,可選擇使用1-Wire文件系統(tǒng)。如果適用,可對單頁或所有存儲器頁以及密鑰進(jìn)行寫保護(hù),以防止使用過程中發(fā)生變化。也可以將其中一個存儲器頁置于EPROM仿真模式,該模式下對應(yīng)位只能從1變?yōu)?;該項功能在一些應(yīng)用中非常有用。初始設(shè)置完成后,DS1961S準(zhǔn)備就緒可以進(jìn)行現(xiàn)場操作,即訪問存儲器數(shù)據(jù)、改寫數(shù)據(jù)。
為將現(xiàn)有的DS1991L應(yīng)用升級到DS1961S,需要以下兩個改動:
- 修改應(yīng)用軟件,使其識別新器件并知道如何使用。
- 如果工作在低壓環(huán)境,必須通過軟件激活強(qiáng)上拉功能,以便為計算和安裝新密鑰、計算頁MAC和更新EEPROM提供所需的功率。
發(fā)送Copy Scratchpad命令之前,始終驗證暫存器。為保證在接觸式操作環(huán)境下可靠運行,強(qiáng)烈建議按照應(yīng)用筆記159中有關(guān)保證數(shù)據(jù)完整性的措施進(jìn)行設(shè)計(參見上文)。有關(guān)SHA-1安全性的其它信息,請參考本文檔最后給出的應(yīng)用筆記列表。需要強(qiáng)調(diào)的是應(yīng)用筆記1820:“White Paper 1: SHA Devices Used in Small Cash Systems”中說明了DS1961S在電子支付應(yīng)用中作為令牌的使用情況。
DS1963S SHA iButton
DS1963S的安全性遠(yuǎn)遠(yuǎn)高于DS1991L。DS1963S采用NV SRAM,對存儲器頁和密鑰執(zhí)行寫操作計數(shù),并支持1-Wire高速通信模式。DS1963S和DS1961S類似,均采用密鑰進(jìn)行認(rèn)證;密鑰已安裝但永遠(yuǎn)不會在存儲區(qū)之間傳輸(暴露信息)。器件支持8個密鑰,每個密鑰對應(yīng)兩個存儲器頁。這些密鑰可以是器件特定信息,如:利用主機(jī)密鑰、存儲器數(shù)據(jù)、注冊碼、存儲器頁號以及常數(shù)按照SHA-1算法計算得到的密鑰。除密鑰外,保存在DS1963S的數(shù)據(jù)可以開放讀取權(quán)限。為了防止公眾得到器件存儲的數(shù)據(jù),需要進(jìn)行數(shù)據(jù)加密。DS1963S與DS1961S的不同之處在于:在不知道密鑰的情況下也可以更改DS1963S的數(shù)據(jù);器件的存儲器頁或密鑰不帶寫保護(hù)功能。DS1963S成本低于DS1977;如果四個或多個應(yīng)用共用一片DS1963S,每個應(yīng)用的成本低于其它幾款替代型號。由于采用NV SRAM,讀操作、寫操作以及SHA-1計算所需電源均由內(nèi)部電池提供。這一功能對寫操作非常有利。一旦接受Copy Scratchpad命令,即使器件斷開與主機(jī)的連接也不會影響數(shù)據(jù)傳送到存儲器頁或密鑰。
DS1963S的存儲器數(shù)據(jù)在無需知道密鑰的前提下即可進(jìn)行修改。因此,必須保留部分器件提供的應(yīng)用數(shù)據(jù)空間,用于存儲“簽名”,以便驗證應(yīng)用數(shù)據(jù)的有效性。器件通過質(zhì)詢-響應(yīng)進(jìn)行認(rèn)證后,還要進(jìn)行其它認(rèn)證操作,利用存儲器頁的內(nèi)部密鑰進(jìn)行驗證。簽名可以是20字節(jié)的SHA-1 MAC碼。密鑰用來計算簽名數(shù)據(jù),通常不存儲在DS1963S內(nèi);除器件認(rèn)證密鑰外,主機(jī)必須知道簽名密鑰,以便驗證數(shù)據(jù)并產(chǎn)生將要寫入器件的驗證數(shù)據(jù)。與計算自身SHA-1 MAC不同,主機(jī)應(yīng)使用帶EEPROM的DS2460 SHA-1協(xié)處理器。在存儲舊數(shù)據(jù)的地址(例如,電子支付應(yīng)用中完成一次支付后),為防止回復(fù)攻擊,嵌入簽名的計算必須包含頁的寫操作計數(shù)值。
使用DS1963S之前,必須先定義、安裝器件認(rèn)證密鑰。經(jīng)過計算的密鑰其安全性要高于類似于加載密碼的固定密鑰(常數(shù))。其次,應(yīng)將所需的數(shù)據(jù),包括用于數(shù)據(jù)認(rèn)證的有效嵌入簽名,寫入器件。為允許多個應(yīng)用共用一個DS1963S,推薦使用1-Wire文件系統(tǒng)。初始化設(shè)置完成后,DS1963S就緒可以進(jìn)行現(xiàn)場操作,即可訪問存儲器并更改數(shù)據(jù)。
為將現(xiàn)有的DS1991L應(yīng)用升級到DS1963S,需要對應(yīng)用軟件進(jìn)行修改,以識別新型號、了解命令、識別相應(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ù)完整性的措施進(jìn)行設(shè)計。有關(guān)SHA-1安全性的詳細(xì)信息,請參考本文檔最后給出的應(yīng)用筆記列表。需要強(qiáng)調(diào)的是應(yīng)用筆記1820中說明了DS1963S在電子支付應(yīng)用中作為令牌使用以及SHA-1協(xié)處理器的情況。
方案選擇
上述每款替代器件需要對現(xiàn)有軟件進(jìn)行改動(如DS1977)或需要開發(fā)新軟件。DS1977需要(DS1961S可能需要)將1-Wire主機(jī)升級到支持強(qiáng)上拉,以便提供足夠的功率。表2列出了每種替代方案的優(yōu)、缺點。
表2. 替代方案
DS1977 | DS1961S | DS1963S | |
所需主機(jī)硬件改動 | 增加強(qiáng)上拉 | 增加強(qiáng)上拉(必要時) | 無 |
應(yīng)用軟件改動 | 修改現(xiàn)有軟件 | 需要開發(fā)新軟件 | 需要開發(fā)新軟件 |
優(yōu)點 | • 存儲器容量遠(yuǎn)大于DS1991L、DS1961S以及DS1963S • 獨立密碼,分別用于讀操作和完全訪問 |
• 成本最低 • 無法捕獲密碼 • 寫操作需要知道器件密鑰 • 基于質(zhì)詢-響應(yīng)認(rèn)證和安全寫操作,支持更高的安全等級 |
• 無法捕獲密碼 • 基于質(zhì)詢-響應(yīng)認(rèn)證、數(shù)據(jù)內(nèi)嵌簽名和寫操作計數(shù)值,支持更高的安全等級 • 多達(dá)8個程序可以共用同一器件 |
缺點 | • 安全性與DS1991L相似 • 單個程序或多個程序共用同一密鑰 |
• 單個程序或多個程序共用同一密鑰 | • 沒有密鑰的情況下可以更改數(shù)據(jù)或使其無效 |
如果不能修改硬件(強(qiáng)上拉),則DS1977無法用作替代產(chǎn)品。
如果硬件接口無法提供足夠的電流支持DS1961S通信,DS1963S則是唯一選擇。由于該器件的安全性基于密鑰(而不是密碼),DS1963S的安全性更高,如果4個應(yīng)用或更多應(yīng)用共用同一器件,性價比也更高。DS1963S的應(yīng)用軟件比較復(fù)雜,但速度不會低于DS1991L,因為該器件支持1-Wire高速通信模式。DS1963S的缺點是每個程序由于嵌入簽名,數(shù)據(jù)容量較低。但是,單個程序可利用多個數(shù)據(jù)存儲器頁和密鑰補(bǔ)償這一缺陷。
如果系統(tǒng)能夠選擇強(qiáng)上拉或不需要強(qiáng)上拉,DS1961S則是一個性價比較高的選擇。由于DS1977與DS1991L的原理最接近,使用該器件對軟件的改動最少。
總結(jié)
本應(yīng)用筆記討論了替代現(xiàn)有DS1991L應(yīng)用的三款器件以及采用新技術(shù)的優(yōu)勢。每個器件都需要對應(yīng)用軟件進(jìn)行修改(有些情況下改動較大)以及對1-Wire主機(jī)硬件進(jìn)行修改(DS1963S除外,DS1961S在某些情況下不需要)。盡管軟件改動較大,但采用基于SHA-1認(rèn)證的應(yīng)用具有更高的安全性,并且性價比高于DS1991L。利用DS2460 SHA-1協(xié)處理器有助于簡化實現(xiàn)SHA-1安全算法所需的軟件改動。