Je recherche des options recommandées pour cryptsetup pour créer un SSD entièrement crypté (SanDisk SSD U100 128GB
), Qui permettent:
Timing O_DIRECT disk reads: 1476 MB in 3.00 seconds = 491.81 MB/sec
Timing buffered disk reads: 1420 MB in 3.00 seconds = 473.01 MB/sec
Mon benchmark me montre le meilleur chiffre:
# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 103696 iterations per second
PBKDF2-sha256 59904 iterations per second
PBKDF2-sha512 38235 iterations per second
PBKDF2-ripemd160 85111 iterations per second
PBKDF2-whirlpool 47216 iterations per second
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 133.2 MiB/s 432.0 MiB/s
serpent-cbc 128b 18.1 MiB/s 67.3 MiB/s
twofish-cbc 128b 39.3 MiB/s 73.0 MiB/s
aes-cbc 256b 99.6 MiB/s 337.7 MiB/s
serpent-cbc 256b 18.1 MiB/s 66.9 MiB/s
twofish-cbc 256b 39.4 MiB/s 72.6 MiB/s
aes-xts 256b 376.6 MiB/s 375.0 MiB/s
serpent-xts 256b 69.0 MiB/s 66.5 MiB/s
twofish-xts 256b 71.1 MiB/s 72.2 MiB/s
aes-xts 512b 297.0 MiB/s 300.1 MiB/s
serpent-xts 512b 69.6 MiB/s 66.6 MiB/s
twofish-xts 512b 71.9 MiB/s 72.7 MiB/s
Mais peut-être pourriez-vous suggérer des options qui augmenteraient mes performances et ma sécurité. Mon CPU est: Intel(R) Core(TM) i7-2677M CPU @ 1.80GHz
et il supporte AES-NI (aes
drapeau cpu).
Je vous remercie
Vous voudrez peut-être utiliser PBKDF2 avec SHA-512. Cette étape sert à convertir votre mot de passe en une clé de chiffrement (plus ou moins directement). Ceci est intrinsèquement ouvert à attaques par dictionnaire hors ligne , et se rapporte à la problématique hachage de mot de passe . Pour cela, vous voulez maximiser l'effort de l'attaquant en choisissant un algorithme et un nombre d'itérations qui rendront la tâche la plus difficile pour l'attaquant tout en la gardant tolérable pour vous; "tolérable" dépend ici de votre patience lorsque vous tapez le mot de passe au démarrage.
Les attaquants voudront utiliser certains GPU et/ou FPGA pour accélérer leur attaque , pendant que vous utilisez un PC normal. De nos jours, les PC normaux sont à l'aise avec les opérations arithmétiques 64 bits et exécutent SHA-512 à peu près aussi vite que SHA-256; cependant, le GPU préfère de loin les opérations 32 bits, et leur mappage sur FPGA est également plus facile que les opérations 64 bits. Par conséquent, en utilisant SHA-512 au lieu de SHA-256, vous donnez moins d'avantage à l'attaquant. D'où ma recommandation: sur le matériel moderne, pour le hachage de mot de passe, préférez SHA-512 à SHA-256.
N'oubliez pas d'ajuster le "nombre d'itérations" afin que le temps nécessaire au traitement de votre mot de passe soit au seuil du supportable: un nombre d'itérations plus élevé signifie un temps de traitement plus long, mais est proportionnellement meilleur pour la sécurité.
Pour le chiffrement réel, vous aurez besoin de XTS , qui a été conçu pour prendre en charge le chiffrement du disque efficacement. Cela se voit en effet dans les repères; c'est pour un SSD et vous ne voulez pas que le cryptage soit beaucoup plus lent que le matériel sous-jacent. Notez que XTS divise la clé en deux moitiés, dont une seule est utilisée pour le chiffrement réel. En d'autres termes, "aes-xts
"avec une clé de 256 bits utilise en fait 128 bits pour la partie AES. Et c'est assez bien . Il n'y a aucun besoin rationnel d'aller à des clés de 256 bits - c'est-à-dire 512 bits dans le contexte de "aes-xts
". Les clés 256 bits pour AES impliquent une surcharge du processeur, ce que les tests de référence observent dûment (300 Mo/s contre 375 Mo/s). Avec un SSD sous le capot, vous voulez vraiment un système de cryptage rapide, alors faites-le .
Toute combinaison des modes de fonctionnement ci-dessus vous fournira une sécurité suffisante contre la plupart des menaces. Cela dit, CBC
n'est plus recommandé en raison de certaines attaques de fuite d'informations. Et SHA1
est amorti au profit de SHA2
famille.
Comme toujours avec la cryptographie, respectez ce qui est largement utilisé et éprouvé. Ma recommandation générale serait donc: PBKDF2-sha256 aes-xts