高清视频在线观看免费播放器-伊人日本-色九月综合-18禁止看的免费污网站-免费观看性行为视频的网站-天天碰天天操-久久精品国产欧美日韩99热-中文字幕在线视频不卡-国产偷人妻精品一区二区在线-国内精品久-伊人影院在线看-密臀av一区-久久综合五月丁香久久激情-福利一区福利二区-gg国产精品国内免费观看-国产精品 高清 尿 小便 嘘嘘

當(dāng)前位置: 首頁 >綜合 > 正文

【天天報資訊】徹底搞懂HTTPS的加密原理

2023-05-29 10:18:10 來源:今日頭條
HTTP 與 HTTPS 有哪些區(qū)別?HTTP 是超文本傳輸協(xié)議,信息是明文傳輸,存在安全風(fēng)險的問題。HTTPS 則解決 HTTP 不安全的缺陷,在 TCP 和 HTTP 網(wǎng)絡(luò)層之間加入了 SSL/TLS 安全協(xié)議,使得報文能夠加密傳輸。HTTP 連接建立相對簡單, TCP 三次握手之后便可進行 HTTP 的報文傳輸。而 HTTPS 在 TCP 三次握手之后,還需進行 SSL/TLS 的握手過程,才可進入加密報文傳輸。HTTP 的端口號是 80,HTTPS 的端口號是 443。HTTPS 協(xié)議需要向 CA(證書權(quán)威機構(gòu))申請數(shù)字證書,來保證服務(wù)器的身份是可信的。

本文以問題的形式逐步展開,一步步解開HTTPS的面紗,希望能幫助你徹底搞懂HTTPS!


(資料圖片)

為什么需要加密?

因為http的內(nèi)容是明文傳輸?shù)模魑臄?shù)據(jù)會經(jīng)過中間代理服務(wù)器、路由器、wifi熱點、通信服務(wù)運營商等多個物理節(jié)點,如果信息在傳輸過程中被劫持,傳輸?shù)膬?nèi)容就完全暴露了。劫持者還可以篡改傳輸?shù)男畔⑶也槐浑p方察覺,這就是中間人攻擊。所以我們才需要對信息進行加密。最容易理解的就是對稱加密。

什么是對稱加密?

簡單說就是有一個密鑰,它可以加密一段信息,也可以對加密后的信息進行解密,和我們?nèi)粘I钪杏玫蔫€匙作用差不多。

用對稱加密可行嗎?

如果通信雙方都各自持有同一個密鑰,且沒有別人知道,這兩方的通信安全當(dāng)然是可以被保證的(除非密鑰被破解)。

然而最大的問題就是這個密鑰怎么讓傳輸?shù)碾p方知曉,同時不被別人知道。如果由服務(wù)器生成一個密鑰并傳輸給瀏覽器,那在這個傳輸過程中密鑰被別人劫持到手了怎么辦?之后他就能用密鑰解開雙方傳輸?shù)娜魏蝺?nèi)容了,所以這么做當(dāng)然不行。

換種思路?試想一下,如果瀏覽器內(nèi)部就預(yù)存了網(wǎng)站A的密鑰,且可以確保除了瀏覽器和網(wǎng)站A,不會有任何外人知道該密鑰,那理論上用對稱加密是可以的,這樣瀏覽器只要預(yù)存好世界上所有HTTPS網(wǎng)站的密鑰就行了!這么做顯然不現(xiàn)實。怎么辦?所以我們就需要非對稱加密。

什么是非對稱加密?

簡單說就是有兩把密鑰,通常一把叫做公鑰、一把叫私鑰,用公鑰加密的內(nèi)容必須用私鑰才能解開,同樣,私鑰加密的內(nèi)容只有公鑰能解開。

用非對稱加密可行嗎?

