【问题标题】:Java 8 Diffie Hellman key size issues with 32 bit linux32 位 Linux 的 Java 8 Diffie Hellman 密钥大小问题
【发布时间】:2018-11-12 23:28:26
【问题描述】:

在旧的 32 位 linux 系统上将我们的 java 从 1.7 升级到 1.8 后,我们在与 web 服务通信时收到以下错误消息:

原因:java.security.InvalidAlgorithmParameterException:DH 密钥大小必须是 64 的倍数,并且只能从 512 到 2048(含)。不支持特定的密钥大小 4096

linux发行版是:

uname -a

Linux XXX-XXX-S018 2.6.16.21-0.8-default #1 Mon Jul 3 18:25:39 UTC 2006 i686 i686 i386 GNU/Linux

分布:

cat /etc/*release

LSB_VERSION="core-2.0-noarch:core-3.0-noarch:core-2.0-ia32:core-3.0-ia32" SUSE Linux Enterprise Server 10 (i586) 版本 = 10

我们使用的 Java 版本(32 位和 64 位相同的版本)

Java 版本:

jdk1.8.0_151

奇怪的是,在降级到 java 1.7 后它可以正常工作。

同样的应用程序在不同的 64 位系统(使用 java 1.8)上运行 - 所以我们假设这可能是操作系统架构(32 位)、操作系统的年龄(在这种情况下是 2006 年)和java.

我们发现了一些关于最大长度为 2048 的开放 JDK 的错误报告 - 但我们目前使用的是来自 oracle 的常规 JDK​​。

感谢您的帮助,

豪克

【问题讨论】:

  • Java 1.8 的具体版本是什么?
  • 我编辑了我的帖子 - jdk1.8.0_151

标签: java linux encryption diffie-hellman


【解决方案1】:

请阅读https://www.oracle.com/technetwork/java/javase/8u151-relnotes-3850493.html

在 Oracle JRE 8u151 中,您将找到 java.security 文件并将 crypto.policy 设置为值 'unlimited'

我假设您的 JRE7 已经安装了 Unlimited JRE 强度策略

较新的版本(8u161,..)默认启用无限强度。

请注意,Oracle JRE 8u151 在解码 gzip 流时存在严重问题。当与 Tomcat 等 Web/应用程序服务器一起使用时,.. 您必须禁用流压缩或升级到更高一点的https://bugs.java.com/view_bug.do?bug_id=JDK-8189789

【讨论】:

  • 文件 /jre/lib/security/java.security 中的 crypto.policy 已设置为无限制。我也尝试过使用 Java 8u191,但没有运气。
猜你喜欢
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多