MCU加密技术分析续 点击:521 | 回复:16



linksafe

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:67帖 | 24回
  • 年度积分:0
  • 历史总积分:283
  • 注册:2010年6月10日
发表于:2016-09-09 09:52:32
楼主

上期提到了嵌入式MCU破解技术,虽不全面,但足够起到警示作用。

本期主要讲述嵌入式产品如何进行安全防护。

因为MCU端的程序很容易被获取到,所以MCU端的程序和数据都是不安全的。最直接的加密防护,就是提升MCU的安全等级,让他变得坚不可摧。有些主控厂家意识到这一点,也推出了一些安全主控。但目前市场上的大多数MCU都不会去做安全防护,我们是无法左右MCU原厂的,只能在MCU之外做文章。上期提到的认证方案,之所以不是绝对安全的,就是因为认证成功与否,还是需要MCU端程序自己做判断,因此这一动作是可以被绕过的。

目前市场上公认的最安全加密方案就是算法移植方案。之所以说他是最安全的,有以下两个原因;第一,MCU端的程序有一部分被移植走了。比如MCU端存储了一个图像优化算法,我们把他移植到另一颗芯片中去运行,当MCU需要调用这个算法时,将参数传递过去,并从另一颗芯片取回运算结果,这样一来,即使MCU端程序被破解了,也不可能拿到所有程序,必须要破解另外一颗芯片,才能拼凑出全部程序,这是方案上的优越性。第二个原因,就是算法移植方案都是基于高安全等级的加密芯片实现的,保证存储到加密芯片内部的程序算法是不可被读出的。因为加密芯片都是基于特殊的硬件平台(比如智能卡平台)专门针对暴力软硬件破解做了很多针对性的防护措施,如识别到硬件攻击则启动自毁机制等,所以他的破解代价远远高于破解MCU,我们移植到加密芯片中的算法是非常安全的。其中凌科芯安的LKT系列加密芯片就是极具代表性的产品。

但是算法移植方案也并不是完美的,毕竟很多用户产品的实时性要求非常高,从加密芯片中调用一个算法并获得运算结果,时间往往要比直接在MCU中运行多出很多。这样一来,算法移植方案就不再适合。此时,我们可以采用参数移植结合对比认证的方案。对比认证上期讲过,不再敷述。参数移植就是将MCU中的一部分参数移植到加密芯片中。在MCU程序运行的空闲期内,将关键参数从加密芯片端读回并解密,等待需要的时候再应用。这样就在牺牲一定安全强度的基础上,解决了实时性差的短板。同样也是很好的加密方案

通过这两期的讲解,大家对于解密、加密技术应该有了一定的了解了。希望能够引起足够的重视,嵌入式行业内的安全防护是非常有必要的,一定不要忽略这一点。




Nic_浩

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 22回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2016年8月25日
发表于:2016-09-09 15:36:37
1楼

算法移植方案也不一定安全,如果别人抓到你MCU与加密芯片传递的数据,照样可以<此处内容被屏蔽>。

grayly

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 51回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2016年1月27日
发表于:2016-09-09 21:01:17
2楼


回复内容:

对: Nic_浩 算法移植方案也不一定安全,如果别人抓到你MCU与加密芯... 内容的回复!

同意,我也这么认为。

阳光无限好

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2016年8月26日
发表于:2016-09-10 17:51:10
3楼

我觉得确实可以,但是你最起码得知道通讯协议是什么,不然怎么抓?

北极星121

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 22回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2016年9月10日
发表于:2016-09-10 21:43:09
4楼

回复内容:

对:阳光无限好 我觉得确实可以,但是你最起码得知道通讯协议是什么,不然怎么抓?     内容的回复:

逻辑分析仪就可以抓呀

阳光无限好

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2016年8月26日
发表于:2016-09-11 08:21:41
5楼


回复内容:

对: 北极星121 回复内容:对:阳光无限好 我觉得确实可以,但是你最起码... 内容的回复!

开玩笑呢?我给你逻辑分析仪,你知道按什么接口抓数据吗?SPI通讯你设置成USB通讯,能抓到才怪呢!

亮仔007

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2016年8月29日
发表于:2016-09-13 13:29:48
6楼

回复内容:

对:阳光无限好 回复内容:对: 北极星121 回复内容:对:阳光无限好 我觉得确实可以,但是你最起码... 内容的回复!开玩笑呢?我给你逻辑分析仪,你知道按什么接口抓数据吗?SPI通讯你设置成USB通讯,能抓到才怪呢!     内容的回复:

恩,肯定能抓,就是分析数据耗点时间

114W1

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 36回
  • 年度积分:0
  • 历史总积分:46
  • 注册:2016年8月29日
发表于:2016-09-14 10:31:50
7楼

我觉得没那么简单,不然要加密芯片干嘛。

北极星121

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 22回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2016年9月10日
发表于:2016-09-14 14:42:22
8楼

回复内容:

对:114W1 我觉得没那么简单,不然要加密芯片干嘛。     内容的回复:

线路上的数据肯定是透明的,所以传输之前一定要换成密文。这样即使截获到也<此处内容被屏蔽>不了

grayly

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 51回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2016年1月27日
发表于:2016-09-14 18:53:23
9楼





回复内容:密文我也可以模拟啊

对: 北极星121 回复内容:对:114W1 我觉得没那么简单,不然要加密... 内容的回复!


北极星121

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 22回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2016年9月10日
发表于:2016-09-18 10:49:10
10楼

这就涉及到算法的概念了。2位数加法是算法,2位数乘法也是算法,球体体积计算也是算法。复杂程度各不相同,要是移植个简单的加法公式,那肯定安全强度不够啊,而且算法移植并不是自创一个算法,最好是MCU的一个实际算法。而且要保证这个算法输入输出数据是变化的。这样跟踪到数据,也无法模拟,因为不知道数据变化的规律。

回复内容:

对: grayly 回复内容:密文我也可以模拟啊对: 北极星121  回复... 内容的回复!


MrWwang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 37回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2016年8月05日
发表于:2016-09-18 18:34:49
11楼

不错,有机会我也研究下加密芯片。

cifu2011

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 26回
  • 年度积分:0
  • 历史总积分:167
  • 注册:2011年8月09日
发表于:2016-09-19 09:21:09
12楼

我同事用过ALPU的,是算法移植的方案吗?

北极星121

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 22回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2016年9月10日
发表于:2016-09-19 15:39:48
13楼

回复内容:

对:cifu2011 我同事用过ALPU的,是算法移植的方案吗?     内容的回复:

我也不清楚,我只用过LKT的

Nic_浩

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 22回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2016年8月25日
发表于:2016-09-19 18:20:28
14楼

不是说可以绕过MCU里面的对比点吗,那你调用算法返回的数据也可以被绕过

grayly

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 51回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2016年1月27日
发表于:2016-09-19 21:43:57
15楼


回复内容:

对: Nic_浩 不是说可以绕过MCU里面的对比点吗,那你调用算法返回的... 内容的回复!

人家说的是移植算法,调回的数据肯定还要继续运行的。你绕过去程序应该就不能执行了,我这么理解没错吧?


北极星121

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 22回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2016年9月10日
发表于:2016-09-20 10:51:33
16楼

回复内容:

对:grayly 回复内容:对: Nic_浩 不是说可以绕过MCU里面的对比点吗,那你调用算法返回的... 内容的回复!人家说的是移植算法,调回的数据肯定还要继续运行的。你绕过去程序应该就不能执行了,我这么理解没错吧?     内容的回复:

嗯,是的,理解的非常正确。


热门招聘
相关主题

官方公众号

智造工程师