公私鑰:公鑰可以唯一解密私鑰加密過的數據,反之亦然。以下用P指代公鑰,V指代私鑰。
SSL過程:需要兩對公私鑰(P1,V1),(P2,V2),假設通信雙方是A和B,B是服務器,A要確認和它通信的是B:
A->B: hello
B->A: 用V2加密過的P1(即用戶證書,A就用P2解密出P1)
A->B: ok
B->A: 用V1加密的一段信息
A->B: 用P1加密一個自動生成的K(用之前的P1解密成功這段信息則認為B是可信的了)
B->A: 用K加密的數據(之後兩對密鑰功能結束,由K來加解密數據)
這裏,P2就是第3方的CA證書,由於非對稱加密很慢,所以公私鑰隻是用來保證K的傳送安全,之後通信是用K的對稱加密算法來保證。
為什麼通過以上過程A就能夠確定肯定是B,而不是某個C在假裝B了呢?因為這個過程中,B用V1加密過一段信息發給A,A也成功解開了。我們開頭談到公鑰(P1)隻可以唯一解密私鑰(V1)加密過的信息,這樣A就可以完全相信B是擁有V1的,而V1是嚴格保密,隻被服務提供公司擁有,所以保證了通信的服務方正確性。
這裏(P2,V2)就是certificate authority (CA)用來給客戶簽名用的公私鑰。
(P1,V1)是客戶自己的公私鑰,提交給CA,CA所做的事情就是用(P2,V2)來給客戶的(P1,V1)簽名,簡單吧?
V2是CA公司要保密的,而P2就是公用CA證書。用V2加密過(簽名過)的P1,稱為用戶證書,一般被安裝在服務器端。
用戶登錄
還沒有賬號?立即注冊
用戶注冊
投稿取消
文章分類: |
|
還能輸入300字
上傳中....