证书颁发机构模仿

我的问题是什么会阻止一个人拿到证书,并用它来使他们的假冒网站看起来合法。 假设你login亚马逊,你的浏览器抓取证书。 然后,这个人build立一个欺骗网站,并使用相同的证书,使浏览器认为这是点击链接的人是合法的。 或者,如果证书对于特定的计算机是唯一的,那么拦截该证书和使用该证书作为网站的中间人是什么?

提前致谢。

在网站上提供的证书除了识别信息和数字签名之外,还包括网站的公钥。 您使用公钥来encryption信息,而这些信息又只能用私钥来清除。 数字签名是validation信息只来自私钥持有者(通过用私钥签名来validation网站的身份)。 使用公钥encryption数据,只有私钥持有者(提供证书的原始站点)才能解密。 所以,没有其他人能够解密这些数据。

正如Zoredache所指出的那样,您需要两把钥匙才能执行任何forms的模仿。

只需要join@ Cheekaleak的答案几点。

证书颁发机构(CA)是为服务器(除其他事项)颁发证书的实体。 通过这样做,CA使用其私钥签署证书的内容并添加其签名。

为了指示签名者是谁,X.509证书除了标识颁发证书的实体的Subject Distinguished Name之外,还有一个颁发者专有名称来命名CA.

CA本身具有CA证书,即可用于颁发其他证书的证书(通过使用与CA证书中的公钥匹配的私钥对签发的证书进行签名,并将CA证书Subject DN用作证书颁发者DN )。 这build立了从CA到最终实体(例如服务器)的层次结构,并且可以有中间CA证书(即,用于颁发另一个CA证书的CA证书,然后可以用于颁发最终实体证书)。 顶部的根CA证书往往是自签名的。

浏览器评估他们对特定最终实体证书(例如服务器证书)的信任的方式是通过在EE证书和他们已经信任的CA证书(可信锚点)之间构buildauthentication链。 大多数操作系统/浏览器都附带一组默认信任的CA证书。 (第二个方面是,浏览器validationEE证书是否已经发布到想要连接的服务器的名称。)

这个模型的主要问题来自于你不知道为什么你应该信任你所获得的软件默认捆绑的CA证书,因为一个stream氓或者pipe理不善的CA将会在你的CA证书中信任的锚点可以使用合法网站的名称发布证书。