迈向后量子时代, 本站已支持新的后量子密钥交换机制 X25519MLKEM768

物理学的不断进步预示着大规模量子计算机的最终构建。这种未来的设备仍能解密当今的通信(HNDL攻击),让任何人都能解密当今传输的数据。

量子计算机未来可能破解传统非对称加密算法(如RSA、ECC)。抗量子算法(如ML-KEM-768)通过数学难题(如格密码、哈希函数)设计,目标是保护长期密钥和会话密钥的机密性,即使量子计算机出现也无法解密历史数据。

目前,openssl对于该密钥交换机制没有得到支持,需要引入第三方oqs-provider (将后量子加密算法集成到 OpenSSL 中的库) ,铜锁/Tongsuos 是现代密码学算法和安全通信协议的开源基础密码库,并且支持国密算法,本站之前也完成了国际/国密算法的改造,所以在安装好oqs-provider后引入到tongsuo即可。(注意:如果你引入了这个第三方库, tongsuo 的GM/T 0028《密码模块安全技术要求》的"软件密码模块安全二级"资质可能无效)

本次改造仅为实验性质,并不推荐在生产环境中使用,因为该库的开发者明确说明:WE DO NOT CURRENTLY RECOMMEND RELYING ON THIS SOFTWARE IN A PRODUCTION ENVIRONMENT OR TO PROTECT ANY SENSITIVE DATA. This software is meant to help with research and prototyping. While we make a best-effort approach to avoid security bugs, this library has not received the level of auditing and analysis that would be necessary to rely on it for high security use.

我们目前不建议在生产环境中依赖该软件或保护任何敏感数据。该软件旨在帮助研究和原型开发。虽然我们会尽最大努力避免安全漏洞,但该库尚未接受必要的审计和分析,因此无法将其用于高安全性用途。

如果你只是想单独体验X25519MLKEM768,你可以直接将oqs-provider 引入到openssl 3.0.0以上版本的cnf配置即可。tongsuo组件不是必须的。

下面我们来看看怎么安装oqs-provider,你需要准备如下配置:

 

操作系统:openEuler 24.03 LTS SP1 TLS

证书:ECC 算法签发的X509格式证书 (acme.sh自动签发)

密码库:oqs-provider (将后量子加密算法集成到 OpenSSL 中的库)

浏览器:Chrome 最新版本 版本 132.0.6834.111(正式版本) (64 位)以上

 

安装必要的编译库

dnf install git cmake ninja-build gcc pcre-devel zlib-devel openssl-devel -y

克隆oqs的源代码

git clone https://github.com/open-quantum-safe/oqs-provider.git

执行编译环境,(注意:OPENSSL_ROOT_DIR路径是你tongsuo或者openssl安装的路径,通过执行 openssl version -d 查看)

export CFLAGS="-fPIC"
export OPENSSL_ROOT_DIR=/etc/pki/tls
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:$PKG_CONFIG_PATH
bash scripts/fullbuild.sh
cmake --install _build

执行到100%即可完成安装,(注意:记录好.so文件安装目录)

随后编辑openssl的cnf配置文件(一般是在tongsuo或者openssl安装的路径下有个oepnssl.cnf)

我们需要编辑62/72行代码,增加如下配置,其中module就是上图中.so文件路径

 oqs = oqs_sect
activate = 1
[oqs_sect]
module = /XXXX/oqsprovider.so
activate = 1
配置保存后,我们需要检测一下是否配置正确?当我们发现相应的算法, X25519MLKEM768 @ oqs那就是配置成功了。
openssl list -kem-algorithms

接下来我们需要安装或者重装tengine/nginx到最新的版本,下面是我tengine的配置

./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_sub_module \
--with-http_auth_request_module \
--with-http_v3_module \
--with-http_v2_module \
--with-http_ssl_module \
--with-pcre --with-stream \
--with-stream_ssl_module \
--user=nginx --group=nginx

安装好tengine后,我们就能在conf文件内引入相应的算法了。核心点在ssl_ecdh_curve,配置X25519:X25519MLKEM768;(为了兼容部分国产浏览器,请一定要配置X25519否则低版本、

Chrome内核的浏览器将无法打开网站)

server {
listen 443 ssl;
server_name yujunhong.cn;
ssl_protocols TLSv1.2 TLSv1.3;
enable_ntls on;
ssl_certificate fullchain.cer;
ssl_certificate_key yujunhong.cn.key;
ssl_sign_certificate yujunhong.cn_sm2_sign.cer;
ssl_sign_certificate_key yujunhong.cn_sm2_sign.key;
ssl_enc_certificate yujunhong.cn_sm2_encrypt.cer;
ssl_enc_certificate_key yujunhong.cn_sm2_encrypt.key;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
ssl_ecdh_curve X25519:X25519MLKEM768;
ssl_ciphers ECC-SM2-SM4-CBC-SM3:ECC-SM2-SM4-GCM-SM3:ECDHE-SM2-SM4-CBC-SM3:ECDHE-SM2-SM4-GCM-SM3:
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:
AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!RC4:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
}
......

重载nginx后,我们使用Chrome 已是最新版本 版本 135.0.7049.115(正式版本) (64 位)来访问我的网站,可以发现,已经支持了相应的密钥交换算法!

当然,在低版本内核的浏览器中,浏览器选择支持X25519经典算法

本站还是继续支持国密算法访问。

从X25519MLKEM768开始部署,既是对当前加密体系中最脆弱环节的针对性加固,也是平衡安全性与兼容性的策略选择。通过混合机制和分阶段实施,能够在抵御量子威胁的同时,逐步推动整个生态系统的升级。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