超文字傳輸安全協議(hypertext transfer protocol secure,縮寫:https)是一種通過計算機網路進行安全通訊的傳輸協議。https經由http進行通訊,利用ssl/tls來加密資料報。其主要目的,是提供對**伺服器的身份認證,保護交換資料的隱私與完整性。
了解https,有助於我們定位和解決日常遇到的網路問題,對https流程的了解程度,也在一定程度上反映了乙個開發人員的網路知識基本功。
「hash演算法」也被稱為雜湊演算法。「hash演算法」沒有乙個固定的公式,只要符合雜湊思想的演算法都可以被稱為是「hash演算法」。
通常無法通過資料的hash值還原出原始資料,不同資料的hash值不同,所以可以用「hash演算法」來校驗完整性,檢測資料是否完整或者是否有更改。
加密與解密使用同樣的金鑰。
對稱加密效率較高,被廣泛應用於各種加密協議,然而在通訊前需要將金鑰傳送給對方,容易導致金鑰洩漏。
非對稱加密使用了一對金鑰:公鑰和私鑰。私鑰只能由一方保管,不能外洩,而公鑰則可以發給任何請求者。通過公鑰加密的資料只能由私鑰解開。
相比對稱加密而言,非對稱加密是十分安全的,但是加密和解密效率卻沒有對稱加密高。
資料簽名可以理解為:利用非對稱加密中的私鑰對「資料的 hash 值」進行加密後的資料。
簽名的驗證者使用公鑰對資料簽名進行解密,並將解密結果與自己計算出的資料的 hash 值進行比對,結果相同則證明資料完整、簽名有效,否則,則認為資料無效。
在非對稱加密中,公鑰也能解開私鑰加密的資料,然而由於公鑰是公開的,所以不能使用私鑰加密資料公鑰解密的方式通訊,私鑰加密被用作對資料進行數字簽名,公鑰來驗證簽名。數字證書用來證明公鑰擁有者的身份。
數字證書中包含:擁有者的公鑰、擁有者名稱、證書頒發者資訊、證書資訊簽名及有效期等
https 是基於 http , 在 http 下面提供了乙個傳輸級的密碼安全層。
當使用 charles 抓包時,對伺服器來說 charles 就是客戶端,對客戶端來說 charles 就是伺服器。
首先,客戶端需要信任 charles 自建的證書。在此基礎上客戶端與 charles 完成 https 握手,charles 與伺服器完成 https 握手。在通訊時,charles 使用自己的私鑰解密客戶端的資料,然後將資料再使用服務的公鑰加密**給伺服器,以此完成**功能。
超詳細https握手與數字簽名講解
ssl/tls協議執行機制的概述
https執行流程解析
**charles抓取https原理
HTTPS加密流程
1 客戶端發起https請求首先向服務端傳送客戶端ssl tls協議版本號 支援的加密演算法種類 如 rsa加密演算法,des對稱加密演算法,sha1摘要演算法 產生隨機數等資訊 2 服務端向瀏覽器回傳 ssl tls 協議版本號 選擇一種客戶端瀏覽器支援的加密演算法和hash演算法 隨機數 服務端...
HTTPS 實現流程
https協議其實就是http over tsl,基礎的http通訊是明文的,有三大風險 資訊被竊聽,資訊被篡改,身份的冒充。tsl協議就是為防範這些風險存在的。tsl使用非對稱加密保護下的對稱加密在保證了通訊效率的同時防止竊聽,使用證書體系防止資訊篡改和身份冒認。注意 tsl協議握手階段的通訊是明...
HTTPS通訊流程
https的通訊流程 1 客戶端向伺服器發起ssl通訊,報文中包含客戶端支援的ssl的指定版本,加密元件列表 所使用的加密演算法及金鑰長度 2 伺服器的響應報文中,包含ssl版本以及加密元件,伺服器的加密元件內容是從客戶端發來的加密元件列表中篩選出來的,伺服器還會發乙個公開金鑰並且帶有公鑰證書 3 ...