標籤:資料 資料加密 https加密 https 目的 分析 部分 演算法 tcp
HTTPS加密的作目的是解決資訊傳輸過程中資料被篡改,竊取
HTTPS使用了一系列的密碼編譯演算法:對稱式加密演算法、非對稱式加密演算法、單向密碼編譯演算法
非對稱式加密演算法
分為公開金鑰部分和私密金鑰部分,用公開金鑰加密的密文只能由私密金鑰解開
·diffie-Hellman key exchange
·RSA
·ECC
對稱式加密演算法
用同一個密鑰解開
·DES、3DES
·AES
·IDEA
·RC4
單向密碼編譯演算法
無法復原的過程加密過後無法返回
·MD5 長度128
·SHA-1 長度160
·SHA-2 長度224、256、384、512
HTTPS資料轉送過程
①用戶端發起HTTPS串連握手
②服務端收到HTTPS握手串連請求,與客戶建立握手過程,和TCP的三向交握類似,並發送一系列的密碼編譯演算法組合給用戶端,與用戶端協商密碼編譯演算法組合
③用戶端收到這一系列的組合,從中選擇一個自己能夠支援的並且加密層級最高的密碼編譯演算法組合,通告給服務端
④服務端收到並確認用戶端選擇的加密組合,並將密鑰憑證發送給用戶端,(這個密鑰憑證使用了非對稱式加密演算法,使用這個公開金鑰加密的資訊只能由私密金鑰解開,而這個私密金鑰只有公開金鑰的頒布者也就是服務端擁有,也就是說用戶端用公開金鑰加密的資訊,只能有擁有私密金鑰的服務端解開)
⑤用戶端收到密鑰憑證之後,臨時隨機產生一個對稱金鑰用來對資料加密,用公開金鑰對產生的對稱金鑰進行加密得到對稱金鑰密碼編譯密文,這個對稱金鑰密碼編譯密文只能通過服務端的私密金鑰解開
⑥服務端收到對稱金鑰密碼編譯密文,用私密金鑰解開得到對稱金鑰
⑦用戶端開始對資料加密,先用對稱金鑰密碼編譯資料得到資料密文,再對資料密文進行hash計算得到一個hash值,再將這個hash值用公開金鑰加密得到hash值密文,然後將資料密文、hash值、hash值密文這三個部分一起發送給服務端
⑧服務端收到資料密文、hash值、hash值密文,首先用私密金鑰解開hash值密文,結果和收到的hash值對比驗證hash值是否在傳輸的過程中被篡改,然後對資料密文進行hash計算,結果和收到的hash值對比驗證資料密文在傳輸過程中被篡改。通過這兩步驗證傳輸資料沒有被改變,再用對稱式加密金鑰組資料密文加密得到原資料內容
HTTPS加密過程分析