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