侵入型攻擊的第一步是揭去芯片封裝(簡稱“開(kāi)蓋”有(yǒu)時(shí)候稱“開(kāi)封”,英文為(wèi)“DECAP”,decapsulation)。有(yǒu)兩種方法可(kě)以達到這一目的:第一種是完全溶解掉芯片封裝,暴露金屬連線。第二種是隻移掉矽核上(shàng)面的塑料封裝。第一種方法需要将芯片綁定到測試夾具上(shàng),借助綁定台來(lái)操作(zuò)。第二種方法除了需要具備攻擊者一定的知識和(hé)必要的技(jì)能外,還(hái)需要個(gè)人(rén)的智慧和(hé)耐心,但(dàn)操作(zuò)起來(lái)相對比較方便,完全家(jiā)庭中操作(zuò)。
芯片上(shàng)面的塑料可(kě)以用小(xiǎo)刀揭開(kāi),芯片周圍的環氧樹(shù)脂可(kě)以用濃硝酸腐蝕掉。熱的濃硝酸會(huì)溶解掉芯片封裝而不會(huì)影(yǐng)響芯片及連線。該過程一般在非常幹燥的條件下進行(xíng),因為(wèi)水(shuǐ)的存在可(kě)能會(huì)侵蝕已暴露的鋁線連接 (這就可(kě)能造成解密失敗)。
接着在超聲池裏先用丙酮清洗該芯片以除去殘餘硝酸,并浸泡。
最後一步是尋找保護熔絲的位置并将保護熔絲暴露在紫外光下。一般用一台放大(dà)倍數(shù)至少(shǎo)100倍的顯微鏡,從編程電(diàn)壓輸入腳的連線跟蹤進去,來(lái)尋找保護熔絲。若沒有(yǒu)顯微鏡,則采用将芯片的不同部分暴露到紫外光下并觀察結果的方式進行(xíng)簡單的搜索。操作(zuò)時(shí)應用不透明(míng)的紙片覆蓋芯片以保護程序存儲器(qì)不被紫外光擦除。将保護熔絲暴露在紫外光下5~10分鍾就能破壞掉保護位的保護作(zuò)用,之後,使用簡單的編程器(qì)就可(kě)直接讀出程序存儲器(qì)的內(nèi)容。
對于使用了防護層來(lái)保護EEPROM單元的單片機來(lái)說,使用紫外光複位保護電(diàn)路是不可(kě)行(xíng)的。對于這種類型的單片機,一般使用微探針技(jì)術(shù)來(lái)讀取存儲器(qì)內(nèi)容。在芯片封裝打開(kāi)後,将芯片置于顯微鏡下就能夠很(hěn)容易的找到從存儲器(qì)連到電(diàn)路其它部分的數(shù)據總線。由于某種原因,芯片鎖定位在編程模式下并不鎖定對存儲器(qì)的訪問。利用這一缺陷将探針放在數(shù)據線的上(shàng)面就能讀到所有(yǒu)想要的數(shù)據。在編程模式下,重啓讀過程并連接探針到另外的數(shù)據線上(shàng)就可(kě)以讀出程序和(hé)數(shù)據存儲器(qì)中的所有(yǒu)信息。
還(hái)有(yǒu)一種可(kě)能的攻擊手段是借助顯微鏡和(hé)激光切割機等設備來(lái)尋找保護熔絲,從而尋查和(hé)這部分電(diàn)路相聯系的所有(yǒu)信号線。由于設計(jì)有(yǒu)缺陷,因此,隻要切斷從保護熔絲到其它電(diàn)路的某一根信号線(或切割掉整個(gè)加密電(diàn)路)或連接1~3根金線(通(tōng)常稱FIB:focused ion beam),就能禁止整個(gè)保護功能,這樣,使用簡單的編程器(qì)就能直接讀出程序存儲器(qì)的內(nèi)容。
雖然大(dà)多(duō)數(shù)普通(tōng)單片機都具有(yǒu)熔絲燒斷保護單片機內(nèi)代碼的功能,但(dàn)由于通(tōng)用低(dī)檔的單片機并非定位于制(zhì)作(zuò)安全類産品,因此,它們往往沒有(yǒu)提供有(yǒu)針對性的防範措施且安全級别較低(dī)。加上(shàng)單片機應用場(chǎng)合廣泛,銷售量大(dà),廠商間(jiān)委托加工與技(jì)術(shù)轉讓頻繁,大(dà)量技(jì)術(shù)資料外瀉,使得(de)利用該類芯片的設計(jì)漏洞和(hé)廠商的測試接口,并通(tōng)過修改熔絲保護位等侵入型攻擊或非侵入型攻擊手段來(lái)讀取單片機的內(nèi)部程序變得(de)比較容易。