使用X509进行客户端到客户端的通信

时间:2020-09-12 05:10:36

标签: iot x509 coap

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

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

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

2 个答案:

答案 0 :(得分:1)

是的,但是有一些陷阱:

RFC7252 - DTLS - x509

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

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

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

答案 1 :(得分:0)

X509证书和密钥可以用于多种目的。例如,

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

可以找到更多详细信息here

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

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

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