1>首先百度公司向权威的CA机构,申请CA证书,需要向CA权威机构提供5条的信息,包括持有者姓名,发证机关,有效日期,证书只有人的公钥,扩展信息。
2>CA机构用自己的私钥对上面5条信息进行MD5摘要,产生一个数字签名
3>Client端内置了根证书,内置了CA的公钥
4>Server内置了CA证书
单边认证https
单边认证用在https请求
分析上图
1>A1是Client向Server发起请求,A2服务器把证书给Client,此时Client由于内置了证书的公钥自然能看到证书中的内容。此时就证明了Server端是百度了。这就是不可以加密MD5的应用
2>Client端用证书中的第四条(持证人持有人公钥)中的公钥加密“123”给Server,Sever用自己的私钥解开后,B2把解开后的字符串发给Clinet。证明了Server就是证书对应的服务器。这就是Dse非对称可逆加密的应用
3>C1是客户端随机产生一个秘钥字符串“123”最为对称加密的秘钥,然后用百度的公钥加密后传输给Server
4>C2,Server收到后,用自己的私钥解开字符串,就拿到了秘钥字符串“123”,之后Client和Server通信的时候,就用“123”把信息进行加密,然后再传输。这就是RSA对称可逆加密的应用。
双边认证
双边认证和单边认证和相似,搞懂了单边认证,双边认证就容易理解了
分析上图
1>A1和A2和单边认证一样,证明了Server是招商银行
2>A3和A4和单边认证一样,证明了Server就是证书对应的服务器
3>B1和B2,B3也类似单边认证,证明Client端是小明
4>C1是Server随机产生一个秘钥,作为对称可逆加密的秘钥,用Client的公钥加密后,传给Client
5>之后Client和Server通信,都用“123”作为秘钥加密后进行传输