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