鑒于非對稱加密的機制,我們可能會有這種思路:服務(wù)器先把公鑰以明文方式傳輸給瀏覽器,之后瀏覽器向服務(wù)器傳數(shù)據(jù)前都先用這個公鑰加密好再傳,這條數(shù)據(jù)的安全似乎可以保障了!因為只有服務(wù)器有相應(yīng)的私鑰能解開公鑰加密的數(shù)據(jù)

然而反過來由服務(wù)器到瀏覽器的這條路怎么保障安全?如果服務(wù)器用它的私鑰加密數(shù)據(jù)傳給瀏覽器,那么瀏覽器用公鑰可以解密它,而這個公鑰是一開始通過明文傳輸給瀏覽器的,若這個公鑰被中間人劫持到了,那他也能用該公鑰解密服務(wù)器傳來的信息了。所以目前似乎只能保證由瀏覽器向服務(wù)器傳輸數(shù)據(jù)的安全性(其實仍有漏洞,下文會說),那利用這點你能想到什么解決方案嗎?

改良的非對稱加密方案,似乎可以?

我們已經(jīng)理解通過一組公鑰私鑰,可以保證單個方向傳輸?shù)陌踩裕怯脙山M公鑰私鑰,是否就能保證雙向傳輸都安全了?請看下面的過程:

某網(wǎng)站服務(wù)器擁有公鑰A與對應(yīng)的私鑰A’;瀏覽器擁有公鑰B與對應(yīng)的私鑰B’。瀏覽器把公鑰B明文傳輸給服務(wù)器。服務(wù)器把公鑰A明文給傳輸瀏覽器。之后瀏覽器向服務(wù)器傳輸?shù)膬?nèi)容都用公鑰A加密,服務(wù)器收到后用私鑰A’解密。由于只有服務(wù)器擁有私鑰A’,所以能保證這條數(shù)據(jù)的安全。同理,服務(wù)器向瀏覽器傳輸?shù)膬?nèi)容都用公鑰B加密,瀏覽器收到后用私鑰B’解密。同上也可以保證這條數(shù)據(jù)的安全。

的確可以!拋開這里面仍有的漏洞不談(下文會講),HTTPS的加密卻沒使用這種方案,為什么?很重要的原因是非對稱加密算法非常耗時,而對稱加密快很多。那我們能不能運用非對稱加密的特性解決前面提到的對稱加密的漏洞?

非對稱加密+對稱加密?

既然非對稱加密耗時,那非對稱加密+對稱加密結(jié)合可以嗎?而且得盡量減少非對稱加密的次數(shù)。當(dāng)然是可以的,且非對稱加密、解密各只需用一次即可。請看一下這個過程:

某網(wǎng)站擁有用于非對稱加密的公鑰A、私鑰A’。瀏覽器向網(wǎng)站服務(wù)器請求,服務(wù)器把公鑰A明文給傳輸瀏覽器。瀏覽器隨機生成一個用于對稱加密的密鑰X,用公鑰A加密后傳給服務(wù)器。服務(wù)器拿到后用私鑰A’解密得到密鑰X。這樣雙方就都擁有密鑰X了,且別人無法知道它。之后雙方所有數(shù)據(jù)都通過密鑰X加密解密即可。

完美!HTTPS基本就是采用了這種方案。完美?還是有漏洞的。

中間人攻擊

