偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

導(dǎo)讀

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

文中值得注意的觀點(diǎn)有:

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

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

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

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

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

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

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

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

1計(jì)算機(jī)系,布里斯托大學(xué)(全英國(guó)大學(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)存,僅僅擁有知識(shí)產(chǎn)權(quán)無(wú)加工廠)

425 Market Street, 11th Floor,

San Francisco, CA 94105, United States.

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

摘要

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

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

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

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

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

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

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

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

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

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

利用電磁分析了:

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

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

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

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

2.研究背景

2.1 BeagleBone 平臺(tái)簡(jiǎn)介

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

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

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

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

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

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

2.2實(shí)驗(yàn)環(huán)境

采集和測(cè)量設(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,靜場(chǎng)電磁探頭

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

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

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

軟件部分:

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

2.3泄露檢測(cè)和實(shí)施策略

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

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

 

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

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

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

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

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

 

那么測(cè)試向量就為

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

 

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

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

 

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

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

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

 

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

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

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

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

 

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

3.1實(shí)驗(yàn)概述

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

 

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

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

 

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

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

 

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

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

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

 

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

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

另外:

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

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

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

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

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

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

3.2分析和討論

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

4.1 實(shí)驗(yàn)概述

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

信號(hào)采集:在任何探測(cè)階段,首先是確定

1.一種可識(shí)別的方式。

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

這是為了最大化的檢測(cè)到信息泄漏。這兩種方式有內(nèi)在聯(lián)系,因?yàn)榱己玫淖R(shí)別方式有利于對(duì)齊。但是,一般認(rèn)為前面的挑戰(zhàn)較為簡(jiǎn)單,因?yàn)槟繕?biāo)設(shè)備通常會(huì)因?yàn)橄鄳?yīng)的執(zhí)行操作產(chǎn)生明顯的可以識(shí)別的特征。這是對(duì)的,例如第3節(jié)我們可以輕松通過(guò)頻率響應(yīng)執(zhí)行時(shí)間檢測(cè)到ARM核的泄漏。相比之下,這不是真正的協(xié)處理器。因?yàn)槲覀儾磺宄嗀ES如何執(zhí)行計(jì)算的,而且不能確定任何周期性AES操作泄漏。這是一個(gè)更復(fù)雜的過(guò)程的事實(shí)是協(xié)處理器是獨(dú)立于ARM核操作的(因?yàn)橛布M(jìn)行加密操作被異步觸發(fā))。

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

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

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

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

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

 

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

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

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

4.2 分析和討論

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

 

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

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

1.驅(qū)動(dòng)程序運(yùn)作在non-DMA 備用模式。

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

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

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

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

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

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

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

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

3.觸發(fā)機(jī)制沒(méi)有設(shè)置正確,無(wú)法正確對(duì)齊,這些大大降低了信噪比。

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

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

5.NEON

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

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

 

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

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

 

其中

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

 

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

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

 

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

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

 

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

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

 

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

5.1指令集描述

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

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

 

對(duì)一系列的操作

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

 

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

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

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

 

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

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

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

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

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

圖11可以看出:

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

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

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

 

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

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

 

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

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

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

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

 

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

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

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

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

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

 

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

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

 

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

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

 

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

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

 

在1000條平均曲線(xiàn)下被區(qū)分出來(lái) 。

5.2針對(duì)AES一個(gè)具體攻擊

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

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

 

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

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

5.3原理性分析NORX

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

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

 

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

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

 

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

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

 

6.結(jié)論

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

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

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

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

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

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

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

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

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

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

致謝

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

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 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)化布線(xiàn)系統(tǒng)

2010-02-22 10:18:29

Python代碼

2010-03-01 14:28:46

Python進(jìn)程

2023-07-03 17:15:12

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

2010-03-03 14:51:02

Android手機(jī)

2021-01-11 10:28:10

漏洞側(cè)信道攻擊

2017-09-07 16:52:23

2010-01-13 18:47:53

C++教程

2010-03-04 16:38:37

Android開(kāi)發(fā)技巧

2020-07-21 07:00:00

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

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ù)

2018-04-19 15:13:53

javascriptwebpackvue.js

2010-02-23 13:33:49

Python測(cè)試套件

2011-04-14 09:05:07

ExcelMySQL數(shù)據(jù)

2010-01-28 14:04:35

C++鏈表

2010-07-28 09:21:25

DB2鎖等待
點(diǎn)贊
收藏

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