HTTPS、SSL、TLS三者之間的聯(lián)系和區(qū)別

原文地址:https://blog.csdn.net/whatday/article/details/102369732/


SSL TLS簡(jiǎn)介

SSL(Secure Socket Layer 安全套接層)是基于HTTPS下的一個(gè)協(xié)議加密層,最初是由網(wǎng)景公司(Netscape)研發(fā),后被IETF(The Internet Engineering Task Force - 互聯(lián)網(wǎng)工程任務(wù)組)標(biāo)準(zhǔn)化后寫入(RFCRequest For Comments 請(qǐng)求注釋),RFC里包含了很多互聯(lián)網(wǎng)技術(shù)的規(guī)范!

起初是因?yàn)镠TTP在傳輸數(shù)據(jù)時(shí)使用的是明文(雖然說(shuō)POST提交的數(shù)據(jù)時(shí)放在報(bào)體里看不到的,但是還是可以通過(guò)抓包工具竊取到)是不安全的,為了解決這一隱患網(wǎng)景公司推出了SSL安全套接字協(xié)議層,SSL是基于HTTP之下TCP之上的一個(gè)協(xié)議層,是基于HTTP標(biāo)準(zhǔn)并對(duì)TCP傳輸數(shù)據(jù)時(shí)進(jìn)行加密,所以HPPTS是HTTP+SSL/TCP的簡(jiǎn)稱。

由于HTTPS的推出受到了很多人的歡迎,在SSL更新到3.0時(shí),IETF對(duì)SSL3.0進(jìn)行了標(biāo)準(zhǔn)化,并添加了少數(shù)機(jī)制(但是幾乎和SSL3.0無(wú)差異),標(biāo)準(zhǔn)化后的IETF更名為TLS1.0(Transport Layer Security 安全傳輸層協(xié)議),可以說(shuō)TLS就是SSL的新版本3.1,并同時(shí)發(fā)布“RFC2246-TLS加密協(xié)議詳解”,如果想更深層次的了解TLS的工作原理可以去RFC的官方網(wǎng)站:www.rfc-editor.org,搜索RFC2246即可找到RFC文檔! ——以上就是歷史背景

SSL 是指安全套接字層,簡(jiǎn)而言之,它是一項(xiàng)標(biāo)準(zhǔn)技術(shù),可確?;ヂ?lián)網(wǎng)連接安全,保護(hù)兩個(gè)系統(tǒng)之間發(fā)送的任何敏感數(shù)據(jù),防止網(wǎng)絡(luò)犯罪分子讀取和修改任何傳輸信息,包括個(gè)人資料。兩個(gè)系統(tǒng)可能是指服務(wù)器和客戶端(例如,瀏覽器和購(gòu)物網(wǎng)站),或兩個(gè)服務(wù)器之間(例如,含個(gè)人身份信息或工資單信息的應(yīng)用程序)。

要說(shuō)清楚 HTTPS 協(xié)議的實(shí)現(xiàn)原理,至少需要如下幾個(gè)背景知識(shí)。

1. 大致了解幾個(gè)基本術(shù)語(yǔ)(HTTPS、SSL、TLS)的含義

2. 大致了解 HTTP 和 TCP 的關(guān)系(尤其是“短連接”VS“長(zhǎng)連接”)

3. 大致了解加密算法的概念(尤其是“對(duì)稱加密與非對(duì)稱加密”的區(qū)別)

4. 大致了解 CA 證書的用途 ??5.TCP通信協(xié)議的幾次握手

TLS(傳輸層安全)是更為安全的升級(jí)版 SSL。由于 SSL 這一術(shù)語(yǔ)更為常用,因此我們?nèi)匀粚⑽覀兊陌踩C書稱作 SSL。但當(dāng)您從賽門鐵克購(gòu)買 SSL?時(shí),您真正購(gòu)買的是最新的 TLS 證書,有?ECC、RSA 或 DSA 三種加密方式可以選擇。

TLS/SSL是一種加密通道的規(guī)范

它利用對(duì)稱加密、公私鑰不對(duì)稱加密及其密鑰交換算法,CA系統(tǒng)進(jìn)行加密且可信任的信息傳輸

在HTTP SSL中常用的對(duì)稱加密算法有RC4,AES,3DES,Camellia等

SSL由從前的網(wǎng)景公司開發(fā)

有1,2,3三個(gè)版本,但現(xiàn)在只使用版本3

TLS是SSL的標(biāo)準(zhǔn)化后的產(chǎn)物

有1.0 1.1 1.2三個(gè)版本

默認(rèn)使用1.0

TLS1.0和SSL3.0幾乎沒(méi)有區(qū)別

