ATSHA204A加密芯片的使用

        为了防止自己辛辛苦苦开发了产品被别人抄板仿制,我们使用了ATSHA204A的认证功能。在应用启动的时候,首先我们要验证PCBA上焊接的ATSHA204A芯片中存放的密钥是否匹配,如果不匹配将程序挂起;如果密钥匹配继续往下执行。如果没有ATSHA204A芯片,程序也会挂起。为了增强破解难度,在程序中重要功能调用前也都加入密钥验证操作。

        ATSHA204A芯片里的数据本身是不可复制的,而我们的目标代码必须配合对应的芯片才能运行。即使“坏人”从存储器中读出目标代码也不能运行,从而达到防抄板仿制目的。

        通过专用编程器,将16组密钥写入ATSHA204A芯片,并配置好相应权限。PCBA贴片前烧录好芯片,当然你也可以选择在线烧录。为了防泄密,最好由专人操作。密钥一旦设置就不会轻易变动,所以能看到密钥明文的人越少越安全。我的做法是采用某个目标文件中一段数据,16组密钥在源文件中不连续放置。这样即使你用二进制工具打开目标文件,密钥看起来也会像是某段程序。验证时只需指定组编号而不用密钥明文。

也许有人有疑惑,解释一下:

1、能否在I2C总线上截获密钥?
   ——在I2C总线上并没有传送密钥,而是传送根据秘钥和一组随机数计算出来的digest,因此在总线上截获密钥不可实现。
2、在目标代码中包含密钥,别人从存储器中读取目标文件后是否有可能得到密钥?
   ——目标文件中的确实存有密钥,但是在一个几十MB的二进制文件中寻找一组32字节的密钥,岂不是大海捞针?
3、是否有破解的可能?
   ——对于一些小单片机(51之类的),的确好破,反汇编后,跳过验证步骤即可。但是对于功能强大的MPU,就算你能反汇编,也得找出验证步骤在哪里。因此,只要密钥不泄露,要破解相当困难。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值