Openssl
如何驗證隨機性是否寫入設備以及究竟寫入了什麼?
我正在準備一個帶有 shred 的設備,以便稍後使用 dm-crypt/cryptsetup/luks 加密。
我如何在使用 shred 或例如 openssl/dd 和 /dev/urandom 之前和之後檢查設備,以確保完成了什麼?有沒有可能?
在 POSIX 系統上,磁碟設備是一個文件,因此任何支持從文件讀取的工具都可以從它讀取它
cat
,dd
甚至是 LibreOffice Writer(好吧,開個玩笑)。所以基本上你有兩個問題需要解決:
- 如何解釋將要閱讀的內容。
- 確定您將觀察到的任何內容是否意味著您的測試已通過或未通過。
由於您的磁碟驅動器通常包含非人類可讀的數據,因此通過肉眼查看它的最簡單方法是使用類似
od
(應該立即可用)或xxd
(更方便但在最小系統上可能不可用)之類的東西. 所以,有點像# od </dev/sda3 | less
應該可以查看磁碟驅動器上的內容。
第二個問題更棘手,因為它比技術更哲學(@sebix 試圖指出的)。問題是不清楚你的真正意思是什麼。如果你想以某種方式測量你
openssl
和/dev/urandom
encantation 之後數據的隨機性,你必須 1) 想出一種方法來定義一種方法來測量隨機性;2)執行它。我懷疑您是否真的是這樣的意思,並且會做出一個瘋狂的猜測:您可能只是想看看磁碟驅動器上的數據是否只是看起來隨機的。
如果是,那麼最簡單的方法是首先
dd if=/dev/zero of=/dev/sda3 ...
用零字節填充驅動器,然後使用您的“隨機咒語”重新寫入它,然後使用od
或類似的工具來驗證驅動器上是否真的存在隨機數據。相反,如果您確實打算測量數據的隨機性,那麼這只是一個不合適的地方:嘗試詢問
math.stackexchange.com
並將您的問題標記為與統計數據相關。換句話說,讀取數據的方法是一個技術問題,而對其進行統計分析的方法則不是。