事實(shí)上我們現(xiàn)在用的都是TLS,但因?yàn)闅v史上習(xí)慣了SSL這個(gè)稱呼

平常還是以SSL為多。

SSL(Secure Sockets Layer?安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。TLS與SSL在傳輸層對(duì)網(wǎng)絡(luò)連接進(jìn)行加密。

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ù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。

安全傳輸層協(xié)議(TLS)用于在兩個(gè)通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩層組成: TLS 記錄協(xié)議(TLS Record)和 TLS?握手協(xié)議(TLS Handshake)。

TLS 的最大優(yōu)勢(shì)就在于:TLS 是獨(dú)立于應(yīng)用協(xié)議。高層協(xié)議可以透明地分布在 TLS 協(xié)議上面。然而,TLS 標(biāo)準(zhǔn)并沒(méi)有規(guī)定應(yīng)用程序如何在 TLS 上增加安全性;它把如何啟動(dòng) TLS?握手協(xié)議以及如何解釋交換的認(rèn)證證書的決定權(quán)留給協(xié)議的設(shè)計(jì)者和實(shí)施者來(lái)判斷。

1、SSL加密

SSL是Netscape公司所提出的安全保密協(xié)議,在瀏覽器(如Internet Explorer、Netscape Navigator)和Web服務(wù)器(如Netscape的Netscape Enterprise Server、ColdFusion Server等等)之間構(gòu)造安全通道來(lái)進(jìn)行數(shù)據(jù)傳輸,SSL運(yùn)行在TCP/IP層之上、應(yīng)用層之下,為應(yīng)用程序提供加密數(shù)據(jù)通道,它采用了RC4、MD5以及RSA等加密算法,使用40 位的密鑰,適用于商業(yè)信息的加密。同時(shí),Netscape公司相應(yīng)開發(fā)了HTTPS協(xié)議并內(nèi)置于其瀏覽器中,HTTPS實(shí)際上就是HTTP over SSL,它使用默認(rèn)端口443,而不是像HTTP那樣使用端口80來(lái)和TCP/IP進(jìn)行通信。HTTPS協(xié)議使用SSL在發(fā)送方把原始數(shù)據(jù)進(jìn)行加密,然后在接受方進(jìn)行解密,加密和解密需要發(fā)送方和接受方通過(guò)交換共知的密鑰來(lái)實(shí)現(xiàn),因此,所傳送的數(shù)據(jù)不容易被網(wǎng)絡(luò)黑客截獲和解密。 然而,加密和解密過(guò)程需要耗費(fèi)系統(tǒng)大量的開銷,嚴(yán)重降低機(jī)器的性能,相關(guān)測(cè)試數(shù)據(jù)表明使用HTTPS協(xié)議傳輸數(shù)據(jù)的工作效率只有使用HTTP協(xié)議傳輸?shù)氖种?。假如為了安全保密,將一個(gè)網(wǎng)站所有的Web應(yīng)用都啟用SSL技術(shù)來(lái)加密,并使用HTTPS協(xié)議進(jìn)行傳輸,那么該網(wǎng)站的性能和效率將會(huì)大大降低,而且沒(méi)有這個(gè)必要,因?yàn)橐话銇?lái)說(shuō)并不是所有數(shù)據(jù)都要求那么高的安全保密級(jí)別

2、TLS加密

TLS:安全傳輸層協(xié)議

TLS:Transport Layer Security

安全傳輸層協(xié)議(TLS)用于在兩個(gè)通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩層組成: TLS 記錄協(xié)議(TLS Record)和 TLS 握手協(xié)議(TLS Handshake)。較低的層為 TLS 記錄協(xié)議,位于某個(gè)可靠的傳輸協(xié)議(例如 TCP)上面。


SSL與TLS的區(qū)別

SSL:(Secure Socket Layer,安全套接字層),位于可靠的面向連接的網(wǎng)絡(luò)層協(xié)議和應(yīng)用層協(xié)議之間的一種協(xié)議層。SSL通過(guò)互相認(rèn)證、使用數(shù)字簽名確保完整性、使用加密確保私密性,以實(shí)現(xiàn)客戶端和服務(wù)器之間的安全通訊。該協(xié)議由兩層組成:SSL記錄協(xié)議和SSL握手協(xié)議。

