浅谈加密芯片的一种破解方法和对应加密方案改进设计

MCU程序加密保护(二)ID 验证法 加密与解密 阅读详情

目前市面上很多防抄板加密方案都是基于加密芯片的安全存储和密文通讯来实现对主MCU方案的保护。比如把主MCU用到的一些参数、配置信息等存储在加密芯片里面,然后通过芯片的ID、随机数R等因子使用加密秘钥Key计算临时过程秘钥Key’,再使用临时过程秘钥Key’对数据做加解密和密文通讯,这样来做到每一颗芯片、每一次通讯的加密数据都是不一样,防止数据在通讯线路上被破解。

如上图,主MCU函数FUNC调用是的一些关键参数或数据Data没有存储在主MCU中,而是存储在加密芯片里,主MCU要正确运行函数FUNC需要使用到加密芯片里的Data数据,这就需要先从加密芯片将Data数据读取到主MCU。程序员为了增加加密方案可靠度,设计成让主MCU的芯片序列号ID1、产生的随机数R1和加密芯片的芯片序列号ID2、产生的随机数R2参与计算临时过程秘钥,加密芯片使用秘钥Key对(ID1⊕RAND1⊕ID2⊕RAND2)这些因子运算得到临时过程秘钥Key’,再使用Key’对数据Data做加密得到密文数据Data’。主MCU在收到密文数据Data’和ID2和R2后,使用同样的方法计算得到临时过程秘钥Key’,在使用Key’对密文数据Data’解密得到明文数据Data。主MCU的FUNC调用Data后程序就能正常使用了。

上述加密方案貌似安全可靠,但实际上对于经验丰富的黑客来说破解难度不大。

首先我们分析该方案最重要的技术点就是加解密使用的临时秘钥的因子由主MCU芯片和加密芯片的双方的ID和随机数参与,使得每次通讯线路上的密文都是变化的。但是主MCU反汇编程序和ID1、R1、Data’、ID2、R2还是很容易得到的,那么只要我们想办法让主MCU密文读数据时固定发ID1和R1就行了,这时主MCU解密假加密芯片回的固定密文数据Data’是可以得到正确明文数据Data的。

实现上述破解方式的前提条件是主MCU的程序BIN或HEX码是通过破解可以得到的,目前主流大多数MCU都是可以破解的,有很多专业的公司或团体做这方面的服务。拿到破解得到的BIN或HEX码后,接下来我们分两步走来实现破解主MCU和加密芯片的联动的整体加密方案,分别是固定主MCU的ID1和随机数R1。下面以STM32来模拟解析整个破解过程。

芯片的唯一ID一般都是存储在一个固定地址上连续存放的,知道芯片型号后这个ID1的存放地址很容易得到,我们在HEX码中很容易得到这个地址。比如STM32的UID地址在0x1FFFF7E8(小端模式),这时我们在HEX码中搜索E8F7FF1F(大端模式),如果找不到,可能是因为编译优化了,可以尝试搜索高3字节F7FF1F或其中几个字节,很容易就找到这个关键字,这时你只需要把HEX码这个位置的UID地址值改成你的设定的Flash地址值0x00005000,再在这个地址上写上你的ID(比如1122334455667788)就能实现你想要的ID1值了。如下图:

固定随机数相对于ID有些难度,如果有随机数发生器,那么把随机数发生器产生随机数值的地址改成你的固定地址,方法可以完全参照上面固定ID值得方法。如果没有随机数发生器,无非也是使用AC、DC等值作为因子,然后配合srand产生随机数,想办法在产生随机数前把这些因子固定,那么主MCU的随机数也可以做到的特定时间特定的代码处产生的随机数也是固定值。这个需要破解者有一定的反汇编能力,想办法找到这些作为随机数发生因子寄存器,用上述一样的方法把这些调用的地方改成你的固定的Flash地址,并在这个地址上写上你的目标值。如下产生随机数的样例:

我们只需要在HEX里找到ADC1.DR的地址,把他改到一个固定的FLASH地址就可以了。如果找不到ADC1.DR的地址,可以尝试去找ADC1的地址(0x40012400),把ADC1的地址改到一个固定地址(0x00005000),这样就可以把该处调用ADC1产生随机数因子的功能失效,这样每次程序运行时在该处调用ADC1产生的随机数因子是固定值,以达到固定每次产生随机数的值。

通过上述方式把STM32的ID1和随机数R1固定后,把新的HEX或BIN文件烧入到一颗新的STM32芯片,并把芯片贴装的装有原装加密芯片的目标板上,目标板工作后,在线路上监控通讯数据,得到ID1,R1,ID2,R2和密文数据Data’。

