自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度解析:對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

安全 終端安全
本文是基于《SoC it to EM: electromagnetic side-channel attacks on a complex system-on-chip》而來,內(nèi)容包括了原文英譯以及個人理解(藍(lán)色標(biāo)注),所以不完全定性為翻譯。

本文是基于《SoC it to EM: electromagnetic side-channel attacks on a complex system-on-chip》而來,內(nèi)容包括了原文英譯以及個人理解(藍(lán)色標(biāo)注),所以不完全定性為翻譯。

導(dǎo)讀

本文比較全面的講到側(cè)信道攻擊對系統(tǒng)芯片的分析,利用AM335X平臺以AES算法為例說明了基于ARM核的軟件實現(xiàn)、AES協(xié)處理器硬件實現(xiàn)或者是擁有快速處理優(yōu)勢的NEON處理器的硬件模塊在進(jìn)行加解密操作的電磁泄漏。文章針對這3種情況對側(cè)信道分析的三個基本環(huán)節(jié)(采集、特征分析、進(jìn)行攻擊)進(jìn)行說明。其中文章篇幅較多的放在信號采集和處理上,目的是獲取可以檢測到真正泄漏信息的電磁波形。至于進(jìn)行攻擊的方法比較常見,文中主要采用單比特DPA/CPA的方式。根據(jù)改進(jìn)的DPA的方式,目前有基于HW或者HD的多比特的DPA或CPA,這有利于對信息充分利用。因為單比特DPA只在乎某一比特那么相對其他的比特位就被當(dāng)成了噪聲,這不利于充分利用信息。

文中值得注意的觀點有:

1.能就與加密有關(guān)。

2.關(guān)于波形的預(yù)處理,文中提出小波變換降噪的方式,這種方式我有所實現(xiàn),且對實際攻擊很有效往往可以提高一倍的效率。另外,對采集的波形的噪聲合理濾除是影響密鑰提取的關(guān)鍵。

3.側(cè)信道攻擊的一個優(yōu)勢是進(jìn)行黑盒攻擊,可以不需要清晰知道硬件內(nèi)部設(shè)計就可以實施攻擊得到密鑰。

4.ARM核和NEON核的對比上,對不同指令的泄漏進(jìn)行了分析。說明了NEON核泄漏相對較少。這是因為NEON核采用并行結(jié)構(gòu)設(shè)計,這對攻擊所需的信息量是有所減少的,但并不代表無法實現(xiàn)攻擊。這是因此模塊總體上實現(xiàn)并行結(jié)構(gòu),但是微結(jié)構(gòu)的構(gòu)成并不是并行式實現(xiàn)的,仍然會有能量消耗變化。

5.不同指令操作會有不同的能量消耗特征,因此我們?nèi)绻醪椒治龀鰜硐鄳?yīng)的指令特征然后建立模板,以后采集的波形進(jìn)行匹配那么我們就可以分析出其采用的指令是什么,也可以推斷出內(nèi)部可能包含的模塊和設(shè)計細(xì)節(jié)。

6.值得說明的是文中對具體對齊操作或者分析操作并沒有仔細(xì)說明,我通常采用的對齊判據(jù)有均方誤差,均值,相關(guān)系數(shù)等。現(xiàn)在基本采用滑動窗口法實現(xiàn)相關(guān)性對齊。針對攻擊操作現(xiàn)可以實現(xiàn)DPA、CPA、DFA、CFA、二階DPA/CPA。

從文中破解結(jié)果對比可以看出采用硬件協(xié)處理器實現(xiàn)加密破解所需的代價更大些,因此為了提高安全性最好使用硬件實現(xiàn)。

J. Longo , E. De Mulder , D. Page , and M. Tunstall

1計算機系,布里斯托大學(xué)(全英國大學(xué)中,僅次于牛津、劍橋及倫敦大學(xué)學(xué)院,歷年最高世界排名為全球第27名)

Merchant Venturers Building, Woodland Road,

Bristol, BS8 1UB, United Kingdom.

{jake.longo,daniel.page}@bristol.ac.uk

2 Ranbus密碼研究部(Rambus公司主研發(fā)超低功耗和高速內(nèi)存,僅僅擁有知識產(chǎn)權(quán)無加工廠)

425 Market Street, 11th Floor,

San Francisco, CA 94105, United States.

{elke.demulder,michael.tunstall}@cryptography.com

摘要

現(xiàn)代嵌入式系統(tǒng)越來越復(fù)雜化遇到了很多關(guān)于側(cè)信道攻擊方面的挑戰(zhàn)。特別是,針對應(yīng)用于安全領(lǐng)域的高頻率時鐘的SOC設(shè)備。理解怎么實施這種攻擊的特點和技術(shù)往往可以通過簡單設(shè)備進(jìn)行攻擊。得到1是破壞性的方式(例如攻擊方面),另一種是建設(shè)性的方式(例如評估或提出對策)的觀點是至關(guān)重要。在這篇論文中,我們在AM335x SOC上對三種執(zhí)行加密的工作負(fù)載(包括廣泛使用的ARM 核,片上協(xié)處理器,NEON 核)進(jìn)行攻擊從而分析電磁信息泄露特征。我們可以列出這三種設(shè)備的挑戰(zhàn)類型并且在有限的資源下可以進(jìn)行密鑰恢復(fù)。

關(guān)鍵詞: 側(cè)信道,電磁信號,系統(tǒng)級芯片, ARM, NEON

關(guān)于側(cè)信道攻擊的大多數(shù)學(xué)術(shù)文獻(xiàn)是針對實際的設(shè)備:甚至是對有限的例子例如對KEELOQ密碼算法的無鑰匙進(jìn)入系統(tǒng)(汽車遙控電子鎖),Xilinx FPGA 比特流密碼,或者是Atmel 的安全存儲器認(rèn)證,這些是側(cè)信道攻擊的有效性強有力證明。然而,盡管明確知道有反例,這樣的設(shè)備通常簡單描述為電子設(shè)備或者系統(tǒng)結(jié)構(gòu)(至少是密碼方面的)。從另一個方面看,這不是問題:使用案例如接觸式與非接觸式支付卡,隨著物聯(lián)網(wǎng)的發(fā)展,這類設(shè)備將越來越豐富。目標(biāo)簡單化并不意味著開發(fā)和實施攻擊變得簡單化,或者是沒有其他別的的價值了。

