HTTP和HTTPS區(qū)別

HTTP

HTTP是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)(TCP),用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議。HTTP是采用明文形式進(jìn)行數(shù)據(jù)傳輸,極易被不法份子竊取和篡改。

HTTPS

HTTPS是在HTTP上建立SSL加密層,并對傳輸數(shù)據(jù)進(jìn)行加密,是HTTP協(xié)議的安全版。

HTTPS主要作用是:

  1. 對數(shù)據(jù)進(jìn)行加密,并建立一個信息安全通道,來保證傳輸過程中的數(shù)據(jù)安全;
  2. 對網(wǎng)站服務(wù)器進(jìn)行真實(shí)身份認(rèn)證。

所以HTTPS其實(shí)是有兩部分組成:HTTP + SSL / TLS,也就是在HTTP上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳輸都會通過TLS進(jìn)行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。

下圖說明了HTTPS的流程:


HTTPS流程
  1. 客戶端發(fā)起HTTPS請求
    用戶在瀏覽器里輸入一個https網(wǎng)址,然后連接到server的443端口。
  2. 服務(wù)端的配置
    采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請。區(qū)別就是自己頒發(fā)的證書需要客戶端驗(yàn)證通過,才可以繼續(xù)訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇,有1年的免費(fèi)服務(wù))。這套證書其實(shí)就是一對公鑰和私鑰。如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然后發(fā)給你,因?yàn)橹挥心阋粋€人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
  3. 傳送證書
    這個證書其實(shí)就是公鑰,只是包含了很多信息,如證書的頒發(fā)機(jī)構(gòu),過期時間等等。
  4. 客戶端解析證書
    這部分工作是有客戶端的TLS來完成的,首先會驗(yàn)證公鑰是否有效,比如頒發(fā)機(jī)構(gòu),過期時間等等,如果發(fā)現(xiàn)異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個隨即值。然后用證書對該隨機(jī)值進(jìn)行加密。就好像上面說的,把隨機(jī)值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內(nèi)容。
  5. 傳送加密信息
    這部分傳送的是用證書加密后的隨機(jī)值,目的就是讓服務(wù)端得到這個隨機(jī)值,以后客戶端和服務(wù)端的通信就可以通過這個隨機(jī)值來進(jìn)行加密解密了。
  6. 服務(wù)段解密信息
    服務(wù)端用私鑰解密后,得到了客戶端傳過來的隨機(jī)值(私鑰),然后把內(nèi)容通過該值進(jìn)行對稱加密。所謂對稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內(nèi)容,而正好客戶端和服務(wù)端都知道這個私鑰,所以只要加密算法夠彪悍,私鑰夠復(fù)雜,數(shù)據(jù)就夠安全。
  7. 傳輸加密后的信息
    這部分信息是服務(wù)段用私鑰加密后的信息,可以在客戶端被還原
  8. 客戶端解密信息
    客戶端用之前生成的私鑰解密服務(wù)段傳過來的信息,于是獲取了解密后的內(nèi)容。整個過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無策。

HTTPS的原理

HTTPS在傳輸數(shù)據(jù)之前需要客戶端(瀏覽器)與服務(wù)端(網(wǎng)站)之間進(jìn)行一次握手,在握手過程中將確立雙方加密傳輸數(shù)據(jù)的密碼信息。TLS/SSL協(xié)議不僅僅是一套加密傳輸?shù)膮f(xié)議,更是一件經(jīng)過藝術(shù)家精心設(shè)計(jì)的藝術(shù)品,TLS/SSL中使用了非對稱加密,對稱加密以及HASH算法。握手過程的具體描述如下:

  1. 瀏覽器將自己支持的一套加密規(guī)則發(fā)送給網(wǎng)站。
  2. 網(wǎng)站從中選出一組加密算法與HASH算法,并將自己的身份信息以證書的形式發(fā)回給瀏覽器。證書里面包含了網(wǎng)站地址,加密公鑰,以及證書的頒發(fā)機(jī)構(gòu)等信息。
  3. 瀏覽器獲得網(wǎng)站證書之后瀏覽器要做以下工作:
    1. 驗(yàn)證證書的合法性(頒發(fā)證書的機(jī)構(gòu)是否合法,證書中包含的網(wǎng)站地址是否與正在訪問的地址一致等),如果證書受信任,則瀏覽器欄里面會顯示一個小鎖頭,否則會給出證書不受信的提示。
    2. 如果證書受信任,或者是用戶接受了不受信的證書,瀏覽器會生成一串隨機(jī)數(shù)的密碼,并用證書中提供的公鑰加密。
    3. 使用約定好的HASH算法計(jì)算握手消息,并使用生成的隨機(jī)數(shù)對消息進(jìn)行加密,最后將之前生成的所有信息發(fā)送給網(wǎng)站。
  4. 網(wǎng)站接收瀏覽器發(fā)來的數(shù)據(jù)之后要做以下的操作:
    1. 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發(fā)來的握手消息,并驗(yàn)證HASH是否與瀏覽器發(fā)來的一致。
    2. 使用密碼加密一段握手消息,發(fā)送給瀏覽器。
  5. 瀏覽器解密并計(jì)算握手消息的HASH,如果與服務(wù)端發(fā)來的HASH一致,此時握手過程結(jié)束,之后所有的通信數(shù)據(jù)將由之前瀏覽器生成的隨機(jī)密碼并利用對稱加密算法進(jìn)行加密。


    HTTPS原理

TLS/SSL工作原理

TLS/SSL的功能實(shí)現(xiàn)主要依賴于三類基本算法:散列函數(shù) Hash、對稱加密和非對稱加密,其利用非對稱加密實(shí)現(xiàn)身份認(rèn)證和密鑰協(xié)商,對稱加密算法采用協(xié)商的密鑰對數(shù)據(jù)加密,基于散列函數(shù)驗(yàn)證信息的完整性。

TLS/SSL工作原理

結(jié)合三類算法的特點(diǎn),TLS的基本工作方式是,客戶端使用非對稱加密與服務(wù)器進(jìn)行通信,實(shí)現(xiàn)身份驗(yàn)證并協(xié)商對稱加密使用的密鑰,然后對稱加密算法采用協(xié)商密鑰對信息以及信息摘要進(jìn)行加密通信,不同的節(jié)點(diǎn)之間采用的對稱密鑰不同,從而可以保證信息只能通信雙方獲取。

HTTPS和HTTP的區(qū)別

  1. HTTPS是加密傳輸協(xié)議,HTTP是明文傳輸協(xié)議;
  2. HTTPS需要用到SSL證書,而HTTP不用;
  3. HTTPS比HTTP更加安全,對搜索引擎更友好
  4. HTTPS標(biāo)準(zhǔn)端口443,HTTP標(biāo)準(zhǔn)端口80;
  5. HTTPS基于傳輸層,HTTP基于應(yīng)用層;
  6. HTTPS在瀏覽器顯示綠色安全鎖,HTTP沒有顯示;
  7. HTTPS傳輸過程中需要加密、解密,所以HTTPS的性能比不上HTTP。

總的來說HTTPS比HTTP更加安全,能夠有效的保護(hù)網(wǎng)站用戶的隱私信息安全,這也是為什么現(xiàn)在的HTTPS網(wǎng)站越來越多。

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

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

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