得到数据后,再开发一颗假加密芯片就可以了,假加密芯片收到的STM32发送固定的ID1和R1后只要回上述监控得到的固定的ID2,R2和密文数据Data’就可以了,STM32收到ID2,R2和Data’后就可以解密得到正确的Data。破解者使用固定ID1、随机数R1的HEX或BIN下载文件和自己制作的假加密芯片就可以批量生产破解的目标板了。如下图:

看了上述破解方式后是不是觉得这种貌似很安全的加密方案很容易就破解了?事实就是现在很多破解公司对主流MCU和加密芯片的破解能力都很强大,特别是针对主流MCU的反汇编和对逻辑加密芯片。特别是针对逻辑加密芯片,加密方式就是固定的几种方式,只要破解了一种方式,那么只要使用这种逻辑加密芯片和这种加密方式的产品都很容易破解,就像上述破解方式,破解者不需要去破解加密芯片,只需要通过固定ID和随机数的方式就能绕开加解密算法和秘钥。如果那使用了上述加密方法的,赶紧去检查下你的HEX或BIN下载码吧,看看是不是自己就能轻松破解自己的方案了。。。

那么有没有好的方法来保护产品呢,对于使用逻辑加密芯片的加密方案,开发者可以通过以下的一些小技巧来增加被破解的难度,比如:

1、访问ID或随机数因子时,尽量不要使用常量直接访问目的地址,可以使用一个假地址再通过变量异或、加减或其他算法来得到目的地址,以防止破解者轻易找到这个地址来窜改。程序里确保每次产生的随机数只能使用一次,使用后随机数失效,下次要使用随机数必须重新产生。程序对收到的外设发来的随机数做缓存,如果随机数有重复,做一些特殊处理,防反复跟踪解析。

2、秘钥值尽量不要连续存放在一个常量或变量数组里,尽量分开存放,使用前通过一些算法计算再组成正确的秘钥值。

3、主MCU程序做完整性校验,完整性校验绑定UID,防止主MCU程序被破解者破解得到后窜改来跟踪、分析、破解。上面讲的破解方法就是利用主MCU没有做程序完整性校验来固定ID和随机数从而轻易破解的,如果有完整性校验,破解难度就会增加。

4、设计加密方案时尽量不要使用判断正确就继续执行错误就报错这种简单的判断逻辑,可以设计成错误后继续执行,只是在后续执行过程中在不特定的地方出不特定的错误。

5、加密方案里使用的一些校验算法、加解密算法等,尽量不是用标准算法,可以使用这些算法的变异算法。

通过上述方式,设计的加密方案被破解的难度会大大提高。但是现在有很多专业的破解团队,对主流芯片的反汇编能力超强,反汇编后还提供C代码服务供破解者二次开发,上述加密方式通过超强的反汇编能力,还是可以做到破解的,只是代价会大大提高。那有没有更加安全的加密方式呢?答案是有的,那就是采用可编程加密芯片!

可编程加密芯片可以理解成一种安全MCU,采用智能卡安全核,芯片本身安全可靠。可编程加密芯片除了拥有逻辑加密芯片的功能外还具有可编程功能。把主MCU的部分功能或算法放到可编程加密芯片里去运行,比如主MCU里有原来一个计算一个圆的面积的功能,这时我们把计算圆的面积的功能代码放到加密芯片里去,主MCU需要计算面积时,只需要把半径r传递给加密芯片,加密芯片收到半径r后自己运算圆的面积S=πr²,然后把面积S返回给主MCU就可以了。这种方案相当于整个加密方案是双MCU模式,即使主MCU被反汇编破解了,只要加密芯片安全可靠,破解者就无法得到计算圆面积的功能。使用这种可编程加密芯片的加密方案,破解者除了完全破解加密芯片的方法外,反汇编能力再强也无法破解整个加密方案,比使用逻辑加密芯片加密安全系数极大的提高。

目前市场上逻辑加密芯片比较多,可编程加密芯片比较少,SMEC98SP、SMEC80ST就属于可编程加密芯片。淘宝店

