支付产业网

标题: MCU加密技术分析续 [打印本页]

作者: 李小小蜜    时间: 2016-9-9 09:59
标题: MCU加密技术分析续
      上期提到了嵌入式MCU破解技术,虽不全面,但足够起到警示作用。
本期主要讲述嵌入式产品如何进行安全防护。
因为MCU端的程序很容易被获取到,所以MCU端的程序和数据都是不安全的。最直接的加密防护,就是提升MCU的安全等级,让他变得坚不可摧。有些主控厂家意识到这一点,也推出了一些安全主控。但目前市场上的大多数MCU都不会去做安全防护,我们是无法左右MCU原厂的,只能在MCU之外做文章。上期提到的认证方案,之所以不是绝对安全的,就是因为认证成功与否,还是需要MCU端程序自己做判断,因此这一动作是可以被绕过的。
目前市场上公认的最安全加密方案就是算法移植方案。之所以说它是最安全的,有以下两个原因。第一,MCU端的程序有一部分被移植走了。比如MCU端存储了一个图像优化算法,我们把它移植到另一颗芯片中去运行,当MCU需要调用这个算法时,将参数传递过去,并从另一颗芯片取回运算结果。这样一来,即使MCU端程序被破解了,也不可能拿到所有程序,必须要破解另外一个芯片,才能拼凑出全部程序,这是方案上的优越性。第二个原因,就是算法移植方案都是基于高安全等级的加密芯片实现的,保证存储到加密芯片内部的程序算法是不可被读出的。因为加密芯片都是基于特殊的硬件平台(比如智能卡平台)专门针对暴力软硬件破解做了很多针对性的防护措施,如识别到硬件攻击则启动自毁机制等,所以它的破解代价远远高于破解MCU,我们移植到加密芯片中的算法是非常安全的。其中凌科芯安的LKT系列加密芯片就是极具代表性的产品。
但是算法移植方案也并不是完美的,毕竟很多用户对产品的实时性要求非常高,从加密芯片中调用一个算法并获得运算结果,时间往往要比直接在MCU中运行多出很多。这样一来,算法移植方案就不再适用。此时,我们可以采用参数移植结合对比认证的方案。对比认证上期讲过,不再敷述。参数移植就是将MCU中的一部分参数移植到加密芯片中。在MCU程序运行的空闲期内,将关键参数从加密芯片端读回并解密,等待需要的时候再应用。这样就在牺牲一定安全强度的基础上,解决了实时性差的短板。同样也是很好的加密方案。
通过这两期的讲解,大家对于解密、加密技术应该有了一定的了解。希望能够引起足够的重视,嵌入式行业内的安全防护是非常有必要的,一定不要忽略这一点!


作者: Hi-fan    时间: 2016-9-13 09:31
算法移植方案也不一定安全,如果别人抓到你MCU与加密芯片传递的数据,照样可以破解。
作者: 123小屁孩    时间: 2016-9-13 22:19
同意,我也这么认为。

作者: 旋转の木偶    时间: 2016-9-18 10:03
我觉得确实可以,但是你最起码得知道通讯协议是什么,不然怎么抓?
作者: 李小小蜜    时间: 2016-9-18 10:12
逻辑分析仪就可以抓啊
作者: 旋转の木偶    时间: 2016-9-18 10:30
开玩笑呢?我给您逻辑分析仪,你知道按什么接口抓数据吗?SPI通讯,你设置成USB通讯,能抓到才怪呢。

作者: 邓女士    时间: 2016-9-18 10:50
恩,肯定能抓,就是分析数据耗点时间。

作者: miniminimini    时间: 2016-9-18 10:56
我觉得没那么简单,不然要加密芯片干嘛。

作者: 李小小蜜    时间: 2016-9-18 11:02
miniminimini 发表于 2016-9-18 10:56
我觉得没那么简单,不然要加密芯片干嘛。

线路上的数据肯定是透明的,所以传输之前一定要转换成密文,这样即使截获到也破解不了
作者: 123小屁孩    时间: 2016-9-18 21:40
密文我也可以模拟啊

作者: 李小小蜜    时间: 2016-9-19 11:21
这就涉及到算法的概念了,2位数加法是算法,2位数乘法也是算法,球体体积计算也是算法,复杂程度各不相同,要是移植个简单的加法公式,那肯定安全强度不够啊,而且算法移植并不是自创一个算法,最好是MCU的一个实际算法。而且要保证这个算法输入输出数据是变化的,这样跟踪到数据也无法模拟,因为不知道数据变化的规律
作者: YXG987654321    时间: 2016-9-19 12:20
不错,有机会我也研究下
作者: 訫@謜    时间: 2016-9-19 14:58
我同事用过ALPU的,是算法移植的方案吗?
作者: 李小小蜜    时间: 2016-9-19 15:21
訫@謜 发表于 2016-9-19 14:58
我同事用过ALPU的,是算法移植的方案吗?

我也不清楚,我只用过LKT的
作者: wyj777    时间: 2016-9-19 15:30
不是说可以绕过MCU里面的对比点吗,那你调用算法返回的数据也可以被绕过。
作者: YXG987654321    时间: 2016-9-19 15:53
人家说的是移植算法,调回的数据肯定还要继续运行的。你绕过去程序应该就不能执行了,我这么理解没错吧?
作者: ljyanhong    时间: 2018-4-12 10:38
移植方案




欢迎光临 支付产业网 (http://paynews.net/) Powered by Discuz! X3.2