目前主流網站都會使用SSL做兩方面的傳輸,但很少人知道運作原理,這邊就先記錄一下
通常我們加密有兩種方式
- 對稱式加密
- 非對稱式加密
對稱式加密
- 優點
- 加解密都用同一把key
- 因Client and Server都用同一把key,運算速度加
- 問題點
- 如果有一方的key外洩,這有資安問題
- 如何有效的傳送共用金鑰
非對稱式加密
- 特性
- 已公開金鑰進行加密的資料,只用用私鑰去做解密
- 運用方式是將公開金鑰傳給Client端,Server則保留私鑰
- 很難去破解和反推算私鑰
- 缺點
- 運算相對複雜,對電腦效能會造成負擔
SSL 伺服器取得憑證原理
- 管理者在伺服器上產生公鑰和私鑰
- 將公開的金鑰資訊以CSR(Certificate Signing Request)方式提交給憑證機構(Certificate Authority)
- 憑證機構進行審查並發送數位憑證(公開金鑰和數位簽章)
- 管理者拿到數位憑證後安裝到伺服器上
SSL 進行加密和通訊的流程
- Client連線到伺服器,伺服器回傳數位憑證(公開金鑰和數位簽章)給用戶
- Clinet拿到數位憑證後,確認伺服器的身分
- 因為效能問題Client和伺服器要使用對稱式加密方法傳送資料,但傳送公鑰的方法會使用非對稱式加密去進行
- Client先將公用金鑰用伺服器公開金鑰去加密,並傳給伺服器,伺服器收到後用私鑰進行解密,並製作共用金鑰
- Client也在製作共用金鑰中
- 兩邊都有同樣的key,傳輸速度會變快