物聯(lián)網(wǎng)的出現(xiàn)為社會帶來了許多潛在的好處,這其中包括家庭自動化、環(huán)境監(jiān)測、工業(yè)4.0以及更長遠的智能城市等各個方面。令人難以置信的物聯(lián)網(wǎng)網(wǎng)絡(luò)規(guī)模及其導致的普遍性是這項技術(shù)的價值所在,物聯(lián)網(wǎng)中包括數(shù)十億個連接節(jié)點,所有這些節(jié)點都可以獲取數(shù)據(jù),然后對其進行編譯和分析,并在隨后采取相應行動。然而,這也是它的脆弱性所在。
根據(jù)定義,物聯(lián)網(wǎng)節(jié)點的數(shù)量越多,惡意第三方的攻擊面就越大。一旦發(fā)現(xiàn)漏洞并發(fā)生入侵,就可以侵入到整個網(wǎng)絡(luò),惡意軟件基本上能夠致使網(wǎng)絡(luò)無法運行,拒絕服務(wù)(DoS)攻擊能夠?qū)е峦ㄐ胖袛啵I(yè)間諜也能夠從網(wǎng)絡(luò)中提取敏感信息。
盡管在確保物聯(lián)網(wǎng)網(wǎng)絡(luò)安全方面有明確要考慮的其他措施,但安全的基礎(chǔ)是處于每個節(jié)點微控制器單元(MCU)上運行的軟件完整性,以及MCU硬件本身。現(xiàn)代MCU已經(jīng)集成有一系列不同的保護機制,其中包括復雜的加密/認證引擎、內(nèi)置安全模塊、密鑰管理功能和篡改檢測/預防功能等等。
對于所采用的眾多IoT通信協(xié)議,無論它們是有線還是無線的,當然都要求適當加密/解密,以便充分保護傳入和傳出節(jié)點的數(shù)據(jù)。
有一點極其重要,在MCU啟動時,以某種方式受到未經(jīng)授權(quán)來源干擾或篡改的軟件不允許進入系統(tǒng)。為了防止出現(xiàn)這種情況,需要建立“信任根”,以便可以啟動安全啟動操作。為了確保軟件的有效性,需要具備強大的認證和驗證機制。這樣,對軟件的任何改變都可以被檢測到,并且可采取適當?shù)拇胧﹣矸乐蛊淝秩氲轿锫?lián)網(wǎng)網(wǎng)絡(luò)。此外,軟件存儲器的保護也至關(guān)重要,需要將軟件存儲在非易失性存儲器上,這種存儲器具有強大的安全功能,能夠防止黑客進行修改或發(fā)生某種形式的篡改。
驗證和加密保護
將某種程度的安全性應用到物聯(lián)網(wǎng)基礎(chǔ)設(shè)施的一種方式是采用哈希碼(hash codes)。通過將數(shù)學算法應用于特定數(shù)字資產(chǎn)可以生成哈希碼,從而可以產(chǎn)生與該資產(chǎn)相關(guān)聯(lián)的唯一標識符。通過這種方式,任何此類資產(chǎn)都可以通過簡化和省時的方式進行驗證,只需重新生成其哈希碼即可,這樣可以通過應用相同的算法然后將兩個哈希碼相互比較來完成。
在軟件中執(zhí)行哈希碼算法通常需要大量處理功能,并且也消耗相當多的功率。這實際上違背了物聯(lián)網(wǎng)設(shè)計的基本原則,因為資源通常都是有限的,需要盡可能少地使用能源儲備。我們在后面會討論這些問題。
數(shù)據(jù)加密有兩種基本類型。對稱加密是一個相對簡單的概念,發(fā)送者和接收者都依賴相同的密鑰來加密和解密數(shù)據(jù)。正如您所想到的那樣,采用這種策略的缺點是,如果密鑰落入壞人手中,數(shù)據(jù)加密不僅將毫無用處,而且數(shù)據(jù)可以被泄露。相反,非對稱密鑰方法需要兩個不同的密鑰:私鑰(保密)和公鑰(共享)。在本質(zhì)上,這些密鑰在生成時的狀態(tài)沒有區(qū)別,其中任何一個密鑰都可以作為私鑰或公鑰使用,這只是后續(xù)如何使用密鑰的一個問題。
一種算法允許生成兩個不同但又互補的密鑰,通過一個密鑰加密的任何數(shù)據(jù)可以通過另一個密鑰解密。重要的是,無法使用公鑰對私鑰進行反向工程。因此,共享公鑰并不會破壞私人數(shù)據(jù)財產(chǎn)的安全性。
由于公鑰是免費共享提供,私鑰持有者對通過公鑰加密的數(shù)據(jù)進行任何信任都是不明智的,但任何設(shè)備通過私鑰接收加密數(shù)據(jù)并使用公鑰解密都是安全的。非對稱加密在保證數(shù)據(jù)安全方面比對稱加密更加有效,但這需要付出很多代價,因為它需要更多的計算工作量。
卸載MCU安全性
在成本和功耗受限的物聯(lián)網(wǎng)設(shè)計中,所采用的MCU不需要是復雜的高性能器件。因此,在大多數(shù)情況下,很可能需要彌補實際MCU上的安全功能。指定一個伴隨MCU的協(xié)處理器IC被證明是一種非常有效的方法。
英飛凌的OPTIGA family可信平臺模塊(TPM)擁有非對稱加密操作所需的硬件加速器,例如支持橢圓曲線加密(ECC)和Rivest Shamir Adleman(RSA)算法的加速器,它們還具有生成SHA-1和SHA-256哈希碼所需的算法。通過使用這些TPM,數(shù)據(jù)的加密和解密不再需要由系統(tǒng)MCU處理,而是可以卸載,從而允許MCU資源集中在其他任務(wù)上。這樣做的結(jié)果是,實現(xiàn)系統(tǒng)高度的安全性不再以犧牲MCU的運行性能為代價。
圖1:英飛凌OPTIGA TPM。
Maxim Interated的DS28C36 安全認證芯片同樣可以與任何MCU和外部非易失性存儲器一起完成設(shè)計,以創(chuàng)建信任根,從而可以進行安全啟動或無線更新固件,即使是對于簡單、低成本硬件也可以實現(xiàn)這些。它通過使用公鑰和私鑰以及SHA-256哈希碼來工作,軟件開始在MCU上運行之前需要驗證其真實性,這是通過對稱和非對稱加密的組合來實現(xiàn)。使用DS28C36時,OEM在安全環(huán)境(例如制造站點內(nèi))中生成公鑰和私鑰,私鑰永遠不會離開此位置,因此沒有機會被惡意的未授權(quán)方獲取。使用該私鑰可以對固件進行編碼,相應的公鑰在出貨之前被整合到設(shè)備之中。
圖2:Maxim DS28C36安全認證IC的典型應用電路。
在上電期間,MCU從外部存儲器加載固件,該固件已通過私鑰加密。但MCU并沒有在開始立即運行固件,而是啟動管理器檢索代碼并傳遞給DS28C36,然后DS28C36從固件生成SHA-256哈希碼。接下來,將其與固件證書內(nèi)的哈希碼進行比較,該證書是在安全環(huán)境中通過私鑰加密代碼時生成的。最后,通過DS28C36內(nèi)部的公鑰,代碼簽名得到驗證,DS28C36可以確認MCU運行固件。
圖3:Microchip的ATECC608A。
Microchip的ATECC608A 加密協(xié)處理器產(chǎn)品能夠安全地存儲多達16個不同的密鑰,它通過橢圓曲線數(shù)字簽名算法(ECDSA)、橢圓曲線Diffie-Hellman(ECDH)和NIST標準P256橢圓曲線等來支持非對稱簽名、驗證和密鑰協(xié)商。ATECC608A還集成有用于對稱算法的硬件加速器(例如用于生成SHA-256哈希碼的硬件加速器)以及AES-128加密/解密,還具備安全啟動功能。ATECC608A旨在解決整個密鑰生命周期的問題,包括私鑰生成、ECDH密鑰協(xié)議、ECDSA簽名生成和ECDSA公鑰簽名驗證。它能夠以比標準微處理器上運行的軟件快1000倍的速度執(zhí)行非對稱加密功能,多個私鑰和公鑰組合可以直接存儲在器件內(nèi)部。此外,它還支持隨機私鑰生成,而不允許私鑰離開設(shè)備。公鑰自動生成為此過程的一部分,但也可以在事件之后生成。
物聯(lián)網(wǎng)網(wǎng)絡(luò)的安全性需要從頭開始構(gòu)建,每個節(jié)點都需要相應的布防。很明顯,將安全任務(wù)直接施加到已經(jīng)載荷過度的MCU上可能會適得其反。因此,如果將此任務(wù)卸載到另一個完全集中在安全方面的IC上,將具有多種運行和邏輯上的優(yōu)勢。