良许Linux教程网 干货合集 早期单片机加密的一些方法

早期单片机加密的一些方法

自从上世纪七十年代MCU诞生以来,芯片的破解技术和防止芯片被破解的解决方案一直在不断演变,形成了一场“道高一尺,魔高一丈”的竞争,各方互相追逐,不断超越。

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

单板机时代

早在上世纪70年代初,嵌入式系统由一些独立的部件组成,包括CPU、ROM、RAM、I/O缓存、串口和其他通信与控制接口的控制板。

在这个时期,除了法律外,几乎没有任何保护措施来防止未经授权的人复制单板机上ROM区的数据。

单片机时代

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

image-20230730210157899
image-20230730210157899

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

安全熔断丝

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

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

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

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

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

image-20230730210141642
image-20230730210141642

一般的熔丝与主存储器离得很近,或干脆共享些控制线,与主存储器用相同的工艺来制造,熔断丝很难被定位。非入侵试攻击仍然可以用,可以用组合外部信号来使熔断位处于不被正确读出的状态。同样,半侵入式攻击也可用。当然破解者需要更多的时间去寻找安全熔丝或控制电路负责安全监视的部分,但这些可以自动完成。进行侵入式攻击将是很困难需要手工操作,那将花费更多的成本来破解。

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

利用上电时锁定特定区域地址的信息,将它作为安全熔丝。或用密码来控制对存储器访问。例如德州仪器的 MSP430F112 只有输入正确的 32 字节密码后才能进行回读操作。如果没输入,只有擦字节密码后才能进行回读操作。尽管这个保护方法看上去比先前的更有效,但它有一些缺点可以用低成本的非侵入式攻击,如时序分析和功耗来破解。如果安全熔丝状态是上电或复位后存储器的一部分,这就给破解者用电源噪声来破解的机会,强制路进入存储中错误状态。

使用顶层金属网络

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

image-20230730210205733
image-20230730210205733

普通的 MCU 不会使用这种保护方法,因为设计较难,且在异常运行条件下也会触发,如:高强度电磁场噪声,低温或高温,异常的时钟信号或供电不良。故有些普通的 MCU 使用更廉价的伪顶层金属网格,会被非常高效的光学分析进行微探测而被攻击。另外,这些网格不能防范非侵入式攻击。同样不能有效防范半侵入式攻击,因为导线之间有电容,并且光线可以通过导线抵达电路的有效区域。在智能卡中,电源和地之间也铺了一些这样的网格线。部分可编程的智能卡走的更远,干脆砍掉了标准的编程接口,甚至干掉了读取EEPROM 接口,取而代之的是启动模块,可以在代码装入后擦掉或者屏蔽自己,之后只能响应使用者的嵌入软件所支持的功能。有效的防范了非侵入式攻击。

智能卡芯片安全设计

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

image-20230730210209259
image-20230730210209259

数据以密文方式存储在存储器中。即使入侵者获得数据总线的数据,也不可能知道密钥或者别的敏感信息(如数据还原方法)。这种保护措施有效的防范了侵入式和半侵入式攻击。有些智能卡甚至能够做到每张卡片总线加密密钥不同,这样即使入侵者完全破解了,也无法生产出相同功能的芯片来,因为每个智能卡芯片有唯一的 ID 号,无法买到相同 ID 号的智能卡。另外值得一提的是,有些智能卡将标准的模块结构如解码器,寄存器文件,ALU 和 I/O 电路用类似 ASIC 逻辑来设计。这些设计成为混合逻辑(Gle Logic)设计。混合逻辑使得实际上不可能通过手工寻找信号或节点来获得卡的信息进行物理攻击。大大提高了 CPU 内核的性能和安全性。混合逻辑设计几乎不可能知道总线的物理位置,有效的防范了反向工程和微探测攻击。

后记

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

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部