上一次内容我们介绍了TLS
加密原理,为什么要加密通信呢?是因为我们不希望我们的个人信息被明文传播,任何一个人只要截断我们的物理线路或者入侵到我们网络中,就能获取所有的信息。
因此,科学家们想了很多办法和数学公式来解决通信安全的问题。比如,对称加密,非对称加密算法等。
但大家有没有想过这么一个问题:我怎么证明我就是我?
很有意思的问题哈~ 简单翻译过来就是:你说你是李白,你就是李白了吗?
5BE6FAC2-325B-41DB-B7FD-94FC6D0853EF
如图,如果有人冒充GOOGLE
,我们怎么知道他就是真的GOOGLE
呢?
这就要引入CA
数字签名了。
在签名的过程中,有一点很关键,收到数据的一方,需要自己保管好公钥,但是要知道每一个发送方都有一个公钥,那么接收数据的人需要保存非常多的公钥,这根本就管理不过来。并且本地保存的公钥有可能被篡改替换,无从发现。
怎么解决这一问题呢??!
由一个统一的证书管理机构来管理所有需要发送数据方的公钥,对公钥进行认证和加密。这个机构也就是我们常说的CA
。认证加密后的公钥,即是证书,又称为CA
证书,证书中包含了很多信息,最重要的是申请者的公钥。
CA
机构在给公钥加密时,用的是一个统一的密钥对,在加密公钥时,用的是其中的私钥。这样,申请者拿到证书后,在发送数据时,用自己的私钥生成签名,将签名、证书和发送内容一起发给对方,对方拿到了证书后,需要对证书解密以获取到证书中的公钥,解密需要用到CA
机构的”统一密钥对“中的公钥,这个公钥也就是我们常说的**CA
根证书**.
通常需要我们到证书颁发机构去下载并安装到相应的收取数据的客户端,如浏览器上面。这个公钥只需要安装一次。有了这个公钥之后,就可以解密证书,拿到发送方的公钥,然后解密发送方发过来的签名,获取摘要,重新计算摘要,作对比,以验证数据内容的完整性。
您清楚了吗?
作者:David Youd 翻译:阮一峰 转自:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html 原文网址:http://www.youdzone.com/signature.html