OpenSSL 3.x 自定义 Engine 开发实战

本文介绍 OpenSSL 3.x 中自定义 Engine 的开发方法,帮助你实现硬件安全模块(HSM)集成、国密算法扩展等需求。 什么是 OpenSSL Engine? OpenSSL Engine 是 OpenSSL 密码学操作的可插拔后端实现。通过 Engine,你可以: 集成硬件安全模块(HSM) 使用国密算法(如 SM2/SM3/SM4) 调用专用的加密加速卡 实现自定义的密码学算法 查看可用 Engine 系统已内置多个 Engine,使用以下命令查看: 1 openssl engine -t 输出示例: 1 2 3 4 5 6 (dynamic) Dynamic engine loading support [ unavailable ] (padlock) VIA PadLock (no-RNG, no-ACE) [ unavailable ] (afalg) AFALG engine [ unavailable ] [ unavailable ] 表示该 Engine 在当前系统上不可用,但可以加载。 使用动态 Engine 加载 OpenSSL 支持动态加载自定义 Engine。创建一个简单的配置文件进行测试: 1 2 3 4 5 # 创建 Engine 配置目录 mkdir -p ~/....

June 27, 2026 · 3 min · 黑豆子

OpenSSH 后量子密钥交换配置指南

概述 随着量子计算技术的发展,传统加密算法面临潜在威胁。SSH 作为最常用的远程访问协议,其安全性尤为重要。本文介绍 OpenSSH 后量子密钥交换的配置方法,帮助管理员保护 SSH 连接免受"现在收集,以后解密"(Harvest Now, Decrypt Later)攻击。 为什么需要后量子密钥交换? “现在收集,以后解密"攻击 即使量子计算机尚未实用化,攻击者已经开始收集加密的 SSH 流量。当量子计算机足够强大时,这些历史数据可能被解密。这就是所谓的"现在收集,以后解密”(也称"收获现在,解密 later")攻击。 OpenSSH 官方文档指出:整个 SSH 连接的隐私取决于密钥协商。如果攻击者能够破解密钥协商,他们就能解密整个会话。攻击者无需实时执行此攻击——他们可以现在收集加密的 SSH 会话,然后在获得量子计算机后解密。 时间线 现在:攻击者开始收集加密数据 2030 年左右:RSA 和 ECDH 可能被量子计算机破解 2035 年:NIST 建议全面迁移到后量子密码学 OpenSSH 后量子支持历程 版本 发布时间 后量子支持 OpenSSH 9.0 2022年4月 默认启用 sntrup761x25519-sha512 OpenSSH 9.9 2024年 新增 mlkem768x25519-sha256 OpenSSH 10.0 2025年4月 mlkem768x25519-sha256 成为默认 OpenSSH 10.1 未来 未使用后量子算法时发出警告 RFC 9941 2026年4月 标准化 sntrup761x25519-sha512 支持的算法 混合密钥交换算法 sntrup761x25519-sha512 混合:NTRU Prime (sntrup761) + X25519 SHA-512 用于密钥派生 RFC 9941 标准化 mlkem768x25519-sha256...

June 18, 2026 · 2 min · 黑豆子

后量子 TLS 实战:X25519MLKEM768 混合密钥交换

背景:量子计算威胁与 TLS 量子计算机的快速发展对现有加密体系构成了潜在威胁。Shor 算法能够在多项式时间内分解大整数和计算离散对数,这意味着当前的 RSA、ECDSA 等公钥密码系统将可能被破解。SSL/TLS 协议中依赖的密钥交换和数字签名都可能受到影响。 虽然大规模量子计算机尚未出现,但"现在收集,以后解密"(harvest now, decrypt later)攻击已经是一种现实威胁 —— 攻击者可以预先收集加密流量,等待量子计算机足够强大时进行解密。 面对这一威胁,TLS 协议社区开发了混合密钥交换(Hybrid Key Exchange)方案,在传统算法基础上叠加后量子算法,实现"双重保险"。 什么是混合密钥交换 混合密钥交换同时使用两种不同的密钥交换算法,将其结果组合生成最终的会话密钥: 1 最终密钥 = HKDF(传统密钥交换结果 || 后量子密钥交换结果) 这种方案的优势在于: 兼容性:至少一个算法是传统经典算法,确保与旧系统兼容 安全性:即使量子计算机破解了其中一种算法,攻击者仍无法获得完整密钥 渐进性:可以逐步在网络中部署后量子算法 X25519MLKEM768 详解 X25519MLKEM768 是 TLS 1.3 中最常用的混合密钥交换组合: 组件 类型 算法 X25519 传统 Curve25519 ECDH ML-KEM-768 后量子 Kyber-768 (NIST Level 3) X25519 X25519 是基于 Curve25519 曲线的椭圆曲线 Diffie-Hellman 密钥交换协议,目前被广泛使用。它提供 128 位的安全强度,已被包括 Apple、Google 在内的主要厂商采用。 ML-KEM-768 ML-KEM(Module-Lattice-Based Key-Encapsulation Mechanism)是 NIST 后量子密码学标准中的密钥封装机制,基于 Kyber 算法。它提供约 192 位的安全强度(NIST Level 3),能够抵抗量子计算机攻击。...

June 13, 2026 · 2 min · 黑豆子