图解密码技术 - 证书
Contents
公钥证书(Public-Key Certificate,PKC)
记录了公钥所有者的组织、邮箱地址、公钥等信息,并由认证机构(Certification Authority,CA)
施加数字签名
公钥基础设施
公钥基础设施(Public-Key Infrastructure,PKI)
是为了能够更加有效地运用公钥而指定的一系列规范和规格的总称。
主要组成如下:
用户
:使用PKI的人,包括注册公钥的人和使用公钥的人。- 生成密钥对
- 在认证机构注册公钥
- 从认证机构申请证书
- 根据需要申请作废已注册的公钥
- 解密接收到的密文
- 对消息进行数字签名(以上为注册公钥者的行为)
- 将消息加密后发送给接收者
- 验证数字签名
认证机构
:颁发证书的人- 生成密钥对
- 在注册公钥时对本人身份进行认证
- 生成并颁发证书
- 作废证书
仓库
:存放证书的数据库- 存放证书
认证机构
的一个重要工作是,当用户的私钥丢失、被盗时,或者其他情况下,需要对证书进行作废。此时,认证机构
会制作一张证书作废清单(Certificate Revocation List,CRL)
。
PKI用户
在使用证书时,需要查询认证机构最新的CRL,并确认该证书是否有效
!
此外,证书还有层级之分,A认证机构颁发的证书使用的签名是A的上级认证机构的签名,最上层的根证书自签名。具体如图所示。
针对证书的攻击
中间人攻击
,攻击者Eve把自己伪装成认证机构,将自己的公钥颁发证书,伪装成"Bob的证书",发送给Alice,Alice得到证书后,使用Eve公布的公钥对此进行验证,发现合法,于是使用此公钥加密消息发送给Bob,Eve从中截取了消息,并用自己的私钥进行解密。
针对CRL攻击
,此攻击利用CRL发布的时间差来发动攻击
。攻击者窃取了Bob的私钥,将消息和用Bob的私钥进行加密的数字签名一同发给Alice。Alice使用Bob的公钥对消息进行验证时,发现发送者为"Bob"。第二天,Bob将密钥失窃告诉认证机构,认证机构更新CRL,但Alice已经相信了昨晚的Bob。