作者 贝能世界
摘要:介绍了依据Atmel加密认证芯片的运用实例。
大约一切工程师最怨恨的莫过于自己的产品被山寨,自己的代码无法被维护,成为网上揭露资源。也或许服务器被黑客进犯,无法正常运营,形成恶劣影响乃至安全隐患。有没有办法来阻挠上述现象的发生或许削减相似工作发生呢?
有!从加密学的视点来讲有三个层次:数据加密、数据完整性和身份认证。三者之中哪一个最重要呢?身份认证,假如对方不是我要通讯的方针,爽性回绝与之交流,是不是更安全?
Atmel公司供给的身份加密认证分两种,一种对错对称加密算法,如ATECC508A。这一类产品功用强大,每个器材都能够有一对自己的公私钥,两两不同,适用于做网络云端的身份认证。另一种是对称加密算法,如ATSHA204A, 该器材合适用作产品防拷贝、软件IP核维护、或配件防伪,防止赝品的运用危险。
1 ATSHA204A功用特色
ATSHA204A具有以下功用特色:支撑SHA-256算法;内置16*32字节的slot(EEPROM),存储用户数据和秘钥;仅有的9字节序列号;512 bits的OTP区用于保存固定信息;两种通讯办法支撑单总线和I2C;2.0~5.5 V供电;休眠<150 nA;片上自动屏蔽层;一切存储器内部加密;内部状况共同性查看;电源篡改维护;温度确定;内部时钟发生;没有封装或晶粒辨认;规划意图是防护多种进犯,如图1所示。
2 功用简介
加密认证芯片内部有三个区域: Configuration、Data和OTP。要害功用如下所示:
1)与芯片的通讯,都是依据“指令”来进行;
2)Configuration和Data区一旦确定,没有办法解锁,确定的办法是经过lock指令;
3)Configuration区在未确定的时分,能够运用write 指令来写操作,但0x00-0x03地址不能写,序列号和版别号出厂固定。0x15地址不能用write指令来写;
4)在Configuration确定前,Data和OTP区既不能写也不能读。而在Configuration确定后,Data区确定前,Data区只能写不能读,在Data区确定后,是否可读写由Configuration中的装备来决议。
5)装备区与秘钥存储区有严厉的对应联系,秘钥区的运用需求恪守装备区的装备参数,不匹配的话会导致指令履行失利。
3 装备运用
装备有两种办法:一是运用上位机装备软件,合作烧写器东西进行装备,如图2所示。
这种办法可视化,界面直观好了解。一起供给多种插件验证东西,运用快捷。但需求合作硬件的东西来完结。
另一种办法,运用MCU程序装备。长处是能够在电路板上操作,不需求额定的东西。相对繁琐的是,需求一个独自的装备程序在MCU上运转一下,完结装备功用后,才干再烧写用户的运用程序。以上两种办法各有利弊,需求权衡运用。不论选用哪种办法,对秘钥的维护是至关重要的,尤其是对称加密认证的办法,一旦走漏,防护功用就会形同虚设。
详细到产品运用时,能够一切产品都用同一个秘钥,这样秘钥办理简略,但危险相对较高。也能够每个产品都用不同的秘钥,仅仅秘钥办理相对费事。也能够奇妙的运用芯片自身的仅有序列号,合作根秘钥来派生不同的秘钥,将这个派生秘钥用于产品,这样既便利办理,又不至于使一切产品都用一个秘钥。如图3所示即为一种典型的运用派生秘钥做加密认证的运用。
4 软件完结
Microchip公司官方供给开源软件包,版别为Cryptoauthlib-20171117。该软件包支撑ATECC608A。下载时邮箱注册即可。
CryptoAuthLib分三个部分,它们是库的首要接口,分别为atcab、atcah和atcac。
1)atcab是ATCA设备的首要接口。这部分包含一切的初始化,芯片装备和设置。
2) atcah供给在ATCA设备上履行的指令,这些指令支撑高档调试和MCU的模仿。
3)atcac供给对在软件中完结的加密指令的拜访。
5 对称加密认证实例
对称身份验证是一个应战/呼应进程,主机设备应战长途设备,例如附件(如电池)或可耗费设备(墨盒),以保证真实可信。被应战的设备对预期的成果作出反应。该办法要求主机和长途设备同享相同的密钥。开发人员面对的问题是怎么安全地将这些隐秘嵌入到主机和长途设备中,解决方案是运用一个安全的硬件密钥存储设备,来包含主机和长途设备中的同享密钥和专一序列号。这个实验室咱们将运用ATECC508A来完结,如图4、图5和图6所示。
在本实验室中,将模仿一个包含以下内容的体系:
1)主机设备,包含一个微控制器和一个安全的硬件加密授权设备,ECC508A。
2)长途设备,只包含一个安全的硬件加密授权设备,在ECC508A(无微控制器)。
主机和长途设备的ECC508A都需求装备同享密钥,一切ECC508都包含一个专一的序列号。
装备同享密钥:
芯片在运用前需求进行装备,装备的内容包含,对装备区进行写操作,内容是设置秘钥槽的运用和拜访权限,之后对装备区进行确定。确定装备区后才干够写数据区,对数据区的操作便是写秘钥槽,这时数据区为只读,经过返回值判别写入是否成功。
注意事项:
第一步,MCU从主机端ATECC508读取序列号,由它出产一个随机数;
第二步,MCU切换到与从机ATECC508A通讯,读取序列号,再由从机ATECC508A运用自己的序列号,方才出产的随机数和保存在它里边的秘钥进行硬件哈希运算,运算成果发给主机MCU;
第三步,MCU从头切换回与主机ATECC508的通讯,把刚刚得到的哈希运算成果,随机数和序列号给它。由它再依据自己保存的秘钥和随机数、序列号一起来验证从机端核算完的成果是否和自己核算的共同,来终究断定是否验证经过。
6 定论
Atmel的加密认证芯片自身具有一系列的防护办法,在添加本钱不多的前提下,能够给客户带来极高的安全价值体会。在配件防伪和防抄板方面体现优异,使得产品拷贝变得难度更高,能够更好的维护产品,防止不必要的丢失。
本文来源于《电子产品世界》2018年第7期第79页,欢迎您写论文时引证,并注明出处。