自從上世紀(jì)七十年代 MCU 誕生以來,,芯片的破解技術(shù)與防止芯片被破解方案就在不斷在上演著“道高一尺,,魔高一丈”,一山更比一山高的追逐,。本文將單片機(jī)在安全保護(hù)方面的發(fā)展歷程與大家分享,。并在文章的最后,總結(jié)了現(xiàn)階段安全級別最高的智能卡芯片的優(yōu)點及其缺點,。
一,、單板機(jī)時代
上世紀(jì) 70 年代初期,嵌入式系統(tǒng)是由分離部件如:CPU,、ROM,、RAM、I/O 緩存,、串口和其他通信與控制接口組成的控制板,。這一時期除法律外,幾乎沒有保護(hù)措施來防止侵入者復(fù)制單板機(jī)上 ROM 區(qū)的數(shù)據(jù),。
二,、單片機(jī)時代
隨著大規(guī)模集成電路技術(shù)的發(fā)展,中央處理單元(CPU),、數(shù)據(jù)存儲器(RAM),、程序存儲器(ROM)及其他 I/O 通信口都集成在一塊單片機(jī)芯片上了,微控制器 MCU 取代了單板機(jī),。如圖:
這一時期,,內(nèi)部存儲器 EEPROM 和 MCU 是分開封在同一封裝內(nèi)部。侵入者可用微探針來獲取數(shù)據(jù),。
三,、安全熔斷絲(Security Fuse)
隨著入侵者的增加,MCU 為了自身的安全,,后來增加了安全熔斷絲(Security Fuse)來禁止訪問數(shù)據(jù),。如圖:
優(yōu)點:很容易做到,不需要完全重新設(shè)計 MCU 構(gòu)架,,僅用熔斷絲來控制數(shù)據(jù)的訪問,。
缺點:熔斷絲容易被定位、攻擊,。例如:熔絲的狀態(tài)可以通過直接把位輸出連到電源或地線上來進(jìn)行修改,。有些僅用激光或聚焦離子束來切斷熔絲的感應(yīng)電路就可以了。用非侵入式攻擊也一樣成功,,因為一個分離的熔絲版圖異于正常存儲陣列,,可以用組合外部信號來使位處與不能被正確讀出的狀態(tài),那樣就可以訪問存在內(nèi)部芯片上信息了,。用半侵入式攻擊可以使破解者快速取得成功,,但需要打開芯片的封裝來接近晶粒。一個眾所周知方法就是用紫外線擦掉安全熔斷絲,。
四,、安全熔絲變成存儲器陣列的一部分
再后來 MCU 制造商將安全熔絲做成存儲器陣列的一部分,,如圖:
一般的熔絲與主存儲器離得很近,或干脆共享些控制線,,與主存儲器用相同的工藝來制造,,熔斷絲很難被定位。非入侵試攻擊仍然可以用,,可以用組合外部信號來使熔斷位處于不被正確讀出的狀態(tài),。同樣,半侵入式攻擊也可用,。當(dāng)然破解者需要更多的時間去尋找安全熔絲或控制電路負(fù)責(zé)安全監(jiān)視的部分,,但這些可以自動完成。進(jìn)行侵入式攻擊將是很困難需要手工操作,,那將花費更多的成本來破解。
五,、用主存儲器的一部分來控制外部對數(shù)據(jù)訪問
利用上電時鎖定特定區(qū)域地址的信息,,將它作為安全熔絲?;蛴妹艽a來控制對存儲器訪問,。例如德州儀器的 MSP430F112 只有輸入正確的 32 字節(jié)密碼后才能進(jìn)行回讀操作。如果沒輸入,,只有擦字節(jié)密碼后才能進(jìn)行回讀操作,。盡管這個保護(hù)方法看上去比先前的更有效,但它有一些缺點可以用低成本的非侵入式攻擊,,如時序分析和功耗來破解,。如果安全熔絲狀態(tài)是上電或復(fù)位后存儲器的一部分,這就給破解者用電源噪聲來破解的機(jī)會,,強(qiáng)制路進(jìn)入存儲中錯誤狀態(tài),。
六、使用頂層金屬網(wǎng)絡(luò)
使用頂層金屬網(wǎng)絡(luò)設(shè)計,,提升入侵難度,。所有的網(wǎng)格都用來監(jiān)控短路和開路,一旦觸發(fā),,會導(dǎo)致存儲器復(fù)位或清零,。如圖:
普通的 MCU 不會使用這種保護(hù)方法,因為設(shè)計較難,,且在異常運行條件下也會觸發(fā),,如:高強(qiáng)度電磁場噪聲,低溫或高溫,,異常的時鐘信號或供電不良,。故有些普通的 MCU 使用更廉價的偽頂層金屬網(wǎng)格,,會被非常高效的光學(xué)分析進(jìn)行微探測而被攻擊。另外,,這些網(wǎng)格不能防范非侵入式攻擊,。同樣不能有效防范半侵入式攻擊,因為導(dǎo)線之間有電容,,并且光線可以通過導(dǎo)線抵達(dá)電路的有效區(qū)域,。在智能卡中,電源和地之間也鋪了一些這樣的網(wǎng)格線,。部分可編程的智能卡走的更遠(yuǎn),,干脆砍掉了標(biāo)準(zhǔn)的編程接口,甚至干掉了讀取EEPROM 接口,,取而代之的是啟動模塊,,可以在代碼裝入后擦掉或者屏蔽自己,之后只能響應(yīng)使用者的嵌入軟件所支持的功能,。有效的防范了非侵入式攻擊,。
七、智能卡芯片安全設(shè)計
近些年,,一些智能卡使用存儲器總線加密(Bus Encryption)技術(shù)來防止探測攻擊,。如圖:
數(shù)據(jù)以密文方式存儲在存儲器中。即使入侵者獲得數(shù)據(jù)總線的數(shù)據(jù),,也不可能知道密鑰或者別的敏感信息(如數(shù)據(jù)還原方法),。這種保護(hù)措施有效的防范了侵入式和半侵入式攻擊。有些智能卡甚至能夠做到每張卡片總線加密密鑰不同,,這樣即使入侵者完全破解了,,也無法生產(chǎn)出相同功能的芯片來,因為每個智能卡芯片有唯一的 ID 號,,無法買到相同 ID 號的智能卡,。另外值得一提的是,有些智能卡將標(biāo)準(zhǔn)的模塊結(jié)構(gòu)如解碼器,,寄存器文件,,ALU 和 I/O 電路用類似 ASIC 邏輯來設(shè)計。這些設(shè)計成為混合邏輯(Gle Logic)設(shè)計,?;旌线壿嬍沟脤嶋H上不可能通過手工尋找信號或節(jié)點來獲得卡的信息進(jìn)行物理攻擊。大大提高了 CPU 內(nèi)核的性能和安全性,?;旌线壿嬙O(shè)計幾乎不可能知道總線的物理位置,有效的防范了反向工程和微探測攻擊。
智能卡芯片加密方案優(yōu)缺點
對于開發(fā)者來講,,選擇更為安全設(shè)計的微控制器或可以得到更好的保護(hù),。與大多數(shù)微控制器相比,即使是十年前設(shè)計的智能卡也能提供更好的保護(hù)?,F(xiàn)代的智能卡提供了更多的防攻擊保護(hù),,內(nèi)部電壓傳感器保護(hù)免受電源噪聲攻擊(Power Glitch attacks)、過壓和欠壓保護(hù),。時鐘頻率傳感器防止受到靜態(tài)分析(Static analysis)的降低時鐘頻率攻擊,。同時也可以防止時鐘噪聲(Clock glitch attacks)進(jìn)行提高時鐘頻率的攻擊。頂層金屬網(wǎng)格和內(nèi)部總線硬件加密使可以防止微探測攻擊,。但是與微控制器相比,,智能卡芯片也有劣勢,如:芯片價格昂貴,,小批量的很難買到貨,。開發(fā)工具昂貴,需要和制造商簽署保密協(xié)議,,即使是說明書也要這樣,。很多制造商僅向特定客戶銷售大批量的智能卡。另一個不足是 I/O 的功能受限,,普通智能卡芯片通常只有ISO7816 接口,極少有單獨的 I/O 口,。這使得多數(shù)應(yīng)用中不能取代微控制器,,而只能用于安全要求非常高的行業(yè),如:付費機(jī)頂盒,,銀行卡,,SIM 卡,二代身份證,,高端加密芯片等領(lǐng)域,。智能卡芯片在加密芯片領(lǐng)域的應(yīng)用,將是個不錯的方向,。因為智能卡芯片安全等級高,,IO 資源少。而普通 MCU 的硬件資源非常豐富,,安全程度卻不高,,可以將 MCU 中一些關(guān)鍵算法及運行參數(shù),以特殊形式存放在智能卡芯片中,,從而實現(xiàn)高安全強(qiáng)度的強(qiáng)大功能,。
后記
堅持不懈的嘗試突破保護(hù)機(jī)制的破解團(tuán)體和不斷引入新的安全防范方案的制造商之間的斗爭是沒有盡頭的。“道高一尺,,魔高一丈”,,又或是“邪不壓正”,將不停的在兩派之間上演,!