对称加密与非对称加密详解
1. 对称加密与非对称加密
1.1 对称加密
定义:
通信双方共享同一把密钥,该密钥用于将明文加密为密文,或将密文解密为明文。
常见算法:AES、DES、RC4,其中AES最为常用。
优点:加密解密速度快。
缺点:安全性相对较低,一旦密钥泄露,数据将面临极大风险。
1.2 非对称加密
定义:
通信双方持有不同的密钥,分别为公钥(public key)和私钥(private key)。私钥仅在服务端保存,公钥可公开分发。
使用场景:
- 加密场景:请求方使用公钥加密数据,接收方使用私钥解密。
- 签名场景:请求方使用私钥生成数字签名,接收方使用公钥验证签名。
常见算法:RSA。
优点:安全性高。
缺点:加密解密速度较慢。
1.3 使用OpenSSL生成RSA密钥对
生成2048位RSA私钥:
openssl genrsa -des3 -out private.pem 2048 |
导出公钥:
openssl rsa -in private.pem -outform PEM -pubout -out public.pem |
更多信息:关于PKCS规范的详细内容,可参考简单了解 PKCS 规范。
2. 数字签名与数字证书
2.1 摘要(Digest)
定义:
通过摘要算法将任意长度的信息映射为固定长度的哈希值。
常见算法:MD5、SHA1、SHA256、SHA512等。
特点:
- 不可逆,无法从摘要还原原始信息。
- 可能存在哈希碰撞(不同信息生成相同摘要)。
- 主要用于数据完整性校验,而非数据加密。
2.2 数字签名(Digital Signature)
定义:
使用私钥对摘要进行加密,生成数字签名。
签名与验签:
签名:发送方使用私钥加密摘要。
验签:接收方使用公钥解密签名,验证摘要的真实性。
意义:
- 防止伪造:数字签名确保摘要的真实性,防止信息被篡改。
- 效率优化:直接加密大量数据效率低下,而对摘要进行签名既能保证完整性,又能提高效率。
2.3 CA数字证书
问题背景:
若客户端获取的公钥不可信,可能导致信息泄露。
解决方案:
CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。
2.3.1 数字证书颁发流程
- 生成公钥和私钥,并创建包含公钥等信息的
.csr
文件。 - 将
.csr
文件提交给CA机构,CA验证信息后使用私钥对信息摘要进行加密,生成签名。 - CA将签名与明文信息结合,生成数字证书并返回给申请者。
2.3.2 证书编码格式与扩展名
编码格式:
- PEM:明文格式,以
-----BEGIN CERTIFICATE-----
开头,以-----END CERTIFICATE-----
结尾。 - DER:二进制格式,PEM是DER的Base64编码。
常见扩展名:
.crt
:证书文件,常见于类Unix系统。.cer
:证书文件,常见于Windows系统。.csr
:证书签名请求文件。.key
:公钥或私钥文件。.p12
:包含X509证书和密码保护私钥的文件。
3. Google HSM 简介
3.1 什么是HSM
定义:
硬件安全模块(HSM)是一种用于保护和管理数字密钥的硬件设备,提供防篡改功能。
3.2 Google Cloud KMS
Google Cloud HSM是一种云托管的HSM服务,支持在FIPS 140-2 Level 3认证的HSM集群中管理密钥和执行加密操作。