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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Https 客户端与服务器交互过程梳理(转)

發(fā)布時間:2025/6/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Https 客户端与服务器交互过程梳理(转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

本文試圖以通俗易通的方式介紹Https的工作原理,不糾結(jié)具體的術(shù)語,不考證嚴格的流程。我相信弄懂了原理之后,到了具體操作和實現(xiàn)的時候,方向就不會錯,然后條條大路通羅馬。閱讀文本需要提前大致了解對稱加密、非對稱加密、信息認證等密碼學知識。如果你不太了解,可以閱讀Erlang發(fā)明人Joe Armstrong最近寫的Cryptography Tutorial。大牛出品,通俗易懂,強力推薦。

Https涉及到的主體

  • 客戶端。通常是瀏覽器(Chrome、IE、FireFox等),也可以自己編寫的各種語言的客戶端程序。
  • 服務端。一般指支持Https的網(wǎng)站,比如github、支付寶。
  • CA(Certificate Authorities)機構(gòu)。Https證書簽發(fā)和管理機構(gòu),比如Symantec、Comodo、GoDaddy、GlobalSign。
  • 下圖里我畫出了這幾個角色:

    發(fā)明Https的動機

  • 認證正在訪問的網(wǎng)站。什么叫認證網(wǎng)站?比如你正在訪問支付寶,怎樣確定你正在訪問的是阿里巴巴提供的支付寶而不是假冒偽劣的釣魚網(wǎng)站呢?
  • 保證所傳輸數(shù)據(jù)的私密性和完整性。眾所周知,Http是明文傳輸?shù)?#xff0c;所以處在同一網(wǎng)絡中的其它用戶可以通過網(wǎng)絡抓包來竊取和篡改數(shù)據(jù)包的內(nèi)容,甚至運營商或者wifi提供者,有可能會篡改http報文,添加廣告等信息以達到盈利的目的。
  • Https的工作流程

    這一節(jié)通過介紹Https協(xié)議的工作流程,來說明Https是如何達成自己的兩個目的的。下圖我畫出了Https的工作流程,注意,這只是原理示意圖,并不是詳細的協(xié)議解析。

    可以看到工作流程,基本分為三個階段:

  • 認證服務器。瀏覽器內(nèi)置一個受信任的CA機構(gòu)列表,并保存了這些CA機構(gòu)的證書。第一階段服務器會提供經(jīng)CA機構(gòu)認證頒發(fā)的服務器證書,如果認證該服務器證書的CA機構(gòu),存在于瀏覽器的受信任CA機構(gòu)列表中,并且服務器證書中的信息與當前正在訪問的網(wǎng)站(域名等)一致,那么瀏覽器就認為服務端是可信的,并從服務器證書中取得服務器公鑰,用于后續(xù)流程。否則,瀏覽器將提示用戶,根據(jù)用戶的選擇,決定是否繼續(xù)。當然,我們可以管理這個受信任CA機構(gòu)列表,添加我們想要信任的CA機構(gòu),或者移除我們不信任的CA機構(gòu)。

  • 協(xié)商會話密鑰??蛻舳嗽谡J證完服務器,獲得服務器的公鑰之后,利用該公鑰與服務器進行加密通信,協(xié)商出兩個會話密鑰,分別是用于加密客戶端往服務端發(fā)送數(shù)據(jù)的客戶端會話密鑰,用于加密服務端往客戶端發(fā)送數(shù)據(jù)的服務端會話密鑰。在已有服務器公鑰,可以加密通訊的前提下,還要協(xié)商兩個對稱密鑰的原因,是因為非對稱加密相對復雜度更高,在數(shù)據(jù)傳輸過程中,使用對稱加密,可以節(jié)省計算資源。另外,會話密鑰是隨機生成,每次協(xié)商都會有不一樣的結(jié)果,所以安全性也比較高。

  • 加密通訊。此時客戶端服務器雙方都有了本次通訊的會話密鑰,之后傳輸?shù)乃蠬ttp數(shù)據(jù),都通過會話密鑰加密。這樣網(wǎng)路上的其它用戶,將很難竊取和篡改客戶端和服務端之間傳輸?shù)臄?shù)據(jù),從而保證了數(shù)據(jù)的私密性和完整性。

  • 使用Https的流程

    如果你是一個服務器開發(fā)者,想使用Https來保護自己的服務和用戶數(shù)據(jù)安全,你可以按照以下流程來操作。

    總結(jié)

  • 說是討論Https,事實上Https就是Http跑在SSl或者TLS上,所以本文討論的原理和流程其實是SSL和TLS的流程,對于其它使用SSL或者TLS的應用層協(xié)議,本文內(nèi)容一樣有效。
  • 本文只討論了客戶端驗證服務端,服務端也可以給客戶端頒發(fā)證書并驗證客戶端,做雙向驗證,但應用沒有那么廣泛,原理類似。
  • 由于采用了加密通訊,Https無疑要比Http更耗費服務器資源,這也是很多公司明明支持Https卻默認提供Http的原因。

  • http://www.cnblogs.com/xinzhao/p/4949344.html


    ?

    總結(jié)

    以上是生活随笔為你收集整理的Https 客户端与服务器交互过程梳理(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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