点击上方“小麦大叔”,选择“置顶/星标公众号”

福利干货,第一时间送达

自从上世纪70年代MCU诞生以来,芯片的破解技术与防止芯片被破解方案就在不断地上演着“道高一尺,魔高一丈”,一山更比一山高的追逐。

本文将单片机在安全保护方面的发展历程与大家分享,并在文章的最后,总结了现阶段安全级别最高的智能卡芯片的优点及其缺点。

01

单板机时代

上世纪70年代初期,嵌入式系统是由分离部件如:CPU、ROM、RAM、I/O缓存、串口和其他通信与控制接口组成的控制板。

这一时期除法律外,几乎没有保护措施来防止侵入者复制单板机上ROM区的数据。

02

单片机时代

随着大规模集成电路技术的发展,中央处理单元(CPU)、数据存储器(RAM)、程序存储器(ROM)及其他I/O通信口都集成在一块单片机芯片上了,微控制器MCU取代了单板机。如图:

这一时期,内部存储器EEPROM和MCU是分开封在同一封装内部。侵入者可用微探针来获取数据。

03

安全熔断丝(Security Fuse)

随着入侵者的增加,MCU为了自身的安全,后来增加了安全熔断丝(Security Fuse)来禁止访问数据。如图:

优点:很容易做到,不需要完全重新设计MCU构架,仅用熔断丝来控制数据的访问。

缺点:熔断丝容易被定位、攻击。

例如:熔丝的状态可以通过直接把位输出连到电源或地线上来进行修改。有些仅用激光或聚焦离子束来切断熔丝的感应电路就可以了。用非侵入式攻击也一样成功,因为一个分离的熔丝版图异于正常存储阵列,可以用组合外部信号来使位处与不能被正确读出的状态,那样就可以访问存在内部芯片上信息了。用半侵入式攻击可以使破解者快速取得成功,但需要打开芯片的封装来接近晶粒。一个众所周知方法,就是用紫外线擦掉安全熔断丝。

04

安全熔丝变成存储器阵列的一部分

再后来MCU制造商将安全熔丝做成存储器阵列的一部分,如图:

一般的熔丝与主存储器离得很近,或干脆共享些控制线,与主存储器用相同的工艺来制造,熔断丝很难被定位。非入侵试攻击仍然可以用,可以用组合外部信号来使熔断位处于不被正确读出的状态。同样,半侵入式攻击也可用。

当然,破解者需要更多的时间去寻找安全熔丝或控制电路负责安全监视的部分,但这些可以自动完成。进行侵入式攻击将是很困难需要手工操作,那将花费更多的成本来破解。

05

用主存储器的一部分来控制外部对数据访问

利用上电时锁定特定区域地址的信息,将它作为安全熔丝。或用密码来控制对存储器访问。例如:德州仪器的MSP430F112只有输入正确的32字节密码后才能进行回读操作。

如果没输入,只有擦字节密码后才能进行回读操作。尽管这个保护方法看上去比先前的更有效,但它有一些缺点可以用低成本的非侵入式攻击,如时序分析和功耗来破解。

如果安全熔丝状态是上电或复位后存储器的一部分,这就给破解者用电源噪声来破解的机会,强制路进入存储中错误状态。

06

使用顶层金属网络

使用顶层金属网络设计,提升入侵难度。所有的网格都用来监控短路和开路,一旦触发,会导致存储器复位或清零。如图:

普通的MCU不会使用这种保护方法,因为设计较难,且在异常运行条件下也会触发,如:高强度电磁场噪声,低温或高温,异常的时钟信号或供电不良。故有些普通的MCU使用更廉价的伪顶层金属网格,会被非常高效的光学分析进行微探测而被攻击。

另外,这些网格不能防范非侵入式攻击。同样不能有效防范半侵入式攻击,因为导线之间有电容,并且光线可以通过导线抵达电路的有效区域。在智能卡中,电源和地之间也铺了一些这样的网格线。部分可编程的智能卡走的更远,干脆砍掉了标准的编程接口,甚至干掉了读取EEPROM接口,取而代之的是启动模块,可以在代码装入后擦掉或者屏蔽自己,之后只能响应使用者的嵌入软件所支持的功能。有效的防范了非侵入式攻击。