但是,從另一個角度看,隨著微電子產(chǎn)品的極大發(fā)展,特別是,更多功能且更復(fù)雜的設(shè)備會受到側(cè)信道攻擊的威脅這將不太令人滿意。例如,智能手機,多核、擁有千兆赫茲時鐘頻率的SOC元器件將成為標(biāo)配,而且隨著時間的推移。手機需要長久的續(xù)航能力,市場需求促使這些元器件不斷增多。在這種情況下,用泄露的側(cè)信道電磁信息進(jìn)行分析是很吸引人的,Rohatgi曾全面概況了這些物理現(xiàn)象并加上了其開創(chuàng)性的結(jié)果,除了特別相關(guān)的部分,其他的關(guān)于那些方面我們沒有展開討論。

和功耗分析相比,非接觸式,空間中輻射的電磁信息可以用來替代功耗進(jìn)行分析。

1.這是一種非侵入式的采集手段

2.最重要的是避免引起芯片上電壓變化引起一些錯誤

3.針對SOC上特定位置進(jìn)行分析,負(fù)責(zé)采集到很多符合的電磁信息

論文的目標(biāo)是研究和完善現(xiàn)有技術(shù),針對現(xiàn)代復(fù)雜的系統(tǒng)說明電磁攻擊是有效的。這個工作的創(chuàng)新之處有對挑戰(zhàn)的評估和對策,在其他側(cè)信道應(yīng)用方面也有很大作用(例如知識產(chǎn)品的保護(hù)和硬件木馬檢測)對于SOC,將更有利于其發(fā)展,開放(這個課題是積極的,很大程度上進(jìn)行非正式的安全服務(wù))了解相關(guān)的泄露特征。我們探討了一個典型設(shè)備例如TI公司的AM335X SOC 系統(tǒng),基于BeagleBone Black開放平臺對三個加密負(fù)載進(jìn)行應(yīng)用。

第二節(jié)講述了相關(guān)背景,我們的貢獻(xiàn)具體為:

利用電磁分析了:

1.在ARM 處理器上執(zhí)行通過OpenSSL服務(wù)器實現(xiàn)的AES。(第三節(jié)描述)

2.利用AES協(xié)處理器執(zhí)行的AES算法(第四節(jié)描述)

3.分析了包含了基于位片式設(shè)計(位片式設(shè)計是通過并行聯(lián)結(jié)構(gòu)成任意字長的中央處理單元的大規(guī)模集成電路)的AES的NEON核(第5節(jié)講述).

4.核心結(jié)論是,泄露特征的分析是需要努力實現(xiàn)的,攻擊設(shè)備的復(fù)雜度并不代表攻擊的復(fù)雜度。例如,針對1GHz時鐘頻率的系統(tǒng),我們可以獲得相對低很多的頻率泄露,這表明攻擊并沒有想象中復(fù)雜,因此通過讓設(shè)備變得復(fù)雜化來提高安全性是值得懷疑的。#p#

2.研究背景

2.1 BeagleBone 平臺簡介

BeagleBone Black基于Sistara AM335x 的單片機。分為四個子系統(tǒng)組成。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖1 AM335x SOC框圖(與論文相關(guān)的器件單元和子系統(tǒng)加重標(biāo)注)

系統(tǒng)通過專用的片上網(wǎng)絡(luò)進(jìn)行互聯(lián)(NOC片上網(wǎng)絡(luò) network-on-chip,是片上系統(tǒng) system-on-chip(SoC)的一種新的通信方法。它是多核技術(shù)的主要組成部分)。下面將集中在微處理器MPU和加密協(xié)處理器分析。雖然加密協(xié)處理器往往沒有公開內(nèi)部設(shè)計(沒公開源代碼和接口),針對微處理器的分析,我們參考了大量文獻(xiàn)進(jìn)行廣泛研究??傊?,L1和L2高速緩存和片上存儲器,32位ARM cortex-A8的微處理器時鐘高達(dá)1GHz。由于其控制加密操作,我們重點在執(zhí)行指令上,13級ARM流水結(jié)構(gòu)和10級NEON流水結(jié)構(gòu)?;旧鲜鞘忻嫔弦粋€SIMD(單指令多數(shù)據(jù)流)協(xié)處理器加速多媒體信號處理的工作量。

在ARM流水線結(jié)構(gòu)中,第6級執(zhí)行階段通過兩個對稱的整數(shù)流水線,一個流水線乘法器,流水線存儲器。操作數(shù)通過一個32位寄存器的內(nèi)部寄存器文件提供,在NEON流水結(jié)構(gòu)中,第6執(zhí)行階段由整數(shù)邏輯運算器,MAC 和流水負(fù)載存儲構(gòu)成。操作數(shù)由256字節(jié)的寄存器文件提供,根據(jù)指令類型分為可以是32雙字或者16四字節(jié)的條目(每個碼字W可以是8,16,32,64,128比特)。

二者流水結(jié)構(gòu)都是雙重的(即每一個周期2個指令可以被處理,模塊依賴)和隨時(完成相同的命令的同時,發(fā)出)。指令輸入NEON流水后,已被ARM流水解碼,用兩個16個輸入隊列解耦。分析可以得知整體復(fù)雜度明顯,甚至可以忽略元件數(shù)量。例如僅MPU就有3個時鐘和4個電源域。這些特征使得SOC在信噪比上具有挑戰(zhàn),且電磁信息易于泄露。

2.2實驗環(huán)境

采集和測量設(shè)備(硬件部分),本論文所使用的設(shè)備如下:

1.Tektronix DPO7104 1GHz oscilloscope,示波器

2.Signatec PX14400 400MS/s digitiser,數(shù)字轉(zhuǎn)換器

3.Langer PA303 pre-amplifier plus various (e.g., low-pass) hardware filters,前置放大器,低通高通濾波器

4.Langer RF-3 mini near-field probe set,靜場電磁探頭

5.Langer ICS105 IC scanner (or XY-table),芯片掃描儀

6.Matlab 2014b (with signal processing toolbox).Matlab進(jìn)行信號處理

這些是基本的配置:將目標(biāo)設(shè)備放在XY工作臺使得探頭可以進(jìn)行定位,并且需要前置放大信號,對波形進(jìn)行預(yù)處理(濾波,信號轉(zhuǎn)換)或者送入到高采樣率的示波器(示波器作用有觀測和進(jìn)行A/D轉(zhuǎn)換進(jìn)行數(shù)字存儲)對這些設(shè)備的采購上就限制了我們的研究(職責(zé)范圍上的)

軟件部分:

BeagleBone Black distribution of Debian“Wheezey” on the target device (Linux kernel version 3.13.3)該設(shè)備如同是嵌入式多媒體卡EMMC存儲主控,沒有標(biāo)準(zhǔn)的系統(tǒng)進(jìn)程被禁用。在這個平臺上使用openssL 1.0,1j,隨著加密設(shè)備不同可擴展版本。

