6-6 数字证书与CA

数字证书与CA简介

image-20250308205934244

公钥加密的关键在于——怎么确定这就是Bob的公钥,如何避免他人伪造?

如何获取可信的Bob公钥——获取Bob数字证书,数字证书由权威机构CA签名背书

数据通信中,使用数字证书证明某个人的公钥确实属于该人,用CA的私钥为所有者的公钥进行签名

数字证书类比

image-20250308210125952

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

数字证书实例如下:

image-20240228211846074

PKI体系结构

image-20250308210238496

PKI组成部分如下:(记忆PKI有哪些组成部分,要知道RA和CA各自负责什么工作)

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

例题

例题1

image-20250308210731865

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

例题2

image-20250308210749028

解析:

  • 数字证书:网络通信中标识通信各方身份信息的一串数字,是一种在lnternet上验证通信实体身份的方式,类似身份证。它由一个由权威机构CA(证书授权中心)发行的,人们可以在网上用它来识别对方的身份。数字证书经CA数字签名,包含公开密钥拥有者信息以及公开密钥的文件。

  • 数字签名:数字签名使用的是公钥算法(非对称密钥)可以解决否认、伪造、篡改和冒充的问题(数据的完整性和不可抵赖性)

例题3

image-20250308210803304

解析:

  • X.509数字证书标准推荐使用的密码算法是RSA
  • 国密SM2数字证书采用的公钥密码算法是ECC椭圆曲线加密算法

例题4

image-20250308210818070

例题5

image-20250308210844278

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

例题5

image-20250308210855379

解析:数字证书中包含用户的公钥和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

image-20250308210953963

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

例题2

image-20250308211008239

解析:我们例题讲过的原题,相当于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

image-20250308211018320

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

例题4

image-20250308211025686

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

站内搜索

没有找到内容!