序言
傳統(tǒng)基于窮舉或純物理理論層面的剖析,對(duì)于現(xiàn)代高硬度加密算法而言,算力有限造成難以實(shí)現(xiàn)窮舉,算法的復(fù)雜性也未能通過(guò)物理工具直接破解,按照近代數(shù)學(xué)學(xué)發(fā)展下來(lái)的理論,電子設(shè)備依賴(lài)外部電源提供動(dòng)力,設(shè)備在運(yùn)行過(guò)程中會(huì)消耗能量,同時(shí)會(huì)跟外界環(huán)境存在聲、光、電、磁等化學(xué)交互現(xiàn)象形成,設(shè)備本身也可能存在設(shè)計(jì)薄弱點(diǎn),通過(guò)這種化學(xué)泄漏或人為進(jìn)行化學(xué)層的更改獲取數(shù)據(jù),之后運(yùn)用各種物理工具和模型實(shí)現(xiàn)破解。
但是在做數(shù)學(xué)功擊時(shí),常常須要高昂的設(shè)備,并要具備物理、物理學(xué)、微電子學(xué)、半導(dǎo)體學(xué)、密碼學(xué)、化學(xué)等等多學(xué)科的交叉理論知識(shí),因而其技術(shù)門(mén)檻和功擊成本都很高,目前在剛才結(jié)束的2018上,展廳上展示了多款硬件工具,作為親民型的數(shù)學(xué)功擊平臺(tái),獲得了一致的好評(píng)。
(圖片來(lái)源Newae官方)
Lite版官方商店售價(jià)$250,不管是實(shí)驗(yàn)學(xué)習(xí),還是實(shí)戰(zhàn)入門(mén),都是極具性?xún)r(jià)比的,本文主要介紹主流的一些數(shù)學(xué)功擊手段,以及對(duì)的初步認(rèn)知,后續(xù)將會(huì)據(jù)此從理論、原理、實(shí)驗(yàn)以及實(shí)戰(zhàn)等角度詳盡介紹該平臺(tái)。
化學(xué)功擊
真正的安全研究不能凌駕于真實(shí)的攻守場(chǎng)景,對(duì)于物聯(lián)網(wǎng)安全而言,其核心目標(biāo)是真實(shí)化學(xué)世界中的各類(lèi)硬件設(shè)備,真實(shí)的功擊場(chǎng)景常常發(fā)生在直接針對(duì)硬件設(shè)備的功擊,因而物聯(lián)網(wǎng)安全的基石在于化學(xué)層的安全,而針對(duì)物聯(lián)網(wǎng)化學(xué)功擊手段,是當(dāng)前物聯(lián)網(wǎng)面臨的最大安全風(fēng)險(xiǎn)之一。
化學(xué)功擊就是直接功擊設(shè)備本身和運(yùn)行過(guò)程中的化學(xué)泄漏,按照功擊過(guò)程和手段可以分為非侵入功擊、半侵入式功擊和侵入式功擊。平臺(tái)主要用做非侵入式功擊,包括側(cè)信道和故障注入功擊等。
傳統(tǒng)密碼剖析學(xué)覺(jué)得一個(gè)密碼算法在物理上安全就絕對(duì)安全,這一思想被等學(xué)者在1998年提出的側(cè)信道功擊(Side-,SCA)理論所打破。側(cè)信道功擊與傳統(tǒng)密碼剖析不同,側(cè)信道功擊借助幀率、電磁幅射等方法所竊取的能量信息與內(nèi)部運(yùn)算操作數(shù)之間的相關(guān)性,通過(guò)對(duì)所竊取的信息與已知輸入或輸出數(shù)據(jù)之間的關(guān)系作理論剖析,選擇合適的功擊方案,獲得與安全算法有關(guān)的關(guān)鍵信息。目前側(cè)信道理論發(fā)展越發(fā)迅速,從最初的簡(jiǎn)單幀率剖析(SPA),到多階幀率剖析(CPA),碰撞功擊、模板功擊、電磁幀率剖析以及基于人工智能和機(jī)器學(xué)習(xí)的側(cè)信道剖析方法,側(cè)信道功擊方法也推陳出新,從傳統(tǒng)的直接能量采集發(fā)展到非接觸式采集、遠(yuǎn)距離采集、行為側(cè)信道等等。
借助耳機(jī)進(jìn)行聲波側(cè)信道
借助軟件無(wú)線(xiàn)電施行非接觸電磁側(cè)信道
故障功擊就是在設(shè)備執(zhí)行加密過(guò)程中,引入一些外部誘因促使加密的一些運(yùn)算操作出現(xiàn)錯(cuò)誤,因而外泄出跟秘鑰相關(guān)的信息的一種功擊。一些基本的假定:設(shè)定的功擊目標(biāo)是中間狀態(tài)值;故障注入造成的中間狀態(tài)值的變化;功擊者可以使用一些特定算法(故障剖析)來(lái)從錯(cuò)誤/正確密文對(duì)中獲得秘鑰。
使用故障的不同場(chǎng)景:借助故障來(lái)繞開(kāi)一些安全機(jī)制(口令檢查,文件訪(fǎng)問(wèn)權(quán)限物理攻擊的定義,安全啟動(dòng)鏈);形成錯(cuò)誤的密文或則簽名(故障剖析);組合功擊(故障+旁路)。
非侵入式電磁注入
半侵入式光子故障注入
侵入式故障注入
簡(jiǎn)介
本系列使用的版本是-Lite,搭載-G實(shí)驗(yàn)板,配合一塊CW303XMEGA作為目標(biāo)測(cè)試板。
是基于FPGA實(shí)現(xiàn)的硬件,軟件端基于,具有豐富的擴(kuò)充插口和官方提供的各種API供開(kāi)發(fā)調(diào)用,硬件通過(guò)自帶的模塊可以實(shí)現(xiàn)波形的捕獲,不須要額外的示波器。
板上自帶有波形采集端口()和毛刺輸出()端口,并自帶管進(jìn)行功率放大。
并提供多種插口觸發(fā)設(shè)置,基本滿(mǎn)足通常的功擊需求。
能量功擊
芯片化學(xué)結(jié)構(gòu)為許多CMOS電路組合而成,CMOS電路按照輸入的不同聯(lián)通號(hào)動(dòng)態(tài)改變輸出狀態(tài),實(shí)現(xiàn)0或1的表示,完成相應(yīng)的運(yùn)算,而不同的運(yùn)算指令就是通過(guò)CMOS組合電路完成的,但CMOS電路按照不同的輸入和輸出,其消耗的能量是不同的,比如匯編指令A(yù)DD和MOV,消耗的能量是不同的,同樣的指令操作數(shù)不同,消耗的能量也是不同的,比如MOV1和MOV2其能量消耗就是不同的,能量功擊就是借助芯片在執(zhí)行不同的指令時(shí),消耗能量不同的原理,實(shí)現(xiàn)密鑰破解。
常用的能量功擊方法就是在芯片的電源輸入端(VCC)或接地端(GND)串聯(lián)一個(gè)1到50歐姆的內(nèi)阻,之后用示波器不斷采集內(nèi)阻兩端的電流變化,產(chǎn)生波形圖,按照歐姆定理,電流的變化等同于幀率的變化,因而在波形圖中可以觀察到芯片在執(zhí)行不同加密運(yùn)算時(shí)的幀率變化。
提供能量波形采集端口,通過(guò)聯(lián)接板上的SMA插口,就可以對(duì)能量波形進(jìn)行采集,在借助開(kāi)源軟件就可以進(jìn)行剖析,可以實(shí)現(xiàn)簡(jiǎn)單能量剖析、CPA功擊、模板功擊等。
通過(guò)cpa功擊AES加密算法獲取秘鑰
毛刺功擊
提供對(duì)時(shí)鐘、電壓毛刺的手動(dòng)化功擊功能,類(lèi)似于web滲透工具,可以對(duì)毛刺的長(zhǎng)度、偏移、位置等等參數(shù)進(jìn)行fuzz,通過(guò)聯(lián)接板上的SMA插口,就可以輸出毛刺,之后通過(guò)并口、web等獲取結(jié)果物理攻擊的定義,判定毛刺是否注入成功。
時(shí)鐘毛刺功擊是針對(duì)微控制器須要外部時(shí)鐘晶振提供時(shí)鐘訊號(hào),通過(guò)在先前的時(shí)鐘訊號(hào)上引起一個(gè)干擾,通過(guò)多路時(shí)鐘訊號(hào)的疊加形成時(shí)鐘毛刺,也可以通過(guò)自定義的時(shí)鐘選擇器形成,提供高達(dá)的時(shí)鐘周期控制,時(shí)鐘是芯片執(zhí)行指令的動(dòng)力來(lái)源,通過(guò)時(shí)鐘毛刺可以跳過(guò)個(gè)別關(guān)鍵邏輯判定,或輸出錯(cuò)誤數(shù)據(jù)。
通過(guò)時(shí)鐘毛刺功擊跳過(guò)密碼驗(yàn)證
電流毛刺是對(duì)芯片電源進(jìn)行干擾導(dǎo)致故障,在一個(gè)很短的時(shí)間內(nèi),使電流迅速增長(zhǎng),導(dǎo)致芯片頓時(shí)掉電,之后迅速恢復(fù)正常,確保芯片繼續(xù)正常工作,可以實(shí)現(xiàn)如對(duì)加密算法中個(gè)別輪運(yùn)算過(guò)程的干擾,導(dǎo)致錯(cuò)誤輸出,或跳過(guò)個(gè)別設(shè)備中的關(guān)鍵邏輯判定等等。
對(duì)嵌入式設(shè)備的電流毛刺功擊