發布日期:2022-05-20 點擊率:55
本文以采用磁耦合和CMOS制程的RFID產品為例,簡要介紹了此類晶片的構成,在列舉各種破壞性/非破壞性攻擊方法的基礎上,從軟/硬體角度分析現有的各種安全措施如何在設計階段應對這些攻擊,或使攻擊變得難以實施,以及如何避免不良的設計。
以前,人們普遍認為由于采用了各種復雜的認證演算法、密鑰等來保護數據免受未獲授權使用,IC卡具有磁卡無法比擬的安全性能。但在90年代中期,大部份的IC卡處理器都被成功地實施了逆向工程,因此這個看法有了很大的改變。除了采用更新的設計技術以外,更重要的是在IC卡晶片設計與實現過程中考慮抗攻擊措施,以保護重要的數據不被非法使用。
非接觸IC卡(RFID)的出現是智慧卡發展中的重要里程碑:它透過磁耦合或微波的方式來實現能量與訊號的非接觸傳輸,因而有效地解決了接觸式智慧卡使用機械電氣觸點產生的靜電擊穿、機械磨損、易受污染和潮濕環境影響等問題,被認為是身份識別、物流等方面的重要替代技術。沒有了裸露的電氣接觸節點,RFID和接觸式IC卡產品相較,在安全性方面也有一定的提升,但是它沒有改變智慧卡使用認證演算法和密鑰等安全方法的模式,因此并沒有從本質上解決安全問題。需要借助接觸式智慧卡安全設計上的成熟經驗,才能避免重大技術失誤。
從結構上講,RFID是一個包含射頻類比前端(RF AFE)和基頻訊號處理兩大部份的單片積體電路(見圖1)。基頻系統包括控制邏輯(甚至微處理器)和必要的記憶體,AFE部份是RFID的能量與訊號介面,提供片上基頻系統工作所需的電源和時脈等輔助訊號,完成數據的接收與發送功能。由于RF AFE屏蔽了智慧卡片上的電源、時脈、上電復位(POR)等訊號與外界的聯系,在一定程度上減少了攻擊實施的點,與接觸式智慧卡相較在安全性方面有一定的提升。
智慧卡晶片攻擊技術及應對措施
根據是否破壞智慧卡晶片的實體封裝可以將智慧卡的攻擊技術分為兩大類:破壞性攻擊和非破壞性攻擊。
破壞性攻擊和晶片逆向工程在最初的步驟上是一致的:使用發煙硝酸去除包裹晶片的環氧樹脂;用丙酮/去離子水/異丙醇完成清洗;氫氟酸超聲浴進一步去除晶片的各層金屬。在去除晶片封裝之后,透過金絲鍵合恢復晶片功能焊盤與外界的電氣連接,最后可以使用手動微探針獲取感興趣的訊號。對于深次微米以下的CMOS產品,通常具有3層以上的金屬連線,為了解晶片的內部結構,可能要逐層去除以獲得重構晶片版圖設計所需的資訊。在了解內部訊號走線的基礎上,聚焦離子束(FIB)修補技術甚至適用于將感興趣的訊號連到晶片的表面供進一步觀察。
非破壞性攻擊主要針對具有微處理器的產品,其方法主要包括軟體攻擊、竊聽技術和故障產生技術。軟體攻擊使用微處理器的通用通訊介面,尋求安全協議、加密演算法以及他們實體實現的弱點;竊聽技術采用高時域精密度的方法,分析電源介面在微處理器正常工作過程中產生的各種電磁輻射的類比特征;故障產生技術藉由產生異常的應用環境條件,使處理器產生故障,因而獲得額外的存取途徑。
智慧卡的攻擊一般從破壞性的反向工程開始,其結論可以用于開發廉價和快速的非破壞性攻擊方法,這是最常見的最有效的智慧卡攻擊模式之一。
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等非揮發性記憶體存放程式。
b.記憶體讀出技術
對于存放密鑰、用戶數據等重要內容的非揮發性記憶體,它們不能透過簡單的光學照片獲得其中的資訊。在安全認證過程中,至少存取這些數據區一次,因此,可以使用微探針監聽匯流排上的訊號獲取重要數據。對于良好的設計,簡單重覆認證還不足以存取記憶體所有的關鍵位置。例如,在同一個卡中使用不同的加密密鑰和加密演算法,然后在它們之間每隔幾周就切換一次,晶片的演算法和密鑰的存放區域在沒有被廣播呼叫啟動以前不能被處理器控制等等,因而使早期的被動監測匯流排難以發現這些秘密。這些接觸智慧卡IC的經驗可以應用于RFID設計中。
一些文獻提到,為了保證記憶體數據的完整性,需要在每次晶片復位之后運算并檢驗一下記憶體的校驗結果,其實這種做法給攻擊提供了快速存取全部記憶體的方法。
在使用帶微處理器的RFID中,還需要考慮軟體設計人員為提高程式碼效率濫用CPU元件(如地址計數器)的行為所導致的安全問題。程式計數器在每個指令周期都自動增量,如果被用于記憶體讀寫的地址產生器,攻擊中只需防止處理器執行JUMP、CALL和RETURN等指令擾亂正常的讀順序即可。即稍微用雷射切斷一些電路連接,改動指令譯碼器、程式計數器電路即可實現完全存取記憶體的目的。
頂層探測器網格是有效防止微探針獲取記憶體數據的重要方法之一,充分利用深次微米CMOS技術提供的多層金屬,在重要的訊號線頂層構成探測器網格能夠連續監測短路和斷路。當有電時,它能防止雷射切割或選擇性的蝕刻去獲取匯流排的內容。根據探測器輸出,晶片可立即觸發電路將非揮發性記憶體中的內容全部清零。這些網格對于其下的各層金屬連線重構也有影響,因為蝕刻不是均勻的,上層金屬的模式在下層可見,會給版圖的自動重構帶來很多麻煩。手動探針的目標尺寸一般在1微米左右,尖端小于0.1微米的探針臺價格在幾十萬美元之上,且極難獲得。一個精心設計網格將使手動微探針攻擊難以實施,一般的FIB修補技術也難以逾越。
2.非破壞性攻擊及其防范
非破壞性攻擊主要針對具有微處理器的產品而言。微處理器本質上是成百上千個觸發器、暫存器、鎖存器和SRAM單元的集合,這些元件定義了處理器的目前狀態,結合組合邏輯則可知道下一時脈的狀態。許多類似系統的類比效應適用于非侵入式的攻擊,其中:
a.每個電晶體和連線都具有電阻和電容器特性,其溫度、電壓等特性決定了訊號的傳輸延遲。由于生產制程參數的分散性,這些數值在單個晶片,或同種產品的不同晶片上差異很大。
b.觸發器在很短的時間間隔內采樣并和閾值電壓比較(與電源相關)。采樣的時間間隔相對于時脈邊沿是固定的,但不同的觸發器之間可能差異很大。
c.觸發器僅在組合邏輯穩定后的前一狀態上設立新的穩態。
d.在CMOS閘的每次翻轉變化過程中,P和N管都會開啟一個短暫的時間,因而在電源上造成一次短路。沒有翻轉的時刻,則電源電流很小。
e.當輸出改變時,電源電流會根據負載電容器充放電變化。
和接觸式IC卡不同的是,攻擊RFID的駭客不能完全控制其電源和時脈線,理論上RFID針對非破壞性攻擊的安全性能有所改善,但是實際情形可能并非如此,仍會面臨一些危險。常見的攻擊方法有電流分析攻擊和故障攻擊。
1.電流分析攻擊
根據電流分析攻擊實施的特點,可分為簡單電源攻擊(SPA)和差分電源攻擊。
原則上,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計畫,考慮其晶片設計安全問題具有重要的現實意義。
作者:盧小冬
計劃主管
Email: luxd@dmt.com.cn
大唐微電子公司智慧卡IC設計部
周東平
高級工程師
Email: zhou_dp@fri.com.cn
公安部第一研究所
1
下一篇: PLC、DCS、FCS三大控
上一篇: RFID技術在食品工業中