пятница, 14 мая 2010 г.

Экспертиза, анализ криптоконтейнеров: технические и правовые аспекты.

Итак, в данной статье я хочу подытожить кое-какие свои наблюдения относительно возбуждаемых дел по 146 статье УК и иже с нею, когда людей обвиняют/подозревают в разных нарушениях авторских прав в сфере ИТ.
Сначала я приведу ряд цитат из специализированных форумов и статей экспертов по форензике, а затем попробую подвести некие итоги.



Цитата из книги Н.Н. Федотова "Форензика - компьютерная криминалистика" 2007
с. 274-279, 191-192
Зашифрованные данные
Шифрование отдельных записей, файлов, разделов, дисков и трафика применяется злоумышленниками достаточно широко. Кроме того, функции шифрования встроены во многие виды программного обеспечения, где они задействуются автоматически. Эксперт должен быть готов ко встрече с зашифрованными данными, не должен считать такой случай безнадежным. Хотя современная сильная криптография считается практически непреодолимой, на практике оказывается, что во многих случаях добраться до зашифрованных данных можно (Casey E. Practical Approaches to Recovering Encrypted Digital Evidence, 2002. - прим. ред.).
Перечислим вкратце основные случаи, когда эксперт в состоянии расшифровать зашифрованные данные.

Использование слабой криптографии
То ли из-за недостатка знаний, то ли времени, но многие злоумышленники по сию пору продолжают использовать довольно примитивные шифры. Например, операция XOR (исключающее «или») с определенным байтом или короткой последовательностью байтов. Эта операция проще всего реализуется программно, и «на вид» такие данные выглядят зашифрованными. Но преодолеть XOR-шифрование очень просто. Иные виды слабой криптографии применяются редко, поскольку они не так просты, как операция XOR, а более стойкие алгоритмы шифрования доступны в виде исходного кода и библиотек.
Например, троянская программа «Back Orifice» использует XOR для шифрования своего трафика. Известные производители также были замечены в подобной халтуре: например, XOR с фиксированной последовательностью для шифрования паролей использовался в «Microsoft
Office» до 2000 года, в «PalmOS» до версии 4 и в некоторых других программах.


Использование коротких ключей и паролей
Даже в случае применения сильной криптографии зашифрованные данные будут плохо защищены, если использован короткий пароль. Часто пароль служит ключом шифрования. В других случаях длина ключа или множество его значений искусственно ограничиваются. В подобных случаях эксперт может применить метод перебора, также называемый «brute force». Этот метод реализован во множестве программ для многих разных алгоритмов шифрования. На взгляд автора, всегда полезно погонять метод перебора в течение нескольких часов над зашифрованными данными; затраты рабочего времени незначительны, свободный ресурс
процессора всегда имеется, а вдруг получится?
Не слабые, но намеренно ослабленные алгоритмы, такие как, например, 40-битный DES в экспортной версии «Windows NT», также поддаются вскрытию методом перебора. Но для этого потребуется значительная вычислительная мощность – несколько компьютеров, объединенных в кластер. Для такой задачи имеется доступное программное обеспечение.

Использование словарных паролей
Вместо прямого перебора пароля или ключа («brute force») можно попробовать подобрать пароль по словарю. Большинство пользователей выбирают в качестве пароля осмысленное слово или фразу. Это позволяет резко сократить количество вариантов при переборе. Словарь всех распространенных языков содержит меньше миллиона слов. Вместе со всеми возможными комбинациями это всяко меньше, чем пространство неосмысленных паролей, то есть всех возможных сочетаний символов такой же длины. Несловарный пароль в 8 символов можно безуспешно подбирать месяцами. А такой же длины словарный пароль находится перебором за секунды.
В распоряжении эксперта есть как свободно распространяемые, так и проприетарные программы для подбора паролей по словарю, а также различные словари к ним.
В качестве дополнительного словаря автор рекомендует использовать все символьные строки, найденные на диске подозреваемого. Велика вероятность, что в качестве пароля он выбрал какое-либо слово, выражение, номер или иную строку символов, которую где-то видел или сам
употреблял. В том и в другом случае эта строка может осесть на жестком диске в каком-либо виде.

