什么是数字签名证书?证书如何生成?

来源:法大大发布时间:2017-10-23 00:00:00

什么是数字签名证书?证书如何生成?

在这个网络信息时代,各类信息满天飞,信息安全的重要性和必要性成为了人们关注的要点。信息安全有三个问题待解决:一是信息的保密性,即指信息在传输过程中不被泄密;二是信息的完整性,信息在传输过程中不被篡改;三是信息的有效性,即信息的使用者合法。这三个要素又被称为CIA Triad

在日常生活中,个人签名,手写签名用的很多,即类似于个人的一个身份信息确认。计算机中,数字签名也是相同的含义:证明消息是某个特定的人,而不是随随便便一个人发送的(有效性);除此之外,数字签名还能证明消息没有被篡改(完整性)。

其实简单的说,数字签名(digital signature)是公钥密码的逆应用:用私钥加密消息,用公钥解密消息。

什么是数字签名证书?

数字签名证书实际上就是对公钥进行数字签名,它是对公钥合法性提供证明的技术。

 

考虑这样一种场景:我们对签名进行验证时,需要用到公钥。如果公钥也是伪造的,那怎么办?如果公钥是假的,验证数字签名那就无从谈起,根本不可能从数字签名确定对方的合法性。

这时候数字签名证书就派上用场了。证书一般包含:公钥(记住证书中是带有公钥的),公钥的数字签名,公钥拥有者的信息。若数字签名证书验证成功,这表示该公钥是合法,可信的。

 

接下来又有问题了:验证证书中的数字签名需要另一个公钥,那么这个公钥的合法性又该如何保证?该问题可以无限循环下去,岂不是到不了头了?这已经是个社会学问题了。我们为什么把钱存进银行?因为我们相信银行,它是一个可信的机构(虽然也有破产的风险)。跟银行一样,我们需要一个可信的机构来颁发证书和提供公钥,只要是它提供的公钥,我们就相信是合法的。

 

这种机构称为认证机构(Certification Authority, CA)。CA就是能够认定”公钥确实属于此人”,并能生成公钥的数字签名的组织或机构。CA有国际性组织和政府设立的组织,也有通过提供认证服务来盈利的组织。

 

如何生成数字签名证书?

1.    服务器将公钥A给CA(公钥是服务器的)

2.    CA用自己的私钥B给公钥A加密,生成数字签名A

3.    CA把公钥A,数字签名A,附加一些服务器信息整合在一起,生成证书,发回给服务器。

注:私钥B是用于加密公钥A的,私钥B和公钥A并不是配对的。

如何验证数字签名证书?

1.    客户端得到证书

2.    客户端得到证书的公钥B(通过CA或其它途径)

3.    客户端用公钥B对证书中的数字签名解密,得到哈希值

4.    客户端对公钥进行哈希值计算

5.    两个哈希值对比,如果相同,则证书合法。

注:公钥B和上述的私钥B是配对的,分别用于对证书的验证(解密)和生成(加密)。