https 原理

粗略概述下加密:html

背景: 簡單的舉個例子:A 與 B 通訊(英文),內容可能會被截取,從而形成信息泄露。那麼是否是能夠加密下?A B共同維護一個密碼本(設爲26英文字母), 加密:字母均向後移動 3 位, 解密:字母向前移動 3 位,這就是簡單的「對稱加密」了(現實中沒這麼easy)前端

=> 密碼本泄露了怎麼辦,密碼在傳輸過程當中泄露了怎麼辦?git

這就引來一個問題,那麼非對稱加密來啦github

對稱加密

一份祕鑰,加密者經過該祕鑰加密,解密者經過該祕鑰解密。算法

A 與 B 通訊,須要A,B均知道祕鑰。函數

優點: 傳輸速度快加密

劣勢: 若A 已知密碼,要傳給B的過程當中,被劫持了怎麼辦?cdn

非對稱加密

  1. 分爲公鑰、私鑰。公鑰是公開的,私鑰僅一方知道
  2. 祕鑰的長度 > 加密內容長度,因此通常用於加密摘要(即:原文 => hash 算法 => 指定長度的摘要 => 加密)

兩種形式:htm

私鑰加密,公鑰解密: 應用場景,https中的,數字簽名blog

公鑰加密,私鑰解密:應用場景,https中

https原理

上一張我的理解圖:

問題1:如何作到防篡改呢?

簽名 => CA公鑰解密 => 摘要1

原文 => hash算法 => 摘要2

判斷:摘要1 === 摘要2

問題2: 證書裏有什麼?

  • 原文:公鑰、 hash算法、expired_time、域名...
  • 簽名: 原文 => hash算法 => 指定長度的摘要 => CA私鑰加密 => 簽名

問題3:CA直接認證全部的服務嗎?

固然不了,想象一下,若是全部的服務都需CA認證,~~~ CA使用鏈式認證的; 證書認證機構, CA, 根證書認證的證書較少, => 鏈式認證

問題4 如何驗證證書? 客戶端有兩個摘要,經過比對是否相同來作驗證,下面分別介紹兩個摘要~

  • 摘要1: 服務端: 原文 => hash算法 => 摘要1 => CA私鑰加密 => 簽名

    客戶端: 簽名 => CA公鑰解密 => 摘要1

  • 摘要2: 原文 => hash算法 => 摘要2

相關文章:

【密碼學】Hash Function(哈希函數)

前端加密常見場景

https原理

相關文章
相關標籤/搜索