RFID芯片的攻擊技術分析及安全設計策略
文章出處:http://5052h112.com 作者:盧小冬 周東平 人氣: 發表時間:2011年09月27日
以前,人們普遍認為由于采用了各種復雜的認證算法、密鑰等來保護數據免受未獲授權使用,IC卡具有磁卡無法比擬的安全性能。但在上個世紀90年代中期,大部分的IC卡處理器都被成功地實施了反向工程,因此這個看法有了很大的改變。除了采用更新的設計技術以外,更重要的是在IC卡芯片設計與實現過程中考慮抗攻擊措施,以保護重要的數據不被非法使用。
圖1:RFID芯片結構及工作模式
非接觸IC卡(RFID)的出現是智能卡發展中的重要里程碑:它通過磁耦合或微波的方式來實現能量與信號的非接觸傳輸,從而有效地解決了接觸式智能卡使用機械電氣觸點產生的靜電擊穿、機械磨損、易受污染和潮濕環境影響等問題,被認為是身份識別、公交票據、物流等方面的重要替代技術。沒有了裸露的電氣接觸節點,RFID和接觸式IC卡產品相比,在安全性方面也有一定的提升,但是它沒有改變智能卡使用認證算法和密鑰等安全手段的模式,因此并沒有從本質上解決安全問題。需要借鑒接觸式智能卡安全設計上的成熟經驗,才能避免重大技術失誤。
從結構上講,RFID是一個包含射頻模擬前端(RF AFE)和基帶信號處理兩大部分的單片集成電路(見圖1)。基帶系統包括控制邏輯(甚至微處理器)和必要的存儲器,AFE部分是RFID的能量與信號接口,提供片上基帶系統工作所需的電源和時鐘等輔助信號,完成數據的接收與發送功能。由于RF AFE屏蔽了智能卡片上的電源、時鐘、上電復位(POR)等信號與外界的聯系,在一定程度上減少了攻擊實施的點,與接觸式智能卡相比在安全性方面有一定的提升。
智能卡芯片攻擊技術及應對措施
根據是否破壞智能卡芯片的物理封裝可以將智能卡的攻擊技術分為兩大類:破壞性攻擊和非破壞性攻擊。
破壞性攻擊和芯片反向工程在最初的步驟上是一致的:使用發煙硝酸去除包裹裸片的環氧樹脂;用丙酮/去離子水/異丙醇完成清洗;氫氟酸超聲浴進一步去除芯片的各層金屬。在去除芯片封裝之后,通過金絲鍵合恢復芯片功能焊盤與外界的電氣連接,最后可以使用手動微探針獲取感興趣的信號。對于深亞微米以下的CMOS產品,通常具有3層以上的金屬連線,為了解芯片的內部結構,可能要逐層去除以獲得重構芯片版圖設計所需的信息。在了解內部信號走線的基礎上,聚焦離子束(FIB)修補技術甚至可用于將感興趣的信號連到芯片的表面供進一步觀察。
非破壞性攻擊主要針對具有微處理器的產品,其手段主要包括軟件攻擊、竊聽技術和故障產生技術。軟件攻擊使用微處理器的通用通訊接口,尋求安全協議、加密算法以及他們物理實現的弱點;竊聽技術采用高時域精度的方法,分析電源接口在微處理器正常工作過程中產生的各種電磁輻射的模擬特征;故障產生技術通過產生異常的應用環境條件,使處理器產生故障,從而獲得額外的訪問途徑。
圖2:NAND門驅動一個反向器的光學照片(包含金屬層和去掉金屬層)。
智能卡的攻擊一般從破壞性的反向工程開始,其結論可以用于開發廉價和快速的非破壞性攻擊手段,這是最常見的最有效的智能卡攻擊模式之一。
1. 破壞性攻擊及其防范
a. 版圖重構
破壞性攻擊的一個重要步驟是重構目標芯片的版圖。通過研究連接模式和跟蹤金屬連線穿越可見模塊(如ROM、RAM、EEPROM、ALU、指令譯碼器等)的邊界,可以迅速識別芯片上的一些基本結構,如數據線和地址線。
芯片表面的照片只能完整顯示頂層金屬的連線,而它是不透明的。借助于高性能的成像系統,可以從頂部的高低不平中識別出較低層的信息,但是對于提供氧化層平坦化的CMOS工藝,則需要逐層去除金屬才能進一步了解其下的各種結構。因此,提供氧化層平坦化的CMOS工藝更適合于包括RFID在內的智能卡加工。
圖2是一個NAND門驅動一個反向器的光學版圖照片,類似于該圖的不同層照片對于有經驗的人無異于電路圖。
對于RFID設計來說,射頻模擬前端需要采用全定制方式實現,但是常采用HDL語言描述來實現包括認證算法在內的復雜控制邏輯,顯然這種采用標準單元庫綜合的實現方法會加速設計過程,但是也給反向工程為基礎的破壞性攻擊提供了極大的便利,這種以標準單元庫為基礎的設計可以使用計算機自動實現版圖重構。因此,采用全定制的方法實現RFID的芯片版圖會在一定程度上加大版圖重構的難度。
版圖重構的技術也可用于獲得只讀型ROM的內容。ROM的位模式存儲在擴散層,用氫氟酸(HF)去除芯片各覆蓋層后,根據擴散層的邊緣就很容易辨認出ROM的內容(圖3)。
基于微處理器的RFID設計中,ROM中可能不包含任何加密的密鑰信息,但是它的確包含足夠的I/O、存取控制、加密程序等信息,這些在非破壞性攻擊中尤為重要。因此,對于使用微處理器的RFID設計,推薦優先使用FLASH或EEPROM等非易失性存儲器存放程序。
圖3:去除金屬和POLY連線的NOR型ROM照片。
b. 存儲器讀出技術
對于存放密鑰、用戶數據等重要內容的非易失性存儲器,它們不能通過簡單的光學照片獲得其中的信息。在安全認證過程中,至少訪問這些數據區一次,因此,可以使用微探針監聽總線上的信號獲取重要數據。對于良好的設計,簡單重復認證還不足以訪問存儲器所有的關鍵位置。例如,在同一個卡中使用不同的加密密鑰和加密算法,然后在它們之間每隔幾周就切換一次,芯片的算法和密鑰的存放區域在沒有被廣播呼叫激活以前不能被處理器控制等等,從而使早期的被動監測總線難以發現這些秘密。這些接觸智能卡IC的經驗可以應用于RFID設計中。
一些文獻提到,為了保證存儲器數據的完整性,需要在每次芯片復位之后計算并檢驗一下存儲器的校驗結果,其實這種做法給攻擊提供了快速訪問全部存儲器的手段。
在使用帶微處理器的RFID中,還需要考慮軟件設計人員為提高代碼效率濫用CPU部件(如地址計數器)的行為所導致的安全問題。程序計數器在每個指令周期都自動增量,如果被用于存儲器讀寫的地址發生器,攻擊中只需防止處理器執行JUMP、CALL和RETURN等指令擾亂正常的讀順序即可。即稍微用激光切斷一些電路連接,改動指令譯碼器、程序計數器電路即可實現完全訪問存儲器的目的。
頂層探測器網格是有效防止微探針獲取存儲器數據的重要手段之一,充分利用深亞微米CMOS技術提供的多層金屬,在重要的信號線頂層構成探測器網格能夠連續監測短路和斷路。當有電時,它能防止激光切割或選擇性的蝕刻去獲取總線的內容。根據探測器輸出,芯片可立即觸發電路將非易失性存儲器中的內容全部清零。這些網格對于其下的各層金屬連線重構也有影響,因為蝕刻不是均勻的,上層金屬的模式在下層可見,會給版圖的自動重構帶來很多麻煩。手動探針的目標尺寸一般在1微米左右,尖端小于0.1微米的探針臺價格在幾十萬美元之上,且極難獲得。一個精心設計的網格將使手動微探針攻擊難以實施,一般的FIB修補技術也難以逾越。
圖4:RFID的接觸法測試原理
非破壞性攻擊及其防范
非破壞性攻擊主要針對具有微處理器的產品而言。微處理器本質上是成百上千個觸發器、寄存器、鎖存器和SRAM單元的集合,這些器件定義了處理器的當前狀態,結合組合邏輯則可知道下一時鐘的狀態。許多類似系統的模擬效應可用于非侵入式的攻擊,其中:
1. 每個晶體管和連線都具有電阻和電容特性,其溫度、電壓等特性決定了信號的傳輸延時。由于生產工藝參數的分散性,這些數值在單個芯片,或同種產品的不同芯片上差異很大。
2. 觸發器在很短的時間間隔內采樣并和閾值電壓比較(與電源相關)。采樣的時間間隔相對于時鐘邊沿是固定的,但不同的觸發器之間可能差異很大。
3. 觸發器僅在組合邏輯穩定后的前一狀態上建立新的穩態。
4. 在CMOS門的每次翻轉變化過程中,P和N管都會開啟一個短暫的時間,從而在電源上造成一次短路。沒有翻轉的時刻,則電源電流很小。
5. 當輸出改變時,電源電流會根據負載電容充放電變化。
和接觸式IC卡不同的是,攻擊RFID的黑客不能完全控制其電源和時鐘線,理論上RFID針對非破壞性攻擊的安全性能有所改善,但是實際情形可能并非如此,仍會面臨一些危險。常見的攻擊手段有電流分析攻擊和故障攻擊。
1. 電流分析攻擊
根據電流分析攻擊實施的特點,可分為簡單電源攻擊(SPA)和差分電源攻擊。
圖5: 兩種不同的測試態控制方式
原則上,RFID的電源是集成在AFE的內部,似乎遠離了電流分析的危險,然而實際上并非如此。圖4顯示了RFID接觸法測試的原理圖:通過在RFID天線和串聯的分壓電阻兩端直接加載符合規格的交流信號,RFID負載反饋信號可以百倍于無線模式下的信號強度直接疊加在加載的交流信號上。由于芯片的功耗變化與負載調制在本質上是相同的,因此,如果AFE的電源設計不恰當,RFID微處理執行不同內部處理的狀態可能在串聯電阻的兩端交流信號上反映出來。
對于RFID而言,功耗是芯片設計過程中關心的重要問題,串聯方案的效率更高,更適合集成電路設計。但是就安全而言,并聯方案是更理想的選擇:通過并聯泄放電路將電源幅度和紋波的變化控制在盡可能小的范圍內,使電源電流消耗波動抑制在整流電路之后。這樣天線兩端的交流信號不能反應任何內部基帶系統(主要是微處理器)狀態的差異。
2. 故障攻擊
通過故障攻擊可以導致一個或多個觸發器位于病態,從而破壞傳輸到寄存器和存儲器中的數據。在所知的CPU智能卡非破壞性攻擊中,故障攻擊是實際應用中最有效的技術之一。當前有三種技術可以可靠地導致觸發器病態且影響很少的機器周期:瞬態時鐘、瞬態電源以及瞬態外部電場。
通過簡單地增加或降低時鐘頻率一個或多個半周期可以實施時鐘故障,這樣部分觸發器會在合法的新狀態到來之前采樣它們的輸入。時鐘故障有效的攻擊通常和電源故障結合在一起,在接觸式智能卡中通過組合時鐘和電源波動,已經可以很可靠地增加程序計數器內容而不影響處理器的其它狀態。這樣,智能卡內的任意指令序列都可以被黑客執行,而程序員在軟件編寫中并沒有什么很好的應對措施。
大多數RFID的時鐘、電源都是使用天線的交流信號整形得到的,因此通過改變交流信號諧波的幅度、對稱性、頻率等參數可以實施時鐘-電源故障攻擊。借助于RFID接觸測試設備中的數字直接合成交流信號技術,很容易產生時鐘-電源故障攻擊所需的波形。
RFID產品為了有效抵御時鐘故障攻擊,除了采用時鐘探測器以外,更重要的是嚴格限制RFID設計的工作頻率范圍、載頻的諧波品質因素、對稱性等指標。因此,從安全角度來說,并非RFID對機具適應能力越強越好。
潛在的故障技術仍需進一步探索,如通過將金屬探針置于處理器幾百個微米高度的時候,在幾個毫秒內施加幾百伏的電壓,得到的電場強度足夠改變附近的晶體管閾值電壓。這些技術的應用價值和應對措施還有待進一步的研究。
RFID的測試態及保護
對于一般意義的集成電路產業鏈條來說,需要將不良的芯片在晶圓測試階段剔除以減少后端加工工序中不必要的浪費,RFID芯片也不例外。根據RFID芯片的特點,晶圓測試內容包括:RF性能測試、邏輯功能測試和存儲器測試。和普通芯片一樣,如果借助于芯片應用功能來進行片上邏輯和存儲器測試,則測試成本將大幅增加。通常采取等效測試原理設計額外的測試態來快速完成。由于測試態提供了快速、全面訪問存儲器的機制,因此有必要在晶圓測試完成后,將測試態永久關閉。
圖5a是在接觸式智能卡芯片的發展過程中曾大量采用的測試態控制方式:使用額外的I/O管腳和芯片內部電路相連,該連線通過劃片槽,這樣芯片劃斷后就不能通過簡單控制該管腳進入測試態。由于FIB修補技術的出現,這個手段已經過時。圖5b是最有潛力的替代方案:在劃片槽和鄰近的芯片中設計部分控制電路,從而得到不可逆的測試態控制手段。
本文總結
本文對RFID芯片設計安全從破壞性、非破壞性攻擊以及測試態控制三個方面作了簡單探討,通過與接觸式智能卡芯片安全設計比較,給出一些應對的設計措施。然而仍然有很多安全設計措施不能一一列舉,如用于對付功率分析的電流調節器和噪聲負載。我國第二代居民身份證即將實施,這將是世界上最大的RFID項目,考慮其芯片設計安全問題具有重要的現實意義。