TLS / SSL证书属性按什么顺序检查有效性?有没有标准?

ru

想象一下具有以下参数的SSL证书-我们将通过做所有可能的错误来炮制最糟糕的可想象证书:

  • 旧的,易受攻击的密码
  • 脆弱的签名算法
  • 签名错误(签名与内容不符)
  • 明确吊销(证书在我们使用的CRL上)
  • CA在证书存储区中明确标记为不信任
  • 连接的域名/ CN错误
  • 已到期
  • 复制另一个域的证书
  • 自签名

在证书的所有这些错误条件中,用户代理按什么顺序检查它们?

或者换一种说法,如果我要在网站上使用此可怕的证书,我将得到什么错误消息-一旦我修复了该错误消息,下一步将是什么,依此类推。

这些错误对连接的安全性都有不同的含义,因此某些错误在客观上比其他错误更可怕-但是是否在某处定义了一个标准,规定这些问题的“优先级”?(即如果证书是用于错误的网站并使用破损的加密功能,则告诉我证书过期是愚蠢的)

garethTheRed

RFC 5246关于ServerHello消息的内容如下:

当服务器能够找到可接受的算法集时,服务器将发送此消息以响应ClientHello消息。如果找不到这样的匹配项,它将以握手失败警报响应。

因此,如果服务器不能接受客户端提议的密码(假设服务器管理员已禁用弱密码,并且客户端仅发送弱密码),服务器将在证书发送给客户端之前终止连接。

如果密码是可接受的,则服务器将其证书发送给客户端。RFC 5280第6节介绍了证书路径验证。但是,它有以下几点要说的:

不需要使用本规范的一致实现来实现该算法,但是必须提供与该过程所导致的外部行为等效的功能。特定实现可以使用任何算法,只要它能得出正确的结果即可。

因此,只要最终结果相同,客户端就可以以其认为合适的任何方式验证路径。鉴于有许多可用的操作系统,有些具有许多可用于处理证书的库,因此很难对您的问题做出明确的答案。

不幸的是,您的选择可能仅限于:

  • 使用上面列出的所有组合生成脚本证书并进行测试,并针对所有库运行脚本证书;
  • 阅读源代码(如果有)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章