以下情况:我们的网关有一个 TPM,我们将为它提供每个设备的证书(由我们的 PKI 颁发)。IoT 中心身份验证如何工作?据我所知,需要向 IoT Hub 注册主证书和辅助证书的指纹,这没问题。稍后我们想使用主证书通过 IoT 中心对设备进行身份验证。根据这个项目的源代码,一个应该提供证书的私钥
var authWithPrimaryPfx = new DeviceAuthenticationWithX509Certificate(device.Id, primaryCertSecret);
这是我想避免的。我不希望私钥在内存 (RAM) 中。是否可以散列/加密并将结果用于身份验证?它将如何运作?
我们将使用 Windows 10 IoT Enterprise 或 Linux(不是 Windows 10 IoT Core)
编辑:这里https://github.com/ms-iot/security/blob/master/Limpet/Limpet.NET/Limpet.cs是用于根据设备的主要创建 SAS 令牌签名的方法 (SignHmac)直接键入 TPM (2.0)。我需要与证书类似的东西。