07

智能卡芯片安全设计

近些年,一些智能卡使用存储器总线加密(Bus Encryption)技术来防止探测攻击。如图:

数据以密文方式存储在存储器中。即使入侵者获得数据总线的数据,也不可能知道密钥或者别的敏感信息(如数据还原方法)。这种保护措施有效的防范了侵入式和半侵入式攻击。

有些智能卡甚至能够做到每张卡片总线加密密钥不同,这样即使入侵者完全破解了,也无法生产出相同功能的芯片来,因为每个智能卡芯片有唯一的ID号,无法买到相同ID号的智能卡。

另外值得一提的是,有些智能卡将标准的模块结构如解码器,寄存器文件,ALU和I/O电路用类似ASIC逻辑来设计。这些设计成为混合逻辑(Gle Logic)设计。

混合逻辑使得实际上不可能通过手工寻找信号或节点来获得卡的信息进行物理攻击。大大提高了CPU内核的性能和安全性。混合逻辑设计几乎不可能知道总线的物理位置,有效的防范了反向工程和微探测攻击。

08

智能卡芯片加密方案优缺点

对于开发者来讲,选择更为安全设计的微控制器或可以得到更好的保护。与大多数微控制器相比,即使是十年前设计的智能卡也能提供更好的保护。现代的智能卡提供了更多的防攻击保护,内部电压传感器保护免受电源噪声攻击(Power Glitch attacks)、过压和欠压保护。

时钟频率传感器防止受到静态分析(Static analysis)的降低时钟频率攻击;同时也可以防止时钟噪声(Clock glitch attacks)进行提高时钟频率的攻击。顶层金属网格和内部总线硬件加密使可以防止微探测攻击。

但是,与微控制器相比,智能卡芯片也有劣势,如:芯片价格昂贵,小批量的很难买到货。开发工具昂贵,需要和制造商签署保密协议,即使是说明书也要这样。很多制造商仅向特定客户销售大批量的智能卡。

另一个不足是I/O的功能受限,普通智能卡芯片通常只有ISO7816接口,极少有单独的I/O口。

这使得多数应用中不能取代微控制器,而只能用于安全要求非常高的行业,如:付费机顶盒,银行卡,SIM卡,二代身份证,高端加密芯片等领域。智能卡芯片在加密芯片领域的应用,将是个不错的方向。因为智能卡芯片安全等级高,IO资源少。

而普通MCU的硬件资源非常丰富,安全程度却不高,可以将MCU中一些关键算法及运行参数,以特殊形式存放在智能卡芯片中,从而实现高安全强度的强大功能。

09

 后 记 

坚持不懈的尝试突破保护机制的破解团体和不断引入新的安全防范方案的制造商之间的斗争是没有尽头的。“道高一尺,魔高一丈”,又或是“邪不压正”,将不停的在两派之间上演!

免责声明:本文来源网络版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

—— The End ——

往期推荐

我劝你别再做流量的奴隶了...

头文件里的大学问,C语言需要注意这些原则...

实战总结的7个C程序,好东西不私藏

成为嵌入式高手,少不了这100多个软硬件开源项目

揭秘,嵌入式OTA技术,到底有多复杂?

加入嵌入式技术交流群一起进步

点击上方名片关注我

你点的每个好看,我都认真当成了喜欢

