一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

HTTPS加密(握手)過程,這是我見過講的最好一篇

 昵稱10087950 2022-06-09 發(fā)布于江蘇

引言

HTTP是不安全的,只需要設(shè)定相應(yīng)的DNS,做一個(gè)中間人攻擊,再將修改后的數(shù)據(jù)返回,就可以達(dá)到篡改數(shù)據(jù)的目的(加入未經(jīng)許可的廣告)。
當(dāng)我們切換HTTPS時(shí)候,運(yùn)營(yíng)商的這些小九九就施展不開了,服務(wù)端認(rèn)證不通過,瀏覽器不會(huì)展示相應(yīng)的頁(yè)面數(shù)據(jù);運(yùn)營(yíng)商實(shí)施搞的這一套東東也就不能在用戶不知情的情況下搞起來了,解決辦法是去除相應(yīng)的受污染的DNS。

安全需求

  • 加密(客戶端和服務(wù)器的對(duì)話是私密的,無須擔(dān)心被竊聽)

  • 服務(wù)端認(rèn)證(客戶端知道它們是在與真正的而不是偽造的服務(wù)器通信)

  • 客戶端認(rèn)證(服務(wù)器知道它們是在與真正的而不是偽造的客戶端通信)

  • 完整性(客戶端和服務(wù)器的數(shù)據(jù)不會(huì)被修改)

  • 效率(一個(gè)運(yùn)行足夠快的算法,一遍低端的客戶端和服務(wù)器使用)

  • 普適性(基本上所有的客戶端和服務(wù)器都支持這些協(xié)議)

  • 管理的可擴(kuò)展性(在任何地方的任何人都可以立即進(jìn)行安全通信)

  • 適應(yīng)性(能夠支持當(dāng)前最知名的安全方法)

  • 在社會(huì)上的可行性(滿足社會(huì)的政治文化需要),要有公眾受信能力

在這里最重要的是前邊幾條

  • 數(shù)據(jù)加密 傳輸內(nèi)容進(jìn)行混淆

  • 身份驗(yàn)證 通信雙方驗(yàn)證對(duì)方的身份真實(shí)性

  • 數(shù)據(jù)完整性保護(hù) 檢測(cè)傳輸?shù)膬?nèi)容是否被篡改或偽造

HTTPS簡(jiǎn)介

HTTPS(全稱:Hypertext Transfer Protocol Secure 超文本傳輸安全協(xié)議),是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版。

圖片
  • HTTP:直接通過明文在瀏覽器和服務(wù)器之間傳遞信息。

  • HTTPS:采用 對(duì)稱加密 和 非對(duì)稱加密 結(jié)合的方式來保護(hù)瀏覽器和服務(wù)端之間的通信安全。
    對(duì)稱加密算法加密數(shù)據(jù)+非對(duì)稱加密算法交換密鑰+數(shù)字證書驗(yàn)證身份=安全

共享密鑰加密也稱對(duì)稱密鑰加密。采用的是使用相同密鑰對(duì)報(bào)文進(jìn)行加密解密。
缺點(diǎn):無法避免被網(wǎng)絡(luò)監(jiān)聽泄漏密鑰的問題。同時(shí)對(duì)于眾多客戶端的服務(wù)器來說還需要分配和管理密鑰,對(duì)于客戶端來說也需要管理密鑰,增加設(shè)計(jì)和實(shí)現(xiàn)的復(fù)雜度,同時(shí)也降低了通信的效率。
非對(duì)稱加密,公鑰加密只能通過對(duì)應(yīng)的私鑰解密,私鑰加密只能通過對(duì)應(yīng)的公鑰解密。
缺點(diǎn):公開密鑰加密(非對(duì)稱加密)安全性高,伴隨著加密方式復(fù)雜,處理速度慢的問題。如果我們的通信都是用公開密鑰的方式加密,那么通信效率會(huì)很低。
采用非對(duì)稱加密因?yàn)榘踩?采用對(duì)稱加密是因?yàn)樗咏饷芩俣瓤?/strong>
在交換密鑰對(duì)環(huán)節(jié)使用公開密鑰加密方式(防止被監(jiān)聽泄漏密鑰)加密共享的密鑰,在隨后的通信過程中使用共享密鑰的方式使用共享的密鑰進(jìn)行加解密。

