解析
SecureSocketLayer,為Netscape所研發,用以保障在Internet上數據傳輸之安全,利用數據加密(Encryption)技術,可確保數據在網路上之傳輸過程中不會被截取及竊聽。一般通用之規格為40bit之安全標準,美國則已推出128bit之更高安全標準,但限制出境。只要3.0版本以上之I.E.或Netscape瀏覽器即可支持SSL。
當前版本為3.0。它已被廣泛地用於Web瀏覽器與伺服器之間的身份認證和加密數據傳輸。
SSL協定位於TCP/IP協定與各種套用層協定之間,為數據通訊提供安全支持。SSL協定可分為兩層:SSL記錄協定(SSLRecordProtocol):它建立在可靠的傳輸協定(如TCP)之上,為高層協定提供數據封裝、壓縮、加密等基本功能的支持。SSL握手協定(SSLHandshakeProtocol):它建立在SSL記錄協定之上,用於在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。
提供服務
1)認證用戶和伺服器,確保數據傳送到正確的客戶機和伺服器;
2)加密數據以防止數據中途被竊取;
3)維護數據的完整性,確保數據在傳輸過程中不被改變。
伺服器類型
1.Tomcat5.x
2.Nginx
3.IIS
4.Apache2.x
5.IBMHTTPSERVER6.0
工作流程
伺服器認證階段:1)客戶端向伺服器傳送一個開始信息“Hello”以便開始一個新的會話連線;2)伺服器根據客戶的信息確定是否需要生成新的主密鑰,如需要則伺服器在回響客戶的“Hello”信息時將包含生成主密鑰所需的信息;3)客戶根據收到的伺服器回響信息,產生一個主密鑰,並用伺服器的公開密鑰加密後傳給伺服器;4)伺服器回復該主密鑰,並返回給客戶一個用主密鑰認證的信息,以此讓客戶認證伺服器。
用戶認證階段:在此之前,伺服器已經通過了客戶認證,這一階段主要完成對客戶的認證。經認證的伺服器傳送一個提問給客戶,客戶則返回(數字)簽名後的提問和其公開密鑰,從而向伺服器提供認證。
SSL協定提供的安全通道有以下三個特性:
機密性:SSL協定使用密鑰加密通信數據。
可靠性:伺服器和客戶都會被認證,客戶的認證是可選的。
完整性:SSL協定會對傳送的數據進行完整性檢查。
從SSL協定所提供的服務及其工作流程可以看出,SSL協定運行的基礎是商家對消費者信息保密的承諾,這就有利於商家而不利於消費者。在電子商務初級階段,由於運作電子商務的企業大多是信譽較高的大公司,因此這問題還沒有充分暴露出來。但隨著電子商務的發展,各中小型公司也參與進來,這樣在電子支付過程中的單一認證問題就越來越突出。雖然在SSL3.0中通過數字簽名和數字證書可實現瀏覽器和Web伺服器雙方的身份驗證,但是SSL協定仍存在一些問題,比如,只能提供交易中客戶與伺服器間的雙方認證,在涉及多方的電子交易中,SSL協定並不能協調各方間的安全傳輸和信任關係。在這種情況下,Visa和MasterCard兩大信用卡公組織制定了SET協定,為網上信用卡支付提供了全球性的標準。
體系結構
SSL的體系結構中包含兩個協定子層,其中底層是SSL記錄協定層(SSLRecordProtocolLayer);高層是SSL握手協定層(SSLHandShakeProtocolLayer)。SSL的協定棧如圖所示,其中陰影部分即SSL協定。SSL記錄協定層的作用是為高層協定提供基本的安全服務。SSL紀錄協定針對HTTP協定進行了特別的設計,使得超文本的傳輸協定HTTP能夠在SSL運行。紀錄封裝各種高層協定,具體實施壓縮解壓縮、加密解密、計算和校驗MAC等與安全有關的操作。
SSL握手協定層包括SSL握手協定(SSLHandShakeProtocol)、SSL密碼參數修改協定(SSLChangeCipherSpecProtocol)、套用數據協定(ApplicationDataProtocol)和SSL告警協定(SSLAlertProtocol)。握手層的這些協定用於SSL管理信息的交換,允許套用協定傳送數據之間相互驗證,協商加密算法和生成密鑰等。SSL握手協定的作用是協調客戶和伺服器的狀態,使雙方能夠達到狀態的同步。
記錄協定
SSL記錄協定(RecordProtocol)為SSL連提供兩種服務。
(1)保密性:利用握手協定所定義的共享密鑰對SSL淨荷(Payload)加密。
(2)完整性:利用握手協定所定義的共享的MAC密鑰來生成報文的鑑別碼(MAC)。
SSL的工作過程如下。
(1)傳送方的工作過程為:
從上層接受要傳送的數據(包括各種訊息和數據);
對信息進行分段,分成若干紀錄;
使用指定的壓縮算法進行數據壓縮(可選);
使用指定的MAC算法生成MAC;
使用指定的加密算法進行數據加密;
添加SSL記錄協定的頭,傳送數據。
(2)接收方的工作過程為:
接收數據,從SSL記錄協定的頭中獲取相關信息;
使用指定的解密算法解密數據;
使用指定的MAC算法校驗MAC;
使用壓縮算法對數據解壓縮(在需要進行);
將記錄進行數據重組;
將數據傳送給高層。
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)加密規約(CipherSpec):用於說明對大塊數據進行加密採用的算法,以及計算MAC所採用的散列算法。
(5)主密值:一個48位元組長的秘密值,由客戶和伺服器共享。
(6)可重新開始的標識:用於指示會話是否可以用於初始化新的連線。
連線狀態由以下參數來定義:
(1)伺服器和客戶器的隨機數:是伺服器和客戶為每個連線選擇的用於標識連線的位元組序列。
(2)伺服器寫MAC密值:伺服器傳送數據時,生成MAC使用的密鑰,長度為128bit。
(3)客戶寫MAC密值,伺服器傳送數據時,用於數據加密的密鑰,長度為128bit。
(4)客戶寫密鑰:客戶傳送數據時,用於數據加密的密鑰,長度為128bit。
(5)初始化向量:當使用CBC模式的分組密文算法是=時,需要為每個密鑰維護初始化向量。
(6)序列號:通信的每一端都為每個連線中的傳送和接收報文維持著一個序列號。
https介紹
HTTPS(HypertextTransferProtocolSecure)安全超文本傳輸協定
它是由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。
它是一個URIscheme(抽象標識符體系),句法類同http:體系。用於安全的HTTP數據傳輸。https:URL表明它使用了HTTP,但HTTPS存在不同於HTTP的默認連線埠及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統的最初研發由網景公司進行,提供了身份驗證與加密通訊方法,它被廣泛用於全球資訊網上安全敏感的通訊,例如交易支付方面。
限制
它的安全保護依賴瀏覽器的正確實現以及伺服器軟體、實際加密算法的支持.
一種常見的誤解是“銀行用戶線上使用https:就能充分徹底保障他們的銀行卡號不被偷竊。”實際上,與伺服器的加密連線中能保護銀行卡號的部分,只有用戶到伺服器之間的連線及伺服器自身。並不能絕對確保伺服器自己是安全的,這點甚至已被攻擊者利用,常見例子是模仿銀行域名的釣魚攻擊。少數罕見攻擊在網站傳輸客戶數據時發生,攻擊者嘗試竊聽數據於傳輸中。
商業網站被人們期望迅速儘早引入新的特殊處理程式到金融網關,僅保留傳輸碼(transactionnumber)。不過他們常常存儲銀行卡號在同一個資料庫里。那些資料庫和伺服器少數情況有可能被未授權用戶攻擊和損害。
套用
extendedvalidationsslcertificates翻譯為中文即擴展驗證(EV)SSL證書,該證書經過最徹底的身份驗證,確保證書持有組織的真實性。獨有的綠色地址欄技術將循環顯示組織名稱和作為CA的GlobalSign名稱,從而最大限度上確保網站的安全性,樹立網站可信形象,不給欺詐釣魚網站以可乘之機。
對線上購物者來說,綠色地址欄是驗證網站身份及安全性的最簡便可靠的方式。在IE7.0、FireFox3.0、Opera9.5等新一代高安全瀏覽器下,使用擴展驗證(EV)SSL證書的網站的瀏覽器地址欄會自動呈現綠色,從而清晰地告訴用戶正在訪問的網站是經過嚴格認證的。此外綠色地址欄臨近的區域還會顯示網站所有者的名稱和頒發證書CA機構名稱,這些均向客戶傳遞同一信息,該網站身份可信,信息傳遞安全可靠,而非釣魚網站。