有关 Azure IotHub 中 X509 证书身份验证的问题

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

我一直在使用设备配置服务来使用由 CA 机构签名的设备/叶证书来配置设备。 DPS(设备配置服务)服务在指定的 Iothub 中注册设备。

我注意到该设备的 IotHub 中的指纹与提供给 DPS(设备证书)的证书中的指纹不同。我想检查一下是否有人知道 DPS 是如何创建这些指纹的?

看起来如果设备使用同一 CA 签名的另一个/不同证书来连接到 Iothub,他们可以毫无问题地做到这一点。是否有一个设置可以检查个人指纹,或者身份验证是否仅基于拥有与 DPS 中相同的 CA 签署的证书?

非常感谢您的帮助。

azure x509certificate azure-iot-hub
2个回答
0
投票

指纹,也称为指纹或哈希,是从证书内容派生的唯一值。它通常用于识别证书并验证其完整性。指纹通常使用加密哈希函数生成。

  • DPS 可能会提取和存储与设备证书中存在的指纹格式不同的指纹。这可能是由于哈希算法或用于计算指纹的特定字段的变化造成的。
  • 您可以通过使用设备证书上相同的哈希算法和字段来生成指纹并将其与 IoT 中心中显示的指纹进行比较来验证这一点。
  • 是的,设备可以使用由同一 CA 签名的不同证书连接到 IoT 中心/DPS,但该证书是在同一 IoT 中心/DPS 上注册的,并且设备拥有该证书的私钥。
  • DOC
  • 配置 X.509 证书模拟设备的步骤
  • 将 IOT 中心添加到链接的 IoT 中心 enter image description here
  • 创建设备注册enter image description here

代码取自git

enter image description here


0
投票

当您将 CA 签名证书与 DPS 结合使用时,DPS 将使用自签名身份验证将您的设备添加到 IoT 中心。但是,它使用 SHA256 指纹,而不是您可能习惯的 SHA1。 您可以使用以下命令通过 OpenSSL 查看 SHA256 指纹:

openssl x509 -noout -text -in <yourcert.pem> -fingerprint -sha256

IoT 中心将尝试 SHA1 指纹和 SHA256 指纹,因此它可以工作。

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