Pull to refresh

Атака «evil maid» на зашифрованный жесткий диск

Information Security *Cryptography *
Sandbox
Вчера была опубликована статья, в которой, не без помощи Microsoft, раскрываются интересные подробности о внутренностях BitLocker. Статья длинная и ее содержимое можно резюмировать как «в целом выглядит адекватно, явных уязвимостей вроде не видно». Зато по ссылкам много интересной информации о разных атаках на зашифрованный жесткий диск. Полагаю, хабражителям будет интересно краткое изложение атаки с романтичным названием «evil maid» и ее логическое продолжение. Надежно ли защищена ваша деловая переписка от молодых любопытных таможенников, если в аэропорту солнечной Испании у вас на 10 минут попросили досмотреть ноутбук с зашифрованным жестким диском?

Казалось бы, если используется адекватный алгоритм шифрования и злоумышленник или просто любопытствующий не знает вашего пароля — то деловая переписка в полной безопасности. Так ли это?

Не совсем. Шифрование реализовывает операционная система. Когда вы запускаете компьютер с Linux, Windows или OSX, вначале стартует некий код операционной системы, который запрашивает у вас фразу-пароль от зашифрованного жесткого диска, после чего использует ее для расшифровки жесткого диска в реальном времени (или только home dir, если используется шифрование по умолчанию в OSX). Атака «evil maid» заключается в том, что backdoor, отсылающий злоумышленнику всю необходимую информацию, встраивается в запрашивающий пароль код. Который не зашифрован, потому что должен выполниться при старте компьютера до того, как пользователь введет фразу-пароль. Вам вернули ноутбук, вы посмеялись над недалекими проверяльщиками, включили его, ввели пароль, загрузили операционку — и все, backdoor уже на вашем компьютере. Bitlocker частично защищен от этой атаки — его загрузчик проверяет собственную целостность (конечно, ничто не мешает поменять и код проверки — но это намного труднее), OSX и популярные дистрибутивы Linux не имеют даже такой защит.

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

Оказывается, нет. Большинство решений по шифрованию жесткого диска используют алгоритм AES в блочном режиме CBC. А у блочного режима шифрования есть забавная особенность. Если злоумышленник знает содержимое зашифрованного файла на жестком диске, но не знает ключа, то он может модифицировать зашифрованные данные таким образом, что после расшифровки получится нужное ему содержимое. Неожиданно, да? Можно не трогать загрузчик. Зная версию операционной системы и расположение ее стандартных фалов на диске можно внедрить backdoor в системные файлы, просто перезаписав часть зашифрованных блоков. Подробно такая атака описана в другой статье, там же — практическая реализация для Ubuntu 12.04 (начиная с 12.10 по умолчанию используется XTS, что защищает операционку от данной атаки).

Начиная с OSX Lion (10.7) средство шифрования по умолчанию изменено на «File Vault 2», в котором вместо AES-CBC используется XTS-AESW, защищенное от такой атаки.

Безусловно, такие атаки известны любому читателю, знакомому с основами информационной безопасности. Всем остальным, надеюсь, информация об этих двух атаках будет, как минимум, любопытна. В качестве иллюстрации использовалась работа вот этого художника.
Tags: шифрование дисковстранное
Hubs: Information Security Cryptography
Total votes 61: ↑60 and ↓1 +59
Comments 70
Comments Comments 70

Top of the last 24 hours