
Ich möchte verschiedene Verschlüsselungslösungen für die Verschlüsselung meines Systems vergleichen, möglicherweise verschiedene Lösungen für verschiedene Teile des Systems wie /usr
oder . Insbesondere schaue ich mir dm-crypt-Partitionen, Container, truecrypt, ecryptfs und encfs mit unterschiedlichen Parametern an. Aus mehreren Gründen denke ich, dass es nicht ausreicht, /home
nur die Rohsequenz-Lese- und Schreibgeschwindigkeiten zu messen :dd
- Seq Lesen/Schreiben führt bei mir zu unterschiedlichen CPU-Lasten, zum Beispiel belastet ecryptfs nur einen Kern (bis zu 100 %), wohingegen dm-crypt schneller ist, aber beide Kerne belastet, sodass ecryptfs in der Praxis schneller sein kann, wenn das System durch andere Anwendungen belastet ist (vielleicht auch nicht, aber wie kann ich das vergleichen?)
- es dreht sich alles um eine SSD, daher möchte ich einen Benchmark haben, der angibt, bei welcher Option das System reaktionsschneller ist. Ich sollte also auch einige zufällige Lese-/Schreibtests oder etwas in der Art einbinden (weiß aber nicht, wie das geht)
- Das Benchmarking einer Lösung für
/usr
kann andere Benchmarks erfordern als für/home
, da die E/A-Eigenschaften unterschiedlich sein können
Ich sollte hinzufügen, dass meine CPU keine AES-Anweisungen unterstützt, was also ein Leistungseinschränkungsfaktor ist. Ich möchte keinen Teil des Systems isolieren, sondern die verschiedenen Verschlüsselungslösungen für die SSD in meinem speziellen System vergleichen. Was ist also in meinem Fall die beste Benchmarking-Methode und wie geht man dabei im Detail vor?
Antwort1
Wie wäre es mit dem eingebauten cryptsetup benchmark
?
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 633198 iterations per second
PBKDF2-sha256 329326 iterations per second
PBKDF2-sha512 216647 iterations per second
PBKDF2-ripemd160 474039 iterations per second
PBKDF2-whirlpool 248713 iterations per second
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 707.0 MiB/s 3120.9 MiB/s
serpent-cbc 128b 98.3 MiB/s 307.2 MiB/s
twofish-cbc 128b 195.0 MiB/s 381.7 MiB/s
aes-cbc 256b 513.8 MiB/s 2373.9 MiB/s
serpent-cbc 256b 97.4 MiB/s 315.1 MiB/s
twofish-cbc 256b 198.8 MiB/s 383.9 MiB/s
aes-xts 256b 2706.1 MiB/s 2634.1 MiB/s
serpent-xts 256b 318.0 MiB/s 310.4 MiB/s
twofish-xts 256b 370.5 MiB/s 380.1 MiB/s
aes-xts 512b 2083.2 MiB/s 2073.8 MiB/s
serpent-xts 512b 323.0 MiB/s 311.4 MiB/s
twofish-xts 512b 375.9 MiB/s 380.2 MiB/s
Normalerweise möchten Sie eine der AES-Chiffren verwenden. Auch wenn Ihr System AES-NI heute nicht unterstützt, kann es sein, dass Ihre nächste Box ...
Antwort2
Sehen obbonnie++liefert Ihnen die Tests/Ergebnisse, nach denen Sie suchen. Bonnie++ ist möglicherweise in den Repos Ihrer Distribution verfügbar.
Dieser Artikel,SSD Linux Benchmarking: Vergleich von Dateisystemen und Verschlüsselungsmethodenkönnte für Sie auch interessant sein.
Antwort3
Die Lösungen, die Sie erwähnen, unterscheiden sich erheblich in dem, was sie tatsächlich tun - dm-crypt ist eine vollständige Dateisystemverschlüsselung, während ecryptfs/encfs über dem Dateisystem liegen. Wenn Sie Sicherheit wollen, entscheiden Siezuerst wasdu wirklich willst und nurwie dannum es anzugehen.
Seien Sie jedoch nicht überrascht, wenn Ihre CPU zum Flaschenhals wird. Ich gehe davon aus, dass ihre Leistung, da sie AES-NI nicht unterstützt, in der Größenordnung von z. B. einem Intel Core2 Duo liegt, den ich vor etwa einem Jahr zufällig getestet habe. Die Geschwindigkeit der im Kernel integrierten Kryptomodule betrug je nach verwendeter Verschlüsselung und Blockgröße (Twofish, AES, Serpent und Camellia mit Blockgrößen von 128/192/256b) etwa 38 MB/s ± 10 MB/s.