SSL/TLS、IPSec簡介
1. SSL/TLS
1.1 SSL/TSL定義
SSL(Secure Socket Layer,安全套接層),是為網路通訊提供安全及資料完整性的一種安全協議。
TSL(Transport Layer Security,傳輸層安全),是以SSL為基礎的升級版。
1.2 SSL/TSL目的
1.2.1 HTTP的安全風險
- 竊聽風險,第三方可以獲取通訊內容。
- 篡改風險,第三方可以修改通訊內容。
- 冒充風險,第三方可以冒充他人身份進行通訊。
1.2.2 SSL/TSL設計目的
- 1.對網路資料進行加密傳輸。 ——機密性
- 2.對資料內容進行校驗。 ——完整性
- 3.防止他人假冒身份。 ——可靠性
1.2.3 SSL/TSL主要功能
- 通過加密演算法,對傳輸資料進行加密
- 校驗資料的完整性,通過HASH演算法。
- 配備身份證書,驗證通訊雙方身份。
1.2.4 SSL/TSL主要工作流程
基本過程
根據設計的要求,我們可以很自然的寫出SSL過程的兩個基本步驟。
- 驗證通訊雙方身份(PKI技術)。
- 對通訊內容進行加密傳輸,同時通過HASH演算法驗證資料的完整性。
其中,再加密傳輸的過程中,考慮到傳輸速度,因此需要用對稱加密演算法加密網頁內容。
同時考慮到對稱加密演算法金鑰的安全性問題,我們採取非對稱加密演算法對每次會話所採用的對稱加密演算法的公鑰進行加密,並在每次會話時雙方協商生成一個本次會話用的公鑰。
因此,我們的基本過程可以細化為一下三個步驟:
- 客戶端向伺服器端索要並驗證非對稱加密演算法的公鑰。(將公匙存放在可信的證書中,此時也同時驗證了對話雙方的身份)
- 雙方協商生成對稱加密演算法的"對話金鑰"。
- 雙方採用對稱加密演算法和它的"對話金鑰"進行加密通訊。
其中前兩步稱之為握手階段(handshake),第三步即是使用HTTP協議傳輸經過加密的內容,因此這裡只詳細握手階段的步驟。
1.2.5 handshake詳細流程
整個Handshake階段可由上圖概括,每個步驟包含的內容以及含義如下:
- ClientHello:客戶端支援的協議版本、客戶端生成的隨機數,支援的加密演算法,支援的壓縮方法。
- SeverHello:確認使用的協議版本,確認使用的加密方法。
- Servercertificate:伺服器證書資訊。
- SercerKeyExchange:會話金鑰交換訊號,其中包含由伺服器端生成的一個隨機數。
- CertificateRequest:對client端證書請求。(部分伺服器沒有客戶端證書認證,因此沒有相應步驟)
- ServerHelloDone:用以告知客戶端ServerHello訊息結束的訊號,同時包含相應的資料完整性驗證的內容。
- ClientCertificate:客戶端證書資訊,如果伺服器為要求,則此處顯示為0
- ClentKeyExchange:會話金鑰交換訊號,包含客戶端生成會話過程中的第三個隨機數(客戶端生成的第二個)。
- CertificateVerity:若伺服器要求了證書,且傳送了證書資訊,則此處包含客戶端對證書的簽名。
- ChangeClpherSpec:表示之後的資料傳輸均以加密形式傳輸。
- Finished:用以告知伺服器訊息結束的訊號,同時包含相應的資料完整性驗證的內容。
- ClientKeyExchange:金鑰交換訊號,此時,伺服器已知3個隨機數,伺服器通過相應的選擇的演算法,將三個隨機數內容組合在一起,生成之後對稱加密演算法中需要用到的公鑰,並通過其他雙方已知資訊對其進行填充至合適長度,加密後傳送給客戶端,用以之後客戶端解密資料資訊.
2. IPSec
2.1 IPsec的歷史
從1986年到1991年,NSA在安全資料網路系統(SDNS)計劃下資助了網際網路安全協議的開發。摩托羅拉等公司協商開始生產網路加密裝置。該工作於1988年由NIST公開發布,其中第3層安全協議(SP3)以後將作為ISO標準網路層安全協議(NLSP)。[3]
從1992年到1995年,各個研究小組改進了SDNS的SP3。 1992年,美國海軍研究實驗室(NRL)啟動了SIPP專案,研究和實施IP加密。 1993年12月,實驗軟體IP加密協議(swIPe)由哥倫比亞大學的SunOS和John Ioannidis等人在AT&T貝爾實驗室開發。 1由白宮資助,1993年魏旭在swIPe基礎上加強了IP安全協議,並開發了資料加密標準的裝置驅動程式。1994年12月,帶有整合3DES硬體加密功能的防火牆產品開始提供商業IP安全性保障。在此期間,網際網路工程任務組(IETF)IP安全工作組成立,將這些工作標準化為一套開放,免費提供的安全擴充套件,稱為IPsec。
2.2 IPSEC的含義
IPSec(InternetProtocolSecurity)是一種了應用於IP層上網路資料安全的一整套體系結構,包括網路認證協議AH)、封裝安全載荷協議(ESP)、金鑰管理協議(IKE)和用於網路認證及加密的一些演算法等。這些協議用於提供資料認證、資料完整性和加密性三種保護形式。作為運行於網路層的協議簇,它能有效確保其上層的TCP/IP協議執行安全.
2.3 IPsec的安全特點有:
- 不可否認性
"不可否認性"可以證實訊息傳送方是唯一可能的傳送者,傳送者不能否認傳送過訊息。"不可否認性"是採用公鑰技術的一個特徵,當使用公鑰技術時,傳送方用私鑰產生一個數字簽名隨訊息一起傳送,接收方用傳送者的公鑰來驗證數字簽名。由於在理論上只有傳送者才唯一擁有私鑰,也只有傳送者才可能產生該數字簽名,所以只要數字簽名通過驗證,傳送者就不能否認曾傳送過該訊息。但"不可否認性"不是基於認證的共享金鑰技術的特徵,因為在基於認證的共享金鑰技術中,傳送方和接收方掌握相同的金鑰。 - 反重播性
"反重播"確保每個IP包的唯一性,保證資訊萬一被擷取複製後,不能再被重新利用、重新傳輸回目的地址。該特性可以防止攻擊者擷取破譯資訊後,再用相同的資訊包冒取非法訪問權(即使這種冒取行為發生在數月之後)。 - 資料完整性
防止傳輸過程中資料被篡改,確保發出資料和接收資料的一致性。IPSec利用Hash函式為每個資料包產生一個加密檢查和,接收方在開啟包前先計算檢查和,若包遭篡改導致檢查和不相符,資料包即被丟棄。 - 資料可靠性(加密)
在傳輸前,對資料進行加密,可以保證在傳輸過程中,即使資料包遭擷取,資訊也無法被讀。該特性在IPSec中為可選項,與IPSec策略的具體設定相關。 - 認證
資料來源傳送信任狀,由接收方驗證信任狀的合法性,只有通過認證的系統才可以建立通訊連線。
2.4 IPSEC的概念
IPsec協議不是一個單獨的協議,它給出了應用於IP層上網路資料安全的一整套體系結構,包括網路認證協議AH(認證頭)、ESP(封裝安全載荷)、IKE(金鑰交換)和用於網路認證及加密的一些演算法等。其中,AH協議和ESP協議用於提供安全服務,它們兩個可以單獨作為認證,也可結合認證.當結合認證時,先進行ESP封裝,再AH封裝. IKE協議用於金鑰交換。
2.5 安全協議
- AH
為了保證資料的完整性不被破壞,提供資料來源認證、資料完整性校驗和防報文重放功能,但不能防止竊聽,適合用於傳輸非機密資料。AH的工作原理是使用身份驗證報文頭,將驗證資訊新增到IP資料包端,可選擇的認證演算法有MD5、SHA-1等。 - ESP
提供加密、資料來源認證、資料完整性校驗和防報文重放功能。在每一個數據包的包頭後新增一個ESP報文頭,並在資料包後面追加一個ESP尾。與AH協議不同的是,ESP將需要保護的使用者資料進行加密後再封裝到IP包中,以保證資料的機密性。常見的加密演算法有DES、3DES、AES等。同時,作為可選項,使用者可以選擇雜湊校驗完整性. - IKE
IKE是一個應用層的協議,能夠在不安全的網路環境中為IPsec提供自動交換金鑰、建立SA的服務,簡化IPsec的使用,配置和維護工作。通過資料交換計算出雙方共享的金鑰,其安全程度足以滿足暴力破解的要求.
IKE使用了兩個階段為IPsec進行金鑰協商並建立SA:
(1)第一階段,通訊各方彼此間建立了一個已通過身份認證和安全保護的通道.
(2)第二階段,用在第一階段建立的安全隧道為IPsec協商安全服務,即為IPsec協商具體的SA,建立用於最終的IP資料安全傳輸的IPsec SA。
IKE的作用:
- 自動建立IPsec引數,降低了手工配置的複雜度。
- 提供端與端之間動態認證。
- IKE協議中的DH交換過程,每次的計算和產生的結果都是不相關的。每次SA的建立都執行DH交換過程,保證了每個SA所使用的金鑰互不相關。
- IPsec使用AH或ESP報文頭中的序列號實現防重放。此序列號是一個32位元的值,此數溢位後,為實現防重放,SA需要重新建立,這個過程需要IKE協議的配合。
- 對安全通訊的各方身份的認證和管理,將影響到IPsec的部署。IPsec的大規模使用,必須有CA(Certificate Authority,認證中心)或其他集中管理身份資料的機構的參與。
2.6 SA:安全聯盟
SA是通訊對等體間對某些要素的約定,例如,使用哪種協議(AH、ESP還是兩者結合使用)、協議的封裝模式(傳輸模式和隧道模式)、加密演算法(DES、3DES和AES)、特定流中保護資料的共享金鑰以及金鑰的生存週期等。建立SA的方式有手工配置和IKE自動協商兩種。SA由一個三元組來唯一標識,這個三元組包括SPI(Security Parameter Index,安全引數索引)、目的IP地址、安全協議號(AH或ESP)。
SA是單向工作的,所以在兩個同等通訊單位間的雙向通訊,最少需要兩個SA。同時,如果兩個對等體希望同時使用AH和ESP來進行安全通訊,則每個對等體都會針對每一種協議來構建一個獨立的SA。
2.7 封裝模式
2.7.1 隧道(tunnel)模式:
使用者的整個IP資料包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的使用者資料被封裝在一個新的IP資料包中。通常,隧道模式應用在兩個安全閘道器之間的通訊。
2.7.2 傳輸(transport)模式:
只是傳輸層資料被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的使用者資料被放置在原IP包頭後面。通常,傳輸模式應用在兩臺主機之間的通訊,或一臺主機和一個安全閘道器之間的通訊。
2.7.3 IPsec使用演算法
網路上有很多關於演算法的相關資源,其工作原理不再詳細敘述.
2.7.4 認證演算法
主要採用MD5和SHA-1兩種,均是將可變長度的資料包對映為定常的資料,通過比對定常資料驗證資料是否完整.其安全性和速度性、複雜性不再贅述.
2.7.5 加密演算法
分為DES,3DES,AES,其(最少)金鑰長分別為56,168,128,複雜度和安全性也是越來越高的.
2.8 參考資料:
https://en.wikipedia.org/wiki/IPsec#History
http://www.h3c.com/cn/d_200812/624140_30003_0.htm