Comment puis-je get un HASH de la key principale LUKS?

De: https://code.google.com/p/cryptsetup/wiki/FrequentlyAskedQuestions

6.15 Puis-je cloner un conteneur LUKS?

Vous pouvez, mais cela brise la security, car le conteneur cloné a le même en-tête et donc la même key principale. Vous ne pouvez pas modifier la key principale sur un conteneur LUKS, même si vous modifiez la phrase secrète, la key principale rest la même. Cela signifie que celui qui a access à l'un des clones peut les déchiffrer tous, en contournant complètement les phrases secrètes.

La bonne façon de le faire est d'abord luksFormer le conteneur cible, puis de cloner le contenu du conteneur source, avec les deux conteneurs mappés, c'est-à-dire décryptés. Vous pouvez cloner le contenu décrypté d'un conteneur LUKS en mode binary, bien que vous puissiez rencontrer des problèmes secondaires avec des GUID dans les filesystems, les tables de partition, les composants RAID et autres. Ce sont juste les problèmes normaux causés par le clonage binary.

Notez que si vous avez besoin d'expédier (par exemple) des conteneurs LUKS clonés avec une phrase de passe par défaut, c'est bien aussi longtime que chaque conteneur a été créé individuellement (et donc a sa propre key principale). Dans ce cas, la modification de la phrase de passe par défaut la sécurisera à nouveau.

J'ai deux ordinateurs portables avec un access root installé avec LUKS. Je ne sais pas si à l'origine ils sont CLONED ou pas.

Ma question : Comment puis-je créer un HASH (ex .: sha512) à partir des keys maîtresses LUKS, afin que je puisse comparer les deux, que si elles sont identiques ou non?

Vous pouvez utiliser

cryptsetup luksDump --dump-master-key /dev/whatever 

afin d'get la key principale. Bien sûr, vous pouvez hacher la sortie pour la sécuriser pour le transport:

 cryptsetup ... | tail -2 | sed 's/^\(.*:\)\? *//' | sha1sum 

Merci pour les réponses, j'ai créé une command sed pour cela:

 [root@notebook ~] test `whoami`=root && k=`cryptsetup luksDump -q --dump-master-key $(blkid | awk '/crypto_LUKS/ {print $1}' | cut -d: -f1 | head -1)` && echo "$k" | sed 's/^MK dump:/Fgkmtusjs\nMK dump:/g' | sed '1,/^Fgkmtusjs/d' | sed 's/.*\t//g' | sha512sum | sed "s/\-/`hostname`/g" Enter LUKS passphrase: d78abb0542736865f94704521609c230dac03a2f369d043ac212d6933b91410e06399e37f9c5cc88436a31737330c1c8eccb2c2f9f374d62f716432a32d50fac notebook.localdomain [root@notebook ~] 

testé sur: Scientific Linux 6.4; Ubuntu 12.04

Vous pouvez vider la key principale en utilisant l' --dump-master-key à luksDump :

cryptsetup --dump-master-key luksDump /dev/sda3

Exemple:

 root@heredia:~# cryptsetup --dump-master-key luksDump /dev/sda3 WARNING! ======== Header dump with volume key is sensitive information which allows access to encrypted partition without passphrase. This dump should be always stored encrypted on safe place. Are you sure? (Type uppercase yes): YES Enter passphrase: ******** LUKS header information for /dev/sda3 Cipher name: aes Cipher mode: xts-plain64 Payload offset: 4096 UUID: 5f930991-3f91-47a4-b7ba-a40a3059f6bb MK bits: 512 MK dump: ab cd ef 00 01 02 03 04 05 .... 

Notez que cela ne vide pas un hachage (comme vous l'avez demandé), mais la key principale réelle …