6.1.4 数字证书应用
本课核心知识点整理
数字证书解决什么问题
非对称加密里,公钥可以公开。但新问题是:你拿到的“某网站公钥”,怎么确认它真的属于这个网站,而不是攻击者伪造的公钥?
数字证书的作用就是把“实体身份”和“公钥”绑定起来,并由可信第三方 CA 签名背书。
| 对象 | 作用 |
|---|---|
| 数字证书 | 证明某个公钥属于某个实体 |
| CA | 证书颁发机构,对证书签名并建立信任 |
| 证书签名 | CA 用自己的私钥对证书内容签名 |
| CA 公钥 | 用户用它验证 CA 签名 |
| 证书链 | 从服务器证书逐级验证到可信根 CA |
证书通常包含什么
| 内容 | 意义 |
|---|---|
| 主体名称 | 证书属于谁,如网站域名或组织 |
| 主体公钥 | 被证明归属的公钥 |
| 颁发者 | 哪个 CA 签发 |
| 有效期 | 证书可用时间范围 |
| 序列号 | 证书唯一标识 |
| 签名算法 | CA 签名使用的算法 |
| CA 数字签名 | 用于验证证书未被篡改且由 CA 签发 |
用户不会也不应该看到网站私钥。私钥只属于服务器自己;如果用户能拿到银行服务器私钥,那就能冒充银行或解密通信,这在安全模型中是不允许的。
网站合法性如何验证
课堂里的题目说:电子商务网站向 CA 申请数字证书,用户用什么验证网站合法性?关键是验证 CA 对证书的签名。
流程可以这样理解:
- 网站把证书发给浏览器。
- 浏览器检查证书中的域名、有效期、撤销状态。
- 浏览器使用 CA 的公钥验证 CA 签名。
- 验签通过,说明证书确实由可信 CA 签发且内容未被改。
- 浏览器相信证书里的网站公钥确实属于该网站。
text
CA 私钥签发证书
用户/浏览器用 CA 公钥验证证书签名
证书可信 -> 网站公钥可信 -> 可以建立安全通信公钥和签名的方向
| 场景 | 用什么 |
|---|---|
| 验证 CA 签名 | CA 公钥 |
| 网站证明自己身份 | 网站证书 + 对应私钥参与握手 |
| A/B 双方验证对方签名 | 获取对方证书中的公钥 |
| 生成不可否认签名 | 自己的私钥 |
如果题干问“双方都要确认身份且不可否认”,思路是:双方都需要能验证对方签名,而验证签名需要对方公钥;对方公钥通常通过数字证书获得。
例题
数字证书的主要作用是:
负责签发数字证书的机构通常称为:
用户验证某网站证书中 CA 签名真伪时,通常使用:
自查要点
- 公钥公开后为什么还需要数字证书?
- CA 签名证明的是网站私钥,还是网站身份与公钥的绑定?
- 为什么用户不可能也不应该看到网站私钥?
- 验证证书签名时使用 CA 的公钥还是网站公钥?