https加密完整過程
step1: “客戶”向服務(wù)端發(fā)送一個(gè)通信請求
step2: “服務(wù)器”向客戶發(fā)送自己的數(shù)字證書。證書中有一個(gè)公鑰用來加密信息,私鑰由“服務(wù)器”持有
“服務(wù)器”->“客戶”:你好,我是服務(wù)器,這里是我的數(shù)字證書
step3: “客戶”收到“服務(wù)器”的證書后,它會(huì)去驗(yàn)證這個(gè)數(shù)字證書到底是不是“服務(wù)器”的,數(shù)字證書有沒有什么問題,數(shù)字證書如果檢查沒有問題,就說明數(shù)字證書中的公鑰確實(shí)是“服務(wù)器”的。檢查數(shù)字證書后,“客戶”會(huì)發(fā)送一個(gè)隨機(jī)的字符串給“服務(wù)器”用私鑰去加密,服務(wù)器把加密的結(jié)果返回給“客戶”,“客戶”用公鑰解密這個(gè)返回結(jié)果,如果解密結(jié)果與之前生成的隨機(jī)字符串一致,那說明對方確實(shí)是私鑰的持有者,或者說對方確實(shí)是“服務(wù)器”。
“客戶”->“服務(wù)器”:向我證明你就是服務(wù)器,這是一個(gè)隨機(jī)字符串 //前面的例子中為了方便解釋,用的是“你好”等內(nèi)容,實(shí)際情況下一般是隨機(jī)生成的一個(gè)字符串。
“服務(wù)器”->“客戶”:{一個(gè)隨機(jī)字符串}[私鑰|RSA]
step4: 驗(yàn)證“服務(wù)器”的身份后,“客戶”生成一個(gè)對稱加密算法和密鑰,用于后面的通信的加密和解密。這個(gè)對稱加密算法和密鑰,“客戶”會(huì)用公鑰加密后發(fā)送給“服務(wù)器”,別人截獲了也沒用,因?yàn)橹挥小胺?wù)器”手中有可以解密的私鑰。這樣,后面“服務(wù)器”和“客戶”就都可以用對稱加密算法來加密和解密通信內(nèi)容了。
“服務(wù)器”->“客戶”:{OK,已經(jīng)收到你發(fā)來的對稱加密算法和密鑰!有什么可以幫到你的?}[密鑰|對稱加密算法]
“客戶”->“服務(wù)器”:{我的帳號是aaa,密碼是123,把我的余額的信息發(fā)給我看看}[密鑰|對稱加密算法]
“服務(wù)器”->“客戶”:{你好,你的余額是100元}[密鑰|對稱加密算法]
…… //繼續(xù)其它的通信
上面的過程已經(jīng)十分接近HTTPS的真是通信過程了,完全可以按照這個(gè)過程去理解HTTPS的工作原理。相信大家都應(yīng)該能明白HTTPS通信了。
如有疑問請留言或者到本站社區(qū)討論交流,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:- 深入講解HTTPS中的加密算法
- nginx環(huán)境下配置ssl加密(單雙向認(rèn)證、部分https)
- Android 安全加密:Https編程詳解