Неаккуратное обращение с открытым текстом
При шифровании файлов и в некоторых иных случаях открытый текст зашифровывается, результат шифрования записывается на диск, а файл, содержащий исходный текст, удаляется. Если такое удаление произведено штатными средствами ОС, без использования специальной процедуры «затирания» содержимого файла, то открытый текст останется на диске и может быть восстановлен. То же относится к сообщениям электронной почты: при шифровании исходный текст удаляется из базы сообщений, но не затирается и может быть обнаружен, если поверх не запишутся иные данные. Во время редактирования файла, хранящегося на криптодиске, редактор может сохранять временные копии вне этого криптодиска, а операционная система может временно сбрасывать редактируемый текст или его части из ОЗУ в область подкачки*. Перед распечаткой на принтере незашифрованная копия данных записывается в очередь печати, то есть опять же на диск. Словом, пользователю трудно проконтролировать все файловые операции. При их проведении открытый текст часто остается на диске, где его можно потом найти. Также копии открытого текста бывают разбросаны по оперативной памяти. Не все программы аккуратно обращаются с ОЗУ и затирают за собой содержимое памяти. Сняв дамп* ОЗУ в период активности шифрующей программы или после, можно найти в нем открытый текст.

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

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

Ректотермальный криптоанализ :-)
Говорят, что человек – это слабейшее звено в системе информационной безопасности. Хотя автор и не согласен с рассмотрением человека в качестве «звена» или «элемента» информационной системы, следует признать, что большинство инцидентов происходят не из-за уязвимостей ПО или сбоев оборудования, а по вине персонала. Аналогичная ситуация
наблюдается и в области исследования доказательств. Большинство известных автору случаев, когда эксперт смог расшифровать данные на исследуемом компьютере, – это сообщение пароля самим владельцем компьютера или оператором информационной системы.
Для того чтобы склонить подозреваемого или свидетеля к сотрудничеству со следствием, применяются различные методы, не входящие в сферу изучения криминалистики. Наука лишь отмечает, что человек является самым распространенным источником сведений для расшифровки зашифрованных данных.

Доступ к содержимому ОЗУ
В оперативной памяти могут храниться не только незашифрованные данные, но и ключи с паролями. Эксперт вряд ли получит доступ к работающему компьютеру с активированным криптодиском или иной системой шифрования, чтобы снять с него дамп оперативной памяти. Однако содержимое ОЗУ можно обнаружить в области подкачки, а также в дампах памяти, которые автоматически снимаются при сбоях в работе. Например, утилита «Dr.Watson» в Windows-2000 автоматически записывает дамп памяти сбойного процесса.
Содержимое ОЗУ с паролями, содержимое временных файлов и удаленных пользовательских файлов с паролями может быть найдено по всему диску в самых неожиданных местах. Систематический подход к задаче состоит в следующем. По исследуемому диску собираются все строковые величины, ключевые слова и фразы, они агрегируются и записываются в виде файла-словаря, который затем подключается к программе подбора паролей. Достаточно велика вероятность, что пароль хотя бы раз «осел» на диске или что пользователь использовал в качестве пароля слово или выражение, которое встречалось в прочитанных или написанных им текстах.

Использование кейлогера
В некоторых, достаточно редких случаях представляется возможность незаметно отследить действия подозреваемого, в том числе снять техническими средствами вводимый им пароль. Средства такие именуются кейлогерами (keylogger) и бывают программными и аппаратными.
 Кейлогерами (keyloggers) называют устройства (программные или ап паратные) для перехвата сигналов с клавиатуры, то есть для записи пос ледовательности нажатых пользователем клавиш.
Большинство паролей набирается с клавиатуры. С нее же вводится большая часть переписки, персональных данных и иной информации, которая может интересовать злоумышленников. Поэтому сбор информа ции о нажатых клавишах является эффективным способом совершения
различных компьютерных преступлений.
Наряду с этим кейлогер может служить инструментом для проведения ОРМ.
Кейлогер можно отнести к устройствам двойного назначения. У него есть ряд легальных применений: отслеживание владельцем случаев неса нкционированного использования его собственного компьютера, архи вирование информации пользователя на случай ее утраты при сбоях. Темне менее очевидно, что основным предназначением кейлогеров является скрытное (негласное) получение информации.

Аппаратные кейлогеры