2.3泄露檢測和實施策略

符號:長度為n的矩陣x,令x(j)表示矩陣x的第j個元素,0 ≤ j < n。xi表示大批量采集樣本中的第i個樣本。令H(x)表示漢明重量,令D(x,y)表示x和y的漢明距離,顯然,相同的x和y。公式如下:

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

一個操作f的第i個指令對設(shè)備DUT進(jìn)行操作,涉及到密碼關(guān)鍵部分(例如密鑰)的操作。令輸入為xi和輸出為ri ,采集電磁曲線λi 。針對目標(biāo)的操作可以是單指令到整個算法實現(xiàn),或者在從攻擊者角度,輸入和輸出已知或者未知。操作f和輸入xi ,加上探頭類型和采集位置(和實驗環(huán)境相關(guān)的參數(shù))都對采集的樣本至關(guān)重要。因此,實施攻擊要求攻擊者:

1.確定采集的樣本在時域上或者頻域上都包含泄露的信息

2.合理選擇探頭,保證最大限度獲取電磁泄漏(探頭需要保證采集質(zhì)量,較大信噪比)

泄露探測:有很多方法進(jìn)行電磁泄漏的探測,本文使用Welch’s t-test. 具體來說,使用的是Goodwill的測試向量泄露評估法TVLA,雖然有很多變化(固定或者隨機,半固定或者半隨機)但最基本的思想是構(gòu)建兩組測試向量V0和V1:前一個向量包含一個固定因子,另一個進(jìn)行隨機。注意Uno等人使用特定情況使用修正過的隨機樣本代替全0或者全1的漢明重量。每一次對目標(biāo)設(shè)備進(jìn)行調(diào)用,選擇隨機01輸入例如:

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

那么測試向量就為

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

;采集的電磁樣本泄露λi, 令t測試公式如下所示。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

其中|Λ b |,Λ b and σ是同樣大小,相同的均值和方差Λ b . 用一個閾值τ (例如τ = 4.5), 當(dāng)找 |t[j]| > τ 我們就認(rèn)為找到第j次的泄露了。當(dāng)固定向量和隨機測試向量之間,根據(jù)統(tǒng)計學(xué)可以知道存在差異,且差異是依賴數(shù)據(jù)的,因此有差異說明有可以利用的信息存在。后面都是要這樣的方法進(jìn)行探測。#p#

3.基于軟件實現(xiàn)的AES

文獻(xiàn)中常用1個微控制器執(zhí)行一個程序。 在合理的情況下,越來越多的目標(biāo)操作是由操作系統(tǒng)內(nèi)核執(zhí)行的。例如很多智能卡(javacard or MULTOS多應(yīng)用操作系統(tǒng)平臺專為智能卡設(shè)計的操作系統(tǒng))就是這樣。由于其相對復(fù)雜化,這類攻擊相對裸件的攻擊不常見。特定的例子有Uno和Genkin等人采用不是差分攻擊的方式實現(xiàn)對Android (on ARM)平臺或者windowsXP(x86)的RSA(也有ELGamal)算法的攻擊(不是DPA而是SPA)。Kassimi等人利用差分電磁分析對java ME平臺上AES算法進(jìn)行攻擊還有Pellegrini等人對Linux(SPARC)平臺上的RSA算法進(jìn)行電壓毛刺故障注入實施攻擊。

 

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖2 BeagleBone Black 原理示意圖,從正面(左) 和反面(右), 標(biāo)注電磁探頭的位置其中 SRAM(紅) ,ARM and NEON 核(藍(lán)色).

本節(jié)將討論系統(tǒng)為導(dǎo)向的攻擊,我們假設(shè)攻擊目標(biāo)是一個通信設(shè)備(如智能手機) 在進(jìn)行TLS會話服務(wù),攻擊者可以觀察此時的電磁變化:

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

例如進(jìn)行AES-128算法加密,CBC模式,明文mi和密鑰k未知但已知密文ci(由網(wǎng)絡(luò)傳輸),每個加密操作都有openssL軟件默認(rèn)的方式實現(xiàn)。

3.1實驗概述

在對樣本進(jìn)行采集和提取密鑰前需要說明,實驗的挑戰(zhàn)點:在對未知設(shè)備進(jìn)行攻擊前,我們使用一個同樣的產(chǎn)品但是我們可以完全控制的產(chǎn)品進(jìn)行初步嘗試攻擊(類似于模板攻擊,難點是對相同設(shè)備可控,然后建立模板)。 我們強調(diào),可以利用分析設(shè)備使用簡單分析對信號特征進(jìn)行提取,但是這對建立模板是不夠的,因為我們只能對他進(jìn)行簡單的控制,比如修改操作系統(tǒng)調(diào)度程序,進(jìn)行硬件或者軟件的中斷。另外是探頭位置:開始,先手動掃描SOC表面找到泄露相關(guān)的三個內(nèi)核相關(guān)泄露。一組是與內(nèi)存相關(guān)操作,一個自旋鎖(防止多處理器并發(fā)而引入的一種鎖。)和一套與計算相關(guān)的操作(例如進(jìn)行AES加密操作,openssL)

 

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖3 波形采集階段中斷的影響:沒有中斷(左)表示是干凈的曲線,受干擾后曲線(右)失效的曲線(標(biāo)注的時期)

 

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖4不同時鐘頻率在掃描階段的影響(每一條曲線代表AES指令在4個可用時鐘頻情況)

 

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖5 在特定攻擊位置下頻率從0到1.25GHz的頻譜,分析循環(huán)裝置在三個內(nèi)核下,有三個迭代(左到右)內(nèi)存儲存,自旋鎖,和計算(AES)的AES運行時候的頻率響應(yīng),頻率響應(yīng)越窄且低頻范圍可以捕捉這種反應(yīng)。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

圖6 自由執(zhí)行AES的目標(biāo)在85000次電磁樣本下匹配600MHz下的結(jié)果,左邊顯示泄露檢測的實驗,當(dāng)閾值t=4.5(Y軸黑色標(biāo)記)右邊正確的密鑰所對應(yīng)的單比特相關(guān)性系數(shù)變化趨勢

通過內(nèi)核周期性循環(huán)操作,檢測頻率響應(yīng)如圖5所示,可以看到2個感興趣區(qū)域。我們把一個區(qū)域(SOC邊緣和SRAM總線)為內(nèi)存相關(guān)操作內(nèi)核,為內(nèi)存訪問區(qū)域部分。假如內(nèi)存總線是特定的開發(fā)套件,假設(shè)可獲得,完整的操作數(shù)據(jù)可以從表中獲得,但并不認(rèn)為有必要再進(jìn)行調(diào)查。第二個區(qū)域是中央AM335x的表面,在板子的背面有電容器如理C94和C46。

