找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11379|回复: 3
打印 上一主题 下一主题
收起左侧

加密芯片那些事儿

[复制链接]
跳转到指定楼层
楼主
ID:286574 发表于 2018-3-1 12:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
资料描述:一个好的安全加密芯片不但要有安全可靠,不可被破解的物理硬件,还要有可灵活设计的软件。二者缺一不可,否则再好的硬件,会因为软件设计的限制,被破解。再好的软件设计方案,也会因为,硬件安全程度不够,被侵入者全盘复制。
                        目录
                        一、        为什么要用加密芯片        2
                        二、        加密芯片安全性考虑要素        3
                        三、        加密芯片的硬件安全性        3
                        四、        加密芯片的软件安全性        5
                        1.        真值点判断工作模式        5
                        2.        数据加解密工作模式        6
                        3.        功能运算工作模式        8
                        五、        结束语        9


一、为什么要用加密芯片

原因很简单:MCU 很容易被破解!图一为本人定期收到一家芯片解密公司的广告。 不断有新的芯片被解密成功。破解一颗芯片,便宜的几百元,贵的几万元。记得 15 年 前 Cypress 的一款 USB 芯片 Cy63001,号称不可被破解,当时我也问过市面上各家芯片 破解公司,都说无法破解。后来我兴致勃勃地把它开发出来,并快活的收取着 licese 费 用。没想到好景不长,只过了 2 年,这颗芯片就可以被破解,破解费 5 万元。这后又过1 年,这颗芯片的破解费迅速降到 500 元!下降速度超过中国股市……


图 1:定期收到芯片解密广告 这些芯片破解公司可以非常容易的破解 MCU,提取芯片里面的二进制代码,还可以将代码进行反汇编,进行跟踪、调试。 如果在设计方案上加一颗加密芯片,并让主控 MCU 在工作的时候,跟这颗加密芯片有交互。这样即使主控 MCU 被破解,整套方案,没有了这颗加密芯片也是运转不起 来的。

那么问题来了,这颗加密芯片是否安全可靠,是否能够不被破解?这就下面要讲的内容。

二、加密芯片安全性考虑要素

加密芯片承载着整套方案的安全重任,其本身是否安全可靠,至关重要。衡量一颗加密 芯片是否足够安全,主要考虑 2 方面:硬件、软件。
市面上的加密芯片五花八门,种类繁多,让我们看的眼花缭乱。一个加密芯片是否足够 安全,加密芯片本身的硬件结构,至关重要。如果加密芯片自身能够像主控 MCU 一样被破 解,那么整套方案就毫无安全可言。
在加密芯片硬件可靠的基础上,使用的是哪种软件方案也同样重要。有一些加密芯片硬 件安全度很高,不可被破解,但使用的软件方案不好,这样也会被搞芯片破解的人,轻而易 举的改动主控芯片的二进制码,跳过加密芯片运行,或者在功能上模拟出一样的加密芯片, 从而破解整套方案。
一个好的安全加密芯片不但要有安全可靠,不可被破解的物理硬件,还要有可灵活设计 的软件。二者缺一不可,否则再好的硬件,会因为软件设计的限制,被破解。再好的软件设 计方案,也会因为,硬件安全程度不够,被侵入者全盘复制。

三、 加密芯片的硬件安全性

上世纪 70 年代初期,嵌入式系统是由分离部件如:CPU、ROM、RAM、I/O 缓存、串口 和其他通信与控制接口组成的。我们可通过早期的单板机,清楚地看到,如图:


图 2:早期单板机
有一些加密芯片,使用比较偏门的 MCU 实现(甚至一些 MCU 订制厂商,同时也在
卖加密芯片)。这些加密芯片,再偏门,也能够被芯片破解者通过侵入式或非侵入式攻 击,轻松得到加密芯片的内部代码,然后破解者从加密芯片厂商购买同样加密芯片,自 行烧录,从实现整套方案破解。

