数字证书(如网站证书)的数字签名基于哪些数据生成?
数字证书中数字签名对应的内容
数字证书里的数字签名,是CA对证书内除签名字段本身外的所有核心内容的哈希值,用CA私钥加密生成的,具体包含的内容如下:
- 证书所有者的身份信息(比如网站域名、组织名称等)
- 证书颁发者(CA)的身份信息
- 证书所有者的公钥
- 证书的有效期(生效时间、过期时间)
- 证书序列号、签名算法标识等元数据
之所以不对整个证书签名,是因为签名本身属于证书的一部分:如果先签名再把签名加入证书,整个证书的内容就会改变,之前生成的签名也就失效了。实际流程是CA先把上述所有需要验证的核心内容整理成固定格式的待签名数据块,对这个数据块计算哈希值,再用自身私钥加密得到签名,最后把签名附加到数据块后,才形成完整的数字证书。
验证时,只需剥离证书里的签名字段,取出剩余核心内容用相同算法计算哈希,再用CA公钥解密证书中的签名得到原始哈希值,对比两者是否一致,就能确认证书内容未被篡改且确为对应CA签发。
内容的提问来源于stack exchange,提问作者user3541631
相关产品推荐
相关产品推荐

