SSL與TSL

SSL的特性

SSL的協定

TSL與SSL的差異

參考課本第十四章

SSL的特性

SSL是在TCP上層建立安全措施，源自 Netscape

Secure Socket Layer(SSL)的後繼標準是 Transport Layer Security(TLS)

以下是用在TCP/IP中的安全措施

IP/IPSec

TCP

HTTP

FTP

SMTP

IP

TCP

HTTP

FTP

SMTP

SSL or TLS

IP

TCP

HTTP

PGP

SMTP

SET

S/MIME

UDP

Kerberos

網路層

傳輸層

應用層

SSL的協定

SSL的協定分為兩層

SSL紀錄協定用來提供基本的安全服務

另有握手協定、密文規格變更協定與警告協定用來管理SSL的通訊

IP

TCP

SSL

Handshake

Protocol

SSL Record Protocol

SSL Change

Cipher Spec

Protocol

SSL

Alert

Protocol

HTTP

SSL session and connection

connection 連結：一個連結就一個傳輸程序，每一個連結都對應到一個session。

session：session是由握手（handshake）協定產生的，介於server與client之間，每一個session定義了一組密碼安全參數。每一個session可以被幾個connection共享。

session的狀態由一些參數決定：

session identifier, cipher spec .... 參考課本pp.599

SSL紀錄協定

SSL紀錄協定提供保密性訊息完整性：透過握手協定，定義了一把共享的私密key與一把產生MAC的共享私密key。

資料經過幾個步驟的處理：

分解：把資料分解成214 byte的區段

壓縮：可以壓縮或不壓縮

計算MAC：用MD5或SHA1

加密：用傳統加密法來加密，可用IDEA、RC2-40、DES-40、DES、3DES、Fortezza、RC4-40、 RC4-128

加SSL標頭（標頭格式請參考課本圖14.4）

方塊圖請參考課本圖 14.3

SSL握手協定（一）

用來讓server與client端彼此確認對方的身份，並且協商出加密與MAC的演算法

分為四個階段：建立安全機制、伺服端確認及key交換、客戶端確認及key交換、完成

建立安全機制：

通訊由客戶端發動，送出client_hello，表達自己的能力（參考課本pp.608）

等候伺服端回答的server_hello，表達server選定的加密機制（包含：加密套件、壓縮方法等）

加密套件包含：key交換方式與加密規格（參考課本 pp.609）

參考課本圖14.6

SSL握手協定（二）

伺服端確認與key交換

如果server需要被認證，server就送出憑證

視需要進行key交換

客戶端確認與key交換

如果客戶端需要被認證，就client端就送出憑證，或者回覆「沒有憑證」。

交換客戶端key。

完成：客戶端送出「密文規格變更」信息，確定整個session的加密規格。，然後 client用此新規格送出「完成」訊息。 server端也送出「密文規格變更」與「完成」信息，完成握手動作。

master secret

client與server共享48 byte的 master secret

由客戶端產生一個pre master secret，用 server public key等方法加密送給 server

master secret：由hello信息交換的臨時亂數與pre master secret 透過SHA與MD5計算出來

key則是透過將master secret用類似由 pre master secret產生master secret的方式產生。

參考課本pp.615

密文規格變更與警告協定

密文規格變更協定：內容由1 byte的 1組成，用來更新connection的加密套件

警告協定：用來傳遞SSL警告信息至另一端。

TLS與SSL的差異

TLS是IETF的標準，很類似SSLv3

版本編號不同，等於是SSLv3.1

MAC產生方法不同，TLS使用HMAC演算法

主秘密的計算方法不同

填充規定不同

不支援Fortezza

額外定義警告碼

SSL與TSL

tjm

1998-09-08T14:53:16