0532-88983785 0532-68613670
青島網站建設|青島網站優化|青島微信開(kāi)發|青島網站制作

“HTTPS”安全在哪裏?

時間:2016-06-27 14:44 來源:http://www.zhuanglia.com 作者:admin 點擊:2054次

在上網獲取信息的過程中(zhōng),我(wǒ)們接觸最多的信息加密傳輸方式也莫過于 HTTPS 了。每當訪問一(yī)個站點,浏覽器的地址欄中(zhōng)出現綠色圖标時,意味着該站點支持 HTTPS 信息傳輸方式。我(wǒ)們知(zhī)道 HTTPS 是我(wǒ)們常見的 HTTP 協議與某個加密協議的混合體(tǐ),也就是 HTTP+S。這個 S 可以是 TLS(安全傳輸層協議)、也可以是 SSL(安全套接層),不過我(wǒ)更認可另一(yī)個抽象概括的說法,HTTP+Security。不過要談論 HTTPS 爲何安全,還得從 HTTP 爲何不安全說起。


假設你現在正坐在教室裏上課,現在你非常想和走道旁的迷人的 TA 說一(yī)些話(huà),一(yī)般這個時候你會用“傳紙(zhǐ)條”的方式來交流。而這個方式和 TCP/IP 協議基本的工(gōng)作模式十分(fēn)相像:

  • 通過小(xiǎo)動作引起對方注意;

  • 對方以多種可能的方式(注視、肢體(tǐ)語言等)回應于你;

  • 你确認對方感知(zhī)到你後,将紙(zhǐ)條傳給對方;

  • 對方閱讀紙(zhǐ)條;

  • 對方給予你閱讀後的反應;



怎麽樣,這個流程是不是很熟悉?

如果你要傳遞紙(zhǐ)條的 TA 距離(lí)你很遠怎麽辦?HTTP 協議就是指你在紙(zhǐ)條上寫明你要傳給的 TA 是誰,或者 TA 的座位在哪,接着隻需要途徑的同學拿到紙(zhǐ)條後根據紙(zhǐ)條上的指示依次将紙(zhǐ)條傳過去(qù)就 OK 了。

“HTTPS”安全在哪裏? 1

這個時候問題來了:途徑的同學完全可以觀看并知(zhī)道你在紙(zhǐ)條上寫了什麽。

這就是 HTTP 傳輸所面臨的問題之一(yī):中(zhōng)間人攻擊,指消息傳遞的過程中(zhōng),處在傳遞路徑上的攻擊者可以嗅探或者竊聽(tīng)傳輸數據的内容。


加密

HTTPS 針對這個問題,采用了“加密”的方式來解決。最著名原始的加密方法就是對稱加密算法了,就是雙方約定一(yī)個暗号,用什麽字母替換什麽字母之類的。現在一(yī)般采用一(yī)種叫 AES(高級加密算法)的對稱算法。

“HTTPS”安全在哪裏? 2

對稱加密算法既指加密和解密需要使用的密鑰 key 是一(yī)樣的。

AES 在數學上保證了,隻要你使用的 key 足夠長,破解幾乎是不可能的(除非光子計算機造出來了)

我(wǒ)們先假設在沒有密鑰 key 的情況下(xià),密文是無法被破解的,然後再回到這個教室。你将用 AES 加密後的内容噌噌噌地寫在了紙(zhǐ)條上,正要傳出去(qù)的時候你突然想到,TA 沒有 key 怎麽解密内容呀,或者說,應該怎麽把 key 給TA?

如果把 key 也寫在紙(zhǐ)條上,那麽中(zhōng)間人照樣可以破解竊聽(tīng)紙(zhǐ)條内容。也許在現實環境中(zhōng)你有其他辦法可以把 key 通過某種安全的渠道送到 TA 的手裏,但是互聯網上的實現難度就比較大(dà)了,畢竟不管怎樣,數據都要經過那些路由。

于是聰明的人類發明了另一(yī)種加密算法——非對稱加密算法。這種加密算法會生(shēng)成兩個密鑰(key1 和 key2)。凡是 key1 加密的數據,key1 自身不能解密,需要 key2 才能解密;凡事 key2 加密的數據,key2 自身不能解密,隻有 key1 才能解密。

目前這種算法有很多中(zhōng),最常用的是 RSA。其基于的數學原理是:

兩個大(dà)素數的乘積很容易算,但是用這個乘積去(qù)算出是哪兩個素數相乘就很複雜(zá)了。好在以目前的技術,分(fēn)解大(dà)數的素因确實比較困難,尤其是當這個大(dà)數足夠大(dà)的時候(通常使用2的10次方個二進制位那麽大(dà)),就算是超級計算機,解密也需要非常長的時間。

