我一直在研究SSL证书信任模型,有些东西是没有意义的。如果我是正确的,则信任模型表明,如果链顶部有一个具有受信任根证书的证书链,则该链中的所有证书都将被信任。这是没有意义的,因为这样我就可以用自己的密钥对为google.com创建一个有效的证书。我这样做是通过获取google.com的证书链,比如说Verisign,然后是google.com。我将保留根证书,但修改google.com证书中的密钥对。此证书链将被信任,因为根证书是可信的,因此所有其他证书都是可信的。这样你就可以在中间攻击中创造出一个人。
发布于 2014-10-20 03:09:42
SSL证书有一个扩展字段,该字段定义允许使用证书的内容。
当您从VeriSign购买带有证书签名请求的证书时,它通常不包括使用证书对下游证书进行签名的扩展权限;特别是对于没有权限的任何域。
以google.com为例(根到叶节点):
浏览器检查从根到叶的有效性。叶证书或中间证书声称的任何权威机构都被签署证书的证书所授权;最终导致对根证书局和根证书颁发机构的信任。
发布于 2014-10-20 03:56:35
您在这里丢失了数字证书的一个非常重要的部分。那部分是数字签名。基本上,数字证书由3个部分组成:
数字签名是证书的加密散列。它基本上是证书本身的摘要(例如SHA-1),由CA的私钥签名(验证)。这就是告诉浏览器该证书由某人(您的浏览器也可以信任的人)验证的内容。
正如您所说,您可以轻松地获取证书并更改它。但是你真正不能改变的是这个数字签名(因为你没有属于那个受信任的人的私钥)。因此,您的浏览器将立即检测到它,因为它将无法验证数字签名。
https://security.stackexchange.com/questions/71113
复制相似问题