Они выполнены в виде переходника, который вставляется в разрыв клавиатурного кабеля. Бывают аппаратные устройства, которые встрое ны непосредственно в клавиатуру.
Современный кейлогер имеет встроенную память на сотни килобайт или несколько мегабайт, собранную информацию хранит в зашифрован ном виде. Взаимодействие с «хозяином» обычно строится на том же са мом интерфейсе, то есть при помощи клавиатуры, в которую он включен.
Любой желающий может без формальностей приобрести аппаратный кейлогер по цене 150 200 долларов.

Программные кейлогеры

Такие программы доступны как за деньги, так и бесплатно. Как пра вило, они выполнены по технологиям, используемым в троянских прог раммах, каковыми, по сути, и являются.
Большинство программных кейлогеров будут признаны вредоносны ми программами, поскольку приспособлены для скрытного внедрения и незаметной для пользователя работы. Однако некоторые из них, имею щие «открытый» режим, добросовестный эксперт вредоносной програм
мой не признает.
Многие программные кейлогеры имеют дополнительные функции – запись движений мыши и снятие скриншотов*.

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

Стеганография
Этот метод, в отличие от шифрования, предусматривает сокрытие самого факта наличия информации на компьютере или в сообщении (Конахович Г.Ф., Пузыренко А.Ю. Компьютерная стеганография. Теория и практика. – К.: МК-Пресс, 2006; Грибунин В.Г., Оков И.Н., Туринцев И.В. Цифровая стеганография. – М.: Солон-Пресс, 2002.).
Многие применяемые форматы данных (файлов и сообщений) содержат «нечувствительные» биты, которые могут быть изменены без ущерба для восприятия информации. Иные форматы предусматривают наличие обязательных, но неиспользуемых полей. И там и там может быть записана скрываемая информация.
Чаще всего в качестве стеганографических контейнеров используются изображения в формате BMP и JPEG, звуковые файлы в формате MP3 (MPEG-3), видеофайлы в формате AVI. Существует несколько программ (в том числе, свободных) для хранения информации в таких контейнерах и извлечения ее.
Стеганография чаще используется при пересылке сообщений. Для хранения же информации на компьютере применять стеганографические технологии неразумно, поскольку трудно скрыть наличие стеганографических программ. А если эксперт обнаружит такие программы, он непременно начнет искать скрытую информацию, то есть стеганография потеряет свое значение.
Ниже показан пример работы одного из инструментов для обнаружения стеганографических контейнеров – программы «stegdetect/stegbreak»:
$ stegdetect *.jpg
cold_dvd.jpg : outguess(old)(***) jphide(*)
dscf0001.jpg : negative
dscf0002.jpg : jsteg(***)
dscf0003.jpg : jphide(***)
[...]
$ stegbreak Gtj dscf0002.jpg
Loaded 1 files...
dscf0002.jpg : jsteg(wonderland)
Processed 1 files, found 1 embeddings.
Time: 36 seconds: Cracks: 324123, 8915 c/s

Пост Phoenix на юр. форуме

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

Тем не менее, поскольку я вижу Ваш интерес к данному вопросу, постараюсь прояснить все более детально.

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

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

Обращу внимание, что с участием исключительно эксперта могут быть проведены только 1 и 2 методы. Поэтому вопрос "изъяли и увезли - вскроют?" касается только первых двух.

Итак, поехали:

1. Алгоритмы, такие как AES, Twofish, Serpent не имеют на данный момент уязвимостей, что означает, что не зная ключа (это важно, ибо можно и узнать - как - см. ниже), его можно попытаться лишь узнать, подобрав парольную фразу. Подбираться будет именно парольная фраза (если будет), а не ключ шифрования, т.к. если подбирать сам ключ, то подпункты 1.1 и 1.2 не имеют смысла.

1.1. Прямой перебор парольных фраз. Может иметь успех только в случае простых (коротких) парользых фраз, т.к. как правило начинается от коротких паролей к длинным. Это значит, что если ваш пароль достаточно длинный, данный способ сводится на "нет". Продвинутые программы (такие как PGP) имеют индикатор сложности вводимого пароля, постарайтесь заполнять его "под завязку"

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

2. Атака на реализацию программы и ее окружение. В отличие от методов 1-й группы, данные методы не требуют интенсивных вычислений, поэтому будет использоваться в первую очередь.

