Microchip ATSHA204A:高安全性硬件认证设备的深度解析

电子说

1.4w人已加入

描述

Microchip ATSHA204A:高安全性硬件认证设备的深度解析

在当今数字化时代,数据安全至关重要。Microchip的ATSHA204A作为CryptoAuthentication™家族的一员,是一款高安全性硬件认证设备,为众多应用场景提供了强大的安全保障。本文将深入剖析ATSHA204A的特点、应用、组织架构、安全特性、I/O接口、电气特性以及安全命令等方面,帮助电子工程师更好地了解和应用这款设备。

文件下载:ATSHA204A-MAHCZ-S.pdf

1. 产品特性

1.1 硬件级密钥存储与加密

ATSHA204A具备受保护的基于硬件的密钥存储功能,采用先进的加密技术,确保密钥的安全性。其拥有256位的密钥长度,最多可存储16个密钥,为数据安全提供了坚实的基础。

1.2 安全的对称认证机制

支持主机和客户端操作的安全对称认证,采用卓越的SHA - 256哈希算法,结合消息认证码(MAC)和基于哈希的消息认证码(HMAC)选项,有效防止数据被篡改和伪造。

1.3 唯一序列号与随机数生成

每台ATSHA204A都配有保证唯一的72位序列号,可用于身份验证和防克隆。同时,内部高质量的随机数生成器(RNG)能够生成32字节的随机数,为加密操作提供了可靠的随机源,有效防止重放攻击。

1.4 大容量EEPROM与OTP

拥有4.5kb的EEPROM用于存储密钥和数据,其中包括512位的一次性可编程(OTP)位,可用于存储固定信息,如序列号、校准数据等。

1.5 多种I/O接口

支持UART兼容的高速单总线接口和1MHz的I2C接口,可根据不同的应用场景选择合适的通信方式。工作电压范围为2.0V至5.5V,通信电压范围为1.8V至5.5V,睡眠电流小于150nA,具有低功耗的特点。

1.6 安全下载与启动

提供生态系统控制、消息安全和防克隆等功能,确保设备在启动和运行过程中的安全性。

1.7 多种封装形式

提供8引脚SOIC、8引脚TSSOP、3引脚SOT23、8焊盘UDFN和3引脚CONTACT等多种封装形式,满足不同应用的需求。

2. 应用场景

2.1 防伪认证

可用于验证可移动、可替换或消耗性客户端的真实性,如打印机墨盒、电子子卡、医疗一次性用品或备件等。还可用于验证软件/固件模块或内存存储元件。

2.2 固件和媒体保护

在启动时验证存储在闪存中的代码,防止未经授权的修改(即安全启动),对下载的媒体文件进行加密,并对代码映像进行唯一加密,确保其只能在单个系统上使用。

2.3 会话密钥交换

安全、轻松地交换流加密密钥,供系统微处理器中的加密/解密引擎使用,以管理机密通信通道、加密下载等。

2.4 数据安全存储

存储标准微处理器中加密加速器使用的秘密密钥,还可用于存储配置、校准、电子钱包值、消费数据等少量数据,支持可编程保护,包括加密/认证的读写操作。

2.5 用户密码验证

验证用户输入的密码,同时不泄露预期值,将简单密码映射到复杂密码,并与远程系统安全交换密码值。

3. 设备组织架构

3.1 EEPROM组织

EEPROM总容量为664字节(5312位),分为数据区、配置区和OTP区。

  • 数据区:512字节(4kb),分为16个通用的只读或读写内存槽,每个槽32字节(256位),可用于存储密钥、校准数据等。访问策略由配置区的相应值决定,锁定配置区后,可使用Write命令写入数据。
  • 配置区:88字节(704位),包含序列号和其他ID信息,以及数据区每个槽的访问权限信息。配置区可在锁定前修改,锁定后不可写。
  • OTP区:64字节(512位),可用于只读存储。在锁定配置区和OTP区之前,可使用Write命令写入数据,锁定后根据OTP模式控制访问权限。

3.2 静态RAM(SRAM)

SRAM用于存储输入命令、输出结果、中间计算值和临时密钥(TempKey)。当设备进入睡眠模式或断电时,SRAM内容无效。TempKey可作为MAC、HMAC、CheckMac、GenDig和DeriveKey命令的输入,也可作为Read和Write命令的数据保护密钥。

4. 安全特性

