日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[信息安全] 3.HTTPS工作流程

發(fā)布時(shí)間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [信息安全] 3.HTTPS工作流程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

0. 簡(jiǎn)單回顧

在前面兩篇博客中介紹了密碼相關(guān)的一些基本工具,包括(對(duì)稱密碼,公鑰密碼,密碼散列函數(shù),混合密碼系統(tǒng),消息認(rèn)證碼碼,數(shù)字簽名,偽隨機(jī)數(shù),數(shù)字證書)這幾個(gè)。其中它們之間也是互相依賴的,我們來簡(jiǎn)單的梳理一下它們的依賴關(guān)系。

  • 對(duì)稱密碼:無。

  • 公鑰密碼:無。

  • 密碼散列函數(shù):無。

  • 偽隨機(jī)數(shù):可以利用密碼散列函數(shù)來實(shí)現(xiàn),也可以不使用。

  • 混合密碼系統(tǒng):對(duì)稱密碼 + 公鑰密碼 + 密碼散列函數(shù)。

  • 消息認(rèn)證碼:密碼散列函數(shù) + 對(duì)稱密碼。

  • 數(shù)字簽名:密碼散列函數(shù) + 公鑰密碼。

  • 數(shù)字證書:公鑰密碼 + 數(shù)字簽名。

  • 這篇要介紹的HTTPS,則把以上這些全都派上場(chǎng)了。

    1. HTTPS 簡(jiǎn)史

    在早期HTTP誕生的這幾年間,1990年~·1994年,HTTP作為一個(gè)應(yīng)用層協(xié)議,它是這樣工作的:

    后來網(wǎng)景公司開發(fā)了SSL(Secure Sockets Layer)技術(shù),然后它就變成了這樣的HTTP,也就是HTTPS了:

    后來爆發(fā)了與IE的世紀(jì)大戰(zhàn),網(wǎng)景敗北,SSL移交給了IETF(Internat Engineering Task Force)互聯(lián)網(wǎng)工程任務(wù)組,標(biāo)準(zhǔn)化之后變成了現(xiàn)在的TLS,現(xiàn)在一般會(huì)把它們兩個(gè)放在一起稱為SSL/TLS。本篇并不關(guān)注SSL/TLS具體是如何工作的,只是抽象的解釋下HTTPS的一個(gè)工作流程。

    2. HTTPS 工作流程

  • Client發(fā)起一個(gè)HTTPS(https:/demo.linianhui.dev)的請(qǐng)求,根據(jù)RFC2818的規(guī)定,Client知道需要連接Server的443(默認(rèn))端口。

  • Server把事先配置好的公鑰證書public key certificate)返回給客戶端。

  • Client驗(yàn)證公鑰證書:比如是否在有效期內(nèi),證書的用途是不是匹配Client請(qǐng)求的站點(diǎn),是不是在CRL吊銷列表里面,它的上一級(jí)證書是否有效,這是一個(gè)遞歸的過程,直到驗(yàn)證到根證書(操作系統(tǒng)內(nèi)置的Root證書或者Client內(nèi)置的Root證書)。如果驗(yàn)證通過則繼續(xù),不通過則顯示警告信息。

  • Client使用偽隨機(jī)數(shù)生成器生成加密所使用的會(huì)話密鑰,然后用證書的公鑰加密這個(gè)會(huì)話密鑰,發(fā)給Server。

  • Server使用自己的私鑰private?key)解密這個(gè)消息,得到會(huì)話密鑰。至此,Client和Server雙方都持有了相同的會(huì)話密鑰

  • Server使用會(huì)話密鑰加密“明文內(nèi)容A”,發(fā)送給Client。

  • Client使用會(huì)話密鑰解密響應(yīng)的密文,得到“明文內(nèi)容A”。

  • Client再次發(fā)起HTTPS的請(qǐng)求,使用會(huì)話密鑰加密請(qǐng)求的“明文內(nèi)容B”,然后Server使用會(huì)話密鑰解密密文,得到“明文內(nèi)容B”。

  • 簡(jiǎn)單總結(jié)下,HTTPS是使用了證書的一個(gè)混合密碼系統(tǒng),其中證書的作用在于傳遞會(huì)話密鑰,以及驗(yàn)證網(wǎng)站的真實(shí)性;而HTTPS真正的加密操作是由對(duì)稱密碼這個(gè)工具負(fù)責(zé)的(有興趣的可以找找每個(gè)步驟中都用到了密碼工具箱中的那些工具)。在windows系統(tǒng)中,可以配置一個(gè)名為?SSLKEYLOGFILE?的環(huán)境變量,Chrome和Firefox在訪問HTTPS站點(diǎn)的時(shí)候,會(huì)把第4步生成的會(huì)話密鑰以及其他附屬信息,寫入到這個(gè)文件中:

    比如下圖:

    具體的格式可以參考MDN的一個(gè)說明https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format。

    以上只是一個(gè)抽象的HTTPS的一個(gè)工作流程,實(shí)際上SSL/TLS所做的工作遠(yuǎn)不止這這些,更詳細(xì)的解釋請(qǐng)參考這篇文章:http://www.infoq.com/cn/articles/HTTPS-Connection-Jeff-Moser。

    如有錯(cuò)誤之處,歡迎指正!

    3. 參考

    SSL/TLS:https://en.wikipedia.org/wiki/Transport_Layer_Security

    IETF:https://en.wikipedia.org/wiki/Internet_Engineering_Task_Force

    HTTPS:https://en.wikipedia.org/wiki/HTTPS

    HTTPS 連接最初的若干毫秒:http://www.infoq.com/cn/articles/HTTPS-Connection-Jeff-Moser

    HTTPS on Stack Overflow: The End of a Long Road:https://nickcraver.com/blog/2017/05/22/https-on-stack-overflow/

    SSL/TLS部署最佳實(shí)踐:https://github.com/ssllabs/research/wiki/SSL-and-TLS-Deployment-Best-Practices

    HTTP Over TLS:https://tools.ietf.org/html/rfc2818

    SSLKEYLOGFILE:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format

    原文地址:http://www.cnblogs.com/linianhui/p/security-https-workflow.html


    .NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的[信息安全] 3.HTTPS工作流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。