二、支付安全(證書/祕鑰/簽名)
1、信息安全的基礎 - 機密性
明文:加密前的消息叫“明文”(plain text)
密文:加密後的文本叫“密文”(cipher text)
密鑰:只有掌握特殊“鑰匙”的人,才能對加密的文本進行解密,這裏的“鑰匙”就叫做“密鑰”(key) “密鑰”就是一個字符串,度量單位是“位”(bit),比如,密鑰長度是 128,就是 16 字節的二 進制串
加密:實現機密性最常用的手段是“加密”(encrypt) 按照密鑰的使用方式,加密可以分爲兩大類:對稱加密和非對稱加密。
解密:使用密鑰還原明文的過程叫“解密”(decrypt)
加密算法:加密解密的操作過程就是“加密算法” 所有的加密算法都是公開的,而算法使用的“密鑰”則必須保密
2、對稱加密和非對稱加密
對稱加密 特點:只使用一個密鑰,密鑰必須保密,常用的有 AES算法 優點:運算速度快 缺點:祕鑰需要信息交換的雙方共享,一旦被竊取,消息會被破解,無法做到安全的密鑰交 換
非對稱加密 特點:使用兩個密鑰:公鑰和私鑰,公鑰可以任意分發而私鑰保密,常用的有 RSA 優點:黑客獲取公鑰無法破解密文,解決了密鑰交換的問題 缺點:運算速度非常慢
混合加密 實際場景中把對稱加密和非對稱加密結合起來使用。
3、身份認證
公鑰加密,私鑰解密的作用是加密信息
私鑰加密,公鑰解密的作用是身份認證
4、摘要算法(Digest Algorithm)
摘要算法就是我們常說的散列函數、哈希函數(Hash Function),它能夠把任意長度的數據“壓縮”成 固定長度、而且獨一無二的“摘要”字符串,就好像是給這段數據生成了一個數字“指紋”。
作用: 保證信息的完整性
特性: 不可逆:只有算法,沒有祕鑰,只能加密,不能解密 難題友好性:想要破解,只能暴力枚舉 發散性:只要對原文進行一點點改動,摘要就會發生劇烈變化 抗碰撞性:原文不同,計算後的摘要也要不同
常見摘要算法: MD5、SHA1、SHA2(SHA224、SHA256、SHA384)
5、數字簽名
數字簽名是使用私鑰對摘要加密生成簽名,需要由公鑰將簽名解密後進行驗證,實現身份認證和不可否 認 簽名和驗證簽名的流程:
6、數字證書
數字證書解決“公鑰的信任”問題,可以防止黑客僞造公鑰。 不能直接分發公鑰,公鑰的分發必須使用數字證書,數字證書由CA頒發 https協議中的數字證書: