针对证书的攻击方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/82915484

一 在公钥注册之前攻击

证书是认证机构对公钥及其持有者的信息加上数字签名的产物,由于加上数字签名之后会非常难以攻击,因此我们可以考虑对施加数字签名之前的公钥进行攻击。

假设Bob生成了密钥对,并准备在认证机构注册自己的公钥。在认证机构进行数字签名之前,主动攻击者将公钥替换成了自己的。这样一来,认证机构就会对“Bob的个人信息”和“攻击者的公钥”这个组合进行数字签名。

要防止这种攻击,可以采用下面的做法。例如Bob可以在将公钥发送给认证机构进行注册时,使用认证机构的公钥对Bob的公钥进行加密。此外,认证机构在确认Bob的身份时,也可以将公钥的指纹一并发送给Bob请他进行确认。

二 注册相似人名进行攻击

证书是认证机构对公钥及其持有者的信息加上数字签名的产物,对于一些相似的身份信息,计算机可以进行区分,但人类很容易认错,而这也就可以用来进行攻击。

例如,假设Bob的用户信息中名字的部分是:

Name=Bob

而攻击者用另一个类似的用户信息:

Name=BoB

注册了另一个不同的公钥。这个公钥的名字叫BoB,但实际上确是攻击者的公钥。

随后,攻击者伪装成Bob,将

Name=BoB

的公钥发送给Alice。Alice看到证书中的用户信息,很可能就会将BoB误认为是自己要发送消息的对象Bob。

要防止这种攻击,认证机构必须确认证书所包含的信息是否真的是持有者的个人信息,当本人身份确认失败时则不向其颁发证书。

三 窃取认证机构的私钥进行攻击

主动攻击者想出一个大胆的攻击方法,那就是窃取认证机构的私钥。如果得到了认证机构的私钥,那么任何人就都可以以该认证机构的身份颁发证书了。

要窃取认证机构的私钥,需要入侵认证机构的计算机,或者收买有权访问认证机构私钥的人。认证机构是否妥善保卫自己的私钥,是与该认证机构所颁发证书的可信度密切相关的。认证机构之所以称为认证机构,是因为它的数字签名是可信的,因此认证机构必须花费大量的精力来防止自己的私钥被窃取。

一般来说,当发现主动攻击者利用认证机构的私钥签发证书时,就可以断定认证机构的私钥被窃取了。由于认证机构记录了自己签发证书的序列号,因此能够判断某个证书是不是该认证机构自己签发的。

如果认证机构的私钥被窃取(泄露),认证机构就需要将私钥泄露一事通过CRL通知用户。

四 攻击者伪装成认证机构进行攻击

主动攻击者又想出一个更加大胆的方法,那就是自己伪装成认证机构的攻击。

运营认证机构既不需要登记,也不需要盖楼房,只要有运营认证机构的软件,任何人都可以成为认证机构。

现在攻击者成立了一个认证机构,然后对自己的公钥颁发了一张证书,并称“这就是Bob的公钥”。之后,他将这个证书发送给Alice。

Alice收到证书后使用认证机构(攻击者)的公钥进行验证,验证当然会成功,因为这个证书就是认证机构(攻击者)颁发的证书。Alice验证证书成功,于是,她就相信了这个公钥,并将准备发送给Bob的消息用这个公钥进行加密。随后,攻击者截获密文,就可以将内容解密了,因为攻击者持有解密的密钥(私钥)。

从这个例子可以看出,如果认证机构本身不可信,即便证书合法,其中的公钥也不能使用。要防范这种攻击,需要Alice自己多加小心,她必须要注意自己所得到的证书是哪个认证机构颁发的,这个认证机构是否可信。

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/82915484