什麼是工作階段金鑰?工作階段金鑰與 TLS 交握

TLS(過去稱為「SSL」)通訊協定同時使用非對稱/公開金鑰和對稱式加密,並且必須為每個通訊工作階段產生用於對稱式加密的新金鑰。這樣的金鑰稱為「工作階段金鑰」。

學習目標

閱讀本文後,您將能夠:

  • 瞭解什麼是工作階段、什麼是金鑰,以及何時必須建立新的工作階段金鑰
  • 瞭解非對稱和對稱式加密之間的差異
  • 瞭解 SSL/TLS 加密通訊協定如何使用這兩種加密

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是工作階段金鑰?

工作階段金鑰是用於僅對單次通訊工作階段進行加密的任何對稱密碼編譯金鑰。換句話說,它是一個臨時金鑰,只使用一次,僅在一個時間段內用於加密和解密雙方之間傳送的資料;雙方之間的未來對話將使用不同的工作階段金鑰進行加密。工作階段金鑰就像每次登入時都會重設的密碼一樣。

TLS(過去上稱為「SSL」)中,兩個通訊方(用戶端和伺服器)在 TLS 交握期間的任何通訊工作階段開始時產生工作階段金鑰。官方 RFC for TLS 實際上並沒有將這些金鑰稱為「工作階段金鑰」,但從功能上講,它們就是這樣。

什麼是工作階段?

工作階段本質上是兩方之間的單個對話。工作階段透過網路進行,當兩個裝置相互確認並開啟虛擬連線時即視為工作階段開始。當兩個裝置從對方獲得所需的資訊,傳送「close_notify」訊息並終止連線時,工作階段就結束了,這個過程就像兩個人互相發簡訊,他們透過說「稍後再談」來結束對話。連線也可能由於不活動而逾時,就像發簡訊的兩個人停止回覆對方。

工作階段金鑰——三個工作階段,每個工作階段都具有新的金鑰

工作階段可以是一段設定的時間,也可以隨雙方通訊而一直持續。如果是前者,工作階段將在一定時間後過期;在 TLS 加密的環境中,兩個裝置隨後必須交換資訊並產生新的工作階段金鑰以重新開啟連線。

什麼是密碼編譯金鑰?

在密碼學中,通常使用金鑰(通常是一小段資料)來指代加密演算法的特殊輸入。最常用的金鑰是用於資料加密的金鑰;但是,存在用於不同目的的其他類型的金鑰。

資料加密演算法使用(祕密)金鑰將訊息轉換為加密文字——即訊息的加擾、不可讀版本。可以使用解密金鑰將加密文字復原為原始訊息。

在對稱式加密演算法中,加密和解密金鑰是相同的。因此,任何持有金鑰的人都可以加密和解密資料,這就是人們常常使用詞彙「對稱金鑰」的原因。

相反,在非對稱加密演算法中(也稱為公開金鑰加密),存在兩個金鑰:一個是公共的,只能用於加密資料,另一個是私有的,僅用於解密加密文字。

HTTPS 使用對稱還是非對稱加密?

HTTPSHTTP 與 TLS 通訊協定的結合,它使用這兩種類型的加密。所有透過 TLS 進行的通訊都以 TLS 交握開始。非對稱加密對於 TLS 交握的正常運作至關重要。

在 TLS 交握過程中,兩個通訊裝置將建立工作階段金鑰,這些金鑰將用於工作階段其餘部分的對稱式加密(除非裝置選擇在工作階段期間更新其金鑰)。通常,這兩個通訊裝置之一是用戶端或者是諸如筆記型電腦或智慧型手機之類的使用者裝置,另一個是任何能代管網站的 Web 伺服器。(如需更多資訊,請參閱什麼是用戶端–伺服器模型?

在 TLS 交握中,用戶端和伺服器還會:

  • 交涉使用哪些加密演算法(透過非對稱加密安全地進行)
  • 根據其 TLS 憑證驗證伺服器的身分(使用非對稱加密)

TLS 交握中的「主要秘鑰」是什麼?它與工作階段金鑰有何關係?

主要秘鑰由用戶端傳送的一串隨機資料、伺服器傳送的隨機資料和另一串稱為「預主秘鑰」的資料透過演算法組合而成。用戶端和伺服器各自擁有這三個訊息,因此它們應該針對主要秘鑰得出相同的結果。

然後,用戶端和伺服器使用主要秘鑰計算幾個工作階段金鑰,僅在該工作階段中使用。它們最終應該得出相同的工作階段金鑰。

詳細瞭解 TLS 的運作方式:TLS 交握期間會發生什麼?