Essayer de comprendre le cryptage LUKS

8

J'ai décidé de crypter ma partition racine avec LUKS + LVM.

Ma configuration ThinkPad:

  • Samsung 830 128GB SSD
  • Disque dur de 750 Go
  • Core 2 Duo 2,5 GHz P9500
  • 8 Go de RAM

Mais plus je lis, moins je comprends les deux sujets suivants:

1a. Le chiffre

J'allais utiliser SHA1 au lieu de 2/512 (comme certains le suggèrent), à cause de cette citation de la cryptsetupFAQ:

5.20 LUKS est cassé! Il utilise SHA-1!

Non, ça ne l'est pas. SHA-1 est (académiquement) rompu pour trouver des collisions, mais pas pour l'utiliser dans une fonction de dérivation de clé. Et cette vulnérabilité de collision est réservée à un usage non itéré. Et vous avez besoin de la valeur de hachage in extenso.

Cela signifie essentiellement que si vous avez déjà une clé d'emplacement et que vous avez défini le nombre d'itérations PBKDF2 sur 1 (il est> 10'000 normalement), vous pouvez (peut-être) dériver une phrase de passe différente qui vous donne le même emplacement- clé. Mais si vous avez la clé, vous pouvez déjà déverrouiller la clé et obtenir la clé principale, tout casser. Donc, fondamentalement, cette vulnérabilité SHA-1 vous permet d'ouvrir un conteneur LUKS avec un effort élevé lorsque vous l'avez déjà ouvert.

Le vrai problème ici est que les gens ne comprennent pas la crypto et prétendent que les choses sont cassées simplement parce qu'un mécanisme est utilisé qui a été cassé pour une utilisation différente spécifique. La façon dont le mécanisme est utilisé est très importante. Un hachage qui est cassé pour une utilisation peut être complètement sécurisé pour d'autres utilisations et le voici.

Ce que je lis comme "il n'y a aucun intérêt à utiliser autre chose que SHA-1". Mais alors certaines personnes me disent que ce n'est pas exactement comme ça. Donc je ne sais plus quoi penser.

1b.

De plus, je n'ai pu trouver aucune information indiquant si le chiffrement a une influence sur les performances de lecture / écriture / recherche du disque une fois le disque déverrouillé et le système connecté.

La complexité du chiffrement n'affecte-t-elle donc que les "performances" à l'étape de la saisie du mot de passe, ou également lors d'une utilisation normale du système?

2. L'algorithme

Je lis à ce sujet depuis quelques jours, mais plus je lis, plus je suis confus. Tout ce que j'ai lu dit que l'AES est le plus rapide et que Serpent est le plus lent. Mais pas selon mon portable:

$ cryptsetup benchmark
Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       344926 iterations per second
PBKDF2-sha256     198593 iterations per second
PBKDF2-sha512     129007 iterations per second
PBKDF2-ripemd160  271933 iterations per second
PBKDF2-whirlpool  134295 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   149.8 MiB/s   147.9 MiB/s
 serpent-cbc   128b    51.0 MiB/s   196.4 MiB/s
 twofish-cbc   128b   127.6 MiB/s   152.5 MiB/s
     aes-cbc   256b   114.3 MiB/s   113.8 MiB/s
 serpent-cbc   256b    51.2 MiB/s   198.9 MiB/s
 twofish-cbc   256b   129.8 MiB/s   167.5 MiB/s
     aes-xts   256b   153.3 MiB/s   150.6 MiB/s
 serpent-xts   256b   176.4 MiB/s   184.1 MiB/s
 twofish-xts   256b   160.8 MiB/s   159.8 MiB/s
     aes-xts   512b   115.4 MiB/s   112.1 MiB/s
 serpent-xts   512b   178.6 MiB/s   184.2 MiB/s
 twofish-xts   512b   160.7 MiB/s   158.9 MiB/s

Il semble donc que Serpent n'est pas seulement le plus rapide, mais en plus c'est le plus rapide avec la clé la plus complexe.

Cela ne devrait-il pas être l'inverse? Suis-je en train de mal lire, ou quelque chose?

lockheed
la source
Alors pourquoi ne pas utiliser SHA512 pour plus de sécurité s'il hache quand même en 1 seconde en temps réel.
user284148

Réponses:

5

1a - cela n'a pas vraiment d'importance. quel que soit le hachage que vous utilisez pour la fonction de dérivation de clé, LUKS s'assure qu'il sera coûteux en calcul. Il le bouclera simplement jusqu'à ce qu'une seconde en temps réel se soit écoulée.

1b - la méthode de dérivation des clés n'a aucune influence sur les performances. le chiffre lui-même le fait. cryptsetup benchmarkvous en montre autant.

2 - AES est le plus rapide si votre CPU est suffisamment moderne pour prendre en charge les instructions AES-NI (accélération matérielle pour AES). Si vous allez avec serpent maintenant, vous ne pourrez peut-être pas utiliser l'AES-NI de votre prochain ordinateur portable.

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1      1165084 iterations per second
PBKDF2-sha256     781353 iterations per second
PBKDF2-sha512     588426 iterations per second
PBKDF2-ripemd160  726160 iterations per second
PBKDF2-whirlpool  261882 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   692.9 MiB/s  3091.3 MiB/s
 serpent-cbc   128b    94.6 MiB/s   308.6 MiB/s
 twofish-cbc   128b   195.2 MiB/s   378.7 MiB/s
     aes-cbc   256b   519.5 MiB/s  2374.0 MiB/s
 serpent-cbc   256b    96.5 MiB/s   311.3 MiB/s
 twofish-cbc   256b   197.9 MiB/s   378.0 MiB/s
     aes-xts   256b  2630.6 MiB/s  2714.8 MiB/s
 serpent-xts   256b   310.4 MiB/s   303.8 MiB/s
 twofish-xts   256b   367.4 MiB/s   376.6 MiB/s
     aes-xts   512b  2048.6 MiB/s  2076.1 MiB/s
 serpent-xts   512b   317.0 MiB/s   304.2 MiB/s
 twofish-xts   512b   368.7 MiB/s   377.0 MiB/s

Gardez à l'esprit que cette référence n'utilise pas de stockage, vous devez donc vérifier ces résultats avec le stockage et le système de fichiers que vous allez réellement utiliser.

frostschutz
la source
1
1. Merci d'avoir clarifié. Je peux donc continuer et utiliser SHA512 sans aucun effet négatif sur les performances du disque. 2. Je trouve étrange que, selon le site Web d'Intel ( ark.intel.com/search/advanced/?s=t&AESTech=true ), les anciens Pentium aient cette optimisation, mais pas les C2D. "Si vous allez avec serpent maintenant, vous ne pourrez peut-être pas utiliser l'AES-NI de votre prochain ordinateur portable." Par cela, je comprends que vous vouliez dire que je devrais recrypter le disque en AES. Droite? La référence me parle des performances du processeur. Mon SSD est sur SataII 3.0 Gbps (200-280MB / s), donc je suppose que je ne ferai pas mieux que serpent-xts 512b
lockheed