SSL是Secure Socket Layer(安全套接層協(xié)議)的縮寫(xiě),可以在Internet上提供秘密性傳輸。Netscape公司在推出第一個(gè)Web瀏覽器的同時(shí),提出了SSL協(xié)議標(biāo)準(zhǔn),目前已有3.0版本。SSL采用公開(kāi)密鑰技術(shù)。其目標(biāo)是保證兩個(gè)應(yīng)用間通信的保密性和可靠性,可在服務(wù)器端和用戶端同時(shí)實(shí)現(xiàn)支持。目前,利用公開(kāi)密鑰技術(shù)的SSL協(xié)議,已成為Internet上保密通訊的工業(yè)標(biāo)準(zhǔn)。安全套接層協(xié)議能使用戶/服務(wù)器應(yīng)用之間的通信不被攻擊者竊聽(tīng),并且始終對(duì)服務(wù)器進(jìn)行認(rèn)證,還可選擇對(duì)用戶進(jìn)行認(rèn)證(客戶端證書(shū))。
SSL協(xié)議位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL協(xié)議可分為兩層: SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。 SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開(kāi)始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。
SSL安全性
SSL技術(shù)提供了身份認(rèn)證服務(wù),信息加密服務(wù)和數(shù)據(jù)的完整性服務(wù)等3項(xiàng)服務(wù)以達(dá)到高安全性。
1.用戶和服務(wù)器的合法性認(rèn)證
2.加密數(shù)據(jù)以隱藏被傳送的數(shù)據(jù)
SSL協(xié)議所采用的加密技術(shù)既有對(duì)稱密鑰加密技術(shù),也有非對(duì)稱密鑰加密技術(shù)。
3.保護(hù)數(shù)據(jù)的完整性
采用Hash函數(shù)和機(jī)密共享的方法來(lái)提供信息的完整新服務(wù),建立客戶機(jī)與服務(wù)器之間的安全通道,使所有經(jīng)過(guò)SSL協(xié)議處理的業(yè)務(wù)在傳輸過(guò)程中能全部完整準(zhǔn)確無(wú)誤的到達(dá)目的地
通過(guò)以上敘述,SSL協(xié)議提供的安全信道有以下三個(gè)特性:
1.數(shù)據(jù)的保密性 信息加密就是把明碼的輸入文件用加密算法轉(zhuǎn)換成加密的文件以實(shí)現(xiàn)數(shù)據(jù)的保密。加密的過(guò)程需要用到密匙來(lái)加密數(shù)據(jù)然后再解密。沒(méi)有了密鑰,就無(wú)法解開(kāi)加密的數(shù)據(jù)。數(shù)據(jù)加密之后,只有密匙要用一個(gè)安全的方法傳送。加密過(guò)的數(shù)據(jù)可以公開(kāi)地傳送。
2.數(shù)據(jù)的一致性 加密也能保證數(shù)據(jù)的一致性。例如:消息驗(yàn)證碼(MAC),能夠校驗(yàn)用戶提供的加密信息,接收者可以用MAC來(lái)校驗(yàn)加密數(shù)據(jù),保證數(shù)據(jù)在傳輸過(guò)程中沒(méi)有被篡改過(guò)。
3.安全驗(yàn)證 加密的另外一個(gè)用途是用來(lái)作為個(gè)人的標(biāo)識(shí),用戶的密匙可以作為他的安全驗(yàn)證的標(biāo)識(shí)。SSL是利用公開(kāi)密鑰的加密技術(shù)(RSA)來(lái)作為用戶端與服務(wù)器端在傳送機(jī)密資料時(shí)的加密通訊協(xié)定。
SSL使用HTTPS協(xié)議來(lái)對(duì)消息進(jìn)行加密和簽名,使用SSL證書(shū)來(lái)對(duì)服務(wù)進(jìn)行身份驗(yàn)證。
實(shí)現(xiàn)機(jī)制
SSL安全機(jī)制是依靠數(shù)字證書(shū)來(lái)實(shí)現(xiàn)的。:用戶與IIS服務(wù)器建立連接后,服務(wù)器會(huì)把數(shù)字證書(shū)與公用密鑰發(fā)送給用戶,用戶端生成會(huì)話密鑰,并用公共密鑰對(duì)會(huì)話密鑰進(jìn)行加密,然后傳遞給服務(wù)器,服務(wù)器端用私人密鑰進(jìn)行解密,這樣,用戶端和服務(wù)器端就建立了一條安全通道,只有SSL允許的用戶才能與IIS服務(wù)器進(jìn)行通信。
具體過(guò)程如下:
1.Client Hello:客戶端將其SSL版本號(hào)、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息(如加密算法和能支持的密鑰大小)發(fā)送到服務(wù)器。
2.Server Hello:服務(wù)器將其SSL版本號(hào)、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送給客戶端
3.Certificate(可選):服務(wù)器發(fā)一個(gè)證書(shū)或一個(gè)證書(shū)鏈到客戶端,證書(shū)鏈開(kāi)始于服務(wù)器公共鑰匙并結(jié)束于證明權(quán)威的根證書(shū)。該證書(shū)用于向客戶端確認(rèn)服務(wù)器的身份,該消息是可選的。如果配置服務(wù)器的SSL需要驗(yàn)證服務(wù)器的身份,會(huì)發(fā)送該消息。多數(shù)電子商務(wù)應(yīng)用都需要服務(wù)器端身份驗(yàn)證。
4.Certificate Request(可選):如果配置服務(wù)器的SSL需要驗(yàn)證用戶身份,還要發(fā)出請(qǐng)求要求瀏覽器提供用戶證書(shū)。 多數(shù)電子商務(wù)不需要客戶端身份驗(yàn)證,不過(guò),在支付過(guò)程中經(jīng)常需要客戶端身份驗(yàn)證。
5.Server Key Exchange(可選):如果服務(wù)器發(fā)送的公共密鑰對(duì)加密密鑰的交換不是很合適,則發(fā)送一個(gè)服務(wù)器密鑰交換消息。
6.ServerHelloDone:通知客戶端,服務(wù)器已經(jīng)完成了交流過(guò)程的初始化。
7.Certificate(可選):客戶端發(fā)送客戶端證書(shū)給服務(wù)器。僅當(dāng)服務(wù)器請(qǐng)求客戶端身份驗(yàn)證的時(shí)候會(huì)發(fā)送客戶端證書(shū)
8.Client Key Exchange:客戶端產(chǎn)生一個(gè)會(huì)話密鑰與服務(wù)器共享。在SSL握手協(xié)議完成后,客戶端與服務(wù)器端通信信息的加密就會(huì)使用該會(huì)話密鑰。如果使用RSA加密算法,客戶端將使用服務(wù)器的公鑰將會(huì)話密鑰之后再發(fā)送給服務(wù)器。服務(wù)器使用自己的私鑰對(duì)接收的消息進(jìn)行解密得到共享的會(huì)話密鑰。
9.Certificate Verify:如果服務(wù)器請(qǐng)求驗(yàn)證客戶端,則這消息允許服務(wù)器完成驗(yàn)證過(guò)程。
10.Change cipher spec:客戶端要求服務(wù)器在后續(xù)的通信中使用加密模式
11.Finished:客戶端告訴服務(wù)器已經(jīng)準(zhǔn)備好安全通信了。
12.Change cipher spec:服務(wù)器要求客戶端在后續(xù)的通信中使用加密模式
13.Finished:服務(wù)器告訴客戶端它已經(jīng)準(zhǔn)備好安全通信了。SSL握手完成的標(biāo)志
當(dāng)上述動(dòng)作完成之后,兩者的資料傳送就會(huì)加密。發(fā)送時(shí)信息用會(huì)話密鑰加密形成一個(gè)數(shù)據(jù)包A,對(duì)稱密鑰用非對(duì)稱算法加密形成另一個(gè)數(shù)據(jù)包B,再把兩個(gè)包一起發(fā)送。接收的過(guò)程域發(fā)送正好相反,先用非對(duì)稱算法打開(kāi)對(duì)稱密鑰的加密包B,獲得會(huì)話密鑰,然后再用會(huì)話密鑰解密數(shù)據(jù)包A,獲取發(fā)送過(guò)來(lái)的信息原文。 會(huì)話密鑰還被描述為對(duì)稱密鑰,或“共享秘密”。具有對(duì)稱密鑰很重要,因?yàn)樗鼫p少了事務(wù)雙方所需執(zhí)行的計(jì)算量。如果每個(gè)消息都要求對(duì) Nonce 和哈希進(jìn)行新的交換,那么性能將會(huì)下降。因此,SSL 的最終目標(biāo)是使用允許消息在通信雙方之間自由流動(dòng)的對(duì)稱密鑰,同時(shí)具有更高程度的安全和效率。
HTTPS
HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協(xié)議
它是由Netscape開(kāi)發(fā)并內(nèi)置于其瀏覽器中,用于對(duì)數(shù)據(jù)進(jìn)行壓縮和解壓操作,并返回網(wǎng)絡(luò)上傳送回的結(jié)果。HTTPS實(shí)際上應(yīng)用了Netscape的完全套接字層(SSL)作為HTTP應(yīng)用層的子層。(HTTPS使用端口443,而不是象HTTP那樣使用端口80來(lái)和TCP/IP進(jìn)行通信。)SSL使用40 位關(guān)鍵字作為RC4流加密算法,這對(duì)于商業(yè)信息的加密是合適的。HTTPS和SSL支持使用X.509數(shù)字認(rèn)證,如果需要的話用戶可以確認(rèn)發(fā)送者是誰(shuí)。。
https是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版。即HTTP下加入SSL層,https的安全基礎(chǔ)是SSL。
它是一個(gè)URI scheme(抽象標(biāo)識(shí)符體系),句法類同http:體系。用于安全的HTTP數(shù)據(jù)傳輸。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默認(rèn)端口及一個(gè)加密/身份驗(yàn)證層(在HTTP與TCP之間)。這個(gè)系統(tǒng)的最初研發(fā)由網(wǎng)景公司進(jìn)行,提供了身份驗(yàn)證與加密通訊方法,現(xiàn)在它被廣泛用于萬(wàn)維網(wǎng)上安全敏感的通訊,例如交易支付方面。
限制
它的安全保護(hù)依賴瀏覽器的正確實(shí)現(xiàn)以及服務(wù)器軟件、實(shí)際加密算法的支持.
一種常見(jiàn)的誤解是“銀行用戶在線使用https:就能充分徹底保障他們的銀行卡號(hào)不被偷竊。”實(shí)際上,與服務(wù)器的加密連接中能保護(hù)銀行卡號(hào)的部分,只有用戶到服務(wù)器之間的連接及服務(wù)器自身。并不能絕對(duì)確保服務(wù)器自己是安全的,這點(diǎn)甚至已被攻擊者利用,常見(jiàn)例子是模仿銀行域名的釣魚(yú)攻擊。少數(shù)罕見(jiàn)攻擊在網(wǎng)站傳輸客戶數(shù)據(jù)時(shí)發(fā)生,攻擊者嘗試竊聽(tīng)數(shù)據(jù)于傳輸中。
商業(yè)網(wǎng)站被人們期望迅速盡早引入新的特殊處理程序到金融網(wǎng)關(guān),僅保留傳輸碼(transaction number)。不過(guò)他們常常存儲(chǔ)銀行卡號(hào)在同一個(gè)數(shù)據(jù)庫(kù)里。那些數(shù)據(jù)庫(kù)和服務(wù)器少數(shù)情況有可能被未授權(quán)用戶攻擊和損害。
參考:
聯(lián)系客服