另外:

1.對AES進(jìn)行執(zhí)行過程中可以觀察頻率響應(yīng)的幅值

2.隨著多層制造工藝造成的信噪比下降的趨勢,將探頭固定在支持電路的位置。

采集調(diào)諧:對選定的區(qū)域的泄露可以用較低的頻率進(jìn)行識別,例如100MHz。在某種程度上,由于AES使用較低的系統(tǒng)時鐘頻率(1輪需要多個時鐘)另外芯片上分立元件的耦合電容成為了一個低通濾波器,因此,我們采用了一個帶通濾波器,其中心頻率是45MHz,帶寬是24MHz。因此,可以使用較少的功能性和較便宜的采集設(shè)備,不必要使用一個高性能的示波器,我們利用一個較低規(guī)格的數(shù)字轉(zhuǎn)換器實現(xiàn)采集。

批量采集:這個步驟是替代人為操作的使得自動運行的內(nèi)核配備OpenSSL客戶端實例(里面沒有加通過GPIO引腳實現(xiàn)的觸發(fā))。當(dāng)然通過軟件觸發(fā)更吸引人,但是這會限制采集目標(biāo)會話通信過程。例如,不是每一次會話波形都進(jìn)行對齊,對采集的波形λi, 包含了L次AES更新而不是僅僅1次的更新。例如,對于第i次得到的密文Ci,則是16*Lbyte的密文或者是L塊密文,如同TLS層產(chǎn)生的密文。這種軟觸發(fā)很容易通過流量分析得到。另外可以通過嗅探的方式得到密文而不是通過攻擊者去人為控制(例如注入故障)。但是這種選擇有利有弊。一方面,批量采集可以顯著減少所需的時鐘時間并允許數(shù)據(jù)和指令緩存的干擾被很大程度的忽略(因為剛開始的AES調(diào)用會使用熱緩存)另外,我們需要面對較長時間的系統(tǒng)噪聲類挑戰(zhàn)(對于一次操作的設(shè)備如智能卡,這種挑戰(zhàn)是無關(guān)緊要的)。

中斷檢測與同步:如果不主動產(chǎn)生中斷或者內(nèi)核需要進(jìn)行中斷,操作系統(tǒng)會搶選執(zhí)行用戶操作過程。當(dāng)我們得到大量的密文的時候,這種中斷會很頻繁,因此我們需要在批量采集的時候分析這些中斷。圖3是可以觀察到的出現(xiàn)中斷和沒有出現(xiàn)中斷情況。我們用一個對齊分?jǐn)?shù)來自動識別(例如分?jǐn)?shù)可以選擇最小均方差做判據(jù))。我們通過選擇一個沒有間斷的波形作為模板,然后大致對齊并計算相對模板得分。如果得分高于實驗設(shè)定閾值那么就可以認(rèn)為發(fā)生了中斷,對于這些檢測到有中斷的曲線,我們要么丟棄掉不要,要么就是將出現(xiàn)中斷的地方處理掉。低的采樣率采集的波形對中斷進(jìn)行處理的時候極易出錯(因為不容易確定出中斷結(jié)束點,或者知道OPENSSL過程已經(jīng)恢復(fù)了)。這種錯誤使得得到的密文和采集到曲線不對應(yīng)(例如對應(yīng)AES的子曲線)。但是我們選擇丟棄掉那些出現(xiàn)中斷的曲線的方式,當(dāng)然這也是作為批量采集出現(xiàn)的代價。

時鐘縮放:操作系統(tǒng)可能會隨著功耗變化控制時鐘頻率。我們發(fā)現(xiàn)這樣的事情發(fā)生,當(dāng)openssl調(diào)用時候,設(shè)備就會穩(wěn)定在600MHz時鐘頻率下。圖4顯示了不同時鐘頻率下執(zhí)行AES采集的波形圖,可以看出有明顯區(qū)別。在特定的頻率下,通過高于奈奎斯特頻率的采樣率可以推斷出時鐘頻率(例如300MHz,,600MHz, 800MHz and 1GHz)。這種方式也有利于處理中斷。但是用較低的采樣率雖然有利于其他的方面但是會超出奈奎斯特方式的規(guī)格。相反,我們簡單的通過在每個時鐘頻率下執(zhí)行AES操作來簡單創(chuàng)造模板。波形通過和模板對比,然后可以產(chǎn)生處相同時鐘頻率的波形子集(類似于頻域檢測)。

3.2分析和討論

總結(jié)一個具體的攻擊步驟如下:

1.批量采集1000條曲線,每個曲線包含了256次加密操作(每條波形可能占4KB則得到4MB的數(shù)據(jù)波形)

2.挑選出合適曲線(處理掉出現(xiàn)中斷或者存在時鐘優(yōu)化操作的波形)這個過程可能會拋棄掉20%不滿意的波形。

3.對挑選的波形進(jìn)行分析,找到每一個加密操作的子曲線,并匹配出相應(yīng)的密文。

4.然后將子曲線進(jìn)行分析盒整理,對有偏差的或者說低質(zhì)量的曲線進(jìn)行拋棄,大概又會丟掉5%的波形。

這個過程就剩下了s < n*L個子曲線,對每一個n和L要花費大約6分鐘時間,然后通過這組處理后數(shù)據(jù)得到泄漏。我們針對AES最后一輪的查找表操作作為攻擊目標(biāo)采用基于單比特相關(guān)系數(shù)攻擊的方式進(jìn)行攻擊。圖6b顯示了密鑰隨著處理條數(shù)的增加相關(guān)系數(shù)變化的趨勢。圖中顯示出20000條曲線得到時候可以區(qū)分出密鑰差別。也就是說大量采集100條曲線就可以成功。(因為20000條表示子曲線,這個100條曲線表示一次采集的曲線中會包含很多條子曲線,當(dāng)然這100條曲線所需的數(shù)據(jù)點更多大約有400kb)。

事實上,在數(shù)據(jù)采集階段對n需要進(jìn)行微調(diào),因為攻擊者無法控制每一個操作所需長度L,(原因:采集的曲線固定,n代表有n次L長度的執(zhí)行操作)。但是使用一個自適應(yīng)的n和所采的數(shù)據(jù)s足夠大也是可以成功的。

