Il permet de chiffrer et déchiffrer à la volée les informations destinées à être enregistrées/lues sur le disque dur.
Je propose une petite manipulation pour faire du cryptsetup sans cryptsetup. Il ne s'agit pas de cracking, puisque la clé doit être connue, il s'agit seulement d'expliquer un peu comment cela fonctionne.
J'utilise la version sans LUKS pour plus de facilité, mais la version avec LUKS fonctionne de la même manière, aux offsets près.
1/ Déchiffrement sans cryptsetup:
On crée un mapping, et on copie des données dedans:
kevin@slack:~$ dd if=/dev/zero of=img bs=1024k count=10
10+0 enregistrements lus
10+0 enregistrements écrits
10485760 octets (10 MB) copiés, 0,0307038 s, 342 MB/s
kevin@slack:~$ sudo losetup /dev/loop0 img
kevin@slack:~$ sudo cryptsetup create -c aes-cbc-plain -s 128 x /dev/loop0
Entrez la phrase de passe : ( abcd comme pass )
kevin@slack:~$ sudo dmsetup table --showkeys x
0 20480 crypt aes-cbc-plain 2e7e536fd487deaa943fda5522d917bd 0 7:0 0
kevin@slack:~$ printf 'abcd' | openssl dgst -ripemd160
2e7e536fd487deaa943fda5522d917bdb9011b7a
kevin@slack:~$
On met quelques données dans ce container. Je les écrit en dur, sans mettre de filesystem, puis on démonte le maping:
kevin:~# python -c "print 'A'*512 + 'B'*512 + 'Success' " > /dev/mapper/x
kevin@slack:~$ sudo cryptsetup remove x
Et le déchiffrement sans cryptsetup est aisé:
kevin@slack:~$ dd if=img of=part1 bs=512 count=1
kevin@slack:~$ dd if=img of=part2 bs=512 count=1 skip=1
kevin@slack:~$ dd if=img of=part3 bs=512 count=1 skip=2
kevin@slack:~$ openssl aes-128-cbc -nosalt -nopad -d -in part1 -K 2e7e536fd487deaa943fda5522d917bdb9011b7a -out clear1 -iv 0 -p
key=2E7E536FD487DEAA943FDA5522D917BD
iv =00000000000000000000000000000000
kevin@slack:~$ openssl aes-128-cbc -nosalt -nopad -d -in part2 -K 2e7e536fd487deaa943fda5522d917bdb9011b7a -out clear2 -iv 01 -p
key=2E7E536FD487DEAA943FDA5522D917BD
iv =01000000000000000000000000000000
kevin@slack:~$ openssl aes-128-cbc -nosalt -nopad -d -in part3 -K 2e7e536fd487deaa943fda5522d917bdb9011b7a -out clear3 -iv 02 -p
key=2E7E536FD487DEAA943FDA5522D917BD
iv =02000000000000000000000000000000
kevin@slack:~$ hexdump -C clear3
00000000 53 75 63 63 65 73 73 0a ad 5c 0c 69 bc 82 c5 9d |Success..\.i....|
Attention aux IV qui croissent en relation avec le numéro de secteur.
2/ Création de volumes cryptsetup sans cryptsetup:
Pour créer un device depuis openssl, c'est le même principe:
kevin@slack:~$ python -c 'print ("A"*511)' > e1c
kevin@slack:~$ python -c 'print ("B"*511)' > e2c
kevin@slack:~$ python -c 'print ("C"*511)' > e3c
kevin@slack:~$ openssl aes-128-cbc -nosalt -nopad -e -in e1c -K 2e7e536fd487deaa943fda5522d917bdb9011b7a -out e1 -iv 0 -p
key=2E7E536FD487DEAA943FDA5522D917BD
iv =00000000000000000000000000000000
kevin@slack:~$ openssl aes-128-cbc -nosalt -nopad -e -in e2c -K 2e7e536fd487deaa943fda5522d917bdb9011b7a -out e2 -iv 01 -p
key=2E7E536FD487DEAA943FDA5522D917BD
iv =01000000000000000000000000000000
kevin@slack:~$ openssl aes-128-cbc -nosalt -nopad -e -in e3c -K 2e7e536fd487deaa943fda5522d917bdb9011b7a -out e3 -iv 02 -p
key=2E7E536FD487DEAA943FDA5522D917BD
iv =02000000000000000000000000000000
kevin@slack:~$ cat e1 e2 e3 > e-disk
kevin@slack:~$ sudo losetup /dev/loop1 e-disk
kevin@slack:~$ sudo cryptsetup create -c aes-cbc-plain -s 128 x /dev/loop1
Entrez la phrase de passe : ( "abcd" comme pass )
kevin@slack:~$ sudo hexdump -C /dev/mapper/x
00000000 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 |AAAAAAAAAAAAAAAA|
*
000001f0 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 0a |AAAAAAAAAAAAAAA.|
00000200 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 |BBBBBBBBBBBBBBBB|
*
000003f0 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 0a |BBBBBBBBBBBBBBB.|
00000400 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 |CCCCCCCCCCCCCCCC|
*
000005f0 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 0a |CCCCCCCCCCCCCCC.|
00000600
Enjoy.
Aucun commentaire:
Enregistrer un commentaire