1. 程式人生 > >基於功率分析的側通道攻擊簡介

基於功率分析的側通道攻擊簡介

基於功率分析的側通道攻擊簡介


在我們的日常使用的電子產品中,加密是非常普遍的應用,像手機的SIM卡、銀行卡、手機、個人電腦等,都需要保密,防止被別有用心的人來竊取財物或資料。常規的攻擊是使用軟體手段或硬體手段對被攻擊物件實施暴力破解,隨著現代加密技術的發展,軟體暴力破解的時間成本太大,導致破解難度大大提高,成功率不高。在密碼學中,功率分析是一種側通道攻擊形式,攻擊者在其中研究加密硬體裝置(例如智慧卡,防篡改 “黑匣子”或積體電路)的功耗。即攻擊者可以通過測量加密裝置在其操作期間的功耗,然後使用諸如相關功率分析之類的統計技術對其進行分析,非侵入地從裝置中提取加密金鑰和其他祕密資訊。由於功率分析攻擊所花費的時間遠遠少於其他型別攻擊所需的時間,因此它已逐漸成為攻擊加密演算法的流行方法。

概念介紹

  1. 側通道攻擊(SCA)
    針對加密電子裝置在執行過程中的時間消耗、功率消耗或電磁輻射之類的側通道資訊洩漏而對加密裝置進行攻擊的方法,主要特點如下:
     基於能量分析攻擊,是一種能夠從密碼裝置中獲取祕密資訊的密碼攻擊方法;
     與其他攻擊方法不同,利用的是密碼裝置的能量消耗特徵,而非密碼演算法的數學特性;

  2. 功率分析
    功率分析是一種側邊通道攻擊的形式,攻擊者研究加密硬體裝置的功耗(如智慧卡、防篡改的“黑盒”或積體電路)。攻擊可以從裝置中提取加密金鑰和其他機密資訊。
     簡單功率攻擊(SPA);
     差分功率攻擊(DPA);
     相關功率分析(CPA);

實現原理

  1. 半導體器件的屬性
    由於半導體器件是開關器件,訊號的表示只有兩種0或者1,這樣在不同的狀態下功耗就會有所不同。測量晶片的功耗可以知道內部的開關情況。這種攻擊方式僅僅依賴於加密協議的具體實現,而不依賴於演算法本身。
  2. CMOS電路的通用
    CMOS電路由成對的N溝道和P溝道MOSFET(金氧半導體場效應電晶體)組成。 現代世界中的微處理器,微控制器,靜態RAM和許多其他數字邏輯電路使用CMOS(互補金氧半導體)技術。 因此,涉及密碼裝置的功耗的功率分析可以通過關注CMOS電路的功耗實現。
    CMOS電路的功耗由靜態功率和動態功率兩部分組成。 靜態功率是由電晶體的漏電流引起的,因此它取決於電路的設計;動態功率是由於電晶體的切換引起的,因此它取決於正在處理的資料和正在進行的操作。功率分析利用功耗與正在處理的資料之間的關係,而動態功率是相關的,靜態功率大部分是恆定的,因此總功率的變化僅僅是由動態功率引起的,因此總功耗可以直接用於攻擊。
    CMOS電路圖

晶片在執行的時候,由於資料或者邏輯的不同,內部的電晶體通斷是有區別的,可以通過這個區別來確定程式內部的資料或者指令。獲取這個區別有很多方法,比如在晶片的GND引腳處獲取電壓,通過探針去擷取晶片輻射的變化等等。我們身邊有很多密碼學裝置,比如銀行卡、門禁卡、手機卡等等,基於功率分析的側通道攻擊就是針對這些裝置實施的,其示意圖如下:
功率分析攻擊示意圖

攻擊流程

  1. 資訊的擷取
    首先,示波器裝置是必須的,而且示波器一定要有把資料傳輸給電腦的能力,之後的處理使用Matlab進行。具體來說,針對晶片,主要有以下幾種獲取洩露的方法:
     在GND引腳處串聯一個小電阻,大概是1~50歐姆,之後使用示波器測量電阻上的電壓;
     使用電場探針或者磁場探針獲取晶片的電磁洩露;
     其他方法,如表面掃面法,工作臺法拉第籠法等;
    串聯電阻法示意圖

  2. 資訊的恢復
    基於功率分析的側通道攻擊的資訊恢復,主要有簡單功率攻擊、差分功率攻擊、相關功率分析等。

    1. 簡單功率攻擊(SPA)
      對裝置隨時間消耗的電流的曲線進行目視檢查。當裝置執行不同的操作時,會發生功耗變化。例如,由微處理器執行的不同指令將具有不同的功耗曲線。因此,在使用DES加密的智慧卡的電源跟蹤中,可以清楚地看到十六次迭代的波形。類似地,RSA實現中的平方和乘法運算也很容易辨別出來,這使得黑客能夠計算出金鑰。即使功耗變化幅度很小,標準數字示波器也是可以很容易地顯示資料引起的變化。內置於示波器中的頻率濾波器和平衡電路通常可以用於濾除高頻分量。
      DES十六次迭代的波形

    2. 差分功率攻擊(DPA)
      對密碼系統的功耗測量使用統計分析方法,攻擊利用在使用金鑰執行操作時使用微處理器或其他硬體的不同功耗。DPA攻擊具有訊號處理的糾錯屬性,可以從包含過多噪聲的測量中提取祕密,以便使用簡單的功率分析進行分析。具體說,我們要使用已知的明文或者密文對加密演算法的一個步驟進行匹配(也可以說成只針對一個步驟的金鑰的爆破),因此即使洩露較小,也可以有效識別,有天然的對噪音的過濾,缺點是需要的能量軌跡很多(DPA的基本想法就是,通過大量的能量軌跡計算能量軌跡和資料的依賴性)。使用DPA,攻擊者可以通過分析易受攻擊的智慧卡或其他裝置執行的多個加密操作的功耗測量來獲得金鑰。
      差分功率攻擊示例

    3. 相關功率分析(CPA)
      也是一種統計型別的攻擊,並使用Pearson相關係數來關聯資料。 CPA是最新的,與其他演算法(如DPA)相比,它具有許多優點,例如需要更少的功率跟蹤。Pearson相關係數是介於-1和1之間的值。如果該值為1,則意味著比較的兩個資料集(假設功耗值和實際功耗值)具有最佳相關性。如果為0則表示根本沒有相關性。由於這裡用於找到相關係數的兩個資料集是假設的功耗資料和實際功耗資料,因此相關係數描述了它們的相關程度。因此,當使用正確的金鑰計算樣本的假設功耗值時,將獲得最大相關係數。相關功率分析包括獲取能量軌跡、生成能量模型、比較兩個能量軌跡三個過程。

[1]: Introduction to Differential Power Analysis and Related attacks, 1998, P Kocher, J Jaffe, B Jun.
[2]: Power Analysis Based Side Channel Attack, arXiv:1801.00932 [cs.CR], Hasindu Gamaarachchi, Harsha Ganegoda.
[3]: https://en.wikipedia.org/wiki/Power_analysis .
[4]: https://www.anquanke.com/post/id/87199 .