芯片安全系列-Let's cook!
前言
前言
芯片安全是针对芯片本身的安全研究,其在知识产权保护,防抄板山寨、加密破解、优化设计、漏洞挖掘和芯片木马等方面都具有深远意义,传统安全往往着眼于上层应用和驱动层面的安全,然而如果芯片存在本质的设计缺陷或安全漏洞,传统安全手段往往很难触及底层,前段时间英特尔芯片的“崩溃”(Meltdown)和“幽灵”(Spectre)漏洞,轰动整个世界,造成了巨额的损失,此次漏洞爆发就是因为芯片自身的设计缺陷所导致的,芯片级的安全研究是一项长期而艰难的工作,其是一门涉及多学科多门类的综合性研究,包括:微电子学、计算机科学、数学、物理学、化学、电磁学、光学等等。芯片分析方式主要包括非侵入式、半侵入式、侵入式、侧信道等。本文通过对某款蓝牙锁芯片的处理和固件提取,作为芯片分析的简单实例。
拆焊
在PCB背面有一颗CC2541的蓝牙芯片,此款芯片采用QFN-40封装格式,没有暴露的可以直连外部引脚,厂商在量产时也把调试接口去掉了,为了获取芯片的固件内容,需要进行拆焊。
拆焊所需工具包括:热风枪、焊枪、松香水、吸锡线、洗板水或无水酒精、无纺布、镊子等。热风枪温度调到360度,风速在5档左右,先在距离PCb上方3到5厘米处,给PCB预热几秒,然后缓缓下移到1厘米处,沿着芯片的四周匀速转动,枪口务必不要对准芯片的中心处,防止芯片过热,造成损毁,大概20秒左右即可融化芯片底部焊锡,另一只手用镊子夹住芯片,轻轻往上一提,芯片即可从PCB取下。
清洁
取下芯片之后,芯片的底部会粘有很多未去除的焊锡和脏物,需要进一步清洁处理,首先滴上松香水,用焊枪使焊锡融化。
然后用吸锡线配合焊枪把多余的焊锡和脏物吸掉,反复几次。
处理完毕之后,用洗板水和无纺布擦洗芯片,彻底去除脏物残留,引脚应保持光亮,以防接触不良和短路。
焊锡、松香水和洗板水气味比较刺鼻,高温易伤手,工作环境需要注意通风,有条件可以配置防护服。
芯片读取
CC2541芯片是TI出品的一款蓝牙芯片,TI有专门的工具和软件来读取,包括:CCDebugger调试器和SmartRF Flash Programmer软件,因芯片已经拆下,可以通过转接板或烧录座连接芯片,引出相应的接口,然后连接CCDebugger进行固件的读取。
把处理好的芯片放入烧录座,需要正确放置芯片,可以通过芯片正面的小圆点确定方向。
确认无误之后,压紧烧录座盖,连上CCDebugger。
打开SmartRF Flash Programmer,选择Read flash into hex-file选项,在Flash image选项可以选择保存的路径和文件名,然后点Perform actions,即可开始读取。
读取的文件格式为HEX,然后根据对应的CPU指令编写进行反汇编。
部分芯片另需进行开片和晶体电路修改等等深度处理,本文是伏宸实验室关于芯片安全的一篇先导性文章,后续将会有一系列关于芯片安全的文章,敬请期待。