戴 立, 董高峰, 胡紅鋼, 俞能海
中國(guó)科學(xué)技術(shù)大學(xué)中國(guó)科學(xué)院電磁空間信息重點(diǎn)實(shí)驗(yàn)室, 合肥230027
在密碼分析學(xué)中, 加密算法即便在數(shù)學(xué)上是安全的, 在工程實(shí)現(xiàn)時(shí)也會(huì)不可避免地在某些物理信道層面泄露額外的密鑰信息.側(cè)信道分析便是一種嘗試收集這些額外泄露的信息, 并加以利用進(jìn)行密碼學(xué)分析的方法.側(cè)信道分析的思想在20 世紀(jì)90年代后期初步形成, 攻擊者通過(guò)收集密碼設(shè)備運(yùn)行密碼算法時(shí)的時(shí)間差異[1]、功耗[2]、電磁[3]或其它類(lèi)型的物理泄露信息, 結(jié)合數(shù)學(xué)分析方法, 可以恢復(fù)出密碼設(shè)備運(yùn)行時(shí)所使用的部分或完整密鑰.近年來(lái), 在側(cè)信道分析領(lǐng)域涌現(xiàn)出了大量的研究成果, 例如掩碼防護(hù)與對(duì)抗掩碼的高階攻擊[4,5]、隨機(jī)化操作順序隱藏泄露信息[6]、雙柵邏輯和預(yù)充電邏輯的抗側(cè)信道攻擊電路[7]等.但是由于目前的大多數(shù)研究是針對(duì)理論模型展開(kāi)討論的, 通常采用專(zhuān)用的側(cè)信道實(shí)驗(yàn)設(shè)備[8]或自制的原型設(shè)備[9]運(yùn)行密碼算法并對(duì)其進(jìn)行攻擊測(cè)試.這樣做的一個(gè)弊端是, 待測(cè)設(shè)備往往擁有良好的測(cè)量配置, 如較完美的觸發(fā)信號(hào)、運(yùn)算芯片VCC 端或GND 端直接嵌入的測(cè)量電阻, 以及較小的周邊環(huán)境干擾等.但將側(cè)信道分析理論運(yùn)用到對(duì)真實(shí)設(shè)備的攻擊時(shí), 會(huì)出現(xiàn)許多需要額外考慮的問(wèn)題.
另一方面, 隨著RFID 技術(shù)的發(fā)展, 不少RFID 標(biāo)簽已經(jīng)具備了運(yùn)行密碼算法的能力, 但與此同時(shí)也受到了來(lái)自側(cè)信道攻擊的威脅.為探究在對(duì)真實(shí)RFID 標(biāo)簽進(jìn)行側(cè)信道攻擊時(shí)會(huì)遇到哪些挑戰(zhàn), 以及實(shí)際攻擊效果如何, 本文選取了一款稱(chēng)之為無(wú)線識(shí)別與傳感平臺(tái)[10,11](wireless identification and sensing platform, WISP)的新型RFID 標(biāo)簽展開(kāi)側(cè)信道攻擊.WISP 是近幾年發(fā)展起來(lái)的一款可編程RFID 標(biāo)簽, 本文實(shí)驗(yàn)中所使用的是其第五代版本TB-WISP 5.0, 該版本搭載了一顆MSP430FR5969 微控制芯片, 可以用其驅(qū)動(dòng)該標(biāo)簽上所配備的各種傳感器裝置, 并將傳感器收集的傳感信息處理后通過(guò)特高頻載波波段(902–928 MHz)發(fā)送給閱讀器天線, 通訊時(shí)采用EPC Class 1 Generation 2 通信協(xié)議.WISP 電路內(nèi)部包含一套能量收集模塊, 可以通過(guò)自身天線接收閱讀器天線發(fā)出的射頻能量并將其轉(zhuǎn)化為電能、存儲(chǔ)在標(biāo)簽內(nèi)部的儲(chǔ)能電容中以實(shí)現(xiàn)無(wú)源性, 因此該標(biāo)簽在人體醫(yī)學(xué)設(shè)備[12]、自定位RFID[13]、結(jié)構(gòu)安全檢測(cè)[14]、可充電傳感網(wǎng)[15]、農(nóng)業(yè)環(huán)境檢測(cè)[16]等應(yīng)用領(lǐng)域具有廣泛的應(yīng)用前景.本文選取這樣一款設(shè)備進(jìn)行側(cè)信道分析的意義可概括為以下四點(diǎn):
(1)WISP 是一種典型的MCU 控制的可編程RFID 標(biāo)簽, 存在巨大的市場(chǎng)應(yīng)用空間, 具有攻擊和防護(hù)的研究?jī)r(jià)值;
(2)近年來(lái)出現(xiàn)了許多對(duì)WISP 能量采集效率、密碼和認(rèn)證算法[17]以及應(yīng)用領(lǐng)域等方面的研究, 但在已公開(kāi)發(fā)表的文獻(xiàn)中, 本文是首個(gè)對(duì)WISP 側(cè)信道安全性展開(kāi)研究的;
(3)WISP 在正常工作時(shí), 一方面內(nèi)部存在板載傳感器等部件的功耗噪聲, 另一方面外部存在與閱讀器通訊時(shí)的強(qiáng)烈電磁波噪聲, 這些噪聲的干擾給攻擊帶來(lái)了一定難度;
(4)不同于使用穩(wěn)壓電源供電的大多數(shù)設(shè)備, WISP 內(nèi)部含有一套獨(dú)特的儲(chǔ)能電容充放電系統(tǒng), 且具有休眠/喚醒狀態(tài)切換的工作特性, 因此這樣的儲(chǔ)能系統(tǒng)和工作特性可能會(huì)給攻擊帶來(lái)新的挑戰(zhàn).
本文結(jié)構(gòu)安排如下: 在第2 節(jié)中將介紹WISP 整體的工作過(guò)程、在工作時(shí)所采用的協(xié)議以及功耗和電磁攻擊的基本過(guò)程和原理; 第3 節(jié)中將介紹攻擊中軌跡采集的測(cè)量配置及優(yōu)化、測(cè)量效果和對(duì)軌跡所進(jìn)行的預(yù)處理; 實(shí)驗(yàn)攻擊的結(jié)果和分析將呈現(xiàn)在第4 節(jié)中; 最后在第5 節(jié)中對(duì)全文進(jìn)行總結(jié), 并提出了對(duì)未來(lái)工作的展望.
本文所攻擊的WISP 設(shè)備工作過(guò)程如下: 當(dāng)由外部供電或內(nèi)部?jī)?chǔ)能電容能量充足時(shí), 將處于工作狀態(tài); 當(dāng)無(wú)外部供電且內(nèi)部?jī)?chǔ)能電容能量不足時(shí), 將切換到休眠狀態(tài), 由能量收集模塊收集到足夠能量后, 再返回工作狀態(tài)繼續(xù)工作.在工作狀態(tài)下, WISP 將持續(xù)用傳感器收集環(huán)境信息存入自身FRAM(ferromagnetic random access memory)中, 并隨時(shí)接受來(lái)自閱讀器的通訊請(qǐng)求中斷.為了防止重放攻擊, 每次WISP 與閱讀器之間采用如圖1 所示的簡(jiǎn)易雙向認(rèn)證協(xié)議進(jìn)行認(rèn)證和會(huì)話密鑰協(xié)商.閱讀器與WISP 之間存在一個(gè)預(yù)先設(shè)定好的共享主密鑰k, 首先, 由閱讀器發(fā)起通訊請(qǐng)求, 請(qǐng)求數(shù)據(jù)包中包含一個(gè)隨機(jī)數(shù)R1; WISP 接收到請(qǐng)求后, 用主密鑰k 對(duì)R1 進(jìn)行AES 加密, 將加密結(jié)果和一個(gè)隨機(jī)數(shù)R2 一并發(fā)送給閱讀器; 閱讀器解密得到R1 完成對(duì)WISP 的身份驗(yàn)證, 并將R2 用k 進(jìn)行AES 加密后返回給WISP; WISP 解密得到R2 完成對(duì)閱讀器的身份驗(yàn)證; 之后, 雙方生成新的臨時(shí)會(huì)話密鑰k ⊕R1 ⊕R2,并用該密鑰對(duì)數(shù)據(jù)進(jìn)行加密完成本次會(huì)話通訊.值得注意的是, 當(dāng)不提供外部電源且WISP 距離閱讀器天線較遠(yuǎn)時(shí), WISP 的丟包率將處于一個(gè)較高的水平, 因此WISP 在短時(shí)間內(nèi)收到多個(gè)通訊請(qǐng)求數(shù)據(jù)包被認(rèn)為屬于正常情況.
圖1 簡(jiǎn)易雙向認(rèn)證協(xié)議Figure 1 Simple mutual authentication protocol
在側(cè)信道攻擊中, 目前比較主流的做法是利用功耗泄露信息或電磁泄露信息進(jìn)行攻擊, 無(wú)論是功耗攻擊還是電磁攻擊, 都可分為“信息采集→軌跡預(yù)處理→選取功耗泄露模型→軌跡分析” 這幾個(gè)基本階段, 當(dāng)攻擊結(jié)果失敗或者效果不夠理想時(shí), 需要分析原因并相應(yīng)地回到前面階段修改方案后重新執(zhí)行.這兩種攻擊的主要區(qū)別在于信息采集環(huán)節(jié)所使用的采集設(shè)備和采集方法有所不同.
2.2.1 信息采集
泄露信息的存在和能被采集是攻擊可行性的基礎(chǔ), 只有當(dāng)設(shè)備存在側(cè)信道信息泄露且采集到的數(shù)據(jù)包含充足的泄露信息時(shí)攻擊才有可能成功.
在功耗泄露信息的采集中, 需要使用恒壓電源供電, 并在采集電路的VCC 端或GND 端嵌入一個(gè)1–50 歐姆的小電阻, 利用探頭測(cè)量電阻兩端的電壓差, 該電壓差的變化可以代表整個(gè)電路的功耗變化[18],將其記錄為功耗軌跡以供后續(xù)處理.由于電壓差的變化幅度可能較小, 可以使用差分放大器對(duì)信號(hào)進(jìn)行放大.
而在電磁泄露信息的采集中, 利用高靈敏度的電磁探頭靠近設(shè)備芯片部分, 記錄芯片工作時(shí)所泄露出來(lái)的電磁信息[18].同樣地, 由于這種電磁泄露信息非常微弱, 通常會(huì)利用一個(gè)低噪放大器對(duì)采集到的電磁信息進(jìn)行放大處理.記錄到的電磁軌跡同樣可被認(rèn)為代表了電路的功耗變化情況, 而電磁軌跡與功耗軌跡的不同之處在于, 電磁軌跡在幅度上將顯得更為微弱, 受到噪聲的干擾也更大, 即電磁泄露信息具有更低的信噪比.
采集時(shí), 為了提升泄露信息的信噪比, 攻擊者需要精準(zhǔn)定位設(shè)備加解密運(yùn)算的時(shí)間段, 并將該時(shí)間段以外的無(wú)關(guān)信息拋除, 為達(dá)到這一目的需要設(shè)定合適的觸發(fā)條件.在許多使用專(zhuān)用側(cè)信道實(shí)驗(yàn)設(shè)備的研究中, 會(huì)在編程過(guò)程中設(shè)置好設(shè)備的觸發(fā)引腳和觸發(fā)信號(hào), 使設(shè)備在加解密開(kāi)始前給觸發(fā)引腳發(fā)送一個(gè)觸發(fā)信號(hào)以精準(zhǔn)地采集加解密段軌跡, 因此這類(lèi)觸發(fā)條件的精準(zhǔn)度很高; 而在一些對(duì)真實(shí)設(shè)備攻擊的研究中,則會(huì)借助于設(shè)備自身的特征作為觸發(fā)條件, 如對(duì)無(wú)線設(shè)備的攻擊采用通訊協(xié)議中的特征進(jìn)行觸發(fā)[19], 對(duì)手機(jī)的攻擊采用USB 調(diào)試進(jìn)行觸發(fā)[20]等, 相應(yīng)地這類(lèi)觸發(fā)條件精準(zhǔn)度較低.
2.2.2 軌跡預(yù)處理
在對(duì)真實(shí)設(shè)備的攻擊中, 由于不精準(zhǔn)的觸發(fā)條件和較大的噪聲, 信息采集后得到的多條原始軌跡在時(shí)間軸上處于未對(duì)齊狀態(tài), 在幅度值上也存在較多毛刺噪聲, 需要使用軌跡預(yù)處理操作進(jìn)行對(duì)齊和去噪.近年來(lái)有許多關(guān)于預(yù)處理環(huán)節(jié)的研究成果, 時(shí)間軸上的預(yù)對(duì)齊采用峰值匹配、動(dòng)態(tài)時(shí)間規(guī)整[21,22]等算法能達(dá)到較好的對(duì)齊效果, 同時(shí)可以通過(guò)低通濾波、均值濾波等達(dá)到一定去噪效果.
2.2.3 選取功耗泄露模型
功耗泄露模型對(duì)密碼設(shè)備所泄露的功耗進(jìn)行了仿真, 目前側(cè)信道分析中應(yīng)用最廣泛的兩種模型是漢明距離模型和漢明重量模型[18].
漢明距離模型將設(shè)備元件輸出邏輯值之間的轉(zhuǎn)換映射為功耗.一般來(lái)說(shuō), 若設(shè)備中數(shù)據(jù)總線較長(zhǎng), 電容負(fù)載大, 對(duì)設(shè)備的功耗會(huì)產(chǎn)生比較大的影響, 這時(shí)候可以用漢明距離模型刻畫(huà)其數(shù)據(jù)總線上數(shù)據(jù)轉(zhuǎn)換的功耗.如數(shù)據(jù)總線上一個(gè)數(shù)據(jù)由v0變?yōu)関1時(shí), 其漢明距離模型為HD(v0,v1)= HW(v0⊕v1), 其中HW(·)表示取參數(shù)的漢明重量值.
相比而言, 漢明重量模型則比漢明距離模型更加簡(jiǎn)單一點(diǎn).當(dāng)攻擊者不知道設(shè)備底層電路元件排布信息或者不知道元件所處理數(shù)據(jù)的變換情況時(shí), 則可采用漢明重量模型.漢明重量模型假設(shè)能耗與被處理數(shù)據(jù)中比特位為1 的個(gè)數(shù)(即數(shù)據(jù)的漢明重量)成正比.雖然在實(shí)際情況中, 設(shè)備CMOS 電路中的功耗更多地取決于電路中數(shù)據(jù)數(shù)值轉(zhuǎn)換, 但這種功耗與數(shù)據(jù)漢明重量并非完全不相關(guān).在漢明重量模型中, 可以直接對(duì)一個(gè)數(shù)據(jù)x 取其漢明重量來(lái)刻畫(huà)處理該數(shù)據(jù)的功耗, 即功耗模型為HW(x).
以本文對(duì)AES 的攻擊為例, 針對(duì)AES 初始輪中的輪密鑰加和第一輪中的字節(jié)替換這兩個(gè)操作進(jìn)行漢明重量模型建模, 由于操作中原密鑰被分為16 個(gè)單字節(jié)的子密鑰參與運(yùn)算, 因此我們分別對(duì)每個(gè)子密鑰列舉所有的可能情況進(jìn)行攻擊, 即對(duì)于已知明文m 和假定子密鑰k, 這兩個(gè)操作過(guò)程中其漢明重量模型下的功耗為HW(sbox(m ⊕k)), 其中sbox(m ⊕k)表示明文m 和密鑰k 相異或的結(jié)果參與字節(jié)替換運(yùn)算后的輸出值.
2.2.4 軌跡分析
軌跡分析是整個(gè)攻擊過(guò)程的最后一步.現(xiàn)有的軌跡分析技術(shù)多種多樣, 常用的一些包括簡(jiǎn)單功耗分析[23]、差分功耗分析[2]、互信息分析[24]、方差分析[25]、模板分析[26]等等.本文實(shí)驗(yàn)所采用的差分功耗分析是通過(guò)利用大量功耗軌跡, 計(jì)算在相應(yīng)的功耗泄露模型下, 這些軌跡與所假設(shè)子密鑰的相關(guān)性, 由相關(guān)性推算各個(gè)假設(shè)子密鑰是真實(shí)子密鑰的可能性大小.已知給定的軌跡集合T, T 中第d 條軌跡td所采用的明文字節(jié)md, 假設(shè)的子密鑰字節(jié)k, 則k 與T 的相關(guān)性rk為
式中, D 表示集合T 中軌跡的總數(shù)量, hd表示T 中第d 條軌跡對(duì)應(yīng)的漢明重量模型下的功耗HW(sbox(md⊕k)),表示全部D 條軌跡在漢明重量模型下功耗的平均值, td,i表示第d 條軌跡在第i個(gè)數(shù)據(jù)點(diǎn)處的值,表示全部D 條軌跡在第i 個(gè)數(shù)據(jù)點(diǎn)處的平均值.
對(duì)于每一個(gè)子密鑰字節(jié), 可列舉出256 種密鑰假設(shè), 將每一種密鑰假設(shè)與所采集功耗軌跡的相關(guān)性計(jì)算出來(lái)后取絕對(duì)值并按從大到小排序, 結(jié)果中最大的值所對(duì)應(yīng)的密鑰假設(shè)被認(rèn)為最有可能是真實(shí)密鑰.
從安全性分析的角度而言, 若我們一開(kāi)始知道真實(shí)密鑰, 可以觀測(cè)到通過(guò)D 條軌跡攻擊后, 真實(shí)密鑰所對(duì)應(yīng)的相關(guān)性絕對(duì)值在所有假設(shè)密鑰對(duì)應(yīng)的相關(guān)性絕對(duì)值中從大到小的排序序號(hào)(從序號(hào)0 開(kāi)始計(jì)算),這一序號(hào)值等于部分猜測(cè)熵[27](partial guessing entropy, PGE), 部分猜測(cè)熵可被用來(lái)評(píng)估在D 條軌跡攻擊下的攻擊效果, 其值越小, 表示攻擊效果越好, 當(dāng)部分猜測(cè)熵的值達(dá)到0 時(shí), 攻擊效果達(dá)到最佳水平.
本文實(shí)驗(yàn)過(guò)程中采用的主要器件包括: TB-WISP 5.0 標(biāo)簽一個(gè)、Impinj R420 閱讀器及天線一部、Pico 5444B 示波器一臺(tái)、ChipWhisperer 公司的CW501 差分探頭一個(gè)、ChipWhisperer 公司的CW502 低噪放大器一個(gè)、RIGOL 電磁探頭一個(gè)和PC 機(jī)一臺(tái).其中, Pico 5444B 示波器單通道下最大支持14 比特的采樣位寬和5 GS/s 的采樣頻率, CW501 差分探頭提供20 kHz–200 MHz 帶寬范圍內(nèi)的10db 增益, CW502 低噪放大器提供0.1 MHz 到1000 MHz 帶寬范圍內(nèi)的20 db 增益.由2.1 節(jié)中WISP所采用的雙向認(rèn)證協(xié)議可知, 我們的攻擊目標(biāo)是分析出WISP 所使用的主密鑰k.為了獲取大量設(shè)備加密時(shí)的功耗或電磁泄露軌跡, 我們可以用閱讀器向WISP 發(fā)送多個(gè)含有不同隨機(jī)數(shù)的通訊請(qǐng)求數(shù)據(jù)包, 在收到加密結(jié)果前完成對(duì)其加密功耗或電磁泄露軌跡的采集.
3.1.1 功耗泄露的測(cè)量配置
為了完成功耗軌跡采集, 根據(jù)2.2.1 節(jié)中描述的采集原理, 一種較好的測(cè)量方法是直接在MSP430FR5969 MCU 的VCC 端或GND 端嵌入一個(gè)小型貼片電阻, 再用差分探頭測(cè)量其兩端的電壓差, 這樣能有效地減小電路其它部分的噪聲影響, 但是嵌入貼片電阻的操作難度比較大, 且需要昂貴的設(shè)備才能完成這一精細(xì)操作.在真實(shí)攻擊中, 若攻擊人員只有一塊待攻擊WISP 標(biāo)簽樣本, 嵌入電阻時(shí)蝕刻電路操作上的失誤將直接導(dǎo)致攻擊的失敗, 且這種操作會(huì)在設(shè)備上留下明顯的改裝痕跡, 在一些實(shí)際攻擊場(chǎng)景中顯得不適用.
本文中的功耗測(cè)量選用了比較大的測(cè)量環(huán)路: 在WISP 的程序下載接口處利用外部電源進(jìn)行供電, 于供電電源與下載接口之間增加一段連接導(dǎo)線, 并在VCC 端的導(dǎo)線上加裝一個(gè)阻值為1 Ω 測(cè)量電阻.之后,我們可以直接在測(cè)量電阻兩端安裝CW501 差分探頭, 并連接Pico 示波器完成測(cè)量環(huán)路的配置.關(guān)于外部電源的選擇, 我們測(cè)試了電腦USB 供電、實(shí)驗(yàn)室穩(wěn)壓電源供電、干電池供電等三種方案, 發(fā)現(xiàn)采用干電池供電時(shí), 電源紋波最小, 采樣效果也最理想.
在剛開(kāi)始研究時(shí), 為了確定加密操作在功耗軌跡上的所占區(qū)段并繼而分析其軌跡特征, 我們?yōu)閃ISP設(shè)置了一個(gè)觸發(fā)信號(hào): 讓W(xué)ISP 加密完成后短暫點(diǎn)亮一次LED 燈, LED 燈的VCC 引腳可作為觸發(fā)引腳.為了捕捉這一觸發(fā)信號(hào), 我們?cè)贚ED 燈的兩端焊接了兩根電源線, 并連接到一個(gè)示波器探頭.真實(shí)攻擊場(chǎng)景中, 這種類(lèi)似的觸發(fā)引腳是有可能存在并被加以利用的, 但我們的攻擊不應(yīng)對(duì)這種觸發(fā)引腳的存在產(chǎn)生依賴(lài)性.因此在后續(xù)攻擊中, 我們?nèi)∠擞|發(fā)引腳的設(shè)定, 利用所發(fā)現(xiàn)的加密軌跡特征優(yōu)化了觸發(fā)條件, 這將在3.2 節(jié)中展開(kāi)詳細(xì)討論.
功耗泄露的測(cè)量配置和供電連接方式如圖2 所示.由于MSP430FR5969 MCU 的最高時(shí)鐘頻率為16 MHz, 根據(jù)奈奎斯特采樣定律[28], 我們需要至少32 MS/s 的示波器采樣頻率才能保證原始信號(hào)的無(wú)損采樣.在我們的實(shí)驗(yàn)中, 采樣頻率設(shè)置為62.5 MS/s, 采樣位寬設(shè)置為14 比特.當(dāng)完成測(cè)量配置后, 利用閱讀器向WISP 發(fā)送一個(gè)包含隨機(jī)數(shù)R1 的請(qǐng)求數(shù)據(jù)包, 若WISP 成功接收到便會(huì)執(zhí)行對(duì)R1 的AES 加密操作, 此時(shí)記錄下示波器所采集到的波形, 并保存對(duì)應(yīng)的明文R1 即可.
3.1.2 電磁泄露的測(cè)量配置
電磁泄露的測(cè)量與功耗泄露的測(cè)量類(lèi)似, 供電方式和觸發(fā)引腳保持不變, 將差分探頭改為電磁探頭并靠近工作中的MSP430FR5969 MCU 進(jìn)行探測(cè), 同時(shí)我們?cè)陔姶盘筋^和示波器之間增加了一個(gè)20 db 增益的CW502 低噪放大器, 測(cè)量方法如圖3 所示.同樣地, 圖中的觸發(fā)引腳和對(duì)應(yīng)的示波器探頭也可被取消, 取而代之用電磁泄露軌跡自身的特征進(jìn)行觸發(fā).
需要注意的是, 電磁探頭的位置會(huì)影響到所采集到軌跡的形態(tài), 為了達(dá)到較好的采集效果, 可以在WISP 處于工作狀態(tài)時(shí), 將電磁探頭垂直于WISP 平面并貼近其MCU 芯片, 然后微調(diào)探頭橫縱坐標(biāo)的位置, 尋找一處使得有效信號(hào)軌跡振幅盡可能大且受到較小噪聲干擾的點(diǎn).此外, 在同一次電磁攻擊的采集過(guò)程中, 要求電磁探頭相對(duì)WISP 的位置保持穩(wěn)定, 可以利用膠帶或其它工具固定WISP 在實(shí)驗(yàn)臺(tái)面上的位置, 并利用夾持器固定探頭的位置, 同時(shí), 采集過(guò)程中應(yīng)避免實(shí)驗(yàn)臺(tái)面發(fā)生較大的振動(dòng).
圖2 功耗泄露的測(cè)量配置和供電連接圖示Figure 2 Power leakage measurement setup and power supply connection diagram
圖3 電磁泄露的測(cè)量配置和供電連接圖示Figure 3 Electromagnetic leakage measurement setup and power supply connection diagram
3.2.1 功耗軌跡的特征分析與觸發(fā)條件優(yōu)化
圖4 帶觸發(fā)信號(hào)的功耗采集模式下單條軌跡Figure 4 Single trace in power measurement mode with trigger signal
3.1 節(jié)所介紹的軌跡采集方法使用了LED 燈的VCC 引腳高電平作為觸發(fā)信號(hào), 采集出來(lái)的一條樣本軌跡如圖4 所示.圖中紅色曲線為觸發(fā)信號(hào)軌跡, 藍(lán)色曲線為采集到的功耗軌跡.我們?cè)诜治隽舜罅窟@種軌跡后發(fā)現(xiàn), 它們擁有這樣一些共同特點(diǎn):
(1)紅色觸發(fā)信號(hào)高電平前4 ms 左右長(zhǎng)的功耗軌跡可分辨出清晰的AES-128 加密9 輪半結(jié)構(gòu)的周期性圖案, 加密段放大后效果如圖5 所示;
(2)所有軌跡均存在分布不規(guī)則的毛刺, 毛刺的脈沖寬度和幅度會(huì)有所變化, 但脈沖寬度均小于3 ms, 毛刺有時(shí)會(huì)與加密段軌跡發(fā)生疊加現(xiàn)象;
(3)除卻加密段和毛刺段呈現(xiàn)出較高的功耗特征外, 加密段前后20 ms 所記錄的軌跡范圍內(nèi)均沒(méi)有其它明顯的功耗特征;
(4)觸發(fā)信號(hào)轉(zhuǎn)到高電平時(shí), 會(huì)影響AES 加密尾部的波形, 在尾部形成一個(gè)急劇的功耗突變.根據(jù)以上軌跡特點(diǎn), 我們有如下分析:
(1)毛刺可能是由于WISP 特殊的儲(chǔ)能電容結(jié)構(gòu)放電或電路上并行運(yùn)行的傳感器裝置所帶來(lái)的能耗噪聲;
(2)加密時(shí)的能耗遠(yuǎn)高于其它工作環(huán)節(jié)的能耗, 且加密段呈現(xiàn)出明顯的圖案特征, 脈沖寬度較為固定,九輪半加密結(jié)構(gòu)明顯, 可以在實(shí)際攻擊中根據(jù)這一特征來(lái)設(shè)置觸發(fā)條件.
圖5 AES-128 加密段功耗軌跡Figure 5 Power trace of AES-128 encryption segment
如3.1 節(jié)所述, 實(shí)際攻擊中可能不存在可供利用的觸發(fā)引腳, 因此我們需要進(jìn)一步考慮利用功耗軌跡自身的特征來(lái)進(jìn)行觸發(fā).首先, 我們關(guān)閉了WISP 加密結(jié)束后點(diǎn)亮LED 指示燈的這一設(shè)定, 并將測(cè)量的觸發(fā)條件更改為功耗軌跡脈沖寬度觸發(fā), 經(jīng)過(guò)反復(fù)驗(yàn)證, 觸發(fā)電壓設(shè)置為0.8 V、觸發(fā)脈沖寬度設(shè)置在5.3 ms 到6.3 ms 之間時(shí)可以得到較純凈的AES 加密功耗軌跡.值得注意的是, 這種觸發(fā)條件過(guò)濾掉了部分受到毛刺噪聲影響而變得畸形的功耗軌跡, 因?yàn)檫@些軌跡加密段的脈沖寬度會(huì)由于與噪聲脈沖疊加而發(fā)生改變.去掉觸發(fā)信號(hào)后的一條AES 加密段軌跡如圖6 中藍(lán)色曲線所示.由于沒(méi)有了觸發(fā)信號(hào)的干擾, 可以觀測(cè)到軌跡尾部的功耗突變現(xiàn)象消失了.
圖6 無(wú)觸發(fā)信號(hào)的功耗軌跡(藍(lán))和電磁軌跡(綠)Figure 6 Power trace (blue)and electromagnetic trace (green)without trigger signal
3.2.2 電磁軌跡的特征分析與觸發(fā)條件優(yōu)化
我們進(jìn)一步考慮如何測(cè)量無(wú)觸發(fā)信號(hào)的電磁軌跡, 由于電磁泄露信息受到環(huán)境電磁波干擾較大, 電磁軌跡的測(cè)量也存在更大難度.無(wú)觸發(fā)信號(hào)條件下一條經(jīng)過(guò)10 倍幅度放大后的典型電磁泄露軌跡如圖6 中綠色曲線所示.我們發(fā)現(xiàn)與功耗泄露軌跡相比, 電磁泄露軌跡有如下特征:
(1)受到噪聲干擾現(xiàn)象更加嚴(yán)重, AES 九輪半加密結(jié)構(gòu)不再明顯;
(2)加密開(kāi)始前有兩處很明顯的脈沖波形, 波形幅值小于加密部分;
(3)加密結(jié)束后無(wú)明顯的波形回落現(xiàn)象;
(4)部分軌跡有時(shí)會(huì)在加密段受到嚴(yán)重的電磁噪聲干擾而變得不可識(shí)別.
我們利用上述第(2)條特征設(shè)置欠幅脈沖作為觸發(fā)條件, 可以通過(guò)設(shè)置更為苛刻的觸發(fā)條件閾值來(lái)盡量獲得更為一致的軌跡, 但這同時(shí)也舍棄掉了許多有用但不嚴(yán)格符合該閾值的軌跡.應(yīng)注意, 合適的觸發(fā)條件閾值會(huì)由于電磁探頭種類(lèi)的不同和具體擺放位置的變化而有所改變, 采集過(guò)程中應(yīng)保持電磁探頭處于一個(gè)較為固定的位置.
在這一步里, 我們需要對(duì)采集到的軌跡進(jìn)行對(duì)齊和去噪處理.為了提高結(jié)果的準(zhǔn)確性, 我們先對(duì)軌跡進(jìn)行了初步篩選, 去除掉了那些在加密第一輪處明顯被毛刺噪聲干擾的軌跡.對(duì)于剩下的軌跡, 我們保留了AES 加密算法第一輪附近的60 000 個(gè)數(shù)據(jù)點(diǎn)進(jìn)行進(jìn)一步的預(yù)處理.
首先, 我們對(duì)軌跡進(jìn)行平滑去噪.可采用的去噪方法有很多, 常見(jiàn)的如巴特沃斯低通濾波、高斯低通濾波、移動(dòng)平均濾波等都能達(dá)到一定去噪效果.經(jīng)過(guò)反復(fù)的性能對(duì)比, 我們采用了參考文獻(xiàn)[20]中提出的預(yù)處理方法, 該方法將軌跡先進(jìn)行短時(shí)傅里葉變換(STFT), 然后選取適當(dāng)?shù)挠行盘?hào)頻帶, 再進(jìn)行移動(dòng)平均濾波.在該處理方法中, 我們所采用的STFT 窗口大小為128, 有效信號(hào)頻帶選取0–1 MHz, 移動(dòng)平均濾波的窗口大小為200.加密第一輪部分的軌跡去噪處理前后對(duì)比如圖7 所示.
圖7 AES 第一輪軌跡去噪前后軌跡對(duì)比Figure 7 Comparison of traces before and after denoising in AES’s 1st round
此外, 我們需要對(duì)去噪后的軌跡進(jìn)行預(yù)對(duì)齊處理.我們采用了峰值匹配算法進(jìn)行初步對(duì)齊.在這一步后, 大多數(shù)軌跡得到了很好的對(duì)齊效果, 但有部分軌跡尾部出現(xiàn)了微小的時(shí)延偏差.目前尚不清楚出現(xiàn)這一時(shí)延偏差的具體原因, 在設(shè)備抗側(cè)信道攻擊設(shè)計(jì)中, 也經(jīng)常加入隨機(jī)時(shí)延作為一種應(yīng)對(duì)側(cè)信道攻擊的防御措施, 我們采用動(dòng)態(tài)時(shí)間規(guī)整算法對(duì)這類(lèi)軌跡進(jìn)行處理可以達(dá)到完美的對(duì)齊效果.在經(jīng)過(guò)這兩種算法的處理后, 多條軌跡的局部對(duì)齊效果如圖8 所示, 圖中以不同顏色區(qū)分不同編號(hào)的軌跡.
圖8 多條軌跡預(yù)對(duì)齊處理后的對(duì)齊效果(局部)Figure 8 Alignment effect (partial)of several traces after pre-aligned processing
由圖8 我們可以觀測(cè)到, 雖然軌跡在時(shí)間軸上得到了很好的對(duì)齊效果, 但幅度軸上仍然存在整體性偏移差別.為了消除這種整體性偏移, 我們可以利用歸一化公式T?=T ?mean(T)或進(jìn)行歸一化, 兩式中T 表示原軌跡, T?表示歸一化后得到的新軌跡, mean(T)表示軌跡上所有點(diǎn)的平均值,std(T)表示軌跡上所有點(diǎn)的標(biāo)準(zhǔn)差.但在后續(xù)的實(shí)驗(yàn)中我們發(fā)現(xiàn), 歸一化處理后的軌跡雖然擁有更好的視覺(jué)對(duì)齊效果, 在攻擊效果上卻不如原軌跡, 這是因?yàn)闅w一化在對(duì)齊軌跡幅度軸的同時(shí), 也一定程度地減小了不同軌跡間的差異, 從而損失了部分泄露信息.因此, 在后續(xù)處理中, 我們并沒(méi)有對(duì)軌跡進(jìn)行歸一化.
我們采用了漢明重量模型對(duì)預(yù)處理完的功耗軌跡和電磁軌跡分別進(jìn)行了2.2.4 節(jié)中所介紹的差分功耗分析.
在功耗軌跡的差分分析中, 被攻擊密鑰的16 個(gè)字節(jié)攻擊效果如表1 所示, 攻擊效果最好的是第1 個(gè)字節(jié), 僅用了80 條軌跡就得到了正確的密鑰猜測(cè); 而攻擊效果最差的是第7 個(gè)字節(jié), 用了240 條軌跡才得到正確的密鑰猜測(cè).
表1 功耗攻擊中每個(gè)字節(jié)得到正確密鑰猜測(cè)時(shí)所用軌跡條數(shù)Table 1 Number of traces used in power attack for each byte to get correct key guess
在電磁軌跡的差分分析中, 由于電磁泄露信息受到了比較大的噪聲影響, 所需要的軌跡數(shù)量要遠(yuǎn)大于功耗軌跡的數(shù)量.我們的攻擊結(jié)果如表2 所示, 攻擊效果最好的仍然是第1 個(gè)字節(jié), 用了1000 條軌跡得到正確的密鑰猜測(cè), 而攻擊效果最差的是第9 個(gè)字節(jié), 用了2970 條軌跡才得到正確的密鑰猜測(cè).
表2 電磁攻擊中每個(gè)字節(jié)得到正確密鑰猜測(cè)時(shí)所用軌跡條數(shù)Table 2 Number of traces used in electromagnetic attack for each byte to get correct key guess
圖9 和圖10 分別展示了在對(duì)功耗軌跡和電磁軌跡的攻擊下第1 個(gè)字節(jié)的部分猜測(cè)熵隨著攻擊軌跡條數(shù)增多的變化情況.
圖9 功耗攻擊中字節(jié)1 的PGE 隨軌跡條數(shù)變化情況Figure 9 Change of PGE (byte 1)in power attack
圖10 電磁攻擊中字節(jié)1 的PGE 隨軌跡條數(shù)變化情況Figure 10 Change of PGE (byte 1)in electromagnetic attack
根據(jù)第3 節(jié)中的采集結(jié)果和4.1 節(jié)中的攻擊結(jié)果可知, 在RFID 標(biāo)簽上不加防范地運(yùn)行的密碼算法并不安全, 通過(guò)側(cè)信道攻擊能提取出存儲(chǔ)在標(biāo)簽內(nèi)部的密鑰.即使我們的測(cè)量環(huán)境并沒(méi)有達(dá)到一個(gè)最佳的測(cè)量環(huán)境, 如測(cè)量功耗的電阻并非直接嵌入在運(yùn)算芯片的VCC 端或GND 端, 電磁測(cè)量也沒(méi)有用法拉第籠屏蔽環(huán)境中的電磁干擾, 但在這種情況下, 我們?nèi)匀煌ㄟ^(guò)不同明文加密的240 條功耗軌跡或2970 條電磁軌跡完全恢復(fù)了存儲(chǔ)在WISP 標(biāo)簽內(nèi)的AES 密鑰.對(duì)于其他攻擊者而言, 他們甚至可以通過(guò)改進(jìn)攻擊手段, 如建立攻擊模板、更換分析算法等, 用更少的軌跡就能獲取完整的真實(shí)密鑰.
我們?cè)趯?cè)信道分析理論應(yīng)用到對(duì)真實(shí)RFID 標(biāo)簽設(shè)備的攻擊中時(shí), 雖然遇到了觸發(fā)條件的選取、設(shè)備功耗或電磁軌跡特征未知、設(shè)備特殊電路帶來(lái)噪聲干擾等諸多方面的挑戰(zhàn), 但仍然找到了方法來(lái)克服這些挑戰(zhàn).因此, 側(cè)信道攻擊技術(shù)對(duì)社會(huì)上已經(jīng)廣泛應(yīng)用的密碼設(shè)備所帶來(lái)的威脅絕不可忽視, 密碼設(shè)備的設(shè)計(jì)者們也應(yīng)該投入更多的精力來(lái)應(yīng)對(duì)這一威脅.針對(duì)輕量化的RFID 標(biāo)簽, 建議采用基于哈希的認(rèn)證協(xié)議、隨機(jī)化操作順序等低價(jià)高效的手段來(lái)做側(cè)信道分析防護(hù).
近年來(lái), 也出現(xiàn)過(guò)許多針對(duì)具體密碼系統(tǒng)的側(cè)信道攻擊研究: 如文獻(xiàn)[9]的作者自制了高頻和超高頻的RFID 標(biāo)簽原型, 并用2000 條電磁軌跡和差分頻率分析破解了其AES 算法密鑰; 文獻(xiàn)[20]的作者用簡(jiǎn)單側(cè)信道分析以單條軌跡破解了手機(jī)上的RSA 和ECC 算法密鑰; 文獻(xiàn)[29]的作者使用逆向工程手段,通過(guò)150 條電磁軌跡破解了安全門(mén)鎖經(jīng)過(guò)改造的DES 算法密鑰.與現(xiàn)有研究對(duì)比, 本文的實(shí)驗(yàn)有如下創(chuàng)新點(diǎn):
(1)不再基于協(xié)議特征或觸發(fā)引腳進(jìn)行觸發(fā), 而是發(fā)掘并利用功耗或電磁軌跡的自身特征進(jìn)行觸發(fā);
(2)實(shí)現(xiàn)了完全非侵入式的功耗軌跡采集, 由于無(wú)需焊接觸發(fā)引腳, 且功耗測(cè)量電阻不需焊接到目標(biāo)電路板上, 采集完畢后不會(huì)在目標(biāo)設(shè)備上留下攻擊痕跡.
為了探究在對(duì)真實(shí)密碼設(shè)備進(jìn)行側(cè)信道攻擊時(shí)會(huì)遇到的問(wèn)題和挑戰(zhàn), 本文從攻擊者的角度出發(fā), 選取了一款新興的可編程RFID 標(biāo)簽TB-WISP 5.0 進(jìn)行攻擊.在攻擊過(guò)程中, 我們用相對(duì)簡(jiǎn)單的采集設(shè)備,分析出了AES-128 加密算法在WISP 設(shè)備運(yùn)行時(shí)功耗和電磁泄露軌跡上的特征, 據(jù)此設(shè)計(jì)了無(wú)需觸發(fā)信號(hào)的軌跡采集方案, 并排除掉了WISP 特殊儲(chǔ)能電容和周邊電路帶來(lái)的噪聲干擾, 在可接受的采集軌跡條數(shù)內(nèi)成功攻擊出了WISP 內(nèi)部?jī)?chǔ)存的AES 密鑰.之前的研究者已經(jīng)做出了部分對(duì)真實(shí)密碼設(shè)備攻擊的研究案例, 本文在他們的基礎(chǔ)之上, 進(jìn)一步證明了對(duì)真實(shí)RFID 標(biāo)簽進(jìn)行側(cè)信道攻擊的可行性, 展示了攻擊中所遇到的挑戰(zhàn)和應(yīng)對(duì)方法, 也揭示了在設(shè)計(jì)密碼設(shè)備軟硬件時(shí), 從抗側(cè)信道攻擊的角度加以設(shè)計(jì)防護(hù)措施的必要性和迫切性.
在未來(lái)的工作中, 對(duì)真實(shí)密碼設(shè)備的攻擊仍然是一個(gè)非常重要的研究方向.本文中所攻擊的WISP尚沒(méi)有加入嚴(yán)格的側(cè)信道防范措施, 但目前市面上有不少密碼設(shè)備已經(jīng)在側(cè)信道安全性方面設(shè)計(jì)了專(zhuān)門(mén)的防范方案.未來(lái)可以針對(duì)這些設(shè)備進(jìn)行進(jìn)一步的攻擊研究, 從而發(fā)現(xiàn)現(xiàn)有設(shè)備中仍然存在的攻擊弱點(diǎn), 為不斷完善密碼設(shè)備的側(cè)信道安全性作出貢獻(xiàn).