深入理解HTTPS協(xié)議

HTTS協(xié)議實(shí)際就是標(biāo)準(zhǔn)的HTTP協(xié)議加上SSL/TLS層.它能防止我們的信息被竊取,暴露出不安全.或者進(jìn)入釣魚網(wǎng)址.通過(guò)下面這個(gè)講解,我希望能明白SSL/TLS層到底為我們做了哪些事情,才能保證我們的信息安全.

1. HTTPS到底做了哪些事情

HTTPS采用眾所周知和理解的HTTP協(xié)議谋逻,并簡(jiǎn)單地將SSL / TLS加密層層疊在其上呆馁。服務(wù)器和客戶端仍然使用相同的HTTP,但通過(guò)安全的SSL連接來(lái)加密和解密他們的請(qǐng)求和響應(yīng)毁兆。 SSL層有兩個(gè)主要目的:

  • 保證你是在跟真正的服務(wù)器通信,而不是偽裝的服務(wù)器.
  • 保證只有真正的服務(wù)器才能解密你發(fā)送的信息.同時(shí),也只有你才能解密服務(wù)器跟你發(fā)送消息.就是保證是你跟真正的服務(wù)器在通信,這過(guò)程中沒(méi)有第三者.

在這過(guò)程中,其他人還是可以中途截取到你發(fā)送的信息,但是是加密的,它們拿到也無(wú)法解密.

2. SSL/TLS是如何建立連接的

客戶端和服務(wù)器端通過(guò)握手來(lái)建立連接的浙滤,目的有以下3點(diǎn)。

  • 保證客戶端正在和正確的服務(wù)器通信(反之亦然)
  • 有關(guān)各方已就“密碼套件”達(dá)成一致气堕,該密碼套件包括將用于交換數(shù)據(jù)的加密算法
  • 對(duì)密匙達(dá)成一致纺腊,雙方使用相同的密匙

一旦建立連接,雙方就可以使用商定的算法和密鑰將消息安全地發(fā)送給對(duì)方茎芭。我們將握手分為三個(gè)主要階段 - Hello揖膜,證書交換和密鑰交換。

  1. Hello - 握手從客戶端發(fā)送ClientHello消息開(kāi)始梅桩。這包含服務(wù)器通過(guò)SSL/TLS連接到客戶端所需的所有信息壹粟,包括它支持的各種密碼套件和最大SSL/TLS版本。服務(wù)器響應(yīng)ServerHello宿百,其中包含客戶端所需的類似信息趁仙,包括基于客戶端有關(guān)哪個(gè)密碼套件和SSL/TLS版本將被使用的偏好的決定。
  2. 證書交換 - 現(xiàn)在聯(lián)系已建立垦页,服務(wù)器必須向客戶證明其身份雀费。這是通過(guò)使用SSL證書來(lái)實(shí)現(xiàn)的,該證書與其護(hù)照非常相似痊焊。 SSL證書包含各種數(shù)據(jù)盏袄,包括所有者的名稱忿峻,所連接的屬性(例如域),證書的公鑰辕羽,數(shù)字簽名以及有關(guān)證書有效日期的信息逛尚。客戶端檢查它是隱式信任證書逛漫,還是驗(yàn)證它是否被其隱含信任的幾個(gè)證書頒發(fā)機(jī)構(gòu)(CA)之一驗(yàn)證和信任黑低。請(qǐng)注意,服務(wù)器也可以要求證書來(lái)證明客戶的身份酌毡,但這通常只發(fā)生在非常敏感的應(yīng)用程序中克握。
  3. 密鑰交換 - 客戶端和服務(wù)器交換的實(shí)際消息數(shù)據(jù)的加密將使用對(duì)稱加密算法完成,其確切性質(zhì)在Hello階段已經(jīng)達(dá)成一致枷踏。對(duì)稱算法使用單個(gè)密鑰進(jìn)行加密和解密菩暗,與需要公鑰/私鑰對(duì)的非對(duì)稱算法相反。雙方需要就這個(gè)單一的對(duì)稱密鑰達(dá)成一致旭蠕,這個(gè)安全使用非對(duì)稱加密和服務(wù)器的公鑰/私鑰完成的過(guò)程停团。客戶端先用非對(duì)稱加密算法的公鑰把通信過(guò)程中需要的私鑰傳給服務(wù)端,服務(wù)端用私鑰解讀出以后通信過(guò)程中的私鑰掏熬。

