上周,有同事给我们介绍了什么是数字证书及其工作原理,于是我决定结合自己的理解把这个原理记录下来。
为什么会用到数字证书
在我们上网的时候,为了防止我们的信息被某些钓鱼网站截取,所以我们在与对方进行通信的时候,需要验证对方的身份。那么如何验证对方的身份是真实可靠的呢,就需要对方能够提供数字证书,而且该证书能够被验证是权威的CA颁发的。
举个栗子,比如你要招聘一名清华大学的毕业生,那么你如何确定对方是清华大学毕业的?那么就需要对方提供他的毕业证,而且毕业证上的编号确实是能够在权威网站“学信网”上查到。
什么是数字证书、数字签名及CA
数字签名的过程分为2步:它是由发送方做的,首先把要传送的内容通过哈希算法算出一个固定长度的摘要(一个hash值),如果摘要相同,则说明信息相同。然后发送方用自己的私钥对摘要进行加密,再把公钥发送给接收方。
数字签名验证过程也分为2步:它是由接收方完成的,首先用发送方发过来的公钥去解之前的摘要密文,这样就得到一个哈希值hash1,然后再当场通过哈希算法计算出明文内容的哈希值hash2,如果hash1=hash2,那么就说明内容没有被篡改(摘要一致),而且内容是由发送方发过来的,不可抵赖(密钥能用对方的公钥解开)
这个过程可以通俗地理解成:
比如A想给B写一封信,但是又想让B确定这个信是A写的,且信的内容没有被别人篡改,那么A先把信的内容写好,然后A通过哈希算法生成一个摘要(digest),接着A再用自己的私钥对摘要进行