認(rèn)證方式實(shí)現(xiàn)

數(shù)字證書
數(shù)字簽名是附加在報(bào)文上的特殊加密校驗(yàn)碼,可以證明是作者編寫了這條報(bào)文,前提是作者才會(huì)有私鑰,才能算出這些校驗(yàn)碼。如果傳輸?shù)膱?bào)文被篡改,則校驗(yàn)碼不會(huì)匹配,因?yàn)樾r?yàn)碼只有作者保存的私鑰才能產(chǎn)生,所以前面可以保證報(bào)文的完整性。
數(shù)字證書認(rèn)證機(jī)構(gòu)(Certificate Authority CA)是客戶端和服務(wù)器雙方都可信賴的第三方機(jī)構(gòu)。

服務(wù)器的運(yùn)營(yíng)人員向數(shù)字證書認(rèn)證機(jī)構(gòu)提出證書認(rèn)證申請(qǐng),數(shù)字證書認(rèn)證機(jī)構(gòu)在判明申請(qǐng)者的身份之后,會(huì)對(duì)已申請(qǐng)的公開密鑰做數(shù)字簽名,然后分配這個(gè)已簽名的公開密鑰,并將該公開密鑰放入公鑰證書(也叫數(shù)字證書或證書)后綁定在一起。服務(wù)器將這份有數(shù)字認(rèn)證機(jī)構(gòu)頒發(fā)的公鑰證書發(fā)總給客戶端,以進(jìn)行公開密鑰加密方式通信。
數(shù)據(jù)完整性
數(shù)字簽名是只有信息發(fā)送者才能產(chǎn)生的別人無法偽造的一段文本,這段文本是對(duì)信息發(fā)送者發(fā)送信息真實(shí)性的一個(gè)有效證明,具有不可抵賴性。

報(bào)文的發(fā)送方從報(bào)文文本生成一個(gè)128位的散列值(或稱為報(bào)文摘要活哈希值),發(fā)送方使用自己的私鑰對(duì)這個(gè)摘要值進(jìn)行加密來形成發(fā)送方的數(shù)字簽名。然后這個(gè)數(shù)字簽名將作為報(bào)文的附件一起發(fā)送給報(bào)文的接收方。報(bào)文的接收方首先從接收到的原始報(bào)文中計(jì)算出128位的散列值,再用發(fā)送方的公鑰來對(duì)報(bào)文附加的數(shù)字簽名進(jìn)行解密。如果兩次得到的結(jié)果是一致的那么接收方可以確認(rèn)該數(shù)字簽名是發(fā)送方的,同時(shí)確認(rèn)信息是真實(shí)的 。

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

  1. 傳統(tǒng)的HTTP協(xié)議通信:傳統(tǒng)的HTTP報(bào)文是直接將報(bào)文信息傳輸?shù)絋CP然后TCP再通過TCP套接字發(fā)送給目的主機(jī)上。

  2. HTTPS協(xié)議通信:HTTPS是HTTP報(bào)文直接將報(bào)文傳輸給SSL套接字進(jìn)行加密,SSL加密后將加密的報(bào)文發(fā)送給TCP套接字,然后TCP套接字再將加密后的報(bào)文發(fā)送給目的主機(jī),目的主機(jī)通過TCP套接字獲取加密后的報(bào)文給SSL套接字,SSL解密后交給對(duì)應(yīng)進(jìn)程。

SSL

SSL工作在OSI七層模型中的表示層,TCP/IP 四層模型的應(yīng)用層。
SSL 基于TCP,SSL不是簡(jiǎn)單地單個(gè)協(xié)議,而是兩層協(xié)議;SSL記錄協(xié)議(SSL Record Protocol)為多種高層協(xié)議(SSL握手協(xié)議,SSL修改密碼參數(shù)協(xié)議,SSL報(bào)警協(xié)議)提供基本的安全服務(wù)。
HTTP是為Web客戶端/服務(wù)器交互提供傳輸服務(wù)的,它可以在SSL的頂層運(yùn)行;SSL記錄協(xié)議為SSL鏈接提供兩種服務(wù),1. 機(jī)密性:握手協(xié)議定義了一個(gè)共享密鑰,用于SSL載荷的對(duì)稱加密。2. 消息完整性:握手協(xié)議還定義了一個(gè)共享密鑰,它用來產(chǎn)生一個(gè)消息認(rèn)證碼(Message Authentication Code,MAC)。

圖片

SSL記錄協(xié)議操作

  • 分段 將每個(gè)上層消息分解成不大于2^14(16384)位,然后有選擇的進(jìn)行壓縮

  • 添加MAC 在壓縮數(shù)據(jù)的基礎(chǔ)上計(jì)算MAC

  • 加密 消息加上MAC用對(duì)稱加密方法加密

  • 添加SSL記錄頭 內(nèi)容類型(8位),主版本(8位),副版本(8位),壓縮長(zhǎng)度(16位)
    SSL握手過程

  • 第一階段 建立安全能力 包括協(xié)議版本 會(huì)話Id 密碼構(gòu)件 壓縮方法和初始隨機(jī)數(shù)

  • 第二階段 服務(wù)器發(fā)送證書 密鑰交換數(shù)據(jù)和證書請(qǐng)求,最后發(fā)送請(qǐng)求-相應(yīng)階段的結(jié)束信號(hào)

  • 第三階段 如果有證書請(qǐng)求客戶端發(fā)送此證書 之后客戶端發(fā)送密鑰交換數(shù)據(jù) 也可以發(fā)送證書驗(yàn)證消息

  • 第四階段 變更密碼構(gòu)件和結(jié)束握手協(xié)議
    SSL協(xié)議兩個(gè)重要概念,SSL會(huì)話,SSL連接;SSL連接是點(diǎn)到點(diǎn)的連接,而且每個(gè)連接都是瞬態(tài)的,每一個(gè)鏈接都與一個(gè)會(huì)話關(guān)聯(lián)。SSL會(huì)話是一個(gè)客戶端和一個(gè)服務(wù)器之間的一種關(guān)聯(lián),會(huì)話由握手協(xié)議(Handshake Protocol)創(chuàng)建,所有會(huì)話都定義了一組密碼安全參數(shù),這些安全參數(shù)可以在多個(gè)連接之間共享,會(huì)話可以用來避免每一個(gè)鏈接需要進(jìn)行的代價(jià)高昂的新的安全參數(shù)協(xié)商過程。

