從https來簡單瞭解加密算法

先簡單的說下https的加密過程算法

  1. 客戶端發出請求 (帶有支持的協議,隨機數,支持的加密方法)
  2. 服務端響應 (服務器數字證書(公鑰,hash算法,加密算法,過時時間...), 隨機數,確認加密方法,肯定通訊協議)
  3. 客戶端獲取到數字證書,客戶端驗證是否合法. 而後生成對稱密鑰,經過服務器公鑰進行加密而後發送給服務端
  4. 服務端經過私鑰解密得到對稱密鑰

https的握手本質上能夠說交換對稱密鑰的過程. 其中用到數字簽名(數字證書要進行數字簽名),非對稱加密(服務器公鑰加密解密)和對稱加密(握手完成以後的經過對稱密鑰對數據的加密解密)服務器

爲何Charles抓取https包手機必定要安裝信任Charles根證書? 由於經過Charles抓包,客戶端獲取到的數字證書是Charles僞造的. 它也不可能合法.舉個例子,你向https://baidu.com發送一個請求. Charles返回給你的數字證書(即便是合法)的域名就對不上了.函數

數字摘要

CA證書的私鑰對數字證書進行加密以前,首寫要對其進行數字摘要,就是經過hash函數將明文生成固定長度的密文. 數字摘要算法在驗證數據的完整性很是有用. 若是有發送方發送了100W個字符. 要判斷這個100w個字符是否完整,只須要判斷對應100多位的數字摘要是否相同就好了. (常見的數字摘要算法有md5,sha1,hmac加密

對稱加密

發送 和 接收 雙方都使用相同的密鑰對數據進行 加密 和 解密。常見的對稱加密算法有AES,DES加密. https的對稱加密使用的是AEScode

非對稱加密

非對稱加密算法,又稱爲 公開密鑰加密算法。它須要兩個密鑰,一個稱爲 公開密鑰 (public key),即 公鑰,另外一個稱爲 私有密鑰 (private key),即 私鑰。最經典的就是RSA算法,它是地球上最重要的算法!!!md5

數字簽名

數字簽名,就是驗證自身身份的一種方式。數字簽名由簽名驗證組成. 發送者持有簽名(私鑰),接收者持有(公鑰)來驗證其身份。數字簽名是由數字摘要算法和非對稱加密算法組成.例如https的數字簽名,就是先對服務器數字證書進行數字摘要(hash-1),而後經過私鑰對生成的數字摘要(hash-1)進行加密發送給客戶端。客戶端經過公鑰解密獲得hash-1而後經過hash算法對獲取到的數字證書進行數字摘要獲得(hash-2).判斷hash-1hash-2是否相同就能夠知道數字證書是否被劫持和篡改了hash

相關文章
相關標籤/搜索