什麼是 TLS(傳輸層安全性)?

TLS 是一種安全協定,可為網際網路通信提供私密性和資料完整性。實施 TLS 是構建安全 web 應用的一個標準實踐。

學習目標

閱讀本文後,您將能夠:

  • 定義傳輸層安全性(TLS)
  • 解釋 TLS 的工作原理
  • 區分 TLS 和 SSL
  • 瞭解 TLS 如何影響效能
  • 概述如何實施 TLS

複製文章連結

什麽是傳輸層安全性(TLS)?

傳輸層安全性(Transport Layer Security,TLS)是一種廣泛採用的安全性協定,旨在促進網際網路通信的私密性和資料安全性。TLS 的主要用例是對 web 應用程式和伺服器之間的通信(例如,web 瀏覽器載入網站)進行加密。TLS 還可以用於加密其他通信,如電子郵件、消息傳遞和 IP 語音(VOIP)等。在本文中,我們將重點介紹 TLS 在 web 應用程式安全中發揮的作用。

TLS 由網際網路工程任務組(Internet Engineering Task Force, IETF)提出,協議的第一個版本於 1999 年發佈。最新版本是 TLS 1.3,發佈於 2018 年。

TLS 和 SSL 之間有什麼區別?

Netscape 開發了名為安全通訊端層(Secure Socket Layer,SSL)的上一代加密協議,TLS 由此演變而來。TLS 1.0 版實際上最初作為 SSL 3.1 版開發,但在發佈前更改了名稱,以表明它不再與 Netscape 關聯。由於這個歷史原因,TLS 和 SSL 這兩個術語有時會互換使用。

TLS 和 HTTPS 有什麼區別?

HTTPS 是在 HTTP 協議基礎上實施 TLS 加密,所有網站以及其他部分 web 服務都使用該協定。因此,任何使用 HTTPS 的網站都使用 TLS 加密。

為什麼企業和 web 應用程式應該使用 TLS 協定?

TLS 加密可以幫助保護 web 應用程式免受攻擊,如數據外洩和 DDoS 攻擊等。此外,受 TLS 保護的 HTTPS 正在迅速成為網站的標準實踐。例如,Google Chrome 瀏覽器正在打擊非 HTTPS 網站,而且日常的網際網路使用者也開始更加警惕那些沒有 HTTPS 掛鎖圖示的網站。

TLS 有什麼作用?

TLS 協定實現的功能有三個主要組成部分:加密、認證和完整性。

  • 加密:隱藏從第三方傳輸的資料。
  • 身份驗證:確保交換資訊的各方是他們所聲稱的身份。
  • 完整性:驗證資料未被偽造或篡改。

TLS 的工作原理是什麼?

網站或應用程式要使用 TLS,必須在其原始伺服器上安裝 TLS 憑證(由於上述命名混淆,該憑證也被稱為 SSL 憑證)。TLS 證書由證書權威機構頒發給擁有域的個人或企業。該憑證包含有關域所有者的重要資訊以及伺服器的公開金鑰,兩者對驗證伺服器身份都很重要。

TLS 連接是通過一個稱為 TLS 握手的流程啟動的。當使用者導航到一個使用 TLS 的網站時,使用者裝置(也稱為用戶端裝置)和 web 伺服器之間開始 TLS 握手。

在 TLS 過程中,使用者裝置和 web 伺服器:

  • 指定它们将使用的 TLS 版本(TLS 1.0、1.2、1.3等)
  • 决定它们将使用的密码套件(如下)
  • 使用伺服器的 TLS 憑證驗證伺服器的身份
  • 生成工作階段金鑰,用於握手完成後加密兩者之間的消息

TLS 握手為每個通信會話建立一個密碼套件。密碼套件是一組演算法,其中指定了一些細節,例如哪些共享加密金鑰(即工作階段金鑰)將用於該特定會話。TLS 也能在一個未加密的通道上設置匹配的工作階段金鑰,這要歸功於一種稱為公開金鑰加密的技術。

握手還處理身份驗證,其中通常包括伺服器向用戶端證明其身份。這是通過使用公開金鑰來完成的。公開金鑰是使用單向加密的加密金鑰,即任何擁有公開金鑰的人都可以解讀使用伺服器私密金鑰加密的資料,以確保其真實性,但只有原始發送方才可以使用私密金鑰加密資料。伺服器的公開金鑰是其 TLS 憑證的一部分。

一旦數據被加密和通過身份驗證,就會使用消息身份驗證碼(MAC)對其簽名。接收方可以驗證 MAC 以確保數據的完整性。這有點像阿司匹林瓶子上的防篡改箔紙;由於購買時鋁箔是完整的,消費者知道沒有人動過他們的藥品。

TLS 握手對 web 應用程式的效能有什麼影響?

TLS 的最新版本對 web 應用程式的效能幾乎沒有任何影響。

由於建立 TLS 連接涉及到的複雜過程,因此必須花費一些載入時間和計算能力。在傳輸任何資料之前,用戶端和伺服器必須來回通信幾次,這將佔用 web 應用程式寶貴的幾毫秒載入時間,以及用戶端和伺服器的一些記憶體。

然而,目前已有技術幫助緩解 TLS 握手造成的延遲。其一是 TLS 虛假啟動(False Start),讓伺服器和用戶端在 TLS 握手完成前開始傳輸資料。另一種加速 TLS 的技術是 TLS 工作階段恢復,允許之前通信過的用戶端和伺服器簡化握手過程。

這些改良幫助 TLS 成為一種非常快速的協定,不會明顯影響載入時間。至於與 TLS 相關的計算成本,以今天的標準來看幾乎可以忽略不計。

2018 年發佈的 TLS 1.3 進一步提高了 TLS 的速度。TLS 1.3 中的 TLS 握手僅需要一次往返(即來回通信),而不是以前的兩次,將握手過程所需時間縮短了幾毫秒。如果使用者以前已連接過網站,TLS 握手的往返次數為零,從而進一步加快了速度。

如何開始在一個網站上部署 TLS?

Cloudflare 向所有使用者提供免費的 TLS/SSL 憑證。任何沒有使用 Cloudflare 的使用者將必須向一家憑證機構獲取 SSL 憑證,而且往往需要付費,然後在其原始伺服器上安裝憑證。

要進一步瞭解 TLS/SSL 憑證的工作原理,請參閱什麼是 SSL 憑證?在 Cloudflare Diagnostic Center 查看某個網站是否使用了 TLS 加密。