概念一:
- 公鑰:顧名思義,大家都有的鑰匙,當然不適合解密,但適用于加密
- 私鑰:不能被別人知道的鑰匙,適合解密
概念二:單向加密
客戶端發(fā)送給服務器的數(shù)據(jù),加密后,只能被服務器解密;服務器相應給客戶端的信息,加密后,可以被所有人解密(其實就是不加密);也就是單向加密
非對稱加密流程
- 客戶端向服務發(fā)起請求,獲取公鑰
- 服務器返回公鑰
- 客戶端,使用公鑰加密數(shù)據(jù),發(fā)送給服務器
- 服務收到加密數(shù)據(jù),用私鑰加密,得到數(shù)據(jù)
- 服務用私鑰加密數(shù)據(jù),返回給客戶端
- 客戶端收到加密的數(shù)據(jù),用公鑰解密,得到數(shù)據(jù)
概念三:(看起來和概念一沖突,但結合概念二,理解加密的意義本質,就懂了)
- 公鑰加密,私鑰解密
- 私鑰加密,公鑰解密
不安全的 非對稱加密流程
- 客戶端向服務發(fā)起請求,獲取公鑰
- 經(jīng)過網(wǎng)關(路由器或者服務器,都可以是網(wǎng)關),請求被惡意用途的服務器代理
- 惡意用途的服務器,去請求 真實服務器 公鑰,得到公鑰,返回 惡意用途的服務器 的公鑰
- 客戶端 用 惡意用途的服務器的公鑰加密,發(fā)送數(shù)據(jù) 給真實服務器,請求依然被惡意用途的服務器代理
- 惡意用途的服務器 用 自己的私鑰解密,得到數(shù)據(jù),再用 真實服務器 公鑰加密,去請求 真實服務器;
- 真實服務器 用私鑰解密成功,認為是合法請求。開始操作數(shù)據(jù)庫等其他行為。(轉賬成功等等)
安全的 非對稱加密流程
一、CA機構 和 操作系統(tǒng)
-
CA機構,把自己的公鑰,植入到操作系統(tǒng);
image.png
image.png
二、服務器 與 CA機構
- 服務器開發(fā)人員把公鑰上傳到CA機構,并且填寫一些信息,網(wǎng)站域名,身份證,手機號,等等
- CA機構 要求 服務器開發(fā)人員,在服務器某個文件夾下,新建一個文件,填寫一些信息;用于校驗,確保這個公鑰真的是這個服務器的。
- CA機構請求 服務器上的文件,得到信息 和 自己要求的一致,認證通過;用自己的私鑰加密,生成"數(shù)字證書",發(fā)送給 服務器開發(fā)人員
- 服務器開發(fā)人員,把"數(shù)字證書"存到服務器上
三、客戶端 與 服務器
- 客戶端向服務發(fā)起請求,獲取"數(shù)字證書"(CA機構私鑰加密過的,服務器的公鑰)
- 服務器 返回 "數(shù)字證書"
- 客戶端使用操作系統(tǒng) CA機構的公鑰,解密得到 服務器的公鑰,如果"數(shù)字證書"是 惡意用途的服務器代理返回的,解密會失敗。這就是 CA機構 的作用,它的公鑰是安全的,不在網(wǎng)絡上傳輸,植入到操作系統(tǒng)。和 私鑰一樣安全,放在服務器上,不傳輸。
- 客戶端 拿到 真實服務器 公鑰,解密數(shù)據(jù),發(fā)送給你服務器
- 服務器用自己的私鑰解密,再用自己的私鑰加密數(shù)據(jù),發(fā)送給客戶端
- 客戶端拿 公鑰解密。完成一次請求

