是否可以通过超级用户访问权限来编辑我的/dev/random
或/dev/urandom
以某种方式使操作系统生成的随机数可预测?
我想知道如果我将一个可执行文件(例如游戏)发送给依赖系统 RNG 的人,他们是否可以操纵他们自己的程序/dev/random
来破解我的程序,以便他们可以预测程序的随机输出?
答案1
/dev/random
工作方式/dev/urandom
是调用内核代码来计算下一个字节。
您可以用自己的代码替换此代码,重新编译内核,重新启动,并得到可预测的顺序。使用超级用户访问权限,您还可以实时修补现有内核以达到相同的效果(前提是您清楚系统上使用哪个内核)。
是的,这是可以做到的,但是需要付出相当大的努力。
了解如果我将一个可执行文件(例如游戏)发送给依赖系统 RNG 的人,他们是否可以操纵自己的 /dev/random 来破解我的程序,以便他们可以预测程序的随机输出?
是的,他们可以。现在 XY 问题是你想用你的程序做什么,以便其他人可以利用它。
一般情况下,请记住,其他人可以对您的程序的汇编代码进行逆向工程,并进行任何他们想要的更改。与其摆弄内核,不如简单地查看程序中您从 读取的位置/dev/random
,并将这些读取更改为始终返回零(或类似值)。
因此,无论您想用什么方法向他人隐瞒秘密,都不太可能奏效。但我们不知道,除非您告诉我们您的 Y 的 X(“您想实现什么目标?”)。