如果我们只输入域名来运行 dnssec-keygen,它在 Centos 上的运行速度会非常慢

如果我们只输入域名来运行 dnssec-keygen,它在 Centos 上的运行速度会非常慢

来自该ISC BIND文章示例:

https://kb.isc.org/article/AA-00626/0/Inline-Signing-in-ISC-BIND-9.9.0-Examples.html

$ dnssec-keygen example.com
    Generating key pair........................+++++
    ...............++++++ 
    Kexample.com.+005+17262
$ dnssec-keygen -fk example.com
    Generating key pair.....................................+++++
    ........................................................+++ 
    Kexample.com.+005+44139

我在 Centos 5 (x64) 上尝试过它们,发现 dnssec-keygen 运行非常慢。

如果我添加另一个选项参数,它会立即起作用。

例子:

dnssec-keygen -r random.data example.com

这在 Windows 操作系统上不会发生。

尝试调试后,我发现它停留在

RSA_generate_key_ex(rsa, key->key_size, e, &cb))

在里面

 lib\dns\opensslrsa_link.c

我尝试向 ISC 发送邮件,但他们没有再回复。

你有什么想法?

答案1

这可能是由于缺乏熵,这并不罕见,尤其是在虚拟化和/或大部分空闲的系统上。

如果不检查代码,生成正确密钥所需的随机输入可能是从 /dev/random 中检索的,IIRC 与 /dev/urandom 不同,因为当熵(即随机性)不足时它会阻塞。您可以检查可用的位数/proc/sys/kernel/random/entropy_avail

您可以通过生成中断(敲击键盘、使用鼠标、运行 find /、编译新内核等)来帮助增加熵量,获取硬件随机数生成器,或者,如果您的安全要求不是很高,请安装 rngd-tools 并使用 /dev/urandom 作为解决方法来增加伪熵量:rngd -r /dev/urandom -o /dev/random -b

相关内容