如何防止破解?MCU加密技术揭秘相关推荐

  1. MCU加密技术分析(二)

    上期提到了嵌入式MCU破解技术,虽不全面,但足够起到警示作用. 本期主要讲述嵌入式产品如何进行安全防护. 因为MCU端的程序很容易被获取到,所以MCU端的程序和数据都是不安全的.最直接的加密防护,就是 ...

  2. 揭秘!业界创新的代码仓库加密技术

    简介: 原理与演示. 01 / 什么是代码加密? 云端加密代码服务是云效团队的自研产品,是目前国内率先支持代码加密的托管服务,也是目前世界范围内率先基于原生Git实现加密方案的代码托管服务. 通过在云 ...

  3. 文华财经指标公式大全,通达信指标加密破解DLL加密防破解技术方法

    STICKLINE(做多 AND C<O,C,O,0.3,0),COLORFF00FF;  STICKLINE(做多 AND C>=O,C,O,3,1),COLOR0000FF;  {ST ...

  4. 破解LanStar技术揭秘

    破解LanStar技术揭秘 教你怎么爆LanStar菊花(嗯~我是绅士) By HingC 如果不想看技术的可以直接拉到最下面下载你懂的1.22 有新修正版V1请看你懂的1.22修正V1版通用于Lan ...

  5. 数据隐藏技术揭秘笔记

    目录 数据隐藏技术揭秘笔记 第一章 密写术的发展史 第二章 数据隐藏简单练习4则 2.1 在word中隐藏数据 2.2 图像元数据 2.3 移东设备数据隐藏 2.4 文件压缩工具的数据隐藏 第三章 隐 ...

  6. 【安全加密技术】 对称加密

    转载请注明出处:http://blog.csdn.net/sk719887916/article/details/46822663 上篇了解了<非对称加密>后 今天我来继续了解下加密技术中 ...

  7. 一个最简单的通过WireShark破解SSL加密网络数据包的方法

    原文地址: http://article.yeeyan.org/view/530101/444688 一般来说,我们用WireShark来抓取包进行分析是没有多大问题的.但这里有个问题是,如果你碰到的 ...

  8. 秀尔算法:破解RSA加密的“不灭神话” --zz

    http://netsecurity.51cto.com/art/201508/488766.htm RSA加密曾被视为最可靠的加密算法,直到秀尔算法出现,打破了RSA的不灭神话. RSA加密 VS ...

  9. Microsoft CryptoAPI加密技术(一)

    http://www.vckbase.com/index.php/wv/716.html 在这个信息爆炸的时代,我们不得不对信息的安全提高警惕.加密作为保障数据信息安全的一种方式,越来越受到人们的关注 ...

最新文章

  1. R语言ggplot2包和lattice包可视化改变x轴和y轴的显示位置实战
  2. python 脚本_python脚本如何同时运行多个
  3. I2C总线学习(二)--数据传送格式
  4. Altium Designer PCB快速布局
  5. SQL组合查询union
  6. IOS将字符串转换为日期时间格式
  7. gradle 构建完成自动删除_Gradle 6.6 RC6 发布,引入配置缓存特性,大幅提升构建性能
  8. 如何选择物联网通讯技术?
  9. 【BZOJ】【1015】 【JSOI2008】星球大战starwar
  10. Windows搭建SVN实现访问远程SVN库
  11. [Hadoop]Sqoop 1.4.2中文文档(二)之数据导出
  12. 10款炫酷的html5动画特效附源码,10款炫酷的HTML5动画特效,附源码
  13. 3dmax烘焙贴图主要设置之Flatiron
  14. 【计算几何】【极角排序】Gym - 101174B - Bribing Eve
  15. python练习五——PTA
  16. Android产品研发(二十一)--Android中的UI优化
  17. 印度软件与信息服务业发展经验及启示
  18. 国家认证的Python技术工程师有什么能力要求?
  19. 2021世界人工智能大会开幕,百度飞桨荣获“SAIL之星”奖项
  20. 区块链将会怎样颠覆Google、Amazon、Facebook和Apple?

热门文章

  1. Linux安装配置ssh 基于unbantu22.04.1 LTS版本
  2. 为什么行程码不能显示到县级,工信部回应
  3. GNU toolchain —— (一)介绍
  4. assign和weak之间的区别
  5. pdm生成java_PowerDesigner通过SQL语句生成PDM文件并将name和comment进行互相转换
  6. Apache和Spring提供的StopWatch执行时间监视器
  7. 关于无刷电机驱动器的布板建议(FOC)
  8. mysql 1264_关于MySQL的1264错误处理及sql_mode设置
  9. Linux下scons安装
  10. File和path的用法