中間人攻擊(https://blog.pradeo.com/man-in-the-middle-attack)

如果在數(shù)據(jù)傳輸過程中,中間人劫持到了數(shù)據(jù),此時他的確無法得到瀏覽器生成的密鑰X,這個密鑰本身被公鑰A加密了,只有服務(wù)器才有私鑰A’解開它,然而中間人卻完全不需要拿到私鑰A’就能干壞事了。請看:

某網(wǎng)站有用于非對稱加密的公鑰A、私鑰A’。瀏覽器向網(wǎng)站服務(wù)器請求,服務(wù)器把公鑰A明文給傳輸瀏覽器。中間人劫持到公鑰A,保存下來,把數(shù)據(jù)包中的公鑰A替換成自己偽造的公鑰B(它當(dāng)然也擁有公鑰B對應(yīng)的私鑰B’)。瀏覽器生成一個用于對稱加密的密鑰X,用公鑰B(瀏覽器無法得知公鑰被替換了)加密后傳給服務(wù)器。中間人劫持后用私鑰B’解密得到密鑰X,再用公鑰A加密后傳給服務(wù)器。服務(wù)器拿到后用私鑰A’解密得到密鑰X。

這樣在雙方都不會發(fā)現(xiàn)異常的情況下,中間人通過一套“貍貓換太子”的操作,掉包了服務(wù)器傳來的公鑰,進而得到了密鑰X。根本原因是瀏覽器無法確認(rèn)收到的公鑰是不是網(wǎng)站自己的,因為公鑰本身是明文傳輸?shù)模y道還得對公鑰的傳輸進行加密?這似乎變成雞生蛋、蛋生雞的問題了。解法是什么?

如何證明瀏覽器收到的公鑰一定是該網(wǎng)站的公鑰?

其實所有證明的源頭都是一條或多條不證自明的“公理”(可以回想一下數(shù)學(xué)上公理),由它推導(dǎo)出一切。比如現(xiàn)實生活中,若想證明某身份證號一定是小明的,可以看他身份證,而身份證是由政府作證的,這里的“公理”就是“政府機構(gòu)可信”,這也是社會正常運作的前提。

那能不能類似地有個機構(gòu)充當(dāng)互聯(lián)網(wǎng)世界的“公理”呢?讓它作為一切證明的源頭,給網(wǎng)站頒發(fā)一個“身份證”?

它就是CA機構(gòu),它是如今互聯(lián)網(wǎng)世界正常運作的前提,而CA機構(gòu)頒發(fā)的“身份證”就是數(shù)字證書

數(shù)字證書

網(wǎng)站在使用HTTPS前,需要向CA機構(gòu)申領(lǐng)一份數(shù)字證書,數(shù)字證書里含有證書持有者信息、公鑰信息等。服務(wù)器把證書傳輸給瀏覽器,瀏覽器從證書里獲取公鑰就行了,證書就如身份證,證明“該公鑰對應(yīng)該網(wǎng)站”。而這里又有一個顯而易見的問題,“證書本身的傳輸過程中,如何防止被篡改”?即如何證明證書本身的真實性?身份證運用了一些防偽技術(shù),而數(shù)字證書怎么防偽呢?解決這個問題我們就接近勝利了!

如何放防止數(shù)字證書被篡改?

我們把證書原本的內(nèi)容生成一份“簽名”,比對證書內(nèi)容和簽名是否一致就能判別是否被篡改。這就是數(shù)字證書的“防偽技術(shù)”,這里的“簽名”就叫數(shù)字簽名:

數(shù)字簽名

這部分內(nèi)容建議看下圖并結(jié)合后面的文字理解,圖中左側(cè)是數(shù)字簽名的制作過程,右側(cè)是驗證過程:

數(shù)字簽名的制作過程:

CA機構(gòu)擁有非對稱加密的私鑰和公鑰。CA機構(gòu)對證書明文數(shù)據(jù)T進行hash。對hash后的值用私鑰加密,得到數(shù)字簽名S。

明文和數(shù)字簽名共同組成了數(shù)字證書,這樣一份數(shù)字證書就可以頒發(fā)給網(wǎng)站了。那瀏覽器拿到服務(wù)器傳來的數(shù)字證書后,如何驗證它是不是真的?(有沒有被篡改、掉包)

瀏覽器驗證過程:

拿到證書,得到明文T,簽名S。用CA機構(gòu)的公鑰對S解密(由于是瀏覽器信任的機構(gòu),所以瀏覽器保有它的公鑰。詳情見下文),得到S’。用證書里指明的hash算法對明文T進行hash得到T’。顯然通過以上步驟,T’應(yīng)當(dāng)?shù)扔赟‘,除非明文或簽名被篡改。所以此時比較S’是否等于T’,等于則表明證書可信。

為何么這樣可以保證證書可信呢?我們來仔細(xì)想一下。

中間人有可能篡改該證書嗎?

假設(shè)中間人篡改了證書的原文,由于他沒有CA機構(gòu)的私鑰,所以無法得到此時加密后簽名,無法相應(yīng)地篡改簽名。瀏覽器收到該證書后會發(fā)現(xiàn)原文和簽名解密后的值不一致,則說明證書已被篡改,證書不可信,從而終止向服務(wù)器傳輸信息,防止信息泄露給中間人。

既然不可能篡改,那整個證書被掉包呢?

中間人有可能把證書掉包嗎?

假設(shè)有另一個網(wǎng)站B也拿到了CA機構(gòu)認(rèn)證的證書,它想劫持網(wǎng)站A的信息。于是它成為中間人攔截到了A傳給瀏覽器的證書,然后替換成自己的證書,傳給瀏覽器,之后瀏覽器就會錯誤地拿到B的證書里的公鑰了,這確實會導(dǎo)致上文“中間人攻擊”那里提到的漏洞?

其實這并不會發(fā)生,因為證書里包含了網(wǎng)站A的信息,包括域名,瀏覽器把證書里的域名與自己請求的域名比對一下就知道有沒有被掉包了。

為什么制作數(shù)字簽名時需要hash一次?

我初識HTTPS的時候就有這個疑問,因為似乎那里的hash有點多余,把hash過程去掉也能保證證書沒有被篡改。

最顯然的是性能問題,前面我們已經(jīng)說了非對稱加密效率較差,證書信息一般較長,比較耗時。而hash后得到的是固定長度的信息(比如用md5算法hash后可以得到固定的128位的值),這樣加解密就快很多。

當(dāng)然也有安全上的原因,這部分內(nèi)容相對深一些,感興趣的可以看這篇解答:crypto.stackexchange.com/a/12780

怎么證明CA機構(gòu)的公鑰是可信的?

你們可能會發(fā)現(xiàn)上文中說到CA機構(gòu)的公鑰,我?guī)缀跻还P帶過,“瀏覽器保有它的公鑰”,這是個什么保有法?怎么證明這個公鑰是否可信?

讓我們回想一下數(shù)字證書到底是干啥的?沒錯,為了證明某公鑰是可信的,即“該公鑰是否對應(yīng)該網(wǎng)站”,那CA機構(gòu)的公鑰是否也可以用數(shù)字證書來證明?沒錯,操作系統(tǒng)、瀏覽器本身會預(yù)裝一些它們信任的根證書,如果其中會有CA機構(gòu)的根證書,這樣就可以拿到它對應(yīng)的可信公鑰了。

實際上證書之間的認(rèn)證也可以不止一層,可以A信任B,B信任C,以此類推,我們把它叫做信任鏈或數(shù)字證書鏈。也就是一連串的數(shù)字證書,由根證書為起點,透過層層信任,使終端實體證書的持有者可以獲得轉(zhuǎn)授的信任,以證明身份。

另外,不知你們是否遇到過網(wǎng)站訪問不了、提示需安裝證書的情況?這里安裝的就是根證書。說明瀏覽器不認(rèn)給這個網(wǎng)站頒發(fā)證書的機構(gòu),那么你就得手動下載安裝該機構(gòu)的根證書(風(fēng)險自己承擔(dān)XD)。安裝后,你就有了它的公鑰,就可以用它驗證服務(wù)器發(fā)來的證書是否可信了。

每次進行HTTPS請求時都必須在SSL/TLS層進行握手傳輸密鑰嗎?

這也是我當(dāng)時的困惑之一,顯然每次請求都經(jīng)歷一次密鑰傳輸過程非常耗時,那怎么達(dá)到只傳輸一次呢?

