java慢:熵相关问题

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

我遇到了一个问题,在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 关于这一点,有两个问题:

  • “/dev/uradom”与“/dev//uradom”有何区别。为什么java不接受“/dev/uradom”
  • 对于我正在运行的JVM,我如何判断它们是否使用了正确的urandmon设备(vs random)

  • 这实际上是在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解释了这一点。