解析
Secure Socket Layer,為Netscape所研發,用以保障在Internet上數據傳輸的安全,利用數據加密(Encryption)技術,可确保數據在網絡上的傳輸過程中不會被截取及竊聽。一般通用的規格為40bit的安全标準,美國則已推出128bit的更高安全标準。隻要3.0版本以上的I.E.或Netscape浏覽器即可支持SSL。
當前版本為3.0。它已被廣泛地用于Web浏覽器與服務器之間的身份認證和加密數據傳輸。
SSL協議位于TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持。SSL協議可分為兩層:SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用于在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。
提供服務
1)認證用戶和服務器,确保數據發送到正确的客戶機和服務器;
2)加密數據以防止數據中途被竊取;
3)維護數據的完整性,确保數據在傳輸過程中不被改變。
服務器類型
1.Tomcat 5.x
2.Nginx
3.IIS
4.Apache 2.x
5.IBM HTTP SERVER 6.0
工作流程
服務器認證階段:
1)客戶端向服務器發送一個開始信息“Hello”以便開始一個新的會話連接;
2)服務器根據客戶的信息确定是否需要生成新的主密鑰,如需要則服務器在響應客戶的“Hello”信息時将包含生成主密鑰所需的信息;
3)客戶根據收到的服務器響應信息,産生一個主密鑰,并用服務器的公開密鑰加密後傳給服務器;
4)服務器恢複該主密鑰,并返回給客戶一個用主密鑰認證的信息,以此讓客戶認證服務器。
用戶認證階段:在此之前,服務器已經通過了客戶認證,這一階段主要完成對客戶的認證。經認證的服務器發送一個提問給客戶,客戶則返回(數字)簽名後的提問和其公開密鑰,從而向服務器提供認證。
SSL協議提供的安全通道有以下三個特性:
機密性:SSL協議使用密鑰加密通信數據。
可靠性:服務器和客戶都會被認證,客戶的認證是可選的。
完整性:SSL協議會對傳送的數據進行完整性檢查。
從SSL協議所提供的服務及其工作流程可以看出,SSL協議運行的基礎是商家對消費者信息保密的承諾,這就有利于商家而不利于消費者。在電子商務初級階段,由于運作電子商務的企業大多是信譽較高的大公司,因此這問題還沒有充分暴露出來。但随着電子商務的發展,各中小型公司也參與進來,這樣在電子支付過程中的單一認證問題就越來越突出。雖然在SSL3.0中通過數字簽名和數字證書可實現浏覽器和Web服務器雙方的身份驗證,但是SSL協議仍存在一些問題,比如,隻能提供交易中客戶與服務器間的雙方認證,在涉及多方的電子交易中,SSL協議并不能協調各方間的安全傳輸和信任關系。在這種情況下,Visa和MasterCard兩大信用卡公司組織制定了SET協議,為網上信用卡支付提供了全球性的标準。
SSL的體系結構
SSL的體系結構中包含兩個協議子層,其中底層是SSL記錄協議層(SSL Record Protocol Layer);高層是SSL握手協議層(SSL HandShake Protocol Layer)。SSL的協議棧如圖1所示,其中陰影部分即SSL協議。
SSL記錄協議層的作用是為高層協議提供基本的安全服務。SSL記錄協議針對HTTP協議進行了特别的設計,使得超文本的傳輸協議HTTP能夠在SSL運行。記錄封裝各種高層協議,具體實施壓縮解壓縮、加密解密、計算和校驗MAC等與安全有關的操作。
SSL握手協議層包括SSL握手協議(SSL HandShake Protocol)、SSL密碼參數修改協議(SSL Change Cipher Spec Protocol)、應用數據協議(Application Data Protocol)和SSL告警協議(SSL Alert Protocol)。握手層的這些協議用于SSL管理信息的交換,允許應用協議傳送數據之間相互驗證,協商加密算法和生成密鑰等。SSL握手協議的作用是協調客戶和服務器的狀态,使雙方能夠達到狀态的同步。
SSL記錄協議
SSL記錄協議(Record Protocol)為SSL連接提供兩種服務。
(1)保密性:利用握手協議所定義的共享密鑰對SSL淨荷(Payload)加密。
(2)完整性:利用握手協議所定義的共享的MAC密鑰來生成報文的鑒别碼(MAC)。
SSL的工作過程如下。
(1)發送方的工作過程為:
從上層接受要發送的數據(包括各種消息和數據);
對信息進行分段,分成若幹記錄;
使用指定的壓縮算法進行數據壓縮(可選);
使用指定的MAC算法生成MAC;
使用指定的加密算法進行數據加密;
添加SSL記錄協議的頭,發送數據。
(2)接收方的工作過程為:
接收數據,從SSL記錄協議的頭中獲取相關信息;
使用指定的解密算法解密數據;
使用指定的MAC算法校驗MAC;
使用壓縮算法對數據解壓縮(在需要進行);
将記錄進行數據重組;
将數據發送給高層。
SSL記錄協議處理的最後一個步驟是附加一個SSL記錄協議的頭,以便構成一個SSL記錄。SSL記錄協議頭中包含了SSL記錄協議的若幹控制信息。
SSL的會話狀态
會話(Session)和連接(Connection)是SSL中兩個重要的概念,在規範中定義如下。
(1)SSL連接:用于提供某種類型的服務數據的傳輸,是一種點對點的關系。一般來說,連接的維持時間比較短暫,并且每個連接一定與某一個會話相關聯。
(2)SSL會話:是指客戶和服務器之間的一個關聯關系。會話通過握手協議來創建。它定義了一組安全參數。
一次會話過程通常會發起多個SSL連接來完成任務,例如一次網站的訪問可能需要多個HTTP/SSL/TCP連接來下載其中的多個頁面,這些連接共享會話定義的安全參數。這種共享方式可以避免為每個SSL連接單獨進行安全參數的協商,而隻需在會話建立時進行一次協商,提高了效率。
每一個會話(或連接)都存在一組與之相對應的狀态,會話(或連接)的狀态表現為一組與其相關的參數集合,最主要的内容是與會話(或連接)相關的安全參數的集合,用會話(或連接)中的加密解密、認證等安全功能的實現。在SSL通信過程中,通信算法的狀态通過SSL握手協議實現同步。
根據SSL協議的約定,會話狀态由以下參數來定義:
(1)會話标識符:是由服務器選擇的任意字節序列,用于标識活動的會話或可恢複的會話狀态。
(2)對方的證書:會話對方的X.509v3證書。該參數可為空。
(3)壓縮算法:在加密之前用來壓縮數據的算法。
(4)加密規約(Cipher Spec):用于說明對大塊數據進行加密采用的算法,以及計算MAC所采用的散列算法。
(5)主密值:一個48字節長的秘密值,由客戶和服務器共享。
(6)可重新開始的标識:用于指示會話是否可以用于初始化新的連接。
連接狀态由以下參數來定義:
(1)服務器和客戶器的随機數:是服務器和客戶為每個連接選擇的用于标識連接的字節序列。
(2)服務器寫MAC密值:服務器發送數據時,生成MAC使用的密鑰,長度為128bit。
(3)客戶寫MAC密值,服務器發送數據時,用于數據加密的密鑰,長度為128bit。
(4)客戶寫密鑰:客戶發送數據時,用于數據加密的密鑰,長度為128bit。
(5)初始化向量:當使用CBC模式的分組密文算法是=時,需要為每個密鑰維護初始化向量。
(6)序列号:通信的每一端都為每個連接中的發送和接收報文維持着一個序列号。
https介紹
HTTPS(Hypertext Transfer Protocol Secure)安全超文本傳輸協議
它是由Netscape開發并内置于其浏覽器中,用于對數據進行壓縮和解壓操作,并返回網絡上傳送回的結果。HTTPS實際上應用了Netscape的安全套接字層(SSL)作為HTTP應用層的子層。(HTTPS使用端口443,而不是像HTTP那樣使用端口80來和TCP/IP進行通信。)SSL使用40位關鍵字作為RC4流加密算法,這對于商業信息的加密是合适的。HTTPS和SSL支持使用X.509數字認證,如果需要的話用戶可以确認發送者是誰。
https是以安全為目标的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,https的安全基礎是SSL,因此加密的詳細内容請看SSL。
它是一個URI scheme(抽象标識符體系),句法類同http:體系。用于安全的HTTP數據傳輸。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默認端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統的最初研發由網景公司進行,提供了身份驗證與加密通訊方法,它被廣泛用于萬維網上安全敏感的通訊,例如交易支付方面。
限制
它的安全保護依賴浏覽器的正确實現以及服務器軟件、實際加密算法的支持.
一種常見的誤解是“銀行用戶在線使用https:就能充分徹底保障他們的銀行卡号不被偷竊。”實際上,與服務器的加密連接中能保護銀行卡号的部分,隻有用戶到服務器之間的連接及服務器自身。并不能絕對确保服務器自己是安全的,這點甚至已被攻擊者利用,常見例子是模仿銀行域名的釣魚攻擊。少數罕見攻擊在網站傳輸客戶數據時發生,攻擊者嘗試竊聽數據于傳輸中。
商業網站被人們期望迅速盡早引入新的特殊處理程序到金融網關,僅保留傳輸碼(transaction number)。不過他們常常存儲銀行卡号在同一個數據庫裡。那些數據庫和服務器少數情況有可能被未授權用戶攻擊和損害。
應用
extended validation ssl certificates翻譯為中文即擴展驗證(EV)SSL證書,該證書經過最徹底的身份驗證,确保證書持有組織的真實性。獨有的綠色地址欄技術将循環顯示組織名稱和作為CA的GlobalSign名稱,從而最大限度上确保網站的安全性,樹立網站可信形象,不給欺詐釣魚網站以可乘之機。
對線上購物者來說,綠色地址欄是驗證網站身份及安全性的最簡便可靠的方式。在IE7.0、FireFox3.0、Opera 9.5等新一代高安全浏覽器下,使用擴展驗證(EV)SSL證書的網站的浏覽器地址欄會自動呈現綠色,從而清晰地告訴用戶正在訪問的網站是經過嚴格認證的。此外綠色地址欄臨近的區域還會顯示網站所有者的名稱和頒發證書CA機構名稱,這些均向客戶傳遞同一信息,該網站身份可信,信息傳遞安全可靠,而非釣魚網站。



