4.1 物理安全

ATSHA204A采用了多种物理安全措施,如有源屏蔽、内部内存加密、安全测试模式、毛刺保护、电压和温度篡改检测等,防止EEPROM内容被未经授权的访问。

4.2 随机数生成器(RNG)

内部的RNG可生成高质量的随机数,与输入的随机数结合形成随机数(nonce),存储在TempKey中,用于后续的加密命令。在锁定配置区之前,RNG返回固定的32字节值,方便系统测试。

5. 通用I/O信息

5.1 通信协议

支持单总线接口和I2C接口两种通信协议。单总线接口只需一个GPIO连接,位速率可达25.6kb/s,兼容标准UART信号;I2C接口支持最高1Mb/s的位速率,与Microchip AT24C16串行EEPROM接口兼容。

5.2 字节和位顺序

在单总线接口上,数据以LSb(最低有效位)先传输;在I2C接口上,数据以MSb(最高有效位)先传输。

6. 单总线接口

6.1 I/O令牌

单总线接口使用多种I/O令牌进行通信,包括唤醒(Wake)、逻辑0(Zero)、逻辑1(One)等输入令牌,以及ZeroOut和OneOut等输出令牌。唤醒令牌用于唤醒设备,逻辑0和逻辑1令牌用于传输数据。

6.2 I/O标志

系统在进行I/O事务之前,需发送8位标志给设备,指示后续的I/O操作,如睡眠(Sleep)、空闲(Idle)、命令(Command)、传输(Transmit)等。

6.3 同步与共享

为防止系统和设备失去同步,设备实现了超时机制,在一定条件下强制进入睡眠状态。多个CryptoAuthentication设备可共享单总线接口,通过唤醒令牌和暂停命令(Pause)实现设备的选择和管理。

6.4 接线配置

单总线接口可采用3线或2线配置。3线配置使用SDA、VCC和GND;2线配置中,SDA和GND连接,设备可从SDA引脚窃取电源并存储在旁路电容上。

7. I2C接口

7.1 I/O条件

当设备处于睡眠状态时,仅响应唤醒条件;当设备处于唤醒状态时,遵循数据0、数据1、起始条件、停止条件、确认(ACK)和非确认(NACK)等I/O条件。

7.2 数据传输

I2C传输包括起始条件、设备地址字节、字地址字节、可选数据字节和停止条件。系统发送命令后,可通过轮询或单延迟方式等待命令完成。

7.3 地址计数器

I2C接口的读写操作将设备的I/O缓冲区视为FIFO,地址计数器控制数据的读写位置。可通过发送特定的字地址(如0x00)重置地址计数器。

7.4 同步与事务示例

当系统与设备失去同步时,可通过发送标准的I2C软件重置序列、唤醒令牌等方式重新同步。文档中提供了I2C接口的事务示例,帮助工程师理解和实现通信。

8. 电气特性

8.1 绝对最大额定值

包括工作温度范围(-40°C至+85°C)、存储温度范围(-65°C至+150°C)、最大工作电压(6.0V)、直流输出电流(5.0mA)等。

8.2 可靠性

采用Microchip CMOS EEPROM制造技术,具有高可靠性。EEPROM的写入耐久性为100,000次,数据保留时间在不同温度下有所不同。

8.3 AC参数

包括唤醒低持续时间、唤醒高延迟、高低侧毛刺滤波等参数,确保通信的稳定性。

8.4 DC参数

涵盖环境工作温度、电源电压、有源电源电流、空闲电源电流、睡眠电流、输出低电压和电流等参数。输入电压阈值根据设备状态和TTLenable位的设置而变化。

9. 安全命令

9.1 I/O块与状态/错误代码

命令和响应以块的形式传输,块包括计数、数据和校验和。设备没有专用的状态寄存器,输出FIFO共享状态、错误和命令结果。常见的状态/错误代码包括成功执行(0x00)、Checkmac不匹配(0x01)、解析错误(0x03)、执行错误(0x0F)等。

9.2 睡眠、空闲和看门狗机制

系统使用完设备后,可发送睡眠序列将设备置于低功耗模式;在看门狗间隔内,可发送空闲序列防止设备自动进入睡眠状态。看门狗计数器在设备接收到唤醒令牌后启动,超时后设备进入睡眠模式。

9.3 命令序列

