Java /tls握手后使用的dev/random

Java /tls握手后使用的dev/random,java,performance,ssl,Java,Performance,Ssl,我正在研究一个性能问题,我的问题如下 TLS握手完成后,是否进一步依赖于/dev/random 如果使用默认的随机源运行,则性能明显低于使用文件:/dev//uradom。对于基准,相同的安全插座连接用于10m;因此,我们并不是一直在创建新的连接 所以我知道在握手过程中需要随机源,但不清楚为什么在常规数据传输过程中需要随机源 [更新] 我正在使用TLS\u ECDHE\u RSA\u和\u AES\u 128\u CBC\u SHA256作为密码套件。您的问题没有意义,因为TLS本身不是一种加密

我正在研究一个性能问题,我的问题如下

TLS握手完成后,是否进一步依赖于
/dev/random

如果使用默认的随机源运行,则性能明显低于使用
文件:/dev//uradom
。对于基准,相同的安全插座连接用于10m;因此,我们并不是一直在创建新的连接

所以我知道在握手过程中需要随机源,但不清楚为什么在常规数据传输过程中需要随机源

[更新]
我正在使用TLS\u ECDHE\u RSA\u和\u AES\u 128\u CBC\u SHA256作为密码套件。

您的问题没有意义,因为TLS本身不是一种加密机制,/dev/random由实际的加密方案使用,在使用TLS启动安全通道时使用。还有,为什么要将它从/dev/urandom切换到/dev/random?是因为您认为/dev/random在as/dev/urandom不安全的地方“真正”安全吗?那不是真的(如果你懂加密的话)。对于概述,我建议您阅读本文以了解差异,并将默认值设置回/dev/uradomr,而您的程序之所以减慢,是因为/dev/random块在熵用完时,您不应该将其用于CSPRNG操作。hi pventjeer,在您指定用于TLS连接的加密方案并包括一些基准测试之前,您的问题仍然不清楚(提示:如果在Linux上,
perf top
)。也许您只是在传输随机数据,这些数据取自
/dev/random
?@AhmedMasud我正在默认配置/dev/random和/dev//uradom之间进行基准测试。我看到后者比前者有更好的表现;但是我不明白为什么一旦握手不起作用,这就很重要。如果您使用的是CBC SHA256,那么算法可能会使用随机池中的数据填充块,这意味着它会不断尝试从/dev/random读取数据,你的问题没有意义,因为TLS本身不是一种加密机制,/dev/random被实际的加密方案所使用,而在使用TLS启动安全通道时使用的加密方案。还有,为什么要将它从/dev/urandom切换到/dev/random?是因为您认为/dev/random在as/dev/urandom不安全的地方“真正”安全吗?那不是真的(如果你懂加密的话)。对于概述,我建议您阅读本文以了解差异,并将默认值设置回/dev/uradomr,而您的程序之所以减慢,是因为/dev/random块在熵用完时,您不应该将其用于CSPRNG操作。hi pventjeer,在您指定用于TLS连接的加密方案并包括一些基准测试之前,您的问题仍然不清楚(提示:如果在Linux上,
perf top
)。也许您只是在传输随机数据,这些数据取自
/dev/random
?@AhmedMasud我正在默认配置/dev/random和/dev//uradom之间进行基准测试。我看到后者比前者有更好的表现;但是我不明白为什么一旦握手不起作用,这一点就很重要。如果您使用的是CBC SHA256,那么算法可能会使用随机池中的数据填充块,这意味着它会不断尝试从/dev/random中读取数据,当熵用完时,进程块就会被填满。