java慢:熵相关问题
我遇到了一个问题,在SSL上使用java时速度很慢。解决方案是在命令行中将-Djava.security.egd=file:/dev//uradom添加到java中。因为我有多个JVM,所以我不想修改每个JVM来包含这个字符串,因此希望将它添加到文件$JAVA_HOME/jre/lib/security/JAVA.security中 -Djava.security.egd=file:/dev/./urandom $JAVA_HOME/jre/lib/security/java.security 现在,java.security文件已经包含securerandom.source=file:/dev/uradom securerandom.source=file:/dev/urandom 关于这一点,有两个问题:java慢:熵相关问题,java,tomcat,jboss,weblogic,Java,Tomcat,Jboss,Weblogic,我遇到了一个问题,在SSL上使用java时速度很慢。解决方案是在命令行中将-Djava.security.egd=file:/dev//uradom添加到java中。因为我有多个JVM,所以我不想修改每个JVM来包含这个字符串,因此希望将它添加到文件$JAVA_HOME/jre/lib/security/JAVA.security中 -Djava.security.egd=file:/dev/./urandom $JAVA_HOME/jre/lib/security/java.security
这实际上是在1.3或1.4天内引入JVM的一种黑客行为 基本问题是,在本机JVM代码中,他们硬编码
/dev/urandom
,以实际使用/dev/random
来尝试确保足够的熵。由于/dev/uradom
应该保证不会阻塞,如果没有足够的熵可用,这会产生意外的阻塞后果
硬编码专门查找字符串
/dev/uradom
,因此提供解析为相同内容但不匹配的内容,从而导致所需的行为。如果你编写/dev//uradom
代码,你就绕过了硬编码的别名,找到了预期的uradom
熵源。这实际上是在1.3或1.4天内引入JVM的一种黑客行为
基本问题是,在本机JVM代码中,他们硬编码/dev/urandom
,以实际使用/dev/random
来尝试确保足够的熵。由于/dev/uradom
应该保证不会阻塞,如果没有足够的熵可用,这会产生意外的阻塞后果
硬编码专门查找字符串/dev/uradom
,因此提供解析为相同内容但不匹配的内容,从而导致所需的行为。如果您编写/dev//uradom
代码,您将绕过硬编码的别名,到达预期的uradom
熵源。在大多数情况下,使用/dev/uradom(非阻塞)是可以的。就我个人而言,我会确保将一些硬件随机数生成器配置为正,以获得足够的熵(见下文)
如果必须使用/dev/random(blocking)而无法进行阻止,那么应该确保始终具有足够的熵。解决方案是配置一个HW随机数生成器
假设您在Linux上运行,您可以通过以下方式检查可用的熵:
cat/proc/sys/kernel/random/entropy\u avail
如果您在一台具有hw随机数生成器的机器上,您很可能希望安装rngd。您可以通过发出以下命令检查cpu是否有:
cat/proc/cpuinfo
寻找名为兰德的旗帜。您还可以检查文件/dev/hwrng是否存在。您可能已经/想要加载相应的模块:
ls/lib/modules/*/kernel/drivers/char/hw_random
对我来说,这是:
sudo modprobe tpm rng
要使其永久化:
echo tpm rng | sudo T-a/etc/模块
如果你碰巧在Ubuntu/Debian上,只需安装包rng tools
sudo智能安装rng工具
如果您在安装rng工具之前和之后检查熵,您应该会看到显著增加
以下命令应显示可用的熵源:
sudo rngd-f-r/dev/hwrng-v
请注意,如果您需要更好的安全性,您需要混合使用多个熵源。不确定rng工具是否支持此功能。在大多数情况下,使用/dev/uradom(非阻塞)是可以的。就我个人而言,我会确保将一些硬件随机数生成器配置为正,以获得足够的熵(见下文)
如果必须使用/dev/random(blocking)而无法进行阻止,那么应该确保始终具有足够的熵。解决方案是配置一个HW随机数生成器
假设您在Linux上运行,您可以通过以下方式检查可用的熵:
cat/proc/sys/kernel/random/entropy\u avail
如果您在一台具有hw随机数生成器的机器上,您很可能希望安装rngd。您可以通过发出以下命令检查cpu是否有:
cat/proc/cpuinfo
寻找名为兰德的旗帜。您还可以检查文件/dev/hwrng是否存在。您可能已经/想要加载相应的模块:
ls/lib/modules/*/kernel/drivers/char/hw_random
对我来说,这是:
sudo modprobe tpm rng
要使其永久化:
echo tpm rng | sudo T-a/etc/模块
如果你碰巧在Ubuntu/Debian上,只需安装包rng tools
sudo智能安装rng工具
如果您在安装rng工具之前和之后检查熵,您应该会看到显著增加
以下命令应显示可用的熵源:
sudo rngd-f-r/dev/hwrng-v
请注意,如果您需要更好的安全性,您需要混合使用多个熵源。不确定rng工具是否支持这一点。/code>/dev//urandom和
/dev/urandom
是同一条路径,没有区别。应该没有,但显然是有区别的。奇怪的是的,刚刚得出了同样的结论!Bug 6202721解释了这一点。/dev//uradom
和/dev/uradom
是同一条路径,没有区别。应该没有区别,但显然是有区别的。奇怪的是的,刚刚得出了同样的结论!Bug 6202721解释了这一点。