數(shù)字安全是電子設(shè)計領(lǐng)域最熱門的話題之一。對于許多工程師,當(dāng)提到安全性時,腦海中閃現(xiàn)出的第一個詞可能就是加密。可能只有極少數(shù)人會想到安全認(rèn)證。然而,安全認(rèn)證是安全器件或交易的基礎(chǔ)功能。
我們以家庭銀行為例,顯然,您希望余額和賬號等保密信息能夠加密,此時,您的網(wǎng)絡(luò)瀏覽器上會顯示一個小鎖標(biāo)識以及“https://”。也就是說,網(wǎng)絡(luò)瀏覽器在建立安全連接時,第一件事情就是檢查銀行站點(diǎn)的真實性;換句話說,就是要對銀行站點(diǎn)進(jìn)行安全認(rèn)證。實際上,如果將登錄和密碼信息發(fā)送到釣魚網(wǎng)站,危害性非常大,因為這些憑據(jù)可被進(jìn)一步重用,以銀行賬戶持有人的名義執(zhí)行未經(jīng)授權(quán)的交易,而實際持有人卻毫不知情。通過TLS/SSL協(xié)議,一般能夠?qū)崿F(xiàn)安全的互聯(lián)網(wǎng)瀏覽,確保真實性和保密性。
安全認(rèn)證對于物聯(lián)網(wǎng)(IoT)應(yīng)用也非常重要:不可信的終端可能會將整個基礎(chǔ)設(shè)施置于危險之中。我們以連接到配電系統(tǒng)的智能電表為例。對于要破壞電網(wǎng)的攻擊者,一種簡單方法是將病毒或惡意軟件加載到智能電表。然后被干擾的電表會向基礎(chǔ)設(shè)施發(fā)送假消息,反應(yīng)出的功耗與實際功耗相差非常大。電網(wǎng)將會出現(xiàn)不平衡;更壞情況下,攻擊可能觸發(fā)全網(wǎng)斷電。為了避免這種情況,必須檢驗電表硬件和固件的真實性。對固件進(jìn)行安全認(rèn)證的過程稱為安全引導(dǎo)。
實施有效的安全認(rèn)證方法
現(xiàn)在我們已經(jīng)理解了安全認(rèn)證的重要性,接下來我們討論如何實施。最簡單的安全認(rèn)證方法是使用密碼。在智能電表的例子中,設(shè)備可向電網(wǎng)控制系統(tǒng)發(fā)送密碼。服務(wù)器驗證密碼,然后再授權(quán)執(zhí)行下一步。雖然這種方法非常容易理解,但并不是最好的方法。攻擊者很容易監(jiān)聽通信、記錄密碼,然后用其來對非真實的設(shè)備進(jìn)行安全認(rèn)證。所以,我們認(rèn)為基于密碼的安全認(rèn)證方法比較薄弱。
數(shù)字領(lǐng)域執(zhí)行安全認(rèn)證的更好方法是質(zhì)詢-應(yīng)答方法。我們來看看兩種方式的質(zhì)詢-應(yīng)答方法:一種基于對稱加密,另一種基于非對稱加密。
對稱加密安全認(rèn)證依賴于共享密鑰。主機(jī)和被認(rèn)證設(shè)備持有相同的密鑰。主機(jī)向設(shè)備發(fā)送一個隨機(jī)數(shù),即質(zhì)詢。設(shè)備計算一個數(shù)字簽名,該簽名是密鑰和質(zhì)詢的函數(shù),并發(fā)送回主機(jī)。主機(jī)執(zhí)行相同的運(yùn)算并對結(jié)果進(jìn)行比較。如果兩項計算結(jié)果一致,則設(shè)備通過安全認(rèn)證(圖1)。為了確保結(jié)果不被模仿,必須使用數(shù)學(xué)屬性足夠的函數(shù);例如必須保證不可能通過計算結(jié)果獲得密鑰。SHA-256等安全散列函數(shù)滿足這些要求。對于質(zhì)詢-應(yīng)答方法,設(shè)備在不泄露密鑰的情況下證明自己知道密鑰。即使攻擊者攔截通信,也無法接觸到密鑰。
圖1. 基于對稱加密的安全認(rèn)證依賴于主機(jī)和設(shè)備之間的共享密鑰。
基于非對稱加密的安全認(rèn)證依賴于兩個密鑰:私鑰和公鑰。只有被認(rèn)證的設(shè)備知道私鑰,而公鑰可透露給希望對設(shè)備進(jìn)行安全認(rèn)證的任何一方。與上文中討論的方法一樣,主機(jī)向設(shè)備發(fā)送質(zhì)詢。設(shè)備根據(jù)質(zhì)詢和私鑰計算數(shù)字簽名,并將其發(fā)送給主機(jī)(圖2)。但此時,主機(jī)使用公鑰對數(shù)字簽名進(jìn)行驗證。用于計算數(shù)字簽名的函數(shù)擁有特定數(shù)學(xué)屬性至關(guān)重要。非對稱方法中最常用的函數(shù)是RSA和ECDSA。同樣,設(shè)備也在不泄露密鑰情況下提交了自己知道密鑰的證明,即私鑰。
圖2. 非對稱密鑰安全認(rèn)證依賴于公鑰和私鑰。
為什么安全IC有益于安全認(rèn)證
質(zhì)詢-應(yīng)答安全認(rèn)證始終要求被認(rèn)證的對象持有密鑰。對稱加密方法中,該密鑰為主機(jī)和設(shè)備之間的共享密鑰;對于非對稱加密方法,該密鑰為私鑰。無論哪種情況,一旦密碼泄露,質(zhì)詢-應(yīng)答式安全認(rèn)證就失效了。安全I(xiàn)C有助于防范這種情況。安全I(xiàn)C的一項基本特性是為密鑰和密碼提供強(qiáng)保護(hù)。
Maxim提供三種支持安全認(rèn)證的解決方案。
安全認(rèn)證IC:IC是可配置但固定功能的器件,為實施質(zhì)詢-應(yīng)答安全認(rèn)證提供最經(jīng)濟(jì)的途徑,并且具有基本的加密操作。
安全微控制器:在支持質(zhì)詢-應(yīng)答安全認(rèn)證的基礎(chǔ)上,提供全面的密碼學(xué)功能,包括加密。
低功耗微處理器:盡管這些產(chǎn)品并非專用于加密,但擁有支持強(qiáng)安全認(rèn)證所需的電路模塊。
安全認(rèn)證IC中,基于SHA-256的產(chǎn)品支持基于共享密鑰的安全認(rèn)證(圖3),而基于ECDSA的IC使用私鑰/公鑰對(圖4)。除加密引擎外,這些產(chǎn)品擁有板載EEPROM存儲器。該存儲器是可配置的,可用于儲存經(jīng)過安全認(rèn)證的用戶數(shù)據(jù),例如傳感器的校準(zhǔn)信息。
基于SHA-256的產(chǎn)品是最經(jīng)濟(jì)的方案。盡管支持相互認(rèn)證,但共享密鑰的分發(fā)要求采取一定的防范措施,保證設(shè)備制造和配置期間不會泄露密鑰。為克服該缺點(diǎn),可在Maxim工廠對密鑰進(jìn)行編程。
圖3. SHA-256密鑰安全認(rèn)證基于共享密鑰。
Maxim的DS28E15/22/25 IC基于SHA-256技術(shù),擁有不同的內(nèi)部存儲器容量。由于主機(jī)和設(shè)備側(cè)儲存有相同的密鑰,我們建議主機(jī)側(cè)使用協(xié)處理器,例如DS2465。
DS28C36和DS28E35等基于非對稱加密的產(chǎn)品提供更靈活的方法,因為主機(jī)側(cè)不需要防止密鑰被泄露。然而,為降低公鑰算法負(fù)荷并且提供附加安全操作,可利用DS2476 (DS28C36的配套IC)等主機(jī)側(cè)協(xié)處理器簡化系統(tǒng)方案的開發(fā)。
圖4. 基于ECDSA的安全認(rèn)證算法依賴于私鑰/公鑰對。
支持對稱和非對稱加密的安全微控制器
Maxim提供各種各樣的安全微控制器,包括從MAX32590 (ARM9,工作頻率384MHz)應(yīng)用級處理器(支持Linux等高級操作系統(tǒng))到MAX32555或MAXQ1061等小尺寸協(xié)處理器。
這些微控制器支持對稱和非對稱加密,適用于數(shù)字簽名和安全認(rèn)證,以及加密算法。器件擁有支持SHA、RSA、ECDSA和AES的硬件加速器,以及完整的加密算法庫,提供符合標(biāo)準(zhǔn)的整體API方案。器件內(nèi)置安全引導(dǎo),所以能夠保證固件可靠性。得益于齊全的加密功能,器件能夠支持多種安全認(rèn)證方法。
MAXQ1061協(xié)處理器不僅支持安全認(rèn)證,而且也支持使用IP的TLS/SSL標(biāo)準(zhǔn)安全通信協(xié)議的大多數(shù)關(guān)鍵步驟。在芯片內(nèi)實現(xiàn)TLS協(xié)議可提高安全水平并減輕主處理器執(zhí)行計算密集型任務(wù)的負(fù)荷。這對于資源受限的嵌入式系統(tǒng)非常寶貴。
MAX32626等低功耗微控制器的目標(biāo)應(yīng)用為可穿戴設(shè)備,所以不是“安全為中心”的IC。然而,隨著攻擊現(xiàn)象日益頻繁,產(chǎn)品的設(shè)計也充分考慮了未來的安全挑戰(zhàn)。所以,MAX32626具有支持安全認(rèn)證的硬件信賴保護(hù)單元,以及用于加密的硬件AES和內(nèi)置安全引導(dǎo)。
總結(jié)
本文中,我們探討了什么是安全認(rèn)證及其重要性。同時我們也看到,得益于已有基于硅的方案,不需要是加密專家,也完全能夠?qū)崿F(xiàn)安全認(rèn)證。
推薦閱讀:
物聯(lián)網(wǎng)浪傳感器技術(shù)的研究方向有哪些?
這十大傳感器 是當(dāng)之無愧的“黑科技”之王
電池管理系統(tǒng)BMS,靜電防護(hù)不到位咋補(bǔ)救?