Л. Н. Огородникова Электронная версия дипломной работы помещена в электронную библиотеку. Файл



Pdf просмотр
страница1/6
Дата29.12.2016
Размер0.64 Mb.
Просмотров730
Скачиваний0
  1   2   3   4   5   6

Федеральное агентство по образованию
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет информатики
Кафедра прикладной информатики
УДК 681.03
ДОПУСТИТЬ К ЗАЩИТЕ В ГАК
Зав. кафедрой, проф., д.т.н.
________________ Ю.Л. Костюк
«___» ___________ 2006 г.
Огородникова Людмила Николаевна
РАЗРАБОТКА ДРАЙВЕРА ФАЙЛОВЫХ СИСТЕМ В
ОПЕРАЦИОННЫХ СИСТЕМАХ НА БАЗЕ ЯДРА WINDOWS
NT ДЛЯ ЗАЩИТЫ ОТ НЕСАНКЦИОНИРОВАННОГО
ДОСТУПА
Дипломная работа
Научный руководитель, ст. преп. каф. ТОИ, к.т.н.
В.А. Лавров
Исполнитель, студ. гр. 1411
Л.Н. Огородникова
Электронная версия дипломной работы помещена в электронную библиотеку. Файл
Администратор
Томск – 2006

2
Реферат

Отчёт по производственной практике 72 с., 3 рис., 2 табл., 13 источников, 4 приложения
WINDOWS NT, ДРАЙВЕР, ФАЙЛОВАЯ СИСТЕМА, ЗАЩИТА ФАЙЛОВ
IRP, ФАЙЛОВЫЙ ОБЪЕКТ, IOCTL,
Объекты исследования – ядро операционной системы Windows NT, файловые системы, алгоритмы шифрования.
Цель работы – разработка фильтра-драйвера файловых систем для защиты файлов и каталогов от несанкционированного доступа.
Результаты работы – разработан фильтр-драйвер файловых систем.
Методы исследования – теоретический и экспериментальный.

3
Содержание
Введение ....................................................................................................................4 1 Системы защиты файлов от несанкционированного доступа...........................5 1.1 Обзор существующих систем .......................................................................5 1.2 Способы защиты файлов...............................................................................6 1.3 Алгоритмы шифрования ...............................................................................7 1.4 Выводы..........................................................................................................10 2 Архитектура программного пакета CrioFiles....................................................11 2.1 Концептуальный проект программы..........................................................11 2.2 Архитектура программы .............................................................................12 2.3 Ядро безопасности .......................................................................................13 2.3.1 Функция инициализации фильтра-драйвера .......................................14 2.3.2 FSESAMGR и CRYPTO.........................................................................14 2.3.3 Обработка IRPs.......................................................................................15 2.3.4 Обработка управляющих сообщений...................................................16 2.4 Выводы..........................................................................................................18 3 Реализация разработанной архитектуры ядра безопасности ..........................20 3.1 Инициализация ядра безопасности ............................................................20 3.2 Обработка IRP ..............................................................................................20 3.3 Реализация обработки управляющих сообщений....................................22 3.4 Механизм отладки фильтра-драйвера........................................................22 3.5 Результаты тестирования скорости доступа к файлам.............................22
Заключение..............................................................................................................24
Список использованных источников....................................................................25
Приложение А. Руководство программиста ........................................................26
Приложение Б. Руководство пользователя ..........................................................48
Приложение В. Формат файла FSESA..................................................................56
Приложение Г. Библиотеки CRYPTO и FSESAMGR .........................................61


