单片机芯片解密的一般过程
侵入型攻击的第一步是揭去芯片封装(简称开盖有时候称开封,英文为DECAP,decapsulation)。
有两种方法可以达到这一目的:第一种是完全溶解掉芯片封装,暴露金属连线。
第二种是只移掉硅核上面的塑料封装。
第一种方法需要将芯片绑定到测试夹具上,借助绑定台来操作。
第二种方法除了需要具备攻击者一定的知识和必要的技能外,还需要个人的智慧和耐心,但操作起来相对比较方便。
芯片上面的塑料可以用小刀揭开,芯片周围的环氧树脂可以用浓硝酸腐蚀掉。
热的浓硝酸会溶解掉芯片封装而不会影响芯片及连线。
该过程一般在非常干燥的条件下进行,因为水的存在可能会侵蚀已暴露的铝线连接(这就可能造成解密失败)。
接着在超声池里先用丙酮清洗该芯片以除去残余
硝酸,然后用清水清洗以除去盐分并干燥。
没有超声池,一般就跳过这一步。
这种情况下,芯片表面会有点脏,但是不太影响紫外光对芯片的操作效果。
最后一步是寻找保护熔丝的位置并将保护熔丝暴露在紫外光下。
一般用一台放大倍数至少100倍的显微镜,从编程电压输入脚的连线跟踪进去,来寻找保护熔丝。
若没有显微镜,则采用将芯片的不同部分暴露到紫外光下并观察结果的方式进行简单的搜索。
操作时应用不透明的纸片覆盖芯片以保护程序存储器不被紫外光擦除。
将保护熔丝暴露在紫外光下5~10分钟就能破坏掉保护位的保护作用,之后,使用简单的编程器就可直接读出程序存储器的内容。
对于使用了防护层来保护EEPROM单元的单片机来说,使用紫外光复位保护电路是不可行的。
对于这种类型的单片机,一般使用微探针技术来读取存储器内容。
在芯片封装打开后,将芯片置于显微镜下就能够很容易的找到从存储器连到电路其它部分的数据总线。
由于某种原因,芯片锁定位在编程模式下并不锁定对存储器的访问。
利用这一缺陷将探针放在数据线的上面就能读。