淺談側信道攻擊 - 什么是數字時代的隔空取“數”?
2016年以來,以解決“最后一公里”為出發(fā)點的共享單車在國內如雨后春筍般快速發(fā)展起來,而截止2016年底,全國共享單車用戶量已達到1880萬,預計2017年底將超過5000萬。共享單車為人們的日常出行帶來巨大便利的同時,也出現了一些不容忽視的問題。2017年5月13日,一段昆明小學生“聽聲音”徒手解開ofo共享單車密碼鎖的視頻流傳于網絡,視頻中該小學生通過不斷扭動密碼輪盤來嘗試解鎖,僅用17秒便成功解開了車鎖。該情景不禁讓人聯想起諜戰(zhàn)電影中“聽音解鎖”的密碼破解高手,而通過“聲音”破解密碼最經典的案例莫過于二戰(zhàn)中盟軍破解Enigma密碼機。實際上,雖然上述密碼破解方法可以看作一類特殊的“側信道攻擊”,但真正的側信道攻擊遠不止這些,其威力也更加強大。那么,什么才是真正的側信道攻擊?它對實際應用中的密碼系統(tǒng)的安全性有什么威脅?如何通過有效的防御手段來抵抗這些側信道攻擊?本文將通過對側信道攻擊的原理及所采用的技術的介紹來解答上述問題。
針對手機的側信道攻擊(電磁分析攻擊)
側信道攻擊的基本原理
通常,密碼算法(或密碼方案)在實際應用中都會實現在具體的硬件平臺上,形成密碼模塊、密碼芯片、密碼系統(tǒng)等,從而完成所需的密碼功能,用于滿足特定的信息安全需求。這些具備密碼功能的模塊(芯片或系統(tǒng))統(tǒng)稱為密碼實現,它們均實現在特定的數字電路中,而數字電路單個基本單元只有0和1兩種狀態(tài)。我們以裝不同水量的玻璃杯發(fā)聲不同為例說明如何利用數字電路的狀態(tài)特征進行密碼破解。如下左圖中ABCD四個杯子中水量不同,僅通過區(qū)分敲擊四個杯子所發(fā)出聲音的不同即可輕易分辨出ABCD中的單個杯子。因此,可以用右圖中“空杯”和“滿杯”來分別模擬數字電路中的“0”和“1”,數字電路執(zhí)行操作的過程可以看作杯子中水不斷清空和裝滿的過程。因而顯然,0à1和1à0兩種狀態(tài)變換需要花更多的“時間”和“能量”,也會產生其他潛在“影響”。換句話說,如果我們能夠有效檢測和測量這種“時間”和“能量”的變化,就能夠推斷出所執(zhí)行的操作(或數據),即推斷出密碼實現運行過程中的操作(或數據),從而能夠進行密碼破解。這類通過密碼實現運行過程中的“時間”、“能量”或其他類似信息進行密碼分析的方法稱為側信道攻擊。
數字電路狀態(tài)特征與側信息的對應關系
側信道攻擊(Side Channel Attack)又稱側信道密碼分析,由美國密碼學家P.C. Kocher于上世紀九十年代末期提出,是一種針對密碼實現(包括密碼芯片、密碼模塊、密碼系統(tǒng)等)的物理攻擊方法。這種攻擊方法的本質上是利用密碼實現在執(zhí)行密碼相關操作的過程中產生的側信息來恢復出密碼實現中所使用的密鑰。其中,這里的側信息(Side Channel Information)指除了攻擊者通過除主通信信道以外的途徑獲取到的關于密碼實現運行狀態(tài)相關的信息,典型的側信息包括密碼實現運行過程中的能量消耗、電磁輻射、運行時間等信息。
側信息泄漏模型
傳統(tǒng)密碼分析vs側信道攻擊
實際上,密碼系統(tǒng)的安全性不僅取決于密碼算法本身的數學安全性,更嚴重依賴于密碼實現的物理安全性。傳統(tǒng)密碼分析主要用于分析密碼算法的數學安全性,本質上是一類針對密碼算法本身及各密碼組件各種數學屬性的理論分析方法,包括窮舉攻擊、差分分析、線性分析、代數分析等方法。與之相反,側信道攻擊主要面向密碼實現的物理安全性,采用能量分析攻擊、電磁分析攻擊、計時攻擊等一系列方法對其實現安全性進行分析。
從實際攻擊效果上看,側信道攻擊的攻擊能力遠遠強于傳統(tǒng)密碼分析方法,因而也對密碼實現的實際安全性構成了巨大的威脅。以窮舉攻擊為例,如果10^13次/s的速度進行解密運算,破解AES-128需要5.3x10^17年(見下表),而針對無保護AES-128的智能卡實現,典型的差分能量攻擊方法能夠在30秒之內完全恢復其主密鑰。
針對不同密碼算法的窮舉攻擊復雜度
側信道攻擊典型案例
2013年12月,以色列特拉維夫大學的計算機安全專家Daniel Genkin 和Eran Tromer等公布了使用三星Note2手機從30厘米遠的地方(手機麥克風對準風扇出風口)“聽譯”出計算機中的PGP程序密鑰的方法。
2014年8月,以色列特拉維夫大學的計算機安全專家Eran Tromer等公布了一種通過用手觸碰筆記本電腦的外殼就能得到這臺計算機上存儲數據的安全密鑰的方法,該團隊測試了廣泛使用的高安全標準的解密算法,并成功恢復了4096位RSA密鑰和3072位ElGamal密鑰。
2015年8月,來自上海交通大學的Yu Yu教授展示了通過側信道攻擊方法(能量分析攻擊)攻擊并克隆3G/4G手機卡的攻擊方法。該研究團隊成功分析了八個從各種運營商和制造商獲得的3G/4G(UMTS / LTE) SIM卡。
2016年2月,來自以色列特拉維夫大學(Tel Aviv University)和以色列理工學院(Technion)的一組研究人員發(fā)現了從一墻之隔的物理隔離設備上竊取數據的新方法。該方法僅用3.3秒即可恢復出15厘米厚墻體(金屬墻筋加固)另一側的筆記本上運行的GnuPG(OpenPGP的一種實現)的密鑰。
2016年10月,來自以色列特拉維夫大學(Tel Aviv University)研究團隊采用電磁攻擊分析了蘋果iOS系統(tǒng)中多種常用密碼庫的安全性,發(fā)現了多個可被側信道攻擊方法利用的實現弱點,并成功恢復了OpenSSL、CommonCrypto庫中ECDSA實現的密鑰。
2017年6月24日,Fox-IT安全專家證實,通過利用 ARM Cortex 處理器與 AHB 總線之間的漏洞,可將其能量消耗與加密過程相互關聯,進而可以提取加密密鑰,可利用廉價設備(224美元)借助側信道攻擊方法攻擊一米(3.3 英尺)內的無線系統(tǒng),數十秒內即可竊取AES-256加密密鑰。
2017年7月28日在美國拉斯維加斯舉行的Black Hat 2017安全會議上,阿里巴巴安全部門的研究人員演示了用聲音和超聲波攻擊智能設備的“黑技術”(本質上屬于一種結合了側信道攻擊的故障攻擊方法),包括大疆無人機、iPhone 7、三星 Galaxy S7、VR顯示器等產品紛紛中招。
針對側信道攻擊的防御對策
側信道攻擊本質是利用密碼實現運行過程中產生的依賴于密鑰的側信息來實施密鑰恢復攻擊的,因此防御對策的核心就是減弱甚至消除這種側信息與密鑰之間的直接依賴性。實際上,常見防御對策可以分為掩碼對策和隱藏對策兩種。具體地,掩碼對策借助秘密共享和多方安全計算,通過引入隨機數將密鑰分解為多個分組來消除側信息與密鑰的依賴性來增強抵抗側信道攻擊的能力;隱藏對策采用平均化“0”和“1”對應側信息的差別來降低通過側信息區(qū)分對應數據的可能性,即降低數據的可區(qū)分度來抵抗側信道攻擊。此外,通過在密碼實現中插入隨機偽操作或者增加噪聲,能夠將有用信息“淹沒”在噪聲中,從而提高密碼實現的實際安全性。
總體而言,兩種防御對策試用與不同場景,如掩碼對策易于在密碼算法級進行構造,更易于實現;而隱藏對策通常只能在硬件層進行實現,需要改變硬件實現結構,因而較難實現。此外,兩種防御對策可以組合實現,以便最大限度地提高密碼實現的實際安全性。
側信道攻擊展望
以智能家居、智慧城市為代表的各類物聯網、移動互聯網應用的快速發(fā)展,使得包含密碼實現的各種硬件設備逐步從“王謝堂前燕”進入“尋常百姓家”,從無線WiFi、銀行卡、門禁、手機卡、城際一卡通、共享單車到具備更復雜功能的可穿戴設備、智能手機等移動終端,密碼技術已深入到人們日常生活的方方面面。從側信道攻擊的角度來說,這些新的設備及應用首先為其提供了極其豐富的目標設備;其次,隨著這些設備的普及和攻擊者對它們的控制能力的增強(Fully Control),針對它們的側信道攻擊很可能更加易于實施,因而對這些設備以及依賴于這些設備的應用的實際安全性構成了巨大的威脅和挑戰(zhàn);最后,側信道攻擊中的核心問題是分類和區(qū)分,機器學習、深度學習等一系列新技術必然會為其注入新的活力。值得一提的是,攻擊與防御從來都是相克相生、相輔相成,相信針對側信道攻擊更廣泛、更深入的研究和探索一定能夠為我們數字時代的信息安全提供更加有效的保障。
【本文為51CTO專欄作者“中國保密協(xié)會科學技術分會”原創(chuàng)稿件,轉載請聯系原作者】