CA基础知识培训(二)

Posted by wzqing on June 23, 2017 · 1 min read

CA认证中心

先来看一下CA机构的定义。

CA机构,又称为数字证书认证(Certificate Authority)中心,作为网络活动中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

上一部分的教程 CA基础知识培训(一)里面,我们只提到了最基本的三种算法,以及数字签名的原理。并没有提到CA,在信息传输时只需要拥有私钥和公钥就行了,公钥和私钥是通信双方通过算法来约定的,与CA没有关系

信息交换


数字证书

公钥传输的隐患

之前提到,非对称算法可以有效防止中间人对信息的窃听。因为中间人只拿到算法和公钥是没办法破解加密的数据的。但是此时假设中间人不仅可以窃听通信双方的数据,还能修改。

中间人在双方在交换公钥之前,伪造了双方的公钥,如下图所示:

中间人伪造公钥

张三与李四在交换公钥的时候,王五截取了两边的数据,并把自己的公钥发送给张三和李四,张三和李四在传输数据时候都使用王五的公钥,王五收到信息之后,使用自己的私钥解密,获取到了双方的信息。

这种情况下需要解决的问题就是:如何判断公钥的真实性?

回到上面CA机构的定义,CA机构“承担公钥体系中公钥的合法性检验的责任”,可以引出CA以及CA如何证明公钥的有效性。

数字证书原理

CA基础知识培训(一)中,我们把数字签名的原理简单描述了一下,为了证明一串公钥字符串的真实,CA机构使用自己的私钥对该公钥字符串做数字签名,CA的数字签名加上公钥本身,我们称其为数字证书

实际上,CA签发的数字证书中,除了包含公钥,还包含了一些其他的信息,比如有效期(根据安全需求,公私钥对通常一定周期需要换一次),这张证书签发给谁?(公钥持有者的身份),以及一些其他信息。

中间人伪造公钥

接下来我们看看在IE浏览器中的一张实际的证书:

证书信息

这张证书从上往下看,有以下这些属性是比较重要的:

  • 签名算法:SHA1RSA,CA做数字签名所用的摘要算法是SHA-1以及非对称算法RSA
  • 颁发者:CA机构的身份:浙江CA
  • 有效期:这张证书可以用多久:17年10月
  • 公钥:公钥字符串
  • 证书指纹:这张证书文件的摘要,摘要算法为SHA-1

证书公钥

这幅图中,可以比较准确的说明公钥与公钥数字证书的区别。

公钥 数字证书
仅仅是密钥 是一个签名
不包含身份信息 包含公钥私钥持有者身份
  含有公钥
  • 公钥是非对称算法中的一个字符串,与私钥相对应。
  • 数字证书 = 公钥的数字证书

如果你信任了CA,那么CA进行数字签名的公钥证书你也可以信任,由此产生了一条信任链

信任链

一个人只需要信任一个CA机构,那么就无需担心CA机构认证过的证书会被篡改。中间人无法通过修改通信双方的公钥证书来进行攻击。


根证书

自签名

既然普通的公钥可能被篡改,需要CA机构来进行数字签名(数字签名需要私钥,说明CA也拥有自己的公钥)来认证公钥的真实性,那么CA的公钥又由谁来认证呢?

找到一张沃通的根证书:

沃通根证书

和普通证书的不同的一点是,它的颁发者与使用者都是相同的,都是CA沃通根证书

也就是说在信任链的起点,证书都是自签名的,不需要别人认证。

国家根证书

例如国产SM2算法的根证书,就由国家签发:

SM2根证书

那么是否有可能伪造根证书来进行中间人攻击呢?

答案是:几乎不可能

国家电子认证根CA的网页中,可以下载到中国的SM2密钥算法根,以及其认证的共49家(2017年6月统计数据)中国CA机构根证书。

国家根网站

这意味着你只需要信任一张证书,那么在中国大陆使用的上亿数字证书真实性你都可以进行甄别。