首页 > 解决方案 > 使用 X509 的客户端到客户端通信

问题描述

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

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

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

标签: iotx509coap

解决方案


是的,但有一些陷阱:

RFC7252 - DTLS - x509

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

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

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


推荐阅读