量產(chǎn)主控芯片的網(wǎng)絡安全設計
?“網(wǎng)絡安全”這個詞廣義上指包含網(wǎng)絡系統(tǒng)中的硬件,軟件,數(shù)據(jù)的傳輸和存儲的安全,信息系統(tǒng)的完整和保密等受到保護。因為現(xiàn)今絕大部分IOT設備和汽車ECU都以某種方式連到網(wǎng)絡訪問,所以網(wǎng)絡安全的覆蓋范圍非常廣泛,嵌入式系統(tǒng)即使不聯(lián)到Internet,只要和外界有所信息交互,也會涉及到網(wǎng)絡安全。網(wǎng)絡安全有一套系統(tǒng)方法,其中芯片硬件支持的安全是基礎。
1 網(wǎng)絡安全市場現(xiàn)狀
網(wǎng)絡安全越來越受到重視,雖然各種安全芯片和算法不斷被發(fā)明,可是“道高一尺,魔高一丈”,即使是大家公認的網(wǎng)絡安全水平比較高的iPhone手機, Tesla汽車也有被黑客發(fā)現(xiàn)漏洞而利用的例子。這時,如果對于網(wǎng)絡安全技術的發(fā)展過程不甚了解,有可能會陷入恐慌。特別是汽車自動駕駛域控制器,要在復雜的硬件軟件體系上,不僅要和本地設備通信,也許還要在背景通過OTA做功能升級,這種場景需要控制器芯片從底層硬件和軟件打好網(wǎng)絡安全基礎。
網(wǎng)絡安全而是以幾門相關學科做基礎,加上大量工程實踐疊加而成,是可循序漸進地了解,進行比較和參照的。以下我們來看看芯片相關的安全設計基本準則。
2 芯片網(wǎng)絡安全設計的基本準則
網(wǎng)絡安全設計是相關技術要素和方法的有機組合。這篇微軟的論文:The Seven Properties of Highly Secure Devices (MSR-TR-2017-16)對此進行了很好的列舉。基于這種準則和市場需求,并結(jié)合技術實現(xiàn)細節(jié),我參與了安霸CV系列芯片的網(wǎng)絡安全設計,經(jīng)過團隊幾年的努力,這些CV2x系列芯片已經(jīng)在安防和汽車行業(yè)成功量產(chǎn),得到領先客戶的認可。
這7條基本準則是:
a. 芯片需要含有硬件保護的信任根
設備的機密信息的到硬件保護,并且這個信任根可以在硬件設計中抵御已知的旁路攻擊。信任根通常是在不可修改的存儲器上的一組或者多組密鑰,而且不允許用戶直接讀出。這里通常采用的加密算法會使用基于公鑰系統(tǒng)的比如RSA,ECC類的算法,其中公鑰會在系統(tǒng)啟動過程中,驗證啟動代碼的各個環(huán)節(jié)是否被篡改。
b. 芯片含有安全執(zhí)行環(huán)境
專用加密芯片通常有內(nèi)建的安全執(zhí)行環(huán)境比如蘋果手機用的Secure Enclave;主流Android手機則使用ARM的TrustZone,汽車的ECU和域控制器可使用HSM。這些設計原理類似,但功能,性能和安全等級不同。
安全執(zhí)行環(huán)境意味著內(nèi)部的操作通常受限,并且和主要的應用程序執(zhí)行環(huán)境間的信息交流也受限。一般說來,系統(tǒng)開放的功能越多,接口越豐富,潛在安全風險點越多,所以在能滿足需求的情況下,”信息安全島”需要盡可能小而且簡單。
c. 芯片安全需要縱深防御
縱深防御是一種必要的安全策略。這種“洋蔥皮”式的設計,使得單層系統(tǒng)的弱點如果被攻破以后,并不會導致系統(tǒng)安全的全面崩潰。比如,即使使用了TrustZone來保護生物信息驗證,系統(tǒng)還是可以使用軟件層面的SELinux來設置程序權(quán)限來阻止不希望打開的權(quán)限。而且系統(tǒng)的配置也可能要考慮到防止root用戶遠程登錄,并且保護root用戶的密碼。
d. 芯片安全需要分區(qū)隔離
輪船的密封艙,圖片來自網(wǎng)絡
隔離就是一種“密封艙”的思想。安全的系統(tǒng)可以由硬件建立一個個屏障,讓單個模塊帶來的安全風險,難以轉(zhuǎn)移到別的模塊。“分區(qū)隔離”的做法常采用把軟件模塊的內(nèi)存地址空間進行分離。Linux系統(tǒng)設立了用戶空間和內(nèi)核空間,就已經(jīng)對大部分應用程序做了一層隔離。ARM TrustZone的Secure World和Normal world之間也被隔離。使用虛擬機等技術等對整個操作系統(tǒng)進行隔離,也是分區(qū)隔離的一種例子。
而簡單RTOS則沒有進行內(nèi)存隔離,不僅僅一個軟件模塊的地址越界錯誤可能影響整個系統(tǒng)并導致崩潰,而且一個軟件模塊中的安全漏洞也會傳播到別的模塊。
e. 基于證書鏈的安全認證
公鑰體系(PKI = Public Key Infrastructure)極大地提升了系統(tǒng)認證的安全性。
舊有的方式,比如Windows默認的登錄方式就是用戶名/密碼,這種如果用于遠程登錄,則一旦用戶名和密碼泄漏,則無法區(qū)分用戶身份是否真實,一般的可以采用“兩步驗證”的方法加以改善,但仍然比較麻煩。
基于公鑰系統(tǒng)的證書則是從機制上保證可靠。比如銀行手機APP可以對用戶的手機的唯一標識符做數(shù)字簽名,并頒發(fā)證書保護這個數(shù)字簽名,證書內(nèi)包含著銀行APP的公鑰。這樣在用戶用網(wǎng)銀時,服務器端收到用戶發(fā)過來的加簽名和證書的請求數(shù)據(jù),進行校驗即可確認這個數(shù)據(jù)是否被被篡改,并且這個業(yè)務請求的來源是否真實。
公鑰機制需要安全芯片自帶RSA/ECC等非對稱加密算法引擎,或者支持在ARM的Secure world內(nèi)運行,并且對相關的密鑰進行可靠的保護。
f. 可以更新的安全密鑰
為了對抗不斷發(fā)現(xiàn)的新安全威脅,安全策略也需要不斷被更新。對于已經(jīng)發(fā)現(xiàn)的安全漏洞(CVE等),需要及時彌補,包括廢止和更新密鑰的機制。
為什么發(fā)現(xiàn)安全漏洞了還有機會升級更新呢?這就是因為前面已經(jīng)說過的“縱深防御”和“分區(qū)隔離”,也許系統(tǒng)底層還尚未被黑客攻破。特別對于0-day安全漏洞,及時進行升級可消除安全隱患,這也是OTA的重要意義之一。
g. 匯報網(wǎng)絡安全失效的機制
系統(tǒng)的任何和安全相關的失效或者潛在相關的異常,都需要匯報到后臺管理。黑客往往不是通過單次攻擊成功進入系統(tǒng)的,而是經(jīng)過反復嘗試。所以系統(tǒng)的。錯誤日志往往包含著有價值的信息,可用于增進防范的策略,改善安全措施。
“安全啟動(Secure boot)“ 如果在啟動過程中遇到錯誤,比如密鑰校驗錯,通常是停下來,或者進入功能受限的“安全狀態(tài)”以待維修。這項技術的一種發(fā)展趨勢是走向“measured boot”,也叫“trusted boot”。 “Measured boot”字面的意思是“可量度的啟動”,但目前我沒看到有廣泛接受的中文翻譯。Measured boot要求啟動并不中斷,而是把參與啟動的模塊信息和狀態(tài)記錄下來,包括錯誤,以待后面再進行校驗,通常measured boot這些記錄要寫入帶有安全存儲的硬件,比如TPM或者HSM。
3 網(wǎng)絡安全在芯片內(nèi)的具體實現(xiàn)
3.1 需要防范的風險
要做好安全防范,還要考慮黑客可能如何攻擊系統(tǒng),常見的黑客攻擊方法包括:
a. 通過測試/調(diào)試硬件接口攻擊,比如USB,串口等
b. 通過軟件調(diào)試接口攻擊,比如有一些產(chǎn)品的bootloader留有調(diào)試命令
c. 利用系統(tǒng)已知漏洞攻擊,比如Linux Kernel已知的CVE
d. 利用應用層軟件bug攻擊,比如利用bug造成緩存區(qū)溢出攻擊
e. 嗅探網(wǎng)絡數(shù)據(jù),盜取用戶信息或者口令
f. 攻擊系統(tǒng)登錄口令,一般采用窮舉或者字典法嘗試登錄口令
g. 通過替換硬件模塊攻擊,比如替換NAND/eMMC等系統(tǒng)存儲
h. 通過硬件bus攻擊,通過bus讀取/篡改數(shù)據(jù)
i. 回滾攻擊,攻擊者將系統(tǒng)版本回滾,然后利用舊版本已知漏洞來攻擊。
j. 回放攻擊,攻擊者記錄“認證通過的回應”,用它來試圖通過下一次認證
3.2 芯片的硬件安全設計
一個可靠的網(wǎng)絡安全系統(tǒng),要求芯片從源頭上做好安全防范,由此我們列出芯片的硬件安全設計要點:
a. 不可修改的SecureROM用于安全啟動
b. 一次性寫的存儲器OTP用于存儲安全啟動公鑰和其他密鑰
c. 真隨機數(shù)生成器(TRNG)
d. 提供可信執(zhí)行環(huán)境TEE (比如ARM TrustZone 或?qū)S肏SM獨立引擎)
e. 安全的總線設計,提供硬件接口的安全配置
f. DRAM scrambling(在LPDDR4總線上的數(shù)據(jù)全是加密的)
g. DRAM硬件地址隔離,不同的主要內(nèi)部控制器可配置DRAM訪問范圍
h. 可禁止JTAG,USB等調(diào)試接口訪問系統(tǒng),可進入永久安全啟動狀態(tài)
安霸在CV2x以后的系列芯片,均采用以上的硬件設計,并不斷改進,符合ARM的TSBA規(guī)范(Trusted Base System Architecture for ARMv8-A),并且在安防行業(yè)的龍頭企業(yè)包括Axis,以及中國國內(nèi),歐美日本等等諸多客戶取得成功量產(chǎn);在中國乘用車行業(yè)也和著名民族品牌合作并成功量產(chǎn)。
3.3 “磐石”網(wǎng)絡安全架構(gòu)與安霸CV2x芯片安全設計
通過安霸CV2x系列芯片安全設計和上層軟件和工具設計,我們實現(xiàn)了“磐石”網(wǎng)絡安全架構(gòu)。
圖為:實現(xiàn)了基于硬件的安全啟動全流程
我們在底層實現(xiàn)了安全啟動,通過上層軟件協(xié)議實現(xiàn)了隱私保護,算法加密,安全存儲,安全傳輸?shù)裙δ埽o用戶一個完整的套件,核心算法對用戶開源。
4. 基于HSM的汽車控制器芯片的網(wǎng)絡安全設計
較為復雜的汽車域控制器芯片更多使用HSM實現(xiàn)網(wǎng)絡安全,主要原因是HSM是系統(tǒng)層面的,不僅僅可以對CPU上的數(shù)據(jù)進行保護,也可以保護MCU,AI引擎,圖像視頻引擎等多個單元,其內(nèi)部帶有安全存儲和加密計算單元,可以用于存儲用戶的保密數(shù)據(jù)如密鑰和證書。2022年初安霸發(fā)布的大算力自動駕駛域控制器芯片CV3,不僅實現(xiàn)了高AI算力,并且也實現(xiàn)了先進的網(wǎng)絡安全。
CV3內(nèi)建HSM,并采用了全新設計,自帶可編程的高性能加密引擎支持各種常見加密算法,內(nèi)建了高速內(nèi)存,自帶OTP以及其他安全計算硬件。不僅可以實現(xiàn)對各個硬件單元的的數(shù)據(jù)安全保護,還可以做系統(tǒng)的安全啟動,內(nèi)存隔離,保存用戶的重要信息,通過對神經(jīng)網(wǎng)絡算法全程加密保護知識產(chǎn)權(quán),把網(wǎng)絡安全以及用戶信息保護提到了新高度。?