电子说
作者: Bill Hawkins、 Zhang Feng、 Xavier Bignalet(Microchip Technology Inc.)
简介
在许多熟悉的系统中,通常需要对消耗品组件进行身份验证。例如,打印机墨盒、车辆中的电池、化妆品盒和送药设备中的药物等。本文档探讨了在现有设计中包含Microchip的CryptoAuthentication™系列ATSHA204A安全元件以实现对消耗品进行安全身份验证的优势。请参见图1。
图1:安全身份验证的雾化器框图
在本示例中,我们将从Microchip的AN2265“Vibrating Mesh Nebulizer Reference Design”(DS00002265) 开始,其中介绍了振动式网孔雾化器及其如何使用Microchip独立于内核的外设实现。本文档介绍了如何更新雾化器参考设计以包含可拆卸振动网和药盒的安全身份验证来增强设计。
雾化器参考设计具有用于固定振动网(将随时间逐渐磨损)和供应药物(一种耗材供应)的可拆卸药盒。这种储存药物的可拆卸药盒会极大地影响设备的性能。
出于以下几个原因,制造商可能希望保护这些药盒应用不受第三方供应商的影响:
客户对设备的质量和功能的印象在很大程度上受药盒内物质的影响。当更换的第三方药盒不满足制造商的标准,并且提供的性能低于客户的预期时,制造商而不是第三方药盒厂商会接收到投诉。
尤其是在医疗行业中,允许不受控地访问设备可能会导致制造商因用药剂量错误、药物受到污染甚至是消耗品药盒中的药物出错而承担责任。
另一个原因是为了保护收入来源。典型的业务模式包括消耗品销售将提供支撑公司主要收入来源的预期。如果第三方可以在同一个市场上销售,那么制造商的收入会降低,而这部分收入本应补偿基本单元和研发(Research and development,R D)的成本。
本文档介绍了对雾化器进行的安全增强,包括对可拆卸 药盒进行身份验证和跟踪其使用情况,并且可能限制药 盒的使用以避免出现硬件磨损、未授权重填和重用旧药 盒等问题。
引入ATSHA204A
雾化器的药盒中使用ATSHA204A芯片向基本单元对药盒进行身份验证。ATSHA204A具有用于使能身份验证的多种功能,例如SHA-256哈希算法、安全EEPROM、惟一序列号、高质量随机数发生器和I 2C接口或单线接口。
SHA-256加密引擎
ATSHA204A在硬件中集成了SHA-256哈希算法。该哈希函数使用输入流(质询)并产生256位(32字节)输出(响应)。哈希函数的两个主要特性如下:
• 无法从哈希输出重新生成输入流。
• 无法改变输入流并获得相同的哈希输出。
ATSHA204A将使用主机单片机提供的质询字符串生成哈希密钥。单片机还可以使用该质询字符串和密钥来执行哈希函数。如果哈希输出与主机单片机预期的输出一致,则证明ATSHA204A器件知道相同的密钥。
安全EEPROM/密钥存储
ATSHA204A具有512字节的EEPROM,按十六个32字节槽排列。其中任何一个槽都可以配置为要在哈希函数中使用的密钥值。当配置ATSHA204A时,槽中的值可以受到写保护、读保护、用其他槽作为密钥进行加密或者保留为可读/可写的EEPROM存储单元。提供物理防篡改和边信道保护,以防止有人解密和探测器件芯片来读取存储器。
惟一序列号
保证每个ATSHA204A都有惟一的72位(9字节)序列号,从而允许制造商通过连接的ATSHA204A惟一识别任何器件。
高质量随机数发生器
ATSHA204A具有基于噪声源的高质量随机数发生器。这可以用来生成将只使用一次的惟一质询,并防止攻击设备记录质询和响应以在主机上回放来冒充有效器件。
I2C/单线接口
ATSHA204A提供I2C接口或单线接口,允许药盒在接口中具有最少的触点。经过身份验证的雾化器使用单线接口,这种接口采用具有三个大型焊盘的芯片封装。ATSHA204A芯片采用可粘到药盒上的设计,主机只提供滑动触点来连接到药盒(就像电池连接器一样),这样药盒就无需电路板或配对连接器。
如何使用ATSHA204A进行身份验证?
安全雾化器演示是单芯片系统设计。PIC16F1718运行整个操作,包括使用ATSHA204A进行身份验证所需的质询/响应。请参见图2
图2:ATSHA204A身份验证框图
PIC16具有16个存储在存储器中的质询/响应对。每次使用器件时,都会对药盒进行身份验证。当用户按下按钮来启动雾化器时,PIC16主机会向药盒上的ATSHA204A发送32字节质询。然后,ATSHA204A使用密钥对质询进行哈希运算,并将值返回到PIC16。返回的值与预期的响应进行比较,如果匹配,则允许雾化器运行。如果不匹配,雾化器的红色LED指示灯会点亮几秒钟,然后再熄灭。雾化器通过使用自由运行定时器中的低4位从16个质询中进行选择,但具体数量无法预测。
由于PIC16存储有限数量的质询/响应对,这就意味着克隆器件只需处理几个用例即可破坏该系统的安全性。为了防止出现这种情况,可以为每个PIC16主机编程惟一的质询/响应对,这样一来,通过这种方式创建的克隆器件便无法在任何其他器件上工作。
身份验证方法可保护配件/一次性用品,但无法防止克隆主机(在新系统中复制质询/响应对)。要实现更高级别的安全性,需要在主机MCU旁边添加独立安全元件(ATSHA204A)。请参见图3。该主机ATSHA204A会为药盒ATSHA204A产生随机质询,并提供响应以与来自药盒ATSHA204A的响应进行比较。此外,密钥派生实现将进一步提高解决方案的稳健性。
图3:对称身份验证
作为ATSHA204A的替代产品,ATSHA206A是外形受限应用的理想解决方案,在此类应用中,由于药盒尺寸受限而无法容纳任何PCB,因此只能采用2引脚封装。2引脚ATSHA206A或3引脚ATSHA204A可以塑封到一次性药盒中。ATSHA206A的内部添加了集成电容,可在电源引脚上提供寄生电源能力。本质上,数据和电源共用同一个引脚。
限制药盒的使用
经过身份验证的雾化器保存每个药盒的使用计数。此数据可用于限制药盒的使用。有多种机制可实现此功能。ATSHA204A器件包含EEPROM和SRAM两个存储器块。EEPROM分为三个区域:数据区域、配置区域和 一次性编程(One-Time-Programmable,OTP)区域。
数据区域分为16个通用存储器槽。EEPROM数据区域中的任何槽都可用于存储密钥。
配置区域中有128位分配为LastKeyUse,可用于限制存储在Slot 15中的密钥编号15的使用。每次使用Slot15作为密钥时,这128位都会清零。没有复位机制。在 使用128次之后,将永久禁止Slot/Key 15。因此,每个药盒的使用计数可以限制为128次或更少。
此外,还有512位的OTP存储器可用于存储只读数据或单向熔丝型消耗记录信息。在消耗模式下配置时,这些位可以写入0,但不能写回1。因此,在OTP存储器为全零之前,可以将0移入OTP存储器512次。在OTP存 储器为全零之后,可以禁止使用药盒。
如果药盒的使用次数小于这些值(Slot 15为128次, OTP为512次),则可以将其中一些位预编程为零,以便根据需要提供所需的次数。
关于安全增强功能的深入探讨
存储在主机MCU、ATSHA204A或公司计算机系统中的机密信息密钥必须受到绝对保护。如果密钥泄露,则安全功能将不再起作用,产品也很容易遭到克隆。
Microchip的一些32位单片机具有稳健的安全性,能够提供可信执行环境(Trusted Execution Environment,TEE)、加密加速器、安全引导和安全自举程序等。例如,图4显示了一个SAM L11作为配件身份验证应用中 (其中SAM L11增加了稳健性)的主机MCU正在托管TEE,即从MCU到安全元件的CryptoAuthlib API调用。TEE将Cryptoauthlib API回调会离开的关键代码与系统的其余部分隔离,并避免固件更改。
图4:一次性药盒身份验证
存储在ATSHA204A中的一次性药盒的密钥不会遭到窥探。ATSHA204A只是Microchip提供的其中一种安全芯片。Microchip还提供其他使用公钥加密(用于网络身份验证)的芯片来防止单一密钥泄露。每个芯片都有自己的密钥,其真实性由证书确定,该证书提供了器件到根证书颁发机构的可追溯性。这些芯片的说明超出了本文档的范围,可通过Microchip网站上的安全设计中心查看更多信息,网址如下:https://www.microchip.com/design-centers/security-ics
来源:Microchip 工程师社区
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !