TLS/SSL PKI介紹

Tls/ssltransport layer security /security socket layer)協議是應用比較成熟的,性能很好的安全協議,結合用戶名/口令的鑑權機制可以較好的保護系統通信和應用層數據的安全。

在說明tls/ssl協議時如何保證通信安全之前,必須介紹幾個概念和原理。

76年第一個公鑰算法提出後,密碼體制分爲非對稱加密體制(又名公鑰體制,如RSA,DH等)和對稱加密體制(AES,DES等)。非對稱加密算法的加密和解密密鑰是不一致的,且公鑰在計算上導出私鑰是不可性的。對稱加密算法的加解密密鑰是一致的,或很容易推導出。公鑰體制能很容易解決非安全信道上的密鑰協商和交換,也能實現線下的不可否認性。這些功能在對稱密碼體制下實現是相當複雜或不可行的。我們知道,非對稱密碼算法也能實現對稱密碼算法的加解密功能,除此之外,還能實現對稱密碼算法不能實現的功能。既然如此,爲什麼不捨棄對稱密碼體制呢?這是因爲非對稱密碼算法一般比對稱密碼算法慢2-3個數量級(100-1000倍)。所以現實中一般使用對稱加密算法實現長信息的加解密,而對稱加密算法的密鑰使用非對稱密碼體制協商。

公鑰密碼體制中,公鑰顧名思義是公開的密鑰,私鑰是自己私藏的密鑰,私鑰的暴露意味着該該公私鑰對的廢止,不用。公鑰在計算上推導不出私鑰,這個特點決定了兩方面的應用:1)用私鑰加密一段文本,則因爲公鑰是公開的,所以任何獲取到公鑰的個人或組織都能解密驗證,所以具有身份認證和不可否認性特點,這就是數字簽名的核心原理。2)用公鑰加密一段文本,發送給具有私鑰的個人。因爲只有私鑰的人能解密,所以任何獲取公鑰的人都可以給持有私鑰的人發送祕密信息。這就是非對稱密碼體制下密鑰協商/密鑰交換的核心原理。

在互聯網上,要想通信的信息(即使是加密的信息)不被篡改,必須使用密碼學的手段。密碼學中的一類單向函數--安全Hash函數(又名雜湊函數)很好的解決了這個問題。Hash函數如MD5,SHA能檢測出通信信息的篡改。HMAC是帶密碼的hash函數,是基於hash函數的擴展架構,如HMAC-MD5,HMAC-SHA.安全hash函數的應用範圍很廣,完整性保護只是其應用的一個方面。

讓我們理一下,通信內容的機密性由對稱密碼算法支持,身份認證採用數字簽名技術,通信內容的完整性有HMAC技術,HMAC和對稱算法的密鑰傳輸採用非對稱密碼體制傳輸。

這樣整個系統沒問題了嗎?沒有,我們還漏了一個非常重要的議題:公鑰的發佈。公鑰的僞裝是一個難題,互聯網上的用戶之間無法區分正確的公鑰對應於正確的身份。過期的公鑰或因爲私鑰暴露後廢棄的公鑰維護也是一個問題。目前廣泛使用的公共目錄和(Certificate Authority,證書認證)中心。公共目錄和CA都是可信的第三方。公共目錄部分跟本文協議無關,且不支持線下,所以這裏略去。CA作爲作爲受信任的第3方,承擔公鑰體制中公鑰合法性檢驗和頒發證書的功能。在體系中,公鑰是存儲在數字證書中的,數字證書由CA簽名。CA的證書由自己或上級CA簽名。因爲CA是可信的,也即CA的證書是可信的,由CA簽名的其他證書也是可信的。用戶通過獲取可信的CA證書獲取CA的公鑰來驗證其他用戶的證書是否是由CA簽名的,若是,則信任該用戶的證書,並提取出證書中的公鑰。用戶通過OCSP(在線證書狀態協議)或定期獲取CRL(證書廢棄列表)來獲得用戶證書是否過期或作廢。CA中心的引入解決了公鑰發佈,公鑰的不可僞裝和公鑰狀態維護等問題。這就是PKI(公鑰基礎)設施的核心原理。

好了,以上講的原理包含了tls/ssl協議中用到的主要密碼技術原理。對於理解tls/ssl協議已經充分了。

除了個別擴展文檔規定的特殊情況外,我們一般可以這麼說:Tls/Ssl(transport layer security /security socket layer)是運行在可靠傳輸層之上,使用公鑰算法交換(傳輸)對稱算法密鑰,使用證書方式驗證身份,使用對稱加密算法加密應用層數據,使用HMAC驗證可靠性的,最終提供通信雙方祕密性、數據完整性和身份認證的協議。

Tls/ssl協議可分爲2層,記錄協議和握手協議,每次會話中對稱加密和HMAC所需的密鑰是唯一生成的,密鑰的獲取基於每次握手協議的祕密協商。TLS握手協議在確認的密鑰基礎上建立安全連接,該安全連接用於記錄協議處理高層應用協議的安全通信。記錄協議規定了tls/ssl包的語法和格式。

Tls/ssl協議棧模型,見下圖。握手協議和告警協議在記錄協議之上,這些協議總和組成tls/ssl協議。

 

1 協議棧模型

Ssl協議的版本1.02.03.03.13.23.3.   ssl 1.0的文檔未公開,ssl 2.0被發現了一些安全缺陷。Ssl 3.1tls 1.0ssl 3.2tls 1.1ssl 3.3tls 1.2. tls 1.1修改了一些可能的安全問題,但這些安全問題在tls 1.0中被認爲實踐中不可行。Tls 1.2加入了一些新的特性。目前使用廣泛的是ssl 3.0tls 1.0tls 1.1tls1.2較少支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章