現(xiàn)實(shí)世界中的嵌入式安全
您也必須保護(hù)系統(tǒng)的完整性,防止系統(tǒng)運(yùn)行中受到流氓固件的攻擊,這些流氓固件可繞過加密,篡改數(shù)據(jù)或向未經(jīng)授權(quán)的接收端發(fā)送數(shù)據(jù)。系統(tǒng)完整性的最好保護(hù)是,利用哈希算法檢測固件內(nèi)未經(jīng)授權(quán)的改變,并采取相應(yīng)措施。
哈希算法生成一種被稱為給定信息摘要的壓縮指紋。就像人類的指紋一樣,這個(gè)摘要是唯一的。被廣泛采用的著名的安全哈希算法(SHA)就是一個(gè)哈希算法的范例。為檢測固件篡改,在使用中,您需要定期地產(chǎn)生它的現(xiàn)場摘要,并與出廠時(shí)生成的參考進(jìn)行比較。您也許已經(jīng)在問,是什么能保證任何人都無法偽造摘要或參考。
我們的做法是,我們需要保證摘要和它的參考不被偽造。在輸入哈希算法生成出廠參考之前,我們通過向固件中追加一條任意長度的附加信息的辦法實(shí)現(xiàn)這一點(diǎn)。如果您保證附加信息是保密的,那么,只有您才能夠重新生成相同的摘要,這就是您能保證摘要不被偽造的方法。
在使用中,保證參考不被現(xiàn)場偽造的方法是:將它存儲(chǔ)在安全存儲(chǔ)器中。若要知道摘要沒有被偽造這一事實(shí),必須進(jìn)行身份驗(yàn)證,本例中,要實(shí)現(xiàn)這一點(diǎn),需要知道嵌入在安全集成電路中的密鑰。
所以,加密僅僅是對數(shù)據(jù)加擾而已,與此相比,身份認(rèn)證是安全系統(tǒng)的真正基礎(chǔ)。明白了這一點(diǎn),值得注意的是:哈希密碼算法本身很適合身份認(rèn)證,這是由于好的哈希算法必須具有3個(gè)基本特征。
首先,它們的運(yùn)算是不可逆的。這意味著,不可能從摘要中恢復(fù)出原始信息,所以,私密信息是安全的。第二點(diǎn)是非沖突性,即各種不同的輸入必須生成獨(dú)一無二的摘要。在驗(yàn)證時(shí),唯一的摘要可提升對固件完整性的信任。第三個(gè)同時(shí)也是最終的性質(zhì)被稱為雪崩,是指哈希算法輸入的任何改變,無論多么小,都會(huì)產(chǎn)生摘要的顯著變化。
存在一些經(jīng)過仔細(xì)分析的公開方法,這些方法可允許使用加密算法,以實(shí)現(xiàn)傳統(tǒng)上由哈希算法實(shí)現(xiàn)的功能。這類系統(tǒng)可同時(shí)實(shí)現(xiàn)身份驗(yàn)證和加密。同樣,加密算法本身很適合數(shù)據(jù)加擾,由它們所帶來的安全性與密鑰一樣強(qiáng)大。哈希算法的身份認(rèn)證特點(diǎn)具有互補(bǔ)性,可實(shí)現(xiàn)安全系統(tǒng)中密鑰的安全管理。
不同的密碼算法可保護(hù)系統(tǒng)的不同層面的安全,在對它們的微妙作用、強(qiáng)度、差異和相互影響有了清晰的了解之后,就可以使用更少的算法組合來實(shí)現(xiàn)牢靠的安全性能。對于像我們所面臨的這樣的挑戰(zhàn)而言,這尤其重要,因?yàn)槲覀兊拇a空間十分有限。
配套的安全集成電路
對于您的任務(wù)而言,您需要固件空間以及來自防篡改和侵入的安全集成電路的資源??梢酝ㄟ^配套的安全集成電路來解決這一問題。這些安全集成電路與安全MCU一樣,具有硬件防篡改和侵入的功能,但做了一些簡化,可為各種具體應(yīng)用提供相應(yīng)的功能,因而成本更低。
圖2 作為配套的安全裝置的集成電路很小,成本較低,需要非常少的系統(tǒng)資源,但卻可提供與安全MCU相同的物理保護(hù)
在我們的例子中,配套的安全集成電路將保護(hù)和管理密鑰,以對由加密所帶來的安全性進(jìn)行互補(bǔ)。它們也可進(jìn)行各種類型的身份認(rèn)證,能夠?qū)崿F(xiàn)系統(tǒng)完整性驗(yàn)證。它們還可實(shí)現(xiàn)許多其他功能,包括安全存儲(chǔ)以及可信固件的現(xiàn)場升級。通過提供智能和易用的API,它們可實(shí)現(xiàn)這一點(diǎn),因此,使用配套的安全集成電路不需要深入掌握密碼學(xué),也無須較多代碼空間。
這與那些提供處理和存儲(chǔ)功能的安全MCU不同,因此,您可將所有需要的函數(shù)寫入固件里,而配套的安全集成電路中的函數(shù)是硬連線的,使得它們很緊湊,因而成本更低。Atmel系列“加密認(rèn)證”產(chǎn)品就是一個(gè)例子。通過采用這些低成本(大量購買時(shí)的單價(jià)為0.5美元)的集成電路芯片,可以在已有平臺(tái)上編寫代碼并追加在這個(gè)小小的額外固件上。
評論