目前智能卡芯片内核的加密芯片,最为安全可靠。其他的内核芯片,都有可能被 破解。智能卡内核之所以最安全,是因为其使用了存储器总线加密技术,顶层金属网络 设计,混合逻辑设计等,并且智能卡芯片提供了很多的防止攻击保护,如:防止电源噪 声攻击,时钟噪声攻击等等。有兴趣的可以搜索一篇《MCU 芯片加密历程》的文章。


图 3:智能卡存储器总线加密技术,存储器中的数据都是密文存储, 即使被入侵者得到,也无法使用。
目前银行卡、电信 SIM 卡,社保卡等涉及到钱的安全领域,基本上都是使用智能卡芯片,并且各自都有其行业规范。就是因为智能卡芯片的安全程度最高,物理上被攻击 的可能性极小。
如何判断加密芯片是否为智能卡内核的加密芯片? 由于智能卡的高安全性,不排除一些加密芯片供应商,会说自己的芯片使用的是智能卡内核。判断其真伪,很简单,只要问他们加密芯片是否能提供智能卡通信接口(即: ISO7816 接口),如果提供,则买一个智能卡读写器,操作一下即可。如果不提供 ISO7816 接口,则肯定不是智能卡内核的。另外还有个判断依据,问其加密芯片内部,是否提供 硬件的 DES 算法寄存器,DES 算法硬件支持,是银行卡,社保卡等智能卡的标配。我所 了解的智能卡内核的加密芯片有:中巨的 SMEC98SC、凌科芯安的LKT4100F、ATMEL 的AT88SC、Infineon 的 SLE 77CF1200S 等等。


四、加密芯片的软件安全性

在加密芯片硬件不可破解的基础上,我们再谈谈加密芯片的软件方案。加密芯片物 理硬件不可破解后,并不是就万事大吉了,软件设计的好坏,同样会影响到整套方案的 安全。加密芯片的软件工作原理,我分为三个类型:1. 真值点判断类型;  2. 数据加解 密类型; 3. 功能运算类型。下面列举一些简单的例子,解释其软件工作原理。



1.  真值点判断工作模式

主控 MCU 在工作时,判断一下外部的加密芯片是否合法,然后决定自身是否要正 常工作,我把这一类加密芯片工作方式,统称为真值点判断类型。
这类判断加密芯片是否合法的方式有:PIN 码验证,对称算法运算(AES,DES 等), 非对称算法运算(RSA,ECC 等),散列算法(HMAC-MD5, HMAC-SHA,HMAC-SM3 等), 挑战码方式(如 ATMEL 的 AT88SC 系列芯片)……
真值点判断方式,操作简单,对主控芯片原有代码改动较小。加密芯片提供者甚至 可以提供简单配置一下密钥,就能工作起来。但这类方式有个致命弱点,如果侵入者将 主控 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:加密芯片工作在功能运算模式下的反汇编


五、 结束语

一个好的加密方案,即少不了安全可靠的物理硬件的支持,也少不了灵活可变的软 件支持。一些加密芯片厂商,一味的强调自己的硬件多么强大,支持算法种类多么的多, 算法密钥长度多么的长,然而没有提供很好的软件开发支持,只能够配置密钥数据等, 再强大的硬件,也可被轻松软件破解;另外一些加密芯片厂商,一味的强调自己的软件 开发,多么灵活多变,速度多么的快,然而其硬件只是普通较偏门的 MCU,不是智能卡 内核芯片,这样再完善的软件算法,也无法挡住入侵者直接破解其硬件,将整个加密芯 片的二进制码全盘复制,并采购其一样的加密芯片,实现整个方案的破解。

完整的pdf格式文档51黑下载地址(共9页):
加密芯片那些事儿.pdf (682.48 KB, 下载次数: 62)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:385786 发表于 2018-8-13 14:43 | 只看该作者
信息量很大,虽然有些看不懂,但是感谢楼主的认真和专业。
回复

使用道具 举报

板凳
ID:543920 发表于 2019-5-21 16:32 | 只看该作者
谢谢楼主,我们用的是武汉瑞纳捷的RJGT102,挺不错的,用了快2年了
回复

使用道具 举报

地板
ID:728942 发表于 2020-4-14 14:03 | 只看该作者
可以 非常有用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表