量產主控芯片的網絡安全設計
?“網絡安全”這個詞廣義上指包含網絡系統中的硬件,軟件,數據的傳輸和存儲的安全,信息系統的完整和保密等受到保護。因為現今絕大部分IOT設備和汽車ECU都以某種方式連到網絡訪問,所以網絡安全的覆蓋范圍非常廣泛,嵌入式系統即使不聯到Internet,只要和外界有所信息交互,也會涉及到網絡安全。網絡安全有一套系統方法,其中芯片硬件支持的安全是基礎。
1 網絡安全市場現狀
網絡安全越來越受到重視,雖然各種安全芯片和算法不斷被發明,可是“道高一尺,魔高一丈”,即使是大家公認的網絡安全水平比較高的iPhone手機, Tesla汽車也有被黑客發現漏洞而利用的例子。這時,如果對于網絡安全技術的發展過程不甚了解,有可能會陷入恐慌。特別是汽車自動駕駛域控制器,要在復雜的硬件軟件體系上,不僅要和本地設備通信,也許還要在背景通過OTA做功能升級,這種場景需要控制器芯片從底層硬件和軟件打好網絡安全基礎。
網絡安全而是以幾門相關學科做基礎,加上大量工程實踐疊加而成,是可循序漸進地了解,進行比較和參照的。以下我們來看看芯片相關的安全設計基本準則。
2 芯片網絡安全設計的基本準則
網絡安全設計是相關技術要素和方法的有機組合。這篇微軟的論文:The Seven Properties of Highly Secure Devices (MSR-TR-2017-16)對此進行了很好的列舉。基于這種準則和市場需求,并結合技術實現細節,我參與了安霸CV系列芯片的網絡安全設計,經過團隊幾年的努力,這些CV2x系列芯片已經在安防和汽車行業成功量產,得到領先客戶的認可。
這7條基本準則是:
a. 芯片需要含有硬件保護的信任根
設備的機密信息的到硬件保護,并且這個信任根可以在硬件設計中抵御已知的旁路攻擊。信任根通常是在不可修改的存儲器上的一組或者多組密鑰,而且不允許用戶直接讀出。這里通常采用的加密算法會使用基于公鑰系統的比如RSA,ECC類的算法,其中公鑰會在系統啟動過程中,驗證啟動代碼的各個環節是否被篡改。
b. 芯片含有安全執行環境
專用加密芯片通常有內建的安全執行環境比如蘋果手機用的Secure Enclave;主流Android手機則使用ARM的TrustZone,汽車的ECU和域控制器可使用HSM。這些設計原理類似,但功能,性能和安全等級不同。
安全執行環境意味著內部的操作通常受限,并且和主要的應用程序執行環境間的信息交流也受限。一般說來,系統開放的功能越多,接口越豐富,潛在安全風險點越多,所以在能滿足需求的情況下,”信息安全島”需要盡可能小而且簡單。
c. 芯片安全需要縱深防御
縱深防御是一種必要的安全策略。這種“洋蔥皮”式的設計,使得單層系統的弱點如果被攻破以后,并不會導致系統安全的全面崩潰。比如,即使使用了TrustZone來保護生物信息驗證,系統還是可以使用軟件層面的SELinux來設置程序權限來阻止不希望打開的權限。而且系統的配置也可能要考慮到防止root用戶遠程登錄,并且保護root用戶的密碼。
d. 芯片安全需要分區隔離

輪船的密封艙,圖片來自網絡
隔離就是一種“密封艙”的思想。安全的系統可以由硬件建立一個個屏障,讓單個模塊帶來的安全風險,難以轉移到別的模塊。“分區隔離”的做法常采用把軟件模塊的內存地址空間進行分離。Linux系統設立了用戶空間和內核空間,就已經對大部分應用程序做了一層隔離。ARM TrustZone的Secure World和Normal world之間也被隔離。使用虛擬機等技術等對整個操作系統進行隔離,也是分區隔離的一種例子。

