Как укрепить «Веру». Делаем шифрованные контейнеры VeraCrypt неприступными

Ты пользуешься VeraCrypt и всегда выбираешь самый надежный алгоритм шифрования и длинный пароль, надеясь, что так ты сделаешь контейнер неприступным? Эта статья перевернет твои представления о том, как работает безопасность криптоконтейнеров, и покажет, что на самом деле влияет на стойкость контейнера к взлому.

VeraCrypt — наиболее популярный форк знаменитого средства шифрования TrueCrypt. Почему ему часто отдают предпочтение? На стороне VeraCrypt — открытый исходный код, а также собственный и более защищенный по сравнению с TrueCrypt формат виртуальных и зашифрованных дисков. Исходники VeraCrypt проходили независимый аудит, и найденные уязвимости с тех пор закрыли, что сделало «Веру» еще надежнее.

Как взламывает контейнеры VeraCrypt полиция

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

Действия эксперта в лаборатории зависят от того, что именно и каким именно образом изъято при обыске.

Стандартные методы

Самый типичный случай — изъятие внешних накопителей целиком; компьютеры выключаются и также изымаются целиком, но в лабораторию к эксперту попадает не целый компьютер в сборе, а только извлеченные из него диски.

Подобный сценарий — тот самый случай, противостоять которому так долго готовились разработчики всех криптоконтейнеров без исключения. Лобовые атаки на криптоконтейнеры малоэффективны, а на некоторые их разновидности (в частности, загрузочные разделы, зашифрованные в режиме TPM или TPM + ключ) неэффективны абсолютно.

В типичном случае эксперт попытается сначала проанализировать файлы гибернации и подкачки. Если пользователь пренебрег настройками безопасности криптоконтейнера (кстати, при использовании BitLocker эти настройки далеко не очевидны), то ключи шифрования спокойно извлекаются из этих файлов, а зашифрованные тома расшифровываются без длительных атак. Разумеется, в ряде случаев эта атака не сработает. Она будет бесполезна, если выполнено хотя бы одно из описанных ниже условий.

1. Загрузочный диск зашифрован. В этом случае и файл подкачки, и файл гибернации будут также зашифрованы. Например, если для шифрования загрузочного раздела используется BitLocker (это имеет смысл, даже если остальные данные зашифрованы в контейнерах VeraCrypt), то Microsoft подробно описывает модель безопасности в FAQ и BitLocker Security FAQ (раздел What are the implications of using the sleep or hibernate power management options?). Кстати, из этого правила есть исключения — например, если файл подкачки вынесен на отдельное от загрузочного устройство (довольно распространенный случай для пользователей, которые таким образом «экономят» ресурс загрузочного SSD).

2. Компьютер был выключен штатным образом (через команду Shutdown) или был изъят в состоянии гибридного сна либо гибернации; при этом криптоконтейнер настроен таким образом, чтобы автоматически размонтировать зашифрованные тома и уничтожать ключи шифрования в оперативной памяти при переходе компьютера в сон, гибернацию или при его отключении.

Немного сложно для восприятия? Упрощу: если в момент изъятия зашифрованный том был смонтирован, а полиция просто выдернула вилку из розетки, то ключ шифрования, скорее всего, останется в файле гибернации (удастся ли его оттуда вытащить — зависит от пункта 1). А вот если компьютер выключили командой Shutdown, то наличие или отсутствие ключа будет зависеть от настроек криптоконтейнера. О том, как правильно настроить VeraCrypt, мы поговорим дальше.

3. Наконец, очевидное: анализ файлов подкачки и гибернации совершенно бесполезен, если в момент изъятия компьютера зашифрованный том не был подмонтирован.

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

С перебором паролей тоже непросто. Во-первых, давно прошли времена, когда под «лобовой атакой» понимался простой брутфорс. Скорость атаки будет такой, что полный перебор всего пространства паролей становится бесполезен, если длина пароля к криптоконтейнеру превышает 7–8 символов. Соответственно, для атак используются словари, в первую очередь — словари, составленные из паролей самого пользователя (извлечь их можно как из компьютера пользователя, так и из его мобильных устройств или напрямую из облака Google Account). Давно разработаны методы анализа паролей и составления правил-шаблонов, на основе которых будут генерироваться «похожие» пароли.

Для атаки в полиции будут использовать один из немногих пакетов программ, позволяющих запустить атаку на множестве (в теории — до нескольких тысяч, в реальности — порядка сотен) компьютеров, каждый из которых будет оснащен несколькими графическими ускорителями. Звучит неправдоподобно? Тем не менее во время тренингов для полиции в разных частях земного шара я видел помещения с компьютерами, использующимися для распределенных атак. Могу сказать о них следующее. Создателей фантастических фильмов в эти помещения, очевидно, не пускают, поэтому на экранах кинотеатров нам приходится наблюдать жалкие плоды убогой фантазии. Просто чтобы обозначить масштаб, поделюсь поразившим меня фактом: на рабочих столах полицейских экспертов одного британского захолустья стоят компьютеры с GeForce 2080 и 40 процессорными ядрами.

Для начала область перебора будет ограничена набором символов, которые встречаются в паролях пользователя.

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

Если это не сработает, в ход пойдут маски (попытки вручную сконструировать пароли, «похожие» на те, которые были найдены у пользователя).

В особо сложных случаях дело дойдет до гибридных атак (использование комбинаций из одного или двух словарей в комбинации со скриптованными правилами, масками и/или префиксами).

Нестандартные методы

Нестандартно действовать полиция начинает в редких случаях, когда у подозреваемого заранее предполагается наличие зашифрованных «цифровых улик». В этом случае вместе с оперативниками выезжают подготовленные эксперты, которые проконтролируют изъятие и попытаются исследовать включенные, работающие компьютеры прямо на месте. Эксперт попробует сделать следующее.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Олег Афонин: Эксперт по мобильной криминалистике компании «Элкомсофт»

Комментарии (39)

  • Как обстоят дела с проперитарными решениями?
    Платные утилиты шифрования (Jetico...), NAS (Synology...) - в вашем софте это кнопка с баннером «секундочку»? А не в вашем софте?

    • > в вашем софте это кнопка с баннером «секундочку»?
      Можно, пожалуйста, развернуть мысль для непонимающих?

      • В статье говорится о влиянии стандартных и кастомных настроек на сложность получении доступа к данным защищённым (считается что) достаточно надежным и распространённым решением.
        Но как обстоят дела с другими решениями защиты? Нет ли такого, что “Military-grade 256 bit AES” в маркетинговых материалах условного Synology это по факту профанация и возможно на столько, что получить доступ к данным условно «дело секунд»? И решение элклмсофта позволяет это?
        Вообще насколько интересны для вас не распространённые решением типа VeraCrypt, а какие-то платные бесплатные?

        • Это очень правильный вопрос! Как раз сейчас я думаю на тему статьи об особенностях реализации AES-256 в потребительских NAS Synology, TerraMaster, ASUS. Конкретно про Synology, кстати, я уже писал; однако проблема даже не в том, что доступ можно получить за минуты, если ключи хранятся на NAS (это - факт), а в том, что Military-grade здесь действительно профанация. Да, *алгоритм* шифрования они применяют правильный, это AES-256. А дальше всё не просто плохо, а очень плохо. Ключи, которые валяются где попало; шифрование, в котором нельзя сменить пароль или быстро удалить media encryption key; зашифрованные файлы, которые лежат в открытой файловой системе (в виде файлов же) и имеют ровно такой же размер, как соответствующие им незашифрованные файлы... в общем, то, что используют производители большой части NAS, для защиты данных непригодно.

          Статья об особенностях другого контейнера, BitLocker, тоже в планах. Spoiler: там всё совершенно по-другому сделано, но реализация защиты очень хорошая.

          О штатном шифровании Макбуков с Т2 я очень хочу написать, но с исследованием большие проблемы - там всё даже слишком серьёзно.

          Наконец, о защите Jetico я могу сказать только одно: независимый аудит безопасности не проводился. Зачем использовать это решение вместо открытого, бесплатного и прошедшего аудит VeraCrypt - не понимаю. Нет, финны-то могут из чувства патриотизма, но и в России по той же логике могут использовать Кузнечик (а что в нём встроен чёрный ход - так для своих же, не для NSA).

          • Про Jetico был вопрос скорее из-за поддержки им UEFI Secureboot для полнодискового шифрования, в Vera вроде его нет? Или само по себе полнодисковое шифрование может быть не таким полнодисковым и не совсем шифрованием.

            С NAS было бы интересно почитать.

          • Есть SecureBoot, начиная с какой-то версии VeraCrypt.

  • 1)Что дает "шифрование паролей в озу", стоит ли использовать, ведь теоретически пароли все-равно можно извлечь?

    2)Как моментально уничтожить ключ криптоконтейнера, чем?

  • Любопытно, а можно что-то извлечь из оперативной памяти(или еще откуда-нибудь) при полном шифровании диска ? (при условии что компьютер выключен)

    • Если выключен - в оперативной памяти ничего нет. В момент выключения - несколько секунд, до очистки, если не заморозить память физически.

      • Именно так. Есть ещё вариация этой атаки, которая работает для дефолтного шифрования BitLocker (99% пользователей использует конфигурацию TPM only). Загружается система, TPM отдаёт ключ, загрузочный диск монтируется, ключ - в памяти, но пароль пользователя неизвестен - войти в систему нельзя. Именно в этот момент замораживается память, после чего из неё извлекается дамп - и далее по накатанной. Маленький бонус: операцию можно повторять несколько раз, причём с разными модулями памяти - можно взять небольшую планку из собственных запасов, которая хорошо переносит заморозку.

  • Очень удивило, что подобный софт не заботится по умолчанию о шифровании MEK ключей в RAM. Но подавляющая часть статьи посвящена защите от брутфорса, что даже с дефолтными настройками при хорошем пароле не актуально. Было бы особенно интересно узнать о том, какими алгоритмами в памяти распознают ключи к криптоконтейнерам.

    • Брутфорс сейчас уже не тот. Никто не будет перебирать всю область возможных паролей - это действительно медленно и бесполезно. Я подробно описал, как действует полиция. Первым делом извлекаются существующие пароли пользователя (из Chrome, из облачных сервисов - Google Account, iCloud, Microsoft Account). На их основе составляются маски, мутации. Именно вариации этих паролей (причём по тому шаблону, которым пользуется конкретный человек) и будут составлять основу брутфорса. Нам называли разные цифры, но примерно в от 20 до 30% случаев пароль находится: у большинства пользователей фантазия не бесконечна. Разумеется, с настройками по умолчанию и только у обычных пользователей, которые составляют пароль для контейнера по тому же принципу, что и остальные пароли. Вишенка на торте - нам рассказывали о случае, когда пароль к контейнеру находился в зашифрованной таблице Excel, пароль к которой совпадал с одним из паролей из хранилища Chrome.

  • Спасибо за хорошую статью. Честно признаюсь, что с самого начала описание специфичное для Windows меня отпугнуло от прочтения, подумал что будет очередная статейка для Windows-пользователей, но оказалось что ошибался.

    Мне кажется что лучше описывать шаги про файлы подкачки и прочие настройки абстрактно, без привязки к конкретной ОС. Ибо не виндовсом единым :)

    • Абстрактно не получится. Как пример: на macOS принципиально иначе работает защита, а FileVault 2 включается одним движением руки безо всякого TPM (т.е. cold boot attack бесполезна). А если речь о Macbook с T2, то там мощная комбинация из SED, завязанного на ключ из Secure Enclave, и FileVault 2. Даже просто образ зашифрованного контейнера извлечь, чтобы начать атаку - уже огромная проблема, которую, вообще говоря, пока никто так толком и не решил. И это мы ещё не дошли до собственно атаки на сам контейнер. В других ОС - свои особенности и свои варианты решений.

      • Благодарю за стаью. Но хотел бы уточнить, в статье не было упоминания файлов-ключей.
        Насколько они усложняют взлом. То есть, есть ли в приложениях по взлому такой параметр, как перебор файлов на ПК пользователя. Или это гарантирует максимальную безопасность?

        • Пардон, я задумался и перепутал с KeePass :)

        • хотя в veracrypt тоже есть файлы-ключи, что с ними? может быть стоит использовать только их

  • Одного не могу понять.
    Откуда такая фобия отечественной криптографии? Популизм или элкомсофт с aes справляется, а с кузнечиком - нет? Чтобы потенциальные "клиенты" использовали, что вам удобнее?

    И второй вопрос. Вы несколько раз упомянули (в статье и в комментах) про бекдоры в кузнечике и стрибоге. А можно поподробнее? По ссылкам вашим почитал, там нет такой инфы.

    • > А можно поподробнее?
      В исследованиях предельно подробно, с математическими выкладками. Если же вы имеете в виду возможность получить депонированный ключ по известным таблицам перестановки - её не существует. Собственно, и самого депонированного ключа может не существовать - может быть просто оставлена возможность "для себя" на несколько порядков ускорить атаку.

  • А о главном то и забыли, что пароль с энтропией 250+ бит не подвержен даже постквантовым атакам.

  • "Комбинированные варианты работают еще медленнее, не предоставляя при этом никакой дополнительной безопасности." Но 1. Скорость все равно приемлемая например хранить документы самое то 2. В смысле никакой? Это помогает защититься от атак на алгоритмы.
    "Так вот, с выбором хеш-функции все обстоит с точностью до наоборот" Разве не лучше просто увеличить PIM?

  • Хотелось бы внести два уточнения:
    1) Все же для хеширования используется не такой подход, что мы что-то захэшируем миллион раз какой-то хэш функцией а там используются KDF, которые на вход принимают уже и имя функции, количество итераций, соль и т.д. Так что я думаю не совсем корректно так упрощать и создавать у читателей ложное представление о подходах к хешированию.
    2) Вы смотрите производительность алгоритмов хэширования на вашем CPU но в то же время атака будет проводиться на GPU. Не кажется ли более логичным посмотреть производительность именно на GPU? Да, результаты будут похожи но все же только GPU даст достоверную картину

    • 1) Это следующая статия просветления после понимания того, что ключ шифрования а) не является паролем, и б) не является хэшем пароля (к чему все более-менее привыкли). Если писать о соли, то нужно писать и про случайные числа, энтропию и т.п.
      2) В том-то и дело, что мы смотрим на производительность уже с GPU. 170 паролей в секунду при том, что одна-единственная верификация пароля со стандартными настройками занимает порядка 880 мс на CPU. Медленно это всё, а многомерные матрицы плохо оптимизируются.

      • Не совсем понял, то есть картинки окон "Algorithms benchmark" это результаты с GPU? Если да то не очень похоже)
        Меня смущают надписи типа "Speed affected by CPU load", "Parallelization 8 threads" & "Hardware-accelerated AES"

        • Нет, бенчмарки алгоритмов VeraCrypt делаются без GPU средствами, встроенными в сам пакет VeraCrypt! GPU использовался на скриншотах EDPR, там, где 170 паролей в секунду и далее, где 1 п/с.

          • Да, спасибо, вижу. Для реаличтиности я бы еще спец-символы в перебор добавил

Похожие материалы