Skip to content
难度基础(★)
建议时长45分钟

6.1.4 数字证书应用

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

数字证书解决什么问题

非对称加密里,公钥可以公开。但新问题是:你拿到的“某网站公钥”,怎么确认它真的属于这个网站,而不是攻击者伪造的公钥?

数字证书的作用就是把“实体身份”和“公钥”绑定起来,并由可信第三方 CA 签名背书。

对象作用
数字证书证明某个公钥属于某个实体
CA证书颁发机构,对证书签名并建立信任
证书签名CA 用自己的私钥对证书内容签名
CA 公钥用户用它验证 CA 签名
证书链从服务器证书逐级验证到可信根 CA

证书通常包含什么

内容意义
主体名称证书属于谁,如网站域名或组织
主体公钥被证明归属的公钥
颁发者哪个 CA 签发
有效期证书可用时间范围
序列号证书唯一标识
签名算法CA 签名使用的算法
CA 数字签名用于验证证书未被篡改且由 CA 签发

用户不会也不应该看到网站私钥。私钥只属于服务器自己;如果用户能拿到银行服务器私钥,那就能冒充银行或解密通信,这在安全模型中是不允许的。

网站合法性如何验证

课堂里的题目说:电子商务网站向 CA 申请数字证书,用户用什么验证网站合法性?关键是验证 CA 对证书的签名

流程可以这样理解:

  1. 网站把证书发给浏览器。
  2. 浏览器检查证书中的域名、有效期、撤销状态。
  3. 浏览器使用 CA 的公钥验证 CA 签名。
  4. 验签通过,说明证书确实由可信 CA 签发且内容未被改。
  5. 浏览器相信证书里的网站公钥确实属于该网站。
text
CA 私钥签发证书
用户/浏览器用 CA 公钥验证证书签名
证书可信 -> 网站公钥可信 -> 可以建立安全通信

公钥和签名的方向

场景用什么
验证 CA 签名CA 公钥
网站证明自己身份网站证书 + 对应私钥参与握手
A/B 双方验证对方签名获取对方证书中的公钥
生成不可否认签名自己的私钥

如果题干问“双方都要确认身份且不可否认”,思路是:双方都需要能验证对方签名,而验证签名需要对方公钥;对方公钥通常通过数字证书获得。

例题

单选
数字证书的主要作用是:
单选
负责签发数字证书的机构通常称为:
单选
用户验证某网站证书中 CA 签名真伪时,通常使用:

自查要点

  1. 公钥公开后为什么还需要数字证书?
  2. CA 签名证明的是网站私钥,还是网站身份与公钥的绑定?
  3. 为什么用户不可能也不应该看到网站私钥?
  4. 验证证书签名时使用 CA 的公钥还是网站公钥?