Encryption

加密磁碟後,如何檢查磁碟內已知的純文字是否變成亂碼?

  • November 11, 2016

我使用 cryptsetup 加密了一個磁碟。我希望能夠看到加密磁碟之前的已知文本在加密後變得亂碼。

我該如何做這樣的比較?

這是最佳方案的範例:

在解密的磁碟中,假設我製作了一個文本文件,其中包含“測試字元串”一詞。我將能夠以某種方式在加密之前視覺化“測試字元串”,然後在加密之後,視覺化“測試字元串”變得亂碼。我想使用相同的方法來視覺化“測試字元串”和亂碼,這樣我就可以確定是“測試字元串”變成了亂碼。如果這意味著我必須找到十六進制的“測試字元串”,那就這樣吧。我只需要能夠看到有“測試字元串”,然後找不到“測試字元串”(而是有其他亂碼)。

知道我應該使用什麼樣的方法來探測磁碟以找到“測試字元串”嗎?

例如,考慮我工作的伺服器。硬碟有一個小/boot分區 ,/dev/sda1它必然沒有加密,還有一個大的加密分區 ,/dev/sda2它承載一個 LUKS 容器,當cryptsetup在啟動時輸入密碼後自動打開時,它顯示為/dev/mapper/Serverax. 在容器中有一個 LVM 物理卷,上面有一個 LVM 卷組;卷組包含邏輯卷RootHome和。Srv``Swap

$ lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                   8:0    0   20G  0 disk  
├─sda1                8:1    0  294M  0 part  /boot
└─sda2                8:2    0 19.7G  0 part  
 └─Serverax        252:0    0 19.7G  0 crypt 
   ├─Serverax-Root 252:1    0 10.7G  0 lvm   /
   ├─Serverax-Swap 252:2    0    1G  0 lvm   [SWAP]
   ├─Serverax-Srv  252:3    0    6G  0 lvm   /srv
   └─Serverax-Home 252:4    0    2G  0 lvm   /home

要查看磁碟上的原始數據,請直接從/dev/sda2. 在範例中,skip=$((2*1024))跳過 2 MiB LUKS 標頭,並落在 LVM 標頭中:

$ sudo dd if=/dev/sda2 bs=1K count=1 skip=$((2*1024)) 2>/dev/null | hd
00000000  33 b2 f7 1b 03 ce a6 3a  87 b4 03 98 7d a7 b1 cc  |3......:....}...|
00000010  1a c9 99 80 01 19 c0 db  f0 54 a7 4c 1c 2b 9c ea  |.........T.L.+..|
00000020  f3 84 b0 d8 0c 54 c0 fe  ec c0 06 a8 8c c0 6b 10  |.....T........k.|
...
00000200  d4 0b 67 3b ba d1 21 06  58 ce 84 b4 3b 3b e0 f2  |..g;..!.X...;;..|
00000210  4d eb 99 d3 15 63 81 f3  92 b7 ff c2 17 95 ed b3  |M....c..........|
00000220  92 51 ab dc 29 84 9b 6f  68 cc a9 fe 35 cd e0 08  |.Q..)..oh...5...|
00000230  1f d1 e0 52 34 46 13 90  38 c4 3d 18 30 1a 1d c8  |...R4F..8.=.0...|
00000240  1c 05 2f 17 0b ad 39 6f  56 9c 28 71 e3 f7 78 10  |../...9oV.(q..x.|
00000250  97 09 cb 49 50 f5 b1 06  a1 8a e0 4d 7a 0e 39 94  |...IP......Mz.9.|
00000260  15 2d 05 b5 94 75 c0 a2  d1 bf 78 3d ba 30 06 61  |.-...u....x=.0.a|
00000270  e6 82 8d 4a 60 90 81 e7  0a 34 5a f8 03 fc a6 89  |...J`....4Z.....|
00000280  12 11 19 b2 2b 44 9b 0a  07 c1 40 d9 4b df bd 54  |....+D....@.K..T|
00000290  0a 40 2b 4f 1f 55 f5 e2  fa 10 41 3b f9 58 5a 2f  |.@+O.U....A;.XZ/|
...

相同的數據,解密後,可以從/dev/mapper/Serverax; 請注意,這次沒有skip=

$ sudo dd if=/dev/mapper/Serverax bs=1K count=1 2>/dev/null | hd
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200  4c 41 42 45 4c 4f 4e 45  01 00 00 00 00 00 00 00  |LABELONE........|
00000210  be af fb 35 20 00 00 00  4c 56 4d 32 20 30 30 31  |...5 ...LVM2 001|
00000220  47 41 70 58 43 62 74 55  65 6b 33 41 6b 53 54 73  |GApXCbtUek3AkSTs|
00000230  4f 6b 6a 49 49 72 6e 53  66 54 41 77 6e 31 53 6e  |OkjIIrnSfTAwn1Sn|
00000240  00 00 60 ed 04 00 00 00  00 00 20 00 00 00 00 00  |..`....... .....|
00000250  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000260  00 00 00 00 00 00 00 00  00 10 00 00 00 00 00 00  |................|
00000270  00 f0 1f 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000280  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
00000290  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400

引用自:https://unix.stackexchange.com/questions/322513