傳統(tǒng)攻擊的時候需要使用一個人為觸發(fā)(這種方式需要對波形對齊和避免中斷),相對這種方式的攻擊,我們采用新的基準(zhǔn)進(jìn)行分析并選擇合適的時鐘波形。我們只需要采集3000條子曲線就可以恢復(fù)密鑰,即使在不同步的時候數(shù)據(jù)量減少了7倍。這兩種攻擊的差距可以減少,是因為我們這種方式本質(zhì)上代表了預(yù)處理效率的降低,對以后的攻擊工作有所推遲。#p#

4.基于硬件實現(xiàn)的AES

本節(jié)將重點介紹使用硬件協(xié)處理器實現(xiàn)AES加密。攻擊者同樣可以觀測到相應(yīng)的調(diào)用openssl的能量消耗。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

但是底層加密操作是基于硬件實現(xiàn)的。

我們假定這種方式如同DMA(直接存儲器存取,是一種快速傳送數(shù)據(jù)的機制,DMA技術(shù)的重要性在于,利用它進(jìn)行數(shù)據(jù)存取時不需要CPU進(jìn)行干預(yù),可提高系統(tǒng)執(zhí)行應(yīng)用程序的效率。利用DMA傳送數(shù)據(jù)的另一個好處是,數(shù)據(jù)直接在源地址和目的地址之間傳送,不需要是中間媒介。

硬盤內(nèi)部的控制讀寫,這樣有利于減輕CPU負(fù)擔(dān),加快讀取速度 )實現(xiàn)數(shù)據(jù)操作的全盤加密(全盤加密(FDE,full-disk encryption)是在硬件級加密。全盤加密是自動地將硬盤上的數(shù)據(jù)轉(zhuǎn)換成一種不能被人理解的形式。只有那些有密鑰的人才能“還原”轉(zhuǎn)換。如果沒有合適的認(rèn)證密鑰,即使把硬盤移出,安裝到另一臺機器上,仍然不可獲得硬盤上的數(shù)據(jù)。)這種方式下,攻擊者能否存儲和讀取密文是一個問題。

 

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖7 基于AM335X的AES密碼協(xié)處理器(CBC模式)的高級體系結(jié)構(gòu)。

注意這種方式下不同的寄存器會共用(輸入輸出寄存器),鏈接寄存器會隨著初始變量而更新。(鏈接寄存器是ARM處理器中的一個有特殊用途的寄存器,在ARM的user模式下,ARM CPU有16個數(shù)據(jù)寄存器,被命名為R0~R15(這個要比X86多一些),它們均為32位寄存器,其中的R13~R15有特殊用途。其中R14被稱為”鏈接寄存器”(Link Register,LR)。)

4.1 實驗概述

正如2.1節(jié)所說很少有文檔說明AM335X圖形協(xié)處理器。我們只能通過設(shè)備驅(qū)動程序去了解內(nèi)部設(shè)計。由于驅(qū)動并不公布供用戶使用的過程,因此我們通過OPENSSL擴展加密設(shè)備實現(xiàn)交互。我們通過調(diào)用OPENSSSL利用加密模塊實現(xiàn)加密操作從而實現(xiàn)協(xié)處理器的執(zhí)行。針對黑盒系統(tǒng),我們將協(xié)處理器當(dāng)作一個黑盒,我們推斷針對其功能(例如模式有ECB,CBC,CTR,或者實現(xiàn)的AES為AES128,AES192,或者AES256)和相關(guān)的文獻(xiàn)進(jìn)行推斷其內(nèi)部設(shè)計。 一般寄存器是可以發(fā)現(xiàn)的且密鑰寄存器會隨著調(diào)用進(jìn)行更新(因此每次加密操作對密鑰的運算會進(jìn)行更新)這會推斷出其迭代模塊,例如圖7所示,每一個模式是由一個核心和周圍的控制邏輯等多個步驟來實現(xiàn)的,默認(rèn)驅(qū)動方式是利用存儲器直接訪問的方式DMA以集散機制通過ARM核心自主操作。

信號采集:在任何探測階段,首先是確定

1.一種可識別的方式。

2.找到波形上特殊點進(jìn)行對齊。

這是為了最大化的檢測到信息泄漏。這兩種方式有內(nèi)在聯(lián)系,因為良好的識別方式有利于對齊。但是,一般認(rèn)為前面的挑戰(zhàn)較為簡單,因為目標(biāo)設(shè)備通常會因為相應(yīng)的執(zhí)行操作產(chǎn)生明顯的可以識別的特征。這是對的,例如第3節(jié)我們可以輕松通過頻率響應(yīng)執(zhí)行時間檢測到ARM核的泄漏。相比之下,這不是真正的協(xié)處理器。因為我們不清楚AES如何執(zhí)行計算的,而且不能確定任何周期性AES操作泄漏。這是一個更復(fù)雜的過程的事實是協(xié)處理器是獨立于ARM核操作的(因為硬件進(jìn)行加密操作被異步觸發(fā))。

由于沒有可靠的視覺線索或者可靠的觸發(fā),我們不可能通過第3節(jié)所確定的探針位置采集曲線通過修正或者隨機的方式測試出泄漏。另外,手動的去對AM335X表面掃描找到合適探頭位置也不一定會得到更好的結(jié)果。但是,我們將探頭定位到內(nèi)存訪問區(qū)域的時候發(fā)現(xiàn)了DMA閃動。當(dāng)然,這些特征泄漏了與加密操作相關(guān)的信息,從而類似于有點是和協(xié)處理器同步的活動。但是利用這一事實所面臨的問題是任何其他內(nèi)存密集型指令也會導(dǎo)致這種現(xiàn)象,因此這時候呈現(xiàn)的觸發(fā)器就不是很可靠。

為了解決這個問題,我們迫使驅(qū)動進(jìn)入non-DMA備用模式,這使得任何與內(nèi)存管理相關(guān)的問題就引起中斷。這種中斷作為識別AES操作的觸發(fā)。雖然這種相對第3節(jié)所用的自由運行的方案麻煩,我們認(rèn)為這種方式比使用基于GPIO的硬件觸發(fā)要好。具體來說,要求攻擊者控制的過程是目標(biāo)設(shè)備上共同存在的(例如探測驅(qū)動緩存的攻擊)而不是對目標(biāo)進(jìn)程的侵入式攻擊。

實驗策略:在靈活性的觸發(fā)機制下,我們用幾個探針放在AM335X不同位置,并且重復(fù)進(jìn)行固定隨機實驗(使用了示波器所有可用通道,采樣率是2.5GSa/s)。

這種方式經(jīng)常失敗因此我們選擇更專門針對泄漏的測試向量。我們使用新的測試機制,使用半修正的固定隨機測試向量。最后通過利用漢明距離的方式探測到泄漏,相應(yīng)的測試向量是輪輸入輸出的漢明距離。圖8所示將1萬條波形和均值波形進(jìn)行的t檢測圖,t線圖遠(yuǎn)遠(yuǎn)超過了我們的t=4.5閾值。

信號處理和消除趨勢:雖然我們找到了泄漏,但是我們還是無法知道信號的具體特征。第一步,我們對AM335X表面進(jìn)行自動掃描,執(zhí)行半固定隨機測試以1毫米間距進(jìn)行掃描。最高的t統(tǒng)計值對應(yīng)的位置可能就是密鑰恢復(fù)的關(guān)鍵。 圖9顯示了分布熱點圖。為了優(yōu)化探針位置,我們使用小波變換降噪的方式提高信噪比?,F(xiàn)在已經(jīng)有文章表明小波變換可以有效去噪與重構(gòu)波形實現(xiàn)側(cè)信道攻擊。一般來說,是通過軟閾值對每個細(xì)節(jié)進(jìn)行修正再合成為新的信號。

 

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖8 執(zhí)行AES協(xié)處理器開啟全部DMA探測的信息泄漏。左邊是平均值曲線和右邊所示的t測試曲線。頂部是未處理的曲線下面是處理后的波形。

但是,一個高強度且半干擾的信號對我們感興趣的低幅度信號會有覆蓋,這種信號都含有少許噪聲,這些干擾降低了信噪比。利用小波變換的方式可以對重疊信號中干擾信號進(jìn)行分離。通過嘗試不同的小波變換后,用一個較低的消失矩下得到了更好的結(jié)果。這種去除噪聲技術(shù)利用一個簡單的算法小波收縮技術(shù)如論文10和16所示。首先,使用Haar小波基進(jìn)行小波變換,在低的采樣率下對信號進(jìn)行單級計算(分解),然后將近似系數(shù)為0的細(xì)節(jié)系數(shù)進(jìn)行逆小波變換。通過處理后的信號如圖8所示,可以看出與有干擾的信號相比產(chǎn)生了更強的泄漏檢測結(jié)果。

4.2 分析和討論

對本節(jié)進(jìn)行總結(jié),執(zhí)行具體的攻擊所需的采集步驟如下:

 

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖9 對AM335X表面進(jìn)行自動掃描,利用半修訂固定隨機測試值來識別CBC模式下的AES256協(xié)處理器泄漏。得到t測量值的分布熱圖如圖b所示,得到感興趣的區(qū)域作為后續(xù)的探頭位置。

1.驅(qū)動程序運作在non-DMA 備用模式。

2.采集50萬條曲線,每一條曲線包含一次加密操作,每一條曲線是進(jìn)行1000次平均得到,得到的密文和曲線進(jìn)行對應(yīng)。

3.對每條曲線進(jìn)行小波變換處理實現(xiàn)大的信噪比。

值得注意的是,我們以中斷為基礎(chǔ)的觸發(fā)實現(xiàn)了最佳的對齊方式。因為AES操作的具體形式未知因此對波形進(jìn)行后處理來找到定位是不可能的。我們花費了3天時間完成了波形采集過程,然后執(zhí)行單比特相關(guān)性能量攻擊,如果AES執(zhí)行迭代操作,i表示第i次迭代,我們對第10輪迭代為攻擊目標(biāo)這是因為第10輪和AES最后一輪相關(guān)。然后我們成功恢復(fù)了密鑰k(盡管有少量的關(guān)鍵計數(shù)來對較低的密鑰排名進(jìn)行修正(類似于得到一部分密鑰,剩下密鑰可以暴力破解了))。

至少我們可得到4點結(jié)論:

1.需要確定泄漏模型,這遠(yuǎn)比后續(xù)的波形采集和攻擊階段重要。

2.雖然我們發(fā)現(xiàn)了很大的泄漏但是利用效果會與理想有差距,如圖8所示,雖然我們發(fā)現(xiàn)有強大的泄漏存在,但是我們無法利用這些進(jìn)行攻擊。

這說明很重要的一點是在實際攻擊場景中確定泄漏模型是第一步,然后將其轉(zhuǎn)化為可以精確表示的模式。

雖然黑盒攻擊對協(xié)處理器內(nèi)部結(jié)構(gòu)有簡單的分析但是并不知道其內(nèi)部具體實現(xiàn)。特別是我們嘗試了很多次的失敗如

3.觸發(fā)機制沒有設(shè)置正確,無法正確對齊,這些大大降低了信噪比。

4.使用了協(xié)處理器在某種程度上加入了抗側(cè)信道攻擊策略。

如果后者是正確的,我們還不知道對策:例如我們不知道結(jié)構(gòu)的具體實現(xiàn),所關(guān)心的信號在時域進(jìn)行了隱藏,另外使用了掩碼操作而且高階攻擊也無法實現(xiàn)。無論哪種方式,如果加入對策,我們要進(jìn)行攻擊就要加大相應(yīng)的攻擊成本而不是防止了攻擊。#p#

5.NEON

NEON是ARM A系列處理器SIMD(單指令,多數(shù)據(jù))架構(gòu)擴展,例如通過Bernstein and Schwabe發(fā)表論文所述的NEON加密技術(shù),用來對加密負(fù)載和執(zhí)行的加速。在ISA來說,每一個向量指令

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

處理 個向量操作數(shù)以w位為大小單元。n ∈ {64,128} 根據(jù)指令類型確定,純向量操作的情況可以如下簡單描述如下:

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

其中

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

表示第j次w位對t向量的半字節(jié),其中

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

對半字節(jié)值進(jìn)行的操作。ISA說明了標(biāo)準(zhǔn)邏輯例如當(dāng)w=1時候

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

,且描述了相應(yīng)應(yīng)的算法如w=8,16,32的時候

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

操作,加上其他的別的操作擴展方式。盡管四字長NEON指令表示處理128位的操作數(shù),使用的流水線結(jié)構(gòu)實際只采用兩個64位操作進(jìn)行處理。

5.1指令集描述

這一節(jié)研究NEON指令集的信息泄漏

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

對一系列的操作

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

一般來說一個雙字節(jié)里面w為8,32子字節(jié)。例如n=64位的操作。鑒于NEON的流水線結(jié)構(gòu)和ARM流水線結(jié)構(gòu)緊密耦合的。我們認(rèn)為這兩部分緊密靠近AM335X的表面,因此我們采用探頭的位置和第3節(jié)所采用的位置一樣。然而,我們具體是采用嚴(yán)格控制設(shè)備使得可以循環(huán)加密得到可用的硬件觸發(fā)和擁有一定的成功率。

