9.1.3.3 X.509证书
在证书模式下实现必须支持强制实施的密码组TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8如[RFC7251],[RFC5246]和[RFC4492]中所规定。即证书包括SubjectPublicKeyInfo,它会显示带有danamedCurves secp256r1的id-ecPublicKey的算法 [RFC5480];公钥格式是未压缩的[RFC5480];哈希算法是SHA-256;如果包括的话,密匙使用扩展显示数字签名。证书必须使用secp256r1签署ECDSA,而且签名必须使用SHA-256。使用的密匙必须是ECDSA capable。必须支持curve secp256r1[RFC4492];这个曲线和NIST P-256曲线是等效的。哈希算法是SHA-256。实现必须使用Supported Elliptic Curves和Supported Point Formats Extensions[RFC4492];必须支持未压缩的点格式;[RFC6090]可以作为一个实现方法。
证书的主语会从该设备长期的惟一标识符中建立,例如 EUI-64 [EUI64]。这个主语也可以基于完全限定域名(FQDN),它是被用作CoAP URI的主机部分。然而,设备的IP地址一般不能当做主语,因为它是可变的。系统中的发现过程会建立给定设备的IP地址和每个设备主语之间的映射。一些含有多于一个主语的设备也必须包含多个证书。
当生成一个新的连接,远程设备的证书就需要验证。如果CoAP节点有一个绝对时间的来源,那么节点应当检查证书的有效时间在范围之内。为了达到安全要求,证书必须被验证为适合于安全需求,使用的功能相当于[RFC5280]第6节中指定的算法。如果认证包含一个SubjectAltName,那么请求URI的授权必须匹配至少一个在SubjectAltName族中URI类型域中的任何CoAP URI的授权。如果在证书中没有SubjectAltName,那么除了有通配符的证书不被允许以外,请求URI的授权必须匹配证书中的通用名(CN),使用http://tools.ietf.org/pdf/rfc3280中定义的匹配规则。
证书状态检查的核心支持需要进一步研究。由于在线证书状态协议(OCSP)[RFC6960]到CoAP的映射当前没有被定义,而且OCSP也可能不是很容易适用于所有环境,所以另一种方法可能是使用TLS证书状态请求扩展([RFC6066]第8节;也被称为“OCSP装订”)或最好是多个证书状态扩展([RFC6961]),如果可用的话。
如果系统除了证书外还有一个共享密钥,那么应该使用一个包括共享密钥(如TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA[RFC5489])的密码组。
最后更新于
这有帮助吗?