这是描述信息

ESP32芯片模组乐鑫科技杭州代理处电话公司SoC支持外部HSM安全签名

ESP32芯片模组乐鑫科技杭州代理处电话公司SoC支持外部HSM安全签名

ESP32芯片模组乐鑫科技杭州代理处电话公司SoC支持外部HSM安全签名

ESP32芯片模组乐鑫科技杭州代理处电话公司SoC支持外部HSM安全签名

ESP32芯片模组乐鑫科技杭州代理处电话公司SoC支持外部HSM安全签名

ESP32芯片模组乐鑫科技杭州代理处电话公司SoC支持外部HSM安全签名

乐鑫ESP32系列芯片使用安全启动机制,以确保只有可信任的固件能够在flash中运行。然而,为了满足这一机制,需要小心管理签名密钥,也就是说签名密钥必须由可信的实体安全地生成和存储。


硬件安全模块是一种专门用于保护和管理密钥的加密设备,它还可以提供专业的加密服务,如明文加密、数字签名等。目前,许多云服务提供了基于云HSM的解决方案。


外部提供了一个符合PKCS#11标准的加密接口,可以用来对固件进行签名和其他操作。借助PKCS#11接口,还可以使用远程的HSM云服务。


Espsecure.py脚本(Esptool工程的一部分)与标准PKCS#11接口集成,以实现与各种外部HSM设备的兼容,并能对ESP32芯片模组乐鑫科技杭州代理处电话公司ESP32固件进行签名。


请留意,根据所示,为了使用HSM模式,你需要在Espsecure.py的配置中提供适用于供应商的特定PKCS#11库路径。


ESP32芯片模组乐鑫科技杭州代理处电话公司的SecureBootV2机制初始支持使用RSA-PSS 3072或ESDSA NISTP256算法生成已签名的应用程序。
使用YubiKey进行签名操作
我们将展示如何使用YubiKey5系列作为外部HSM进行签名。


安装
请点击这里查看YubiKey主机工具和PKCS#11库的详细配置。
请注意:下述配置是在Ubuntu22.10操作系统上完成的。

          # 安装 esptool 4.5 及 HSM 依赖项
          pip install esptool[hsm]==4.5.dev3
          # 安装工具和 PKCS#11 接口库
          sudo apt install yubico-piv-tool ykcs11
          # 在 9c(数字签名)域中生成 ECC P256 私钥
          yubico-piv-tool -a generate -s 9c -A ECCP256


HSM配置文件的设置
下面是ESP32芯片模组乐鑫科技杭州代理处电话公司需要提供给espsecure.py的HSM配置文件。

 $ cat hsm_cfg.ini
           # 基于 YubiKey 的外部 HSM 配置文件
           [hsm_config]
          # PKCS11 共享对象/库
          pkcs11_lib = /usr/lib/x86_64-linux-gnu/libykcs11.so
          # HSM 登录凭证(YubiKey 默认 PIN 码)
          credentials = 123456
          # 要使用的域(YubiKey 默认域)
          slot = 0
          # 用于存储私钥的对象的标签(默认)
          label = Private key for Digital Signature
          # 用于存储相应公钥的对象的标签(默认)
          label_pubkey = Public key for Digital Signature 
请注意,libykcs11.so 路径应替换为您系统里的安装路径。


生成签名
请执行以下指令,使用hsm_cfg.ini文件中的配置为固件进行签名操作。

 $ espsecure.py sign_data --version 2 --hsm --hsm-config hsm_cfg.ini --output signed.bin unsigned.bin 

          espsecure.py v4.5-dev
          Trying to establish a session with the HSM.
          Session creation successful with HSM slot 0.
          Trying to extract public key from the HSM.
          Got public key with label Public key for Digital Signature.
          Connection closed successfully
          Trying to establish a session with the HSM.
          Session creation successful with HSM slot 0.
          Got private key metadata with label Private key for Digital Signature.
          Signing payload using the HSM.
          Signature generation successful.
          Connection closed successfully
          Pre-calculated signatures found
          1 signing key(s) found.
          Signed 65536 bytes of data from unsigned.bin. Signature sector now has 1 signature blocks.


验证签名
出于完整性考虑,ESP32芯片模组乐鑫科技杭州代理处电话公司可以使用外部 HSM 提供的公钥来验证签名。

          $ espsecure.py verify_signature --version 2 --hsm --hsm-config hsm_cfg.ini signed.bin 

          espsecure.py v4.5-dev
          Trying to establish a session with the HSM.
          Session creation successful with HSM slot 0.
          Trying to extract public key from the HSM.
          Got public key with label Public key for Digital Signature.
          Connection closed successfully
          Signature block 0 is valid (ECDSA).
          Signature block 0 verification successful using the supplied key (ECDSA).


文档

更多关于使用 HSM 进行安全签名的说明可参阅 Esptool 文档。

请注意,此功能将在Esptoolv4.5 release版本中提供。目前,在Esptooldev版本中您可以使用pip install esptool[hsm]==4.5.dev3来进行先行试用。

地址:深圳市宝安区西乡街道麻布社区宝安互联网产业基地A区6栋7栋7706

邮箱:Sales@ferry-semi.com

版权所有©2020  深圳市飞睿科技有限公司  粤ICP备2020098907号    飞睿科技微波雷达wifi模块网站地图

 

免责声明:本网站部分图片和文字内容可能来源于网络,转载目的在于传递更多信息,并不代表本网站赞同其观点或证实其内容的真实性。如涉及作品内容、版权和其它问题,请在30日内与本网站联系,我们将在第一时间删除内容!本站拥有对此声明的最终解释权。