Ubuntu 上的 OpenSSL 加密支持概览
在 Ubuntu 中,系统自带的 OpenSSL 提供完整的密码学能力,涵盖对称加密、非对称加密/密钥交换、消息摘要以及 SSL/TLS 协议栈。常用组件包括命令行工具 openssl、密码学库 libcrypto 和协议库 libssl;协议方面支持 TLS 1.2/1.3(并包含对 SSLv3/TLS1.0 的历史实现),可用于建立加密通道与证书管理。具体可用算法会随 OpenSSL 版本与编译选项略有差异。
对称加密算法与常见模式
- 分组密码:AES、DES、3DES(DES-EDE3)、Blowfish、CAST5、IDEA、RC2、RC5
- 流密码:RC4
- 常见工作模式:ECB、CBC、CFB、OFB;其中 AES 的 CFB/OFB 为 128 位分组,其他算法多为 64 位分组
- 命令行常见别名示例:aes-128-cbc、aes-256-cbc、-des-cbc、-bf-cbc、-cast5-cbc、-rc2-cbc、-rc4
说明:实际可用列表可通过命令查看(见下文“如何查看本机支持的算法”)。
非对称加密与密钥交换
- RSA:可用于加密、数字签名与密钥交换
- DH(Diffie–Hellman):常用于密钥交换
- DSA:主要用于数字签名
- 椭圆曲线密码学 ECC:包括 ECDSA、ECDH 等椭圆曲线算法族
这些算法既用于建立安全通道时的密钥协商,也用于身份认证与数字签名场景。
消息摘要与 MAC
- 摘要算法:MD5、SHA-1/SHA-2 系列(如 SHA256) 等
- 说明:摘要(哈希)常与 HMAC 结构配合用于消息完整性校验与消息认证(HMAC 的具体可用性与实现相关)。
协议与证书相关能力
- 协议栈:实现 SSL/TLS,当前以 TLS 1.2/1.3 为主,并包含对 SSLv3/TLS1.0 的历史实现(不建议在生产使用)
- 证书与编码:支持 X.509 证书/PKIX 路径验证、证书签发与管理工具,以及 PKCS#7、PKCS#12 等标准封装与编解码能力,便于证书、私钥与链的管理与分发。
如何查看本机支持的算法与快速验证
- 查看所有可用“enc”对称加密算法:
openssl enc -list
- 查看协议与套件(需有网络连通性):
openssl s_client -connect example.com:443 -tls1_2
openssl ciphers -v
- 快速文件加解密示例(AES-256-CBC):
加密
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
解密
openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
以上命令基于系统自带的 openssl 命令行工具,可直接在 Ubuntu 终端执行。