支持远程脱机密文下载加密芯片SMEC编程器开发板介绍 该密文文件只对产生对应安全码的SMEC编程器有效,且只能脱机下载一次,密文文件下载到该SMEC编程器后,这组安全码也会失效,再次下载密文文件时,需要SMEC编程器重新产生安全码并重新生成密文文件。SMEC编程器使用密文文件脱机下载加密芯片时,SMEC编程器和SMEC加密芯片之间使用密文通讯下载,通讯密文和芯片ID号、随机数相关,即使通讯数据信息被监听,这些数据也无法下载到别的加密芯片。3、把产生的密文文件下载到刚产生对应安全码的SMEC编程器中,就可以实现密文下载SMEC加密芯片功能了。 阅读详情

相关推荐

STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计

目前市场上很多嵌入式产品方案都是可以破解复制的,主要是因为方案主芯片不具备防破解的功能,这就导致开发者投入大量精力、财力开发的新产品一上市就被别人复制,到市场上的只能以价格竞争,最后工厂复制的产品反而价格更有优势,因为他们的开发投入几乎可以忽略不计。开发者首先需要选定性价比高的加密芯片,然后再设计加密方案。④ SMEC88ST随机数发生器产生的随机数是真随机数,这样可以保证关键数据在通讯时每次都是随机数参与的,每次通讯的数据密文都是不一样的,可有效防止破解者在I2C通道上的数据监听分析。

SinormousTech的博客 1841

浅谈芯片解密的五大方法

这样,使用简单的编程器就能直接读出程序存储器的内容。技巧二:在生产工艺上的漏洞,利用某些编程器定位插字节,通过一定的方法查找芯片中是否有连续空位,也就是说查找芯片中连续的FF FF字节,插入的字节能够执行把片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序 就被解密完成了。技巧四:很多芯片在设计的时候有加密的漏洞,这类芯片就可以利用漏洞来攻击芯片读出存储器里的代码,利用芯片代码的漏洞,如果能找到联系的FF这样的代码就可以插入字节,来达到单片机ic解密。

2302_79259432的博客 1339

如何实现应用程序的身份认证和数据加密?

是指验证应用程序的身份和权限,以确保只有合法的用户和设备可以访问应用程序的功能和数据。是指对应用程序的数据进行编码和解码,以防止数据被未经授权的人员窃取或篡改。

usstmiracle的博客 568

MCU固件加密

大牛攻城狮最近遇到了一件伤心的事情,团队辛辛苦苦做板子,被别人拿去抄了,固件也被破了。想起那调代码的日日夜夜,多少辛苦都白费了,感觉这是个弱肉强食的时代,这里也要痛骂那些黑心老板,这样做对吗。只能暗暗怪自己当时图方便,没有把固件安全工作做好。.........

大牛攻城狮的专栏 5402

风力发电机缺陷检测平台

风力发电机缺陷检测平台相关内容展示

weixin_39779415的博客 1111

【自然语言处理(NLP)实战】LSTM网络实现中文文本情感分析(手把手与教学超详细)

在当今数字化时代,人们在社交媒体、评论平台以及各类在线交流中产生了海量的文本数据。这些数据蕴含着丰富的情感信息,从而成为了深入理解用户态度、市场趋势,甚至社会情绪的宝贵资源。自然语言处理(NLP)的发展为我们提供了强大的工具,使得对文本情感进行分析成为可能。在这个领域中,长短时记忆网络(LSTM)凭借其能够捕捉文本序列中长距离依赖关系的能力,成为了情感分析任务中的一项重要技术。通过详细的步骤和示例代码,深入了解如何处理中文文本数据、构建LSTM模型、进行训练和评估。

halo的博客 2万+

10.什么是芯片解密?

芯片解密又称单片机解密、IC解密,一般都有内部EEPROM/FLASH供用户存放程序和工作数据,为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或者软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息。获取单片机内程序这就叫芯片解密,又叫单片机解密 单片机破解 芯片破解 IC解密 ,但是者雅各来说这几种程序都不科学,但已经成了习惯叫法,把CPLD解密 DSP解密都习惯称为芯片解密。

DOG_KNIGHT的博客 557

Android13 SurfaceFlinger启动流程分析

在Android13版本中,SurfaceFlinger是由Android.bp去启动init.rc文件,然后再解析文件去加载SurfaceFlinger。上面方法主要处理如下:1、调用surfaceflinger的createSurfaceFlinger方法,实例化surfaceflinger。2、调用flinger(surfaceflinger)的init()方法,在客户端连接之前进行初始化。

liuning1985622的博客 1919

什么是芯片解密,解密要多长时间

芯片解密需要多长时间,芯片解密多少钱

weixin_42900805的博客 591

关于动态存储器dram中rank,bank,device之间的关系

