客戶端請求伺服器RSA數字證書,伺服器將自己的證書、給自己簽名的二級CA證書、給二級CA簽名的一級CA證書,一股腦發給客戶端。客戶端驗證以上三個證書形成的證書鏈,信任的源頭就是操作系統/瀏覽器早已安裝的一級CA證書明文公鑰。認證完成會進入下一個環節,RSA密鑰交換演算法。
客戶端調用偽隨機函數PRF,PRF返回一串偽隨機字元串,字元串被客戶端用伺服器RSA證書公鑰加密,發給伺服器。伺服器使用RSA證書私鑰解密,獲取明文字元串。至此雙方共同分享了一個共同的秘密,「偽隨機字元串」,雙方以此為素材,共同推導出AES對稱加密/解密「密鑰」,推導過程略。
完全隨機函數很難實現,所以才有了偽隨機函數的叫法,意思是接近隨機。為了讓PRF輸出的字元串最大可能隨機,可以將用戶滑動滑鼠的軌跡取樣生成隨機素材,也可以以當前時間+ 隨機數的組合,然後選擇感興趣素材為輸入量,運行Hash函數,得到偽隨機字元串。