淺談HTTPS協議

為什么存在https協議

http通信存在的問題
容易被監聽
http通信都是明文,數據在客戶端與服務器通信過程中,任何一點都可能被劫持。比如,發送了銀行卡號和密碼,hacker劫取到數據,就能看到卡號和密碼,這是很危險的
被偽裝
http通信時,無法保證通行雙方是合法的,通信方可能是偽裝的。比如你請求www.taobao.com,你怎么知道返回的數據就是來自淘寶,中間人可能返回數據偽裝成淘寶。
被篡改
hacker中間篡改數據后,接收方并不知道數據已經被更改

用htpps有什么好處

https很好的解決了http的三個缺點(被監聽、被篡改、被偽裝),https不是一種新的協議,它是http+SSL(TLS)的結合體,SSL是一種獨立協議,所以其它協議比如smtp等也可以跟ssl結合。https改變了通信方式,它由以前的http—–>tcp,改為http——>SSL—–>tcp;https采用了共享密鑰加密+公開密鑰加密的方式

防監聽
數據是加密的,所以監聽得到的數據是密文,hacker看不懂。
防偽裝
偽裝分為客戶端偽裝和服務器偽裝,通信雙方攜帶證書,證書相當于身份證,有證書就認為合法,沒有證書就認為非法,證書由第三方頒布,很難偽造
防篡改
https對數據做了摘要,篡改數據會被感知到。hacker即使從中改了數據也白搭。

https連接過程

https也是tcp/ip協議,首先也是需要三次握手,然后才是下面的過程
客戶端發送請求到服務器端
服務器端返回證書和公開密鑰,公開密鑰作為證書的一部分而存在
客戶端驗證證書和公開密鑰的有效性,如果有效,則生成共享密鑰并使用公開密鑰加密發送到服務器端
服務器端使用私有密鑰解密數據,并使用收到的共享密鑰加密數據,發送到客戶端
客戶端使用共享密鑰解密數據
SSL加密建立………


image.png

金融業客戶端認證,安裝證書

客戶端認證的通信的過程
客戶端需要認證的過程跟服務器端需要認證的過程基本相同,并且少了最開始的兩步。這種情況都是證書存儲在客戶端,并且應用場景比較少,一般金融才使用,比如支付寶、銀行客戶端都需要安裝證書。

后續問題

怎樣保證公開密鑰的有效性
你也許會想到,怎么保證客戶端收到的公開密鑰是合法的,不是偽造的,證書很好的完成了這個任務。證書由權威的第三方機構頒發,并且對公開密鑰做了簽名。
https的缺點
https保證了通信的安全,但帶來了加密解密消耗計算機cpu資源的問題 ,不過,有專門的https加解密硬件服務器
各大互聯網公司,百度、淘寶、支付寶、知乎都使用https協議,為什么?
支付寶涉及到金融,所以出于安全考慮采用https這個,可以理解,為什么百度、知乎等也采用這種方式?為了防止運營商劫持!http通信時,運營商在數據中插入各種廣告,用戶看到后,怒火發到互聯網公司,其實這些壞事都是運營商(移動、聯通、電信)干的,用了https,運營商就沒法插播廣告篡改數據了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,581評論 0 13
  • 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文傳播,帶來了三大風險。 (1)竊聽風險...
    XLsn0w閱讀 10,745評論 2 44
  • 目錄 準備 分析2.1. 三次握手2.2. 創建 HTTP 代理(非必要)2.3. TLS/SSL 握手2.4. ...
    RunAlgorithm閱讀 38,661評論 12 117
  • 前面兩篇文章中關于 HTTP 相關知識基本上介紹的差不多了,這篇文章是對 HTTP 協議的補充,主要介紹以下三點內...
    lijiankun24閱讀 1,327評論 2 3
  • 安全套接字(Secure Socket Layer,SSL)協議是Web瀏覽器與Web服務器之間安全交換信息的協議...
    GB_speak閱讀 861評論 0 8