粗略概述下加密:html
背景: 簡單的舉個例子:A 與 B 通訊(英文),內容可能會被截取,從而形成信息泄露。那麼是否是能夠加密下?A B共同維護一個密碼本(設爲26英文字母), 加密:字母均向後移動 3 位, 解密:字母向前移動 3 位,這就是簡單的「對稱加密」了(現實中沒這麼easy)前端
=> 密碼本泄露了怎麼辦,密碼在傳輸過程當中泄露了怎麼辦?git
這就引來一個問題,那麼非對稱加密來啦github
一份祕鑰,加密者經過該祕鑰加密,解密者經過該祕鑰解密。算法
A 與 B 通訊,須要A,B均知道祕鑰。函數
優點: 傳輸速度快加密
劣勢: 若A 已知密碼,要傳給B的過程當中,被劫持了怎麼辦?cdn
兩種形式:htm
私鑰加密,公鑰解密: 應用場景,https中的,數字簽名blog
公鑰加密,私鑰解密:應用場景,https中
問題1:如何作到防篡改呢?
簽名 => CA公鑰解密 => 摘要1
原文 => hash算法 => 摘要2
判斷:摘要1 === 摘要2
問題2: 證書裏有什麼?
問題3:CA直接認證全部的服務嗎?
固然不了,想象一下,若是全部的服務都需CA認證,~~~ CA使用鏈式認證的; 證書認證機構, CA, 根證書認證的證書較少, => 鏈式認證
問題4 如何驗證證書? 客戶端有兩個摘要,經過比對是否相同來作驗證,下面分別介紹兩個摘要~
摘要1: 服務端: 原文 => hash算法 => 摘要1 => CA私鑰加密 => 簽名
客戶端: 簽名 => CA公鑰解密 => 摘要1
摘要2: 原文 => hash算法 => 摘要2