TLS:(Transport Layer Security,傳輸層安全協(xié)議),用于兩個(gè)應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩層組成:TLS記錄協(xié)議和TLS握手協(xié)議。

  SSL是Netscape開發(fā)的專門用于保護(hù)Web通訊的,目前版本為3.0.最新版本的TLS 1.0是IETE(工程任務(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ò)程中不會(huì)被截取。

  當(dāng)前版本為3.0。它已被廣泛地用于Web瀏覽器與服務(wù)器之間的身份認(rèn)證和加密數(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í)際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。

  SSL協(xié)議提供的服務(wù)主要有:

  1)認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;

  2)加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊??;

  3)維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過(guò)程中不被改變。

  SSL協(xié)議的工作流程:

  服務(wù)器認(rèn)證階段:

  1)客戶端向服務(wù)器發(fā)送一個(gè)開始信息“Hello”以便開始一個(gè)新的會(huì)話連接;

  2)服務(wù)器根據(jù)客戶的信息確定是否需要生成新的主密鑰,如需要?jiǎng)t服務(wù)器在響應(yīng)客戶的“Hello”信息時(shí)將包含生成主密鑰所需的信息;

  3)客服根據(jù)收到的服務(wù)器響應(yīng)信息,產(chǎn)生一個(gè)主密鑰,并用服務(wù)器的公開密鑰加密后傳給服務(wù)器;

  4)服務(wù)器恢復(fù)該主密鑰,并返回給客戶一個(gè)用主密鑰認(rèn)證的信息,以此讓客戶認(rèn)證服務(wù)器。

  用戶認(rèn)證階段:在此之前,服務(wù)器已經(jīng)通過(guò)了客戶認(rèn)證,這一階段主要完成對(duì)客戶的認(rèn)證。經(jīng)認(rèn)證的服務(wù)器發(fā)送一個(gè)提問(wèn)給客戶,客戶則返回(數(shù)字)簽名后的提問(wèn)和其公開密鑰,從而向服務(wù)器提供認(rèn)證。

  TLS(Transport Layer Security Protocol):安全傳輸層協(xié)議

  安全傳輸層協(xié)議(TLS)用于在兩個(gè)通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩成組成:TLS記錄協(xié)議(TLS Record)和TLS握手協(xié)議(TLS Handshake)。較低的層為TLS記錄協(xié)議,位于某個(gè)可靠的傳輸協(xié)議(例如TCP)上面。

  TLS記錄協(xié)議提供的連接安全性具有兩個(gè)基本特性:

私有——對(duì)稱加密用以數(shù)據(jù)加密(DES、RC4等)。對(duì)稱加密所產(chǎn)生的密鑰對(duì)每個(gè)連接都是唯一的,且此密鑰基于另一個(gè)協(xié)議(如握手協(xié)議)協(xié)商。記錄協(xié)議也可以不加密使用。

可靠——信息傳輸包括使用密鑰的MAC進(jìn)行信息完整性檢查。安全哈希功能(SHA、MD5等)用于MAC計(jì)算。記錄協(xié)議在沒(méi)有MAC的情況下也能操作,但一般只能用于這種模式,即有另一個(gè)協(xié)議正在使用記錄協(xié)議傳輸協(xié)商安全參數(shù)。

TLS記錄協(xié)議用于封裝各種高層協(xié)議。作為這種封裝協(xié)議之一的握手協(xié)議允許服務(wù)器與客戶機(jī)在應(yīng)用程序協(xié)議傳輸和接收其第一個(gè)數(shù)據(jù)字節(jié)前彼此之間互相認(rèn)證,協(xié)商加密算法和加密密鑰。TLS握手協(xié)議提供的連接安全具有三個(gè)基本屬性:

可以使用非對(duì)稱的,或公共密鑰的密碼術(shù)來(lái)認(rèn)證對(duì)等方的身份。該認(rèn)證是可選的,但至少需要一個(gè)結(jié)點(diǎn)方。

共享解密密鑰的協(xié)商是安全的。對(duì)偷竊者來(lái)說(shuō)協(xié)商加密是難以獲得的。此外經(jīng)過(guò)認(rèn)證過(guò)的連接不能獲得加密,即使是進(jìn)入連接中間的攻擊者也不能。

協(xié)商是可靠的。沒(méi)有經(jīng)過(guò)通信方成員的檢測(cè),任何攻擊者都不能修改通信協(xié)商。

