未雨绸缪:Nginx使用量子安全加密算法
现代互联网上,绝大多数网站都已经支持 HTTPS,其使用的 SSL/TLS 加密协议会将用户的请求数据与网站的响应进行加密,以防止信息被路径上的恶意用户窃取或篡改。而 SSL/TLS 协议中的一个重要组成部分是 RSA、ECDSA 等非对称加密算法,这些算法的密钥分为公钥、私钥两份,公钥可以公开,而私钥则要妥善保管。 非对称加密算法保证了浏览器和网站交换对称加密密钥的安全,从而保证数据不被窃取或篡改。 但是随着量子计算机的诞生,事情发生了一点变化。在量子计算机上运行的秀尔算法 可以非常高效地破解 RSA、ECDSA 等基于质因数分解难度的传统非对称加密算法,只要有一台足够强大的量子计算机,也就是量子比特数目达标的计算机。 而随着量子计算的逐渐火热,量子计算机正在迅速地发展。目前公开的最强大的量子计算机是 IBM 的 53 量子比特计算机,仍然不够使用秀尔算法破解 RSA、ECDSA 等,但高速的科技发展随时可能将此变成现实。 因此,密码学家们着手开发无法被量子计算机有效破解的非对称加密算法,并推广它们的使用,以准备好迎接 RSA 被破解的那一天。 从 2016 年末开始,Open Quantum Safe 就开始将现有的、能抵抗量子计算机的加密算法整合到 liboqs 开发库里,并将它集成到 OpenSSL、BoringSSL 等广泛使用的加密库,以简化新加密算法的部署。 同时,官方还提供了 nginx、Chromium 等软件的编译、集成流程文档。因此,只需要参照文档进行简单的修改,我们就可以准备好迎接实用量子计算机的到来。 这里所有的后量子加密算法都相对较新,并且正在进行 NIST 的标准化审核流程,可能仍有未被发现的漏洞。虽然 Open Quantum Safe 项目有一些方法降低风险,但在这些算法的标准化流程完成之前,不建议将它们用于生产环境等重要用途。
以上内容取自:https://lantian.pub/article/modify-website/post-quantum-encryption.lantian/
1. 编译OQS-OpenSSL
由于 nginx 使用 OpenSSL 或 BoringSSL 作为自己的加密库,我们不需要对 nginx 做任何修改,只需要把 OpenSSL 替换成 Open Quantum Safe 项目的版本就可以。 准备编译环境(以Debian为例):
1 | sudo apt install git cmake |
这次将在/root下完成大部分操作。
1 | cd /root |
2. 编译Nginx
只需要在常规编译时增加一些参数即可。
1 | ./configure \ |
然后继续正常make即可
3. 使用加密算法
在nginx.conf里添加如下配置:
1 | ssl_ecdh_curve 'p256_frodo640aes:p256_bike1l1cpa:p256_kyber90s512:p256_ntru_hps2048509:p256_lightsaber:p256_sidhp434:p256_sikep434:prime256v1:secp384r1:secp521r1'; |
完成后重载Nginx即可。
这些密钥交换算法都以 p256_ 开头,意味着后量子加密算法和传统加密算法同时使用。这是为了防止一种情况:新的加密算法存在数学漏洞,使得它们使用传统计算机(冯诺依曼计算机)就可以快速破解。同时使用两种交换算法,既保证了无法被量子计算机破解(如果新加密算法正常工作),也保证了一旦新加密算法被破解,密钥交换数据仍然拥有与传统算法同等级别的保护,不会被传统计算机立即破解。——Lan Tian @ Blog
目前还没有支持量子安全加密算法的CA出现,自签名证书又不被浏览器信任,因此身份验证算法目前还无法真正使用量子安全加密算法。
4. 验证加密算法
使用Chrome等现代浏览器访问你的网站时会优先使用P-256算法,可以在网站信息里看到。
- 标题: 未雨绸缪:Nginx使用量子安全加密算法
- 作者: Dawn5ky
- 创建于 : 2022-07-23 03:33:02
- 更新于 : 2023-10-16 18:07:52
- 链接: https://dawn.best/170/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。