HTTPS加密請(qǐng)求(一次握手)過程

  1. 客戶端發(fā)起握手請(qǐng)求,以明文傳輸請(qǐng)求信息,包含版本信息,加密-套件候選列表,壓縮算法候選列表,隨機(jī)數(shù),擴(kuò)展字段等信息(這個(gè)沒什么好說的,就是用戶在瀏覽器里輸入一個(gè)HTTPS網(wǎng)址,然后連接到服務(wù)端的443端口。)

  2. 服務(wù)端的配置, 采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請(qǐng)。區(qū)別就是自己頒發(fā)的證書需要客戶端驗(yàn)證通過,才可以繼續(xù)訪問,而使用受信任的公司申請(qǐng)的證書則不會(huì)彈出提示頁(yè)面。這套證書其實(shí)就是一對(duì)公鑰和私鑰。如果對(duì)公鑰不太理解,可以想象成一把鑰匙和一個(gè)鎖頭,只是世界上只有你一個(gè)人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個(gè)鎖把重要的東西鎖起來,然后發(fā)給你,因?yàn)橹挥心阋粋€(gè)人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。

  • 服務(wù)端返回協(xié)商的信息結(jié)果,包括選擇使用的協(xié)議版本 version,選擇的加密套件 cipher suite,選擇的壓縮算法 compression method、隨機(jī)數(shù) random_S 以及證書。(這個(gè)證書其實(shí)就是公鑰,只是包含了很多信息,如證書的頒發(fā)機(jī)構(gòu),過期時(shí)間等等。)

  • 客戶端驗(yàn)證證書的合法性,包括可信性,是否吊銷,過期時(shí)間和域名。(這部分工作是由客戶端的SSL/TLS來完成的,首先會(huì)驗(yàn)證公鑰是否有效,比如頒發(fā)機(jī)構(gòu),過期時(shí)間等等,如果發(fā)現(xiàn)異常,則會(huì)彈出一個(gè)警示框,提示證書存在的問題。如果證書沒有問題,那么就生成一個(gè)隨機(jī)值。然后用證書(也就是公鑰)對(duì)這個(gè)隨機(jī)值進(jìn)行加密。就好像上面說的,把隨機(jī)值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內(nèi)容。)

  • 客戶端使用公匙對(duì)對(duì)稱密匙加密,發(fā)送給服務(wù)端。(這部分傳送的是用證書加密后的隨機(jī)值,目的是讓服務(wù)端得到這個(gè)隨機(jī)值,以后客戶端和服務(wù)端的通信就可以通過這個(gè)隨機(jī)值來進(jìn)行加密解密了。)

  • 服務(wù)器用私鑰解密,拿到對(duì)稱加密的密匙。(服務(wù)端用私鑰解密后,得到了客戶端傳過來的隨機(jī)值,然后把內(nèi)容通過該隨機(jī)值進(jìn)行對(duì)稱加密,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內(nèi)容,而正好客戶端和服務(wù)端都知道這個(gè)私鑰,所以只要加密算法夠彪悍,私鑰夠復(fù)雜,數(shù)據(jù)就夠安全。)

  • 傳輸加密后的信息,這部分信息就是服務(wù)端用私鑰加密后的信息,可以在客戶端用隨機(jī)值解密還原。

  • 客戶端解密信息,客戶端用之前生產(chǎn)的私鑰解密服務(wù)端傳過來的信息,于是獲取了解密后的內(nèi)容。整個(gè)過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無策。

客戶端和服務(wù)端之間的加密機(jī)制

圖片
作者:Marshall3572
鏈接:https://www.jianshu.com/p/713917b59c17

ps:如果您覺文章有用,動(dòng)動(dòng)小手點(diǎn)個(gè)在看,點(diǎn)個(gè)再走吧!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美激情区一区二区三区| 欧美性猛交内射老熟妇| 成人免费视频免费观看| 国产免费观看一区二区| 国产高清一区二区白浆| 亚洲一区二区三区一区| 国产专区亚洲专区久久| 日韩成人动作片在线观看| 久久99青青精品免费| 激情内射亚洲一区二区三区| 亚洲综合伊人五月天中文| 91人妻人人精品人人爽| 欧美韩国日本精品在线| 超薄肉色丝袜脚一区二区| 91麻豆视频国产一区二区| 日本免费一区二区三女| 东京热加勒比一区二区三区| 日本一本在线免费福利| 成人欧美一区二区三区视频| 国产香蕉国产精品偷在线观看| 欧美大粗爽一区二区三区| 欧美日本亚欧在线观看| 日本欧美在线一区二区三区| 午夜福利精品视频视频| 极品少妇嫩草视频在线观看| 欧美尤物在线视频91| 午夜久久精品福利视频| 日本在线视频播放91| 亚洲综合色婷婷七月丁香| 在线免费不卡亚洲国产| 欧美加勒比一区二区三区| 亚洲成人黄色一级大片| 亚洲一区精品二人人爽久久| 成人国产激情在线视频| 日韩色婷婷综合在线观看| 国产乱人伦精品一区二区三区四区| 国产日韩综合一区在线观看| 韩国激情野战视频在线播放| 男女激情视频在线免费观看| 麻豆视频传媒入口在线看| 久久精品国产亚洲av麻豆尤物|