spring-boot - cipher suites spring 高加密(aes+camellia no aead)
问题描述
我有一个包含两个漏洞的安全测试(aes+camellia no aead -> 不提供,logjam -> VULNERABLE)
安全测试是通过一个 Spring Boot 应用程序进行的,我的配置文件中有以下配置:
server:
ssl:
ciphers: EECDH+CHACHA20,EECDH+AESGCM,EECDH+AES+SHA384,EECDH+AES+SHA256,EECDH+AES,EDH+AES256,!EDH+AESGCM,!EDH+SHA256,HIGH,!aNULL,!eNULL,!EXPORT,!DES,!MD5,!PSK,!RC4,!ECDHE-RSA-AES256-GCM-SHA384,!SHA1,!SHA256,!SHA384
我删除了 CBC 算法,因为 CBC 算法像漏洞一样被报告给我。
在测试中也向我展示了 logjam 漏洞,但我按照教程进行操作:
https://geekflare.com/test-logjam-attack-cve-2015-4000-and-fix/
我将 !EXPORT 包含在我的密码套件中
我不知道我需要什么来解决 logjam(因为在所有页面中我都找到了相同的响应,以及 AES Camelia,因为我删除了 CBC 算法,以解决其他漏洞)。
解决方案
EDH+AES256 可能负责检测logjam,这意味着您的JRE 正在使用1024 位或更少的DH 素数。删除该密码套件或更改素数。
如果您使用的是 Oracle,则以下可能有效(参考):
将 AlgorithmParameterGenerator 和 KeyPairGenerator 实现的默认密钥大小从 1024 位更改为 2048 位
此更改将更新 JDK 提供程序以使用 2048 位作为 DSA、RSA 和 DiffieHellman 的默认密钥大小,而不是在应用程序未使用密钥大小显式初始化
java.security.KeyPairGenerator
和java.security.AlgorithmParameterGenerator
对象时使用 1024 位。
要测试此更改,请下载 JDK 9.0.1、8u151、7u161、6u171 或更高版本,并jdk.security.defaultKeySize
使用算法及其所需的默认密钥大小设置系统属性。例如,要测试 2048 的 DSA 默认密钥大小,"‑Djdk.security.defaultKeySize=DSA:2048"
请在 java 命令行上指定。
在您的情况下,添加"‑Djdk.security.defaultKeySize=DiffieHellman:2048"
为命令行标志应该可以工作。
推荐阅读
- c# - 我无法在我的 wpf c# 应用程序中使用 firesharp 库检索 firebase 数据
- python - 使用 python API 时 pingAll 失败
- python-3.x - 创建循环加载 whit tkinter
- android - 状态栏和工具栏在滚动时从透明变为不透明,就像在 Letterboxd 中一样
- ionic-framework - 如何更改 IONIC 4 中的范围组件代码?
- html - 我的页脚没有出现在页面底部,而是出现在页面中间
- c++ - OpenGL不渲染任何东西
- python - Python函数参数类型依赖
- kotlin - 如何在 Kotlin 中将字节大小转换为人类可读的格式?
- javascript - Node.js express-generator - 由于 TypeError,应用程序无法运行:app.set 不是函数