
我们都知道,现实生活中要验证彼此的身份,最简单的方法就是把身份证拿出来看看,身份证一拿出来,你叫啥,户籍在哪,什么时候生的,全都知道,其次看看他长得帅不帅美不美,有没有贼眉鼠眼,读一读微表情,那在网络世界里,我们甚至见不到对方是啥样的,那我们要怎么验证身份呢?怎么验证这个网站就是可信,这个软件就是正规的呢?那我们今天就谈那么一谈数字证书,它就是网络世界的电子身份证。
这里我们需要提到一种算法,那就是非对称加密算法,他是数字证书的基础,你就认为姑且认为是上帝定的一个规则吧,(因为目前为止该算法还没有被破解)它在现在的网络世界承担了很重要的加密角色,非对称加密不进行细讲,只需知道他会产生两个密钥:一个公钥,一个私钥,用公钥加密的内容只有私钥才能够解的开,用私钥加密的内容只有公钥才能够解得开。

图片来源:图解密码技术
那有了这个上帝给的规则,我们就可以逐步剖析数字证书的原理了,现实生活中,我们的身份证有公安局给我们颁发,公安局就是我们无比信任的机构,所以他们颁发的身份证我们都愿意相信,公安局在身份证上采用的各种工艺,磁信息等等,都是在证明这张身份证确实是公安局自己制作发放的,而不是被伪造的。那么在网络世界中也十分的相似,我们需要一个类似公安局的机构来给网络世界来颁发证书吧,这个时候就出现了CA (Certificate Authority),即证书颁发机构,证书颁发机构如何保证这个证书是自己颁发的呢?毕竟网络世界的证书只是一串代码,不能够像现实生活中公安局一样来复杂化制作工艺,把控原料来源等办法来保证只有自己能够制作身份证,这时候非对称加密算法就是证书颁发机构保证的手段。

证书颁发机构是网络世界公认的权威机构,它使用非对称加密算法来保证数字证书的来源,防止坏蛋假冒自己来随便发证书。那如何证明证书就是经过自己手发布的呢?且听我细细道来。ca将自己的公钥公开,自己的私钥保存好。当有申请者要给自己的网站申请数字证书的时候,那个体就向ca申请,ca通过严格的验证,确定了这个网站确实不是坏人,ca就使用自己私藏好的私钥,将身份证明的信息中写上:
” 这个网站是真的,他的公钥就是这个,你把他发来的东西用这个公钥解了看就行了,要给他发信息也可以用这个加密了发过去 !“(当然真正的数字证书里面的东西远不止这么简单)
这个加密好的东西就是数字证书了,然后申请者就可以拿这个这个证书去为所欲为了,给自己的网站安上,拿给不相信自己的用户,用户在网上一查,查到这个颁发机构的公钥,用机构的公开的公钥把这个证书里加密的信息一解,发现里面确实有证书颁发机构给的验证信息(能用证书颁发机构公开的公钥解密,就说明了这段信息确实是机构用自己藏得很好的私钥加密的,不然解出来也是一堆乱码),验证完成,这网站确实是向他说的那样,然后就可以大胆的接受他发过来的东西了,也放心发东西过去。

其实细细一想,倘若有验证身份的需要,只有双方之间确实很难做到身份验证,因为双方可以各执一词,谁也不知道对方有么有说假话,那就必要双方都信得过的第三方甚至是第四方等等的出现才能够完成这个双方的身份验证,现实生活中的公安局,网络世界里的证书颁发机构,都是这个道理,有第三方的给的验证,那双方就可以放心的相信对方了,放心的相信这个网站或者app等等了。
当然,这篇文章只是浅浅浅谈一下数字证书,粗浅的讲一下他的实现原理,真要把它的一些细节都讲清楚,那是我这千把字可以写的完的,数字证书发展到现在的各种标准也多得很,本文重在科普,暂时先不细讲。(有说的不对的地方欢迎指正鸭)