我了解SSL证书不能使用SHA-1进行签名。 但是,所有CA根证书都是SHA-1签名(主要是)。 这是否意味着相同的algorithm,不再信任“你奶奶SSL商店”是世界最高的安全证书罚款?
我错过了什么吗? (密钥用法?密钥大小?)
根CA证书的签名完全不重要,因为不需要validation它们。 他们都是自签名的。
如果您信任根CA证书,则无需validation其签名。 如果你不信任它,它的签名对你来说毫无价值。
编辑:下面有一些非常相关的评论。 我不愿意复制或改写这些文件,而是因为他们而不是他们的作者。 但是我欢迎大家给这个答案增加解释。
在一天结束时,根证书是自签名的。 除了本身,它从来没有被另一个实体签名。 根证书通过带外过程获得信任,例如将其提交给受信任的发布者的浏览器列表,或者让微软接受它插入Windows受信任的发布者的默认列表。
这些证书(以及自签名的公司)(据称有希望)是通过除签名以外的其他方式进行彻底审查的。
唯一的情况是,如果根用SHA-1签名,可以用SHA-1来撤销。 也就是说,可以攻击SHA-1的人可以构build对根的撤销。 而且我绝对相信浏览器不知道如何坚持下去,所以破坏者已经完成了SSL连接。 多么蹩脚。
作为一个注释, 一些 CA已经将其根和中间证书更新到SHA256。
我知道去年GlobalSign正在更新他们的证书,因为我们正在更新我们的代码签名证书,所以我不得不增加他们的新链。
您可以检查哪些特定的证书已更新以及更新哪些证书,并且还遗留了旧版SHA1证书(在此为=> 1)
希望有所帮助。
对于根CA,您可以信任CRT中的CA绑定的公钥 – 无论其自签名是什么。
使用.CRT文件格式而不是原始公钥来描述CA.PEM允许在其中包含更多细节 – 例如CA名称(再次,签名是毫无价值的)