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