linux - 受熵影响的 ASLR 在 Linux 上可用吗?

标签 linux entropy aslr

它在random.c 的内核源代码中提到。 get_random_int 是“类似于 urandom,但目标是最小化熵池耗尽”。但是,get_random_int 在哪里(以及如何)与熵池交互?

现在,urandom 实际上调用了 extract_entropy_user,但我没有在 get_random_int 中看到任何类似的东西。似乎 get_random_int 使用它自己的熵源(与键盘、鼠标和磁盘事件无关):

hash[0] += current->pid + jiffies + get_cycles();

并且一般不关心(也不更新)系统可用的熵状态?

get_random_int 如何耗尽熵池?这是在哪里更新的?我知道我遗漏了一些东西或者读错了源代码,因为当我执行一个程序时,我可以看到它是如何通过在 entropy_avail 上执行 cat 来耗尽熵池的。

我已经查看了 http://xorl.wordpress.com/2011/01/16/linux-kernel-aslr-implementation/但它似乎没有提到这是如何工作的。

最佳答案

据我所知,它不会直接耗尽熵池。它只是返回一个低(呃)质量的随机数。它取决于 ISN seq 生成(定期刷新)使用的 secret 哈希、它自己的 per-cpu 状态和 pid/time/cycles。

它与 urandom 的主要相似之处在于它在熵较低时不会阻塞。

关于linux - 受熵影响的 ASLR 在 Linux 上可用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15271589/

相关文章:

buffer-overflow - 计算NOP雪橇中的地址

linux - 禁用内存地址的随机化

linux - Ubuntu 3G 调制解调器华为 E1550 上的 Wammu 配置

linux - 从 bash 启动 apachectl

javascript - 如何生成随机 SHA1 哈希以用作 node.js 中的 ID?

r - 计算内核双变量密度估计图下的体积

linux - Linux调度器的性能评估

c - 分配大量文件描述符

python - 条件互信息

linux - Linux ASLR 究竟如何随机化堆栈位置