4
Введение
С появлением и распространением компьютеров в жизни общества постоянно возрастает значение информационной составляющей (информационные ресурсы, информационные технологии и т.д.) и, в связи с этим, необходимость защиты информации от несанкционированного доступа.
Защита информации предполагает комплекс мероприятий. К таким мероприятиям относятся физическое ограничение доступа к системе, авторизация, шифрование, использование стеганографических методов и т.д. [1, 2, 3].
В настоящее время операционные системы Windows на базе ядра Windows NT установлены у огромного числа пользователей. Рассмотрим программное обеспечение, призванное решать проблему защиты информации в этих операционных системах.
В ядре Windows NT изначально был заложен механизм авторизации доступа к объектам ядра, в том числе к файлам и каталогам. Начиная с Windows 2000, появилась возможность шифровать файлы.
Тем не менее, встроенные в операционную систему Windows средства защиты файлов и каталогов имеют следующие недостатки:
1) работают только на томах NTFS;
2) Windows XP Home Edition не имеет встроенных средств для управления ограничением доступа к файлам и каталогам с помощью графического пользовательского интерфейса;
3) из-за экспортных или импортных ограничений производитель операционных систем Windows 2000/XP (корпорация Microsoft) преднамеренно делает небольшой длину ключа шифрования в некоторых локализованных версиях этих операционных систем;
4) в случае краха операционной системы Windows 2000/XP и невозможности ее последующей загрузки восстановить зашифрованные на томах NTFS файлы будет весьма проблематично.
При рассмотрении нескольких программных продуктов третьих фирм, реализующих защиту файлов и каталогов, был выявлен ряд недостатков.
Поэтому было принято решение разработать программный продукт, который был бы лишен вышеописанных недостатков. За основу был взят программный пакет
CrioFiles, реализованный для Windows 95/98/ME. Необходимо разработать и написать собственный фильтр-драйвер файловых систем, который будет заниматься аутентификацией, авторизацией и шифрованием, наладить его взаимодействие с приложениями уровня пользователя и осуществить перенос алгоритма шифрования.
Целью данной работы является разработка и реализация фильтра-драйвера файловых систем, который является главным компонентом системы CrioFiles, выполняющим все основные операции по защите файлов.

5
1 Системы защиты файлов от несанкционированного доступа
1.1 Обзор существующих систем
Проблема безопасности всегда была важной. Сейчас, когда существует множество способов получения информации с вашего компьютера, если вы не хотите, чтобы к важной информации имел доступ кто-либо другой, необходимо защищать эту информацию от несанкционированного доступа и следить за обновлениями системных программ, устраняющих обнаруженные проблемы с безопасностью.
Многие компании передают по компьютерным сетям только зашифрованную информацию и даже защищают каждый отдельный документ в своих офисах.
Обеспечение безопасности - это задача не только операционной системы. Системы, как правило, дают доступ ко всем документам на компьютере любому пользователю с правами администратора. Если вас такая ситуация не устраивает, и вы не хотите, чтобы к вашим материалам имел доступ кто-то другой, можно воспользоваться различными программами, позволяющими защищать ваши документы. Как правило, это шифрование, сокрытие файлов и папок.
В настоящее время предложение систем для защиты информации от несанкционированного доступа поражает своим размахом. Мы рассмотрели несколько экземпляров таких программных продуктов и выявили следующие недостатки.
Во всех рассмотренных нами системах отсутствует интеграция с оболочкой
Windows (Shell). В то время как у огромного количества пользователей установлена одна из операционных систем Windows от компании Microsoft, и пользователи уже привыкли к данному графическому интерфейсу. Т.о. пользователь, устанавливая одну из таких систем, вынужден изучать, как пользоваться новой системой, вместо того, чтобы выполнять привычные стандартные действия.
Использование медленных алгоритмов шифрования (например, ГОСТ 28147-
89) в случаях, когда необходимо шифровать большие объемы информации, является существенным недостатком. Сейчас известны более быстрые и при этом надежные алгоритмы.
Были найдены программные продукты, в которых предоставляется возможность скрывать файлы и каталоги при отсутствии возможности шифрования.
Если необходимо защитить очень важную информацию, то лучше не пользоваться подобными системами, т.к. в некоторых случаях вполне возможно увидеть скрытые файлы и папки. Например, злоумышленник запускает операционную систему
(Windows) в безопасном режиме (Safe mode) и легко находит (и может использовать в своих целях) скрытую информацию (такое может произойти, если производитель заранее не предусмотрел такой атаки). А если бы важная информация была зашифрована, то злоумышленник, даже найдя ее, не смог бы ничего понять.
В описаниях нескольких систем для защиты файлов от несанкционированного доступа отсутствовала информация об используемом алгоритме шифрования. Это заставляет задуматься: либо в системе используется новый неизвестный алгоритм шифрования, либо используется ограниченный шифр
(подробнее см. [3]), либо реализован небезопасный алгоритм шифрования и т.д.

6
Так же остерегайтесь систем, чьи производители обещают 100%-ую защиту информации, ведь нет ничего невозможного, вероятность новых прорывов в криптоанализе существует.
1.2 Способы защиты файлов
Не секрет, что каждый, кто хоть немного поработал на компьютере, не раз задумывался о защите своих файлов от потенциальных пользователей компьютера.
Существует два основных способа защиты секретной информации. Во- первых, можно попытаться скрыть сам факт существования секретной информации: нет секретной информации — нет и желающих его узнать. Основной прием, используемый для достижения этой цели — стеганография, то есть передача тайной информации под видом общедоступной. Прежде для этих целей использовались тексты (письма, книги, газетные статьи), определенные буквы или слова которых и составляли текст секретного послания. Теперь, в условиях всеобщей компьютеризации, наиболее распространенный стеганографический материал — это графические, звуковые и другие мультимедийные данные, формат которых позволяет замещать наименее значимую часть исходной информации на любую произвольную (собственно, на ту самую секретной информации, которую требуется спрятать). При этом главное правило формулируется так: все произведенные преобразования не должны быть заметны невооруженным глазом или ухом.
Второй способ основан на прямо противоположном принципе: мы ни от кого не скрываем, что передаем или храним важную секретную информацию и не предпринимаем никаких действий для предотвращения доступа к ней посторонних лиц, но информация при этом передается или хранится в таком виде, что понять ее истинный смысл могут только посвященные. Сделать это, и позволяет
криптография. Обычно секретные данные шифруются с помощью определенного алгоритма, и, чтобы прочитать их, сначала потребуется их расшифровать. Но гораздо удобнее осуществлять “прозрачный” доступ к данным: динамически шифровать информацию при записи на носитель информации (т.е. файл на диске будет храниться в зашифрованном виде) и дешифровать при чтении.
Относительно недавно появился новый способ защиты информации.
Компания Absolute Software предлагает интересную услугу в области защиты информации, особенно интересную пользователям, опасающимся, что их ПК могут быть похищены и ценная информация попадет в нежелательные руки. Разработанное
Absolute Software программное обеспечение, будучи установленным на пользовательские ПК, может быть в любой момент дистанционно приведено в режим боеготовности - ограбленному клиенту компании достаточно сообщить о похищении компьютера и в следующий раз, как тот окажется подключенным к Сети, сервер компании к которому время от времени обращается установленная на нем часть программного комплекса, даст команду на уничтожение всех секретных данных. Причем удаляется секретная информация при помощи записывания поверх случайной информации, что делает полностью невозможным ее восстановление. Для случая же, если краденый ПК длительное время не будет соединен с Интернетом, предусмотрена также система, автоматически удаляющая отмеченные пользователем файлы, в случае, если пароль при входе в систему набран неправильно. И даже в случае, если краденый ПК отложен "до лучших времен" и вообще не включается, при следующем его включении, если пройдет назначенное пользователем время - программа автоматически уничтожит защищаемую информацию. Обычно

7
пользователи назначают срок от 3 до 7 дней, в течение которых владелец ПК должен включать систему и вводить пароль.
1.3 Алгоритмы шифрования
С давних времен проблема защиты информации путем ее преобразования, исключающего ее прочтении посторонним лицом, волновала человеческий ум.
История криптографии - ровесница истории человеческого языка. В древних обществах ею владели только избранные, поэтому первоначально письменность сама по себе была криптографической системой. Священные книги древнего Египта, древней Индии тому примеры.
С широким распространением письменности криптография стала формироваться как самостоятельная наука. Первые криптосистемы встречаются уже в начале нашей эры. Так, Цезарь в своей переписке использовал уже более-менее систематический шифр, получивший его имя. Со времен войны Спарты против
Афин был известен шифр “Сцитала”.
Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Появление вычислительных средств в послевоенные годы ускорило разработку и совершенствование криптографических методов. [1]
Почему проблема использования криптографических методов в информационных системах (ИС) стала в настоящий момент особо актуальна?
С одной стороны, расширилось использование компьютерных сетей, в частности, глобальной сети Интернет, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц. [1, 2, 3]
С другой стороны, появление новых мощных компьютеров, технологий сетевых и нейронных вычислений сделало возможным дискредитацию криптографических систем, еще недавно считавшихся практически не раскрываемыми. [1, 2, 3]
Все это постоянно подталкивает исследователей на создание новых шифров и тщательный анализ уже существующих.
Рассмотрим два основных типа алгоритмов (шифров), основанных на ключах
(безопасность этих алгоритмов полностью основана на ключах, а не на шифрах, поэтому алгоритм может быть опубликован и проанализирован): симметричные и ассиметричные.
В ассиметричных алгоритмах (называемые еще алгоритмами с открытым
ключом) имеется два ключа, один из которых открытый (он известен всем), а другой закрытый. Закрытый ключ не может быть (по крайней мере, в течение разумного интервала времени) рассчитан по открытому ключу. Приведу несколько известных шифров данного типа: RSA, Pohlig-Hellman, Rabin, ElGamal и т.д
Симметричные алгоритмы (иногда их называют условными алгоритмами,
алгоритмами с секретным ключом или алгоритмами с одним ключом) являются алгоритмами, в которых ключ шифрования может быть рассчитан по ключу дешифрования и наоборот. [1, 2, 3] В большинстве симметричных алгоритмов ключи

8
шифрования и дешифрования одинаковы. Раскрытие ключа означает, что кто угодно сможет шифровать и дешифровать тексты.
Симметричные алгоритмы делятся на две категории. Потоковые алгоритмы или потоковые шифры обрабатывают открытый текст побитно (иногда побайтно).
До появления компьютеров алгоритмы обычно обрабатывали открытый текст посимвольно. Такой вариант может рассматриваться как пример потокового алгоритма, обрабатывающего поток символов. [1, 3] Приведем примеры потоковых шифров: ORYX, RC4, SEAL, Sapphire.
Другая категория алгоритмов работает с группами битов открытого текста.
Группы битов называются блоками, а алгоритмы – блочными алгоритмами или
блочными шифрами. Типичный размер блока для алгоритмов, используемых в компьютерных модемах, составляет 64 бита – достаточно большое значение, чтобы помешать анализу, и достаточно небольшое и удобное для работы. [1, 3] Шифров данного типа на сегодняшний день разработано огромное количество. Назовем несколько алгоритмов: DES, AES, CAST, Lucifer, RC6, LOKI, ГОСТ 28147-89. Мы рассмотрим DES – самый известный блочный шифр, по мнению Брюса Шнайера
[3]. Так же необходимо рассмотреть шифр AES (Rijndael), реализованный в программном пакете CrioFiles.
Симметричный шифр DES
DES (Data Encryption Standard, стандарт шифрования данных) – самый популярный компьютерный алгоритм шифрования, являлся американским и международным стандартом. (Описание данного шифра приведено в [1, 3].)
DES представляет собой блочный шифр. Он шифрует данные 64-битовыми блоками (длина ключа равна 64 битам). На вход алгоритма подается 64-битовый блок открытого текста, данный блок проходит через 16 этапов шифра (при этом данные объединяются с ключом), и мы получаем 64-битовый блок шифротекста.
Алгоритм и ключи для шифрования и дешифрования используются одинаковые (но есть небольшие различия в использовании ключа: при дешифровании ключи должны использоваться в обратном порядке).
Остановимся на безопасности шифра DES: насколько данный алгоритм безопасен сегодня? При очень простом подходе для ответа на данный вопрос учитывается только длина ключа (56 битов). Машина для вскрытия DES грубой силой, способная найти ключ за 3.5 часа, в 1993 году стоила 1 миллион долларов. Не нужно забывать, что стоимость уменьшается в 5 раз каждые 10 лет. С течением времени DES будет становиться все менее и менее безопасным. [3]
Шифр AES (Rijndael)
Алгоритм Rijndael разработан бельгийскими криптографами: Джоан Димен из компании Proton World International и Винсентом Риджменом из бельгийского университета Katholieke Universiteit Leuven. Данный шифр является симметричным блоковым алгоритмом шифрования, который шифрует 128 бит открытого текста (в 2 раза больше, чем в случае DES), используя ключи длиной 128, 192 и 256 бит. AES эффективно работает в самых разных средах, от программируемых шлюзов до смарт-карт, программного обеспечения настольных компьютеров и браузеров. [4]
При описании данного шифра автором использовались источники [5, 6].

9
Промежуточный результат шифрования назовем

состоянием (State).
Состояние можно представить в виде прямоугольного массива байтов. Этот массив имеет 4 строки, а число столбцов обозначено как Nb и равно длине блока, деленной на 32.
Ключ шифрования (Cipher Key) также представлен в виде прямоугольного массива с четырьмя строками. Число столбцов обозначено как Nk и равно длине ключа, деленной на 32. Это показано на Рисунке 1.
Байты входных данных (открытый текст) для шифра отображаются в байты состояния в порядке a
0,0
, a
1,0
, a
2,0
, a
3,0
, a
0,1
, a
1,1
, a
2,1
, a
3,1
, a
4,1
... Байты ключа шифрования отображаются в байты k
0,0
, k
1,0
, k
2,0
,
k
3,0
, k
0,1
, k
1,1
, k
2,1, k
3,1
… После завершения действия шифра выходные данные получаются из байтов состояния в том же порядке.
Рисунок 1 - Пример представления состояния (Nb = 6) и ключа шифрования (Nk = 4) [5]
Число раундов (Number of rounds) обозначено как Nr и зависит от значений
Nb и Nk. Оно приведено в Таблице 1.
Таблица 1: Число циклов (Nr) как функция от длины ключа и длины блока [5]
Ключ раунда (Round Key) выделяется из ключа шифрования с помощью распределителя ключей (key schedule).
В каждом раунде выполняется 4 различных преобразования: замена байт
(ByteSub transformation), сдвиг строк (ShiftRow transformation), перемешивание
столбцов (MixColumn transformation), добавление ключа раунда (AddRoundKey
transformation).
Шифр Rijndael состоит из: начального добавления ключа раунда, Nr – 1 раундов и заключительного раунда (здесь в отличие от стандартного раунда отсутствует одно преобразование - смешивание столбцов).
Rijndael — быстрый и компактный алгоритм с простой математической структурой. Но из-за этой простоты взломщикам потребуется изучить более ограниченный математический аппарат.
Rijndael продемонстрировал хорошую устойчивость к атакам на реализацию, при которых взломщик пытается декодировать зашифрованное сообщение, анализируя внешние проявления алгоритма, в том числе уровень энергопотребления и время выполнения. Rijndael можно легко защитить от таких атак, поскольку он опирается в основном на булевы операции.

10
Общая производительность программных реализаций Rijndael оказалась наилучшей среди кандидатов на титул AES. Он прекрасно прошел все тесты со смарт-картами и в аппаратных реализациях. Алгоритму в значительной степени присущ внутренний параллелизм, что позволяет без труда обеспечить эффективное использование процессорных ресурсов. Увеличение длины ключа несколько замедляет его работу, поскольку при обработке ключей большей длины алгоритм предусматривает выполнение дополнительных раундов шифрования.
Различные алгоритмы представляют различные степени безопасности в зависимости от того, насколько трудно взломать алгоритм. Если стоимость взлома выше, чем стоимость зашифрованных данных, то, скорее всего, вы в безопасности.
Если время взлома алгоритма больше, чем время, в течение которого зашифрованные данные должны храниться в секрете, то вы опять же, скорее всего, вы в безопасности. Если объем данных, зашифрованных одним ключом, меньше, чем объем данных, необходимых для взлома алгоритма, вы, скорее всего, в безопасности.
Слова “скорее всего” подразумевают, что нет ничего невозможного, вероятность новых прорывов в криптоанализе существует. Опять же значимость большинства данных падает со временем. Важно, чтобы значимость данных всегда оставалась меньше, чем стоимость взлома системы, защищающей данные.
1.4 Выводы
Итак, в результате проведенного исследования были выявлены следующие недостатки в системах для защиты от несанкционированного доступа для операционных систем на базе ядра Windows NT:
• отсутствие интеграции с оболочкой Windows (Shell);
• использование медленных алгоритмов шифрования (например, ГОСТ 28147-89);
• предоставление возможности скрывать файлы и каталоги при отсутствии возможности шифрования;
• отсутствие информации об используемом алгоритме шифрования;
• отсутствие прозрачного доступа к защищаемым файлам.
Решено было реализовать свою собственную систему для защиты от несанкционированного доступа в операционных системах семейства Windows NT, в которой бы отсутствовали вышеперечисленные недостатки. В качестве методов защиты были выбраны следующие: аутентификация, авторизация и шифрование.
Для шифрования предполагается использовать блочный шифр Rijndael (AES), т.к. минимальная длина ключа составляет 128 бит, скорость работы высока, нет атак, также данный алгоритм является стандартом.
За основу взят программный пакет CrioFiles для защиты от несанкционированного доступа для операционных систем Windows 95/98/ME.

11


Поделитесь с Вашими друзьями:
  1   2   3   4   5   6


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал