歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> 快來使用HTTPS吧

快來使用HTTPS吧

日期:2017/3/3 17:48:38   编辑:學習Linux

快來使用HTTPS吧

快來使用HTTPS吧


導讀HTTP 協議,本身是明文傳輸的,沒有經過任何安全處理。那麼這個時候就很容易在傳輸過程中被中間者竊聽、篡改、冒充等風險。這裡提到的中間者主要指一些網絡節點,是用戶數據在浏覽器和服務器中間傳輸必須要經過的節點,比如 WIFI 熱點,路由器,防火牆,反向代理,緩存服務器等。為什麼使用HTTPSHTTP 協議,本身是明文傳輸的,沒有經過任何安全處理。那麼這個時候就很容易在傳輸過程中被中間者竊聽、篡改、冒充等風險。。

HTTP 協議,中間者可以竊聽隱私,使用戶的敏感數據暴露無遺;篡改網頁,例如往頁面插的廣告內容,甚至進行流量劫持,比如有的時候你會發現域名沒輸錯,結果卻跑到了一個釣魚網站上,因為被它劫持了。

為了解決這三大風險,HTTPS的價值就體現出來了。

  • · 內容加密,第三方無法竊聽。
  • · 身份認證,一旦被篡改,通信雙方會立刻發現。
  • · 數據完整性。防止內容冒充或者篡改。
什麼是HTTPS

HTTPS,簡單的理解HTTP的安全版,即HTTP下加入SSL層,由兩部分組成:HTTP + SSL / TLS。

HTTPS原理剖析

快來使用HTTPS吧快來使用HTTPS吧

第一步,用戶在浏覽器裡輸入一個https網址,此時客戶端發起HTTPS請求,通過TCP和服務器建立連接(443端口)。

第二步,服務器存放CA證書進行處理,注意的是采用HTTPS協議的服務器必須要有一套數字證書,這套證書其實就是一對公鑰和私鑰。

第三步,服務器向客戶端返回證書。證書裡面包含了很多信息:比如域名,申請證書的公司,公鑰等。以下是一個淘寶網的CA證書。

快來使用HTTPS吧快來使用HTTPS吧
快來使用HTTPS吧快來使用HTTPS吧

第四步,客戶端對證書進行解析。這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等,如果發現異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那麼就生成一個隨機數,然後用證書對該隨機數進行加密。

第五步,向服務器發送證書加密後的隨機數。

第六步,服務器用它的私鑰進行解密,得到了客戶端傳過來的隨機數。

第七步,服務器用客戶端的隨機數加密後的信息發送給客戶端。

第八步,客戶端用之前生成的私鑰解密服務端傳過來的信息。

以上就是整個HTTPS的交互過程,大家是不是對整個流程有了比較大致的了解了呢。

HTTPS的相關場景

真實業務場景是復雜的,這裡,整理3個項目中遇到的比較復雜的應用場景。

  • 場景一,對HTTPS進行CDN加速,這種情況下,CA證書需要存放在哪裡呢?
  1. 服務器(源站)提供證書給CDN廠商,包括公鑰證書和私鑰,CDN負責交互和內容緩存,CDN有緩存則直接響應,以HTTP或HTTPS的形式回源。這個方案,適用僅對防劫持、防篡改有需求,而願意提供證書給CDN的源站加速。
  2. 服務器(源站)不提供證書,CDN存放公鑰,服務器(源站)存放私鑰。在CDN與前端浏覽器進行TLS的認證和秘鑰協商過程中,通過安全的信道把協商過程中的信息以HTTP或HTTPS的形式轉發給源網站。此方案中,CDN不做緩存,僅以自有的加速網絡,將用戶的請求快速送到服務器(源站),降低公網延遲。這個方案,適用於對安全要求更高,不願將私鑰共享給CDN的源站加速。
  • 場景二,對HTTPS的域名通過CNAME綁定到另外一個HTTPS域名上

這個情況下,我們需要一個證書還是兩個證書呢?

我們的方案是,兩個證書。因為每個證書跟自己的域名進行綁定,即使它們都在同一個服務器上,也不能使用同一個證書。

  • 場景三,兩台服務器的證書問題

因為安全問題,CA證書在一台服務器上,而服務部署在另外一台服務器上。這種情況就比較難辦。

快來使用HTTPS吧快來使用HTTPS吧

此時,需要借助Nginx進行反向代理,回源到具體的服務器。

HTTPS設計上的借鑒

對於HTTPS設計上的方案,對於我們而言,有什麼可以借鑒的地方麼,答案是肯定的:有。一個非常典型的方案就是RSA雙向認證。

RSA雙向認證,顧名思義,就是用對方的公鑰加密是為了保密,這個只有對方用私鑰能解密。用自己的私鑰加密是為了防抵賴,能用我的公鑰解開,說明這是我發來的。例如,支付寶的支付接口就是非常典型的RSA雙向認證的安全方案。此外,我們之前的教育資源、敏感驗證碼出於安全性考慮都借鑒了這個方案。

原文來自:http://blog.720ui.com/2016/security_https/

本文地址:http://www.linuxprobe.com/https.html ‎


http://xxxxxx/Linuxjc/1184667.html TechArticle

Copyright © Linux教程網 All Rights Reserved