首先简单理解一下什么是数字证书。这里是一篇英文文档,描写叙述的非常形象。形象的描写叙述了什么是公钥。什么是私钥。假设确保数字证书的可靠性等。
以下。我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。
一般我们电脑的浏览器中都有一些受信任的证书颁发机构列表, 里边存储的都是一些机构的信息。这些机构都是权威的。当然能够通过安装软件的方式。来添加证书颁发机构,比方中国银行的根证书软件,阿里巴巴的根证书软件。
默认我们觉得这些软件都是从官网下载的,是绝对的没被篡改的,可靠的。简单来讲,根证书存在的意义,就是验证偶尔从网络上传到浏览器的数字证书的真假。
当我们向一个站点发起加密訪问协议后,站点会返回一个数字证书M给你。那么我们怎么确定这个证书M没有在途中被人篡改过呢?这里就用到了根证书。
站点返回来的数字证书都是一定格式的,记录了站点的名称,公钥,以及证书颁发机构A。并且有的地方,是用这个机构A的私钥加密过的。我们的浏览器会依据这个证书写着的颁发机构A,去“受信任的证书颁发机构”列表中,找到这个机构A。然后通过本机中存储的关于机构A的信息,去检查这个证书有没有被篡改过。
有人说,怎么依据根证书去验证数字证书M有没有被篡改过呢?事实上这里也用到了对称加密。假设根证书对某个站点颁布了数字证书。就是用自己的私钥加密根证书的部分内容。这个根证书颁发机构把自己的公钥放入到软件中。安装到客户计算机中。用户收到安全证书M后。会用根证书机构的公钥去解密这个证书。假设能解开,说明没有被改动过。假设不能解开,说明别改动了,不安全了。
比方说,证书传送途中。被某个组织截获。他们想篡改。并且他们也篡改了。可是注意如今有一点,他们篡改之后是须要加密的。因为终于的浏览器是会用公钥解密的。他们此时仅仅能用根证书机构的私钥加密,终于的浏览器才会打开,才不会察觉。用不论什么其它的私钥加密,浏览器都是打不开的。
而此时他们又没有根证书机构的私钥,所以就无法篡改了。一旦篡改就会被发现。
继续回到样例中。此时,浏览器收到站点的安全证书。通过根证书列表查看验证。证明了这个证书是安全的。可靠的。
client就能够使用证书中的server公钥,对信息进行加密。然后与server交换加密信息。步骤例如以下图
首先。client向server发出加密请求。
server用自己的私钥加密网页以后。连同本身的数字证书,一起发送给client。
client(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。client会依据这张列表。查看解开数字证书的公钥是否在列表之内。
假设数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用。浏览器会发出警告。
假设这张数字证书不是由受信任的机构颁发的,浏览器会发出还有一种警告。
假设数字证书是可靠的,client就能够使用证书中的server公钥。对信息进行加密。然后与server交换加密信息。
下边是关于12306站点证书的一些看法,部分转载。
12306站点买票。会出现证书过期或者是不可靠等提示,这里原因是什么?
大家都知道https的网页是加密的,是须要证书的,网购火车票的网址是http://www.12306.cn/mormhweb/kyfw/。这个是http的普通网页,没有加密,是明文传输的。不须要证书。可是他里面有个iframe,也就是嵌套了还有一个网页,地址是https://dynamic.12306.cn/otsweb/。这里就是https的了。
可是假设使用Chrome、Firefox或者IE8、9等浏览器都会显示这个站点的证书有安全问题。
因为dynamic.12306.cn使用的是SRCA颁发的证书。这个证书在我们的计算机中是默认不被信任的,也就是不安全的。
Chrome:
IE9:
什么是SRCA?SRCA就是Sinorail Certification Authority,中文名叫中铁数字证书认证中心,简称中铁CA。
这是个铁道部自己搞的机构,相当于是自己给自己颁发证书,当然不会被信任。
很多其它信息请见这个机构的站点。
于是,12306就在首页显著位置标明:为保障您顺畅购票,请下载安装根证书。
一般人假设看到这个肯定会依照要求下载安装的。下载后解压里面有个“SRCA根证书安装说明手冊.doc”,这个doc格式我就先不吐槽了,还是先说说内容吧。
这个文档一开头就有这么一段话:
尊敬的用户:
您如今安装的是中铁数字证书认证中心(中铁CA。SRCA)的根证书,完毕这个操作能够使您的购票体验更为顺畅,同一时候获得一个更安全的网络购票环境。
中铁CA是由工业和信息化部审批通过的合法电子认证服务机构。该产品及相关操作不会对您的计算机构成危害,请您放心使用。
安装了你的证书会使我的网络购票更顺畅更安全?我怎么不知道证书还有这种奇妙的能力?是不是Windows优化大师、360之类的软件都应该集成一个安装SRCA的证书的功能啊?
再看后面,“该产品及相关操作不会对您的计算机构成危害,请您放心使用。
”怎么感觉好像是此地无银三百两呢?
玩笑话就讲到这里吧。以下来说说安装了这个证书究竟会有什么危害。
以下因为涉及到一些password学的知识,限于篇幅和本人的表达能力。可能解释得不是非常清晰,假设有什么不明确的地方建议学习一下这篇文章,图文并茂,解释得比較清晰。
假设你依照这个文档的步骤安装了SRCA的根证书的话。那么以后全部SRCA颁发的证书在你的电脑上都会被觉得是安全的。这有什么危害呢?首先SRCA是一个体制内的部门。所以他全然有可能会被有关部门控制。
假设有关部门利用SRCA的私钥伪造了一个Gmail的证书,然后有关部门再通过电信运营商或者某墙拦截下来你和Gmailserver之间的全部通信,然后把自己伪造的证书发给你,因为你安装了SRCA的根证书。你就会觉得这个证书是安全的。也就是说你就会以为你收到的内容是Gmailserver发送的。这样有关部门就在你和Gmailserver之间充当了一个中间人的角色。这样你和Gmailserver之间的全部加密通信就都神不知鬼不觉得被有关部门监听了。他们就能够得到你的邮件的内容甚至还有可能得到Gmail的password。这就是著名的中间人攻击(MITM)。
这里仅仅是以Gmail为例,因为有关部门多次试图获得一些异见人士的Gmail邮件内容,就不具体说了。
说完了安装证书的危害,那么为什么不使用VeriSign这个受信任的机构颁发的证书呢?
有些人就開始出来为铁道部辩护了。说铁道部不愿意花钱买证书,或者技术人员提出了要购买证书的要求可是领导不懂这些所以不允许等等。
我最開始也觉得这个是有可能的。毕竟这是在天朝。可是后来我发现https://epay.12306.cn/这个完毕订票后用来支付的二级域名就是用的VeriSign颁发的证书。那为什么登陆账号以及订票不使用这个VeriSign的证书呢?
因为我实在无法找出合理的解释,所以我仅仅好觉得是这种:铁道部因为某个特殊的原因,希望大家在自己的电脑上面安装SRCA的根证书,可是他自己也知道使用自签名的证书是有危急的,只是登陆和订票部分仅仅是涉及到用户的隐私问题而已,即使有安全问题也无所谓的。天朝的p民本来就没有什么隐私的。可是支付部分涉及到钱,假设出了事儿就比較麻烦。所以支付部分还是使用了VeriSign的证书。