泄漏探測:我們先初步在一個小區(qū)域內(nèi)進(jìn)行探測,運行NEON指令先主觀的收集一般性的泄漏信息。因此,我們考慮各種可能的泄漏源。例如我們執(zhí)行XOR異或指令 veor.u32 d0,d1,d2,我們可用觀測到與操作數(shù)讀取有關(guān)的泄漏如從d1或者d2進(jìn)行讀取,可以觀測到計算操作以及結(jié)果的返回d0寫入的泄漏。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

圖10 對NEON進(jìn)行固定隨機測試操作得到的t測試結(jié)果。自上而下是執(zhí)行異或,加法,乘法,賦值操作的結(jié)果圖。

總之,如圖10所示可以看出

a)用簡單功耗分析可以得到出指令操作,例如將每個指令建立一個模板。

b)基于操作數(shù)的泄漏是顯而易見的,但是僅僅在寫回操作的結(jié)果來看,我們無法確定與讀取相關(guān)的泄漏。事實上,我們觀測到寫回操作所對應(yīng)的t測試結(jié)果表面操作步驟會引起泄漏而不是讀取內(nèi)存的時候出現(xiàn)的泄漏。

ARM核和NEON核的對比:第3節(jié)說明ARM核存在泄漏,我們應(yīng)用相同的檢測策略量化ARM核和NEON核造成信息泄漏的區(qū)別。

圖11可以看出:

a) ARM核在操作數(shù)的讀取,取回都泄漏明顯

b)泄漏強度相對NEON核也高很多,特別是針對乘法的操作。由于沒有很詳細(xì)的知識因此來說明這種差異性是很困難的。但是,根據(jù)泄漏可以推斷出使用的運算器(如乘法器設(shè)計)。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

圖11 對NEON進(jìn)行固定隨機測試操作得到的t測試結(jié)果。自上而下是執(zhí)行異或,加法,乘法,賦值操作的結(jié)果圖。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

圖12 NEON的算術(shù)和邏輯指令的漢明重量泄漏對比圖(w=32位)

漢明重量泄漏:當(dāng)找到泄漏點,我們的目標(biāo)是分析和利用其結(jié)構(gòu)。既可以通過漢明重量反推回相應(yīng)的泄漏特征。這種方式通過固定隨機得到t測試值方式來實現(xiàn),因此對于給定的漢明重量我們選擇半固定隨機向量進(jìn)行分析。這種結(jié)果的分析將下節(jié)討論。我們認(rèn)為,n比特的漢明重量被認(rèn)為基于單W比特的子字節(jié)是可行的,但是需要更多的波形。也就是說,如果只考慮單個W比特的子字節(jié)數(shù),其他的L-1個字節(jié)被認(rèn)為是噪聲,因此需要更多的波形條數(shù)。

算術(shù)和邏輯運算:圖12所示為與加密相關(guān)的兩個NEON指令(異或和乘法),圖13所示是進(jìn)一步的例子,XOR異或表示大多數(shù)的指令,不同的漢明重量的泄漏是很明顯的,相反,乘法操作泄漏是一個特例。漢明重量的泄漏也很明顯而且和密碼使用的情況相關(guān)。然而,其他的一些交叉指令漢明重量和信號泄漏我們還不能解釋。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

圖13 NEON的算術(shù)和邏輯指令的漢明重量泄漏對比圖(w=32位)

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

圖14 NEON的算術(shù)和邏輯指令的漢明重量泄漏對比圖(w=32位)

指令操作泄漏對比:圖14顯示NEON矢量指令操作的泄漏。不同于ARM核的標(biāo)量運算(產(chǎn)生1位的CPSR程序狀態(tài)寄存器),NEON核向量比較集(或者清除操作)都是基于w位的子字節(jié)信號。這些信號有真有假類似于形成了掩模。為了不失一般性,我們采用如下策略進(jìn)行對比。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

這可以用來支持自由分支和固定時間的實現(xiàn)方式:將得到的掩模用來控制每個子字節(jié)后續(xù)操作的條件執(zhí)行,將條件數(shù)據(jù)流替換為條件控制流。研究得到2個重要事實如下:首先,從比較向量泄漏來分析出子字節(jié)結(jié)果是真是假。我們可用通過每種情況分析出輸出的最大最小的漢明重量,這是我們的預(yù)期。另外,如圖16所示,我們可用針對一個特定的字節(jié)判斷其漢明重量值是2w-1還是0。這樣做是只選取其中每個子字節(jié)獨立分析,其他的子字節(jié)就作為了噪聲(例如單比特DPA)。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

圖15 基于NEON調(diào)用OPENSSL實現(xiàn)的AES(128byte的密文)。在5000條能量曲線下可以區(qū)分出正確密鑰。圖b是單字節(jié)相關(guān)系數(shù)隨曲線條數(shù)變化的趨勢圖

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

圖16 對vceq.u32進(jìn)行單字節(jié)攻擊,左邊是差分結(jié)果圖,右邊是差分值隨著條數(shù)增加變化圖。黑色曲線是w位密鑰

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

在1000條平均曲線下被區(qū)分出來 。

5.2針對AES一個具體攻擊

上述內(nèi)容說明漢明重量泄漏可以應(yīng)用于實際的攻擊中。我們以如下的方式采集能量消耗來說明理由。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

但是不同于第3節(jié)和第4節(jié)對AES自身的實現(xiàn)方式需要知道,我們不是以NEON位片式處理方式用openssl實現(xiàn)AES(這是源于Käsper and Schwabe,通過預(yù)處理標(biāo)志-DBSAES_ASM )。如果密文足夠大(例如128byte就要用另外的方式實現(xiàn))這種特定的實現(xiàn)是可以觸發(fā)的。雖然第3節(jié)所使用的技術(shù)也可以廣泛使用,但是為了清晰分析,我們采用了5.1節(jié)所用的試驗環(huán)境采用硬件觸發(fā)的方式。

然后攻擊采用一種相對簡單的方式,我們簡單猜測密鑰基于漢明重量模型假設(shè)第一輪逆字節(jié)替換操作得到中間變量然后和處理后的波形進(jìn)行相關(guān)性分析,我們在5千條曲線就可以實現(xiàn)密鑰提取。所需的密文有5000·128 = 625kB。

5.3原理性分析NORX

也許不同于其他操作,比較向量相關(guān)的泄漏更需要動力。例如對NORX,一種基于AEAD用來約束NEON的CAESAR候選加密算法。NORX32-6-1參數(shù)化(32位字長,有6輪,并行度為1,128位簽名大小)。驗證標(biāo)簽的方式如下:

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

