首页 > 解决方案 > 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 算法,以解决其他漏洞)。

标签: spring-bootsecuritycryptography

解决方案


EDH+AES256 可能负责检测logjam,这意味着您的JRE 正在使用1024 位或更少的DH 素数。删除该密码套件或更改素数。

如果您使用的是 Oracle,则以下可能有效(参考):

将 AlgorithmParameterGenerator 和 KeyPairGenerator 实现的默认密钥大小从 1024 位更改为 2048 位

此更改将更新 JDK 提供程序以使用 2048 位作为 DSA、RSA 和 DiffieHellman 的默认密钥大小,而不是在应用程序未使用密钥大小显式初始化java.security.KeyPairGeneratorjava.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"为命令行标志应该可以工作。


推荐阅读