Est-il possible de crypter un disque dur avec un fichier clé au lieu d'un mot de passe?
14
Étude du chiffrement du disque dur. la solution go to semble être dm-crypt avec LUKS utilisant un mot de passe. Je travaille avec plusieurs disques durs indépendants montés dans un pool de disques pour la lecture. Dans ce cas, je dois taper un mot de passe plusieurs fois.
Existe-t-il un moyen pour moi de crypter les disques durs avec un fichier clé, peut-être de le mettre sur une clé USB et de le brancher si nécessaire ??
L'une des meilleures façons de le faire est d'utiliser une carte à puce avec une clé de chiffrement pour déverrouiller les clés de vos appareils bloc cryptés. Vous n'aurez qu'à saisir la phrase secrète (appelée "PIN" par les outils mais c'est vraiment une phrase secrète) une fois, après quoi elle sera mise en cache. Cela a l'avantage supplémentaire de protéger les données chiffrées avec quelque chose que vous avez (la carte à puce elle-même, dont la clé privée ne peut pas être extraite) et quelque chose que vous connaissez (la phrase secrète).
Dans Debian et ses dérivés, les outils initramfs remarqueront le script de clé et copieront automatiquement tous les outils et démons nécessaires pour accéder à la carte à puce dans les initramfs.
Informations sur la mise en place de la carte à puce et la création (et chiffrer) les clés se trouve dans /usr/share/doc/cryptsetup/README.opensc.gz.
Notes d'implémentation : Cette fonctionnalité a des bords rugueux et ne fonctionne apparemment pas prête à l'emploi, donc YMMV. La dernière fois que j'ai réussi, j'ai dû ajouter les hacks suivants:
Désactivez-le systemdcar il essaie désastreusement de prendre en charge l'ensemble du processus de configuration des appareils cryptés, /etc/crypttabmais il ne sait rien de keyscriptce qui conduit à un gros échec. Heureusement, dans Debian, vous pouvez toujours vous désinscrire systemd.
Installez ce script fixateur supérieur /etc/initramfs-tools/hooks/yubipincar la fonction intégrée n'a pas installé assez de support pour que le Yubikey soit utilisable à partir des initramfs. Vous devrez peut-être régler cela.
#!/bin/sh
PREREQ=cryptroot
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
# /scripts/local-top/cryptopensc calls pcscd with the wrong path
ln -s ../usr/sbin/pcscd ${DESTDIR}/sbin/pcscd
mkdir -p "${DESTDIR}/usr/lib/x86_64-linux-gnu"
# opensc-tool wants this dynamically, copy_exec doesn't know that
cp -pL /usr/lib/x86_64-linux-gnu/libpcsclite.so.1 "${DESTDIR}/usr/lib/x86_64-linux-gnu/libpcsclite.so.1"
mkdir -p "${DESTDIR}/lib/x86_64-linux-gnu"
# without this, pcscd aborts with a pthread_cancel error
cp -pL /lib/x86_64-linux-gnu/libgcc_s.so.1 "${DESTDIR}/lib/x86_64-linux-gnu/libgcc_s.so.1"
# this gets copied as a dangling symlink, fix it
rm "${DESTDIR}/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist"
cp -pL /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist "${DESTDIR}/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist"
# pcscd needs this to open the reader once it has found it
cp -pL /lib/x86_64-linux-gnu/libusb-1.0.so.0 "${DESTDIR}/lib/x86_64-linux-gnu/libusb-1.0.so.0"
Installez un autre script /etc/initramfs-tools/scripts/local-bottom/killpcscdpour nettoyer:
#!/bin/sh
set -e
PREREQ=cryptopensc
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
# because cryptopensc does not do it properly
killall pcscd
Très belle incitation à utiliser des cartes à puce et des compliments pour y parvenir, mais je dirais qu'une méthode spécifique à la distribution qui implique de modifier le système init et les scripts de piratage tiers insérés dans les répertoires système avec des chemins illisibles ne peut pas être considérée comme une réponse à la façon dont pour utiliser la question des fichiers de clé. Souligne l'incroyable désordre de ces logiciels.
dbanet
@dbanet, je suis entièrement d'accord et j'espère que quelqu'un d'autre viendra et ajoutera une réponse décrivant comment faire cela d'une autre manière plus simple. Ensuite, l'OP peut choisir son favori.
Celada
dbanet et @Celada, exactement mes pensées. C'est beaucoup trop compliqué et même si j'arrive à le faire, son propriétaire, ce qui signifie qu'un autre fournisseur aurait une autre méthode. :(
Nithin
3
Il est possible de simplement stocker le mot de passe luks dans un fichier.
J'utilise ceci sur mon ordinateur personnel; Le système de fichiers racine vit sur un volume luks régulier que je déverrouille avec ma phrase secrète au démarrage. Un lecteur supplémentaire contient un volume luks avec un mot de passe généré.
Ce volume supplémentaire est déverrouillé par un fichier de mots de passe qui réside sur le système de fichiers racine chiffré. Il est automatiquement déverrouillé lors du démarrage si le système de fichiers racine est déverrouillé.
Le troisième champ est le fichier de clés, nonepour le système de fichiers racine, mais /etc/crypt-data.keypour le système de fichiers de données. /etc/crypt-data.keycontient le mot de passe luks:
Tm90IHJlYWxseSBteSBwYXNzd29yZC4K
Remarque, une nouvelle ligne ou tout autre espace blanc sera pris comme partie du mot de passe! Prenez soin de générer ce fichier sans retour à la ligne. Assurez-vous également qu'il dispose d'autorisations strictes:
Il est possible de simplement stocker le mot de passe luks dans un fichier.
J'utilise ceci sur mon ordinateur personnel; Le système de fichiers racine vit sur un volume luks régulier que je déverrouille avec ma phrase secrète au démarrage. Un lecteur supplémentaire contient un volume luks avec un mot de passe généré.
Ce volume supplémentaire est déverrouillé par un fichier de mots de passe qui réside sur le système de fichiers racine chiffré. Il est automatiquement déverrouillé lors du démarrage si le système de fichiers racine est déverrouillé.
Mon
/etc/crypttab
ressemble à ceci:Le troisième champ est le fichier de clés,
none
pour le système de fichiers racine, mais/etc/crypt-data.key
pour le système de fichiers de données./etc/crypt-data.key
contient le mot de passe luks:Remarque, une nouvelle ligne ou tout autre espace blanc sera pris comme partie du mot de passe! Prenez soin de générer ce fichier sans retour à la ligne. Assurez-vous également qu'il dispose d'autorisations strictes:
Vous devriez pouvoir dupliquer cette approche pour plusieurs volumes (avec des mots de passe distincts ou un mot de passe partagé, votre choix).
la source
/etc/crypttab
. J'ai ajouté un petit texte supplémentaire pour rendre cela plus clair.