【问题标题】:Client to Client communication using X509使用 X509 的客户端到客户端通信
【发布时间】:2020-09-12 05:10:36
【问题描述】:

我正在创建一个使用 DTLS 作为安全层的 coap 服务器,它将使用数字证书 x509。 Coap 服务器是连接到使用 x509 作为身份验证的云服务器 (CA) 的数据桥。 我也有一台使用相同身份验证方法直接连接到云服务器的设备。 设备的一些功能,也需要和Coap服务器通信。

因此,云服务器是颁发设备和 Coap 数据桥的数字证书的 CA。

我想重用设备中的证书(用于与云服务器通信)以连接到 Coap 服务器。由于设备是一个约束事物,因此不建议拥有多个证书。这可能吗?

【问题讨论】:

  • 客户端到客户端的通信是什么意思?根据上面的描述,您需要您的设备同时与 COAP 服务器和云服务器通信;是否存在描述中缺少的客户端到客户端场景?

标签: iot x509 coap


【解决方案1】:

是的,但有一些陷阱:

RFC7252 - DTLS - x509

证书模式下的实现必须支持强制 按指定实施密码套件 TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 在 [RFC7251]、[RFC5246] 和 [RFC4492] 中。即,证书 包括一个 SubjectPublicKeyInfo,它指示一个算法 id-ecPublicKey 与 namedCurves secp256r1 [RFC5480];公钥 格式未压缩 [RFC5480];哈希算法是 SHA-256;如果 包括在内,密钥使用扩展表示数字签名。 证书必须使用 secp256r1 与 ECDSA 签署,并且 签名必须使用 SHA-256。

因此,您要么使用 ECDSA(ECC 证书,而不是 RSA),要么需要检查您的服务器是否能够处理它。对于 Eclipse/Californium,节点的证书必须是 ECDSA,路径中的其他证书可以使用其他算法,如果您的平台支持的话。

顺便说一句,我不确定您是否真的从 x509 中受益,但这取决于您在设备上使用的平台。

【讨论】:

    【解决方案2】:

    X509 证书和密钥可用于多种用途。示例包括,

    1. 数字签名
    2. 密钥加密目的
    3. 数据加密目的
    4. 关键协议
    5. 等等等等

    更多详情请关注here

    现在,根据您的问题描述,您正在询问是否对两者使用相同的证书/密钥对

    • 针对云服务器进行身份验证
    • 将其用于与 COAP 服务器的通信(加密/解密)目的

    当然,只要 (KeyUsage) 扩展指定证书的预期用途,您就可以使用它。有关 X509 证书中的 KeyUsage 扩展,请参阅上面的链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 2015-02-22
      • 2012-02-14
      • 1970-01-01
      相关资源
      最近更新 更多