理论教育 公钥证书与X标准在信息安全中的应用

公钥证书与X标准在信息安全中的应用

时间:2023-11-24 理论教育 版权反馈
【摘要】:在Bob发现有人伪造他的公钥并警告其他参与者之前,假冒者能够读取所有发送给Bob的加密消息,并且能够使用伪造的密钥进行认证。用户可以通过安全的方式将自己的公钥提交给CA,获得一个签名的证书。否则,多个CA之间需要为彼此的公钥证书进行签名。公钥证书具有一定的格式,目前得到广泛接受的证书格式是X.509标准的证书。

公钥证书与X标准在信息安全中的应用

公钥密码的公钥是公开的。所以,如果有某种广泛接受的公钥算法,如RSA,那么,任何参与者都可以把他或她的公钥发送给其他参与者,或者把这个公钥广播给整个团体。虽然这种方法很方便,但是它有一个很大的缺陷,就是任何人都可以伪造其他人的公钥。也就是说,某人可以假冒Bob向其他参与者发送公钥或广播公钥。在Bob发现有人伪造他的公钥并警告其他参与者之前,假冒者能够读取所有发送给Bob的加密消息,并且能够使用伪造的密钥进行认证。

解决这个问题的方法是公钥证书(Public-key Certificate)或数字证书。大体上,公钥证书包含一个公钥和公钥所有者的用户ID,以及一个由可信的第三方对证书的整个数据块的签名。证书也包含这个第三方的某些信息及证书的有效期等。这个第三方通常是用户团体所信任的证书颁发机构(Certificate Authority,CA),如政府机构或金融机构。用户可以通过安全的方式将自己的公钥提交给CA,获得一个签名的证书。之后用户可以发布这个证书。任何需要这个用户的公钥的人,都可以获得这个证书并通过证书附带的可信签名来验证它的合法性。

证书的签名及验证过程与图2-13所示的过程是一样的。如果把该图中的消息看成是包含公钥及用户ID等信息的未签名的证书,把Bob看成CA,图2-13左半部分就是对证书进行数字签名的过程,右半部分是对证书有效性的验证过程。关键步骤总结如下:

(1)用户软件(客户端)创建一对密钥:一个公钥和一个私钥。

(2)客户端准备一个包含了用户ID和用户公钥的未签名的证书。

(3)用户以某种安全的方式将未签名的证书交给CA。这可能需要当面提交,使用已注册的电子邮件提交,或者通过一个带有电子邮件验证的Web表单提交。

(4)CA通过以下方式创建一个签名:

① CA使用某个散列函数,如SHA-512,计算出未签名的证书的散列码。

② CA用自己的私钥加密散列码,生成证书的签名。

(5)CA把签名附在未签名的证书后,创建一个签名的证书。(www.daowen.com)

(6)CA把签名的证书交还给客户端。

(7)客户端可以向任何其他用户提供该签名证书。

(8)任何用户都可以通过以下方式验证该证书是否合法有效:

① 计算证书(不包括签名)的散列码。

② 用CA的已知的公钥解密证书的签名。

③ 比较①和②的结果。如果二者相等,则证书就是合法有效的。

如果多个用户的证书是由同一个CA颁发的,那么他们可以很方便地验证彼此的证书的有效性。否则,多个CA之间需要为彼此的公钥证书进行签名。这样,一个用户就可以利用证书链来验证其他用户公钥的真实性。

公钥证书具有一定的格式,目前得到广泛接受的证书格式是X.509标准的证书。它用在大多数网络安全应用中,包括IP安全(IPSec)、传输层安全(TLS)、安全SHELL(SSH)和安全多用途Internet邮件扩展(S/MIME)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