當(dāng)前位置: 首頁(yè) > 傳感測(cè)量產(chǎn)品 > 數(shù)據(jù)采集產(chǎn)品 > 數(shù)據(jù)采集模塊
發(fā)布日期:2022-04-18 點(diǎn)擊率:59
近年來(lái),從軟件到軟硬件聯(lián)合攻擊給嵌入式系統(tǒng)造成嚴(yán)峻的安全威脅。安全性已成為嵌入式系統(tǒng)設(shè)計(jì)中必不可少的一部分,同時(shí)這又是一個(gè)折衷的過(guò)程,不能單靠軟件來(lái)保證,而全硬件的解決方式很昂貴且不具有彈性[1]。很多產(chǎn)品開(kāi)始從設(shè)計(jì)之初就從系統(tǒng)架構(gòu)上考慮了安全性,如ARM公司的Trust Zone技術(shù)開(kāi)辟了一片可信代碼區(qū),通過(guò)一個(gè)S比特來(lái)區(qū)分系統(tǒng)的安全狀態(tài),IBM的PowerPC中使用了多核單元寬帶引擎(BE)進(jìn)行安全引導(dǎo)和物理隔離。 2 軟件實(shí)現(xiàn)
需要注意的是目前使用的很多嵌入式系統(tǒng)都是基于沒(méi)有特別設(shè)計(jì)安全機(jī)制的硬件平臺(tái)。本文以原ARM處理器平臺(tái)為例,通過(guò)增加1塊安全協(xié)處理器,就可以實(shí)現(xiàn)低成本、有實(shí)效的安全保護(hù),并且能夠抵御兩類(lèi)比較寬泛的攻擊:一類(lèi)是在系統(tǒng)的啟動(dòng)過(guò)程中的攻擊,如果系統(tǒng)啟動(dòng)過(guò)程中沒(méi)有安全保護(hù)措施,很可能被非法用戶(hù)使用非授權(quán)的軟件。另一類(lèi)是外部存儲(chǔ)器及總線(xiàn)攻擊,當(dāng)程序代碼保存在外部非易失存儲(chǔ)器上時(shí),可以輕易被黑客拷貝。另外,片外存儲(chǔ)器與片上系統(tǒng)(SoC)之間的總線(xiàn)傳輸也容易受到攻擊。
1 硬件結(jié)構(gòu)
本方案的硬件結(jié)構(gòu)如圖1所示。處理器平臺(tái)采用三星公司的S3C2442,內(nèi)核為ARM920T,外置1塊2 MB的NorFlash用以存放密文數(shù)據(jù),ARM通過(guò)總線(xiàn)方式對(duì)NorFlash進(jìn)行訪(fǎng)問(wèn),該硬件結(jié)構(gòu)中最重要的部分是添加了1塊安全協(xié)處理器:福華公司的嵌入式系統(tǒng)軟件保護(hù)芯片F(xiàn)S8826。該芯片可通過(guò)I2C或SPI總線(xiàn)與SOC連接,這里使用I2C方式。PC機(jī)能夠?qū)τ布脚_(tái)中的每個(gè)芯片進(jìn)行編程控制:通過(guò)JTAG端口、串口及網(wǎng)口與ARM進(jìn)行通信,通過(guò)專(zhuān)門(mén)的燒錄器對(duì)FS8826的硬件密鑰和安全存儲(chǔ)區(qū)進(jìn)行寫(xiě)入。
軟件設(shè)計(jì)從兩個(gè)主要方面考慮,一是代碼加密,二是版權(quán)認(rèn)證。前者主要通過(guò)AES(Advanced Encryptiong Standard)加解密算法實(shí)現(xiàn),其算法密鑰的管理以及版權(quán)認(rèn)證將依靠FS8826來(lái)實(shí)現(xiàn),最終達(dá)到安全啟動(dòng)嵌入式操作系統(tǒng)以及保護(hù)運(yùn)行時(shí)的版權(quán)目的。安全啟動(dòng)方案基于Bootloader+Image的加載機(jī)制,也是ARM處理器通用的引導(dǎo)機(jī)制。首先采用AES加解密算法在PC機(jī)端將編譯完成Image加密,利用FS8826安全存儲(chǔ)區(qū)存放AES算法密鑰,密文存儲(chǔ)在片外存儲(chǔ)器中,ARM啟動(dòng)時(shí)將密文加載入內(nèi)存。然后在Bootloader啟動(dòng)過(guò)程時(shí)加入與FS8826的認(rèn)證操作,認(rèn)證通過(guò)則在該過(guò)程中使用AES解密算法解密Image,并用明文將原內(nèi)存中的密文覆蓋,系統(tǒng)正常運(yùn)行中加入與FS8826的實(shí)時(shí)通信監(jiān)測(cè),確保在授權(quán)目標(biāo)機(jī)上運(yùn)行程序。軟件實(shí)現(xiàn)流程如圖2所示,相應(yīng)的方案實(shí)現(xiàn)框圖如圖3所示。
2.1 AES算法
AES是美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)研究所(NIST)選定的高級(jí)加密標(biāo)準(zhǔn),是目前對(duì)稱(chēng)加密領(lǐng)域內(nèi)的主流算法。其數(shù)據(jù)分組固定為128 bit,密鑰分組可支持128 bit/192 bit/256 bit。核心過(guò)程為數(shù)據(jù)塊矩陣的Nr(10/12/14)次輪操作。每一次輪操作都由S盒代換(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和輪密鑰加(AddRoundKey)4個(gè)函數(shù)組成,第Nr次輪操作不包含MixColumns 函數(shù)。密鑰擴(kuò)展為每一輪變換提供輪密鑰[2]。本方案中加密在PC機(jī)端離線(xiàn)完成,沒(méi)有時(shí)間和運(yùn)行效率的特別要求,但是解密在ARM9處理器中完成,其運(yùn)行時(shí)間將作為系統(tǒng)啟動(dòng)的一部分,所以下面針對(duì)解密部分的算法程序結(jié)合其實(shí)現(xiàn)平臺(tái)進(jìn)行優(yōu)化設(shè)計(jì)。
直接的解密算法是將加密過(guò)程的每一步求逆并倒置次序得到,然而這樣并不利于優(yōu)化。算法的創(chuàng)始人提出了一種等價(jià)解密過(guò)程,在解密的輪變換中交換逆行移位和逆S盒代換,輪密鑰加和逆列混淆的順序,只需要調(diào)整密鑰的編排方案即可。在實(shí)現(xiàn)中等價(jià)解密過(guò)程可以將解密輪變換中的前3個(gè)步驟綜合生成1張4 KB的T表用于查詢(xún),即可快速準(zhǔn)確地完成解密[2]。具體流程如圖4所示。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV