Depois de criptografar um disco, como você verifica se um texto simples conhecido dentro do disco se tornou algo sem sentido? [fechadas]

0

Eu criptografei um disco usando o cryptsetup. Eu quero ser capaz de visualizar que um texto conhecido antes de criptografar o disco se tornou sem sentido após a criptografia.

Como faço essa comparação?

Veja um exemplo para o melhor cenário:

Em um disco descriptografado, suponho que eu crie um arquivo de texto com a palavra "test string" dentro dele. De alguma forma, serei capaz de visualizar "cadeia de teste" antes da criptografia e, depois da criptografia, visualizar que a "cadeia de teste" se tornou sem sentido. Eu gostaria de usar os mesmos métodos para visualizar "string de teste" e o jargão para que eu possa ter certeza de que é "string de teste" que se tornou sem sentido. Se isso significa que eu tenho que encontrar "string de teste" em hexadecimal, então que seja. Eu só preciso ser capaz de ver que há "string de teste" e, em seguida, "string de teste" está longe de ser encontrado (e, em vez disso, há outras bobagens).

Alguma ideia de que tipo de métodos devo usar para testar o disco para encontrar "string de teste"?

    
por CuriousKimchi 11.11.2016 / 07:23

2 respostas

4

Por exemplo, considere o servidor em que trabalho. O disco rígido tem uma pequena partição /boot , /dev/sda1 , que não é necessariamente criptografada, e uma partição criptografada grande, /dev/sda2 , que hospeda um contêiner LUKS, que, quando aberto pelo cryptsetup automaticamente na inicialização após inserir a senha, aparece como /dev/mapper/Serverax . No contêiner, há um volume físico LVM, no qual vive um grupo de volumes LVM; o grupo de volumes contém os volumes lógicos Root , Home , Srv e 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

Para ver os dados brutos no disco, leia alguns blocos diretamente de /dev/sda2 . No exemplo, o skip=$((2*1024)) ignora o cabeçalho de 2 MiB LUKS e cai no cabeçalho da 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  |[email protected]|
00000290  0a 40 2b 4f 1f 55 f5 e2  fa 10 41 3b f9 58 5a 2f  |.@+O.U....A;.XZ/|
...

Os mesmos dados, descriptografados, podem ser lidos em /dev/mapper/Serverax ; note que desta vez não há 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
    
por 11.11.2016 / 09:44
0

Para ver os dados criptografados, apenas leia do dispositivo bruto, no Linux que normalmente é /dev/sdX (para alguns X ).

Um exemplo da minha caixa:

grove@mary> ll /dev/mapper/luks_crypto_*
lrwxrwxrwx 1 root root 7 nov  7 08:32 /dev/mapper/luks_crypto_58cf05c2-a296-46ff-80f4-70476ee06ae0 -> ../dm-3
lrwxrwxrwx 1 root root 7 nov  7 08:32 /dev/mapper/luks_crypto_ff052855-76f5-48cd-bf11-e4af60126484 -> ../dm-2
grove@mary> ll /dev/disk/by-uuid/ff052855-76f5-48cd-bf11-e4af60126484
lrwxrwxrwx 1 root root 9 nov  7 08:32 /dev/disk/by-uuid/ff052855-76f5-48cd-bf11-e4af60126484 -> ../../sdg
grove@mary> sudo file -s /dev/dm-2
/dev/dm-2: Linux rev 1.0 ext4 filesystem data, UUID=e33a9842-a597-4311-a37b-10adfca1eabd (needs journal recovery) (extents) (large files) (huge files)
grove@mary> sudo file -s /dev/sdg
/dev/sdg: LUKS encrypted file, ver 1 [aes, cbc-essiv:sha256, sha1] UUID: ff052855-76f5-48cd-bf11-e4af60126484
    
por 11.11.2016 / 09:03