Шифруем файлы и диски правильно

14.10.2015

По мнению Сноудена, только мощное шифрование защитит вашу личную жизнь. Это так, однако необходима грамотная реализация. Мы дадим немного теории, а также расскажем, как обезопасить документы, снимки и общение в Сети.

После разоблачений, сделанных Эдвардом Сноуденом, мы знаем, что надежность криптографических методов под серьезным сомнением. Благодаря своим практически не ограниченным ресурсам секретные службы непрерывно подвергают их стрессовым испытаниям.

Таким образом, следует задуматься, на какие технологии шифрования делать ставку в будущем. В центре этой темы находятся традиционные симметричные криптосистемы, используемые офлайн для шифрования данных и онлайн — для безопасной сетевой коммуникации (например, через HTTPS).

В качестве подвида выделяется блочное шифрование, при котором данные разбиваются на блоки одинаковой длины и каждый такой элемент кодируется отдельно. Альтернатива этому методу — поточное шифрование, когда данные шифруются одним махом, без деления на блоки. Оригинальные байты с помощью операции «Исключающее ИЛИ» (XOR) вплетаются в созданный генератором псевдослучайных чисел поток данных.

Поточное шифрование RC4 часто применяют при веб-соединении, однако считается, что АНБ его уже взломало. В 2013 году группа исследователей доказала, что защиту RC4 можно обойти только в случае перехвата довольно большого количества данных.

Блочное шифрование — более крепкий орешек, но только при подходящей длине ключа. Чем длиннее ключ, тем больше комбинаций байтов придется перепробовать при атаке методом «грубой силы». При этом алгоритм AES используется охотнее, чем расширение 3DES, например, для работы с Wi-Fi, на компьютере и через HTTPS.

Методы симметричного шифрования

Существует два вида: поточное шифрование, например, RC4, объединяет данные с помощью операции XOR по битам со случайным значением. Блочное шифрование всегда применяется к фрагментам одина‑ ковой длины. Каждый блок проходит несколько циклов шифрования.

Соответствие длины ключа и режима

Плохой пароль делает уязвимым даже метод AES, поскольку именно на основе пароля строится ключ. Криптографическое ПО с помощью хеширования превращает пароль в ключ AES. Опасность может представлять и режим, в котором используется алгоритм. Так, при Electronic Code Book (ECB — режим электронной кодовой книги) зашифрованный текст «выглядит» как открытый.

Экспертам не нравится тот факт, что криптографическая библиотека в Android ECB является предустановленной. Большинство шифровальных программ, например, Bitlocker от Microsoft, работают с Cipher Block Chaining (CBC — режим сцепления блоков шифротекста), режимом, который изменяет ключ для каждого блока. Результат — полный цифровой шум.

Несмотря на то что теоретически существуют более надежные и сложные методы, режим CBC является лучшим решением для офлайнового шифрования. В отношении веб-коммуникации все несколько иначе (см. стр. 54). В Сети безопасное HTTPS-соединение осуществляется в два этапа. С помощью асимметричных криптографических методов сервер устанавливает с браузером зашифрованное соединение, а затем происходит обмен ключами для последующей коммуникации, защищенной симметричными алгоритмами, например AES.

AES: выбор правильного режима

Алгоритм AES предлагает различные режимы работы с различной степенью надежности. Стоит остерегаться режима Electronic Code Book (ECB), поскольку при нем сохраняются характеристики открытого тек‑ ста. Cipher Block Chaining (CBC) меняет ключ в зависимости от блока для случайно выглядящего зашифрованного текста.

Если контакт устанавливается с помощью ассиметричного метода RSA, сервер генерирует два ключа: закрытый Private Key служит только для расшифровки и не покидает сервер. Открытый Public Key может только шифровать сообщения и передается каждому браузеру для контакта с сервером. Чем длиннее ключ, тем больше вычислительной мощности требуется злоумышленнику. Здесь также действует правило: чем длиннее значения, тем безопаснее.

Достоинство этого метода в том, что для каждой сессии создается новая пара ключей, которая затем не используется. Алгоритм эфемерный DH (DHE), или Совершенная прямая секретность (Perfect Forward Secrecy), решает проблему уязвимости метода RSA, при котором, если у хакера получится украсть закрытый ключ сервера, он сможет расшифровать всю веб-коммуникацию.

Последний вариант алгоритма DHE, ECDHE, использует эллиптические кривые для расчетов, сокращая таким образом длину DHE и объем вычислений. Благодаря этому можно утверждать, что веб-кодирование готово к завтрашнему дню: ключ ECDHE длиной 384 бита столь же надежен, как и RSA длиной 8192 бита.

Правильная длина ключа для Сети

HTTPS использует ассиметричные методы для передачи ключа и подписей. Ключи длиной 512 бит взломать легко, впрочем, как и 1024 бита; на данный момент безопасной является длина 2048 бит. При шифровании с помощью эллиптических кривых (EC) достаточно и коротких ключей.

Фото: компании-производители; Legion-Media