驗證系統中數據或操作的能力是安全性的基本要求。對于開發人員來說,實現身份驗證所需的詳細步驟可能具有挑戰性,尤其是在資源受限的系即使資源可用,上市時的壓力和缺乏意識也可能導致開發過程中出現捷徑,導致最終系統受到損害。
所需要的是對身份驗證工作原理的基本了解,以及開發人員既包含所需的資源,又支持更快,更有效地實現身份驗證。
本文將介紹Maxim Integrated的專用身份驗證IC之前的對稱和非對稱身份驗證的基礎知識。然后,本文將討論如何使用這些IC輕松添加對行業標準認證機制的支持。需要這些機制來確保在諸如物聯網(IoT),系統中的安全固件更新以及授權外圍設備的連接等應用中使用授權設備,僅舉幾例。
關鍵角色身份驗證
身份驗證仍然是安全性的核心要求之一,可以在幾乎所有部門中找到應用程序,包括消費者,工業,醫療,軍事/航空等。在Web上,在瀏覽器中使用身份驗證來驗證安全(https)服務器的身份。在物聯網設備中,身份驗證對于確保固件更新僅來自合法來源至關重要。在較小規模上,越來越多地使用認證來確保在不匹配會影響功率,安全性和可靠性的系統中使用授權外設甚至消耗品。
認證在連接應用中起著至關重要的作用,其中未經授權的設備可以作為黑客攻擊整個應用程序及其底層系統資源的入口點。在關鍵任務應用中,對身份驗證的需求變得尤為嚴重。
例如,意外或意圖連接到工業自動化網絡的未經授權的傳感器設備可能會影響過程控制環路中使用的數據流。在這些應用程序中,對身份驗證的需求是雙向的。在向主機驗證自身后,操作執行器,激光器或其他外部設備的設備應僅在驗證可能導致物理傷害或損壞的命令后才能運行。
驗證方法
認證方法差異很大。最簡單和最常見的形式是,個人使用密碼對系統和應用程序進行身份驗證。這種眾所周知的弱身份驗證形式推動了雙因素身份驗證或生物識別方法的使用,例如Apple Touch ID指紋識別或Windows Hello面部識別。
然而,在數字系統中,身份驗證建立在基本機制之上主機發出“質詢”并驗證物聯網設備,外圍設備或消耗品的“響應”。在此方法中,受質疑的設備使用在對稱加密認證或非對稱加密認證中與主機共享或不共享的密鑰構造有效響應。
在對稱加密認證中,從設備每個主機根據挑戰數據的SHA-256哈希,共享密鑰和其他數據元素計算數字簽名。如果從機響應和主機計算結果匹配,則認為從機設備已通過認證(圖1)。
圖1:在對稱加密中,主機和從設備使用共享密鑰進行身份驗證。 (圖像來源:Maxim Integrated)
在非對稱加密認證中,密鑰僅駐留在從設備中,從設備將其與挑戰數據的SHA-256哈希和隨機數組合以生成新的橢圓曲線數字簽名算法(ECDSA)簽名,通常基于橢圓曲線加密(ECC)P-256曲線。反過來,主機使用挑戰數據的SHA-256哈希和與設備的私鑰相關聯的公鑰來驗證新的ECDSA簽名。如果結果有效,則認為從設備已通過身份驗證(圖2)。
圖2:非對稱加密身份驗證消除了與使用a相關的漏洞共享密鑰,使用從設備中的私鑰和主機中的相關公鑰進行橢圓曲線數字簽名算法(ECDSA)驗證。 (圖片來源:Maxim Integrated)
對于開發人員來說,至少可以說這些認證方法的實施具有挑戰性。如果未能使用所需數據執行精確的操作序列,則可能導致失敗。缺少真正的隨機數生成器或只是一個簡單的錯誤可能會讓其他安全設備受到攻擊。即使技術上正確的實現也可能給熟練的黑客帶來漏洞。例如,常用的身份驗證協議允許重用秘密信息,即使這些秘密可以被捕獲并用于正確響應身份驗證挑戰 - 從而危及通信和連接系統。
在許多情況下,錯誤由于缺乏能夠更快速,更可靠地執行身份驗證的強大機制,因此用于實現身份驗證的快捷方式會產生漏洞或漏洞。例如,上面提到的身份驗證漏洞通常出現在開發人員關心性能和重用機密而不是導致與(相對)慢的身份驗證執行相關的延遲時。
在物聯網中,開發人員可能面臨實際限制使實現變得不可能,或者邀請使用引入漏洞的快捷方式。物聯網傳感器或執行器設備中使用的MCU可能缺乏正確實現或根本無法實現身份驗證所需的處理器能力和內存資源。在完全缺少MCU的外圍設備或耗材中,問題變得更加明顯。 Maxim Integrated的DS28C36和DS28E38等集成認證器的出現顯著降低了在任何系統中采用認證的復雜性。
認證IC
Maxim DS28C36和DS28E38是提供認證的IC用于質詢 - 響應身份驗證的插入式解決方案。除了用于私鑰,私鑰/公鑰對,證書和應用數據的8 Kbits安全EEPROM外,DS28C36還集成了用于SHA-256和ECC-P256加密的片上引擎。這些支持對稱和非對稱身份驗證機制。該設備還可以動態生成私鑰/公鑰對,以便在更高級別的身份驗證協議中使用。
憑借其全面的加密引擎,存儲和算法支持,該設備可以將復雜的身份驗證流程轉變為簡單的去/不去的結果。例如,要驗證MCU安全啟動的固件,開發人員只需對MCU編程即可將目標固件和簽名發送到通過I 2 C接口連接的DS28C36。 DS28C36依次執行認證所需的完整操作序列,并將通過/不通過結果返回到MCU GPIO引腳(圖3)。
圖3:Maxim Integrated DS28C36實現了完整的身份驗證質詢 - 響應機制,使開發人員能夠使用它來提供簡單的go/no-go安全啟動操作中的固件驗證結果。 (圖像來源:Maxim Integrated)
開發人員可以使用DS28C36的可編程I/O引腳來支持激活激光器,繼電器或其他執行器可能導致物理環境潛在危險的應用中的命令驗證。在這里,開發人員可以將認證過程的通過/不通過結果驅動到控制緩沖晶體管的DS28C36輸出引腳,例如驅動激光的Nexperia PMV65XP MOSFET(圖4)。使用這種方法,只允許有效的命令來控制外設。
圖4:開發人員可以使用Maxim Integrated DS28C36驗證外設操作,甚至可以使用其可編程I/O端口直接啟用輸出驅動程序來傳達驗證結果處理。 (圖像來源:Maxim Integrated)
但是,對于某些應用,將密鑰加載到認證IC中的需要對于關鍵任務設備來說可能是一個潛在的安全漏洞,或者對于批量產品來說太麻煩了。耗材如打印機墨盒。對于任何應用程序,僅僅存在控制對產品訪問的密鑰會導致產品和底層身份驗證設備成為黑客通過更復雜的攻擊機制恢復密鑰的目標。
物理上不可克隆功能
Maxim DS28E38認證IC提供了一種獨特的方法,通過提供基于Maxim專利ChipDNA?技術的內置密鑰來緩解關鍵威脅。 ChipDNA使用半導體器件特性的隨機變化來提供物理上不可克隆的功能(PUF)。 PUF功能用于創建一個獨特的密鑰,該密鑰在不同的操作條件下(包括工作電壓和溫度)隨時間保持不變。 PUF輸出(以及產生的密鑰)改變的唯一方法是,如果有人試圖探測低級芯片操作。這些操作改變了潛在的電路特性,導致不同的PUF輸出和不同的密鑰。這是一種“海森堡不確定性原理”,但適用于秘密密鑰存儲。對于需要特定私鑰的應用程序,設備允許開發人員加載和使用自己的密鑰。
基于PUF的DS28E38集成了一整套安全功能,可提供交鑰匙挑戰 - 響應認證解。然而,與DS28C36不同,DS28E38僅支持非對稱認證,返回ECDSA特征以應對挑戰(圖5)。主機仍然負責使用設備的ECDSA簽名和相應的公鑰來完成通過/失敗驗證過程,如圖2所示。
圖5:Maxim Integrated基于PUF的DS28E38認證IC實現了完整的非對稱加密認證序列,可對主機提供的質詢產生數字信號響應。 (圖像來源:Maxim Integrated)
除了基于PUF的密鑰外,該器件還提供2 Kbits的安全EEPROM存儲器,以及獨立的64位標識符(ROM ID)和制造標識符( MANID)。使用設備的密鑰,唯一標識符和安全存儲,開發人員可以在各種身份驗證方案中使用DS28E38。
例如,要對打印機墨盒進行身份驗證,開發人員可以使用已知值對墨盒進行身份驗證MANID確認模型類型。與DS28C36一樣,開發人員可以使用DS28E38動態生成私鑰/公鑰對,以支持更復雜的身份驗證協議。
靈活的接口
對于硬件集成,DS28E38提供1 - 線路接口,可直接與MAX32625等MCU實現簡單連接,包括本機1-Wire支持。對于其他MCU,開發人員可以使用單個PMV65XP MOSFET將器件連接到MCU可編程I/O(PIO)端口(圖6)。
圖6:DS28E38 1-Wire接口提供與1-Wire MCU(如Maxim MAX32625)的簡單連接,并且只需一個額外的MOSFET即可連接到任何MCU上的可編程I/O端口。 (圖像源:Maxim Integrated)
1-Wire波形時序要求完全在簡單MCU的性能范圍內。因此,開發人員可以使用幾行軟件實現1-Wire協議(清單1)。
復制 < p>//---------------------------------------------- -------------------------------
//發送1-Wire寫位。提供10us恢復時間。
//
void OWWriteBit(int bit)
{
if(bit)
{
//寫'1'位
輸出(PORTADDRESS,0x00);//驅動DQ低
tickDelay(A);
outp(PORTADDRESS,0x01);//釋放總線
tickDelay(B);//完成時間段和10us恢復
}
否則
{
//寫'0'位
outp(PORTADDRESS,0x00);//驅動DQ低
tickDelay(C);
outp(PORTADDRESS,0x01);//釋放總線
tickDelay(D);
}
}
//---------------------- -------------------------------------------------- -----
//寫1-Wire數據字節
//
void OWWriteByte(int data)
{
int loop;
//循環寫入字節中的每一位,先寫LS位
for(loop = 0; loop <8; loop ++)
{
OWWriteBit(data&amp; 0x01);
< p>//移位下一位的數據字節
數據>> = 1;
}
}
清單1 :開發人員可以使用幾行代碼實現1-Wire協議,使用與1-Wire協議波形匹配所需的MCU相關延遲值(A,B,C和D)來驅動MCU可編程I/O端口的高低電平時序規范。 (代碼源:Maxim Integrated)
或者,開發人員可以使用DS2484 1-Wire接口器件將DS28E38連接到標準MCU I 2 C端口,允許開發人員使用在他們的設計中熟悉I 2 CI/O技術。這種方法在需要額外外設的物聯網設備設計中尤其具有吸引力(圖7)。
圖7:使用多個1-Wire器件構建系統的開發人員可以使用Maxim DS2484將DS28E38認證IC與其他1-Wire器件連接到MCU的I 2 C總線。 (圖像來源:Maxim Integrated)
使用DS2484,開發人員可以將DS28E38與各種可用的1-Wire器件(包括傳感器,電池管理IC,EEPROM等)結合使用。在此配置中,開發人員可以輕松使用DS28E38為涉及基于DS28C36的設計的概念上與圖4所示概念相似的1-Wire外圍設備的關鍵操作提供身份驗證。
快速開發
雖然DS28C36和DS28E38都提出了簡單的硬件接口要求,但在設計中加入認證的真正目的在于將這些機制構建到更高級別的流程和應用程序中。為了加速這一過程,Maxim提供了許多評估套件,設計人員可以使用這些評估套件快速獲得DS28C36和DS28E38認證IC的功能。要評估DS28C36,請通過USB連接MAXAUTHDEMO1#評估板(圖8)。
圖8:Maxim MAXAUTHDEMO1#USB評估板允許開發人員快速探索DS28C36的功能,并輕松查看特定認證的通過/失敗結果使用內置LED進行操作。 (圖像來源:Maxim Integrated)
隨附的DS28C36安全下載軟件程序提供了身份驗證操作的基本演示。在簽名過程屏幕上,開發人員使用該軟件為測試文件創建簽名(在這種情況下為圖像文件)。在第二個屏幕上,他們使用DS28C36根據該簽名驗證原始文件:在安全更新過程中用于驗證固件的相同過程(圖9)。
圖9:Maxim的DS28C36安全下載演示軟件允許開發人員通過詳細結果,結合調試文本輸出和每一步生成的相關數據,試驗主機簽名和基于DS28C36的驗證。 (圖像源:Maxim Integrated)
Maxim DS28E38EVKIT#為探索DS28E38的工作提供了類似的平臺。將DS28E38EVKIT#插入PC USB插槽后,運行隨附的軟件可演示認證,密鑰對生成,證書生成以及其他特性和功能。為了進一步使用DS28E38進行軟件開發,Maxim還提供MAXREFDES168#軟件參考設計,與基于MAX32625 MCU的MAX32625MBED#MBED評估套件配合使用。參考設計中的示例C ++代碼演示了用于構建用于操作DS28E38的命令序列的步驟(清單2)。
復制
error_code
DS28E38 :: computeAndReadPageAuthentication(int pageNum,bool anonymous,
const Page&amp;挑戰,
Ecc256 :: Signature&amp;簽名){
if(pageNum = memoryPages){
返回make_error_code(InvalidParameterError);
}
const size_t parametersSize = 1 + Page :: csize;
const size_t resultSize = Ecc256 :: Signature :: size;
typedef array
(parametersSize> resultSize?parametersSize:resultSize)>
緩沖區;
緩沖區緩沖區;
緩沖區[0] = pageNum | (匿名?0xE0:0x00);
copy(challenge.begin(),challenge.end(),buffer.begin()+ 1);
const error_code result = runCommandSequence (
ComputeAndReadPageAuthentication,buffer.data(),parametersSize,
generateEcdsaSignatureTimeMs,buffer.data(),resultSize);
if(!result){
Buffer :: const_iterator begin = buffer.begin();
Buffer :: const_iterator end = begin + signature.s.size();
copy( begin,end,signature.s.begin());
begin = end;
end = begin + signature.r.size();
copy(begin,end,signature.r.begin());
}
返回結果;
}
清單2:Maxim的MAXREFDES168#軟件參考設計提供了關鍵操作的軟件示例,例如構建此處顯示的用于身份驗證的命令塊,以及能夠執行命令塊和其他功能的低級服務例程。 (代碼來源:Maxim Integrated)
結論
身份驗證機制是任何安全環境的核心。然而,對于開發人員而言,這些機制的實施為滿足實際性能要求帶來了多重挑戰,同時還在認證序列的每一步保持安全性。
隨著專用認證IC的出現,開發人員可以輕松應對這些挑戰并滿足不同應用領域的新認證要求。使用這些專用設備,工程師可以快速將認證結合到針對像物聯網這樣復雜的應用程序或像打印機墨盒一樣簡單的應用程序中。
-
IC
+關注
關注
36文章
5979瀏覽量
176217 -
物聯網
+關注
關注
2913文章
44923瀏覽量
377016 -
數字系統
+關注
關注
0文章
145瀏覽量
20907
發布評論請先 登錄
相關推薦
評論