数字证书与数字签名是 PKI(公钥基础设施)中相辅相成的两个核心概念,前者解决身份认证 问题,后者保障数据完整性与不可否认性。
一、核心定义与作用
表格
| 维度 | 数字证书 (Digital Certificate) | 数字签名 (Digital Signature) |
|---|---|---|
| 本质 | 公钥的 "身份证" | 数据的 "防伪封条" |
| 核心作用 | 证明公钥归属,解决 "公钥真伪" 问题 | 验证数据来源与完整性,确保 "内容未被篡改" |
| 签发 / 生成 | 由权威 CA(证书颁发机构) 签发 | 由数据发送方用自己的私钥生成 |
| 包含内容 | 持有者身份、公钥、有效期、CA 签名 | 数据的哈希摘要(经私钥加密) |
| 验证方式 | 用 CA 的公钥 验证证书合法性 | 用 发送方的公钥 验证签名有效性 |
二、工作原理
-
数字签名
- 签名 :发送方对原始数据计算哈希摘要,并用私钥加密,生成签名。
- 验证 :接收方用发送方公钥解密签名,与自身重新计算的哈希摘要比对,一致则说明数据完整且来源可信。
- 关键特性:完整性、不可否认性、不可伪造。
-
数字证书
- 标准遵循 X.509 格式,由 CA 对 "持有者身份 + 公钥" 进行数字签名,形成证书。
- 验证时,用 CA 公钥确认证书未被篡改,从而信任其中的公钥。
三、典型应用场景
- HTTPS 通信:网站出示数字证书证明身份,浏览器验证后,用证书中的公钥加密传输会话密钥,后续用对称加密通信。
- 电子合同:用个人 / 企业私钥对合同签名,他人用你提供的证书(含公钥)验证,确保合同不可篡改且你无法抵赖。
- 代码 / 软件发布:开发者用私钥签名安装包,用户用证书验证,防止下载到被植入恶意代码的程序。
四、二者关系
- 数字证书包含数字签名:证书的合法性由 CA 的数字签名保证。
- 数字签名依赖数字证书:验证签名时,通常需要用证书中的公钥来确认签名者身份。
五、 典型传输流程
- 发送方
- 对数据做数字签名(用自己私钥)
- 用对称加密把【数据 + 签名】整体加密
- 网络传输:全是密文,别人截了也看不懂
- 接收方
- 解密得到原文 + 签名
- 用CA公钥验证证书,用证书中对方公钥验证签名,确认没被改、是谁发的