服務(wù)器會為每個瀏覽器(或客戶端軟件)維護一個session ID,在TLS握手階段傳給瀏覽器,瀏覽器生成好密鑰傳給服務(wù)器后,服務(wù)器會把該密鑰存到相應(yīng)的session ID下,之后瀏覽器每次請求都會攜帶session ID,服務(wù)器會根據(jù)session ID找到相應(yīng)的密鑰并進行解密加密操作,這樣就不必要每次重新制作、傳輸密鑰了!

總結(jié)

整個非對稱加密過程都是為了最后的對稱加密服務(wù)的,最終目的是證明證書中的公鑰是安全且未篡改。使用公鑰來加密一個秘鑰,并把秘鑰傳給后端,后端使用私鑰解密秘鑰,這樣兩端都擁有同一個秘鑰,從而進行對稱加密。所以私鑰是絕對不能泄漏的,不然完蛋。

可以看下這張圖,梳理一下整個流程(SSL、TLS握手有一些區(qū)別,不同版本間也有區(qū)別,不過大致過程就是這樣):

SSL/TLS 協(xié)議基本流程:

客戶端向服務(wù)器索要并驗證服務(wù)器的公鑰。雙方協(xié)商生產(chǎn)「會話秘鑰」。雙方采用「會話秘鑰」進行加密通信。

標(biāo)簽:

