Облачный хостинг VDS за 2 минуты

Настоящий облачный VDS-хостинг от UltraVDS: тестируем производительность

Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

Дельта синхронизация без облака

Ранее мы показывали разные способы синхронизации криптодиска между ПК и Android-устройством.

Дельта-синхронизация крипто-дисков

Существуют разные способы зашифровать "облако". Один из них - поместить в облако крипто-диск. В предыдущей статье мы писали, почему это не всегда удобно.

Шифрование и скорость


Шифрование vs скорость. Кто быстрее?

Автор: Денис Колисниченко

Вместо интро

В последнее время все чаще применяется шифрование для защиты всевозможных данных - как личных, так и корпоративных. Различных угроз, да и просто желающих стащить чужую инфу, все больше и больше с каждым днем. Но все мы знаем, что при шифровании/расшифровке создается дополнительная нагрузка на систему, поэтому страдает производительность. Цель данной статьи - сравнить производительность работы с диском, зашифрованным разными средствами шифрования.

Мы зашифруем раздел жесткого диска, диск будет обычный, не SSD. А затем сравним производительность зашифрованного диска в CrystalDiskMark.

Железо будет специально древним: двухядерный AMD на 2.2 ГГц, 4 гига оперативки, винт на 500 Гб. Операционка будет 64-битной Windows 7 SP 1. Никаких антивирусов, да и прочих программ во время теста запущено не будет, чтобы ничто не смогло повлиять на результаты.

Долго думал о выборе программ и остановился на следующих: BitLocker, TrueCrypt, VeraCrypt, CipherShed и Symantec Endpoint Encryption. Чтобы статья не походила на список программ шифрования и их результаты, рассмотрим вкратце каждое из средств.

VeraCrypt и CipherShed - не единственные форки TrueCrypt. Довольно известен еще и DiskCryptor. Но хочется рассмотреть и сторонние программы, а не только форки трукрипта.

BitLocker

Стандартное средство шифрования дисков, встроенное в Microsoft Windows. Многие просто используют его, не устанавливая сторонних программ. А зачем, ведь есть "придворный шифровальщик"? С одной стороны правильно. С другой стороны, многих пользователей беспокоит, что код закрыт и неизвестно, есть ли в нем backdoors.

Шифрование диска осуществляется алгоритмом AES с длиной ключа 128 или 256 бит. Ключ при этом может храниться в TPM, на самом компьютере или на флешке. Если используется TPM, то при загрузке компьютера ключ может быть получен сразу из него или после аутентификации с помощью ключа на флешке или ввода PIN-кода с клавиатуры. А все это дает огромное пространство для творчества, точнее для ограничения доступа, а именно: TPM, TPM + PIN + USB, TPM + USB, TPM + PIN.

К преимуществам BitLocker можно отнести два неоспоримых факта: ним можно управлять через групповые политики, а также то, что он шифрует том, а не физический диск. А это, в свою очередь, позволяет зашифровать массив из нескольких дисков, чего не могут некоторые другие средства шифрования. Также BitLocker поддерживает GPT. Даже наиболее продвинутый форк трукрипта - VeraCrypt - не поддерживает его и если необходимо зашифровать системный GPT-диск, то его сначала нужно конвертировать в формат MBR.

Итак, можно выделить следующие преимущества BitLocker:
* Поддержка шифрования динамических дисков (массивов дисков).
* Поддержка GPT.
* Поддержка TPM и различных комбинаций ограничения доступа с его использованием.
* Поддержка управления посредством групповых политик. Недостаток один: закрытый исходный код. Как-то нет доверия у меня (да и не только у меня) к закрытому коду. Чтобы спрятать какую-то инфу от домашних, BitLocker подойдет, но если ты агент 007, то полностью доверять BitLocker нельзя.

А можно ли расшифровать BitLocker и TrueCrypt?

Если попросить Гугл, то он найдет интересную программу Elcomsoft Forensic Disk Decryptor, пригодную для расшифровки дисков BitLocker, TrueCrypt и PGP. В рамках этой статьи испытывать ее не стану, но поделюсь впечатлениями о другой утилите от Elcomsoft, а именно Advanced EFS Data Recovery. Она превосходно расшифровывала EFS-папки, но при условии, что пароль пользователя не был задан. Если задать пароль хоть 1234, программа оказывалась бессильной. Во всяком случае, расшифровать зашифрованную EFS папку, принадлежащую пользователю с паролем 111, у меня не получилось. Думаю, с продуктом Forensic Disk Decryptor ситуация будет такой же.

TrueCrypt

Легендарная программа шифрования дисков, разработка которой была прекращена в 2012 году. История с TrueCrypt до сих пор покрыта мраком и толком никто не знает, почему разработка этого проекта была прекращена. Есть лишь крупицы информации, не позволяющие сложить пазл воедино. Так, в 2013 году начался сбор средств для проведения независимого аудита TrueCrypt. Причиной проведения такого аудита прослужила полученная от бывшего сотрудника АНБ Сноудена информация о намеренном ослаблении средств шифрования. На аудит было собрано свыше 60 000 долларов. В начале апреля 2015 года аудит был завершен. Никаких серьезных ошибок, уязвимостей или каких-либо недостатвков в архитектуре приложения выявлено не было. TrueCrypt - хорошая, пусть и не совсем идеальная программа, для шифрования информации. Но как только закончился аудит TrueCrypt снова оказался в центре скандала (источник https://www.grahamcluley.com/2015/07/trojanised-truecrypt-serves-malware-russian-speaking-targets/). Специалисты компании ESET опубликовали технический отчет (http://www.welivesecurity.com/wp-content/uploads/2015/07/Operation-Potao-Express_final_v2.pdf) о том, что русскоязычная версия TrueCrypt 7.1a, загруженная с сайта truecrypt.ru, содержала малварь. Более того, сам сайт truecrypt.ru использовался как командный центр, отправляя команды инфинцированным компьютерам. Особо не хочется развивать тему, стоит ли доверять TrueCrypt или нет, ведь сейчас речь идет о производительности, а не о доверии.

К преимуществам можно отнести незапятнанную репутацию (если, конечно, использовать оригинальную версию), поддержку динамических томов Windows, открытый исходный код. Недостаток только один - разработчики не успели реализовать поддержку UEFI/GPT. Но для наших целей, когда нужно зашифровать один несистемный диск, это не важно.

В отличие от BitLocker, где поддерживается только AES, в TrueCrypt имеется поддержка алгоритмов AES, Serpent и Twofish. Программа позволяет выбрать одну из трёх хеш-функций: HMAC-RIPEMD-160, HMAC-Whirlpool, HMAC-SHA-512 для генерации ключей шифрования, соли и ключа заголовка. Но об этом все давно знают и это никому не интересно. О TrueCrypt уже много чего было написано и не хочется повторяться.

VeraCrypt

Наиболее продвинутый клон TrueCrypt. У него собственный формат, хотя есть возможность работы в режиме TrueCrypt, в котором поддерживаются зашифрованные и виртуальные диски в формате трукрипта. В отличие от CipherShed, на один компьютер можно одновременно установить TrueCrypt и VeraCrypt.

В трукрипте используется 1000 итераций при генерации ключа, которым будем зашифрован системный раздел, а VeraCrypt использует 327,661 итераций. Для стандартных (не системных) разделов VeraCrypt использует 655,331 итераций для хэш-функции RIPEMD-160 и 500,000 итераций для SHA-2 и Whirlpool. Это делает зашифрованные разделы существенно устойчивее к атаке прямым перебором, но и существенно снижает производительность работы с таким разделом. Насколько существенно, скоро мы выясним.

Преимущества VeraCrypt следующие: открытый исходный код, собственный и более защищенный формат виртуальных/зашифрованных дисков (по сравнению с TrueCrypt). Недостатки те же, что и в случае с "эталоном" - отсутствие поддержки UEFI/GPT, зашифровать системный GPT-диск по-прежнему нельзя, но разработчики уверяют, что работают над этой проблемой и скоро такое шифрование будет доступно. Вот только работают они над этим уже два года (с 2014-го) и когда будет релиз с поддержкой GPT (и будет ли он вообще), пока не известно.

CipherShed

Еще один клон TrueCrypt. В отличие от VeraCrypt, он использует исходный формат трукрипта, поэтому я ожидаю, что его производительность будет близка к производительности TrueCrypt.

Преимущества и недостатки у этой программы такие, же как и у "оригинала". Но к недостаткам я бы еще добавил невозможность установки "оригинала" и "клона" на одном компьютере. К тому же нужно сначала удалить оригинал, а потом устанавливать клон, поскольку в моем случае инсталлятор клона не справился с удалением оригинала (хотя пытался это сделать). Поэтому некорректный инсталлятор - это еще один камень в огород этой программы.

Symantec Endpoint Encryption

В 2010 году компания Symantec выкупила права на программу PGPDisk. Думаю, это послужило появлению таких программных продуктов, как PGP Desktop и, впоследствии, Endpoint Encryption.

Endpoint Encryption - проприетарная программа. Исходный код ее закрыт, а сама программа стоит 64 евро (1 лицензия). К преимуществам можно отнести поддержку GPT, но только начиная с Windows 8.

Другими словами, если нужна поддержка GPT и есть желание зашифровать системный раздел, то придется выбирать между двумя проприетарными решениями (из рассматриваемых в этой статье). Рассматриваемые OpenSource-решения с шифрованием системного GPT-диска не справятся.

Конечно, вряд ли домашний пользователь будет устанавливать Endpoint Encryption. Проблема в том, что ему нужна программа Symantec Drive Encryption, но чтобы ее установить, нужно инсталлировать как минимум агент и сервер управления Symantec Endpoint Encryption (SEE). В свою очередь, сервер требует для своей работы IIS 6.0. Устанавливать все это добро ради одной программы для шифрования диска? Думаю, что у обычных пользователей этот продукт не будет пользоваться спросом, но протестировать его уж очень хотелось.

Момент истины

Итак, приступаем к самому интересному, а именно к тестированию производительности. Как уже отмечалось, проверять производительность будем приложением CrystalDiskMark - 64-битной версией. Первым делом нужно проверить производительность диска без шифрования. Издеваться буду над разделом размером 28 Гб (отформатирован как NTFS), находящемся на обычном, не SSD-диске.

Приложение CrystalDiskMark очень простое в использовании, нужно выбрать количество проходов, размер временного файла (будет всегда использоваться 1 Гб) и сам диск. Стоит отметить, что количество проходов практически не влияет на результаты. На рис. 1 показаны результаты измерения производительности диска без шифрования с числом проходов 5, а на рис. 2 - с числом проходов 3. Как видите, результаты практически аналогичные, поэтому далее число проходов будет равно 3 (дабы лишний раз не насиловать свой жесткий диск).


Рис. 1. Диск без шифрования, количество проходов 5


Рис. 2. Диск без шифрования, количество проходов 3

Результаты CrystalDiskMark нужно трактовать так:
* Seq Q32T1 - тест последовательной записи/последовательного чтения, количество очередей - 32, потоков - 1.
* 4K Q32T1 - тест случайной записи/случайного чтения (размер блока 4 Кб, к-во очередей - 32, потоков - 1).
* Seq - тест последовательной записи/последовательного чтения.
* 4K - тест случайной записи/случайного чтения (размер блока 4 Кб).

К этим тестам далее в статье я буду ссылаться по их порядку в программе CrystalDiskMark, то есть Seq Q32T1 - это первый тест, 4K Q32T1 - второй и т.д.

Прежде, чем будут получены первые результаты, я бы хотел рассказать о своих ожиданиях. Имея опыт работы с различными программами для шифрования, думаю, победителем окажется старый-добрый TrueCrypt, а CipherShed будет не отставать от него. Производительность BitLocker должна быть на высоком уровне, как ни крути, а это продукт Microsoft и марку держать надо. Аутсайдером должна оказаться VeraCrypt с ее продвинутым алгоритмом и иным форматом. Что касается Symantec, то ее продукт должен попасть примерно где-то в середину - не будет самым быстрым, но и не будет медленным. Посмотрим.

После получения результатов диска без шифрования диск будет зашифрован с помощью BitLocker (рис. 3). На шифрование раздела размером 28 Гб было потрачено 19 минут, перед шифрованием раздел был пуст (не содержал данных).


Рис. 3. Процесс шифрования диска (BitLocker)

Посмотрим на результаты BitLocker (рис. 4). При последовательном чтении/записи с большим количеством очередей результаты (первый тест) мало чем отличаются от работы с незашифрованным диском. Зато при обычном последовательном чтении скорость чтения ниже на 13 МБайт/с, что довольно ощутимо. Остальные результаты примерно такие же, как при работе с незашифрованным диском. Отсюда вывод, что реальная производительность зависит от алгоритма работы программы, производящей чтение/запись. В некоторых программах разница будет совсем незаметна. А в некоторых будет чувствоваться эффект торможения при работе с зашифрованным диском.


Рис. 4. Результаты BitLocker

Теперь посмотрим на работу TrueCrypt. Шифрование раздела заняло всего 9 минут, параметры были установлены по умолчанию (рис. 5). При шифровании скорость работы с диском составила 55.4 МБайт/с (рис. 6). Посмотрим, какая скорость будет у клонов трукрипта.


Рис. 5. Параметры TrueCrypt


Рис. 6. Скорость работы с диском

Результаты TrueCrypt приведены на рис. 7. Результаты мало чем отличаются от показателей незашифрованного диска, только скорость последовательной записи немного подкачала. На рис. 7 видно, что работа происходит с диском L - именно к этой букве был подмонтирован зашифрованный диск E:. В трукрипте работа с зашифрованным диском осуществляется несколько иначе, чем в BitLocker.


Рис. 7. Результаты TrueCrypt

А вот результаты VeraCrypt приятно удивили. Подозревать, что мои прогнозы окажутся неправильными, я начал еще при шифровании диска, когда скорость шифрования была существенно выше, чем у TrueCrypt (рис. 8) - 65 МБайт/с против 55 МБайт/с. Да, VeraCrypt все же немного медленнее TrueCrypt, но не так, как я этого ожидал (рис. 9).


Рис. 8. Шифрование диска программой VeraCrypt


Рис. 9. Результаты VeraCrypt

Единственное, что мне не понравилось в VeraCrypt - задержка длительностью примерно в минуту перед монтированием диска (рис. 10). Такой задержки не было ни в TrueCrypt, ни в CipherShed.


Рис. 10. Что не понравилось в VeraCrypt

А вот CipherShed оказался медленнее VeraCrypt (рис. 11). Честно говоря, я был удивлен этому факту, поскольку учитывая использование того же формата шифрования дисков, что и TrueCrypt, программа должна показывать аналогичную производительность при аналогичных настройках. А настройки были аналогичными (рис. 12). Заподозрил неладное я еще при шифровании раздела - скорость была 43-51 МБайт/с, что ниже, чем у трукрипта (рис. 13).


Рис. 11. Результаты CipherShed


Рис. 12. Параметры шифрования раздела CipherShed


Рис. 13. Шифрование раздела в CipherShed

Осталось протестировать производительность Symantec Endpoint Security, которая является "навороченной версией" PGPDisk. В третьем тесте производительность оказалась самой низкой из всех протестированных программ (рис. 14).


Рис. 14. Результат Symantec Endpoint Security

Систематизируем результаты

Картинки - это хорошо. Но в подобном тесте без таблицы с результатами - никак (см. табл. 1).

Таблица 1. Производительность работы с диском, МБ/с

Таблица доступна по ссылке в конце статьи

При использовании BitLocker снижение производительности наблюдается только в третьем тесте. В случае с TrueCrypt ощутимое снижение производительности наблюдается тоже в третьем тесте и то только при записи. Во всех остальных случаях снижение производительности вряд ли будет замечено пользователем.

Производительность VeraCrypt, как и ожидалось, ниже, чем производительность TrueCrypt. Снижение производительности наблюдается в первом и третьем тестах. А вот CiphedShed оказался даже медленнее, чем VeraCrypt - тоже в первом и третьем тестах. Symantec EE не выглядел бы аутсайдером, если бы не третий тест, который он провалил всухую. Последовательный I/O с блоками небольшого размера - явно не его конек.

В принципе, все рассмотренные приложения довольно известные и обеспечивают высокий уровень производительности, даже SEE с его провалом в третьем тесте. Именно поэтому я приберег джокер - программу CyberSafe Top Secret, использующую библиотеку шифрования диска от NT Kernel. Используется тот же алгоритм AES, но сейчас мы узнаем, кто настоящий аутсайдер. С этим приложением я уже давно знаком, но, если честно, ожидал более высоких результатов. А изображенные на рис. 15 результаты не просто низкие, это epic fail. На фоне этого приложения даже SEE кажется спринтером.


Рис. 15. Результаты CyberSafe Top Secret

Продолжение статьи можно прочитать по адресу https://xakep.ru/2016/03/08/encryption-speed-test/