深圳市清宝科技有限公司是一家PCB设计外包公司,专业从事:PCB抄板、芯片破解 、PCB设计、线路板设计、高速PCB设计、pcblayout、高精密线路板、PCB软硬结合板、深圳贴片加工、多层电路板、电路板打样、贴片打样、PCBA加工、pcblayout外包等业务。欢迎访问深圳市清宝科技有限公司网站
加密芯片
作者:武者
目录
一、 为什么要用加密芯片?... 2
二、 考虑到加密芯片的安全性... 3
三、 加密芯片的硬件安全... 3
四、 加密芯片的软件安全... 5
1. 判断工作模式的真值点... 5
2. 数据加解密工作模式... 6
3. 功能操作工作模式... 8
五、 结束语... 9
href="">一、 为什么要用加密芯片?原因很简单:MCU容易破解! 图1是我定期的广告。新芯片不断成功解密。破解芯片,便宜几百元,贵几万元。我记得15年前Cypress的USB芯片Cy63001,声称不能破解。当时我也问过市面,都说不能破解。后来我兴致勃勃地开发了它,并快乐地收取了licese费用。没想到好景不长,只过了两年,这个芯片就能破解,破解费5万元。又过了一年,这个芯片的破解费迅速降到了500元!下跌速度超过中国股市...
图1:定期收到芯片解密广告
可以很容易地破解MCU,提取芯片中的二进制代码,并反汇编、跟踪和调试代码。
如果在设计方案中添加加加密芯片,并允许主控MCU在工作时与加密芯片互动。这样,即使主控MCU被破解,没有这个加密芯片,整个方案也无法运行。
所以问题来了,这个加密芯片是否安全可靠,能否不被破解?这就是下面要说的。
href="">二、 考虑到加密芯片的安全性加密芯片承担着整个方案的安全责任,其本身是否安全可靠至关重要。测量加密芯片是否足够安全,主要考虑两个方面:硬件和软件。
市场上有各种各样的加密芯片,让我们眼花缭乱。加密芯片本身的硬件结构是否足够安全至关重要。如果加密芯片本身可以像主控MCU一样被破解,那么整个解决方案就不安全了。
在可靠的加密芯片硬件的基础上,使用哪种软件解决方案也同样重要。有些加密芯片硬件安全性高,不能破解,但使用的软件解决方案不好,会很容易改变主控芯片的二进制码,跳过加密芯片操作,或在功能上模拟相同的加密芯片,以破解整个解决方案。
一个好的安全加密芯片不仅要有安全可靠、不可破解的物理硬件,还要有灵活设计的软件。两者都是必不可少的,否则无论硬件有多好,都会因为软件设计的限制而被破解。无论软件设计方案有多好,也会因为硬件安全程度不够,入侵者都是完整的 。
href="">三、 加密芯片的硬件安全20世纪70年代初,嵌入式系统由分离部件组成,如:CPU、ROM、RAM、I/O缓存、串口和其他通信和控制接口。通过早期的单板机,我们可以清楚地看到它,如图所示:
图2:早期单板机
有一些加密芯片,使用更多的部分MCU来实现(甚至一些MCU定制制造商,但也在销售加密芯片)。这些加密芯片,然后部分门,也可以通过入侵或非入侵攻击,很容易获得加密芯片的内部代码,然后从加密芯片制造商购买相同的加密芯片,自己燃烧,以实现整个解决方案。
目前,智能卡芯片核心的加密芯片是较安全、较可靠的。其他核心芯片可能会被破解。智能卡内核较安全的原因是采用了存储总线加密技术、顶层金属网络设计、混合逻辑设计等,智能卡芯片提供了大量的防攻击保护,如:防电源噪声攻击、时钟噪声攻击等。如果您感兴趣,请搜索MCU芯片加密过程的文章。
图3:智能卡存储器总线加密技术,存储器中的数据都是密文存储,
即使被入侵者得到,也不能使用。
目前,银行卡、电信SIM卡、社保卡等安全领域涉及资金,基本上使用智能卡芯片,各有行业规范。这是因为智能卡芯片的安全性较高,物理攻击的可能性很小。
如何判断加密芯片是否是智能卡内核的加密芯片?
由于智能卡的高安全性,不排除一些加密芯片供应商会说他们的芯片使用智能卡的核心。判断其真实性非常简单。只要问他们加密芯片是否可以提供智能卡通信接口(即ISO7816接口),如果提供,购买智能卡读写器并操作。如果不提供ISO7816接口,肯定不是智能卡内核。此外,还有一个判断依据,询问DES算法寄存器是否提供硬件,DES算法硬件支持是银行卡、社保卡等智能卡的标准配置。我知道的智能卡内核的加密芯片有:中巨 EC98SC、LKT4100F凌科芯安、AT88SCCATMEL、InfineonSLE 77CF1200S等。
href="">四、 加密芯片的软件安全在不能破解加密芯片硬件的基础上,我们将讨论加密芯片的软件方案。加密芯片物理硬件无法破解后,并非万事如意。软件设计的质量也会影响整个方案的安全性。我将加密芯片的软件工作原理分为三类:1. 判断真值点的类型; 2. 数据加解密类型; 3. 功能操作类型。以下是一些解释软件工作原理的简单例子。
1. 判断工作模式的真值点在主控MCU工作时,判断外部加密芯片是否合法,然后决定是否正常工作。我把这种加密芯片的工作方法统称为真实值点的判断类型。
判断加密芯片是否合法的方法有:PIN码验证和对称算法操作(AES,DES等),非对称算法运算,(RSA,ECC等),散列算法(HMAC-MD5, HMAC-SHA,HMAC- 3等),挑战码模式(如ATMELAT8SC系列芯片)...
真值点判断方法,操作简单,主控芯片原代码变化不大。加密芯片提供商甚至可以提供简单的密钥配置来工作。然而,这种方法有一个致命的弱点。如果入侵者汇编主控MCU的代码并进行更改,则可以绕过加密芯片进行破解。在下面的反汇编代码中,C:将0x0420地址代码改为直接挑砖指令:SJMP 0x042C将完美绕过加密芯片。
所有这类工作方法都有被破解的可能。破解的难度取决于找到相应真实值点的位置。一旦发现,整个计划将被破解。
图4:在真值点判断模式下,加密芯片在原始代码下工作
将此处代码直接更改为:
SJMP C:042C
直接跳过加密芯片,正常工作!
图5:在真值点判断模式下反汇编加密芯片工作
将C:将0x0420地址代码改为直接挑砖指令:SJMP 0x042C将完美绕过加密芯片
2. 数据加解密工作模式在加密芯片中存储部分数据密文。当主控MCU工作时,从加密芯片密文中读取,然后在主控芯片中解解成明文。这种类型统称为数据加解密类型。常用的加解密算法有对称算法(AES,DES等),非对称算法运算,(RSA,ECC)等等。
这种工作模式也有漏洞,要求入侵者调试反汇编代码。如图7所示,在C中:0x01C0处打断点,获取变量bdecryptdata中的明文数据,成功破解整个方案。
图6:加密芯片在数据加解密模式下工作的原始代码
解密后的数据可以在这里打断点获取!
图7:在数据加解密模式下对加密芯片进行反汇编
将C:0x01C0地址打断点,读取相应的地址变量,
然后替换汇编代码,成功破解
3. 功能操作工作模式将主控芯片的关键代码放入加密芯片中。当主控MCU工作时,输入参数,要求加密芯片执行操作并获得计算结果。这种工作方法统称为功能操作类型。
这种工作模式是将部分代码放入加密芯片中运行。例如,在图8中,在加密芯片中计算圆周长的代码。主控芯片只需将其传输到加密芯片圆的半径即可获得圆周长。即使入侵者彻底理解主控MCU的反汇编代码,他们也无法解密整个方案,即使他们不知道“圆周长”的计算公式。
图8:在功能操作模式下,加密芯片在原代码下工作
图9:在功能操作模式下反汇编加密芯片工作
href="">五、 结束语安全可靠的物理硬件支持和灵活可变的软件支持是一个很好的加密方案。一些加密芯片制造商盲目强调他们的硬件有多强大,支持算法有多种,算法密钥有多长,但没有提供良好的软件开发支持,只能配置密钥数据,无论硬件有多强大,也可以很容易地被软件破解;其他加密芯片制造商,盲目强调他们的软件开发,多么灵活,多么快,但硬件只是普通的MCU,它不是智能卡的核心芯片。无论软件算法有多完善,它都不能阻止入侵者直接破解其硬件,并将整个加密芯片的二进制码完成 ,并购买相同的加密芯片,以破解整个方案。
E-m��O@