如何验证随机性是否写入设备以及具体写入了什么?

如何验证随机性是否写入设备以及具体写入了什么?

我正在准备一个带有 shred 的设备,以便稍后使用 dm-crypt/cryptsetup/luks 加密。

如何在使用 shred 或 openssl/dd 和 /dev/urandom 之前和之后检查设备以确保执行了什么操作?有可能吗?

答案1

在 POSIX 系统上,磁盘设备是一个文件,因此可以通过任何支持读取文件的工具读取它 - 无论是catdd还是 LibreOffice Writer(好吧,只是开个玩笑)。

因此,基本上你需要解决两个问题:

  • 如何解释将要阅读的内容。
  • 确定您观察到的任何情况是否意味着您的测试通过或失败。

由于磁盘驱动器通常包含非人类可读的数据,因此用肉眼查看它的最简单方法是使用类似od(应该立即可用)或xxd(更方便一点,但在最小系统上可能不可用)的东西。因此,类似

# od </dev/sda3 | less

应该可以查看磁盘驱动器上有什么。

第二个问题比较棘手,因为它更偏向哲学而非技术(@sebix 试图指出这一点)。问题是不清楚你真正想表达什么。如果你想以某种方式措施openssl你的和咒语之后的数据的随机性/dev/urandom,你必须1)想出一种方法来定义一个方法测量随机性;2)执行它。

我怀疑你是不是真的有这个意思,所以我会大胆猜测:你可能只是想看看磁盘驱动器上的数据是否看起来很随机。

如果是,那么最简单的方法是首先dd if=/dev/zero of=/dev/sda3 ...用零字节填充驱动器,然后使用“随机咒语”重写它,然后使用od或类似工具来验证驱动器上确实存在随机数据。

如果你真的想措施数据的随机性,那么这里就不适合提问:尝试在 上提问,math.stackexchange.com并将问题标记为与统计相关。换句话说,读取数据的方法是一个技术问题,而对数据进行统计分析的方法则不是。

相关内容