名詞解釋:SSL
傳輸層安全性協議(英語:Transport Layer Security,縮寫:TLS)及其前身安全套接層(英語:Secure Sockets Layer,縮寫:SSL)是一種安全協議,目的是為互聯網通信提供安全及數據完整性保障。網景公司(Netscape)在1994年推出首版網頁瀏覽器-網景導航者時,推出HTTPS協議,以SSL進行加密,這是SSL的起源。IETF將SSL進行標準化,1999年公布TLS 1.0標準文件(RFC 2246)。隨后又公布TLS 1.1(RFC 4346,2006年)、TLS 1.2(RFC 5246,2008年)和TLS 1.3(RFC 8446,2018年)。在瀏覽器、電子郵件、即時通信、VoIP、網絡傳真等應用程序中,廣泛使用這個協議。許多網站,如baidu、qq、163、wangan等也以這個協議來創建安全連線,發送數據。目前已成為互聯網上保密通信的工業標準。
SSL包含記錄層(Record Layer)和傳輸層,記錄層協議確定傳輸層數據的封裝格式。傳輸層安全協議使用X.509認證,之后利用非對稱加密演算來對通信方做身份認證,之后交換對稱密鑰作為會談密鑰(Session key)。這個會談密鑰是用來將通信兩方交換的數據做加密,保證兩個應用間通信的保密性和可靠性,使客戶與服務器應用之間的通信不被攻擊者竊聽。
概論
TLS協議采用主從式架構模型,用于在兩個應用程序間透過網絡創建起安全的連線,防止在交換數據時受到竊聽及篡改。
TLS協議的優勢是與高層的應用層協議(如HTTP、FTP、Telnet等)無耦合。應用層協議能透明地運行在TLS協議之上,由TLS協議進行創建加密通道需要的協商和認證。應用層協議傳送的數據在通過TLS協議時都會被加密,從而保證通信的私密性。
TLS協議是可選的,必須配置客戶端和服務器才能使用。主要有兩種方式實現這一目標:一個是使用統一的TLS協議端口(例如:用于HTTPS的端口443);另一個是客戶端請求服務器連接到TLS時使用特定的協議機制(例如:電子郵件常用的STARTTLS)。一旦客戶端和服務器都同意使用TLS協議,他們通過使用一個握手過程協商出一個有狀態的連接以傳輸數據[1]。通過握手,客戶端和服務器協商各種參數用于創建安全連接:
- 當客戶端連接到支持TLS協議的服務器要求創建安全連接并列出了受支持的密碼包(包括加密算法、散列算法等),握手開始。
- 服務器從該列表中決定密碼包,并通知客戶端。
- 服務器發回其數字證書,此證書通常包含服務器的名稱、受信任的證書頒發機構(CA)和服務器的公鑰。
- 客戶端確認其頒發的證書的有效性。
- 為了生成會話密鑰用于安全連接,客戶端使用服務器的公鑰加密隨機生成的密鑰,并將其發送到服務器,只有服務器才能使用自己的私鑰解密。
- 利用隨機數,雙方生成用于加密和解密的對稱密鑰。這就是TLS協議的握手,握手完畢后的連接是安全的,直到連接(被)關閉。如果上述任何一個步驟失敗,TLS握手過程就會失敗,并且斷開所有的連接。
網絡安全學院 社區 Wiki
推薦文章: