Назад в библиотеку

Анализ криптографических средств в Windows 7

Авторы: Первусяк А. И., Иванов А. Ю.
Источник: «Информатика та комп’ютерні технології» Збірка праць VII міжнародної науково-технічної конференції студентів, аспірантів та молодих науковців. 22-23 листопада 2011 р. стор. 281-286.

Аннотация

Первусяк А.И., Иванов А.Ю. Анализ криптографических средств в Windows 7 Рассмотрены функции подсистемы защиты ОС. Исследованы модули, реализующие криптографическую функцию подсистемы защиты. Исследованы возможности системы шифрования EFS и BitLocker Windows 7. Исследован алгоритм шифрования DESX. Проведен сравнительный анализ способов запуска програмного модуля BitLocker Windows 7. Проведен анализ характеристик шифрования/расшифрования различных типов файлов.

Общая постановка проблемы.

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

Подсистема защиты ОС Windows 7 выполняет следующие основные функции: идентификация и аутентификация, разграничение доступа, аудит, управление политикой безопасности, криптографические функции и сетевые функции. Каждая из перечисленных функций подсистемы защиты решается одним или несколькими программными модулями (для криптографической - BitLocker Windows 7). Некоторые функции встраиваются непосредственно в ядро ОС (для криптографической – система шифрования файлов EFS). Установлен определенный интерфейс, используемый для взаимодействия модулей при решении задач.[1]

Встроенный непосредственно в ядро ОС модуль, реализующий криптографическую функцию подсистемы защиты ОС Windows 7.

Функции системы шифрования файлов EFS (Encrypting File System) обеспечивают гибкость для корпоративных пользователей при шифровании файлов с данными. В основе технологии шифрования EFS используют архитектуру Windows CryptoAPI. При этом используется шифрование с открытым ключом. Для шифрования каждого файла случайным образом генерируется ключ шифрования файла. Для шифрования файла может применяться любой симметричный алгоритм шифрования. В настоящее же время в EFS используется один алгоритм (DESX), являющийся модификацией стандарта DES. Ключи шифрования EFS хранятся в резидентном пуле памяти (сама EFS расположена в ядре Windows 7), что исключает несанкционированный доступ к ним через файл подкачки. [3]

Crypto API ориентирован на решение задач:

В Crypto API для решения задачи расширения реализация всех алгоритмов (шифрования, цифровой подписи и т.п.) полностью выведена из состава самого Crypto API и реализуется в отдельных, независимых динамических библиотеках – «криптопровайдерах» (Cryptographic Service Provider – CSP). Сам же Crypto API предъявляет определенные требования к набору функций криптопровайдера, предоставляя конечному пользователю унифицированный интерфейс работы с CSP. Конечному пользователю для полноценного использования всех функций криптопровайдера достаточно знать его строковое имя и номер типа.

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

Crypto API, как основная библиотека для обеспечения работы с криптографическими данными поддерживает данные стандарты и позволяет формировать криптографические приложения, которые могут быть обработаны в дальнейшем любыми программными продуктами.[5]

Суть алгоритма DESX состоит в том, что перед выполнением однократного DES и после него операцией XOR накладываются различные 64-битные фрагменты ключа на данные: C = k3 XOR DESk1 ( k2 XOR M).

Операция наложения фрагмента ключа на вход и/или выход алгоритма называется отбеливанием. Однако в алгоритме DESX найдено несколько уязвимостей:

Эти проблемы не проявляются только в варианте DESX, использующем алгоритм хэширования SHA-1 для расширения ключа алгоритма.[2]

Процесс шифрования файла при помощи EFS можно разделить на следующие этапы:

  1. Загрузка профиля. Если профиль пользователя еще не загружен (например, шифрование или дешифрование файла происходит при помощи программы командной строки runas.exe), тогда профиль пользователя загружается.
  2. Создание файла журнала. На этом этапе создается файл журнала шифрования с именем формата efsX.log, где X определяет номер файла, который был зашифрован в текущий сеанс шифрования процессом lsasrv.exe. Данный файл создается в каталоге System Volume Information.
  3. Генерация FEK. Выполняется генерация случайного 128-битного числа, используемого в качестве FEK. FEK используется операционной системой для шифрования содержимого файла по определенному алгоритму, после чего значение FEK добавляется к самому зашифрованному файлу. Однако перед тем как добавить FEK к файлу, операционная система выполняет шифрование FEK при помощи алгоритма DESX, используя при этом открытый пользовательский ключ. После выполнения всех этих операций файл считается зашифрованным. Чтобы просмотреть файл, нужно расшифровать его при помощи FEK, а FEK можно расшифровать только при помощи ключей, которые можно получить только после загрузки учетной записи того пользователя, который зашифровал файл.
  4. Получение открытого и закрытого пользовательского ключа. Если прежде пользователь никогда не выполнял шифрование файлов, тогда генерируется пара пользовательских ключей (закрытый и открытый пользовательские ключи). В противном случае открытый пользовательский ключ берется из параметра «REG_BINARY» типа «CertificateHash», расположенного в ветви реестра «HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys». На основе данных этой ветви реестра создается сигнатура открытого ключа пользователя. Закрытые ключи находятся в каталоге «%userprofile%\AppData\Roaming\ Microsoft\Crypto\RSA. Содержимое этого каталога зашифровано на основе симметричного ключа, который называется мастер-ключом пользователя. Мастер ключ содержится в каталоге «%userprofile%\AppData\Roaming\Microsoft\ Protect». Он также зашифрован — с помощью алгоритма DESX и пароля пользователя.
  5. Создание DDF. Для шифруемого файла создается связка ключей DDF (совокупность нескольких DDF, определяющих пользователей, которые могут расшифровать данный файл). DDF содержит информацию о пользователе, который может открыть данный файл, а также о его правах доступа к файлу. В эту информацию входит SID-пользователя, имя контейнера, имя провайдера, зашифровавшего файл, хеш сертификата EFS, используемый при расшифровке, а также зашифрованный FEK.
  6. Создание DRF. Для шифруемого файла создается связка ключей DRF. DRF содержит информацию обо всех агентах восстановления, которые могут открыть данный зашифрованный файл. Информация, помещаемая в DRF, аналогична информации, помещаемой в DDF. Агенты восстановления представляют собой учетные записи пользователей, которые могут открыть зашифрованный файл, даже если они не входят в ту группу пользователей, которым разрешен доступ к файлу. Как правило, агентом восстановления является администратор.
  7. Шифрование. Создается резервная копия шифруемого файла с именем efs0.tmp. В дальнейшем шифрование будет применяться именно к резервному файлу, после чего его содержимое будет скопировано в исходный файл. И в самом конце произойдет удаление резервного файла, а также файла журнала шифрования.[3]

Программный модуль подсистемы защиты Windows 7, реализующий криптографическую функцию BitLocker Windows 7.

Когда операционная система находится в активном состоянии, ее можно защитить при помощи локальных политик безопасности, антивирусного программного обеспечения и брандмауэров с межсетевыми экранами, а вот защитить том операционной системы на жестком диске вы можете средствами шифрования BitLocker. Для того чтобы воспользоваться всеми преимуществами шифрования BitLocker и проверки подлинности системы, компьютер должен позволять сохранять определенный ключ на съемном носителе для запуска системы. Помимо модуля TPM, в базовой системе ввода-вывода (BIOS) должна быть установлена спецификация группы Trusted Computing Group (TCG), которая перед загрузкой операционной системы создает цепочку доверий для действий и включает поддержку статического корневого объекта изменения уровня доверия. Не все материнские платы оснащены таким модулем как TPM, но даже без этого модуля операционная система позволяет воспользоваться данной технологией шифрования при наличии запоминающих устройств USB с поддержкой команд UFI, а также в том случае, если жесткий диск разбит на два и более тома. Все тома должны быть отформатированы в файловой системе NTFS.

Архитектура шифрования BitLocker обеспечивает управляемые и функциональные механизмы, как в режиме ядра, так и в пользовательском режиме. На высоком уровне, к основным компонентам BitLocker можно отнести:

Шифрование BitLocker поддерживает пять режимов проверки подлинности в зависимости от аппаратных возможностей компьютера и требуемого уровня безопасности. Если аппаратная конфигурация поддерживает технологию доверенного платформенного модуля (TPM), то можно сохранять VMK как в TMP, так и в TPM и на устройстве USB и при загрузке системы вводить PIN. А для платформ, которые не совместимы с технологией TPM, можно хранить ключ на внешнем USB устройстве.[4]

При загрузке операционной системы с включенным шифрованием BitLocker, выполняется последовательность действий, которая зависит от набора средств защиты тома. Эти действия включают в себя проверку целостности системы и другие шаги по проверке подлинности перед снятием блокировки с защищённого тома. В приведенной таблице (таблица 1) приведены способы, которые можно использовать для шифрования тома:

Таблица 1. Сравнительная характеристика способов запуска BitLocker Windows 7

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

Моделирование дифференциального-алгебраического уравнения Ван-дер-Поля.

В экспериментальной части было проведено исследование системы шифрования EFS. Выполнялось шифрование/расшифрование различных типов файлов (doc, xls, exe, txt, mpx, bmp,avi и т.п.). Результаты отбражены в таблице 2.

Таблица 2. Характеристики шифрования/расшифрования различных типов файлов.

Основываясь на полученных результатах, пришли к выводам, что в результате шифрования файлов их сжатие не производится, и процесс расшифрования в среднем на 10-20% быстрее. Это объясняется структурой алгоритма шифрования и расшифрования.

Выводы

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

Список использованной литературы

1. Шаньгин В. Ф. Защита компьютерной информации. Эффективные методы и средства. – М.: ДМК Пресс, 2008. – 544 с. : ил.
2. Панасенко С. П. Алгоритмы шмфрования. Специальный справочник. – СПб. : БХВ-Петербург, 2009. – 576с. : ил.
3. Информационный сайт http:/www.infocity.kiev.ua. Статья «Шифрующая файловая система (EFS)», опубликована Станиславом Коротыгиным.
4. Информационный сайт http:/dimanb.wordpress.com. Статья «Windows 7 BitLocker или шифрование данных. Часть 1», опубликована Дмитрием Булановым.
5. Информационный сайт http://www.insidepro.com/rus/index.shtml Статья «Использование Crypto API», опубликована Юрием Николаевым.