轉(zhuǎn)自:http://kb.cnblogs.com/page/197396/
SSL:(Secure Socket Layer,安全套接字層)接谨,位于可靠的面向連接的網(wǎng)絡(luò)層協(xié)議和應(yīng)用層協(xié)議之間的一種協(xié)議層蛇尚。SSL通過互相認證芽唇、使用數(shù)字簽名確保完整性、使用加密確保私密性佣蓉,以實現(xiàn)客戶端和服務(wù)器之間的安全通訊披摄。該協(xié)議由兩層組成:SSL記錄協(xié)議和SSL握手協(xié)議。
TLS:(Transport Layer Security勇凭,傳輸層安全協(xié)議)疚膊,用于兩個應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩層組成:TLS記錄協(xié)議和TLS握手協(xié)議虾标。
SSL是Netscape開發(fā)的專門用戶保護Web通訊的寓盗,目前版本為3.0。最新版本的TLS 1.0是IETF(工程任務(wù)組)制定的一種新的協(xié)議璧函,它建立在SSL 3.0協(xié)議規(guī)范之上傀蚌,是SSL 3.0的后續(xù)版本。兩者差別極小蘸吓,可以理解為SSL 3.1善炫,它是寫入了RFC的。
SSL (Secure Socket Layer)
為Netscape所研發(fā)库继,用以保障在Internet上數(shù)據(jù)傳輸之安全箩艺,利用數(shù)據(jù)加密(Encryption)技術(shù),可確保數(shù)據(jù)在網(wǎng)絡(luò)上之傳輸過程中不會被截取宪萄。目前一般通用之規(guī)格為40 bit之安全標準艺谆,美國則已推出128 bit之更高安全標準,但限制出境拜英。只要3.0版本以上之I.E.或Netscape瀏覽器即可支持SSL静汤。
當前版本為3.0。它已被廣泛地用于Web瀏覽器與服務(wù)器之間的身份認證和加密數(shù)據(jù)傳輸居凶。
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ù)據(jù)傳輸開始前嫁佳,通訊雙方進行身份認證、協(xié)商加密算法谷暮、交換加密密鑰等蒿往。
SSL協(xié)議提供的服務(wù)主要有:
1)認證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務(wù)器湿弦;
2)加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊热柯;
3)維護數(shù)據(jù)的完整性颊埃,確保數(shù)據(jù)在傳輸過程中不被改變蔬充。
SSL協(xié)議的工作流程:
服務(wù)器認證階段:
1)客戶端向服務(wù)器發(fā)送一個開始信息“Hello”以便開始一個新的會話連接;
2)服務(wù)器根據(jù)客戶的信息確定是否需要生成新的主密鑰班利,如需要則服務(wù)器在響應(yīng)客戶的“Hello”信息時將包含生成主密鑰所需的信息饥漫;
3)客戶根據(jù)收到的服務(wù)器響應(yīng)信息,產(chǎn)生一個主密鑰罗标,并用服務(wù)器的公開密鑰加密后傳給服務(wù)器庸队;
4)服務(wù)器恢復該主密鑰,并返回給客戶一個用主密鑰認證的信息闯割,以此讓客戶認證服務(wù)器彻消。
用戶認證階段:在此之前,服務(wù)器已經(jīng)通過了客戶認證宙拉,這一階段主要完成對客戶的認證宾尚。經(jīng)認證的服務(wù)器發(fā)送一個提問給客戶,客戶則返回(數(shù)字)簽名后的提問和其公開密鑰谢澈,從而向服務(wù)器提供認證煌贴。
從SSL 協(xié)議所提供的服務(wù)及其工作流程可以看出,SSL協(xié)議運行的基礎(chǔ)是商家對消費者信息保密的承諾澳化,這就有利于商家而不利于消費者。在電子商務(wù)初級階段稳吮,由于運作電子商務(wù)的企業(yè)大多是信譽較高的大公司缎谷,因此這問題還沒有充分暴露出來。但隨著電子商務(wù)的發(fā)展灶似,各中小型公司也參與進來列林,這樣在電子支付過程中的單一認證問題就越來越突出。雖然在SSL3.0中通過數(shù)字簽名和數(shù)字證書可實現(xiàn)瀏覽器和Web服務(wù)器雙方的身份驗證酪惭,但是SSL協(xié)議仍存在一些問題希痴,比如,只能提供交易中客戶與服務(wù)器間的雙方認證春感,在涉及多方的電子交易中砌创,SSL協(xié)議并不能協(xié)調(diào)各方間的安全傳輸和信任關(guān)系虏缸。在這種情況下,Visa和MasterCard兩大信用卡公組織制定了SET協(xié)議嫩实,為網(wǎng)上信用卡支付提供了全球性的標準刽辙。
TLS(Transport Layer Security Protocol):安全傳輸層協(xié)議
安全傳輸層協(xié)議(TLS)用于在兩個通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩層組成: TLS 記錄協(xié)議(TLS Record)和 TLS 握手協(xié)議(TLS Handshake)甲献。較低的層為 TLS 記錄協(xié)議宰缤,位于某個可靠的傳輸協(xié)議(例如 TCP)上面。
TLS 記錄協(xié)議提供的連接安全性具有兩個基本特性:
私有――對稱加密用以數(shù)據(jù)加密(DES 晃洒、RC4 等)慨灭。對稱加密所產(chǎn)生的密鑰對每個連接都是唯一的,且此密鑰基于另一個協(xié)議(如握手協(xié)議)協(xié)商球及。記錄協(xié)議也可以不加密使用氧骤。
可靠――信息傳輸包括使用密鑰的MAC進行信息完整性檢查。安全哈希功能( SHA桶略、MD5 等)用于 MAC 計算语淘。記錄協(xié)議在沒有 MAC 的情況下也能操作,但一般只能用于這種模式际歼,即有另一個協(xié)議正在使用記錄協(xié)議傳輸協(xié)商安全參數(shù)惶翻。
TLS記錄協(xié)議用于封裝各種高層協(xié)議。作為這種封裝協(xié)議之一的握手協(xié)議允許服務(wù)器與客戶機在應(yīng)用程序協(xié)議傳輸和接收其第一個數(shù)據(jù)字節(jié)前彼此之間相互認證鹅心,協(xié)商加密算法和加密密鑰吕粗。 TLS 握手協(xié)議提供的連接安全具有三個基本屬性:
可以使用非對稱的,或公共密鑰的密碼術(shù)來認證對等方的身份旭愧。該認證是可選的颅筋,但至少需要一個結(jié)點方。
共享加密密鑰的協(xié)商是安全的输枯。對偷竊者來說協(xié)商加密是難以獲得的议泵。此外經(jīng)過認證過的連接不能獲得加密,即使是進入連接中間的攻擊者也不能桃熄。
協(xié)商是可靠的先口。沒有經(jīng)過通信方成員的檢測,任何攻擊者都不能修改通信協(xié)商瞳收。
TLS的最大優(yōu)勢就在于:TLS是獨立于應(yīng)用協(xié)議碉京。高層協(xié)議可以透明地分布在TLS協(xié)議上面。然而螟深, TLS 標準并沒有規(guī)定應(yīng)用程序如何在TLS上增加安全性谐宙;它把如何啟動 TLS 握手協(xié)議以及如何解釋交換的認證證書的決定權(quán)留給協(xié)議的設(shè)計者和實施者來判斷。
協(xié)議結(jié)構(gòu)
TLS 協(xié)議包括兩個協(xié)議組――TLS記錄協(xié)議和TLS握手協(xié)議――每組具有很多不同格式的信息界弧。在此文件中我們只列出協(xié)議摘要并不作具體解析凡蜻。具體內(nèi)容可參照相關(guān)文檔搭综。
TLS記錄協(xié)議是一種分層協(xié)議。每一層中的信息可能包含長度咽瓷、描述和內(nèi)容等字段设凹。記錄協(xié)議支持信息傳輸、將數(shù)據(jù)分段到可處理塊茅姜、壓縮數(shù)據(jù)闪朱、應(yīng)用MAC 、加密以及傳輸結(jié)果等钻洒。對接收到的數(shù)據(jù)進行解密奋姿、校驗、解壓縮素标、重組等称诗,然后將它們傳送到高層客戶機。
TLS連接狀態(tài)指的是TLS記錄協(xié)議的操作環(huán)境头遭。它規(guī)定了壓縮算法寓免、加密算法和MAC算法罩驻。
TLS記錄層從高層接收任意大小無空塊的連續(xù)數(shù)據(jù)硼控。密鑰計算:記錄協(xié)議通過算法從握手協(xié)議提供的安全參數(shù)中產(chǎn)生密鑰、 IV 和MAC密鑰乞封。
TLS 握手協(xié)議由三個子協(xié)議組構(gòu)成鲫惶,允許對等雙方在記錄層的安全參數(shù)上達成一致蜈首、自我認證、例示協(xié)商安全參數(shù)欠母、互相報告出錯條件欢策。
關(guān)系就是。赏淌。踩寇。。并列關(guān)系
最新版本的TLS(Transport Layer Security六水,傳輸層安全協(xié)議)是IETF(Internet Engineering Task Force俺孙,Internet工程任務(wù)組)制定的一種新的協(xié)議,它建立在SSL 3.0協(xié)議規(guī)范之上缩擂,是SSL 3.0的后續(xù)版本鼠冕。在TLS與SSL3.0之間存在著顯著的差別添寺,主要是它們所支持的加密算法不同胯盯,所以TLS與SSL3.0不能互操作。
1.TLS與SSL的差異
1)版本號:TLS記錄格式與SSL記錄格式相同计露,但版本號的值不同博脑,TLS的版本1.0使用的版本號為SSLv3.1憎乙。
2)報文鑒別碼:SSLv3.0和TLS的MAC算法及MAC計算的范圍不同。TLS使用了RFC-2104定義的HMAC算法叉趣。SSLv3.0使用了相似的算法泞边,兩者差別在于SSLv3.0中,填充字節(jié)與密鑰之間采用的是連接運算疗杉,而HMAC算法采用的是異或運算阵谚。但是兩者的安全程度是相同的。
3)偽隨機函數(shù):TLS使用了稱為PRF的偽隨機函數(shù)來將密鑰擴展成數(shù)據(jù)塊烟具,是更安全的方式梢什。
4)報警代碼:TLS支持幾乎所有的SSLv3.0報警代碼,而且TLS還補充定義了很多報警代碼朝聋,如解密失斘宋纭(decryption_failed)、記錄溢出(record_overflow)冀痕、未知CA(unknown_ca)荔睹、拒絕訪問(access_denied)等。
5)密文族和客戶證書:SSLv3.0和TLS存在少量差別言蛇,即TLS不支持Fortezza密鑰交換僻他、加密算法和客戶證書。
6)certificate_verify和finished消息:SSLv3.0和TLS在用certificate_verify和finished消息計算MD5和SHA-1散列碼時猜极,計算的輸入有少許差別中姜,但安全性相當。
7)加密計算:TLS與SSLv3.0在計算主密值(master secret)時采用的方式不同跟伏。
8)填充:用戶數(shù)據(jù)加密之前需要增加的填充字節(jié)丢胚。在SSL中,填充后的數(shù)據(jù)長度要達到密文塊長度的最小整數(shù)倍受扳。而在TLS中携龟,填充后的數(shù)據(jù)長度可以是密文塊長度的任意整數(shù)倍(但填充的最大長度為255字節(jié)),這種方式可以防止基于對報文長度進行分析的攻擊勘高。
2.TLS的主要增強內(nèi)容
TLS的主要目標是使SSL更安全峡蟋,并使協(xié)議的規(guī)范更精確和完善。TLS 在SSL v3.0 的基礎(chǔ)上华望,提供了以下增強內(nèi)容:
1)更安全的MAC算法
2)更嚴密的警報
3)“灰色區(qū)域”規(guī)范的更明確的定義
3.TLS對于安全性的改進
1)對于消息認證使用密鑰散列法:TLS 使用“消息認證代碼的密鑰散列法”(HMAC)蕊蝗,當記錄在開放的網(wǎng)絡(luò)(如因特網(wǎng))上傳送時,該代碼確保記錄不會被變更赖舟。SSLv3.0還提供鍵控消息認證蓬戚,但HMAC比SSLv3.0使用的(消息認證代碼)MAC 功能更安全。
2)增強的偽隨機功能(PRF):PRF生成密鑰數(shù)據(jù)宾抓。在TLS中子漩,HMAC定義PRF豫喧。PRF使用兩種散列算法保證其安全性。如果任一算法暴露了幢泼,只要第二種算法未暴露紧显,則數(shù)據(jù)仍然是安全的。
3)改進的已完成消息驗證:TLS和SSLv3.0都對兩個端點提供已完成的消息缕棵,該消息認證交換的消息沒有被變更孵班。然而,TLS將此已完成消息基于PRF和HMAC值之上招驴,這也比SSLv3.0更安全重父。
4)一致證書處理:與SSLv3.0不同,TLS試圖指定必須在TLS之間實現(xiàn)交換的證書類型忽匈。
5)特定警報消息:TLS提供更多的特定和附加警報房午,以指示任一會話端點檢測到的問題。TLS還對何時應(yīng)該發(fā)送某些警報進行記錄丹允。