SSL/TLS 握手過程:
網(wǎng)上找的一張圖比較清楚
image.png
單項(xiàng)認(rèn)證具體過程(C(客戶端)和S(服務(wù)端)通信):
C>>S:(提供支持加密算法,加密算法有DES,RC5,密鑰交換算法有RSA和DH,摘要算法有MD5和SHA)發(fā)送消息給服務(wù)端。
S>>C:1,(根據(jù)C支持算法選出一組最安全的算法)我們選 DES-RSA-SHA這對組合
2,(同時(shí)把自己的證書給C) 這是我的證書你驗(yàn)證一下
C>>S:1,(依據(jù)本地保存的證書,來驗(yàn)證S傳來的證書,如果有問題則斷開并發(fā)出警告)
2,(產(chǎn)生一份秘密消息,將秘密消息進(jìn)行處理,生成加密密鑰,加密初始化向量和hmac的密鑰)用加密的辦法給你發(fā)消息了!
S>>C:(用自己的私鑰將ClientKeyExchange中的秘密消息解密出來,然后將秘密消息進(jìn)行處理,生成加密密鑰,加密初始化向量和hmac的密鑰,這時(shí)雙方已經(jīng)安全的協(xié)商出一套加密辦法了)要開始用加密的辦法給你發(fā)消息了!
C>>S:用協(xié)議好的加密算法加密數(shù)據(jù)
S>>C:用協(xié)議好的加密算法加密數(shù)據(jù)
SSL協(xié)議是用非對稱密碼算法來協(xié)商密鑰,并使用密鑰加密明文并傳輸?shù)摹?/p>