DEVICE_WIDTH表示设备的带宽(单位bit),每个列(column)包含DEVICE_WIDTH 位(bit),每一行(row)包含NUM_COLS个column。   而每一个bank包含NUM_ROWS个行(row)。所以一个设备(device)的存储容量为PER_DEVICE_STORAGE =NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUM_BANKS (i

wyj7260的专栏 4732

ros_control硬件接口实战:从零构建机器人控制框架

本文详细介绍了ros_control硬件接口在机器人控制框架中的核心作用与实践方法。通过解析硬件接口类型、实现标准接口、构建主控制循环及自定义功能扩展,帮助开发者从零构建高效的机器人控制系统,提升硬件与ROS的协同效率。

lstm7chronicler的博客 500

什么是芯片解密?芯片为什么要解密?芯片解密的方法

用于这种技术的工具包括芯片解密软件、芯片解密设备和芯片解密服务,被广泛用于安全领域,例如网络安全,软件防护,数据安全,信息安全,安全通信等。3、芯片破解:根据抽取的芯片特征信息,针对其进行破解,以实现芯片的功能解密,可以选择芯片解密软件或芯片解密设备来完成。芯片解密是指从芯片中获取原始数据的技术。2、芯片抽取:抽取芯片的结构,解析和分析芯片的结构,提取出芯片的特征信息,如控制器结构、数据路径等。5、芯片复制:根据芯片解密研究结果,将芯片的功能和结构信息复制到其他芯片中,以达到芯片解密的目的。

2302_79259432的博客 1097

GSview5.0安装步骤及问题

GSview5.0安装步骤及问题安装步骤遇到的问题 尝试过很多对图片去白边的方法,感觉最好用最有效的还是用GSview比较好操作。本文针对gsview安装及安装过程中踩过的坑记录下来。 安装步骤 在官网下载gsv50w64.exe(或32位的),直接双击安装即可。 安装Ghostscript;注意:GSview5.0不支持最新版的Ghostscript9.54,这里用到是9.27的版本可以在Github中找到,下载gs927w64.exe,一定要安装在GSview的安装目录Ghostgum下 Gho

LilianLYN的博客 1万+

芯片加密技术浅谈

芯片加密:  大多数加密芯片产品硬件平台是建立在普通芯片的基础之上,采用ID号认证、密钥认证、随机数加密认证等的方式进行加密。这种加密方式可以被轻松破解,因为只要通过调试工具,找到应用软件中的分支、跳转指令,修改跳转指令代码,就可以绕过加密芯片。当然,软件设计人员会故意制造一些陷阱,使得破解的难度增加,但理论上讲这种方式是一定可以被破解的,特别是对于那些专门从事这方面工作的高手而言,解密这类加密

海神 4084

4位无符号比较器设计

4位无符号比较器设计

好好学习,天天向上 7891

【x264编码器】章节1——x264编码流程及基于x264的编码器demo

提供了一种方便的方式来根据指定的配置profile应用相应的设置到 x264 参数结构体上。不同的配置文件类型会对参数结构体进行不同的修改,以满足特定的编码需求。然后是编码器参数,包括帧参考数、最大关键帧间隔、最小关键帧间隔、B 帧数、场景切换阈值等。结构体的成员进行赋值,将其初始化为默认值。之后是一些编码器设置,如去块滤波、CABAC 编码、码率控制方法、参考帧压缩系数等。接下来是一系列与视频属性相关的参数,如色度格式、宽度、高度、宽高比等。然后是一些与日志输出、分析类型、量化矩阵等相关的参数。

vcvdv123的博客 5744

工控机防病毒和设备加密浅谈

近年来,计算机以及互联网应用在中国得到普及和发展,已经深入到社会每个角落,政府,经济,军事,社会,文化和人们生活等各方面都越来越依赖于计算机和网络,电子政务,无纸办公、MIS、ERP、OA等系统也在企事业单位中得到广泛应用。在激烈竞争的电子及信息技术产品行业,很多公司费尽心血研发的产品,在投放市场不久就被竞争对手破解,产品破解的时间和成本越来越低,在很多行业出现了仿制品多于自有产权产品的现象,严重损害了产品研发者的权益。 目前保护软硬件产品最有效的办法就是绑定加密芯片,可以有效防止未经授权访问或拷贝芯片.

cnsinda_sdc的博客 250

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

浅谈智能卡加密芯片在智能设备领域的技术运用

不知不觉中,WiFi几乎已攻占了整个世界。只要你使用手机、电脑、Ipad等智能设备上网就离不开wifi。在空间方面,WiFi像是一张无形的网,撒在人们密集之处。在家里、路上、餐馆、酒店、游乐园、图书室等,WiFi俨然是覆盖最广的无线信号;在设备方面,ABI Research的研究发现,截至2014年底,全球共计售出99.8亿部WiFi设备。        正因如此让人依赖和快速发展的一种技术,也

linksafe2014的博客 802

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

浅谈PUF技术如何保护知识产权

PUF密钥与硬件芯片是绑定的,软件程序只能在实施加密的设备上进行解密和运行。PUF,即Physical Unclonable Functions(物理不可克隆功能)的缩写,体现了芯片在生产过程中由于细微制造工艺偏差带来的随机分布、无法复制、不可克隆的物理特征。一旦新产品上市,盗版商往往会利用各种工具破解软件,获取其中的内容信息,并推出类似功能但价格很低的盗版产品,以非法牟利。针对知识产权保护,PUF技术拥有天然独特的优势,能够提供周全完善的防盗版解决方案,在保护电子产品知识产权领域具有广阔的应用前景。

puftech的博客 820

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

凌科芯安浅谈 数据加密技术及其应用

伴随电子、计算机技术的发展与应用, 信息安全越来越受到高度的重视。数据加密技术就是用来保证信息安全的基本技术之一。数据加密技术实质是一种数据形式的变换, 发送方把数据和信息(称为明文)通过算法加密后变成密文并进行传输, 只有特定接收方才能将密文进行解密还原出明文。 根据密钥类型不同,加密算法分为两类:对称加密算法和非对称加密算法。 对称加密算法是指加密和解密均采用相同的密钥,需要通信双方对密

linksafe2014的博客 958

单片机加密の硬件加密和软件加密

DES算法是一种对称密钥加密算法,它采用64位密钥对64位数据进行加密,密钥长度为8个字节,加密过程中分为16轮迭代,加密速度较快,但安全性较低。3DES算法是在DES算法的基础上加强安全性的算法,它采用两个或三个DES算法进行迭代加密,提高了加密的强度。AES算法是一种高级加密标准,它采用128位密钥对128位数据进行加密,加密速度较快,安全性高,被广泛应用于单片机的数据加密和解密中。对称密钥加密是指加密和解密都使用相同的密钥,其加密速度快、安全性高,但密钥的传输和管理较为困难。

ic2121的博客 3313

芯片解密STM32F103芯片:解密之路大揭秘

也可以借助一些专业的备份软件,通过特定的接口与芯片连接,实现数据的备份,这些软件能够智能地识别芯片中的数据,并按照特定的格式进行备份,确保数据的完整性和可恢复性。非法解密芯片可能会带来严重的后果。而芯片内部的线路就如同人体的神经系统,一旦遭到破坏,芯片就会失去正常的功能,无法再进行后续的解密操作,造成不可逆的损失。在实际应用中,比如在一些小型的智能家居项目中,假设你购买了一款基于 STM32F103 芯片的智能开关,但它的功能比较单一,你通过合法的解密手段获取了芯片中的程序代码,发现代码逻辑并不复杂。

1091

单片机常见加密方法有哪些?如何对单片机进行解密?

现在正规的芯片,每颗出厂的时候都带了一个唯一标识码,这个号码是唯一不重复的,比如STM32的就使用96位作为唯一ID。还有比如利用某些编程器定位插字节,通过一定的方法查找芯片中是否有连续空位,也就是说查找芯片中连续的FFFF字节,插入的字节能够执行把片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序就被解密完成了。通过连接网络,在你的MCU中生成一个唯一的随机长序列号,并加入复杂的特种算法,或加入你们重新编码的企业信息在里面,每个芯片内不同,复制者只能复制到一个序列号。

ic2121的博客 3255

[资料] 常见的IC芯片解密方法与原理解析!

其实了解芯片解密方法之前先要知道什么是芯片解密,网络上对芯片解密的定义很多,其实芯片解密就是通过半导体反向开发技术手段,将已加密的芯片变为不加密的芯片,进而使用编程器读取程序出来。   芯片解密所要具备的条件是:   第一、你有一定的知识,懂得如何将一个已加密的芯片变为不加密。   第二、必须有读取程序的工具,可能有人就会说,无非就是一个编程器。是的,就是一个编程...

a7257825的博客 1212
上一篇: 智能卡 加密芯片 SMEC90ST
下一篇: 三网合一(分身卡)7816 开发方案
中巨伟业
博客等级 码龄8年 69粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值