Azure 物联网中心 - TLS 连接和 x.509 身份验证

问题描述 投票:0回答:1

我是 Azure 物联网中心概念的新手,
我正在尝试将我的 IOT 设备与 Azure IOT 集线器连接,默认情况下,我们在 Azure IOT 集线器中支持 TLS,这意味着与设备的所有通信都将受到 TLS 的保护。 为了对设备进行身份验证,azure 建议使用 x.509 证书,除了身份验证之外,该证书带来的额外安全性是什么? ,既然通信已经是安全的,为什么我们不能简单地使用对称密钥,如果我的物联网设备几乎不可压缩?。在设备中保存私钥将与保存对称密钥相同是吗?

azure ssl azure-iot-hub azure-iot-edge
1个回答
0
投票

TLS 有助于为设备和 IoT 中心之间传输的数据提供加密和完整性保护,不向设备提供任何身份验证。

X.509 certificates
提供了一种方法来验证设备并确保它被授权连接到 IoT 中心。

Symmetric keys authentication
不如使用
X.509 certificates
安全,因为加密和解密使用相同的密钥。

X.509 certificates
使用公钥加密来提供更安全的身份验证方法。设备有一个用于签署消息的私钥,而 IoT 中心有一个用于验证签名的公钥。这确保只有授权的设备才能连接到 IoT 中心,并且从设备发送的数据没有被篡改。

使用自签名证书

New-SelfSignedCertificate -DnsName "example.com" -CertStoreLocation "Cert:\CurrentUser\My"

enter image description here

enter image description here

向物联网设备发送消息的代码

var cert = new X509Certificate2("C:\\Tools\\cert\\MyCert.cer");
var auth = new DeviceAuthenticationWithX509Certificate("mydevice", cert);

var DClnt = DeviceClient.Create("HostName", auth);

var msg = new Message(Encoding.ASCII.GetBytes("Test message"));
await DClnt.SendEventAsync(msg);

enter image description here

有关更多信息,请参阅 MSDoc.

© www.soinside.com 2019 - 2024. All rights reserved.