HTTPS詳解及常見面試題


  1.HTTP缺點:

  無連接: HTTP/1.1之前每次請求都要通過TCP建立連接斷開連接,HTTP/1.1實現了持久連接

  無狀態: Cookie技術和持久連接解決

  明文傳輸: 不安全

 

  HTTPS:簡單講是HTTP的安全版,在HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

  2.HTTPS特點:

  內容加密:采用混合加密技術,中間者無法直接查看明文內容

  驗證身份:通過證書認證客戶端訪問的是自己的服務器

  保護數據完整性:防止傳輸的內容被中間人冒充或者篡改

 

 

  加密算法 --- RSA(混合加密機制)

    (1)共享密匙加密: 公開密匙加密解密,但是無法保證安全發送密匙

    (2)公開密匙加密: 公開密匙加密,私有密匙解密

    HTTPS:混合加密機制: 結合對稱加密和非對稱加密技術

    用對稱加密生成的密鑰對通信數據加密

    用非對稱加密生成的公鑰對密鑰加密

    這樣在保證密鑰的安全性下,提高了效率


  認證 --- 防止"中間人"攻擊,並驗證服務器身份

    證書: 認證機構(CA)信息,公鑰,域名,有效期,指紋(對證書進行hash運算,即證書摘要),指紋算法,數字簽名(CA私鑰密的指紋)等

    通信過程: 

    1.客戶端發起 HTTPS 請求,服務端返回證書

    2.客戶端對證書進行驗證,驗證通過后本地生成用於改造對稱加密算法的隨機數

    3.通過證書中的公鑰對隨機數進行加密傳輸到服務端,服務端接收后通過私鑰解密得到隨機數,之后的數據交互通過對稱加密算法進行加解密

    驗證過程:

    1. 證書是否過期

    2.CA是否可靠(查詢信任的本地根證書)

    3.證書是否被篡改(用戶使用CA根公鑰解密簽名得到原始指紋,再對證書使用指紋算法得到新指紋,兩指紋若不一樣,則被篡改)

    4.服務器域名和證書上的域名是否匹配

 

    助於理解,知乎上down的HTTPS通信流程:

                 

 

  

  常見面試題 :

    Q:HTTP與HTTPS區別?

    A: 1.HTTPS需要申請購買CA證書, HTTP不需要

      2.HTTP是明文傳輸,不安全, HTTPS是在HTTP基礎上加了SSL層,更安全

      3.HTTPS效率低,HTTP效率高

 

    Q:HTTPS傳輸過程?

    A:客戶端發起 HTTPS 請求,服務端返回證書,客戶端對證書驗證,驗證通過后本地生成用於改造對稱加密算法的隨機數,通過證書中的公鑰對隨機數進行加密傳輸到服務端,服務端接收后通過私鑰解密得到隨機數,之后的數據交互通過對稱加密算法進行加解密。

 

    Q:為什么需要證書?

    A:防止中間人攻擊,驗證服務器身份

   

    Q:怎么防止的篡改?

    A:證書是公開的,雖然中間人可以拿到證書,但私鑰無法獲取,公鑰無法推斷出私鑰,所以篡改后不能用私鑰加密,強行加密客戶也無法解密,強行修改內容,會導致證書內容與簽名中的指紋不匹配


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM