
Я хочу сравнить различные решения по шифрованию для шифрования моей системы, возможно, различные решения для разных частей системы, таких как /usr
или /home
. В частности, я рассматриваю разделы dm-crypt, контейнеры, truecrypt, ecryptfs и encfs с разными параметрами. По нескольким причинам я считаю, что простого измерения скоростей чтения и записи необработанных seq dd
недостаточно:
- seq read/write дает мне разную нагрузку на процессор, например, ecryptfs загружает только одно ядро (до 100%), тогда как dm-crypt быстрее, но загружает оба ядра, поэтому в реальном использовании ecryptfs может быть быстрее, когда система загружена другими приложениями (может и нет, но как мне это проверить?)
- речь идет о SSD, поэтому мне нужен бенчмарк, который покажет, при каком варианте система будет чувствовать себя более отзывчивой, поэтому мне следует включить несколько случайных тестов чтения и записи или что-то в этом роде (но я не знаю, как это сделать).
- для сравнительного анализа решения
/usr
могут потребоваться другие бенчмарки, чем для,/home
поскольку характеристики ввода-вывода могут отличаться
Я должен добавить, что мой процессор не поддерживает инструкции AES, поэтому это является ограничивающим фактором производительности. Я не хочу изолировать часть системы, а хочу сравнить различные решения шифрования для SSD в моей конкретной системе. Так какой же лучший способ провести бенчмаркинг в моем случае и как это сделать подробно?
решение1
А как насчет встроенного 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
Обычно вы захотите использовать один из шифров AES. Даже если ваша система сегодня не поддерживает AES-NI, ваш следующий ящик может...
решение2
Видишь ли, еслиБонни++дает вам тесты/результаты, которые вы ищете. Bonnie++ может быть доступен в репозиториях вашего дистрибутива.
Эта статья,Тестирование SSD Linux: сравнение файловых систем и методов шифрованиятакже может быть вам интересно.
решение3
Решения, которые вы упомянули, сильно отличаются в том, что они на самом деле делают - dm-crypt - это полное шифрование файловой системы, в то время как ecryptfs/encfs находятся выше файловой системы. Если вам нужна безопасность, решитепервое чтовы действительно хотите и толькотогда какчтобы заняться этим.
Тем не менее, не удивляйтесь, если ваш процессор станет узким местом - я предполагаю, что поскольку он не поддерживает AES-NI, его производительность имеет порядок величины, например, Intel Core2 Duo - который я случайно тестировал около года назад. Скорость криптомодулей ядра составила примерно 38 МБ/с ± 10 МБ/с в зависимости от используемого шифра и размера блока (Twofish, AES, Serpent и Camellia с размером блока 128/192/256b).