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