本应用笔记详细介绍了如何将DS28S60加密处理器与ChipDNA™配合使用。它描述了DS28S60所需的设置。然后,它描述了使用非对称密钥交换在主机和客户端之间安全地生成共享对称密钥的分步方法。接下来,它将介绍如何使用对称密钥在主机和客户端之间交换加密数据。最后,本文介绍了DS28S60使用ECDSA进行双向认证过程的示例。
术语定义
让我们看一下本应用笔记中使用的术语:
设备或客户端——包含DS28S60的设备。它需要与主机通信。例如,传感器节点。
主机或远程对等体 - 需要与设备通信的实体。例如,应用程序服务器。
颁发机构 - 使用颁发机构密钥对创建证书的受信任方,设备和远程对等方可以使用该证书作为系统的一部分相互验证。
图 1 和图 2 显示了设备、客户端和机构如何在系统中的高级级别相互交互。
图1.加密通道系统概述。
图2.相互身份验证系统概述。
基本命令和设备出厂设置
在现场使用DS28S60之前,请先设置器件,以满足安全需求。这涉及安装和/或生成设备密钥对、机密和证书。这是在工厂等安全位置完成的。
图3.生成设备证书的颁发机构。
DS28S60 设置步骤:
生成并安装设备公钥对:
首先,使用生成 ECC-256 密钥对命令为设备生成 ECDSA 密钥对并将其安装到密钥对 A 内存块。注意,与其让DS28S60生成自己的密钥对,不如使用写存储器命令将其他地方创建的密钥对写入DS28S60。
接下来,使用 set 块保护命令对密钥对块 A 进行写保护,以便无法修改此密钥对。
让授权机构为公钥创建证书:
安装器件密钥对后,将公钥连同DS28S60的ROM ID和MAN ID发送给机构,以便颁发机构为密钥对生成证书(图3)。请注意,ROM ID和MAN ID是在Maxim制造过程中编程到器件中的数据元素。
将证书写入DS28S60:
收到生成的证书后,将证书写入用户内存页。
将颁发机构公钥和特性数据写入DS28S60:
将颁发机构公钥写入颁发机构密钥 A 块。请参考DS28S60用户指南,了解器件存储器图和更多信息。写入密钥后,对颁发机构密钥 A 块进行写保护以防止其被修改。
接下来,将任何特性数据写入DS28S60。特征数据可以是应用所需的任何数据,例如测试信息、序列号、设备调整信息、制造日期等。根据需要使用尽可能多的页面。
对已安装的密钥、机密和证书设置适当的保护:
写入功能数据后,对设备证书和功能数据进行写保护 (WP)。如果要素数据需要不同的保护,请将它们放在不同的内存块中。使用设置块保护命令设置 WP 保护。
锁定未使用的密钥对块和机密块。
最后,将随机生成的数据写入每个未使用的密钥和密钥页,并对它们进行写保护以防止它们被使用。
使用非对称密钥交换的加密通信
主机和设备各自生成一个 ECDSA 密钥对,称为临时密钥对,用于设置加密通道。必须为每个通信会话生成新的临时密钥对。生成密钥后,主机和设备使用 ECDHE 密钥交换安全地计算共享密钥,以便在后续 AES-GCM 会话中进行加密和解密。
加密通道创建步骤
图4.主机和设备使用 ECDHE 算法计算共享密钥。
主机生成其临时密钥对。
设备生成其临时密钥对:
设备使用生成 ECC-256 密钥对命令生成临时密钥对。
指定临时密钥 0 作为存储位置。注意:如果DS28S60断电,临时密钥存储页将丢失密钥对。
主机请求并接收设备的临时公钥。
设备请求并接收主机的临时公钥。
主机使用 ECDHE 计算共享密钥(图 4)。
设备使用 ECDHE 计算共享密钥(图 4)。
向DS28S60发出密钥交换命令以计算共享密钥。
主机和设备现在可以使用 AES-GCM 发送加密数据并解密接收到的数据(图 5)。
双向身份验证
双向身份验证有两个阶段。主机和设备使用颁发机构创建的证书和颁发机构的公钥,在第一阶段验证彼此的公钥是否是系统的一部分(图 6)。验证公钥后,主机和设备将在第二阶段验证它们是否各自拥有与已验证的公钥相对应的私钥。这是通过交换使用其各自的私钥生成的签名并使用经过验证的公钥来验证签名来实现的。图 7 和图 8 显示了私钥验证过程。
第 1 阶段。公钥验证
图6.使用证书进行公钥验证的高级图。
主机请求并接收设备的公钥:
当主机请求器件的公钥时,器件使用读存储器命令从DS28S60读取公钥两次,读取公钥A x和y元件,然后将公钥发送给主机。
主机请求并接收设备的证书和证书消息数据:
当器件收到对其证书的请求时,它使用读存储器命令从DS28S60的用户页面读取其证书,然后将其传输到主机。
设备请求并接收主机的公钥:
当设备请求并接收主机的公钥时,它会使用写入内存命令将其写入公钥 SA 块。
设备请求并接收主机的证书和证书消息数据。
主机通过将证书、证书消息数据的 SHA-256 哈希和颁发机构公钥传递给 ECDSA 验证算法来验证设备的证书。
设备通过将证书、证书消息数据的 SHA-256 哈希和颁发机构公钥传递给 ECDSA 验证算法来验证主机的证书。
设备使用身份验证 ECDSA 证书命令指定密钥的PUBKEY_SA,设置 ECDH = 0 和 WPE = 0,并将证书与证书数据一起传递以验证主机的证书。有关该命令的详细信息,请参阅用户指南。
第 2 阶段。私钥验证
图7.私钥验证步骤一:生成签名。
主持人生成 32 字节质询,并请求设备使用质询和一些页面数据生成签名。
设备使用用于生成签名的签名和数据进行响应:
设备收到质询后,将使用计算和读取页面命令通过特征数据页面生成签名。一旦生成签名,器件将签名与用于生成签名的消息数据一起发送,即DS28S60的Rom ID、特征数据、特征数据页码和Man ID,命令字节(0xA5)。
设备生成 32 字节质询,并请求主机使用质询和一些数据生成签名:
器件使用DS28S60上的读取RNG命令产生32字节质询。生成质询后,设备会将质询发送给主机,请求主机生成证书。
主机使用用于生成签名的签名和数据进行响应:
主持人使用以下格式使用质询和一些数据生成签名:质询||数据。主持人将质询以及用于生成签名的数据发送到设备。
图8.私钥验证第二步:主机和设备验证彼此的签名。
主机使用 ECDSA 验证算法验证设备的签名,方法是向设备提供设备的公钥、带有质询和签名的数据的 SHA-256 哈希。
设备使用 ECDSA 验证算法验证主机的签名,方法是向主机提供主机的公钥、带有质询和签名的数据的 SHA-256 哈希:
一旦设备收到签名和数据,它将数据附加到发送到主机的质询中,使用DS28S60验证签名命令指定公钥SA,并将消息用作ECDSA输入参数。
推荐的内场流量
现在,构建块已经介绍完毕,让我们讨论如何将它们组合在一起。设置步骤在安全的受信任位置(如工厂)中完成。设置完成后,设备在现场,主机已启动并运行,设备和主机首先使用上述步骤建立加密通道。建立加密通道后,设备和主机将相互进行身份验证,以确保它们是同一系统的一部分。一旦他们成功地相互验证,他们就开始相互通信。
总结
本应用笔记介绍了DS28S60作为需要相互认证和安全加密通信通道的系统的一部分设置和使用所需的命令和步骤。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !