1 缘起
在探索加密算法过程中,了解到非对称加密和解密的应用:https认证,
于是,开始学习https认证过程,
刚开始查找资料时,了解到https的非对称加密和解密不就是公钥加密和私钥解密吗?
当然,是这么理解,
随着调研的深入,发现https的认证过程细节还是蛮多的,
比如,证书从哪来、公钥加密私钥解密在哪、对称加密又在哪?
最终,整理成文,帮助读者全面掌握https的认证过程,
轻松应对知识考核与交流。
2 加密解密过程
Https认证过程(加密/解密)过程如下图所示,
由图可知,从证书获取到完成认证共有15步,
每一步都有详细的说明,方便理解和记忆,
后面一节有纯文字的解析。
3 过程分析
为保证服务端和客户端彼此信任,需要一个中立的权威机构,作为信任担保,
于是CA便诞生了(Certificate Authority),作为认证机构,为服务器颁发证书,多方均认可该证书。
所以,https认证过程需要先从证书颁发讲起,先约定角色:客户端C和服务端S,
服务端为保证传输数据安全,先在本地生成公钥和私钥(成对出现,作为非对称加密解密的密钥),
其中,公钥用于向CA申请证书、传递给客户端加密,
服务端向CA提交公钥,换取数字证书,并安装在服务端,
当客户端向服务端发起请求时(携带随机种子r1),
服务端将根证书传递给客户端(携带随机种子r2),
客户端主机使用内置CA公钥验证服务器证书(客户端内置的会下载CA的公钥),
校验通过,则提取服务器传输的公钥,
使用服务器公钥非对称加密随机种子r3,生成PreMaster Key传递给服务端,
服务端使用私钥解密PreMater Key,获取随机种子r3,
此时,客户端和服务端均有随机种子r1、r2和r3,
服务端与客户端会约定:使用对称加密算法加密r1、r2和r3,作为消息加密和解密的密钥,
这个过程仅确信消息,不会传递r1、r2和r3,所以,不会泄露r1、r2和r3,
r3是经过非对称加密传输的,暴力破解难度极大,并且有三份随机种子,
约定之后,服务端使用对称加密的密钥加密数据传递给客户端,
客户端使用密钥进行对称算法解密,解析数据,
完成https认证和数据解析。
4 小结
无。