如何驗證隨機性是否寫入設備以及究竟寫入了什麼?

如何驗證隨機性是否寫入設備以及究竟寫入了什麼?

我正在準備一個帶有碎片的設備,以便稍後使用 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並將您的問題標記為與統計相關。換句話說,讀取資料的方法是技術問題,而對其進行統計分析的方法則不是。

相關內容