6-6 数字证书与CA
数字证书与CA简介

公钥加密的关键在于——怎么确定这就是Bob的公钥,如何避免他人伪造?
如何获取可信的Bob公钥——获取Bob数字证书,数字证书由权威机构CA签名背书
数据通信中,使用数字证书证明某个人的公钥确实属于该人,用CA的私钥为所有者的公钥进行签名
数字证书类比

类比:身份证就是一个“证书”,其颁发机构就是一个权威机构,权威机构用机构私钥对用户的公钥进行签名,以证明该用户公钥的可靠性,伪造身份证的成本极高
数字证书实例如下:

PKI体系结构

PKI组成部分如下:(记忆PKI有哪些组成部分,要知道RA和CA各自负责什么工作)
- 用户/终端实体:指将要向认证中心申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。
- 注册机构RA:负责受理用户申请证书,对申请人的合法性进行认证,并决定是批准或拒绝证书申请。注册机构并不给用户签发证书而只是对用户进行资格审查。较小的机构,可以由CA兼任RA的工作证书颁发工作。
- 证书颁发机构CA:负责给用户颁发、管理和撤销证书。
- 证书发布系统:负责证书发放,如可以通过用户自已或是通过目录服务。
- CRL库:证书吊销列表,存放过期或者无效证书。
例题
例题1

解析:M消息是通过A的私钥进行签名得到的,验签肯定需要使用A的公钥来验证
例题2

解析:
数字证书:网络通信中标识通信各方身份信息的一串数字,是一种在lnternet上验证通信实体身份的方式,类似身份证。它由一个由权威机构CA(证书授权中心)发行的,人们可以在网上用它来识别对方的身份。数字证书经CA数字签名,包含公开密钥拥有者信息以及公开密钥的文件。
数字签名:数字签名使用的是公钥算法(非对称密钥)可以解决否认、伪造、篡改和冒充的问题(数据的完整性和不可抵赖性)
例题3

解析:
- X.509数字证书标准推荐使用的密码算法是RSA
- 国密SM2数字证书采用的公钥密码算法是ECC椭圆曲线加密算法
例题4

例题5

解析:CA使用自己的私钥为网站的公钥进行签名,可以CA的公钥来验证CA签名,以确保证书有效性,从而保证网站的真伪
例题5

解析:数字证书中包含用户的公钥和CA用私钥为证书的签名
证书链及其表示
(证书链表示是一个考点,频率不高)
如果用户数量很多,通常有多个CA,每个CA为一部分用户发行和签署证书
如果有两个CA,X1和X2,假设用户A从CA机构X1获得了证书,用户B从X2获得证书;如果两个证书发放机构X1和X2彼此间安全交换了公钥,彼此信任,那么他们的证书可以形成证书链,则A和B就可以互相信任。
A通过一个证书链来获取B的公钥,证书链表示为:X1《X2》X2《B》
B也能通过相反的证书链来获取A的公开密钥:X2《X1》 X1《A》
**X1《X2》X2《B》**符号表示:
| 符号 | 说明 | 含义 |
|---|---|---|
| X2《B》 | X2为B颁发的证书 | 用X2私钥为B的签名证书(笔者注:实际上该式结果为B的公钥) |
| X1《X2》 | X1为X2颁发的证书 | 用X1私钥为X2的验签公钥(X2)签名(笔者注:实际上该式结果为X2的公钥) |
解释:A欲拿到B的公钥——拿到X2私钥为B的签名证书X2《B》——欲验签此证书则需拿到X2的验签公钥(X2)——用X1私钥为X2的验签公钥(X2)签名X1《X2》——A使用自己手上的X1验签公钥验签[X1《X2》]得到X2的验签公钥(X2)——使用X2的验签公钥X2验签[X2《B》]得到B的公钥
浏览器接收到服务器证书后,为了验证证书是不是合法的,首先需要拿到签发该证书的私钥对应的公钥,这个公钥也是以证书的形式存在,俗称CA证书,最顶级的CA证书也称为根证书(自签名证书),这些证书都是由浏览器内置在发行包, 或者内置在操作系统的发行包作为信任链的终点。
通过上述解释过程可知:X1和X2彼此间安全交换了公钥,本质上需要彼此为对方CA的公钥进行签名,于是得到的证书链为:X1《X2》X2《B》其中X1《X2》表示X1为X2的公钥进行签名,X2《B》表示X2为B自己的公钥进行签名
例题
例题1

解析:两个用户分别从两个CA中取得各自证书后,接下来,两个CA要相互交换CA的公钥去验证对方身份。
例题2

解析:我们例题讲过的原题,相当于X1和X2是大哥,A和B分别是他们的小弟,要让小弟直接互相信任,则大哥之间要彼此信任。如果用户数量很多,通常由多个CA,每个CA为一部分用户发行和签署证书。如果有两个CA,X1和X2,假设用户A从CA机构X1获得了证书,用户B从X2获得证书,如果两个证书发放机构X1和X2彼此间安全交换了公钥,彼此信任,那么他们的证书可以形成证书链。
- A通过一个证书链来获取B的公钥,证书链表示为:X1《X2》X2《B》。
- B也能通过相反的证书链来获取A的公开密钥:X2《X1》X1《A》
例题3

解析:私钥不能随意交换,直接排除B和D选项。A和B选项两个用户之间交换证书是认证彼此的身份,要让不同CA颁发的证书能互认,贝则需要CA间交换各自的公钥,故选择C
例题4

解析:不同CA颁发的证书不能直接信任,需要两个CA间先构建信任关系,即证书链。