2.1. Использование известных "уязвимых мест" в текущий реализации программы. Противодействие: использовать только программы с открытым кодом, длительной историей развития, и регулярно следить в новостях об обнаруженных уязвимостях. Стоит отметить, что использование таких уязвимостей дает достаточно малый шанс вскрытия ваших данных, т.к. требует обязательного и одновременного наступления ряда условий. На примере с TrueCrypt 5.1, такими условиями было: нестандартный storage-controller в ПК, и использование режима hibernate при завершении работы. То есть пользователи, которые не использовали hibernate (я думаю таких подавляющее большинство) уже могли "не париться" по поводу данной уязвимости.

2.2. Анализ содержимого виртуальной памяти, временных и ранее удаленных файлов и т.п. Может иметь место, в случае использования шифрования данных в нешифрованной системе. То есть в определенных шифрующих программах не гарантируется, например, что область памяти, где хранится Ваша парольная фраза, не будет сброшена на жесткий диск (в swap-файл), откуда ее может прочитать эксперт. Также возможна ситуация, что вы записали раньше ваш пароль в какой-то файл, а потом его стерли небезопасным образом, и впоследствии его восстановили. Вывод один - все пространство, куда операционная система может что-то записать без вашего ведома - должно быть зашифровано. Иными словами, используйте программы, которые умеют шифровать целые диски, включая операционную систему и свободное место на диске, и используйте их именно в этом режиме. Создание "криптоконтейнеров" в виде отдельных файлов, монтирующихся "как диск", следует использовать лишь как дополнение к полному шифрованию диска, например, для переноса данных на "флешке".

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

2.4. Парольная фраза не должна быть записана где-либо, кроме как в Вашей голове, и известна кому-либо, кроме Вас.

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

3.1. Использование программных и аппаратных кейлоггеров. Делаться это будет на этапе ОРД, когда Вы сами о том, что Вы в разработке, знать не будете.
3.1.1. Аппаратный кейлоггер как правило представляет собой "переходник" между клавиатурой и системным блоком. Не исключаю, что существуют варианты, встраиваемые в клавиатуру. Поэтому ограничивайте физический доступ посторонних лиц к вашему ПК в любом случае, хотя такой метод популярен в основном за бугром, а не в РФ.
3.1.2. Программный кейлоггер обычно ставится как троян или руткит. Здесь существует очень большая гибкость, в плане того, как можно увести у Вас парольные фразы. Поэтому привожу набор мер: Используйте шифрование всего жесткого диска (если кейлоггер сохраняет пароли на диск, то при выключенном компьютере они будут недоступны), жестко ограничивайте сетевой трафик (используйте брандмауэры с максимально жесткими настройками - если кейлоггер будет отправлять пароли в сеть/интернет, брундмауэр будет для этого препятствием), следите за списком выполняющихся процессов и используйте руткит-детекторы для отслеживания скрытых процессов, никогда не запускайте программы, которым (или месту, в которых они хранились), Вы не доверяете.

3.2. Принуждение к выдаче пароля юридическими методами. То бишь, угроза привлечения к уголовной ответственности "за воспрепятствование законным действиям следствия/суда". Пока такой вопрос я рассматриваю чисто в теоретической плоскости, ибо по законодательству ряда стран (в т.ч. и у нас в РФ, Вы имеете права отказаться от дачи показаний, если дело возбуждено против Вас). В то же время в мировой судебной практике приравнивание выдачи пароля к свидетельским показаниям неоднозначно (известен минимум 1 случай в Америке, когда требование выдачи пароля в суде признали незаконным, и минимум 1 случай в Великобритании с противоположным результатом). Поэтому я бы не рекомендовал умышленно отказываться от выдачи пароля в случае такой угрозы. Вместо этого его можно "забыть". Как вариант - использование программы TrueCrypt в режиме Hidden Operating System, с выдачей пароля от "ложной" (decoy) ОС.

3.3. Ну, и конечно же, терморектальный криптоанализ, то есть физическое принуждение. Штука это специфичная, и принцип тут такой: против лома нет приема, если нет другого лома. А это значит, что способ должен основываться на том, чтобы Вы сделали такое действие, после которого уже даже Вы при всем своем желании не смогли бы получить доступ к защищенным данным, т.е. по сути утраты данных навсегда. На данный момент могу порекомендовать только 1 надежное решение: использование аппаратных средств двухфакторной аутентификации с аппаратным счетчиком неправильных вводов пароля, и блокировкой. Причем необходимо, чтобы используемое Вами программное обеспечение поддерживало эти средства.

Риски использования криптографического ПО и возможные каналы утечки данных

Как вы думаете, ваша информация надежно защищена от посторонних глаз? Наверняка многие из вас ответят "да" на этот вопрос. Считается что использование криптографического ПО делает вашу информацию защищенной. Люди слабо разбирающиеся в ИБ зачастую считают, что если ваша информация понадобиться серьезному противнику, вроде государственных спецслужб, то он вскроет любое шифрование. Те кто разбирается в ИБ немного больше, часто смеются над таким мнением. Но давайте подумаем, кто же на самом деле прав?
В этой статье я попытаюсь рассказать о рисках использования шифрования, и о способах вскрытия зашифрованных данных. Статья основана на общеизвестной информации, и никаких секретов вы в ней не найдете, но осмыслив это вы можете понять на каком волоске может висеть ваша безопасность, и как легко ломается то, что многими считается неломаемым. И так, давайте кратко рассмотрим основные виды атак на зашифрованную информацию.

Взлом криптоалгоритмов, или лобовая атака

Всем известно, что не существует абсолютно стойких криптоалгоритмов, за исключением одноразового блокнота. Все известные криптоалгоритмы построены не на знании, а на незнании. Стойкость шифра еще никому не удалось математически доказать, зато удалось доказать нестойкость большинства из придуманных когда-либо шифров. Поэтому стойким считается тот шифр, для которого пока что не придумали практичного метода взлома. Однако если такого метода еще не придумали, то это не значит что его не придумают никогда, хотя применительно к хорошо изученным шифрам (AES, Twofish, Serpent) вероятность взлома в ближайшие 10 лет пренебрежительно мала. Существует мнение, что АНБ имеет в своем распоряжении неизвестные широкой общественности методы криптоанализа, однако это не более, чем слухи. Никаких доказательств этого факта нет. Однако не следует считать, что зашифрованые сейчас данные не будут вскрыты никогда. Я считаю, что максимальный срок на который можно засекретить данные это 10-20 лет. Вы должны это четко понимать и всегда помнить.
Единственно возможной сейчас атакой на стойкие криптоалгоритмы является перебор всех возможных вариантов ключей. На данном этапе развития техники возможен подбор 64 битного ключа, и теоретически 70 битного. Минимально безопасной является длина ключа в 80 бит. В случае создания квантового компьютера, длину ключа для симметричных шифров следует удвоить для достижения идентичного уровня безопасности. Поэтому 128 битные ключи теоретически могут быть взломаны на КК, но 256 битные ключи не будут взломаны прямым перебором никогда, так как полный перебор такого числа комбинаций упирается в ограничения, поставленные законами физики. Следует также следить за тем, чтобы ваш пароль имел не меньшую стойкость, чем ключевое пространство используемого алгоритма шифрования, в противном случае данные могут быть вскрыты подбором пароля.
Суммируя вышесказанное сделаем вывод, что успешные лобовые атаки крайне маловероятны, однако не стоит сбрасывать их со счетов. Также не стоит пользоваться криптоалгоритмами с ключом короче 256 бит, но и ключи длиннее тоже не имеют особого смысла.

Некорректная реализация криптографического ПО

Даже самый надежный алгоритм шифрования может оказаться бессилен, если он реализован с ошибками, или используется неправильно. Ошибки и неправильное применение крипто — это болезнь проприетарного софта. Особенно на этой почве прославилась небезызвестная компания Microsoft. Практически каждое созданное ими криптографическое решение содержало серьезные уязвимости, а зачастую было тривиально взламываемым. За примерами далеко ходить не надо, это Kerberos, шифрование документов MS Office, PPTP VPN, протокол аутентификации NTLM, Syskey, EFS шифрование в Windows 2000, ГСЧ в windows 2000/XP/Vista. Как показывает история, эта компания не способна учиться на своих ошибках, поэтому лучше использовать что угодно, но только не криптографию от Microsoft, ибо худшей чем у них репутации вы при всем желании не найдете.
Проприетарное ПО и аппаратные криптографические средства помимо ошибок могут содержать преднамеренные закладки, или их производитель может нагло врать об их свойствах. В качестве примера могу привести винчестеры с аппаратным шифрованием от Drecom, производитель которых заявлял о шифровании с помощью AES, но на самом деле там оказался тривиально взламываемый XOR. Подробно прочитать об этом вы можете здесь. Из всего этого можно сделать вывод — нельзя никогда верить словам производителя. Всегда требуйте доказательств его слов, и проверяйте их собственноручно, или интересуйтесь мнением профессионалов, если не имеете достаточной квалификации.