返回頂部
高清视频在线观看免费播放器-伊人日本-色九月综合-18禁止看的免费污网站-免费观看性行为视频的网站-天天碰天天操-久久精品国产欧美日韩99热-中文字幕在线视频不卡-国产偷人妻精品一区二区在线-国内精品久-伊人影院在线看-密臀av一区-久久综合五月丁香久久激情-福利一区福利二区-gg国产精品国内免费观看-国产精品 高清 尿 小便 嘘嘘
  • <cite id="ecweg"><pre id="ecweg"></pre></cite>
    <rt id="ecweg"><acronym id="ecweg"></acronym></rt>
  • <rt id="ecweg"></rt>
    www.国产视频.com| 999在线精品视频| 999一区二区三区| 久久人人爽人人片| 制服丝袜中文字幕第一页| 在线观看免费黄网站| 日本三级免费观看| 国产淫片av片久久久久久| 国产视频一区二区三区在线播放| 国产 日韩 欧美在线| www.男人天堂网| 久久综合九色综合88i| 日韩xxxx视频| 欧美性猛交久久久乱大交小说| 久久精品99国产| 国产三级国产精品国产专区50| 99久久国产宗和精品1上映| 亚洲这里只有精品| 亚洲一区二区在线视频观看| 国产又黄又爽免费视频| 日韩中文字幕在线免费| 人妻无码视频一区二区三区| 视频二区在线播放| 可以在线看黄的网站| 久艹视频在线免费观看| 网站一区二区三区| 特级西西444| 丰满少妇在线观看| 国产日韩欧美大片| 国产一级片黄色| 青青草影院在线观看| 免费日韩中文字幕| 日本精品免费视频| 久久精品影视大全| www.avtt| 91免费网站视频| 欧美私人情侣网站| 日本免费a视频| www.污网站| 蜜臀久久99精品久久久酒店新书| 久久精品一二三四| 粉嫩虎白女毛片人体| 激情六月天婷婷| 日韩爱爱小视频| 水蜜桃色314在线观看| mm131国产精品| 久久久精品在线视频| 日韩在线视频在线| 日本黄色播放器| 五月天婷婷激情视频| 亚洲一区二区三区av无码| 极品粉嫩美女露脸啪啪| 亚洲国产精品久久久久爰色欲| mm131午夜| 国产精品自在自线| 亚洲成色www.777999| 久久国产亚洲精品无码| 久久精品xxx| 日本福利视频导航| 99精品视频国产| 99日在线视频| 欧美成人福利在线观看| 99视频精品免费| 亚洲熟妇av一区二区三区| 国产深夜男女无套内射| 丰满少妇大力进入| 日产精品久久久久久久蜜臀| 今天免费高清在线观看国语| 看一级黄色录像| 免费观看国产视频在线| 免费的av在线| 亚洲色欲久久久综合网东京热| www.国产在线视频| av免费观看国产| 成人在线免费观看av| 青青草精品视频在线| 精品国产一区三区| 国产视频一区二区三区在线播放 | 国产二级片在线观看| 日韩a级在线观看| 欧美网站免费观看| 99热手机在线| 男女啪啪的视频| 无罩大乳的熟妇正在播放| 国产女女做受ⅹxx高潮| 激情 小说 亚洲 图片: 伦| 亚洲第一区第二区第三区| 国产免费xxx| 日韩中文字幕在线视频观看| 国产精品无码av无码| 天堂av在线网站| 2021狠狠干| 欧美三级午夜理伦三级| 在线免费看v片| 国产手机免费视频| 日韩av在线中文| 日本精品久久久久久久久久| 国产a级片免费观看| 天天在线免费视频| 成人3d动漫一区二区三区| 女女同性女同一区二区三区按摩| 极品粉嫩国产18尤物| www.色欧美| 欧美日韩亚洲一| 日韩视频 中文字幕| 手机看片福利日韩| av网站大全免费| 国产aⅴ爽av久久久久| 国产免费黄色小视频| 午夜啪啪免费视频| 国产一区二区在线免费播放| www.av毛片| 奇米777四色影视在线看| 老司机午夜av| 欧美黄色免费影院| 久激情内射婷内射蜜桃| 天天爱天天做天天操| 艹b视频在线观看| 欧美少妇性生活视频| 97成人在线免费视频| 日本精品福利视频| www.日本久久| 日韩a一级欧美一级| 国产一二三区av| 天天操天天爽天天射| 91淫黄看大片| 日韩免费高清在线| 国产精彩免费视频| 蜜臀av免费观看| 亚洲性生活网站| 北条麻妃在线视频| 免费看污污网站| 色播五月综合网| 婷婷激情综合五月天| 日本中文字幕在线不卡| 无套内谢丰满少妇中文字幕| 久久精品久久99| 日韩在线视频在线| 成人黄色av片| 黑人糟蹋人妻hd中文字幕 | 青青草精品视频在线观看| 国产女女做受ⅹxx高潮| 波多野结衣天堂| 五月天中文字幕在线| 国产又大又长又粗又黄| 亚洲色婷婷久久精品av蜜桃| 99在线免费视频观看| 欧美色图另类小说| 中文字幕22页| 欧洲精品视频在线| 免费成人午夜视频| 亚洲这里只有精品| 日本精品福利视频| 国产黄色特级片| 毛毛毛毛毛毛毛片123| 日韩一级性生活片| 男操女免费网站| 久久视频免费在线| 91av俱乐部| 成人国产在线看| 91欧美视频在线| 国产精品久久久久久久乖乖| 国产超碰在线播放| xxxxxx在线观看| 污视频免费在线观看网站| 激情五月六月婷婷| 色综合色综合色综合色综合| 久草视频这里只有精品| 岛国毛片在线播放| 干日本少妇首页| 看一级黄色录像| 女同激情久久av久久| 午夜肉伦伦影院| 97久久国产亚洲精品超碰热| 婷婷六月天在线| 午夜肉伦伦影院| 欧美一级欧美一级| 超碰成人在线免费观看| 三级视频中文字幕| 怡红院av亚洲一区二区三区h| 黄色www在线观看| 亚洲精品视频导航| 老太脱裤让老头玩ⅹxxxx| 在线观看污视频| 深夜做爰性大片蜜桃| 亚洲36d大奶网| aⅴ在线免费观看| 欧美,日韩,国产在线| 高清无码一区二区在线观看吞精| 亚洲精品综合在线观看| 日韩av片网站| 久久久久久香蕉| 国产日韩一区二区在线观看| 乱人伦xxxx国语对白| 日本欧美黄色片| 成人性生活视频免费看| 免费看黄在线看| 黄色免费观看视频网站| 黄色一级片在线看| 蜜桃传媒一区二区三区|