客戶端生成一個(gè)用于對(duì)稱加密算法的隨機(jī)密鑰佑稠。它使用在Hello階段同意的算法和服務(wù)器的公鑰(在其SSL證書上找到)對(duì)其進(jìn)行加密。它將這個(gè)加密的密鑰發(fā)送到服務(wù)器旗芬,在那里使用服務(wù)器的私鑰解密舌胶,并且握手的有趣部分已完成。雙方都非常高興疮丛,他們正在與正確的人交談幔嫂,并秘密地同意了一個(gè)密鑰,以對(duì)稱加密的方式加密他們將要發(fā)送的數(shù)據(jù)誊薄。 HTTP請(qǐng)求和響應(yīng)現(xiàn)在可以通過(guò)形成明文消息然后加密并發(fā)送來(lái)發(fā)送履恩。另一方是唯一知道如何解密此消息的人,因此中間人攻擊者無(wú)法讀取或修改他們可能攔截的任何請(qǐng)求呢蔫。


image.png
3. 證書

對(duì)于請(qǐng)求方來(lái)說(shuō)切心,它怎么能確定它所得到的公鑰一定是從目標(biāo)主機(jī)那里發(fā)布的,而且沒(méi)有被篡改過(guò)呢咐刨?亦或者請(qǐng)求的目標(biāo)主機(jī)本本身就從事竊取用戶信息的不正當(dāng)行為呢昙衅?這時(shí)候,我們需要有一個(gè)權(quán)威的值得信賴的第三方機(jī)構(gòu)(一般是由政府審核并授權(quán)的機(jī)構(gòu))來(lái)統(tǒng)一對(duì)外發(fā)放主機(jī)機(jī)構(gòu)的公鑰定鸟,只要請(qǐng)求方這種機(jī)構(gòu)獲取公鑰,就避免了上述問(wèn)題的發(fā)生著瓶。
用戶首先產(chǎn)生自己的密鑰對(duì)联予,并將公共密鑰及部分個(gè)人身份信息傳送給認(rèn)證中心。認(rèn)證中心在核實(shí)身份后,將執(zhí)行一些必要的步驟沸久,以確信請(qǐng)求確實(shí)由用戶發(fā)送而來(lái)季眷,然后,認(rèn)證中心將發(fā)給用戶一個(gè)數(shù)字證書卷胯,該證書內(nèi)包含用戶的個(gè)人信息和他的公鑰信息子刮,同時(shí)還附有認(rèn)證中心的簽名信息(根證書私鑰簽名)。用戶就可以使用自己的數(shù)字證書進(jìn)行相關(guān)的各種活動(dòng)窑睁。數(shù)字證書由獨(dú)立的證書發(fā)行機(jī)構(gòu)發(fā)布挺峡,數(shù)字證書各不相同,每種證書可提供不同級(jí)別的可信度担钮。
證書的驗(yàn)證是通過(guò)驗(yàn)證證書的數(shù)字簽名(CA的公鑰來(lái)解開(kāi)簽名,并與原文hash之后的摘要做對(duì)比).

4. 數(shù)字簽名

數(shù)字簽名技術(shù)就是對(duì)“非對(duì)稱密鑰加解密”和“數(shù)字摘要“兩項(xiàng)技術(shù)的應(yīng)用橱赠,它將摘要信息用發(fā)送者的私鑰加密,與原文一起傳送給接收者箫津。 接收者只有用發(fā)送者的公鑰才能解密被加密的摘要信息狭姨,然后用HASH函數(shù)對(duì)收到的原文產(chǎn)生一個(gè)摘要信息,與解密的摘要信息對(duì)比苏遥。 如果相同饼拍,則說(shuō)明收到的信息是完整的,在傳輸過(guò)程中沒(méi)有被修改田炭,否則說(shuō)明信息被修改過(guò)师抄,因此數(shù)字簽名能夠驗(yàn)證信息的完整性。
數(shù)字簽名的過(guò)程如下:

