https

HTTP 傳輸面臨的風險有:

  • 通信使用明文(不加密),內容可能會被竊聽
  • 不驗證通信方的身份,因此有可能遭遇僞裝
  • 無法證明報文的完整性所以有可能已遭篡改

https概念

HTTPS 協議(HyperText Transfer Protocol over Secure Socket Layer):可以理解爲HTTP+SSL/TLS, 即 HTTP 下加入 SSL 層,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL,用於安全的 HTTP 數據傳輸。
在這裏插入圖片描述

HTTP+ 加密 + 認證 + 完整性保護 =HTTPS

 HTTPS 比 HTTP 要慢 2 到 100 倍

 與純文本通信相比,加密通信會消耗更多的CPU 及內存資源。

 要進行 HTTPS 通信,證書是必不可少的。而使用的證書必須向認證機構(CA)購買。

SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是爲網絡通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡連接進行加密。

https原理

https是不是絕對安全

這個的答案是否定的,HTTPS只是解決了數據在傳輸過程中的安全性和保密性,這一點用一般的wireshark就能驗證(注意這裏指的是一般)。如果是服務器或者證書出現問題那麼https是肯定解決不了的。

先來說說對稱加密和非對稱加密

對稱加密

就是通信的雙方使用的是同一套算法,比如說對一個文件進行用這個算法進行加密,那麼用這個算法或者這個算法的逆過程就能解密,這樣帶來的開銷往往會小一些

非對稱加密

爲什麼會出現非對稱加密,就是因爲對稱加密的算法是可以被攻破的,(最壞的情況下窮舉攻擊能攻破的),就比如說當初密碼學剛剛產生的時候的凱撒密碼,如下:
abcd

進行加密之後變爲:
efgh

我們很容易就能夠猜出來就是由明文的每個字符+4就變成了密文,這樣如果算法被攻破的話,密碼也就隨之知道了。

非對稱加密分爲兩個密鑰:公鑰和私鑰。公鑰是誰都能有,用於對信息加密,只有私鑰才能解密。如果想進一步瞭解,可以看看我以前寫過的一篇關於RSA的的文章(要有一定的數論基礎喲):RSA非堆成加密算法的實現

如果您瞭解了非對稱加密算法,就知道這個算法相對於對稱加密算法來說,是十分浪費時間和資源的

https要知道的幾個加密算法

  • 握手的時候使用的非對稱加密算法 ,用來加密握手之後的請求和應答
  • 傳輸信息的時候使用的對稱加密,
  • 保證數據的完整性用的是hash算法(數字簽名)

HTPS的工作過程

  1. 客戶端發送自己支持的加密規則給服務器,代表告訴服務器要進行連接了
  2. 服務器從中選出一套加密算法和hash算法以及自己的身份信息(地址等)以證書的形式發送給瀏覽器,證書中包含服務器信息,加密公鑰,證書的辦法機構
  3. 客戶端收到網站的證書之後要做下面的事情:
    • 驗證證書的合法性
    • 如果驗證通過證書,瀏覽器會生成一串隨機數,並用證書中的公鑰進行加密
    • 用約定好的hash算法計算握手消息,然後用生成的密鑰進行加密,然後一起發送給服務器
  4. 服務器接收到客戶端傳送來的信息,要求下面的事情:
    • 用私鑰解析出密碼,,用密碼解析握手消息,驗證hash值是否和瀏覽器發來的一致
    • 使用密鑰加密消息,回送
  5. 如果計算法hash值一致,握手成功
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章