1. 程式人生 > >SSL/TLS的簡單介紹

SSL/TLS的簡單介紹

一 SSL/TLS的工作

我們想要實現的是通過本地的Web瀏覽器訪問網路上的Web伺服器,並進行安全的通訊。

Alice希望通過Web瀏覽器向Bob書店傳送訊號卡號。在這裡,有幾個必須要解決的問題。

1 Alice的信用卡號和地址在傳送到Bob書店的過程中不能被竊聽。

2 Alice的信用卡號和地址在傳送到Bob書店的過程中不能被篡改。

3 確認通訊對方的Web伺服器是真正的Bob書店。

在這裡,1是機密性問題,2是完整性問題,3則是認證的問題。

要確保機密性,可以使用對稱密碼。由於對稱密碼的金鑰不能被攻擊者預測,因此我們使用偽隨機數生成器來生成金鑰。若要將對稱密碼的金鑰傳送給通訊物件,可以使用公鑰密碼或DH金鑰交換。

要識別篡改,對資料進行認證,可以使用訊息認證碼。訊息認證碼是使用單向雜湊函式來實現的。

要對通訊物件進行認證,可以使用對公鑰加上數字簽名所生成的證書。

好,工具已經找齊了,下面只要用一個“框架”將這些工具組合起來就可以了。

SSL/TLS協議其實就扮演了這樣一種框架的角色。

二 SSL/TLS也可以保護其他的協議

SSL/TLS可以承載HTTP通訊,這是因為HTTP是一種很常用的協議。其實SSL/TLS上面不僅可以承載HTTP,還可以承載其他很多協議。例如:傳送郵件時候使用的SMTP(簡單郵件傳輸協議)和接收郵件時使用的POP3(郵件協議)都可以用SSL/TLS進行承載。在這種情況下,SSL/TLS就可以對收發的郵件進行保護。

用SSL/TLS承載HTTP、SMTP和POP3的結構如下圖所示。一般的電子郵件軟體都可以完成傳送和接收郵件這兩種操作,其實是同時扮演了SMTP客戶端和POP3客戶端這兩種角色。

三 密碼套件

SSL/TLS提供了一種密碼通訊框架,這意味著SSL/TLS中使用了對稱密碼、公鑰密碼、數字簽名、單向雜湊函式等技術,都是可以像零件一樣進行替換的。也就是說,如果發現現在所使用的某個密碼技術存在弱點,那麼只要將這一部分進行替換就可以了。

儘管如此,也並不是說所有的元件都可以自由選擇。由於實際進行對話的客戶端和伺服器必須使用相同的密碼技術才能進行通訊,因此如果過於自由,就難以確保整體的相容性。為此,SSL/TLS就像事先搭配好的飯盒一樣,規定了一些密碼技術的“推薦套餐”,這種推薦套餐稱為密碼套件。

四 SSL和TLS的區別

SSL(安全套接層)是1994年由網景公司設計的一種協議,並在該公司的Web瀏覽器中進行了實現。隨後,很多Web瀏覽器都採用了這一協議,使其成為事實上的行業標準。SSL已經在1995年釋出了3.0版本,但在2014年,SSL 3.0協議被發現存在可能導致POODLE攻擊的安全漏洞,因此SSL3.0已經不安全了。

TLS(傳輸層協議)是IETF在SSL 3.0的基礎上設計的協議。在1999年作為RFC2246釋出的TLS1.0,實際上相對於SSL3.1。

2006年,TLS1.1以RFC4346的形式釋出,這個版本增加了針對CBC攻擊的對策,並加入了AES對稱密碼演算法。TLS 1.2 新增了對GCM、CCM認證加密的支援,此外還增加了HMAC-SHA256,並刪除了IDEA和DES,將偽隨機函式改為基於SHA-256來實現。