現在就把這種非對稱加密的方法應用在我(wǒ)們教室傳紙(zhǐ)條的場景裏。


  • 你在寫紙(zhǐ)條内容之前先用 RSA 技術生(shēng)成了一(yī)對密鑰 k1 和 k2。

  • 你把 k1 用明文傳了出去(qù),路經也許有人會截取,但是沒有用,k1 加密的數據需要 k2 才可以破解,而 k2 在你自己手中(zhōng)。

  • k1 傳到了目的人,目的人會去(qù)準備一(yī)個接下(xià)來準備用于對稱加密(AES)的傳輸密鑰 key,然後用收到的 k1 把 key 加密,傳給你。

  • 你用手上的 k2 解出 key 後,全教室隻有你和你的目的人擁有這個對稱加密的 key,你們倆就可以盡情聊天不怕竊聽(tīng)啦~



這裏也許你會有問題,爲什麽不直接用非對稱加密來加密信息,而是加密 AES 的 key 呢?
因爲非對稱加密和解密的平均消耗時間比較長,爲了節省時間提高效率,我(wǒ)們通常隻是用它來交換密鑰,而非直接傳輸數據。

然而使用非對稱加密真的可以防範中(zhōng)間人攻擊嗎(ma)?
雖然看上去(qù)很安全,但是實際上卻擋不住可惡的中(zhōng)間人攻擊。

假設你是 A,你的目的地是 B,現在要途徑一(yī)個惡意同學M。

“HTTPS”安全在哪裏? 3

中(zhōng)間人的惡意之處在于它會僞裝成你的目标。


  • 當你要和 B 完成第一(yī)次密鑰交換的時候,M 把紙(zhǐ)條扣了下(xià)來,假裝自己是B并僞造了一(yī)個 key,然後用你發來的 k1 加密了 key 發還給你。

  • 你以爲你和 B 完成了密鑰交換,實際上你是和 M 完成了密鑰交換。

  • 同事 M 和 B 完成一(yī)次密鑰交換,讓 B 以爲和 A 你完成了密鑰交換。

  • 現在整體(tǐ)的加密流程變成了A(加密鏈接1)->M(明文)->B(加密鏈接2)的情況了,這時候 M 依然可以知(zhī)道A和B傳輸的全部消息。


這個時候就是體(tǐ)現 HTTPS 和傳紙(zhǐ)條的區别了。在教室裏,你是和一(yī)位與你身份幾乎對等的的對象來通信;而在訪問網站時,對方往往是一(yī)個比較大(dà)(或者知(zhī)名)的服務者,他們有充沛的資(zī)源,或許他們可以向你證明他們的合法性。

此時我(wǒ)們需要引入一(yī)個非常權威的第三方,一(yī)個專門用來認證網站合法性的組織,可以叫做 CA(Certificate Authority)。各個網站服務商(shāng)可以向 CA 申請證書(shū),使得他們在建立安全連接時可以帶上 CA 的簽名。而 CA 得安全性是由操作系統或者浏覽器來認證的。


你的 Windows、Mac、Linux、Chrome、Safari 等會在安裝的時候帶上一(yī)個他們認爲安全的 CA 證書(shū)列表,隻有和你建立安全連接的網站帶有這些CA的簽名,操作系統和浏覽器才會認爲這個鏈接是安全的,否則就有可能遭到中(zhōng)間人攻擊。

一(yī)旦某個 CA 頒發的證書(shū)被用于的非法途徑,那麽這個 CA 之前頒發過的所有證書(shū)都将被視爲不安全的,這讓所有 CA 在頒發證書(shū)時都十分(fēn)小(xiǎo)心,所以 CA 證書(shū)在通常情況下(xià)是值得信任的。



總結

使 HTTP 後面增加一(yī)個S(Security)的技術,正是 對稱加密 + 非對稱加密 + CA 認證 這三種技術的混合體(tǐ)。當然這個主要是 HTTPS 的基本原理,真正實際中(zhōng)的 HTTPS 的協議是比以上的描述更爲複雜(zá)一(yī)些的,并且其中(zhōng)任何一(yī)步稍有閃失,整個流程都将不再安全。

這也是爲什麽 HTTPS 協議從 SSL 1.0升級到 SSL 3.0,再被 TLS 1.0 現在被 TLS 1.3取代,其背後都是一(yī)個個細節上的優化,以防有任何閃失。

TLS 協議相比 SSL 協議增加了傳輸層的安全保證。



  迅優網絡是一(yī)家專注于網站建設網站優化網站設計網站制作網站托管代運營微信開(kāi)發小(xiǎo)程序開(kāi)發的互聯網科技公司。我(wǒ)們有完備的建站流程和專業的開(kāi)發、設計人員(yuán),與客戶深度合作并針對不同的客戶提供專屬的網站策劃方案。
(責任編輯:admin)
标簽: HTTPS SSL
網站建設定制

0532-88983785 / 0532-68613670

我(wǒ)要定制網站