iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
自我挑戰組

前端補給站,每天一個知識點系列 第 27

Day26【Web】TCP 安全協定:SSL/TLS

SSL 安全通訊協定
(Secure Socket Layer)和
TLS 傳輸層安全性協定
(Transport Layer Security)
都是網路傳輸的加密安全協議。

其中 SSL 是 TLS 的前身,
於 1995 年被開發出來,
用保障網路數據傳輸的安全性,
但 SSL 的機制並不完善,
於是在 1999 年推出了 TLS,
現在大多數設備則都已支援 TLS 1.2。

現在兩者多被並稱,使用「SSL/TLS」
這樣的寫法來表述網路加密協議。


SSL/TLS 的用途

HTTP(超文本傳輸協定)
是一種網際網路的傳輸協議,
能將瀏覽網頁傳遞到瀏覽器上。

但 HTTP 連線本身並沒有安全機制,
傳送的數據會公開發送在網路上,
相當容易受到中間人攻擊,
被竊取其中的私密資料。

結合 HTTP 傳輸技術與 SSL/TLS 加密技術,
HTTPS(超文本傳輸安全協議)因此誕生,
讓數據傳輸有了安全保障。

SSL/TLS 的主要功能

  • 認證網站,確保數據確實發送到正確的網站,而非假冒的釣魚網站。
  • 建立加密連線,以防止數據中途被竊取
  • 確保數據的完整性,確保數據在傳輸過程中不會被改變。

運作方式

  • SSL/TLS 握手協議(SSL handshake)
  • SSL/TLS 紀錄層

SSL 握手協議

主要目的是建立安全的溝通方式,
會在傳輸前溝通雙方(用戶端與伺服器端)
所使用的加密演算法或密鑰交換演算法
以及身分認證等,並交換傳輸用的密鑰。

具體方式是先以非對稱式加密交換金鑰,
再用金鑰進行對稱式加密。

  1. 客戶端發出請求,將客戶端支援的 SSL 版本和加密演算法發送給網頁伺服器。
  2. 伺服器收到客戶端的請求並回應請求,接著傳送 SSL 證書和公鑰。
  3. 客戶端拿到伺服器的公鑰後即可進行非對稱式加密,客戶端用伺服器的公鑰建造「pre-master secret」,並發送給伺服器,以建造「對話金鑰(session key)」,也就是保證之後對話安全的鑰匙。
  4. 伺服器收到「pre-master secret」後進行解密拿到金鑰,此後兩端對話都使用這把金鑰,成為對稱式加密,傳輸速度比非對稱式更加速迅有效率。

SSL/TLS 紀錄層

紀錄層中有一個『記錄協定』(Record Protocol),
功能是加密傳輸資料,
根據加密演算法不同,也可能會壓縮數據,
數據在加密後就會傳送至傳輸層,
並在傳輸層決定以何種方式發送訊息。


SSL 憑證

支援 TLS 的網頁伺服器都必須安裝「SSL憑證」,
在 SSL/TLS 握手過程中
擁有憑證的網站才能提供安全連線。

SSL 憑證由受信任的數位憑證認證機構
(Certificate Authority,CA)核發,
如 TWCA 臺灣網路認證公司。

協議與憑證並相不同,
連線期間將使用 SSL 或 TLS 協議
取決於瀏覽器和伺服器的設定,
所以也可能存在具有 HTTPS
但使用過時 SSL v3.0 協議的網站。

這種連線很容易受到攻擊,
多數新版瀏覽器會在網址列中提示 HTTPS 連線狀況,
通常出現鎖頭符號代表安全連線。
如果擔心意外連到只支援 SSL v3.0 的網站,
可以手動停用 SSL 連線,但可能導致連線中斷。

SSL 憑證皆設有到期日,並註明簽發單位,
SSL 憑證必須定期更新以維持憑證有效性,
如果網站的SSL憑證過期,
瀏覽器會將網站視為不安全。
如果網站安裝非 CA 機構核發的憑證或偽照憑證,
瀏覽器也會將網站視為不安全。


參考資料


上一篇
Day25【Web】TCP 連線與斷線:三次握手、四次揮手
下一篇
Day27【CSS】偽類 & 偽元素
系列文
前端補給站,每天一個知識點30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言