对于非对称加密技术和数字签名,很重要的一环就是公钥的分发。
理论上任何人都可以公开获取别人的公钥,但是这个公钥在分发的过程有没有可能被篡改呢?
就比如,小倩在把公钥分发给小高的时候,有没有可能被其他人掉包,换成别人的公钥?
答案是可能的,并且一旦公钥出了问题,则整个体系的安全性将面临巨大挑战。
数字证书的出现就是为了此类问题,它就像生活中的证书一样,可以证明所记录信息的合法性。
比如证明小倩的公钥就是属于小倩的,并且当有人篡改小倩的公钥,它能第一时间检测出来,从而保证了公钥的安全分发。
通常证书由证书认证机构(Certification Authority)来进行签发和背书。目前,比较权威的CA包括DigiCert、GlobalSign、VerSign等。
熟悉互联网底层协议的人对这些机构一定不陌生,因为数字证书并不是为区块链而生,可以说是很早以前就有了,它的最普及应用就是https协议,这个协议主要用于网页加密。
这个加密过程也很简单,通常就是客户端向服务器发出加密请求,服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发给客户端。
这个时候,客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表,客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。
我们Astar小倩是一个古装风格的美男子,在浏览网页的时候,经常会弹出这样的窗口:
这就说明,小倩浏览的网址与数字证书记载的网址不一致,这张证书可能被冒用,并且浏览器发出了相应的警告。
上一期我们图解了数字签名的过程,现在来看看数字证书的过程。
1. 小高无法确定小倩的公钥是否属于他,于是要求小倩去证书认证机构(CA),为他的公钥做认证。证书认证机构用自己的私钥,对小倩的公钥进行了加密,生成数字证书(Digital Certificate)。
2. 小倩收到证书之后,就可以放心了,以后再给小高写信的时候,只要在签名的同时,再附上数字证书就行。
3. 小高收到信之后,用CA的公钥解开数字证书,就可以拿到小倩的真实公钥,然后就能证明数字签名是不是小倩了。
这节我们讲述了数字证书,它的作用机制和分发机构,作为数字签名的有效补充,作为公钥信任的基础,对于整个区块链生态的安全管理十分重要。下一期,我们会回到非对称加密算法中,了解常见的加密算法,探索区块链底层技术的秘密。
领取专属 10元无门槛券
私享最新 技术干货