More Related Content
More from Chui-Wen Chiu (20)
06.Ssl
- 1. SSL(Secure Socket Layer)
04 / 30 / 2005
一、什麼是 SSL
SSL 是 Netscape 於 1994 年提出的一種網路傳輸安全標準,用來幫助網際網
路上安全的交易。SSL 推出不久之後 Internet Engineering Task Force
(IETF)組織也投入發展相同功能的標準,他們是以 SSL 3.0 作為規範的基
礎,最後發展出 TLS(Transport Layer Security)協定。SSL 與 TLS 本身僅有
些微差異,經常被拿來相提並論,是目前普遍被應用於安全 HTTP(HTTPS)
網際網路交易的通訊協定組,也就是網頁瀏覽器與網頁伺服器之間的安全協定;
例如網頁需要使用者輸入信用卡、個人身份資料之前,網頁伺服器就改以 https
的連線來取代。
事實上 SSL 不僅僅用於 http 的連線,也可以運用於網路的 File Transfer
Protocol (FTP)、Lightweight Directory Access Protocol (LDAP)和
Simple Mail Transfer Protocol (SMTP)等協定,SSL 啟動了伺服器的認證、
用戶端的認證、資料加密和資料的完整性 (Integrity),用法與網際網路的方
式一樣。
二、SSL 的安全性
● 身份驗證(authentication)
SSL 本身具備認證的能力,符合 SSL 功能的網站,必須向公認的憑證發送機
構(例如 VeriSign 或 Thawte)申請憑證,當我們連線到這些網站時,我們就
可以很確信這些網站的確是可靠的,因為憑證機構必須負起發送憑證時申請人
的身份驗證,而且網站所使用網址必須符合憑證所登錄的網址。
● 資料加密(encryption)
SSL 另一個重要的功能是加密的能力,加密強度可以分為 40 位元及 128 位元
兩種長度的金鑰,這是傳送加密資料時使用的階段金鑰(session key)。根據
以往對 40 位元金鑰加密的挑戰紀錄,透過 120 部工作站以 8 個整天不停運算,
- 2. 也才解出一個訊息,如果要再解出另一個訊息,這意味著同樣數量的工作站數
量必須再跑 8 天。如果今天把 40 位元提升為 128 位元,那要解開一個訊息的
困難度是使用 40 位元金鑰的 1 兆倍,目前不論瀏覽器或網站伺服器軟體,都
已經支援 128 位元的 SSL 連線。事實上也從來沒聽過信用卡資料在網路上被擷
取破解的案例,有的也只是網路商店的誠信問題,因此與其要求網路技術的安
全性,倒不如慎選網路上的交易對象。
● 資料完整性(integrity)
SSL 透過 message authentication code (MAC)的處理以保證資料的完整性,
所採取的是雜湊函數(hash)的運算,傳送端將傳送由金鑰與訊息運算出來的
MAC;接收端則會對接收到的訊息再計算一遍,若比對兩者 MAC 若一致,此
即可證明訊息資料未被攔截竄改,因為對攻擊者而言,他並無私密金鑰
(private key)可以用來更改訊息或 MAC。
三、SSL 之網站應用
SSL 目前廣泛應用於網站的安全連線,要使網站具備 SSL 的功能必須先向憑
證機構(Certificate Authority)申請 SSL 連線的憑證,接著針對需要提供安全
連線的資料或是網頁安裝此憑證。整個連線的工作流程大略說明如下:
1. 當您要連線到具備 SSL 設定的網站或網頁時,URL 當 中的 http 將自動轉
換為 https,或者以 https 的 URL 直接連線。
2. 當網站伺服器收到要求後,把內含公開金鑰的憑證傳送給瀏覽器用戶端。
3. 用戶端收到憑證之後驗證網站身份無誤,並與伺服器端協商安全等級。
4. 接著瀏覽器使用網站的公開金鑰對隨機產生的階段金鑰(session key)加
密,再傳送給 SSL 連線的網站。
5. 網站以自己的私密金鑰對加密的階段金鑰解密。
6. 雙方利用解開的階段金鑰傳遞加密的資料與解密。