TLS的最大優(yōu)勢(shì)就在于:TLS是獨(dú)立于應(yīng)用協(xié)議。高層協(xié)議可以透明地分布在TLS協(xié)議上面。然而,TLS標(biāo)準(zhǔn)并沒(méi)有規(guī)定應(yīng)用程序如何在TLS上增加安全性;它如何啟動(dòng)TLS握手協(xié)議以及如何解釋交換的認(rèn)證證書的決定權(quán)留給協(xié)議的設(shè)計(jì)者和實(shí)施者來(lái)判斷。

  協(xié)議結(jié)構(gòu)

  TLS協(xié)議包括兩個(gè)協(xié)議組——TLS記錄協(xié)議和TLS握手協(xié)議。

  TLS和SSL的關(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與SSL 3.0之間存在著顯著的差別,主要是它們所支持的加密算法不同,所以TLS與SSL 3.0不能互操作。

1.TLS與SSL的差異

  1)版本號(hào):TLS記錄格式與SSL記錄格式相同,但版本號(hào)的值不同,TLS的版本1.0使用的版本號(hào)為SSLv3.1。

  2)報(bào)文鑒別碼:SSLv3.0和TLS的MAC算法及MAC計(jì)算的范圍不同。TLS使用RFC-2104定義的HMAC算法。SSLv3.0使用了相似的算法,兩者差別在于SSLv3.0中,填充字節(jié)與密鑰之間采用的是連接運(yùn)算,而HMAC算法采用的異或運(yùn)算。但是兩者的安全程度是相同的。

  3)偽隨機(jī)函數(shù):TLS使用了稱為PRF的偽隨機(jī)函數(shù)來(lái)將密鑰擴(kuò)展成數(shù)據(jù)塊,是更安全的方式。

  4)報(bào)警代碼:TLS支持幾乎所有的SSLv3.0報(bào)警代碼,而且TLS還補(bǔ)充定義了很多報(bào)警代碼,如解密失敗(decryption_failed)、記錄溢出(record_overflow)、未知CA(unknown_ca)、拒絕訪問(wèn)(access_denied)等。

  5)密文族和客戶證書:SSLv3.0和TLS存在少量差別,即TLS不支持Fortezza密鑰交換、加密算法和客戶證書。

  6)certificate_verify和finished消息:SSLv3.0和TLS在用certificate_verify和finished消息計(jì)算MD5和SHA-1散列碼時(shí),計(jì)算的輸入有少許差別,但安全性相當(dāng)。

  7)加密計(jì)算:TLS和SSLv3.0在計(jì)算主密值(master secret)時(shí)采用的方式不同。

  8)填充:用戶數(shù)據(jù)加密之前需要增加的填充字節(jié)。在SSL中,填充后的數(shù)據(jù)長(zhǎng)度喲啊達(dá)到密文快長(zhǎng)度的最小整數(shù)倍。而在TLS中,填充后的數(shù)據(jù)長(zhǎng)度可以是密文塊長(zhǎng)度的任意整數(shù)倍(但填充的最大長(zhǎng)度為255字節(jié)),這種方式可以防止基于對(duì)報(bào)文長(zhǎng)度進(jìn)行分析的攻擊。

2.TLS的主要增強(qiáng)內(nèi)容

  TLS的主要目標(biāo)是使SSL更安全,并使協(xié)議的規(guī)范更精確和完善。TLS在SSL v3.0的基礎(chǔ)上,提供了以下增加內(nèi)容:

  1)更安全的MAC算法

  2)更嚴(yán)密的警報(bào)

  3)“灰色區(qū)域”規(guī)范的更明確的定義

3.TLS對(duì)于安全性的改進(jìn)

  1)對(duì)于消息認(rèn)證使用密鑰散列法:TLS使用“消息認(rèn)證代碼的密鑰散列法”(HMAC),當(dāng)記錄在開放的網(wǎng)絡(luò)(如因特網(wǎng))上傳送時(shí),該代碼確保記錄不會(huì)被變更。SSLv3.0還提供鍵控消息認(rèn)證,但HMAC比SSLv3.0使用(消息認(rèn)證代碼)MAC功能更安全。

  2)增強(qiáng)的偽隨機(jī)功能(PRF):PRF生成密鑰數(shù)據(jù)。在TLS中,HMAC定義PRF。PRF使用兩種散列算法保證其安全性。如果任一算法暴露了,只要第二種算法未暴露,則數(shù)據(jù)仍然是安全的。

  3)改進(jìn)的已完成消息驗(yàn)證:TLS和SSLv3.0都對(duì)兩個(gè)端點(diǎn)提供已完成的消息,該消息認(rèn)證交換的消息沒(méi)有被變更。然而,TLS將此已完成消息基于PRF和HMAC值之上,這也比SSLv3.0更安全。

  4)一致證書處理:與SSLv3.0不同,TLS試圖指定必須在TLS之間實(shí)現(xiàn)交換的證書類型。

  5)特定警報(bào)消息:TLS提供更多的特定和附加警報(bào),以指示任一會(huì)話端點(diǎn)檢測(cè)到的問(wèn)題。TLS還對(duì)何時(shí)應(yīng)該發(fā)送某些警報(bào)進(jìn)行記錄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽閱讀 10,805評(píng)論 0 11
  • 彩排完,天已黑
    劉凱書法閱讀 4,467評(píng)論 1 3
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,515評(píng)論 2 7

友情鏈接更多精彩內(nèi)容