目录

数字证书初探

什么是数字证书

数字证书是一种进行身份识别的电子凭证。

理论上任何人都可以签发数字证书,但是个人签发的数字证书并不被别人信任,不具有安全性。数字证书一般从权威身份认证机构处获得,权威机构使用根证书对申请人的公钥进行数字签名,表明该公钥及相关信息真实可行,由于数字证书一般不可伪造,其他用户可以信任该数字证书。

e字证书可以多级签发,这就形成了证书链,用户通过证书链向签发源头查找,一直找到根证书,如果用户信任根证书,则信任证书链上的所有证书。HTTPS 网站都需要使用数字证书认证,用户通过对网站的数字证书进行认证来确认网站是否可信。

为什么要数字证书

数字证书时信任的基石。

在开放的互联网上通信,如果不进行加密,就好比在马路上裸奔,谁都可以看到通信内容,毫无隐私可言。

加密通信就需要使用密钥,如何保证安全获得密钥,不被第三方偷看,也不被第三方替换呢。当然你可以直接在线下面对面交换密钥,早先人们也是这么做的,但是现在我们需要在网上完成密钥的交换。我们陷入了鸡生蛋还是蛋生鸡的困境,要安全通信要先交换密钥,要交换密钥需要有安全通信通道,这个时候我们需要一个互相认同的信任基础,由该信任基础帮助完成第一次安全通信通道的建立,这个信任基础就是权威CA机构。

这里以单向认证访问HTTPS网站为例,CA机构为HTTPS网站签发数字证书,用户向网站发出请求时,网站返回数字证书,用户通过对数字证书进行认证,确认网站的可靠性,并取出证书中的公钥,用户自己生成一组密钥,用公钥对用户的密钥加密后返回给网站,网站使用私钥解密出用户密钥,后续的通信就使用密钥完成。整个过程除了发布数字证书外一直处于加密通信的安全信道中,而数字证书的不可伪造信保证了获取数字证书这一步骤的安全性,也就是说整个通信过程时都是安全的。

数字证书的存在解决了第一次通信的信任问题,通信双方可以在此信任的基础上进行下一步动作,打破了鸡生蛋还是蛋生鸡的困境。

数字证书如何工作

数字证书最大的特点就是不可伪造性,不可移植,和不可否认。它建立在非称加密算法的安全性上。非对称加密算法最有名的应该属RSA了,这里不对算法进行展开说明。

数字证书为什么不可伪造呢,证书拥有者把自己网站的相关信息和公钥放入证书,CA机构对该证书中信息进行散列后使用私钥进行加密,作为数字签名放入证书,用户用CA机构的公钥解密数字签名,对比散列值,确认证书没有被篡改。由于非对称加密的安全性,第三方即使篡改了证书的内容,也无法生成能被CA机构公钥解密并通过散列对比的数字签名,也就保证了通过认证的数字证书通常是可信的。

拿到公钥后就完成了安全通信的第一步,后续用公钥加密这次通信需要使用的密钥给网站,网站后续就使用该密钥加密数据,一次安全通信就这样建立了。

后记

数字证书还有很多特性,如证书链,证书环,证书权限等,后续再花时间研究补上。