明文 --> hash運(yùn)算 --> 摘要 --> 私鑰加密 --> 數(shù)字簽名

數(shù)字簽名有兩種功效:

  • 能確定消息確實(shí)是由發(fā)送方簽名并發(fā)出來(lái)的诫肠,因?yàn)閯e人假冒不了發(fā)送方的簽名司澎。
  • 數(shù)字簽名能確定消息的完整性。

真?zhèn)€HTTPS的握手過(guò)程如下


image.png
5. 總結(jié)

HTTPS不是不可破解的栋豫,并且SSL協(xié)議必須隨著新攻擊被發(fā)現(xiàn)和壓制而不斷發(fā)展挤安。但它仍然是一種傳遞秘密數(shù)據(jù)的的方式,無(wú)需關(guān)心誰(shuí)看到您的消息丧鸯。當(dāng)然蛤铜,這里沒(méi)有提到許多實(shí)現(xiàn)細(xì)節(jié),例如握手消息的確切格式和順序丛肢,在不需要重新協(xié)商密鑰和密碼套件的情況下選擇最近會(huì)話的簡(jiǎn)短握手围肥,以及在每個(gè)階段可用的眾多不同的加密選項(xiàng)。關(guān)鍵要記住的是蜂怎,雖然HTTPS可以保證數(shù)據(jù)安全地連接到目的地穆刻,但它絕不會(huì)保護(hù)您(作為用戶或開(kāi)發(fā)人員)抵御XSS或數(shù)據(jù)庫(kù)泄漏或任何其他事情 「懿剑看看威爾史密斯氢伟,“Walk in shadow, move in silence, guard against extra-terrestrial violence”榜轿。

參考文章:
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
https://robertheaton.com/2014/03/27/how-does-https-actually-work/
http://www.wxtlife.com/2016/03/27/%E8%AF%A6%E8%A7%A3https%E6%98%AF%E5%A6%82%E4%BD%95%E7%A1%AE%E4%BF%9D%E5%AE%89%E5%85%A8%E7%9A%84%EF%BC%9F/#u6570_u5B57_u8BC1_u4E66

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市朵锣,隨后出現(xiàn)的幾起案子谬盐,更是在濱河造成了極大的恐慌,老刑警劉巖诚些,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件飞傀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡诬烹,警方通過(guò)查閱死者的電腦和手機(jī)砸烦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)椅您,“玉大人外冀,你說(shuō)我怎么就攤上這事∠朴荆” “怎么了瞪浸?”我有些...
    開(kāi)封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蕾殴,是天一觀的道長(zhǎng)载迄。 經(jīng)常有香客問(wèn)我捉兴,道長(zhǎng),這世上最難降的妖魔是什么马僻? 我笑而不...
    開(kāi)封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任庄拇,我火速辦了婚禮,結(jié)果婚禮上韭邓,老公的妹妹穿的比我還像新娘措近。我一直安慰自己,他們只是感情好女淑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布瞭郑。 她就那樣靜靜地躺著,像睡著了一般鸭你。 火紅的嫁衣襯著肌膚如雪屈张。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天袱巨,我揣著相機(jī)與錄音阁谆,去河邊找鬼。 笑死愉老,一個(gè)胖子當(dāng)著我的面吹牛场绿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嫉入,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼裳凸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贱鄙!你這毒婦竟也來(lái)了劝贸?” 一聲冷哼從身側(cè)響起姨谷,我...
    開(kāi)封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎映九,沒(méi)想到半個(gè)月后梦湘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡件甥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年捌议,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片引有。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瓣颅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出譬正,到底是詐尸還是另有隱情宫补,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布曾我,位于F島的核電站粉怕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抒巢。R本人自食惡果不足惜贫贝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛉谜。 院中可真熱鬧稚晚,春花似錦、人聲如沸型诚。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)俺驶。三九已至幸逆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間暮现,已是汗流浹背还绘。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栖袋,地道東北人拍顷。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像塘幅,于是被迫代替她去往敵國(guó)和親昔案。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尿贫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355