web-dev-qa-db-fra.com

Comment puis-je utiliser le cryptage à clé publique pour luks?

J'ai couru luks avec les commandes suivantes:

$ Sudo dd if=/dev/urandom of=/keyfile bs=1024 count=4
$ Sudo cryptsetup luksFormat /dev/XXX keyfile
$ Sudo cryptsetup luksDump /dev/XXX

Et cela me montre comme message suivant:

Version:        1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Hash spec:      sha1
Payload offset: 4096
MK bits:        256
MK digest:      f3 79 af 60 e6 34 5c 6e 27 6a e4 fe b6 f0 b2 95 8a 85 5c 31 
MK salt:        14 33 6b 95 f8 3d a9 e2 84 67 85 a1 18 be 70 58 
                af 10 10 28 c5 5b d1 1a 31 8e 8f e1 5a 93 51 12 
MK iterations:  45250
UUID:           776d4a78-3487-42df-8d3c-38708fdea60d

Key Slot 0: ENABLED
    Iterations:             181146
    Salt:                   da cf b7 36 fc 98 7c 5c 73 68 ca 44 f4 00 55 52 
                            47 46 68 50 bf aa 2e bb ac 47 83 0f 76 05 a6 05 
    Key material offset:    8
    AF stripes:             4000

Selon la sortie, Le nom de chiffrement est aes et ce n'est pas chiffrement à clé publique . Est-il utilisé pour chiffrer uniquement le clé principale, ou est-ce qu'il crypte conten aussi? S'il ne fait que chiffrer le clé principale, comment conten est-il crypté?

Je suis sûr que aes aussi très sécurisé. Mais je pense que le chiffrement à clé publique est plus sécurisé que d’autres méthodes telles que aes. Ainsi, j'ai essayé de savoir comment utiliser gpg ou toute autre méthode de cryptage pour luks à la page de manuel de cryptsetup , mais je n'ai pas trouvé de solution.

Comment utiliser cryptage par clé publique pour luksFormat ?

3
xiaodongjie

Le chiffrement à clé publique n’est vraiment utile que si vous voulez que d’autres personnes chiffrent vos messages et que vous ne vouliez pas leur donner secrètement votre clé de chiffrement secrète. Vous postez donc votre clé publique pour que le monde entier puisse voir et chiffrer des messages que vous seul pouvez lire.

Cela ne vous servirait à rien de chiffrer personnellement vos fichiers sur votre propre ordinateur. On peut supposer que le cryptage à clé publique est moins sécurisé que le cryptage conventionnel (comme AES, Blowfish, Camellia ...) car vous distribuez une partie des informations de cryptage (le partie publique). Bien qu'en pratique, ils soient effectivement "incassables" dans toute vie humaine.

Et vous ne savez peut-être pas comment fonctionne le programme de chiffrement à clé publique PGP/GPG, il classifie les messages, puis chiffre la clé conventionnelle à l'aide de cryptage à clé publique .

Voici une citation d'un ancien (mais toujours valide) documentation PGPi l'expliquer, et un peu sur pourquoi quelqu'un peut penser qu'une méthode est plus sûre que l'autre, si seulement ils comparent les tailles de clé:

PGP combine certaines des meilleures fonctionnalités de à la fois la cryptographie à clé conventionnelle et la cryptographie à clé publique . PGP est un cryptosystème hybride. Lorsqu'un utilisateur chiffre le texte en clair avec PGP, PGP compresse d'abord le texte en clair. La compression des données économise le temps de transmission du modem et l’espace disque et, plus important encore, renforce la sécurité cryptographique. La plupart des techniques de cryptanalyse exploitent les modèles trouvés dans le texte en clair pour déchiffrer le chiffrement. La compression réduit ces motifs dans le texte en clair, augmentant ainsi considérablement la résistance à l'analyse cryptée. (Les fichiers trop courts pour être compressés ou mal compressés ne le sont pas.)

PGP crée ensuite une clé de session, qui est une clé secrète unique. Cette touche est un nombre aléatoire généré à partir des mouvements aléatoires de votre souris et des frappes que vous tapez. Cette clé de session fonctionne avec un algorithme de cryptage classique très sûr pour chiffrer le texte en clair; le résultat est un cryptogramme. Une fois les données chiffrées, la clé de session est ensuite chiffrée sur la clé publique du destinataire. Cette clé de session cryptée par clé publique est transmise au destinataire avec le texte chiffré.

...

La combinaison des deux méthodes de cryptage allie la commodité du cryptage à clé publique à la rapidité du cryptage conventionnel. Le cryptage conventionnel est environ 1 000 fois plus rapide que le cryptage à clé publique . Le chiffrement à clé publique fournit à son tour une solution aux problèmes de distribution de clés et de transmission de données. Utilisés ensemble, les performances et la distribution des clés sont améliorées sans sacrifier la sécurité.

...

Cependant, la taille de la clé publique et la taille de la clé secrète de la cryptographie conventionnelle sont totalement indépendantes. Une clé conventionnelle à 80 bits a la même force qu'une clé publique à 1024 bits. Une clé conventionnelle à 128 bits équivaut à une clé publique à 3000 bits. Encore une fois, plus la clé est grosse, plus elle est sécurisée, mais les algorithmes utilisés pour chaque type de cryptographie sont très différents et la comparaison ressemble donc à celle des pommes aux oranges.


Si vous souhaitez utiliser une méthode impliquant GPG pour utiliser votre clé publique pour chiffrer la phrase secrète ou le fichier de clé dans votre conteneur LUKS, vous pouvez le faire si vous le souhaitez. Mais si votre clé privée GPG était compromise ou perdue, votre conteneur LUKS le serait également.

Et vous pouvez choisir un chiffrement différent avec cryptsetup, il utiliserait le chiffrement pour chiffrer toutes les données. Voir man cryptsetup pour des informations telles que:

   --cipher, -c <cipher-spec>
          Set the cipher specification string.

Et sous Ubuntu par défaut, au moins ces chiffres devraient être supportés:

loop-AES: aes, clé 256 bits
plain: aes-cbc-essiv: sha256, clé: 256 bits
LUKS1: aes-xts-plain64, clé: 256 bits

3
Xen2050