注意到狀態(tài)A(計算出的標(biāo)簽),使用32位的字節(jié)向量對接收的標(biāo)簽進(jìn)行比較。一方面這是具有一定吸引力的是a)相對4個連續(xù)32位的比較要更高效,b)時間是固定的,不像一般代替操作進(jìn)行內(nèi)存比較 。例如memcmp指令。另一方面,在假設(shè)場景下,攻擊者解密oracle,例如選取特定密文的指令可以觀測到,可以用泄漏來實現(xiàn)標(biāo)簽的偽造,攻擊者可以確定一個候選標(biāo)簽,所以復(fù)雜度為

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

的查詢(盡管有一個恒定的因子作為處理噪聲的代價)通過窮舉的方式來找到標(biāo)簽來匹配選擇的密文。這種方式是否可行顯現(xiàn)取決于具體的內(nèi)容,但是這也是和假定的安全級別存在差距的。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

 

6.結(jié)論

本節(jié)是對本文進(jìn)行總結(jié)。我們利用泄漏的電磁信號分析了AM335X SOC系統(tǒng)和執(zhí)行軟件操作泄漏 。雖然很難進(jìn)行直接的比較,我們對CBC模式的AES算法為例進(jìn)行分析總結(jié)如表1所示。

對片上系統(tǒng)進(jìn)行側(cè)信道電磁分析

除此之外,我們也得到以下結(jié)論:

和文檔32介紹的建議相反,更高的時鐘頻率并不意味著所需要更高的采樣率,指令級別或者周期級別分析可能會產(chǎn)生更好的結(jié)果,但是我們?nèi)栽谳^低的頻率段找到了泄漏。這一事實表示,任何基于電磁攻擊(針對各種復(fù)雜系統(tǒng))的代價會降低。例如第3節(jié)所進(jìn)行的攻擊只需要一個價格大約為1800美元的設(shè)備實現(xiàn)。(包括用中低端示波器代替數(shù)字轉(zhuǎn)換器,一個30AWG的15圈的探頭)。

對于復(fù)雜系統(tǒng)采用TVLA(邏輯分析設(shè)備)或許有效,我們認(rèn)為對未知設(shè)備進(jìn)行特定的分析是十分困難甚至是無效的。

高層次上的系統(tǒng)復(fù)雜度并不代表在低層次上有相同的復(fù)雜度,我們有兩個例子進(jìn)行說明。首先在第3節(jié)所述我們繞過了SOC結(jié)構(gòu)或者對輔助電路的制造復(fù)雜度的影響。其次,在第5節(jié)我們認(rèn)識到針對復(fù)雜的NEON ISA的平行方式(一般影響DPA的一個復(fù)雜因素)在微結(jié)構(gòu)上并沒有實現(xiàn)。這些微結(jié)構(gòu)在某種程度上和平行結(jié)構(gòu)的相關(guān)。

盡管采用NEON技術(shù)可以高效、持續(xù)執(zhí)行命令,這似乎是很重要,但是這也會引起其他形式的泄漏。例如在第5節(jié)說說明矢量操作比較,即使在一個固定延時的有利條件下任然會存在子字節(jié)上出現(xiàn)相同的泄漏。

像openssl的軟件現(xiàn)在在嵌入式類似場景調(diào)用已經(jīng)很常見,這些通常認(rèn)為是負(fù)載很大的。因此,確保此類軟件避免遭受網(wǎng)絡(luò)攻擊,這是一個長期的很重要的挑戰(zhàn),在硬件方面的抗側(cè)信道攻擊對策也應(yīng)該進(jìn)行積極考慮。

下一步工作:我們在有限范圍內(nèi)介紹未來的工作內(nèi)容。除了很明顯的方向如在平臺上運行的針對非對稱加密算法的分析。有兩點很重要,首先對于組成成分進(jìn)行嚴(yán)格的分析,例如我們認(rèn)為SHA,RNG和其他外圍支持電路模塊,了解他們泄漏特性也十分重要。同樣,即使NEON技術(shù)很容易擴展到其他指令但是對NEON單元進(jìn)行詳盡的分析是不切實際的。理解沒有相同的標(biāo)量指令操作的矢量指令操作也是特別重要的。

第二,改進(jìn)技術(shù)有利于完善攻擊結(jié)果。例如在第3節(jié)表面成功恢復(fù)密鑰很大程度取決于對采集的波形進(jìn)行預(yù)處理。我們通過采取努力縮小人工和自動運行的差距。而且,在第4節(jié)我們強調(diào)了泄漏模型選擇對于泄漏檢測的重要挑戰(zhàn)。針對黑盒攻擊,解決這一問題似乎很困難,但是對模塊的預(yù)估和分析也是很重要的。

致謝

感謝Jake Longo 關(guān)于EPSRC DTP項目的部分支持。感謝Pankaj Rohatgi先生的理論指導(dǎo)和Sami SaabThe 在信號處理上具體的幫助。感謝 Billy Brumley和Markku Saarinen關(guān)于NEOX實現(xiàn)的獨到見解以及Martijn Stam對AEAD方面的討論和感謝整個NORX團(tuán)隊。感謝這些為完善第5節(jié)提供幫助的人們。

責(zé)任編輯:藍(lán)雨淚 來源: FreeBuf
相關(guān)推薦

2017-09-05 15:57:47

2021-03-09 10:12:39

側(cè)信道攻擊漏洞網(wǎng)絡(luò)攻擊

2009-08-19 16:27:52

電磁干擾結(jié)構(gòu)化布線系統(tǒng)

2010-02-22 10:18:29

Python代碼

2010-03-01 14:28:46

Python進(jìn)程

2010-03-03 14:51:02

Android手機

2023-07-03 17:15:12

系統(tǒng)架構(gòu)設(shè)計

2021-01-11 10:28:10

漏洞側(cè)信道攻擊

2020-07-21 07:00:00

側(cè)信道攻擊黑客網(wǎng)絡(luò)攻擊

2017-09-07 16:52:23

2010-01-13 18:47:53

C++教程

2010-03-04 16:38:37

Android開發(fā)技巧

2009-12-09 16:52:51

VS 2003插件

2010-07-28 10:42:12

DB2系統(tǒng)

2010-05-20 14:42:02

MySQL數(shù)據(jù)

2011-04-14 09:05:07

ExcelMySQL數(shù)據(jù)

2010-02-23 13:33:49

Python測試套件

2018-04-19 15:13:53

javascriptwebpackvue.js

2010-01-28 14:04:35

C++鏈表

2010-07-28 09:21:25

DB2鎖等待
點贊
收藏

51CTO技術(shù)棧公眾號