芯片解(jie)密過程(cheng)
侵入型攻擊(ji)的(de)(de)(de)第一步是揭(jie)去芯片(pian)封(feng)裝(簡(jian)稱“開(kai)蓋(gai)”有(you)時候稱“開(kai)封(feng)”,英文為“DECAP”,decapsulation)。有(you)兩種(zhong)方(fang)法可以達到(dao)這一目(mu)的(de)(de)(de):第一種(zhong)是完全溶解(jie)掉(diao)芯片(pian)封(feng)裝,暴露金(jin)屬(shu)連線。第二種(zhong)是只移掉(diao)硅核上面的(de)(de)(de)塑料封(feng)裝。第一種(zhong)方(fang)法需(xu)(xu)要(yao)將芯片(pian)綁定到(dao)測試(shi)夾具(ju)上,借助綁定臺來(lai)操作。第二種(zhong)方(fang)法除了需(xu)(xu)要(yao)具(ju)備攻擊(ji)者一定的(de)(de)(de)知識和必要(yao)的(de)(de)(de)技能外,還需(xu)(xu)要(yao)個人(ren)的(de)(de)(de)智慧和耐心,但(dan)操作起來(lai)相對比較方(fang)便,完全家(jia)庭中操作。
芯(xin)片上面的(de)(de)塑料可(ke)以(yi)(yi)用(yong)小(xiao)刀揭開,芯(xin)片周(zhou)圍的(de)(de)環氧樹(shu)脂可(ke)以(yi)(yi)用(yong)濃硝(xiao)酸腐蝕掉(diao)。熱的(de)(de)濃硝(xiao)酸會溶解(jie)掉(diao)芯(xin)片封裝而不會影響芯(xin)片及連(lian)線。該過程一般在(zai)非常干燥的(de)(de)條件下進行(xing),因為水的(de)(de)存在(zai)可(ke)能會侵(qin)蝕已暴露的(de)(de)鋁線連(lian)接 (這就(jiu)可(ke)能造成解(jie)密失敗(bai))。
接(jie)著在超聲(sheng)池里先用丙酮清洗該芯(xin)片以除去殘余(yu)硝酸,并(bing)浸泡。
最后(hou)一(yi)步是尋(xun)找保(bao)(bao)護(hu)熔(rong)(rong)絲的(de)(de)位置并將保(bao)(bao)護(hu)熔(rong)(rong)絲暴(bao)露在(zai)紫(zi)外(wai)光下(xia)。一(yi)般用(yong)(yong)一(yi)臺放大倍數至少100倍的(de)(de)顯(xian)微鏡(jing),從編程電壓輸入腳(jiao)的(de)(de)連線跟蹤進去,來尋(xun)找保(bao)(bao)護(hu)熔(rong)(rong)絲。若沒有顯(xian)微鏡(jing),則(ze)采用(yong)(yong)將芯片(pian)的(de)(de)不同部(bu)分暴(bao)露到紫(zi)外(wai)光下(xia)并觀察結果的(de)(de)方式進行(xing)簡單的(de)(de)搜索。操作時應用(yong)(yong)不透明的(de)(de)紙片(pian)覆(fu)蓋芯片(pian)以保(bao)(bao)護(hu)程序存(cun)(cun)儲器不被紫(zi)外(wai)光擦除(chu)。將保(bao)(bao)護(hu)熔(rong)(rong)絲暴(bao)露在(zai)紫(zi)外(wai)光下(xia)5~10分鐘就能破壞掉保(bao)(bao)護(hu)位的(de)(de)保(bao)(bao)護(hu)作用(yong)(yong),之后(hou),使用(yong)(yong)簡單的(de)(de)編程器就可(ke)直(zhi)接讀出(chu)程序存(cun)(cun)儲器的(de)(de)內容。
對于使用(yong)了防護層來(lai)保護EEPROM單(dan)(dan)元的(de)(de)單(dan)(dan)片(pian)機(ji)(ji)來(lai)說,使用(yong)紫外光復位保護電路是(shi)不可行的(de)(de)。對于這種(zhong)類(lei)型的(de)(de)單(dan)(dan)片(pian)機(ji)(ji),一般使用(yong)微(wei)探(tan)針技(ji)術來(lai)讀取存(cun)儲(chu)器(qi)(qi)內(nei)容(rong)。在芯片(pian)封(feng)裝(zhuang)打開后,將芯片(pian)置于顯微(wei)鏡(jing)下就(jiu)能(neng)夠很(hen)容(rong)易(yi)的(de)(de)找(zhao)到(dao)從存(cun)儲(chu)器(qi)(qi)連(lian)到(dao)電路其它部分的(de)(de)數(shu)據(ju)總線。由于某種(zhong)原因(yin),芯片(pian)鎖(suo)定位在編(bian)程模式(shi)下并(bing)不鎖(suo)定對存(cun)儲(chu)器(qi)(qi)的(de)(de)訪(fang)問。利用(yong)這一缺陷將探(tan)針放在數(shu)據(ju)線的(de)(de)上(shang)面(mian)就(jiu)能(neng)讀到(dao)所有想要的(de)(de)數(shu)據(ju)。在編(bian)程模式(shi)下,重啟讀過程并(bing)連(lian)接探(tan)針到(dao)另外的(de)(de)數(shu)據(ju)線上(shang)就(jiu)可以(yi)讀出(chu)程序和(he)數(shu)據(ju)存(cun)儲(chu)器(qi)(qi)中的(de)(de)所有信息。
還有(you)(you)一種可能的攻擊手段是(shi)借(jie)助顯微鏡和激光切割(ge)機等設備來(lai)尋找保(bao)護熔(rong)絲(si),從而尋查和這部(bu)分電路相(xiang)聯系的所有(you)(you)信號(hao)線(xian)。由于設計有(you)(you)缺陷(xian),因此,只要切斷從保(bao)護熔(rong)絲(si)到其它電路的某(mou)一根(gen)信號(hao)線(xian)(或切割(ge)掉整個加密(mi)電路)或連接1~3根(gen)金線(xian)(通常稱FIB:focused ion beam),就能禁(jin)止整個保(bao)護功能,這樣,使用簡(jian)單的編程器就能直接讀(du)出程序存儲器的內容(rong)。
雖然大多數普通單片(pian)(pian)機(ji)都具(ju)有熔(rong)絲燒斷保護(hu)單片(pian)(pian)機(ji)內代碼的(de)功能,但(dan)由于(yu)(yu)通用(yong)低檔(dang)的(de)單片(pian)(pian)機(ji)并(bing)非(fei)定位于(yu)(yu)制(zhi)作(zuo)安(an)全類產品,因此,它們往往沒有提供有針對性的(de)防范(fan)措(cuo)施且安(an)全級別較低。加上單片(pian)(pian)機(ji)應用(yong)場合廣(guang)泛,銷(xiao)售量大,廠商間(jian)委托(tuo)加工與技(ji)術(shu)轉讓頻繁,大量技(ji)術(shu)資料外(wai)瀉,使得(de)利用(yong)該類芯片(pian)(pian)的(de)設(she)計漏洞(dong)和廠商的(de)測試(shi)接口(kou),并(bing)通過(guo)修改熔(rong)絲保護(hu)位等(deng)侵入型攻(gong)擊或非(fei)侵入型攻(gong)擊手段(duan)來讀取單片(pian)(pian)機(ji)的(de)內部程序(xu)變(bian)得(de)比較容(rong)易。