Вредоносное ПО

Если вы применяете правильный криптографический софт, то это устраняет вышеописанные опасности, но не устраняет все опасности до конца. Одной из серьезнейших опасностей является попадание к вам троянского ПО, которое может перехватывать вводимые пароли, ключи шифрования, или даже отсылать сами данные. Защита от вредоносного ПО это отдельная большая тема, и я не буду ее здесь освещать. Но запомните — вы должны исключить возможность попадания любого недоверенного ПО в вашу систему. В противном случае шифрование данных не имеет никакого смысла. Если вы занимаетесь обработкой действительно секретной информации, то лучше всего это делать на не подключенной к интернету системе, и держать на ней лишь минимум необходимого софта.

Физические атаки

Физические атаки всегда связаны с прямым физическим доступом к системе, или возможностью наблюдения за ней. В частности возможно удаленное наблюдение, установка жучков. Существует техника, позволяющая считать изображение с вашего монитора на расстоянии в сотню метров. Существует способ считывания вводимого через клавиатуру текста по звукам нажатия клавиш, которые могут быть получены с помощью жучка или лазерного микрофона. Помимо этого противник, имеющий физический доступ к вашей системе, может установить в нее программную закладку или аппаратный кейлогер. Ключи шифрования и конфиденциальные данные могут быть считаны из памяти компьютера несколькими способами, включая заморозку и перенос модулей памяти, или подключение считывающего устройства к шинам компьютера. Содержимое памяти может быть считано даже через некоторые внешние порты, например Firewire с помощью обычного ноутбука, без применения спецтехники.
Замечание: злоумышленник ни в коем случае не должен получить физический доступ к включенной системе, в памяти которой находятся конфиденциальные данные. В противном случае любое шифрование может быть легко взломано. Организация работы с конфиденциальными данными обязательно должна включать в себя физическую безопасность. Идеально иметь для этого специальную комнату, которая экранирована от ЭМИ-утечек, не имеет окон, имеет звукоизоляцию, средства постановки радиопомех, и обязательно крепкие железные двери. Эта комната должна охраняться, и доступ в нее должен быть регламентирован пропускным режимом. Контроль доступа должен дублироваться, т.е. желательно одновременное применение механических и электронных замков, а также наличие поста охраны. В случае невозможности принятия таких мер, нужно озаботиться хотя-бы средствами обнаружения попыток несанкционированного доступа, и средствами поиска установленных закладок. Все это не пустая паранойя, это необходимо для защиты ваших данных от сильного противника. Советую вам серьезно задуматься над вышесказанным.

Программные утечки данных

