算法和数据结构5.10数字证书

2019-12-26  本文已影响0人  数字d

“公开密钥加密”和“数字签名”无法保证公开密钥确实来自信息的发送者。因此,就算公开密钥被第三者恶意替换,接收方也不会注意到。

不过,如果使用数字证书,就能保证公开密钥的正确性。

步骤:

A持有公开密钥Pa 和私有密钥Sa,现在想将公开密钥Pa发送给B.

A首先要向认证中心(certification Authority ,CA)申请发行证书,证明公开密钥Pa确实由自己生成的。

认证中心保管着他们自己准备的公开密钥Pc和私有密钥Sc.

A将公开密钥Pa和包含邮箱信息的个人资料发送给认证中心。

认证中心对收到的资料进行确认,判断其是否为A本人的资料。确认完毕后,认证中心使用自己私有密钥Sc,根据A的资料生成数字签名。

认证中心将生成的数字签名和资料放在同一个文件中。

认证中心是管理数字证书的组织机构。原则上谁都可以成为为认证中心,所以认证中心的数量也比较多,但是建议
在经过政府审查的大型企业机构进行申请。

然后把这个文件发送给A.

这个文件就是A的数字证书。

A将作为公开密钥的数字证书发送给B.

B收到数字证书后,确认证书里面的邮件地址确实是A的地址。

接着B获取了认证中心的公开密钥。

B对证书内的签名进行验证,判断它是否为认证中心给出的签名。

证书中的签名只能用认证中心的公钥Pc进行验证。

如果验证结果没有异常,就能说明这份证书的确由认证中心发行。

确认了证书是由认证中心发行的,且邮件地址就是A的之后,B从证书中取出A的公开密钥Pa.

这样公开密钥就由A传到了B.

公开密钥的交付过程:

假设X冒充A,准备向B发送公开密钥Px.

但是B没有必要信任以非证书形式收到的公开密钥。

假设X为了假冒A,准备在认证中心登记自己的公开密钥。然而X无法使用A的邮箱地址,因此无法获得A的证书。

通过数字证书,信息的接受者可以确认公开密钥的制作者。

在步骤中,当B得到了认证中心的公开密钥,这里仍有一个疑问。

那就是,B得到的公开密钥Pc真的来自认证中心吗。

由于公开密钥自身不能表示其制作者,所以有可能是冒充认证中心的X所生成的。

也就是说,这里同样存在公开密钥问题。

实际上,认证中心的公开密钥Pc是以数字证书的形式交付的,会有更高级别的认证中心署名。

假设存在一个被社会广泛认可的认证中心A。

此时出现了一个刚成立的公司B,虽然B也想要开展认证中心的业务,但它无法的到社会的认可。

于是B向A申请发行数字证书。

当然A会对B能否开展认证中心业务进行适当地检测。

只要A发行了证书,公司B就可以向社会表示自己活得了公司A的信任。

于是通过大型组织对小组织的担保,树的结构就建立起来了。

最顶端的认证中心被称为根认证中心(root CA),其自身的正当性由自己证明。

对根认证中心自身进行证明的证书为“根证书”。

如果根认证中心不被信任,整个组织就无法运转。

因此根认证中心多为大型企业,或者政府关联且已经取得了社会信赖的组织。

补充:

个人交付用的大概都是公开密钥的例子,网站时间通信也需要用到数字证书。

只要能收到来自网站的含有公开密钥的证书,就能确认该网站未被第三者冒充。

数字证书就像这样通过认证中心来担保公开密钥的制作者。

这一系列的技术规范被称为“公钥基础设施”PKI(public key infrastructure).

上一篇下一篇

猜你喜欢

热点阅读