证书工作流程
证书工作流程
先了解一些相关的概念
公私秘钥:加密数据,生成会话密钥;
签名算法:生成摘要,防篡改,Hash之后私钥加密,验证方需要公钥解密,然后解密的内容Hash一下,验证两次摘要是否一致;
证书:数字身份证,验证身份有效性,通过CA签发链一级级验证,验证过程是从下至上,根证书存于系统;
在证书链校验过程中,客户端使用上一级证书的公钥来验证下一级证书的签名。这一过程通过一系列步骤来确保证书的真实性和有效性。具体步骤如下:
提取签名:
客户端从要验证的证书中提取出数字签名本身。这个签名是由上一级CA的私钥生成的。提取证书信息:
客户端接着提取证书中的所有其他信息,即被签名的内容,这通常包括证书的版本、序列号、签发者、有效期、主题、主题公钥信息、扩展等。这些信息组合起来构成证书的“tbsCertificate”(To Be Signed Certificate)部分。计算哈希值:
客户端使用与证书签名相同的哈希算法(如SHA-256)对“tbsCertificate”部分的内容计算哈希值。使用公钥解密签名:
客户端使用上一级CA证书中的公钥对证书中的数字签名进行解密。解密的结果应该是一个哈希值,这个哈希值与证书签名时使用的哈希算法和内容相对应。比较哈希值:
客户端将解密得到的哈希值与第3步计算的哈希值进行比较。如果两者相同,说明签名有效,证明证书确实是由拥有相应私钥的CA签发的。
这个过程保证了证书链中每个证书都是由它的直接父CA正确签发的,直到根CA证书。由于根CA证书是预置于客户端(操作系统或浏览器)中的,并且被默认信任,所以这个过程为整个证书链提供了信任的基础。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jim zhang's Blog!