而簡單RTOS則沒有進行內存隔離,不僅僅一個軟件模塊的地址越界錯誤可能影響整個系統并導致崩潰,而且一個軟件模塊中的安全漏洞也會傳播到別的模塊。
e. 基于證書鏈的安全認證
公鑰體系(PKI = Public Key Infrastructure)極大地提升了系統認證的安全性。
舊有的方式,比如Windows默認的登錄方式就是用戶名/密碼,這種如果用于遠程登錄,則一旦用戶名和密碼泄漏,則無法區分用戶身份是否真實,一般的可以采用“兩步驗證”的方法加以改善,但仍然比較麻煩。
基于公鑰系統的證書則是從機制上保證可靠。比如銀行手機APP可以對用戶的手機的唯一標識符做數字簽名,并頒發證書保護這個數字簽名,證書內包含著銀行APP的公鑰。這樣在用戶用網銀時,服務器端收到用戶發過來的加簽名和證書的請求數據,進行校驗即可確認這個數據是否被被篡改,并且這個業務請求的來源是否真實。
公鑰機制需要安全芯片自帶RSA/ECC等非對稱加密算法引擎,或者支持在ARM的Secure world內運行,并且對相關的密鑰進行可靠的保護。
f. 可以更新的安全密鑰
為了對抗不斷發現的新安全威脅,安全策略也需要不斷被更新。對于已經發現的安全漏洞(CVE等),需要及時彌補,包括廢止和更新密鑰的機制。
為什么發現安全漏洞了還有機會升級更新呢?這就是因為前面已經說過的“縱深防御”和“分區隔離”,也許系統底層還尚未被黑客攻破。特別對于0-day安全漏洞,及時進行升級可消除安全隱患,這也是OTA的重要意義之一。
g. 匯報網絡安全失效的機制
系統的任何和安全相關的失效或者潛在相關的異常,都需要匯報到后臺管理。黑客往往不是通過單次攻擊成功進入系統的,而是經過反復嘗試。所以系統的。錯誤日志往往包含著有價值的信息,可用于增進防范的策略,改善安全措施。
“安全啟動(Secure boot)“ 如果在啟動過程中遇到錯誤,比如密鑰校驗錯,通常是停下來,或者進入功能受限的“安全狀態”以待維修。這項技術的一種發展趨勢是走向“measured boot”,也叫“trusted boot”。 “Measured boot”字面的意思是“可量度的啟動”,但目前我沒看到有廣泛接受的中文翻譯。Measured boot要求啟動并不中斷,而是把參與啟動的模塊信息和狀態記錄下來,包括錯誤,以待后面再進行校驗,通常measured boot這些記錄要寫入帶有安全存儲的硬件,比如TPM或者HSM。
3 網絡安全在芯片內的具體實現
3.1 需要防范的風險
要做好安全防范,還要考慮黑客可能如何攻擊系統,常見的黑客攻擊方法包括:
a. 通過測試/調試硬件接口攻擊,比如USB,串口等
b. 通過軟件調試接口攻擊,比如有一些產品的bootloader留有調試命令
c. 利用系統已知漏洞攻擊,比如Linux Kernel已知的CVE
d. 利用應用層軟件bug攻擊,比如利用bug造成緩存區溢出攻擊
e. 嗅探網絡數據,盜取用戶信息或者口令
f. 攻擊系統登錄口令,一般采用窮舉或者字典法嘗試登錄口令
g. 通過替換硬件模塊攻擊,比如替換NAND/eMMC等系統存儲
h. 通過硬件bus攻擊,通過bus讀取/篡改數據
i. 回滾攻擊,攻擊者將系統版本回滾,然后利用舊版本已知漏洞來攻擊。
j. 回放攻擊,攻擊者記錄“認證通過的回應”,用它來試圖通過下一次認證
3.2 芯片的硬件安全設計
一個可靠的網絡安全系統,要求芯片從源頭上做好安全防范,由此我們列出芯片的硬件安全設計要點:
a. 不可修改的SecureROM用于安全啟動
b. 一次性寫的存儲器OTP用于存儲安全啟動公鑰和其他密鑰
c. 真隨機數生成器(TRNG)
d. 提供可信執行環境TEE (比如ARM TrustZone 或專用HSM獨立引擎)
e. 安全的總線設計,提供硬件接口的安全配置
f. DRAM scrambling(在LPDDR4總線上的數據全是加密的)
g. DRAM硬件地址隔離,不同的主要內部控制器可配置DRAM訪問范圍
h. 可禁止JTAG,USB等調試接口訪問系統,可進入永久安全啟動狀態
安霸在CV2x以后的系列芯片,均采用以上的硬件設計,并不斷改進,符合ARM的TSBA規范(Trusted Base System Architecture for ARMv8-A),并且在安防行業的龍頭企業包括Axis,以及中國國內,歐美日本等等諸多客戶取得成功量產;在中國乘用車行業也和著名民族品牌合作并成功量產。
3.3 “磐石”網絡安全架構與安霸CV2x芯片安全設計

通過安霸CV2x系列芯片安全設計和上層軟件和工具設計,我們實現了“磐石”網絡安全架構。

圖為:實現了基于硬件的安全啟動全流程
我們在底層實現了安全啟動,通過上層軟件協議實現了隱私保護,算法加密,安全存儲,安全傳輸等功能,給用戶一個完整的套件,核心算法對用戶開源。
4. 基于HSM的汽車控制器芯片的網絡安全設計
較為復雜的汽車域控制器芯片更多使用HSM實現網絡安全,主要原因是HSM是系統層面的,不僅僅可以對CPU上的數據進行保護,也可以保護MCU,AI引擎,圖像視頻引擎等多個單元,其內部帶有安全存儲和加密計算單元,可以用于存儲用戶的保密數據如密鑰和證書。2022年初安霸發布的大算力自動駕駛域控制器芯片CV3,不僅實現了高AI算力,并且也實現了先進的網絡安全。

CV3內建HSM,并采用了全新設計,自帶可編程的高性能加密引擎支持各種常見加密算法,內建了高速內存,自帶OTP以及其他安全計算硬件。不僅可以實現對各個硬件單元的的數據安全保護,還可以做系統的安全啟動,內存隔離,保存用戶的重要信息,通過對神經網絡算法全程加密保護知識產權,把網絡安全以及用戶信息保護提到了新高度。?
























