目录
1. 什么是数字证书
要开车得先考驾照,驾照上面记有本人的照片、姓名、出生日期等个人信息,以及有效期、准驾车辆的类型等信息,并由公安局在上面盖章。我们只要看到驾照,就可以知道公安局认定此人具有驾驶车辆的资格。
公钥证书(Public-Key Certificate,PKC)其实和驾照很相似,里面记有姓名、组织、邮箱地址等个人信息,以及属于此人的公钥,并由认证机构(Certification Authority、Certifying Authority,CA)施加数字签名。只要看到公钥证书,我们就可以知道认证机构认定该公钥的确属于此人。公钥证书也简称为证书(certificate)。
2. 为什么需要数字证书
用数字签名既可以识别出篡改和伪装,还可以防止否认。也就是说,我们同时实现了确认消息的完整性、进行认证以及否认防止。现代社会中的计算机通信从这一技术中获益匪浅。
然而,要正确使用数字签名,有一个大前提,那就是用于验证签名的公钥必须属于真正的发送者。即便数字签名算法再强大,如果你得到的公钥是伪造的,那么数字签名也会完全失效。
现在我们发现自己陷入了一个死循环一一数字签名是用来识别消息篡改、伪装以及否认的,但是为此我们又必须从没有被伪装的发送者得到没有被篡改的公钥才行。
为了能够确认自己得到的公钥是否合法,我们需要使用证书。所谓证书,就是将公钥当作一条消息,由一个可信的第三方对其签名后所得到的公钥。
3. 数字证书的格式
目前使用的数字证书格式遵循X.509标准;X.509定义了公钥证书结构的基本标准;X.509证书格式当前的版本是X.509v3。
4. 什么是PKI
仅制定证书的规范还不足以支持公钥的实际运用,我们还需要很多其他的规范,例如证书应该由谁来颁发,如何颁发,私钥泄露时应该如何作废证书,计算机之间的数据交换应采用怎样的格式等。
PKI(Public Key Infrastructure,公钥基础设施),是为了能够更有效地运用公钥而制定的一系列规范和规格的总称。通过数字证书管理加密密钥,提供认证、数据完整性、保密性和不可否认等安全服务。被广泛地用于电子商务中 ,最主要的任务就是确立可信赖的数字身份。
5. PKI的组成要素组件
PKI的组成要素主要有以下3个:
-
用户--使用PKI的实体
-
认证机构CA--颁发证书的实体
-
仓库---保存证书的数据库
5.1 用户
用户就是像Alice、Bob这样使用PKI的人。用户包括两种:一种是希望使用PKI注册自己的公钥的人,另一种是希望使用已注册的公钥的人。我们来具体看一下这两种用户所要进行的操作。
-
注册公钥的用户所进行的操作
-
生成密钥对(也可以由认证机构生成)
-
在认证机构注册公钥
-
向认证机构申请证书
-
根据需要申请作废已注册的公钥
-
解密接收到的密文
-
对消息进行数字签名
-
-
使用已注册公钥的用户所进行的操作
-
将消息加密后发送给接收者
-
验证数字签名
-
5.2 认证机构(CA)
认证机构(Certification Authority,CA)是PKI的核心,CA是公钥基础设施中受信任的第三方实体,对证书进行管理,是信任的起点。
认证机构CA具体所进行的操作如下。
- 生成密钥对(也可以由用户生成)
- 在注册公钥时对本人身份进行认证
- 生成并颁发证书
- 作废证书
- 我国依法取得数字证书认证资格的机构
- 北京数字证书认证中心有限公司
- 天津电子认证服务中心
- 中国金融认证中心有限公司
- 山东省数字证书认证管理有限公司
- 陕西省数字证书认证中心有限责任公司
- 深圳市电子商务安全证书管理有限公司
- 江苏省电子商务证书认证中心有限责任公司
- 浙江省数字安全证书管理有限公司
- ......
5.3 仓库
仓库(repository)是一个保存证书的数据库,PKI用户在需要的时候可以从中获取证书,它的作用有点像打电话时用的电话本。仓库也叫作证书目录。
5.4 PKI的体系结构
PKI系统中可以包含多个CA,PKI体系结构使用的技术模型:层次结构模型、交叉证明、混合模型。
5.4.1 层次结构模型
在一个层次结构中创建多个CA;最顶层是根CA,子CA在根CA下面;根CA具有亲自签署的证书,根CA向子CA发行证书;只要终端实体信任根CA,它也就信任子CA;终端实体可以从某个子CA及其同等逻辑层次上的CA上检索证书。
优点:简单易用,灵活性大;如果一个主体信任根CA,则该主体也信任子CA。
缺点:根CA是单一故障点;如果根CA受到损害,那么整个层次结构中的证书全都变得不可靠。
5.4.2 交叉证明模型
交叉证明指CA之间互相证明以建立一种横向信任关系,这是一种对等信任模型
交叉证明为不同PKI实现相互集成提供了方便途径
5.4.3 混合模型
混合(Hybrid)模型是证书层次结构同交叉证明的结合;交叉证明可以在两个层次结构的任何两个CA间进行,信任仅存在于这两个CA及其下面的子CA之间;混合模型很灵活,公司可以根据不同的业务需要建立不同层次的信任。