根據(jù)馬斯洛需求理論,當滿足了溫飽之后,人們就會開始謀求更高層次的需求,物聯(lián)網(wǎng)發(fā)展到現(xiàn)在,很多公司也擺脫了低層次的“出貨量”的需求,開始尋求更高層次的溢價。
安全,作為下一個層次的重要支撐點,開始成為物聯(lián)網(wǎng)新寵。相應的,芯片商開始適應這種需求,推出了適應性產(chǎn)品 ,Arm Cortex-M23 和 M33 內(nèi)核就是代表。
安全芯片可能并不“安全”
彼時,很多文章著重介紹以上兩款內(nèi)核的安全性。例如:支持 Trustzone-M,安全啟動等等。去年剛剛推出的時候,筆者由于忙于畢業(yè)設計,也就是簡單看了看,沒有過多關注,直到前幾天發(fā)現(xiàn)了一篇博文” Nuvoton M2351 MKROM (ArmV8-M TrustZone)” 。
圖源 | chipsecurity.org
作者通過錯誤注入攻擊,成功攻破新唐 M23 核心的 AES(Advanced Encryption Standard,高級加密標準)加密。在筆者印象中,這是 CC EAL 評級認證體系中定義的安全芯片絕對不允許出現(xiàn)的情況。
在另一篇論文” On-Device Power Analysis Across Hardware Security Domains” 中,作者攻擊了 MICROCHIP 的 SAM L11(首款量產(chǎn)的 M23 核芯片),作者不但使用側信道攻擊攻破了 AES。
此外,作者還玩了一個“騷操作”:用芯片自帶的模數(shù)轉(zhuǎn)換器獲得功耗數(shù)據(jù),之后做側信道攻擊,攻破了芯片的 AES,這也和我頭腦中的安全芯片的概念大相徑庭。
因此,對于 M23 和 M33 介紹文章中鋪天蓋地的“安全”,并不是筆者心里的安全。當然,這也有可能給應用工程師帶來困惑,并不是應用工程師心里所定義的安全,于是有了這篇文章。
工程師眼里的安全“三把斧”
這里先簡單介紹一下應用工程師眼里的安全的概念,相信大家之后會更好的區(qū)分三種安全的概念。
先說一下軟件安全(由于防御的攻擊主要來自于軟件威脅,就姑且以此稱之)。雖說是軟件安全,但是還是要硬件支持一部分的,比如 TrustZone 對總線的調(diào)整和安全啟動的硬件根簽名。他們的目的是針對軟件上的一些攻擊進行防御,比如保護指紋信息(TrustZone)或者只讓芯片加載受信任的系統(tǒng)(安全啟動)。
如果說軟件攻擊還比較溫柔,硬件攻擊就顯得暴力和玄學了許多。硬件攻擊要么是通過使用示波器監(jiān)視芯片的功耗波動來獲取秘鑰(側信道攻擊);要么是干擾芯片的運行使得芯片跳過一些指令,以達到越權的攻擊效果,比如電源錯誤注入繞過芯片的固件保護;
要么是去除芯片的封裝,用微探針或激光直接針對 die(去除外殼封裝的硅片)進行操作,修改芯片的邏輯,讀取數(shù)據(jù)。對于這種“旁門”攻擊,防御手段一般是對電源噪音加一些干擾,或者直接進行特殊的版圖設計,增減物理防御的功能。
物理攻擊可以攻破軟件安全的一些防御,除了上文中攻破 AES 秘鑰之外,著名硬件安全公司 riscure 也在他們的官網(wǎng)公開了很多實用硬件攻擊攻破安全啟動的文章和文件 。
另外不得不提的是功能安全,功能安全在英語中是”safety“,區(qū)別于信息安全類的“security”。一般指的是在苛刻環(huán)境中,例如車輛甚至宇宙軌道中,芯片可以正常工作,不會跑飛。比如說你買了一輛互聯(lián)網(wǎng)汽車,汽車的氣囊和主動剎車就屬于功能安全,而保證你的汽車不會被網(wǎng)絡攻擊者控制屬于信息安全。
做一個不太恰當懂得比喻,功能安全是淬火鋼化玻璃,破了之后小的碎片沒有尖銳棱角,不易傷人;軟件安全是防彈玻璃,特別結實;硬件安全是超級防炮彈玻璃,可以拿炮轟。當然,功能安全有時候可能更貴,比如宇航標準的驗證費用就比硬件安全的 CC 認證貴多了。
相對與絕對的迷思
硬件安全是軟件安全的升級版本,TrustZone 技術也可以說是為了降低 inSE(片內(nèi)硬件安全單元)的成本而出現(xiàn)的。
當然,筆者也不認為例如 stm32 一類的非安全芯片無法抵御物理攻擊是一種漏洞,畢竟物理攻擊的成本和對攻擊者水平的要求都很高,安全溢價應該讓有安全需求的人去承擔,正如我們都知道防彈玻璃結實但是我們不可能把所有的玻璃都換成防彈的。
綜上所述,開發(fā)應用的時候,芯片所提供的安全防護級別,以及您能接受多大的成本上升,這需要您仔細的評估。
如果需要固件不受篡改,芯片僅僅需要支持安全啟動,如果固件中的算法是您公司安身立命的根本,絕對不允許泄漏,就請使用 CC EAL4+甚至 5+認證的產(chǎn)品并正確開發(fā)安全組件。筆者也希望廠商的宣傳中,可以明確產(chǎn)品對安全的定義,減少應用工程師選型的難度。
最后說一句,沒有絕對的安全,即便是超級防炮彈玻璃,也可能有縫隙,也有可能被轟開,TrustZon 和硬件安全芯片也出現(xiàn)過漏洞,一些產(chǎn)品的安全組件軟硬件協(xié)調(diào)也出現(xiàn)過問題。安全從來不是硬件或軟件單獨的事情,整體的安全才是真正的安全。
?