Применительно к дисковому шифрованию, в некоторых случаях возможно вскрытие зашифрованных данных без применения троянов и без физического доступа к включенной системе. Виной этому являются утечки конфиденциальных данных в ряд незашифрованных системных файлов. Наиболее опасными файлами в Windows являются реестр, файлы подкачки, crash dump и файл гибернации (hiberfil.sys). В файл подкачки пишется большая часть памяти пользовательских приложений, в том числе и обрабатываемые ими конфиденциальные данные. DiskCryptor препятствует попаданию ключей и паролей в файл подкачки благодаря хранению их в неподкачиваемой памяти. К тому же пароли и ключи не хранятся дольше, чем это нужно для их обработки, после чего занимаемая ими область памяти зануляется.
Подобная защита есть во всех адекватных Open Source криптографических продуктах, но ее не всегда достаточно для сведения риска утечек к нулю. Наиболее опасными являются утечки в hiberfil.sys и в crash дампы, так как при этом на диск сохраняется все содержимое памяти, включая неподкачиваемые области. Положение сильно осложняется тем, что механизм записи дампов и hiberfil.sys полностью недокументирован, и поэтому большинство существующих средств шифрования дисков не могут зашифровать эти файлы и они пишутся в открытом виде в сектора диска! Подобная уязвимость была в DriveCrypt plus pack старых версий, и даже в TrueCrypt 5.1. Последствия этого катастрофичны, так как сохранение дампа памяти в открытом виде однозначно приводит к вскрытию всей зашифрованной информации в течении нескольких минут.
В общем товарищи из Microsoft подложили нам такую свинью, что и никаких бекдоров в криптософте не надо. Наверняка этой особенностью Windows умеют пользоваться спецслужбы, откуда и пошли соответствующие слухи. Наиболее простым решением является отключение дампов и гибернации, о чем кстати сказано в документации к TrueCrypt. Проблема только в том, что большинство пользователей документацию не читают, и получают не безопасность, а только иллюзию таковой. В DiskCryptor начиная с версии 0.2.5 введены меры препятствующие утечкам ключевых данных. Если ваш системный раздел зашифрован, то DiskCryptor будет шифровать дампы и hiberfil.sys. Если не зашифрован, то при наличии подключенных криптодисков вход в гибернацию и запись дампов при крахе системы будут блокироваться, а если подключенных криптодисков нет, то перед входом в гибернацию или записью дампа будет автоматически очищаться кеш паролей в памяти. Таким образом программа препятствует попаданию ключевых данных на диск в открытом виде.
Но учтите, что всегда остается вероятность утечки данных по вине стороннего приложения. Например если у вас стоит софт, перехватывающий ввод с клавиатуры (это могут быть различные переводчики, программы автоматический смены раскладки клавиатуры, кейлогеры), либо вы передаете пароли через буфер обмена, то пароли могут быть сохранены в неконтролируемом DiskCryptor участке памяти, и попасть во всевозможные места утечки данных, вплоть до сохранения пароля в клавиатурный лог. Чтобы защититься от утечек, вызываемых сторонним софтом, вам будет достаточно зашифровать все разделы, на которые может идти сохранение подобной информации.


Как вы видите, практических способов расшифровки данных предостаточно. Их список отнюдь не ограничивается всем вышеописанным. В частности я не стал говорить про популярный в народе так называемый "терморектальный криптоанализ", не упомянул различные риски, связанные с человеческим фактором. Чем больше мы знаем ИБ, тем полнее понимаем свою беззащитность. Поэтому запомните — защита конфиденциальных данных не должна сводиться только к шифрованию, крайне важно не забывать о физической защите и организационной стороне вопроса. Но тем не менее, вышеописанное не отменяет необходимости пользоваться шифрованием, так как его использование в любом случае повышает затраты атакующего.


Итак, в заключении пара советов:
  1. Используйте методы сильной криптографии, напр AES, Twofish в отличает от методов слабого шифрования типа XOR
  2. Использовать ключи и пароли не короче 10 символов, лучше 30-40.
  3. Использовать несловарные ключи и пароли, которые впрочем могут быть составлены из словарных путем добавления цифр, спецсимволов и орфографических ошибок.
  4. Аккуратно обращайтесь с паролями. Забудьте про бумажки или файлы pass.txt на рабочем столе. Храните пароли в голове.
  5. Выключайте компьютер перед уходом, т к с помощью спецсредств может быть считана информация из ОЗУ при обыске, то же самое касается режима гибернации. Повторяю выключайте компьютер.
  6. Шифруйте все разделы жесткого диска целиком, а так же флешки и съемные ж/диски.
  7. От ректотермального криптоанализа паяльником никто не застрахован, но если вы не Бен Ладен, то вряд ли до такого дойдет.
  8. В качестве программы шифрования следует обращать внимание прежде всего на open-source проекты, т к там потенциально трудно утаить "черные ходы"(мастер-пароли). Программы должны иметь длительную историю развития, а т ж нужно следить за новостями о найденных уязвимостях.
  9.  Необходимо проверять компьютер на наличие аппаратных keylogger'ов, а так же устанавливать самые свежие антивирусы и брандмауэры с тем чтобы предотвратить появление на компьютере программных клавиатурных шпионов.
  10. В РФ пока что нет закона, по которому вы автоматически понесете ответственность за отказ предоставить пароль к криптоконтейнеру, как например в Великобретании. Поэтому не стоит "вестись" на разводы сотрудников органов. В частность право отказаться выдать пароль гарантировано Конституция РФ ст. 52 ч. 1 - "Никто не обязан свидетельствовать против себя самого, своего супруга и близких родственников, круг которых определяется федеральным законом."
  11. Помните, что даже если экспертам не удалось вскрыть криптоконтейнер, то это не значит что совокупности иных доказательств и свидетельских показаний не хватит для обвинительного приговора.

Комментариев нет: