PKI(公钥基础设施)之什么是证书的数字签名?

PKI(公钥基础设施)之什么是证书的数字签名?

作者:David Youd

原文地址:http://www.youdzone.com/signature.html

1 Bog的两把钥匙

PKI(公钥基础设施)之什么是证书的数字签名?

    Bob获得两把钥匙。Bob的一把钥匙称为公钥,另一把钥匙称为私钥。

2 Bob分享公钥给其他人

PKI(公钥基础设施)之什么是证书的数字签名?

    Bob分享了其公钥,可供任何需要它的人使用,但他保留了自己的私钥。

    **用于加密信息。加密信息意味着“加扰”,以便只有具有适当**的人才能使其再次可读。Bob的两个**中的任何一个都可以加密数据,另一个**可以解密该数据。

3 Susan发送一条加密信息给Bob

    Susan(如下所示)可以使用Bob的公钥加密消息。Bob使用他的私钥来解密消息。

    任何Bob的同事都可以访问Susan加密的消息,但如果没有Bob的私钥,无法解密信息,数据就毫无价值。

PKI(公钥基础设施)之什么是证书的数字签名?

4 Bob解密Susan发的信息

PKI(公钥基础设施)之什么是证书的数字签名?

5 添加数字签名

    Bob通过他的私钥和正确的软件,可以在文档和其他数据上放置数字签名。

    数字签名是Bob对Bob独有的数据的“标记”,并且很难伪造。此外,签名可以确保对已签名的数据所做的任何更改都会被检测到。

PKI(公钥基础设施)之什么是证书的数字签名?

 

    Bob为了签署一份文件,Bob的软件将通过称为“散列”的过程将数据简化为几行。这几行称为消息摘要。(无法将消息摘要更改回在创建消息摘要的原始数据。)

PKI(公钥基础设施)之什么是证书的数字签名?

    Bob的软件然后用他的私钥加密消息摘要。结果是数字签名。

PKI(公钥基础设施)之什么是证书的数字签名?

    最后,Bob的软件将数字签名附加到文档中。所有散列的数据都已签名。

6 Bob将附加签名的文档发给Pat

 

PKI(公钥基础设施)之什么是证书的数字签名?

    首先,Pat的软件解密签名(使用Bob的公钥)将其更改回到消息摘要。

    如果这有效,那么它证明Bob签署了该文件,因为只有Bob拥有他的私钥。

Pat的软件然后将文档数据散列到消息摘要中。如果消息摘要与解密签名时创建的消息摘要相同,则Pat知道签名数据尚未更改。

7 情节并发症 — 有人仿冒Bob的公钥

    Doug(我们心怀不满的员工)希望欺骗Pat。Doug确保Pat收到一条签名消息和一个看似属于Bob的公钥。

    在Pat不知情的情况下,Doug欺骗性地发送了一个他用Bob的名字创建的**对。如果没有亲自接收Bob的公钥,Pat怎么能确定Bob的公钥是真实的?

    事实上,Susan在公司的证书颁发机构中心工作。Susan可以通过签署Bob的公钥以及Bob的一些信息为Bob创建数字证书。

PKI(公钥基础设施)之什么是证书的数字签名?

    现在Bob的同事可以检查Bob的可信证书,以确保Bob的公钥真正属于Bob。

8 先验证签发的证书可信,然后才能认为证书里面的信息(如公钥)是可信的。

PKI(公钥基础设施)之什么是证书的数字签名?

    假设Bob将签名文件发送给Pat。为了验证文档上的签名,Pat的软件首先使用Susan(证书颁发机构)的公钥来检查Bob证书上的签名。证书的成功解密证明了是Susan创建了它。证书解密后,Pat的软件可以检查Bob是否与证书颁发机构保持良好的信誉,并且所有关于Bob身份的证书信息都没有被更改。

    Pat的软件然后从证书中获取Bob的公钥,并使用它来检查Bob的签名。如果Bob的公钥成功解密签名,那么Pat确保签名是使用Bob的私钥创建的,因为Susan已经认证了匹配的公钥。当然,如果签名有效,那么我们知道Doug并没有尝试更改签名内容。

 

总结

1 为了让Bob的公钥在传递过程中不被别人篡改和伪造,需要引入CA认证。

 

2证书颁发机构(CA, Certificate Authority)为每个使用公开**的用户发放一个数字证书,在这里CA为Bob发放一个数字证书。

数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开**,即证明数字证书里面Bob的公钥是正确的,没有被人篡改的。

 

3 CA也拥有一个证书(内含公钥)和私钥。任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。

例子:我(CA)签发了A,B,C… N个数字证书,任何人不管从什么渠道获得一个数字证书,例如C数字证书。只要用我(CA)的公钥能解开C数字证书里面的签名,那么不管C数字证书里面内容是什么,我(CA)都对其正确性负责,尽管相信就是了,出了问题我(CA)负责。

当然,我(CA)不会平白无故承担这个风险的,所以任何用户要在我(CA)这里做CA认证,签发证书,是要收费的。