web-dev-qa-db-fra.com

Comment fonctionne LUKS?

J'étais juste curieux de savoir si quelqu'un avait une vue d'ensemble de haut niveau sur le fonctionnement d'un système comme LUKS pour le cryptage intégral du disque, alias. comment il stocke les clés et comment ces clés sont vérifiées, et si les données sont déchiffrées par un wrapper pour toutes les E/S standard. J'ai trouvé ici une brève description de la manière dont LUKS est associé au processus init Cryptage complet du système avec LUKS sur un serveur sans interface utilisateur - déverrouillage avec Dropbear et busybox. Comment?

4
fritz

Luks est une couche de cryptage sur un périphérique en mode bloc. Elle fonctionne donc sur un périphérique en mode bloc particulier et expose un nouveau périphérique en mode bloc qui est la version décryptée. L'accès à cet appareil déclenchera un cryptage/décryptage transparent pendant son utilisation.

Il est généralement utilisé sur une partition de disque ou sur un volume physique LVM qui autoriserait plusieurs partitions dans le même conteneur chiffré.

LUKs stocke un tas de métadonnées au début de l'appareil. Il a des emplacements pour plusieurs phrases secrètes. Chaque emplacement a un sel de 256 bits qui est affiché en clair avec un message crypté. Lors de la saisie d'une phrase secrète, LUKS la combine avec chacun des sels, hachage le résultat et essaie d'utiliser le résultat en tant que clé pour déchiffrer un message chiffré dans chaque emplacement. Ce message comprend du texte connu et une copie de la clé principale. Si cela fonctionne pour l'un des logements, car le texte connu correspond, la clé principale est maintenant connue et vous pouvez déchiffrer le conteneur entier. La clé principale doit rester non chiffrée dans RAM pendant l'utilisation du conteneur.

Connaître la clé principale vous permet d'accéder à toutes les données du conteneur, mais ne révèle pas les mots de passe dans les emplacements de mot de passe. Un utilisateur ne peut donc pas voir les mots de passe des autres utilisateurs.

Le système n'est pas conçu pour que les utilisateurs puissent voir la clé principale en cours d'utilisation, et cette clé ne peut pas être modifiée sans rechiffrement. L'utilisation d'emplacements de mot de passe, cependant, signifie que les mots de passe peuvent être modifiés sans rechiffrer l'ensemble du conteneur, et permet l'utilisation de plusieurs mots de passe.

8
thomasrutter