嵌入式設(shè)計(jì)的安全性考慮事項(xiàng)
隨著越來越多的嵌入式設(shè)備接入網(wǎng)絡(luò)并成為物聯(lián)網(wǎng)的一部分,網(wǎng)絡(luò)黑客們開始利用這些連接,以達(dá)到自己不可告人的目的。因此,嵌入式設(shè)備必須提高安全性,以防止黑客復(fù)制IP、盜竊數(shù)據(jù)或侵入系統(tǒng),可是對(duì)于嵌入式工程師來說,安全是又一個(gè)極其復(fù)雜的主題,在為嵌入式微控制器設(shè)計(jì)系統(tǒng)時(shí),很難把握到底需要怎樣的保護(hù)力度。
本文引用地址:http://2s4d.com/article/201808/386821.htm為了簡化安全性這一討論話題,我們從三個(gè)方面進(jìn)行探討。在圖1中,嵌入式設(shè)備A需要與遠(yuǎn)程設(shè)備B通信。此時(shí),需要考慮的三個(gè)安全因素:(1)設(shè)備完整性 – 安全訪問設(shè)備A;(2)通過身份驗(yàn)證建立與遠(yuǎn)程設(shè)備B的信任關(guān)系;(3)建立信任關(guān)系后,通過數(shù)據(jù)加密保障兩個(gè)設(shè)備之間的信息傳送安全。
* 設(shè)備完整性是指如何防止嵌入式設(shè)備上的代碼(或IP)和數(shù)據(jù)受到未授權(quán)的訪問(如遠(yuǎn)程軟件攻擊、通過已建立的用戶接口獲得訪問權(quán)限或?qū)ο到y(tǒng)硬件進(jìn)行物理/探測(cè)攻擊)??梢酝ㄟ^多種方式防范這些攻擊,但各個(gè)方法的成本和復(fù)雜性也各不相同。
* 在設(shè)備之間建立信任關(guān)系是指一個(gè)或兩個(gè)設(shè)備間相互驗(yàn)證真?zhèn)危源_保不會(huì)將數(shù)據(jù)發(fā)送至冒名頂替的設(shè)備,或從這樣的設(shè)備接收數(shù)據(jù)。建議信任關(guān)系的常用方法是非對(duì)稱密鑰加密。此方法使用一對(duì)密鑰(一個(gè)私人密鑰和一個(gè)公共密鑰)來建立信任關(guān)系。私人密鑰用于加密而公共密鑰用于解密。非對(duì)稱密鑰加密的常用算法為RSA和ECC。
* 建立信任關(guān)系之后,如果從設(shè)備A向設(shè)備B傳輸數(shù)據(jù),對(duì)稱加密算法將對(duì)其進(jìn)行保護(hù)。對(duì)稱加密使用相同密鑰進(jìn)行加密和解密。(此方法的速度比非對(duì)稱加密快,這也是并非所有通信都使用非對(duì)稱加密的原因)。該算法目前的加密標(biāo)準(zhǔn)為AES(高級(jí)加密標(biāo)準(zhǔn))。這是一種使用相同長度的密鑰對(duì)128、192或256位數(shù)據(jù)塊進(jìn)行加密的對(duì)稱密鑰塊加密標(biāo)準(zhǔn)。
雖然任何加密算法在長時(shí)間攻擊下都可能被破 解,但即使使用現(xiàn)代超級(jí)計(jì)算機(jī)進(jìn)行蠻力攻擊(指嘗試每一種密鑰組合:2128或3.4 x 103種),破 解AES-128密鑰塊加密可能需要花費(fèi)一百萬年時(shí)間,而AES-256加密算法更有2256或1.1 x 1077個(gè)組合。由此,AES-128或AES-256都適用于防止蠻力攻擊。但是通常來說,AES-128更佳,因?yàn)槠溆?jì)算效率比AES-256要高40%。這么看來,蠻力破 解AES的可能性幾乎微乎其微。因此,黑客們將主要精力花在提取AES密鑰上。如果未能安全地保護(hù)AES密鑰,那么無論算法多么安全都沒有用。這就好像是用一個(gè)六英寸厚的鋼門保護(hù)您的家,卻將鑰匙留在門墊下面。
評(píng)論