是否有人尝试在边缘设备中使用设备CA的TPM密钥和身份证书?目前,设备CA和身份密钥是在PEM文件中生成的,并将config.yaml中的路径设置为URI链接。
我已经生成了TPM密钥,并生成了具有根CA的设备CA和身份证书。如何通过引用句柄示例0x8100002来使用TPM密钥而不是PEM密钥文件?
目标是使用TPM保护边缘设备用于上游(设备标识(和下游(设备CA(操作的证书。目前,上述两个密钥都使用PEM密钥文件,这是不安全的。
操作示例:
步骤1:用户使用tpm2工具为设备CA创建TPM密钥,并在SRK主密钥下使用潜隐句柄创建身份密钥
示例:0x81020000处的设备标识和0x8100002 处的设备CA
echo ">>>>>>>> Create SRK primary"
tpm2_createprimary -C o -g sha256 -G ecc -c SRK_primary.ctx
tpm2_evictcontrol -C o -c SRK_primary.ctx 0x81000001
echo "create persistent IDevID Key"
tpm2_create -C 0x81000001 -g sha256 -G ecc -r ID_Priv.key -u ID_Pub.key
tpm2_load -C 0x81000001 -u ID_Pub.key -r ID_Priv.key -n ID_key_name_structure.data -c ID_keycontext.ctx
tpm2_evictcontrol -C o -c ID_keycontext.ctx 0x81020000
echo "create persistent devCA Key"
tpm2_create -C 0x81000001 -g sha256 -G rsa -r DevCA_Priv.key -u DevCA_Pub.key
tpm2_load -C 0x81000001 -u DevCA_Pub.key -r DevCA_Priv.key -n DevCA_key_name_structure.data -c DevCA_keycontext.ctx
tpm2_evictcontrol -C o -c DevCA_keycontext.ctx 0x81000002
步骤2:使用上述密钥句柄创建CSR和证书
openssl req -new -engine tpm2tss -key 0x81020000 -passin pass:"" -keyform engine -subj /CN=DeviceIdentity -out dev_iden.csr
步骤3:需要在安全守护进程中进行修改才能使其工作
修改config.yaml以对设备ca和idendtity的密钥使用上述句柄,并将certs指定为URI路径
好问题!
IoT Edge运行时需要访问TPM以自动配置您的设备。请在此处查看如何操作:https://learn.microsoft.com/en-us/azure/iot-edge/how-to-auto-provision-simulated-device-linux#give-iot边缘访问tpm
认证过程的工作方式如下:
当带有TPM的设备首次连接到设备设置服务时,该服务首先将提供的EK_pub与存储在注册列表中的EK_pub进行检查。如果EK_pubs不匹配,则不允许设置设备。如果EK_pubs匹配,则服务要求设备通过随机数质询来证明EK的私有部分的所有权,该随机数质询是用于证明身份的安全质询。设备配置服务生成一个nonce,然后用SRK和EK_pub对其进行加密,这两个密钥都是由设备在初始注册调用期间提供的。TPM始终保持EK的私有部分的安全。这可以防止伪造,并确保SAS令牌被安全地提供给授权设备
参考:https://learn.microsoft.com/en-us/azure/iot-dps/concepts-tpm-attestation
不过,我相信你的情况有所不同(你想将你的CA证书添加到TPM中,然后从那里检索它?(。我看到了你的反馈请求,在这里分享给其他人投票:
- 使用TPM密钥进行设备CA和身份验证-https://feedback.azure.com/forums/907045-azure-iot-edge/suggestions/40920013-using-tpm-keys-for-device-ca-and-identity
如果您的想法与IoT边缘反馈论坛中已经添加的想法相同,请合并并投票:
- 在HSM上安全地存储基于X.509的DPS的私钥-https://feedback.azure.com/forums/907045-azure-iot-edge/suggestions/39457678-store-private-key-for-x-509-based-dps-securely-on