![可以防止程序启动时的熵消耗吗?](https://linux22.com/image/30970/%E5%8F%AF%E4%BB%A5%E9%98%B2%E6%AD%A2%E7%A8%8B%E5%BA%8F%E5%90%AF%E5%8A%A8%E6%97%B6%E7%9A%84%E7%86%B5%E6%B6%88%E8%80%97%E5%90%97%EF%BC%9F.png)
我使用 Knoppix(或其他 Live CD/DVD)作为创建有价值的加密密钥的安全环境。不幸的是,在这种环境中,熵是一种有限的资源。我刚刚注意到每个程序启动都会消耗相当多的熵。这似乎是由于某些堆栈保护功能需要地址随机化。
不错的功能,但在我的场景中完全没用,而且更糟糕的是具有破坏性。是否有可能禁用此功能?我更喜欢一个允许我继续使用原始 Knoppix(或其他)图像并且只需要在运行时进行一些配置的图像。
我读到这是由 glibc 引起的。令我惊讶的是,strace -p $PID -f -e trace=open
当我启动程序时,反对 bash 并没有显示对 /dev/random 的任何访问。但我不熟悉 execve() 和链接器的交互。
答案1
如果这确实是由于地址随机化(ASLR 与程序加载位置有关,请参见此处:http://en.wikipedia.org/wiki/Address_space_layout_randomization)然后您可以通过norandmaps
在引导选项中传递给内核来禁用它(请参见此处:http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/re30.html)。