iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
Security

網路安全基礎概念與實作系列 第 23

Day 23: SSL/TLS 加密通訊

  • 分享至 

  • xImage
  •  

SSL 和 TLS 是常見的網路通訊加密協議,我今天的目標是學習它們的工作原理還有如何保護數據傳輸,以及 SSL/TLS 的重要性在哪裡。

SSL 和 TLS 是什麼

SSL(Secure Sockets Layer)和 TLS(Transport Layer Security)都是用來加密網路通訊的協議。它們的作用是保護數據傳輸的機密、完整,和認證雙方身份,確保數據在傳輸過程中不會被竊取或篡改。SSL 和 TLS 讓我們的資料在互聯網上所進行的對話,即使有人攔截到對話內容,他們也無法讀懂,因為資料是加密的。

SSL 是較早期的加密協議,但隨著時間推移,SSL 存在一些安全漏洞,因此被 TLS 所取代。現在我們所用的 SSL 大多實際上指的是 TLS,因為 TLS 是 SSL 更安全的版本,很多人仍然習慣使用 SSL 這個名稱來指這兩者。

為什麼需要 SSL/TLS 加密

當使用者在瀏覽器中進到一個網站,尤其是需要輸入像是密碼、信用卡號碼等私人訊息時,如果沒有加密保護,這些資料在傳輸過程中可能會被攻擊者攔截或修改,這就是中間人攻擊(Man-in-the-Middle Attack), SSL/TLS 加密就是為了防止攻擊發生,保護數據的安全和隱私。

當一個網站使用 SSL/TLS 加密時,可以在瀏覽器的地址欄中看到一個小鎖頭圖示,網址的開頭會變成「https://」而不是「http://」,代表網站正在使用 HTTPS(HTTP Secure),也就是在 HTTP 協議上添加 SSL/TLS 加密的版本。

SSL/TLS 的步驟

SSL/TLS 協議的步驟大致分為兩個階段:握手階段和數據傳輸階段,以確保雙方之間的通訊是加密且安全的。

1. Handshake Phase

Handshake Phase 是 SSL/TLS 協議的初始過程,讓客戶端和伺服器相互確認對方的身份並協商加密方式。

  • 步驟一: Client Hello(客戶端問候)
    客戶端發送 Hello 的訊息給伺服器,告訴它能夠支援的加密演算法(RSA、AES)、TLS 版本、和一些隨機數據。

  • 步驟二: Server Hello(伺服器問候)
    伺服器回應客戶端,選擇一個雙方都支援的加密演算法,並附上伺服器的證書(通常是數位證書,包含伺服器的公開金鑰)和它生成的隨機數。

  • 步驟三: Certificate Verification(證書驗證)
    客戶端會驗證伺服器發來的證書,確保它是由可信任的憑證頒發機構(CA)簽發且有效。如果證書無效,連線將中斷。

  • 步驟四: Key Exchange(密鑰交換)
    客戶端使用伺服器的公開金鑰加密一個隨機生成的「會話密鑰」,並將這個加密的會話密鑰發給伺服器。伺服器使用它的私密金鑰解密這個密鑰,從而確立雙方之間的共享會話密鑰。

  • 步驟五: Finish Handshake(完成握手)
    雙方通過計算並交換一個握手完成訊息來確認握手過程無誤,並開始進入安全的數據傳輸階段。

2. 數據傳輸階段(Data Transfer Phase)

以上步驟完成後,雙方將使用剛才協商的會話密鑰來進行實際的數據加密和傳輸。具體過程如下:

  • 步驟六: 加密數據傳輸
    客戶端和伺服器使用協商好的會話密鑰,對應用層的資料進行加密(通常是對稱加密,如 AES),並傳輸這些加密後的數據。即使第三方截獲數據,也無法讀取內容,因為數據是加密的。

  • 步驟七: 驗證數據完整性
    每次數據傳輸時,雙方還會附加一個訊息驗證碼(Message Authentication Code, MAC),以確保數據在傳輸過程中沒有被竄改。如果發現數據被修改,接收端可以立刻拒絕這段數據。

3. 關閉連線

當數據傳輸結束時,客戶端和伺服器會通過發送一個關閉警告訊息,表示它們要終止加密連線。

SSL/TLS 的安全性保障

  1. 身份驗證:伺服器通過數位憑證向瀏覽器證明自己的身份,確保用戶連接到的是真正的網站,而不是假冒的網站。
  2. 資料加密:所有傳輸的數據都被加密,攻擊者無法在攔截之後讀取數據內容。
  3. 資料完整性:SSL/TLS 也會進行資料完整性的檢查,確保數據在傳輸過程中不會被竄改,透過訊息認證碼(MAC, Message Authentication Code)來檢查收到的資料是否被改變。

TLS 1.2 vs. TLS 1.3

TLS 1.2 是目前最常用的版本,但越來越多的網站和服務開始轉向 TLS 1.3,因為 TLS 1.3 有不少進步,不但有更的安全性,刪除許多不安全的加密算法,還提升性能,使網速加快。

生活上使用 SSL/TLS 的例子

幾乎所有現代網站都使用 SSL/TLS 來加密數據,尤其是電子商務網站、銀行網站和需要輸入密碼的應用程式。例如,當我們在網路上購物並輸入信用卡號碼時,SSL/TLS 就會保護我們的資料,確保這些敏感信息不會被攔截。


上一篇
Day 22: 網路分段與虛擬區域網路(VLAN)
下一篇
Day 24: 簡單模擬 SSL/TLS
系列文
網路安全基礎概念與實作26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言