8-2 SSL 安全協定
8-2-1 SSL 協定 標準 『安全性插座層』(Secure Socket Layer, SSL)是由網景(Netscape)公司所展出來,目前已修正到第三版(SSL v3.0)。網景公司將 SSL 安裝於該公司的瀏覽器(Netscape Browser)與網頁伺服器上,使它們之間可以協議出雙方可接受的安全機制並傳輸加密後訊息,如此以達到安全性需求。 該公司起初免費提供支援 SSL 的瀏覽器,無形中已大大刺激伺服器的銷售量,致使SSL 協定漸被其他瀏覽器與伺服器接受(如 Microsoft IE),支援 SSL 協定已成為網頁系統必備的條件,從此以後,其他應用系統也開始思考如何將 SSL 協定崁入其中,使成為具有 SSL 防護的 Telnet、E-mail、FTP 或 LDAP 等等。如此一來,SSL 已不再是網頁系統的專屬安全機制,漸成為通用型網路應用的安全協定,更成為安全性電子商務中不可或缺的工具。 ITEF(Internet Engineering Task Force)有感於 SSL 協定漸漸成為工業標準,且認為其安全性是可靠的,便於 1999 年發表『傳輸層安全』(Transport Layer Security, TLS)協定,並由 RFC 2246 與 RFC 3546 發佈流傳。基本上,TLS 是以 SSL v3.0 為基礎,運作程序也大致相同,唯選用的身分證演算法與訊息格式稍有不同。SSL v3.0 規格的官方網站如下: Netscape:http://wp.netscape.com/eng/ssl3/draft302.txt 然而,TLS 規格可由 RFC 2246 中取得;讀者可以發現兩份規格大致上相同,都是利用 C 語言來描述。本章先以介紹 SSL v3.0 的相關技術為主,然後再列出 SSL 與 TLS 之間的相異點,便可完整學習兩種協定。 8-2-2 SSL 協定堆疊 SSL 是屬於『層次協定』(Layer Protocol),擁有獨立的層次介面讓各種應用系統連接,其層次堆疊如圖 8-3 所示。SSL 協定包含兩個主要層次:『SSL 握手層』(SSL Handshake Layer)與『SSL 記錄層』(SSL Record Layer),其中 SSL 握手層包含『握手協定』(Handshake Protocol)、『變更密文規格協定』(Change Cipher Specification Protocol)與『警告協定』(Alert Protocol)等三個協定;SSL 記錄層只有一個『記錄協定』(Record Protocol)。 『握手協定』是被用來認證雙方身分與協商相關安全機制,協商完成之後,再利用『記錄協定』來傳輸加密後的訊息。在握手協定運作當中,如有特殊異常狀態發生時,則利用『警告協定』通知對方。一旦協議完成,便利用『密文規格變更協定』來通知對方改變加密規格。另外,當執行『握手協定』時,其訊息也是需要經過『記錄協定』的封裝,但協議完成之後,高層應用協定(如 HTTP)便可以直接透過『記錄協定』來傳輸訊息。
圖 8-3 SSL 協定堆疊 基本上,SSL 必須架設在 TCP 協定之上,也就是說,僅能使用於連接導向的傳輸服務。但為了銜接各種應用系統,針對各系統有其專屬埠口,並以前置『安全性』(Secure)來標示與原來系統之間的不同,如表 11-1 所示。其中,HTTP over TLS 規範由 RFC 2818 制定;RFC 3207 制定 SSMTP over TLS 規格;RFC 2595 規範 POP 與 IMAP over TLS;RFC 2830 制定 LDAP over TLS;RFC 2712 將 SSL 嵌入於 Kerberos 系統內。 8-2-3 SSL 握手層 圖 8-4 為 SSL 四種協定的封裝格式。SSL 握手層包含了變更密文規格、警告與握手等三種協定,其訊息封裝格式說明如下。 【(A)變更密文規格協定封裝】 變更密文規格協定是用來通知對方改變安全套件。當雙方透過握手協定協議出安全套件之後,利用此訊息通知對方改變密文規格的時機,至於接收此訊息的另一方,則必須準備以新的密文規格和對方通訊。此訊息封裝包含下列兩個欄位(圖 11-4 (a)):
圖 8-4 SSL 四種協定的封包格式 【(B)警告協定封裝】 雙方利用 SSL 協定通訊的情況下,當某一方發現有異常障礙時,便利用警告協定通知對方。譬如,利用握手協定來協商加密套件,當某一方不能接受對方所提出的加密規格時,可利用警告協定通知對方,並註明不能接受的原因。此訊息封裝包含三個欄位(如圖 11-4 (b) 所示),如下:
【(C)握手協定封裝】 握手協定的功能是認證雙方憑證與協商安全套件,其封裝訊息包含一連串的客戶端與伺服端之間的交換訊息。圖 11-4 (c) 為握手協定的封包格式,包含三個欄位,各欄位功能如下:
表 8-2 SSL/TLS 握手協定的訊息型態
|
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|