命令包包括命令标志、计数、操作码、参数和校验和。不同命令的执行时间因命令类型和参数而异,文档中提供了详细的命令操作码、简短描述和执行时间列表。

9.4 具体命令介绍

  • CheckMac命令:计算并比较MAC响应,返回布尔结果。可根据模式参数选择密钥和挑战/随机数的来源,满足特定条件时可将目标槽值复制到TempKey。
  • DeriveKey命令:将当前密钥值与TempKey中的随机数结合,生成新的密钥并存储在目标槽中。执行前需运行Nonce命令生成有效随机数,根据配置位的不同,可实现密钥滚动或创建新密钥的功能。
  • DevRev命令:返回设备的修订号。
  • GenDig命令:使用SHA - 256算法将存储的值与TempKey内容结合,生成数据保护摘要,存储在TempKey中,可用于后续的加密命令。
  • HMAC命令:计算HMAC/SHA - 256摘要,结合设备中的密钥、挑战和其他信息。
  • Lock命令:锁定指定区域,防止进一步修改。锁定前会计算指定区域的CRC摘要,与输入摘要匹配才能成功锁定。
  • MAC命令:计算SHA - 256摘要,与HMAC命令类似,但计算复杂度较低。
  • Nonce命令:生成随机数并存储在TempKey中,可选择将输入值与内部生成的随机数结合,或直接将输入值传递给TempKey。
  • Pause命令:选择性地将共享总线上的设备置于空闲状态,防止总线冲突。
  • Random命令:生成随机数供系统使用。
  • Read命令:从设备的内存区域读取数据,可选择加密读取。读取前需根据SlotConfig的设置运行GenDig命令生成加密密钥。
  • SHA命令:计算SHA - 256摘要,可用于通用目的。
  • UpdateExtra命令:更新配置区的两个额外字节,可用于快速递减有限使用计数器。
  • Write命令:向设备的EEPROM区域写入数据,根据WriteConfig的设置,数据可能需要加密。写入前需确保TempKey有效,并根据槽号和配置位的要求设置TempKey的参数。

10. 兼容性与机械信息

10.1 兼容性

ATSHA204A与ATSHA204在所有主机、客户端和个性化操作方面完全兼容,并在一些方面进行了改进,如降低有源功耗、支持两线连接模式、增加SHA命令、加强写操作的安全性等。

10.2 机械信息

提供多种封装形式的引脚排列和封装尺寸信息,包括8焊盘UDFN、8引脚SOIC、8引脚TSSOP、3引脚SOT23和3引脚CONTACT等。同时,文档中还提供了各封装形式的详细图纸和推荐的焊盘尺寸。

11. 参考与应用笔记

11.1 SHA - 256和HMAC/SHA - 256算法

ATSHA204A使用SHA - 256和HMAC/SHA - 256算法进行加密计算,文档中提供了相关算法的参考链接和详细的消息处理说明。

11.2 密钥管理

包括多样化密钥、滚动密钥、创建密钥、有限使用密钥等功能。多样化密钥可结合设备的序列号提高安全性;滚动密钥可防止密钥的重复使用;创建密钥可根据父密钥生成唯一的临时密钥;有限使用密钥可限制密钥的使用次数。

11.3 密码验证

ATSHA204A可安全存储预期密码,通过CheckMac命令进行密码验证,并提供多种密码验证选项,如返回布尔结果、生成保护密钥、释放高熵秘密等。

11.4 传输密钥

设备内部的硬件密钥阵列(传输密钥)可用于安全个性化,通过GenDig命令使用。SlotID值大于等于0x8000时,引用传输密钥;小于0x8000时,引用EEPROM数据区的密钥。

总结

Microchip的ATSHA204A是一款功能强大、安全性高的硬件认证设备,适用于多种应用场景。其丰富的特性、灵活的命令集和多种封装形式为电子工程师提供了广阔的设计空间。通过深入了解ATSHA204A的各个方面,工程师可以更好地利用该设备,为系统提供可靠的安全保障。在实际应用中,工程师需要根据具体需求选择合适的通信接口、配置设备参数,并合理使用安全命令,以确保设备的安全性和稳定性。同时,还需关注设备的兼容性和机械信息,选择合适的封装形式进行设计。希望本文能为电子工程师在使用ATSHA204A时提供有益的参考。你在实际应用中是否遇到过类似设备的使用问题呢?欢迎在评论区分享你的经验和见解。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分