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