Методы и средства защиты компьютерной

advertisement
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ВОЛЖСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ (филиал) ВОЛГОГРАДСКОГО ГОСУДАРСТВЕННОГО ТЕХНИЧЕСКОГО УНИВЕРСИТЕТА
Д. Н. Лясин, С. Г.Саньков
Методы и средства защиты компьютерной
информации
Учебное пособие
РПК «Политехник»
Волгоград 2005
УДК 004.056
Рецензенты
Заведующий кафедрой «Прикладная математика и информатика» ВГИ (филиал) ВолГУ, доктор техн. наук Мирецкий И. Ю.
Заведующий кафедрой «Автоматизация технологических процессов» Волжского филиала МЭИ ТУ, доктор техн. наук Шевчук В. П.
Д. Н. Лясин, С. Г. Саньков
Методы и средства защиты компьютерной информации: учебное пособие/ ВолгГТУ, Волгоград, 2005. – 127 с.
ISBN 5-230-04627-9
В учебном пособии подробно рассматриваются вопросы обеспечения безопасности информации в современных информационных системах. Дан обзор основных
угроз информационной безопасности, основных методов предотвращения угроз, механизмов реализации этих методов. Рассмотрены такие средства обеспечения безопасности, как криптография, применение межсетевых экранов, аутентификация и
авторизация, использование защищенных сетевых протоколов. Рассмотрены современные программные и аппаратные средства защиты информации, приведены примеры практической реализации методов защиты.
Предназначено для студентов, обучающихся по направлению 5528 "Информатика и вычислительная техника" и специальности 2201 "Вычислительные машины, комплексы, системы и сети" всех форм обучения.
Ил. 39 Табл. 7 Библиогр. - 13 назв.
Печатается по решению редакционно-издательского совета Волгоградского государственного технического университета
ISBN 5-230-04627-9
©
Волгоградский государственный
технический университет, 2005
Оглавление
1.Основы информационной безопасности……………….
1.1. Основные понятия …………………………………………
1.2.Регламентирующие документы в области информационной безопасности………………………………………………...
1.3.Классификация угроз информационным системам……….
1.4. Основные методы обеспечения безопасности информационных
систем………………………………………………….
1.5.Вывод…………………………………………………………
2. Криптографические методы защиты информации….
2.1. Термины и определения…………………………………….
2.2. Классификация криптографических алгоритмов…………
2.3. Симметричное блочное шифрование……………………...
2.3.1. Основные принципы блочного симметричного шифрования ………………………………………………
2.3.2. Алгоритмы блочного симметричного шифрования…………………………………………………………
2.3.3. Режимы шифрования блочных шифров………….
2.3.4. Криптоанализ блочных шифров…………………..
2.4. Симметричное поточное шифрование…………………….
2.5. Асимметричное шифрование………………………………
2.5.1. Математические основы асимметричного шифрования…………………………………………………….
5
5
6
8
12
15
16
16
17
21
21
25
29
31
35
39
2.5.2. Алгоритмы асимметричного шифрования……….
40
42
2.5.3. Сравнительный анализ симметричных и асимметричных
алгоритмов шифрования…………………….
50
2.6. Хэш-функции………………………………………………..
2.7.Вывод…………………………………………………………
3. Аутентификация………………………………………….
3.1. Парольная аутентификация………………………………...
3.2. Аутентификация на основе сертификатов………………...
51
55
57
57
64
3.3. Использование аутентифицирующих устройств………….
3.4. Биометрические методы аутентификации………………...
3.5. Выводы………………………………………………………
4. Электронная цифровая подпись……………………….
5. Основы сетевой безопасности…………………………..
65
66
68
5.1. Угрозы безопасности в глобальных сетях…………………
69
77
77
5.2. Средства криптографической защиты соединений в вычислительных сетях……………………………………………...
80
5.3. Использование межсетевых экранов для защиты локальных сетей…………………………………………………………
85
5.4. Вывод………………………………………………………...
6. Средства безопасности операционных систем……….
6.1. Средства безопасности ОС семейства Windows…………..
6.2. Средства безопасности ОС семейства Unix……………….
6.3. Вывод………………………………………………………...
Список литературы…………………………………………
99
100
100
112
126
127
1.Основы информационной безопасности
1.1.
Основные понятия
Разговор об информационной безопасности необходимо начать с самого объекта защиты. Если говорить о термине «информация», то для него существует масса
определений. Так, например, в Законе РФ «Об информации, информатизации и защите информации» принято следующее определение: « Под информацией понимаются сведения о лицах, предметах, фактах, событиях, явлениях и процессах независимо от формы их представления».
Информация имеет несколько категорий, таких как адекватность, достоверность, полнота, избыточность, объективность, актуальность. Если же исходить с
точки зрения информационной безопасности, то информация должна обладать следующими категориями:

конфиденциальность – гарантия того, что конкретная информация до-
ступна только тем пользователям, которым этот доступ разрешен (авторизованным
пользователям);

целостность – гарантия сохранения за информацией правильных значе-
ний, не измененных в процессе хранения и передачи;

аутентичность – гарантия того, что источником информации является
именно то лицо, которое заявлено как ее автор;

апеллируемость – гарантия того, что информацию можно привязать к ее
автору и при необходимости доказать, что автором сообщения является именно заявленный человек, и не может являться никто другой;

доступность – гарантия того, что авторизованные пользователи всегда
смогут получить доступ к информации.
Таким образом, главной задачей подсистемы безопасности информационной
системы является обеспечения указанных категорий информации. Под информационной безопасностью будем понимать защищенность информации и поддерживающей инфраструктуры (совокупности программных и аппаратных средств, обеспечивающих хранение, обработку и передачу информации) от случайных или преднаме5
ренных воздействий естественного или искусственного характера, которые могут
нанести неприемлемый ущерб субъектам информационных отношений, в том числе
владельцам и пользователям информации и поддерживающей инфраструктуры. Защита информации – это комплекс мероприятий, направленных на обеспечение информационной безопасности.
1.2.
Регламентирующие документы в области информационной безопасности
Очевидно, что разные системы обеспечивают различную степень информационной безопасности в зависимости от стоящих перед ними задач или квалификации
их разработчиков. Для того чтобы сформулировать основные требования к информационным системам, ввести их классификацию с точки зрения безопасности, различными международными и национальными институтами были разработаны стандарты в области компьютерной безопасности. В качестве примеров подобных стандартов можно привести "Критерии оценки безопасности компьютерных систем"
национального комитета компьютерной безопасности США («Оранжевая книга»),
руководящие документы Гостехкомиссии России, гармонизированные критерии европейских стран, международный стандарт ISO/IEC 15408, техническая спецификация X.800 и множество других. Каждый из этих документов вводит собственные
требования к информационным системам, чтобы отнести их к определенному классу
безопасности. Так, например, «Оранжевая книга» определяет безопасную систему
как систему, которая «управляет доступом к информации так, что только авторизованные лица или процессы, действующие от их имени, получают право читать, писать и удалять информацию». Надежная система определяется там же как "система,
использующая достаточные аппаратные и программные средства, чтобы обеспечить
одновременную обработку информации разной степени секретности группой пользователей без нарушения прав доступа". При этом политика безопасности оценивается по двум основным критериям – политике безопасности и гарантированности.
Политика безопасности - набор законов, правил и норм поведения, определяющих,
как организация обрабатывает, защищает и распространяет информацию. Гарантированность - мера доверия, которая может быть оказана архитектуре и реализации
6
системы, она показывает, насколько корректны механизмы, отвечающие за проведение в жизнь политики безопасности.
«Оранжевая книга» открыла путь к ранжированию информационных систем
по степени доверия безопасности. В ней определяется четыре уровня доверия - D,
C, B и A. Уровень D предназначен для систем, признанных неудовлетворительными.
По мере перехода от уровня C к A к системам предъявляются все более жесткие
требования. Уровни C и B подразделяются на классы (C1, C2, B1, B2, B3) с постепенным возрастанием степени доверия. Всего имеется шесть классов безопасности C1, C2, B1, B2, B3, A1. Чтобы в результате процедуры сертификации систему можно
было отнести к некоторому классу, ее политика безопасности и уровень гарантированности должны удовлетворять заданным требованиям по обеспечению произвольного и принудительного управления доступом, идентификации и аутентификации пользователей, аудиту, возможностям восстановления и администрирования системы и многим другим. Так, например, операционная система Windows NT разработана с тем расчетом, чтобы обеспечивать уровень безопасности C2. Основные
требования, которым должна удовлетворять информационная система, чтобы ей мог
быть присвоен этот уровень, следующие:

должен обеспечиваться контроль за доступом к ресурсам на уровне как
отдельных пользователей, так и групп пользователей;

память должна быть защищена, то есть ее содержание не должно быть
доступно для чтения после того, как процесс освободил память;

в момент входа в систему пользователь должен однозначно идентифи-
цировать себя, система должна знать, кто осуществляет те или иные действия;

системный администратор должен иметь возможность проверять все
события, связанные с безопасностью;

система должна предотвращать себя от внешнего воздействия или вме-
шательства в ее работу.
Российские регламентирующие документы также вводят требования и классификации. Так, в классификации автоматизированных систем (АС) по уровню защищенности от несанкционированного доступа (НСД) устанавливается девять классов защищенности АС от НСД к информации. Каждый класс характеризуется опре7
деленной минимальной совокупностью требований по защите. Классы подразделяются на три группы, отличающиеся особенностями обработки информации в АС.
В пределах каждой группы соблюдается иерархия требований по защите в зависимости от ценности (конфиденциальности) информации и, следовательно,
иерархия классов защищенности АС. Третья группа классифицирует АС, в которых
работает один пользователь, имеющий доступ ко всей информации АС, размещенной на носителях одного уровня конфиденциальности. Группа содержит два класса 3Б и 3А.
Вторая группа классифицирует АС, в которых пользователи имеют одинаковые права доступа (полномочия) ко всей информации АС, обрабатываемой и (или)
хранящейся на носителях различного уровня конфиденциальности. Группа содержит два класса - 2Б и 2А. Первая группа классифицирует многопользовательские
АС, в которых одновременно обрабатывается и (или) хранится информация разных
уровней конфиденциальности и не все пользователи имеют право доступа ко всей
информации АС. Группа содержит пять классов - 1Д, 1Г, 1В, 1Б и 1А. Более подробную информацию можно узнать в [5].
1.3.
Классификация угроз информационным системам
Под угрозой будем понимать потенциально возможные воздействия на систему,
которые прямо или косвенно могут нанести урон пользователю. Непосредственную
реализацию угрозы называют атакой.
Знание возможных угроз, а также уязвимых мест защиты, которые эти угрозы
обычно эксплуатируют, необходимо для того, чтобы выбирать наиболее экономичные средства обеспечения безопасности.
Имеет смысл различать неумышленные и умышленные угрозы.
Неумышленные угрозы связаны с:

ошибками оборудования или программного обеспечения: сбои процессора,
питания, нечитаемые дискеты, ошибки в коммуникациях, ошибки в программах;
8

ошибками человека: некорректный ввод, неправильная монтировка дисков,
запуск неправильных программ, потеря дисков, пересылка данных по неверному
адресу;

форс-мажорными обстоятельствами.
Умышленные угрозы, в отличие от случайных, преследуют цель нанесения
ущерба пользователям информационных систем и, в свою очередь, подразделяются
на активные и пассивные. Пассивная угроза - несанкционированный доступ к информации без изменения состояния системы, активная – связана с попытками перехвата и изменения информации.
Не существует общепринятой классификации угроз безопасности. Один из вариантов классификации может быть выполнен по следующим признакам:
• по цели реализации;
• по принципу воздействия на систему;
• по характеру воздействия на систему;
• по причине появления используемой ошибки защиты;
• по способу воздействия атаки на объект;
• по объекту атаки;
• по используемым средствам атаки;
• по состоянию объекта атаки.
К наиболее распространенным угрозам безопасности относят:
Несанкционированный доступ (НСД) – наиболее распространенный вид компьютерных нарушений. Он заключается в получении пользователем доступа к ресурсу, на который у него нет разрешения в соответствии с принятой в организации
политикой безопасности.
Отказ в услуге. Представляет собой преднамеренную блокировку легального
доступа к информации и другим ресурсам;
Незаконное использование привилегий. Злоумышленники, применяющие данный способ атаки, обычно используют штатное программное обеспечение, функционирующее в нештатном режиме. Незаконный захват привилегий возможен либо
при наличии ошибок в самой системе, либо в случае халатности при управлении си9
стемой. Строгое соблюдение правил управления системой защиты, соблюдение
принципа минимума привилегий позволяет избежать таких нарушений.
«Скрытые каналы». Представляют собой пути передачи информации между
процессами системы, нарушающие системную политику безопасности. В среде с
разделением доступа к информации пользователь может не получить разрешение на
обработку интересующих его данных, однако может придумать для этого обходные
пути. «Скрытые каналы» могут быть реализованы различными путями, в частности
при помощи программных закладок («троянских коней»).
«Маскарад». Под «маскарадом» понимается выполнение каких-либо действий
одним пользователем от имени другого пользователя. Такие действия другому пользователю могут быть разрешены. Нарушение заключается в присвоении прав и привилегий.
«Сборка мусора». После окончания работы обрабатываемая информация не
всегда полностью удаляется из памяти ПК. Данные хранятся на носителе до перезаписи или уничтожения; при выполнении этих действий на освободившемся пространстве диска находятся их остатки. При искажении заголовка файла их прочитать
трудно, но все же возможно с помощью специальных программ и оборудования. Такой процесс принято называть «сборкой мусора». Он может привести к утечке важной информации.
«Люки». Представляют собой скрытую, недокументированную точку входа в
программный модуль. «Люки» относятся к категории угроз, возникающих вследствие ошибок реализации какого-либо проекта (системы в целом, комплекса программ и т. д.). Поэтому в большинстве случаев обнаружение «люков» – результат
случайного поиска.
Вредоносные программы. В последнее время участились случаи воздействия
на вычислительную систему специально созданными программами. Для обозначения всех программ такого рода был предложен термин «вредоносные программы».
Эти программы прямо или косвенно дезорганизуют процесс обработки информации
или способствуют утечке или искажению информации. К самым распространенным
видам подобных программ относятся:
10
• «Вирус»– это программа, которая способна заражать другие программы, модифицируя их так, чтобы они включали в себя копию вируса.
• «Троянский конь» – программа, которая содержит скрытый или явный программный код, при исполнении которого нарушается функционирование системы
безопасности. «Троянские кони» способны раскрыть, изменить или уничтожить
данные или файлы. Их встраивают в программы широкого пользования, например, в
программы обслуживания сети, электронной почты.
• «Червяк» – программа, распространяемая в системах и сетях по линиям связи. Такие программы подобны вирусам: заражают другие программы, а отличаются
от вирусов тем, что не способны самовоспроизводиться.

«Жадная» программа – программа, которая захватывает (монополизирует)
отдельные ресурсы вычислительной системы, не давая другим программам возможности их использовать.
• «Бактерия» – программа, которая делает копии самой себя и становится паразитом, перегружая память ПК и процессор.
• «Логическая бомба»– программа, приводящая к повреждению файлов или
компьютеров (от искажения данных – до полного уничтожения данных). «Логическую бомбу» вставляют, как правило, во время разработки программы, а срабатывает она при выполнении некоторого условия (время, дата, ввода кодового слова).
• «Лазейки» – точка входа в программу, благодаря которой открывается доступ к некоторым системным функциям. Обнаруживается путем анализа работы
программы.
Также к классу вредоносных программ можно отнести снифферы (программы,
перехватывающие сетевые пакеты), программы подбора паролей, атаки на переполнение буфера, в некоторых приложениях - дизассемблеры и отладчики.
Перечисленные атаки зачастую используются совместно для реализации
комплексных атак. Так, например, троянская программа может использоваться для
сбора информации о пользователях на удаленном компьютере и пересылки ее злоумышленнику, после чего последний может осуществить атаку методом «маскарада».
11
1.4. Основные методы обеспечения безопасности информационных систем
Для того, чтобы противостоять перечисленным в предыдущей главе угрозам,
современные информационные системы включают в себя подсистемы безопасности, которые реализуют принятую политику безопасности. Политика безопасности в
зависимости от целей и условий функционирования системы может определять права доступа субъектов к ресурсам, регламентировать порядок аудита действий пользователей в системе, защиты сетевых коммуникаций, формулировать способы восстановления системы после случайных сбоев и т.д. Для реализации принятой политики безопасности существуют правовые, организационно-административные
и
инженерно-технические меры защиты информации.
Правовое обеспечение безопасности информации – это совокупность законодательных актов, нормативно-правовых документов, положений, инструкций, руководств, требования которых обязательны в системе защиты информации. В нашей
стране правовые основы обеспечения безопасности компьютерных систем составляют: Конституция РФ, Законы РФ, Кодексы (в том числе Уголовный Кодекс), указы и другие нормативные акты. Так, например, Уголовный Кодекс содержит главу
28, которая называется «Преступления в сфере компьютерной безопасности» и содержит описание состава компьютерных преступлений, подлежащих уголовному
преследованию и полагающиеся наказания.
Организационно-административное обеспечение безопасности информации
представляет собой регламентацию производственной деятельности и взаимоотношений исполнителей на нормативно-правовой основе таким образом, чтобы разглашение, утечка и несанкционированный доступ к информации становился невозможным или существенно затруднялся за счет проведения организационных мероприятий. К мерам этого класса можно отнести: подбор и обучение персонала, определение должностных инструкций работников, организацию пропускного режима, охрану помещений, организацию защиты информации с проведением контроля работы
персонала с информацией, определение порядка хранения, резервирования, уничтожения конфиденциальной информации и т.п.
12
Инженерно-технические меры представляют собой совокупность специальных
органов, технических средств и мероприятий, функционирующих совместно для
выполнения определенной задачи по защите информации. К инженерным средствам
относят экранирование помещений, организация сигнализации, охрана помещений с
ПК.
Технические средства защиты включают в себя аппаратные, программные,
криптографические средства защиты, которые затрудняют возможность атаки, помогают обнаружить факт ее возникновения, избавиться от последствий атаки.
Настоящее пособие посвящено рассмотрению именно технических средств защиты
информации, более подробную информацию о других видах защиты можно получить, например, в [10].
Технические средства подсистем безопасности современных распределенных
информационных систем выполняют следующие основные функции:

аутентификация партнеров по взаимодействию, позволяющая убедиться в
подлинности партнера при установлении соединения;

аутентификация источника информации, позволяющая убедиться в подлин-
ности источника сообщения;

управление доступом, обеспечивающее защиту от несанкционированного
использования ресурсов;

конфиденциальность данных, которая обеспечивает защиту от несанкциони-
рованного получения информации;

целостность данных, позволяющая обнаружить, а в некоторых случаях и
предотвратить изменение информации при ее хранении и передаче;

принадлежность, которая обеспечивает доказательство принадлежности ин-
формации определенному лицу.
Для реализации указанных функций используются следующие механизмы:

шифрование, преобразующее информацию в форму, недоступную для пони-
мания неавторизованными пользователями (подробнее шифрование рассматривается в главе 2);

электронная цифровая подпись, переносящая свойства реальной подписи на
электронные документы (подробнее см. гл.4);
13

механизмы управления доступом, которые управляют процессом доступа к
ресурсам пользователей на основе такой информации как базы данных управления
доступом, пароли, метки безопасности, время доступа, маршрут доступа, длительность доступа;

механизмы контроля целостности, контролирующие целостность как отдель-
ного сообщения, так и потока сообщений и использующие для этого контрольные
суммы, специальные метки, порядковые номера сообщений, криптографические
методы;

механизмы аутентификации, которые на основании предъявляемых пользо-
вателем паролей, аутентифицирующих устройств или его биометрических параметров принимают решение о том, является ли пользователь тем, за кого себя выдает (подробнее см. гл.3);

механизмы дополнения трафика, добавляющие в поток сообщений дополни-
тельную информацию, «маскирующую» от злоумышленника полезную информацию;

механизмы нотаризации, которые служат для заверения подлинности источ-
ника информации.
В таблице 1.1 представлены взаимосвязь функций безопасности информационных систем и механизмов их реализации [11].
14
Таблица 1.1
Взаимосвязь функций безопасности и механизмов их реализации
Услуга безопасности Шифрование
Аутентификация
Партнеров
Аутентификация
Источника
Управление доступом
Конфиденциальность данных
Целостность
данных
Принадлежность
ЭЦП
Мех. Мех. кон- Мех.
Мех. до- Мех. ноуправле- троля це- аутенти- полнения таризации
ния до- лостности фикации трафика
ступом
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.5. Вывод
Важной задачей современных информационных систем является обеспечение
безопасности хранящейся и обрабатываемой в них информации. Защита информации означает обеспечение конфиденциальности, целостности, доступности, аутентичности и аппелируемости информации. Существует большое количество регламентирующих документов, определяющих требования к безопасности информационных систем и ранжирующих их в соответствии с выполнением этих требований. В
Российской Федерации такими документами являются руководящие документы гостехкомиссии России.
Информационные системы подвержены большому количеству угроз. Основными механизмами защиты от этих угроз являются шифрование, электронная цифровая подпись, механизмы управления доступом, контроль целостности, нотаризации, дополнение трафика. Алгоритмические, программные и аппаратные средства
реализации этих механизмов будут рассмотрены ниже.
15
2. Криптографические методы защиты информации
Криптографические методы защиты информации составляют основу подсистем безопасности современных информационных систем, обеспечивая услуги конфиденциальности, целостности и аутентификации.
2.1. Термины и определения
Криптография – наука о методах и средствах преобразования информации в
вид, затрудняющий или делающий невозможным несанкционированные операции с
нею, включающая в себя также методы и средства создания, хранения и распространения ключей – специальных информационных объектов, реализующих эти
санкции.
Основным понятием криптографии является понятие шифра. Шифр – совокупность инъективных (обратимых) преобразований множества элементов открытого текста на множество элементов шифротекста, проиндексированных элементами
из множества ключей:
{ Fk: X  S, kK },
где XX – кодируемое сообщение из множества открытых текстов;
SS – шифротекст из множества возможных закодированных текстов;
k – ключ шифрования;
F – отображение, выполняемое шифром.
Свойство инъективности шифра означает, что существует отображение F-1 такое, что
{ Fk-1: X  S, kK }
Процесс преобразования открытого текста (передаваемого сообщения) в шифротекст называется шифрованием. Обратное преобразование шифротекста в открытый текст называется дешифрованием.
16
Криптоанализ - наука (и практика ее применения) о методах и способах
вскрытия шифров. Под вскрытием понимается задача получения по известному
шифротесту соответствующего открытого текста и/или ключа шифрования.
Криптография и криптоанализ вместе образуют криптологию.
2.2. Классификация криптографических алгоритмов
В качестве основного критерия классификации криптографических алгоритмов будем использовать тип выполняемого над исходным текстом преобразования.
Классификация по этому критерию представлена на рис. 2.1.
Криптографические алгоритмы
Криптоалгоритмы с ключом
Тайнопись
Симметричные
Блочные
Поточные
Перестановочные
Подстановочные
Моноалфавитные
Асимметричные
Многоалфавитные
Рис.2.1. Общая классификация криптографических алгоритмов
Тайнопись предполагает, что отправитель и получатель производят над сообщением преобразования, известные только им двоим. Сторонним лицам неизвестны
выполняемые алгоритмом изменения над открытым текстом, что и является гарантией нераскрываемости данных на этапе анализа.
В противовес тайнописи, криптоалгоритмы с ключом построены на том
принципе, что алгоритм воздействия на передаваемые данные известен всем сто17
ронним лицам, но он зависит от некоторого параметра, который держится в секрете
– "ключа", который известен только двум лицам, участвующим в обмене информацией. Основу такого подхода к шифрованию заложил в конце XIX века голландец
Огюст Керкхофф, который предложил, что стойкость шифра должна определяться
только секретностью ключа, т.е. криптоаналитику могут быть известны все детали
процесса (алгоритма) шифрования и дешифрования, но неизвестно, какой ключ использован для шифрования данного текста. В настоящее время криптография занимается исключительно алгоритмами с ключами. Это обусловлено тем, что защищенность системы не должна зависеть от секретности чего-либо, что невозможно
быстро изменить в случае утечки секретной информации, а изменить ключ шифрования на практике гораздо проще, чем весь используемый в системе алгоритм.
Криптосистемы с ключом делятся на симметричные и асимметричные системы шифрования. Модель симметричной системы шифрования представлена на рис.
2.2.
X-открытый текст
Y-шифротекст
E – шифр
k – ключ
Криптоаналитик
Отправитель
Шифрование
X
открытый
канал
Дешифрование
Y=Ek(X)
Получатель
X=Ek(Y)
k
cекретный
канал
Рис.2.2. Обобщенная модель симметричной системы шифрования
Отличительной чертой симметричных алгоритмов шифрования является
наличие одного ключа шифрования (k на рис.2.2), который должен быть известен
только отправителю и получателю сообщения. Отправитель на ключе k шифрует сообщение, получатель дешифрует полученный шифротекст ключом k. Криптоаналитик может перехватить шифротекст Y, передаваемый по открытым каналам связи,
но, так как он не знает ключа, задача вскрытия шифротекста является очень трудоемкой. Принципиальным моментом является необходимость наличия секретного ка18
нала связи между получателем и отправителем для передачи ключа шифрования без
возможности его перехвата криптоаналитиком.
Асимметричная система шифрования работает по схеме, представленной на
рис. 2.3.
Криптоаналитик
Отправитель
X-открытый текст
Y-шифротекст
E – процедура шифрации
D – процедура дешифрации
kот – открытый ключ
kзак – закрытый ключ
Дешифрование
Шифрование
Y=Ekот(X)
X
Получатель
X=Dkзак(Y)
kзак
kот
Рис.2.3. Обобщенная модель асимметричной системы шифрования
Отличительной особенностью асимметричных алгоритмов является наличие
пары ключей шифрования: открытого kот, который передается второй стороне по
незащищенному каналу связи и поэтому может быть известен криптоаналитику, а
также закрытого kзак, который известен лишь одному человеку (получателю сообщения) и держится в секрете. Пара ключей обладает тем свойством, что сообщение,
зашифрованное на одном из ключей, может быть расшифровано только на другом
ключе. Фактически это означает, что секретным каналом передачи информации на
схеме рис. 2.3 является направление “отправитель-получатель”, поскольку сообщение, зашифрованное на открытом ключе отправителем, может дешифровать своим
закрытым ключом только получатель.
В зависимости от размера блока шифруемой информации криптоалгоритмы
делятся на блочные и поточные шифры. Единицей кодирования в потоковых шифрах является один бит. Результат кодирования не зависит от прошедшего ранее
входного потока. Схема применяется в системах передачи потоков информации, то
есть в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Для блочных шифров
19
единицей кодирования является блок из нескольких байтов. Результат кодирования
зависит от всех исходных байтов этого блока. Схема применяется при пакетной передаче информации и кодировании файлов.
Еще одним критерием классификации криптоалгоритмов является тип выполняемых преобразований над блоками открытого текста. По этому критерию криптоалгоритмы разделяют на подстановочные и перестановочные. В перестановочных
шифрах блоки информации не изменяются сами по себе, но изменяется их порядок
следования, что делает информацию недоступной стороннему наблюдателю. Подстановочные шифры изменяют сами блоки информации по определенным законам.
Деление криптоалгоритмов на моноалфавитные и многоалфавитные характерно для подстановочных шифров. Моноалфавитные криптоалгоритмы заменяют
блок входного текста (символ входного алфавита) на один и тот же блок шифротекта (символ выходного алфавита). В многоалфавитных шифрах одному и тому же
блоку входного текста могут соответствовать разные блоки шифротекста, что существенно затрудняет криптоанализ.
По степени секретности криптоалгоритмы делятся на абсолютно стойкие и
практически стойкие. Абсолютно стойкие шифры невозможно вскрыть. На практике этого можно добиться, только если размер используемого ключа шифрования
превышает размер кодируемого сообщения и при этом ключ используется однократно. Практически стойким называется шифр, для которого не существует более
эффективного способа взлома, кроме как полным перебором всех возможных ключей шифрования.
Говоря об атаках на шифры, можно выделить следующие виды атак: атака на
основе шифротекста, атака на основе известного открытого текста, атака на основе
выборочного открытого текста.
При атаке на основе шифротекста криптоаналитику известен только закодированный текст и на его основе он должен узнать секретный ключ шифрования.
Атака на основе открытого текста предполагает, что криптоаналитику известны одна или несколько пар «открытый текст/шифротекст», зашифрованных на
одном ключе, и на основе этой информации он проводит свой анализ.
20
Выполняя атаку на основе выборочного открытого текста, злоумышленник
имеет возможность подать на вход шифрующего устройства произвольный открытый текст и получить соответствующий ему шифротект. Для того, чтобы называться
практически стойким, криптоалгоритм должен успешно противостоять любому из
перечисленных типов атак.
2.3. Симметричное блочное шифрование
2.3.1. Основные принципы блочного симметричного шифрования
Как уже было отмечено, блочные шифры обрабатывают кодируемое сообщение блоками из нескольких байт, при этом блок открытого текста X преобразуется в
блок шифротекста Y того же размера с использованием некоторого ключа шифрования Key:
Y=Encrypt(X,Key)
Процедура дешифрации выполняет обратное преобразование, используя тот
же самый ключ:
X=Decrypt(Y,Key)
В общем случае процедуры Encrypt и Decrypt не совпадают, однако если последовательность действий при шифрации и дешифрации в точности совпадает,
блочный шифр называется абсолютно симметричным. Для абсолютно симметричного шифра, очевидно, справедливо:
X=Encrypt((Encrypt(X,Key),Key)
Преобразования Encrypt и Decrypt трактуют блоки открытого и зашифрованного текста как целые числа и выполняет над ними ряд арифметических либо логических действий, основная задача которых – тщательно «перемешать» биты блока
открытого текста между собой, а также связать их с битами используемого ключа
шифрования для формирования блока закрытого текста. Для того, чтобы все шифрующее преобразование было обратимым, действия, его составляющие должны
быть также обратимы (обратимость действия означает, что по его результату и одному из операндов можно получить второй операнд). В таблице 2.1 приведен список
21
обратимых операций, использующихся в современных криптографических преобразованиях [6].
Среди операций, приведенных в таблице, необходимо выделить операции
умножения и табличной подстановки, которые относятся к классу нелинейных и
существенно затрудняют методы линейного криптоанализа блочных шифров.
Таблица 2.1
Основные обратимые операции
Название операции
Графическое
обо- Формула преобразования Обратное преобразова-
значение
ние
Сложение
X’=X+V
Вычитание
Сложения по мо-
X’=X  V
Автообратима
X’=(XV) mod (2N+1)
Сомножитель мож-
дулю 2
Умножение по модулю
2N+1
но найти по алго-
(N-
размер блока)
ритму Евклида
Циклические
сдвиги
впра-
>>>
X’=X ROR V
Циклический сдвиг
X’=X ROL V
в обратном направ-
во/влево
лении
<<<
X’=SBox(X)
Табличная подстановка
Обратная
подста-
новка
S
Для преобразований параметров криптоалгоритмов, которые не требуют обратимости, используются необратимые операции, такие как логические сложение и
умножение, арифметические сдвиги влево и вправо, получение остатка от целочисленного деления, умножение по модулю 2N.
22
В качестве второго операнда V, участвующего в операциях криптографических преобразований, могут использоваться:
1) фиксированные числовые константы;
2) значения, вычисленные из независимой части шифруемого блока (например, можно сложить младшую и старшую часть блока шифруемой информации);
3) материал ключа – блок информации, вычисленный исключительно на основе информации, хранящейся в ключе шифрования.
Одним из основных принципов структурного построения современных криптоалгоритмов является принцип итерирования. Его идея заключается в многократной, состоящей из нескольких циклов (или раундов), обработки одного блока открытого текста с использованием на каждом цикле специального ключа раунда, вычисляемого на основе ключа шифрования. Количество циклов можно варьировать из
соображений криптостойкости и эффективности реализации алгоритма: увеличение
количества циклов приводит к повышению стойкости шифра, но увеличивает время
шифрации и потребляемые вычислительные ресурсы. Подобные циклические структуры принято называть сетями, и большинство современных блочных шифров построены с использованием сетевой архитектуры.
В качестве примера криптографических сетей можно привести SP-сети, содержащие в каждом раунде два слоя – подстановки (substitution), в котором обычно
используются обратимые операции преобразования над шифруемым блоком и материалом ключа, и перестановки (permutation), в котором происходит перестановка
бит внутри блока. Однако, самой популярной сегодня является сеть Фейштеля, схема которой представлена на рис.2.4.
При шифровании блок открытого текста разбивается на две равные части - левую и правую. На каждом цикле одна из частей подвергается преобразованию при
помощи образующей функции F и вспомогательного ключа ki, полученного из исходного ключа. Результат преобразования складывается по модулю 2 с другой частью, после чего части меняются местами. Преобразования на каждом цикле идентичны и лишь после последнего раунда не выполняется перестановка частей блока.
23
Достоинством сети Фейштеля является то, что дешифрация выполняется той
X1
X2
1-й раунд
F(k1)
2,3,..М-1-раунды
последний раунд
F(kM)
Z2
Z1
Рис. 2.4. Схема сети Фейштеля на М раундов
же последовательностью преобразований, лишь порядок следования вспомогательных ключей меняется на обратный. Это достигается за счет автообратимости операции суммы по модулю 2, смешивающей части блока между собой.
Если размер блока шифрования криптоалгоритма слишком велик, возможны
модификации сети Фейштеля с 4 ветвями, один из вариантов которых приведен на
рис. 2.5.
24
Х1
X2
X3
X4
F(k1)
1-й раунд
2,3,…,М раунды
Z1
Z2
Z3
Z4
Рис.2.5. Сеть Фейштеля с 4 ветвями
2.3.2. Алгоритмы блочного симметричного шифрования
Схема Фейштеля используется в криптоалгоритмах DES, ГОСТ 28147-89,
FEAL, Blowfish, LOKI, CAST и др. Рассмотрим практическую реализацию блочного
шифра, построенного по принципу сети Фейштеля, на примере алгоритма TEA (Tiny
Encrypton Algorithm) .
Алгоритм TEA (рис.2.6) разработан в Кембриджском университете, представляет собой схему сети Фештеля на 64 раунда, размер шифруемого блока 64 бита,
размер ключа шифрования 128 бит.
25
Рис.2.6. Схема работы алгоритма TEA
Достоинством алгоритма TEA является простота реализации, однако, отсутствие в образующей функции нелинейных операций приходится компенсировать
большим количеством раундов. КEY0, КEY1, КEY2, КEY3 на рис.2.6 – это ключи
раунда, которые получаются простым делением ключа шифрования на 4 части.
Необходимо также отметить, что TEA является несимметричным алгоритмом, поскольку ветви смешиваются обычным арифметическим сложением, поэтому операция дешифрации требует незначительных изменений.
26
Алгоритмы шифрования, получившие большее признание среди криптографов, используют в функциях преобразования нелинейные операции. Так, например,
алгоритм шифрования DES (Data Encryption Standard), который до недавнего времени являлся мировым стандартом шифрования, использует в своей образующей
функции операции табличной подстановки, которые существенно усложняют процедуру линейного криптоанализа этого шифра. Схема раунда алгоритма DES представлена на рис. 2.7.
Ключi-1
Li-1
Ri-1
Сдвиг
Сдвиг
Перестановка с расширением
Перестановка со сжатием
Перестановка в S блоке
Подстановка в P блоке
Li
Ключi
Ri
Рис.2.7. Раунд алгоритма DES
Каждый раунд преобразования включает перестановку правой части блока,
причем на вход модуля расширения подается 32-разрядное число, а снимается с него
48-разрядное (некоторые биты входного числа копируются на выход дважды). После сложения с материалом ключа осуществляется табличная подстановка, в результате которой по 8 таблицам подстановки происходит замена 48-битного входа на 32битный выход (каждая S-таблица подстановки заменяет 6-битный вход на 4-битный
выход). Выход S-блока поступает на блок перестановки, где биты переставляются
по законам, определяемым специальной P-таблицей. Заканчивается раунд традиционным для сетей Фейштеля смешиванием ветвей между собой. За счет использова27
ния нелинейных операций преобразований удалось уменьшить количество раундов
до 16 при размере ключа 56 бит.
С момента опубликования алгоритма DES в 1977 году он подвергся серьезному криптоанализу. Так, в частности, были обнаружены 4 слабых ключа DES, которые половину из возможных 264 входных блоков кодируют самих в себя. Был предложен также ряд специфических атак на DES, которые еще в 80-е годы позволяли с
использованием компьютеров специализированной архитектуры или распределенных вычислений провести успешную атаку на алгоритм в течение нескольких часов.
Для современного технологического уровня время взлома шифра DES составляет
несколько десятков минут. В связи с этим, для обеспечения более высокого криптостойкости рекомендуется применять тройное DES-шифрование на трех или двух
различных ключах. Такие схемы называются EDE (encrypt-decrypt-encrypt) шифрованием. При двух ключах шифрования блок открытого текста сначала шифруется на
ключе K1, затем дешифруется на ключе K2, а затем вновь шифруется на ключе K1.
Размер ключевого пространства (общее количество возможных ключей шифрования) в этом случае возрастает до 2112 (у обычного DES – 256). При использовании
трех ключей шифрования блок открытого текста сначала шифруется на ключе K1,
затем дешифруется на ключе K2, а затем шифруется на ключе K3, что обеспечивает
размер ключевого пространства 2168.
Из-за недостаточной длины ключа шифрования, а также ориентированности
шифра DES на аппаратную реализацию (в связи с большим количеством используемых перестановок бит), американским национальным институтом стандартов в 1997
был объявлен конкурс на криптостандарт блочного шифрования AES (Advanced
Encryption Standard). В 2000 году победителем конкурса был объявлен алгоритм
Rijndael, разработанный бельгийскими криптографами. Его отличительной особенностью является то, что он построен не по принципу сети Фейштеля, а использует
нетрадиционную структуру KALST- сети.
Алгоритм Rijndael представляет блок данных в виде двухмерного байтового
массива размером 4х4, 4х6 или 4х8 (допускается использование нескольких фиксированных размеров шифруемого блока информации). Все операции выполняются с
отдельными байтами массива, а также с независимыми столбцами и строками.
28
Алгоритм Rijndael выполняет четыре преобразования: BS (ByteSub) - табличная замена каждого байта массива, SR (ShiftRow) - сдвиг строк массива. При этой операции первая строка остается без изменений, а остальные циклически побайтно сдвигаются влево на фиксированное число байт, зависящее от размера массива. Например, для массива размером 4X4 строки 2, 3 и 4 сдвигаются соответственно на 1, 2 и 3
байта. Далее выполняется MC (MixColumn) - операция над независимыми столбцами массива , когда каждый столбец по определенному правилу умножается на фиксированную матрицу. И, наконец, AK (AddRoundKey) - добавление ключа. Каждый
бит массива складывается по модулю 2 с соответствующим битом ключа раунда, который, в свою очередь, определенным образом вычисляется из ключа шифрования.
Количество раундов шифрования в алгоритме Rijndael переменное (10, 12 или 14
раундов) и зависит от размеров блока и ключа шифрования (для ключа также предусмотрено несколько фиксированных размеров).
Достоинствами шифра Rijndael является то, что он обеспечивает высокую
скорость шифрования на всех платформах: как при программной, так и при аппаратной реализации. Его отличают несравнимо лучшие возможности распараллеливания вычислений по сравнению с другими алгоритмами, представленными на конкурс AES. Кроме того, требования к ресурсам для его работы минимальны, что важно при его использовании в устройствах, обладающих ограниченными вычислительными возможностями.
Российским стандартом блочного шифрования является алгоритм ГОСТ
28147-89, построенный по структуре сети Фейштеля. Его особенностью следует
признать большой размер ключа (256 бит), непубликуемые таблицы подстановки,
большое количество раундов (32 раунда).
2.3.3. Режимы шифрования блочных шифров
Применение блочного шифра для нужд практического кодирования информации возможно в одном из четырех основных режимов шифрования (рис. 2.8):
1) режим электронной кодовой книги (Electronic Code Book, ECB);
2) режим сцепления блоков шифра (Cipher Block Changing, CBC);
29
3) режим обратной связи по шифротексту (Electronic Feedback, CFB);
4) режим обратной связи по выходу (Output Feedback, OFB).
mi
mi-1
mi
mi-1
ci-2
Ek
Ek
Ek
Ek
ci-1
ci
ci-1
б) режим CBC
a) режим ECB
mi-1
mi-1
mi
Ek
ci-2
ci
mi
si-1
si
Ek
ci-1
ci-1
ci
ci
г) режим OFB
в) режим CFB
Рис. 2.8. Режимы шифрования блочных шифров
В режиме ECB шифрование/дешифрование i-го блока открытого текста/шифротекста выполняется независимо от остальных блоков:
ci=Ek(mi), mi=Dk(ci).
Недостатком данного режима шифрования является то, что одинаковые блоки
входного текста будут кодироваться в одинаковые блоки шифротекста, что дает
возможность злоумышленнику, во-первых, делать предположения о характере информации в открытом тексте, а во-вторых, подменить один или несколько блоков
шифротекста. Достоинством режима можно назвать простоту реализации, а также
возможность распараллеливания процедуры шифрации.
Режим CBC предполагает следующие алгоритмы шифрации/дешифрации:
ci=Ek(mi  ci-1), mi=Dk(ci)  ci-1
В режиме CBC каждый блок открытого текста складывается с блоком шифротекста, полученным на предыдущем этапе. Таким образом, происходит сцепление
блоков друг с другом и независимая манипуляция с каждым из них невозможна, а
одинаковые входные блоки будут давать на выходе разные блоки. Однако, задача
30
распараллеливания процедуры кодирования в этом режиме затруднена. Дополнительным параметром процедур шифрования/дешифрования является параметр c0.
В режиме CFB также происходит «маскировка» блока открытого текста уже
зашифованными блоками:
ci=mi  Ek(ci-1), mi=Dk(ci-1)  ci
По своим возможностям данный режим похож на режим CBC, но если длина
сообщения не кратна размеру блока шифра, то в режиме CBC необходимо дополнять последний блок дополнительными битами и сообщать на принимающую сторону истинный размер сообщения, а режим CFB позволяет сформировать шифротекст того же размера, что и исходное сообщение.
В режиме OFB исходное сообщение вообще не подвергается криптопреобразованию, оно складывается с шифруемыми на секретном ключе блоками si (s0 является задаваемым несекретным параметром режима):
ci=mi  si , mi=ci  si, si=Ek(si-1)
В этом режиме, как и в режиме ECB, ошибки, которые могут возникнуть при
передаче шифротекста по каналам связи, локализуются в блоке, не распространяясь
на соседние, причем в режиме OFB ошибочными будут только биты, подвергшиеся
изменению (в ECB изменится весь блок). Это дает возможность злоумышленнику
незаметно для принимающей стороны подменить блок шифротекста. Возможности
распараллеливания процедур шифрации/дешифрации затруднены.
2.3.4. Криптоанализ блочных шифров
Методы криптоанализа совершенствовались наряду с развитием самих
блочных шифров. Самым простым методом криптоанализа является
частотный анализ, который применим для простых шифров замены.
Рассмотрим принцип частотного криптоанализа на основе шифра Цезаря. В
шифре Цезаря каждая буква исходного сообщения замещается на букву,
31
находящуюся k символами правее, по модулю, равному количеству букв в
алфавите:
Ck(j)=(j+k)(mod n),
где n - количество букв в алфавите, k- ключ шифрования, j – номер шифруемого
символа в алфавите. Очевидно, что обратной подстановкой является
Ck(j)=(j+n-k)(mod n)
Частотный анализ использует то свойство зашифрованного текста, что частота
встречаемости символов в нем совпадает с частотой встречаемости соответствующих символов в открытом тексте. Если же учесть, что частоты встречаемости различных символов в текстах соответствующего языка распределены неравномерно
(так, например, относительная частота встречаемости буквы «А» в текстах на русском языке составляет 0.069, а буквы «Ф» 0.003), то, подсчитав относительную частоту встречаемости букв в шифротексте, можно предположить, что символ, наиболее часто встречающийся в шифротексте, соответствует символу, наиболее часто
встречающемуся в текстах на соответствующем языке, и найти таким образом ключ
k. Такой метод криптоанализа применим только к моноалфавитным криптоалгоритмам, и для его успешной работы требуются тексты большого размера.
Для современных криптоалгоритмов используются более совершенные методы криптоанализа: дифференциальный, линейный, силовая атака.
Дифференциальный метод криптоанализа был предложен Э.Бихамом и
А.Шамиром в 1990 г. Дифференциальный криптоанализ представляет собой атаку
на основе выборочного шифротекста. В качестве материала для анализа используется изменение меры несходства двух открытых текстов при их прохождении по основным этапам криптопреобразования. В качестве меры несходства двух двоичных
векторов используется расстояние Хэмминга – количество бит, в которых эти вектора отличаются друг от друга.
Успех попыток вскрытия r-циклического шифра зависит от существования
дифференциалов (r-1)-го цикла c большей долей вероятности. Дифференциал i-го
цикла определяется как пара ( a , b ) i такая, что пара различных открытых текстов x,
x* c расстоянием Хэмминга a может привести к паре выходных текстов y, y* после
32
i-ого цикла, имеющих расстояние Хэмминга b. Вероятность i-циклового дифференциала ( a ,b ) i - это условная вероятность P( D y(i)=b | D x(i)= a ) того, что расстояние
Хэмминга пары шифртекстов ( y, y*) после i-ого цикла равна b при условии, что пара текстов (x, x*) имеет расстояние a.
Алгоритм дифференциального криптоанализа включает следующие этапы:
1. На предварительном этапе путем многократного шифрования различных текстов
накапливаем статистику для множества (r-1)-цикловых дифференциалов (a1, b1)r-1 ,
(a2,b2)r-1 ,.... (as,bs)r-1 . Упорядочиваем это множество дифференциалов по величине
их вероятности.
2. Выбираем открытый текст x произвольным образом и подбираем x* так, чтобы
расстояние Хэмминга между x и x* было равно a1 . Тексты x и x* шифруются на
подлинном ключе и после r циклов получаем пару шифртекстов y , y*. Предполагаем, что на выходе предпоследнего (r-1)-ого цикла разность шифртекстов равна
наиболее вероятной: Dy(r-1)= b1 . Для тройки ( D y(r-1), y , y*) находим каждое возможное значение подключа последнего цикла к(r) . Добавляем его к количеству появлений каждого такого значения подключа к(r) .
3. Повторяем п.2 до тех пор, пока одно или несколько значений подключа к(r) не
станет появляться чаще других. Этот подключ или множество таких подключей используем в качестве криптографического решения для подключа к(r) .
4. Повторяем пп.1-3 для предпоследнего цикла, при этом значения y(r-1) вычисляются расшифрованием шифртекстов на найденном подключе последнего цикла к(r) .
Далее действуем аналогично, пока не будут раскрыты ключи всех циклов шифрования.
Для успешного осуществления дифференциального криптоанализа необходимо иметь большой набор пар открытый текст/шифротекст (до 2 47 подобных пар для
атаки на 16 раундов DES). Повышение стойкости шифра к дифференциальному
криптоанализу возможно путем увеличения количества раундов: для алгоритма DES
при 17 раундах шифрования дифференциальный криптоанализ не эффективнее силовой атаки.
Линейный метод криптоанализа был предложен японским математиком Мацуи
в 1993 г. Метод также является атакой на основе выборочного шифротекста. Метод
33
использует линейные приближения, предполагающие с определенной вероятностью,
что существует линейная зависимость между некоторыми битами открытого текста,
шифротекста и ключа:
mi1  mi2  …  mir  cj1  cj2  … cjs = kt1  kt2  … ktn,
(2.1)
где i1..ir, j1..js, t1..tn – позиции некоторых бит открытого текста m, шифротекста c и
ключа k.
Пусть p - вероятность того, что (2.1) выполняется для случайно выбранных m
и с. Тогда необходимо, чтобы p  1/2 и величина | p -1/2 | должна быть как можно
больше. Если | p -1/2 | достаточно велика и криптоаналитику известно достаточное
число пар открытых и соответствующих зашифрованных текстов, то сумма по модулю 2 бит ключа на соответствующей позиции в правой части (2.1) равна наиболее
вероятному значению суммы по модулю 2 соответствующих бит открытых и зашифрованных текстов в левой части. Если p > 1/2, то сумма бит ключа в правой части (2.1) равна нулю, если сумма бит в левой части равна нулю больше, чем для половины пар зашифрованных текстов, и сумма бит ключа в правой части (2.1) равна
единице, если сумма бит в левой части равна единице больше, чем для половины
текстов . Если p < 1/2 , то наоборот, сумма бит ключа в правой части (2.1) равна нулю, если сумма бит в левой части равна единице больше, чем для половины пар открытых и зашифрованных текстов, и сумма бит ключа в правой части (2.1) равна
единице, если сумма бит в левой части равна нулю больше, чем для половины текстов. Таким образом формируется система линейных уравнений, неизвестными в
которых являются биты ключа, и задача дальнейшего анализа заключается в поиске
решения этой системы. Для увеличения стойкости алгоритма к линейному криптоанализу в его состав вносят нелинейные функции преобразования (например, табличные подстановки).
Силовая атака на блочные шифры предполагает полный перебор всех возможных ключей шифрования, и ее эффективность зависит от размера ключевого
пространства шифра. Так, если ключ шифрования имеет размер 56 бит, то возможно
использование 256 ключей, что, как уже отмечалось, не составляет в настоящее время вычислительных трудностей криптоаналитику, особенно если учесть, что задача
полного перебора ключей легко поддается распараллеливанию. Так, при проведении
34
фирмой RSA Data Security inc. в сети Internet конкурса по взлому шифра RC5 количество компьютеров, одновременно участвующих в атаке, достигло 4500 единиц, а
пиковая производительность – 440 млн. ключей в секунду[11]. По оценкам ведущих
специалистов в области криптографии длина ключа шифрования, гарантирующая
криптостойкость к силовой атаке, должна составлять от 75 до 90 бит.
2.4. Симметричное поточное шифрование
Поточные шифры характерны тем, что шифруют информацию по одному биту
за такт шифрования. Учитывая, что среди операций с битами существуют только
две обратимые – сумма по модулю 2 и логическое отрицание, то выбор принципа
шифрования очевиден – биты открытого текста должны складываться с битами
ключевой последовательности с помощью операции :
ci = mi  ki.
Дешифрование происходит аналогичным образом:
mi = ci  ki.
Учитывая свойства операции сложения по модулю 2, можно отметить, что выполняется:
ki = ci  mi,
поэтому криптостойкость поточных шифров полностью зависит от качества генератора потока ключей. Очевидно, что если поток ключей будет включать в себя только
двоичные нули, то шифротекст будет представлять собой точную копию открытого
текста. Поток ключей поточных шифров принято обозначать греческой буквой 
(гамма), вследствие чего подобные шифры получили название шифров гаммирования. Большинство современных генераторов гаммы построено на линейных регистрах сдвига (ЛРС). Он представляет собой (рис.2.9) последовательность бит, которая на каждом такте шифрования сдвигается вправо на 1 разряд, при этом выход из
крайнего правого бита является выходом генератора, а на вход крайнего левого бита
подается значение, вычисляемое как сумма по модулю 2 нескольких разрядов ЛРС.
35
Ключ шифрования поточного шифра заносится в ЛРС перед началом генерации
гаммы.

1
2
3
32
…
Рис.2.9. Линейный регистр сдвига
Рассмотрим работу ЛРС на примере трехразрядного регистра, структура которого приведена на рис.2.10
1

2
3
Рис.2.10 Линейный регистр сдвига на три разряда
Занесем в регистр начальное значение 010 и посмотрим, какие значение получим на выходе гаммы.
Таблица 2.2
Результат работы генератора гаммы на основе ЛРС
Номер
Значения битов ЛРС
Бит
такта
1
2
3
гаммы
нач.сост
1
2
3
4
5
6
7
8
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
Из таблицы видно, что состояние ЛРС повторяется через 7 тактов (начальное
состояние ЛРС совпадает с его состоянием на 7-м такте). Повтор состояния ЛРС
означает, что и гамма будет периодически повторяться. Повторение гаммы снижает
36
криптостойкость поточных шифров, позволяя криптоаналитику проводить анализ
шифротекстов, полученных кодированием на одной и той же гамме. Поэтому при
проектировании структуры ЛРС встает проблема достижения максимального периода повтора ЛРС. Для ЛРС длиной n бит максимальный период составляет 2n-1 тактов (состояние, когда все биты равны нулю, недопустимо, поскольку ЛРС любой
структуры не выходит из этого состояния, зацикливаясь в нем). Построение ЛРС
оптимальной структуры с точки зрения периода повторения гаммы имеет четкую
математическую основу в виде теории неприводимых полиномов. Структура ЛРС
описывается многочленом вида:
b1*xn+b2*xn-1+b3*xn-2+…+bn-1*x2+ bn*x+1,
где bi=0, если i-й бит слева не участвует в обратной связи, и bi=1, если участвует.
ЛРС будет иметь максимально возможный период повторения гаммы, если описывающий его многочлен не раскладывается на произведение многочленов меньшей
степени.
Основной проблемой ЛРС является их нестойкость к атаке на основе известного открытого текста. Даже если неизвестна внутренняя структура ЛРС, криптоаналитик с помощью алгоритма Берлекэмпа-Мэсси по известным 2N битам открытого текста и соответствующего шифротекста имеет возможность построить ЛРС,
порождающую подобную последовательность. Поэтому современные поточные
шифры строятся на основе нелинейных регистров сдвига (НРС). Нелинейные регистры сдвига строятся на основе линейных с добавлением в структуру нелинейных
элементов: логического сложения и логического умножения. Наиболее популярными классами нелинейных регистров сдвига на сегодня являются фильтрующие, комбинирующие и динамические поточные шифры [6].
Фильтрующие НРС строятся с использованием дополнительной комбинационной схемы – фильтра – на выходах некоторых бит ЛРС (рис.2.11). Выход комбинационной схемы и является гаммой.
37
ЛРС
КС
…

Рис.2.11. Поточный шифр на основе фильтрующего НРС
Комбинирующие НРС также используют комбинационную схему с нелинейными преобразованиями бит, но на вход этой комбинационной схемы подаются выходы нескольких ЛРС (рис.2.12).
ЛРС1
ЛРС2

KC
…
ЛРСN
Рис.2.12. Поточный шифр на основе комбинирующего НРС
При проектировании НРС комбинирующего типа необходимо следить, чтобы
комбинационная схема равномерно перемешивала выходы каждого из ЛРС, иначе
может возникнуть ситуация доминирования одного из ЛРС, когда его выход на подавляющем большинстве тактов совпадает с общим выходом НРС.
Динамические НРС также строятся на основе нескольких ЛРС, но здесь они
вступают друг с другом в отношения «главный-подчиненный» (рис.2.13). В зависимости от выхода управляющего ЛРС на общий выход НРС подается либо выход
первого, либо второго ЛРС.
38
Управляющий
ЛРС
ЛРС1

ЛРС2
Рис.2.13. Поточный шифр на основе динамического НРС
В качестве примера поточного шифра, построенного на основе регистров
сдвига, можно привести алгоритм A5, используемый для кодирования в стандарте
GSM. A5 включает 3 ЛРС длиной 19, 22 и 23 бита на выход гаммы подается сумма
по модулю 2 выходов всех регистров. Используется схема динамического НРС, когда каждый регистр тактируется в зависимости от состояния средних разрядов всех
трех регистров сдвига.
Поточными являются также шифры RC4, SEAL, WAKE [12].
2.5. Асимметричное шифрование
Симметричное шифрование имеет недостатки, которые ограничивают возможности его применения в ряде конкретных случаев. В частности, зачастую невозможно организовать секретный канал для обмена ключами шифрования между
участниками взаимодействия. Еще одним недостатком симметричных шифров является необходимость хранения большого количества ключей: для того чтобы в вычислительной сети могли конфиденциально попарно взаимодействовать N участников, необходимо наличие в системе N*(N-1)/2 ключей. Эти недостатки можно
устранить, используя алгоритмы асимметричного шифрования. Например, для
асимметричной системы достаточно иметь 2*N пар открытый/закрытый ключ, чтобы можно было организовать секретный канал между каждой парой участников.
39
2.5.1. Математические основы асимметричного шифрования
Основная идея асимметричного шифрования заключается в существовании
сразу двух ключей для обмена информацией – открытого, известного любому желающему, и закрытого, который известен лишь получателю информации. Очевидно,
что открытый и закрытый ключи генерируются одновременно и между ними существует определенная математическая связь. Основная задача проектировщика асимметричного алгоритма заключается в том, чтобы по известному открытому ключу
было бы невозможно (очень трудоемко) получить секретный ключ шифрования. Для
этого в основу асимметричных алгоритмов закладываются вычислительно трудные
задачи факторизации, дискретного логарифмирования, проецирования точек на эллиптической кривой и т.д. Объединяет все эти задачи то, что они используют операцию получения остатка от целочисленного деления.
Для любого положительного целого числа n и любого a при делении a на n мы
получаем некоторое целое частное q и остаток r, удовлетворяющий соотношению
a = qn + r,
0 ≤ r < n; q = int(a / n),
где int(x) обозначает наибольшее целое число, не превышающее x.
Если a является целым, а n - положительным, то a mod n определяется как
остаток от деления a на n. Таким образом, для любого целого числа a можно записать
a = int(a / n) * n + (a mod n).
Говорят, что два целых числа a и b являются сравнимыми по модулю n, если (a
mod n) = (b mod n). Это записывается в виде: a  b mod n.
Операции сравнения по модулю имеют следующие свойства:
1. a  b mod n, n | (a - b) (n | x означает, что n делит x нацело).
2. Из (a mod n) = (b mod n) следует a  b mod n.
3. Из a  b mod n следует b  a mod n.
4. Из a  b mod n и b  c mod n следует a  c mod n.
Операции арифметики в классах вычетов обладают следующими свойствами:
1. [(a mod n) + (b mod n)] mod n = (a + b) mod n.
40
2. [(a mod n) - (b mod n)] mod n = (a - b) mod n.
3. [(a mod n) * (b mod n)] mod n = (a * b) mod n.
Пусть Zn обозначает множество всех не отрицательных целых чисел, которые
меньше n:
Zn = {0, 1, 2, ... , (n - 1)}.
Это множество называется ещё множеством вычетов (остатков) по модулю n. Для
арифметических операций по модулю n в этом множестве выполняются следующие
свойства:
Свойство
Выражение
Коммутативные законы
(w + x) mod n = (x + w) mod n,
(w * x) mod n = (x * w) mod n
Ассоциативные законы
[(w + x) + y] mod n = [w + (x + y)] mod n,
[(w * x) * y] mod n = [w * (x * y)] mod n
Дистрибутивный закон
[(w + x) * y] mod n = [(w * y) + (x * y)] mod n
Тождества
(0 + w) mod n = w mod n, (1 * w) mod n = w mod n
Аддитивный обратный (-w) Для любого w є Zn существует такое z, что w + z ≡ 0
mod n
Существует одна особенность арифметики в классах вычетов, которая делает её
отличной от обычной арифметики. Заметим сначала, что, как и в обычной арифметике, имеет место следующее свойство
если (a + b)  (a + c) mod n, то b  c mod n.
Данное свойство согласуется с существованием аддитивного обратного. Прибавив
к обеим частям данного равенства аддитивное обратное элемента а, получим:
((-a) + a + b)  ((-a) + a + c) mod n, b  c mod n.
Однако следующее утверждение:
если (a * b)  (a * c) mod n, то b  c mod n
выполняется только при условии, что a и n взаимно просты (обозначается далее
(a,n)=1)
41
Если p является простым, то все элементы Zp будут взаимно простыми с p. Это
даёт нам возможность добавить ещё одно свойство к тем, которые были приведены
выше:
Свойство
Выражение
Мультипликативный обратный
Для любого w є Zp существует z, что w * z ≡ 1
(w-1)
mod p
Для поиска мультипликативного обратного можно использовать расширенный
алгоритм Евклида, который позволяет в целых числах найти решение уравнения
ax+by=1 при заданных а и b. Очевидно, что если решение существует, то x будет
величиной, мультипликативно обратной а по модулю b.
Алгоритм Евклида
1. Определить матрицу E:
 1 0

E  
 0 1
2. Вычислить r –остаток от деления числа a на b:
a = bq + r, 0  r < b
3. Если r=0, то первый столбец матрицы E является решением уравнения.
4.Если r 0, заменить матрицу Е:
 1 0
E  E * 

  q 1
5.Поменять местами столбцы матрицы Е.
6. Заменить пару чисел a, b на b, r и перейти к шагу 2.
2.5.2. Алгоритмы асимметричного шифрования
Исторически первой системой с открытым ключом стал метод экспоненциального ключевого обмена Диффи - Хеллмана, разработанный в 1976 году. Метод
предназначен для передачи секретного ключа симметричного шифрования. В обмене задействованы два участника А и Б. Сначала они выбирают большие простые
числа n и g<n (эти числа секретными не являются). Затем участник A выбирает
большое целое число х, вычисляет Х=gx mod n и передает Х участнику Б. Б в свою
42
очередь выбирает большое целое число y, вычисляет Y=gy mod n и передает Y участнику А. Б вычисляет K’=Xy mod n, А вычисляет K’’=Yx mod n. Легко заметить, что
K’=K’’=gxy mod n, и это значение оба участника могут использовать в качестве ключа
симметричного шифрования. Криптостойкость этого метода определяется трудоемкостью вычисления дискретного логарифма в конечном поле. Действительно, злоумышленник может узнать такие параметры алгоритма, как n, g, X, Y, но вычислить
по ним значения x или y – задача, требующая очень больших вычислительных мощностей и времени. Метод легко можно обобщить на случай ключевого обмена
большего количества участников. Использование метода Диффи - Хеллмана на
практике должно сопровождаться сертификацией «открытых» ключей X и Y. Иначе
злоумышленник может провести атаку, которая известна под названием «человек
посередине» (man-in-the-middle), когда передаваемые участниками А и Б сообщения
перехватываются злоумышленником и подменяются сообщениями X’ и Y’, вычисленными на основе его закрытого ключа. В итоге будут установлены два соединения
«А - зломышленник» и «Б - злоумышленник», причем А и Б будут уверены, что обмениваются сообщениями друг с другом. Необходимо также отметить, что алгоритм
Диффи - Хеллмана не является асимметричным алгоритмом шифрования, шифрование при его использовании необходимо выполнять с использованием симметричного шифра. Примером действительно асимметричного алгоритма шифрования, основанного на проблеме дискретного логарифма, является алгоритм Эль-Гемаля, разработанный в 1985 г. Последовательность действий при генерации ключей, шифровании и дешифрации представлена на рис. 2.14.
43
Получатель
Отправитель
Генерация ключей
Выбрать простое p и 2
случайных числа g и x
Вычислить y=gx mod p
Сообщение m
Открытый
ключ (p,g,y)
Закрытый ключ x
Дешифрование
Шифротекст
(a,b)
Шифрование
Выбрать случайное k:
(k,p-1)=1
Вычислить
a=gk mod p
b=ykm mod p
m=(b / ax ) mod p
Рис.2.14. Схема шифрования алгоритма Эль-Гемаля
Необходимо пояснить процедуру дешифрования. Так как axgkx mod p, то имеем:
y k m g xk m
b
 x  kx  m mod p
ax
a
g
Таким образом, кодируемое сообщение М разбивается на части, каждая из которых m интерпретируется как число в диапазоне [0 .. p-1], и выполняется операция
шифрования согласно схеме на рис.2.14. На практике при использовании данного
алгоритма рекомендуется выбирать ключи размером 768, 1024 и 1536 бит.
Самым первым, действительно асимметричным алгоритмом стал алгоритм
RSA, названный так по первым буквам фамилий своих разработчиков. Алгоритм
был разработан в 1978 году. В основу криптостойкости RSA положена задача факторизации (разложения на множители) больших (более 200 двоичных разрядов) целых чисел.
Процедуры генерации ключей, шифрования и дешифрования для этого алгоритма представлены на рис. 2.15.
44
Получатель
Генерация ключей
Выбрать простые p и q
Вычислить n=p*q
Выбрать случайное e такое,
что: (e,(p-1)(q-1))=1
Найти с помощью алгоритма Евклида d такое, что:
ed  1 mod (p-1)(q-1)
Отправитель
Сообщение m
Открытый
ключ (e,n)
Шифрование
c=me mod n
Закрытый ключ d
Дешифрование
Шифротекст
c
m=(cd ) mod n
Рис.2.15. Схема шифрования алгоритма RSA
На этапе генерации ключей формируется пара ключей: закрытый d и открытый e. Шифрование данных должно начинаться с его разбиения на блоки m размером k=[log2 (n)] бит каждое, чтобы блок m можно было рассматривать как целое
число в диапазоне [0.. n-1]. Обратимость операции шифрования и дешифрования
RSA требует доказательства. Из теоремы Эйлера известно, что для двух целых чисел n и x, таких, что (n,x)=1, выполняется:
x(n)1 mod n,
(2.2)
где (n) – функция Эйлера, значение которой равно количеству чисел меньших n и
взаимно простых с ним. Для n=pq из алгоритма RSA, где p и q – простые числа,
можно записать (n)=(p-1)(q-1).
Тогда (2.2) можно переписать в виде:
x(p-1)(q-1)1 mod n
(2.3)
Возведем обе части (2.3) в степень –y:
x(-y)(p-1)(q-1)  1(-y) mod n  1 mod n
(2.4)
45
Умножим обе части (2.4) на x:
x(-y)(p-1)(q-1) +1 mod n = x
(2.5)
Но при генерации ключей мы получили e и d такие, что ed  1 mod (p-1)(q-1), а
это означает, что в (2.5) можно заменить 1-y(p-1)(q-1) на ed:
xed mod n = x
Тогда, если мы возведем шифротекста c=me mod n в степень d по модулю n,
как мы это и делаем при дешифровании, то получим:
(cd ) mod n= (me mod n)d mod n = med mod n = m
Очевидно, что основная задача криптоаналитика при взломе этого шифра –
узнать закрытый ключ d. Для этого он должен выполнить те же действия, что и получатель при генерации ключа – решить в целых числах уравнение
ed + y (p-1)(q-
1) =1 относительно d и y. Однако, если получателю известны входящие в уравнение
параметры p и q, то криптоаналитик знает только число n – произведение p и q. Следовательно, ему необходимо произвести факторизацию числа n, то есть разложить
его на множители. Для решения задачи факторизации к настоящему времени разработано множество алгоритмов: квадратичного решета, обобщенного числового решета, метод эллиптических кривых. Но для чисел большой размерности это очень
трудоемкая задача. Ее трудоемкость можно подтвердить следующими цифрами [11]:
для факторизации числа 100D (число с 100 десятичными разрядами) потребовалась
вычислительная мощность 7MY (1 MY – величина, равная годовой производительности компьютера, выполняющего один миллион целочисленных инструкций в секунду), для числа 130D – 500MY, для числа 140D – 2000 MY. Современная криптография к надежным ключам шифрования RSA относит ключи длиной 768, 1024,
2048 бит.
Необходимо отметить, что математически не была доказана единственность
способа восстановления m по с и e разложением n на множители. Криптоаналитики
не исключают, что может быть открыт совсем иной способ криптоанализа RSA, и
тогда алгоритм станет абсолютно непригодным для практического использования.
Еще одной проблемой является генерация больших простых чисел для алгоритма. Строгое доказательство простоты сгенерированного случайного числа требует решение той же самой задачи факторизации, поэтому большинство общеприня46
тых тестов устанавливает простоту числа с некоторой вероятностью. Что произойдет, если p или q окажется составным? Тогда у модуля n будет три или более делителей. Соответственно некоторые делители будут меньше рекомендованной величины, что, в свою очередь, открывает возможности для атаки путем факторизации модуля.
Некоторые атаки используют уязвимость протокола использования алгоритма
RSA [12]. Важно понимать, что само по себе использование RSA не обеспечивает
требуемого уровня безопасности системы. Рассмотрим некоторые возможные атаки
на протокол шифрования RSA.
Если злоумышленнику удалось перехватить сообщение c, зашифрованное с
помощью открытого RSA-ключа пользователя А, то для раскрытия m = сd он сначала выбирает первое случайное число r, меньшее n, и затем, воспользовавшись открытым ключом А е, вычисляет
x = re mod n,
y = xc mod n,
t = r-1 mod n.
Если х = re mod n , то r= xdmod n
Далее злоумышленник каким-либо способом вынуждает А закодировать сообщение
y на его секретном ключе. А посылает злоумышленнику
u = yd mod n
Теперь злоумышленник раскрывает m, вычисляя
tu mod n =r-1yd mod n = r-1 xdcd mod n =cd mod n = m
Еще одной известной атакой является атака на основе общего RSA-модуля
Если раздать всем абонентам криптосети одинаковый модуль n, но каждому — свои
значения показателей степени (e1, d1), (e2, d2), то при шифровании одного и того же
сообщения разными показателями степени (при фиксированном модуле) при условии, что показатели e1 и e2 — взаимно-простые числа, открытый текст может быть
раскрыт даже при неизвестных ключах дешифрования. Пусть заданы: m — открытый текст, e1 и e2 — два ключа шифрования, n — общий модуль. Шифротекстами
сообщения являются:
c1 = me1 mod n,
47
c2 = me2 mod n,
Криптоаналитик знает n, e1, e2, c1 и c2. Так как e1 и e2 — взаимно-простые числа, то,
воспользовавшись расширенным алгоритмом Евклида, можно найти такие числа r и
s, что
re1 + se2 = 1.
Полагая r отрицательным (или r, или s должно быть отрицательным), можно снова
воспользоваться расширенным алгоритмом Евклида для вычисления c1-1. Тогда
(c1-1)-rc2 s = (me1 mod n)r (me2 mod n)s = me1r+e2s mod n =m mod n.
Таким образом, использование общего для группы пользователей параметра n
может отрицательно сказаться на уровне безопасности криптосети.
Еще одно требование к криптопротоколам вытекает из возможности атаки «шифрование коротких сообщений». Известно, что криптосистема RSA обладает низкой
криптостойкостью при зашифрованном на малом e коротком сообщении. Действительно, при c = me < n открытый текст m может быть восстановлен по шифротексту
c при помощи процедуры извлечения корня. Однако меры противодействия также
очевидны, — либо открытый ключ e должен быть достаточно большим, либо открытый текст не должен быть коротким. Выбор малого e обусловлен соображениями
вычислительной эффективности шифрования и проверки подписи. Таким образом,
разумный подход заключается в искусственном наращивании коротких открытых
текстов («набивки»).
Для практической криптостойкости алгоритма RSA необходимо соблюдать
еще ряд ограничений: секретный ключ d не должен быть слишком маленьким, числа
p и q должны очень близко совпадать по порядку длины, числа (p+1) и (q+1) должны
содержать в своем разложении большие простые делители. Эти ограничения учитывают ряд возможных атак на RSA, которые не рассмотрены в данном пособии.
Рассмотрим еще один алгоритм асимметричного кодирования – схему Рабина.
Этот алгоритм похож на кодирование RSA, но вместо возведения сообщения в степень е при шифровании используется операция возведения блока сообщения в квадрат, что благоприятно сказывается на скорости выполнения алгоритма без ущерба
криптостойкости (рис.2.16).
48
Получатель
Генерация ключей
Выбрать простые p и q такие, что р 3 mod 4
q 3 mod 4
Вычислить n=p*q
С помощью алгоритма Евклида решить
ар+bq=1
Отправитель
Сообщение m
Открытый
ключ (n)
Шифрование
c=m2 mod n
Закрытый ключ (p,q,a,b)
Дешифрование
(p+1)/4
r=c
mod p
(q+1)/4
s=c
mod q
x=(aps+bqr) mod n
y=(aps-bqr) mod n
m=(x),(y)
Шифротекст
c
Рис.2.16. Схема шифрования алгоритма Рабина
По сравнению с RSA схема Рабина имеет меньший открытый ключ n и обеспечивает меньшее время шифрации. Недостатком схемы является то, что в результате дешифрования получается 4 различных значения, лишь одно из которых совпадает с исходным сообщением. Для разрешения этой ситуации в кодируемое сообщение необходимо добавлять некоторую метку, которая позволит однозначно отличить
его на принимающей стороне.
Список алгоритмов асимметричного шифрования на этом, безусловно, не исчерпывается, более полный их перечень приведен в [12]. В заключение обзора хотелось бы отметить еще два алгоритма, которые строятся на иных трудновычислимых
задачах. Криптосистема МакЭлиса основана на методах теории помехоустойчивого
кодирования. Эта криптосистема использует декодирование кода с исправлением
ошибок и использует тот факт, что линейный код в общем случае не имеет полиномиального алгоритма декодирования. Криптосистема на основе эллиптических кри49
вых, использует свойства эллиптической кривой (ЭК), которая представляет собой
множество точек на плоскости, удовлетворяющих уравнению:
y2 = x3 + ax + b mod p,
Криптостойкость ЭК основана на трудности решения задачи дискретного логарифмирования в группе точек эллиптической кривой над конечным полем. Более
подробно криптосистемы на эллиптических кривых будут рассмотрены в главе 4.
2.5.3. Сравнительный анализ симметричных и асимметричных алгоритмов
шифрования
Основным недостатком симметричного шифрования является необходимость
передачи ключей "из рук в руки" (по секретному каналу связи), что далеко не всегда
достижимо на практике. Недостаток этот весьма серьезен, поскольку делает невозможным использование симметричного шифрования в системах с неограниченным
числом участников. Однако, алгоритмы асимметричного шифрования имеют гораздо большее количество недостатков. Первый из них - низкая скорость выполнения
операций зашифрования и расшифрования, обусловленная наличием ресурсоемких
операций. Время шифрования/дешифрования асимметричных алгоритмов в среднем
на три порядка больше аналогичного по криптостойкости симметричного.
Другой недостаток – теоретический. Как уже говорилось,
математически
криптостойкость алгоритмов асимметричного шифрования не доказана - пока не
удалось доказать, что ее решение за приемлемое время невозможно.
Излишние трудности создает и необходимость защиты открытых ключей от
подмены, - подменив открытый ключ легального пользователя, злоумышленник
сможет обеспечить зашифрование важного сообщения на своем открытом ключе и
впоследствии легко расшифровать его своим секретным ключом. Это требует дополнительных мер по организации протокола кодирования, например, использования сертификации открытых ключей участников.
Тем не менее, эти недостатки не препятствуют широкому применению алгоритмов асимметричного шифрования. Сегодня существуют криптосистемы, поддерживающие сертификацию открытых ключей, а также сочетающие алгоритмы
50
симметричного и асимметричного шифрования, когда, например, информация кодируется симметричным ключом шифрования, а секретный ключ кодируется по асимметричной схеме.
2.6. Хэш-функции
Для очень большого количества технологий безопасности (например, аутентификации, ЭЦП) применяются односторонние функции шифрования, называемые
также хэш-функциями. Основное назначение подобных функций – получение из сообщения произвольного размера его дайджеста – значения фиксированного размера.
Дайджест может быть использован в качестве контрольной суммы исходного сообщения, обеспечивая таким образом (при использовании соответствующего протокола) контроль целостности информации. Основные свойства хэш-функции:
1) на вход хэш-функции подается сообщение произвольной длины;
2) на выходе хэш-функции формируется блок данных фиксированной длины;
3) значения на выходе хэш-функции распределены по равномерному закону;
4) при изменении одного бита на входе хэш-функции существенно изменяется
выход.
Кроме того, для обеспечения устойчивости хэш-функции к атакам она должна
удовлетворять следующим требованиям:
1) если мы знаем значение хэш-функции h, то задача нахождения сообщения
M такого, что Н(М)=h, должна быть вычислительно трудной;
2) при заданном сообщении M задача нахождения другого сообщения M’, такого, что Н(М)=H(M’), должна быть вычислительно трудной
Если хэш-функция будет удовлетворять перечисленным свойствам, то формируемое ею значение будет уникально идентифицировать сообщения, и всякая попытка изменения сообщения при передаче будет обнаружена путем выполнения хэширования на принимающей стороне и сравнением с дайджестом, полученным на
передающей стороне.
51
Еще одной особенностью хэш-функций является то, что они не допускают обратного преобразования – получить исходное сообщения по его дайджесту невозможно. Поэтому их называют еще односторонними функциями шифрования.
Хэш-функции строятся по итеративной схеме, когда исходное сообщение разбивается на блоки определенного размера, и над ними выполняются ряд преобразований с использованием как обратимых, так и необратимых операций. Как правило,
в состав хэширующего преобразования включается сжимающая функция, поскольку
его выход зачастую по размеру меньше блока, подаваемого на вход. На вход каждого цикла хэширования подается выход предыдущего цикла, а также очередной блок
сообщения. Таким образом, на каждом цикле выход хэш-функции hi представляет
собой хэш первых i блоков.
Если вспомнить, насколько рандомизируют входное сообщение блочные
шифры, можно в качестве функции хэш-преобразования использовать какой-нибудь
блочный шифр. То, что блочные шифры являются обратимыми преобразованиями,
не противоречит свойствам хэш-функции, поскольку блочный шифр необратим по
ключу шифрования, и, если в качестве ключа шифрования использовать выход
предыдущего шага хэш-преобразования, а в качестве шифруемого сообщения очередной блок сообщения (или наоборот), то можно получить хэш-функцию с хорошими криптографическими характеристиками. Такой подход использован, например, в российском стандарте хэширования – ГОСТ Р 34.11-94. Эта хэш-функция
формирует 256-битное выходное значение, используя в качестве преобразующей
операции блочный шифр ГОСТ 28147-89 (рис.2.17). Функция хэширования H получает на вход хэш, полученный на предыдущем шаге (значение h0 произвольное
начальное число), а также очередной блок сообщения mi. Ее внутренняя структура
представлена на рис.2.18. Здесь в блоке шифрующего преобразования для модификации hi в si используется блочный шифр ГОСТ 28147-89. Перемешивающее преобразование представляет собой модифицированную перестановку Фейштеля. Для последнего блока mN (N – общее количество блоков сообщения) выполняется набивка
до размера 256 бит с добавлением истинной длины сообщения. Параллельно подсчитывается контрольная сумма сообщения  и суммарная длина L, которые участвуют в финальной функции сжатия.
52
mN
m1
h0
h1
H
h2
H
0
1
2
0
L1
L2
256
набивка
m2
…
…
финальная итерация
H
H
H
h
N-1
LN-1
|mN|
256
Рис.2.17. Общая схема хэшироваения по ГОСТ Р 34.11 - 94
mi
hi-1
Перемешивающее
преобразование
(hi-1, mi, si)
H
hi
si
шифрующее преобразование
Рис.2.18. Структура функции хэширования в ГОСТ Р 34.11-94
Основным недостатком хэш-функций на основе блочных шифров является невысокая скорость их работы. Поэтому были спроектированы ряд специализированных алгоритмов, которые, обеспечивая аналогичную стойкость к атакам, выполняют
гораздо меньшее количество операций над входными данными и обеспечивают
большую скорость работы. Примерами подобного рода алгоритмов являются : MD2,
MD4, MD5, RIPEMD –160, SHA. Рассмотрим подробнее структуру алгоритма хэширования SHA (Secure Hash Algorithm), который описан в стандарте SHS и обеспе-
53
чивает безопасность электронной цифровой подписи DSA, формируя 160-битный
дайджест сообщения.
Сначала сообщение разбивается на блоки длиной 512 бит. Если длина сообщения не кратна 512, к последнему блоку приписывается справа 1, после чего он
дополняется нулями до 512 бит. В конец последнего блока записывается код длины
сообщения. В результате сообщение приобретает вид n 512-разрядных блоков
M1,M2,…,Mn.
Алгоритм SHA использует 80 логических функций f0,f1,…,f79, которые производят операции над тремя 32-разрядными словами (B,C,D):
ft(B,C,D) = (B  C)  (( B)  D)
для 0 t 19
ft(B,C,D) = B  C  D
для 20  t 39
ft(B,C,D) = (B  C)  (B  D)  (C  D)
для 40  t  59
ft(B,C,D) = B  C  D
для 60  t  79
В алгоритме используются также специальным образом инициализированные
4 константы Ki и 5 начальных значений Hi.
Делим массив M на группы из 16 слов W0, W1,…,W15 (W0 самое левое слово).
Для t = 16 - 79 Wt = S1(Wt-3  Wt-8  Wt-14  Wt-16)
Sk означает операцию циклического сдвига влево на k разрядов.
Пусть теперь A = H0, B = H1, C = H2, D = H3, E = H4.
for t = 0 to 79 do
TEMP = S5(A) + ft(B,C,D) + E + Wt + Ki.
E = D; D = C; C = S30(B); B = A; A = TEMP;
Пусть H0 = H0 + A; H1 = H1 + B; H2 = H2 + C; H3 = H3 + D; H4 = H4 + E.
Графически один цикл SHA представлен на рис.2.19.
В результате обработки массива М будет получено 5 слов H0, H1, H2, H3, H4 с
общей длиной 160 бит, которые и образуют дайджест сообщения.
Из приведенных данных ясно, что сложность американского стандарта хэширования ниже, чем у российского. Российский стандарт предполагает выполнение
четырех шифрований за один цикл выработки хэша, или в общей сложности 128 раундов. Каждый раунд шифрования требует примерно полтора десятка элементарных
54
Wi
Ki
E
E
D
D
Функция ft
C
B
A
C
<<<30
<<<5
B
A
Рис.2.19. Один цикл преобразования SHA
машинных операций, что существенно увеличивает затраты машинного времени на
выполнение линейных перемешивающих операций. Один раунд выработки хэша
SHA гораздо проще: он весь может быть реализован примерно за 15-20 команд, общее количество раундов всего 80, и за один цикл выработки хэша обрабатывается
вдвое больше исходных данных — 512 против 256 в ГОСТ P34.ll -94. Таким образом, можно предположить, что быстродействие программных реализаций SHA будет примерно в 3-6 раз быстрее, чем у отечественного стандарта.
Основная задача хэш-функций – генерация дайджестов, уникальных для конкретного документа. Если для двух различных входных блоков хэш-функция дает
одинаковый дайджест, такая ситуация называется хэш-коллизией. Из теоремы, носящей название «парадокс дней рождения», следует, что для n-битного хэшзначения необходимо в среднем 2n/2 различных входных сообщений, чтобы возникла
коллизия. Это делает практически невозможным изменение документа при его подписи с помощью, например, алгоритма SHА путем простого подбора, поскольку при
таком подходе потребуется сгенерировать около 280 различных сообщений, чтобы
получить аналогичное подменяемому по получаемому дайджесту. Эта цифра недостижима для современного уровня технологий.
2.7. Вывод
Криптография – наука о преобразовании информации в недоступный стороннему наблюдателю вид. Криптографические методы делятся на симметричные, тре55
бующие знания обменивающимися информацией сторонами некоторого общего
секрета (ключа), и асимметричные, использующие пару ключей для обмена информацией, один из которых является публичным – доступным всем желающим.
Обособленным видом криптопреобразований является хэширование, которое позволяет формировать для каждого сообщения уникальный идентифицирующий его
дайджест. Методы криптографии используются для обеспечения конфиденциальности, целостности данных, аутентификации, доказательства принадлежности. Об их
практическом применении речь пойдет в последующих главах.
56
3. Аутентификация
Аутентификация – метод доказательства пользователем того, что он действительно является тем, за кого себя выдает. Процедуру аутентификации необходимо
отличать от идентификации, которая подразумевает только предъявление пользователем своего имени - идентификатора. В аутентификации участвуют две стороны –
одна сторона (клиент) доказывает свою аутентичность, другая (сервер аутентификации) – принимает доказательства и выносит решение. В качестве доказательства
аутентичности могут выступать:
 нечто, что аутентифицируемый знает (пароль, ключ и т.п.);
 нечто, чем аутентифицируемый владеет (электронная магнитная карта);
 нечто, что является его частью (биометрические параметры).
3.1. Парольная аутентификация
Простота реализации и логическая ясность принципов функционирования делают системы парольной аутентификации самыми популярными. И хотя существует
множество угроз данной схеме авторизации (подбор пароля, анализ трафика, повторное воспроизведение запроса на аутентификацию), она используется в большинстве информационных систем, а задачи защиты от перечисленных угроз решаются обычно комплексом мер, одно из центральных мест в которых занимает криптографическая защита.
В настоящее время используются два основных метода аутентификации пользователей:
- с однонаправленной передачей информации от клиента к серверу аутентификации;
- технология «запрос-ответ»
Однонаправленная схема предполагает передачу от клиента серверу своего идентификатора и пароля, которые проверяются сервером по имеющейся у него базе
данных, и по результатам сравнения принимается решение о личности клиента.
Чтобы противодействовать пассивному перехвату пароля при передаче по сети,
57
применяется хэширование пароля. Схема однонаправленной аутентификации представлена на рис.3.1.
Перехватив запрос при передаче его по сети, злоумышленник не сможет воспольСервер
База данных
id
q
Клиент
pass
q=q’
Запрос
h
’
q =h(pass)
да
id
предоставление
доступа
id
Рис.3.1. Схема однонаправленной аутентификации
зоваться им для получения пароля пользователя для последующей аутентификации
от имени пользователя с идентификатором id, поскольку пароль передается в захэшированном виде q’, а обратить операцию хэширования невозможно.
Приведенная на рис.3.1 схема неспособна противостоять атаке несанкционированного воспроизведения, когда злоумышленник, перехватив сетевой трафик сеанса аутентификационной связи легального пользователя, позднее в точности воспроизводит его, и таким образом получает доступ к ресурсам. Для противостояния
атаке подобного рода в запрос вносятся временные метки, либо некоторые одноразовые числа, которые по договоренности сторон могут быть использованы только
однажды. Схема аутентификации с одноразовыми числами представлена на рис.3.2.
Дополнительный параметр t в этой схеме является либо случайным числом, генерируемым для каждого запроса на аутентификацию, либо одноразовым числом из
набора, заранее оговоренного обеими сторонами. При использовании этой схемы
злоумышленник не сможет повторно воспроизвести ранее сохраненный им запрос
на аутентификацию легального пользователя, поскольку в нем использовано значение t, которое считается уже использованным, и сервер отвергнет повторный запрос.
58
Сервер
База данных
id
q
Клиент
pass
h1
q’
h2
Запрос
r’=h2(q’+t)
h2
t
id
id
r=r’
t
да
предоставление
доступа
Рис.3.2. Схема аутентификации c защитой от несанкционированного воспроизведения
Очевидным требованием к подобной системе аутентификация является наличие на стороне сервера базы данных, в которой бы сохранялись уже использованные значения t. Если в качестве t используется временная метка, то на систему
аутентификации накладываются дополнительные требования по временной синхронизации вычислительных средств клиента и сервера. Развитием подобных схем
аутентификации стала схема «запрос-ответ». В этой схеме в ответ на запрос клиента
на аутентификацию сервер высылает ему некоторое случайное или псевдослучайное
число (challenge), клиент должен выполнить некоторое криптографическое действие
(блочное шифрование, хэширование) над объединением парольной фразы и присланным сервером числом. Результат этого действия высылается серверу, который,
выполнив аналогичные действия с challenge и хранящимся у него паролем клиента,
сравнивает результат с присланным пользователем значением и принимает решение
об аутентификации. Схема аутентификации «запрос-ответ» приведена на рис.3.3.
Схема «запрос-ответ» также защищает от несанкционированного воспроизведения,
поскольку для каждого сеанса аутентификации сервер генерирует уникальный
challenge.
59
Запрос 1
Сервер
id
База данных
Клиент
pass
h1
id
Ответ 1
q
challenge
h2
q’
Запрос 2
h2
r’=h2(q’+chalenge)
id
Генератор
challenge
id
r=r’
да
предоставление
доступа
Рис.3.3. Схема аутентификации c защитой от несанкционированного воспроизведения
Говоря о парольной аутентификации, необходимо сказать несколько слов о
качестве применяемых парольных фраз. Для того чтобы система аутентификации
была защищена от атак типа угадывания или перебора паролей, необходимо, чтобы
длина пароля и его семантическая наполненность максимально противостояли такого рода атакам. Типовые ошибки при выборе пароля:

пользователь выбирает в качестве пароля фразу, производную от иден-
тификатора пользователя;

пользователь выбирает в качестве пароля слово какого-либо языка или
общеупотребительную фразу. Такие пароли подбираются злоумышленником путем
словарной атаки — перебором слов и наиболее часто употребляемых фраз по определенному словарю. Как показывает практика, достаточен небольшой объем требуемых фраз в словаре для проведения успешной словарной атаки;

использование в качестве пароля очень коротких фраз, которые легко
подбираются перебором всех возможных вариантов.
Исходя из этого перечня, идеальным можно было бы назвать пароль длиной в
несколько десятков символов, представляющий собой нечитаемую фразу с как можно большим набором используемых символов. Однако, практическое использование
60
такого пароля сопряжено с другими проблемами, так как пользователь будет не в
состоянии его запомнить, он будет вынужден хранить его в открытом виде на бумажном или магнитном носителе, что является предпосылкой хищения пароля.
Как еще одну угрозу парольной аутентификации можно назвать применяемые
злоумышленниками методы социальной инженерии, когда для раскрытия пароля
используются методы социальной коммуникации (например, звонок от имени системного администратора с просьбой назвать свой пароль).
Для практического применения рассмотренных принципов и алгоритмов парольной аутентификации в настоящее время разработано множество протоколов
аутентификации. Рассмотрим самые популярные.
Протокол аутентификации PAP (Password Authentification Protocol) - наиболее
простой протокол проверки подлинности для подключений по протоколу PPP. Имя
пользователя и пароль запрашиваются удаленным сервером доступа и возвращаются
клиентом удаленного доступа в обычном текстовом формате.
Протокол аутентификации CHAP (Challenge Handshake Authentification
Protocol) использует схему проверки подлинности типа "запрос-ответ" для подключений по протоколу PPP. Описан в спецификации RFC 1994, использует необратимое шифрование по промышленному стандарту MD5 для хеширования ответа на запрос, выданный сервером удаленного доступа. Может использоваться также для периодического подтверждения подлинности субъекта в рамках уже установленного
соединения.
Протокол аутентификации EAP (Extensible Authentication Protocol)- расширение протокола PPP, обеспечивающее проверку подлинности удаленных пользователей при помощи специальных устройств. Предусмотрена поддержка набора схем
проверки подлинности. Эти схемы включают генераторы кода доступа, удаленное
подключение, протокол Kerberos V5, одноразовые пароли, проверку подлинности на
основе открытых ключей с использованием смарт-карт, сертификаты и другое. EAP
работает с удаленными клиентами, а также с клиентами PPTP и L2TP.
Протокол Kerberos представляет собой набор методов идентификации и проверки истинности партнеров по обмену информацией (рабочих станций, пользователей или серверов) в открытой (незащищенной) сети. Протокол предполагает взаи61
модействие двух участников А и В посредством сервера, которому они оба доверяют и имеют с ним секретные долговременные ключи.
Базовый протокол Kerberos предполагает взаимодействие следующих участников: клиента А, проверяющей стороны В и доверенного сервера Т (сервер аутентификации Kerberos). В начале работы А и В не имеют общего секрета в виде ключа
шифрования, в то время как Т имеет общий секрет с каждым из них в виде базы
данных клиентов и их секретных ключей. Протокол Kerberos решает следующие задачи: проверку подлинности клиента А (возможна также взаимная аутентификация),
обмен временным сеансовым ключом шифрования.
Работа протокола происходит следующим образом. А запрашивает у Т необходимые данные, называемые удостоверением и позволяющие В проверить подлинность А. Т выступает здесь в роли центра распространения ключей (key
distribution center, KDC) и передаёт А зашифрованный его секретным ключом сеансовый ключ и билет (ticket), зашифрованный ключом В. Этот билет, который
впоследствии А передаёт В, содержит сеансовый ключ и данные об А, что позволяет В осуществить проверку подлинности А. Для предотвращения атаки несанкционированного воспроизведения А передаёт вместе с билетом сообщение (аутентификатор), содержащее отметку о текущем времени и зашифрованное сеансовым
ключом. Работа базового протокола Kerberos поясняется схемой на рис. 3.4., в котором приняты следующие обозначения:
Е – симметричный алгоритм шифрования (DES);
NA –текущее время, устанавливаемое А;
ТА – временная метка согласно локальным часам А;
k – сеансовый ключ взаимодействия А и В, генерируемый Т;
L – срок действия сеансового ключа;
КAТ, КBТ – секретные ключи шифрования А-Т и В-Т;
ticket- билет, например ticketB=EKBT(k,A,L);
auth – аутентификатор, например, аутентификатор А Ek(A,TA).
Пользователь А посылает серверу T данные для получения сеансового ключа с
В в сообщении (1). Сервер T генерирует сеансовый ключ k, определяет время его
жизни L , шифрует их на ключе KАT , а также формирует билет ticketB, используя
62
A,B,NA
T
2
1
EKAT (k,NA,L,B),ticketB
ticketB, auth
A
3
B
4
Ek(TA)
Рис.3.4. Схема общего протокола Kerberos
секретный ключ KBT и передает эту информацию пользователю в сообщении (2).
Пользователь А, получив сообщение (2), расшифровывает его первую часть своим
ключом KАT , извлекает сеансовый ключ и с его помощью формирует аутентификатор auth, который вместе с билетом передает B в сообщении (3). В получает сообщение (3), расшифровывает билет при помощи KBT , получает k и расшифровывает
аутентификатор. При этом B должен проверить чтобы:
а) совпали значения идентификатора А в билете и аутентификаторе;
б) была правильной временная метка TA в аутентификаторе;
в) текущее время В находилось в интервале времени жизни L, указанного в билете.
Если все проверки пройдены, то В объявляет, что А успешно прошёл процесс
аутентификации, и высылает A зашифрованное на сеансовом ключе значение TA. в
сообщении (4). Полученное от В значение ТА пользователь сравнивает с посланным
в аутентификаторе. Если они совпадают – пользователь А может в свою очередь
аутентифицировать В.
В полной версии протокола Kerberos в отличие от базовой используеюся
серверы двух уровней. Первый сервер называется сервером аутентификации. Он
формирует билеты большого срока действия, которые называются билеты на получение билетов (ticket granting ticker, TGT). Второй тип серверов (серверы выдачи
билетов) по получении TGT генерируют билеты другого типа – билеты на ресурс
(resource ticket ,RT), которые непосредственно используются для аутентификации.
63
Использование такой схемы позволяет существенно разгрузить сервер аутентификации при наличии множества пользователей в системе, но при этом сохранить централизованный принцип управления процедурой аутентификации.
В операционной системе Microsoft Windows 2000 аутентификация пользователей производится с помощью протокола Kerberos версии 5, дополненного расширениями, связанными с инфраструктурой открытых ключей. Первоначальная проверка
пользователя производится в рамках процесса Winlogon, которая обеспечивает единую регистрацию пользователей в системе. Центр распределения ключей Kerberos
интегрирован с другими службами безопасности Windows 2000, установленными
на контроллере домена.
3.2. Аутентификация на основе сертификатов
Недостатками парольной аутентификации, которые во многих частных случаях мешают ее практическому использованию, является неудобство работы с большим количеством пользователей, а также необходимость иметь предварительный
секрет с сервером аутентификации. Решить эти проблемы можно, используя асимметричные схемы криптографии, которые применительно к аутентификации выливаются в применение сертификатов.
Сертификат — блок информации, содержащий данные, уникально идентифицирующие пользователя, его публичный ключ, время действия ключа. Кроме того,
сертификат должен быть подписан заверяющим лицом – специальной сертифицирующей организацией, пользующейся доверием со стороны пользователей. Алгоритм подписи – это алгоритм, который использует заверяющее лицо для подписи
сертификата. Подпись создается пропусканием текста сертификата через одностороннюю хэш-функцию. Величина, получаемая на выходе хэш-функции, зашифровывается частным ключом сертифицирующей организации. При этом предполагается, что публичный ключ заверяющего лица общедоступен и может быть беспрепятственно получен пользователем из открытых источников.
64
Когда нужно удостоверить личность пользователя, он предъявляет свой сертификат в двух формах — открытой, то есть такой, в которой он получил его в сертифицирующей организации, и закрытой, зашифрованной с применением собственного закрытого ключа. Сторона, проводящая аутентификацию, берет из открытого
сертификата открытый ключ пользователя и с его помощью расшифровывает закрытый сертификат. Совпадение результата с данными открытого сертификата означает
успешную аутентификацию. Для того, чтобы проверить, действительно ли данный
сертификат заверен сертифицирующей организацией, с помощью открытого ключа
выдавшей сертификат организации производится расшифровка подписи этой организации в сертификате. Если в результате получается тот же сертификат — значит,
пользователь действительно прошел регистрацию в этой сертифицирующей организации и является тем, за кого себя выдает. В настоящее время существует достаточно большое количество специальных центров сертификации, которые хранят и заверяют ключи пользователей. Самым популярным протоколом сертификации пользователей на сегодня является протокол X.509, который поддерживается большинством браузеров, почтовых клиентов, информационных систем.
Получить сертификат можно у коммерческих организаций. Этим, например,
занимается компания Verisign (http://www.verisign.com). Для нужд сертификации
внутри локальной сети можно воспользоваться специальным программным обеспечением. Для платформы Windows это может быть сервер сертификатов из поставки
Windows 2000 Advanced Server.
3.3. Использование аутентифицирующих устройств
Для аутентификации пользователей могут применяться специальные устройства, хранящие аутентификационную информацию. Наиболее распространенными
на сегодня устройствами являются смарт-карты, карты с магнитной полосой, электронные таблетки iButton, USB-токены.
65
Уникальность каждого из перечисленных предметов определяется информацией, которую он содержит. В простейшем случае эта информация представляет собой идентификатор и пароль пользователя, которые просто считываются с носителя
и передаются модулю аутентификации. Более сложный случай — носитель содержит криптографический ключ, который используется в каком-либо из протоколов
удаленной аутентификации. Зачастую подобного рода устройства используются в
рамках двухфакторной аутентификации, когда совместно с устройством используют дополнительно методы парольной аутентификации (ввод PIN-кода при использовании электронной магнитной карты).
В качестве угроз этому типу аутентификации можно назвать:

хищение аутентифицирующего предмета у его владельца;

необходимость специального оборудования для работы с устройствами;

возможность изготовления копии или эмулятора устройства.
Несмотря на перечисленные угрозы, аутентификация посредством специаль-
ных устройств становится все более популярной, тем более что многие популярные
информационные системы уже имеют встроенную поддержку подобного рода
аутентификации. Так, операционные системы фирмы Microsoft Windows 2000 и выше имеют встроенные средства поддержки аутентификации с использованием USBтокенов.
3.4. Биометрические методы аутентификации
Главным недостатком перечисленных выше методов аутентификации является
то, что они аутентифицируют не конкретного субъекта, а фиксируют тот факт, что
аутентификатор субъекта соответствует его идентификатору. То есть, все перечисленные методы не защищены от компрометации аутентификатора, когда каким-либо
способом (путем угадывания, перебора, хищения) пароль или аутентифицирующее
устройство становятся доступны злоумышленнику. Биометрические методы идентификации или аутентификации свободны от этого недостатка, так как они основы66
ваются на анализе уникальных характеристик самого человека. В качестве аутентификационной информации в данном случае берутся во внимание оригинальные и
неотъемлемые характеристики человека. Наиболее часто используются следующие
из них:
1. Отпечатки пальцев.
2. Рисунок радужной оболочки глаза.
3. Геометрия лица.
4. Голос.
5. Геометрия руки
6. Индивидуальная техника работы.
В качестве примера последней характеристики можно назвать «клавиатурный
почерк». Способ работы с клавиатурой компьютера у различных пользователей
имеет индивидуальные характеристики (темп набора, временные характеристики
между нажатием определенных клавиш и т.п.). Эти характеристики замеряются при
аутентификации пользователя и сравниваются с заранее сохраненным эталоном для
данного пользователя. Надежность методов биометрической аутентификации можно
оценить по данным в таблице 3.1[11].
Таблица 3.1
Надежность биометрических методов аутентификации
Биометрический метод
Процент ошибок
Распознавание голоса
3%
Динамика факсимильной подписи
2%
Сканирование сетчатки
2%
Геометрия руки
0.1%
Отпечатки пальцев
0%
Главным недостатком подобных методов аутентификации является их высокая стоимость, для некоторых из них еще не достигнута достаточная точность.
67
3.5. Вывод
Аутентификация пользователей является важным элементом системы безопасности. Наиболее популярный способ аутентификации – парольная аутентификация, основанная на знании пользователем некоторой фразы. Она использует криптографические методы (хэширование) для защиты от перехвата пароля. Аутентификация на основе сертификатов использует асимметричные схемы взаимодействия
клиента и сервера. Более дорогостоящими и потому пока менее популярными методами аутентификации являются использование аутентифицирующих устройств и
биометрических параметров.
68
4. Электронная цифровая подпись
Еще одной важной услугой безопасности информационных систем становится
в последнее время аутентификация информации, которая понимается как установление подлинности и неизменности сообщения, установления и доказуемости авторства сообщения, доказательства факта приема сообщения. Особенно важна эта услуга в сфере финансового и юридического электронного документооборота. Для решения задачи аутентификации информации сегодня используется концепция электронной цифровой подписи (ЭЦП). ЭЦП – это набор методов, которые позволяют
перенести свойства рукописной подписи под документом в область электронного
документооборота. Реальная подпись обладает следующими свойствами:
1)
достоверностью, утверждающей, что пользователь сознательно под-
писал документ;
2)
неподдельностью, доказывающей, что конкретный пользователь, а
никто другой за него подписал документ;
3)
невозможностью повторного использования подписи под одним до-
кументом для подписи другого;
4)
неизменностью подписанного документа;
5)
материальностью подписи, не дающей возможности подписавшему
впоследствии отказаться от нее и от документа.
Такими же свойствами должна обладать электронная цифровая подпись, для
чего в ее основу положены криптографические методы. Рассмотрим вариант реализации электронной цифровой подписи, построенной на алгоритме RSA (рис.4.1).
69
Отправитель
Генерация ключей
Выбрать простые p и q
Вычислить n=p*q
Выбрать случайное e такое,
что: (e,(p-1)(q-1))=1
Найти с помощью алгоритма Евклида d такое, что:
ed  1 mod (p-1)(q-1)
Открытый
ключ (e,n)
Получатель
h=sign e mod n
c=me mod n
Закрытый ключ d
Письмо с ЭЦП
(m, sign)
Сообщение m
h=H(m)
h=H(m)
да
ЭЦП верна
d
sign=h mod n
Рис.4.1. Схема ЭЦП на основе алгоритма RSA
В отличие от алгоритма шифрования, отправителем здесь является владелец
пары закрытый/открытый ключ. Процедура формирования электронной подписи
sign под сообщением схожа с шифрованием документа, но в степень закрытого ключа d по вычету n возводится не само сообщение или его части, а дайджест сообщения h. Неотъемлемой частью алгоритмов ЭЦП является хэширование информации,
на рисунке оно обозначено через H(), и это может быть любой из рассмотренных в
главе 2.5 алгоритмов хэширования.
Сообщение m с подписью sign будет однозначно аутентифицировано. Авторство сообщения может быть установлено и доказано по паре ключей (d, e) с использованием сертификации по схеме, описанной в 3.2. Злоумышленник не сможет подменить сообщение m (точнее, ему будет очень трудно это сделать), поскольку ему
необходимо вместо сообщения m подставить другое сообщение m’, удовлетворяющее его и имеющее такое же значение хэш-функции, что и у m, что является на сегодня вычислительно трудной задачей. По этой же причине злоумышленник не
70
сможет применить перехваченную подпись sign для подписи другого документа, поскольку для другого документа будет получено иное значение хэш-функции h, а
оно лежит в основе подписи. Таким образом, все необходимые свойства подписи
описанным алгоритмом обеспечиваются, что же касается криптостойкости метода
ЭЦП, то она определяется криптостойкостью используемого асимметричного криптографического метода и функции однонаправленного шифрования. Необходимо
отметить также, что само сообщение m передается в открытом виде. Для того, чтобы
обеспечить конфиденциальность передаваемой в нем информации, требуется использование дополнительного шифрования по симметричной или асимметричной
схеме (при этом шифрование на ключе d конфиденциальности не обеспечит, поскольку сообщение может быть расшифровано открытым ключом e).
Очень популярными являются схемы ЭЦП на основе алгоритма ЭльГемаля,
что обусловлено как надлежащей стойкостью алгоритма, так и лучшей по сравнению с RSA скоростью вычислений. В частности, в стандарте национального института стандартов США DSS (Digital Signature Standard) используется алгоритм DSA
(Digital Signature Algorithm), который является вариацией алгоритма ЭЦП ЭльГемаля в модификации Шнорра. В алгоритме используются следующие открытые параметры:
p - простое число в диапазоне от 512 до 1024 бит;
q - 160-битовое простое число, делитель p-1;
v – любое число, v<p-1, такое, что v(p-1)/q mod p >1;
g = v(p-1)/q mod p;
y=gx mod p.
Секретным ключом является любое 160-разрядное число x, x<q.
Алгоритм ЭЦП DSA в графической форме представлен на рис.4.2.
71
Отправитель
Генерация ключей
Выбрать случайное x
Вычислить
y=gx mod p
Открытые параметры (p,q,v)
Открытый
ключ (y)
Закрытый ключ x
Получатель
w= s-1 mod q
u1 = (H(m)w) mod q
u2 = (rw) mod q
a = ((gu1 yu2 ) mod p) mod q
Сообщение m
h=H(m)
Письмо с ЭЦП
(m,r,s)
a=r
Формирование подписи
да
выбрать случайное k<q
ЭЦП верна
r=(gk mod p) mod q
s=( (h+xr)/k) mod q
Рис.4.2. Схема алгоритма ЭЦП DSA
Существует множество модификаций схемы ЭльГемаля. Одним из типов модификации стал перенос вычислений в группу, образованную эллиптическими кривыми. Про эллиптические кривые как математический аппарат реализации асимметричных криптоалгоритмов уже шла речь в главе 2.4.2. Рассмотрим свойства эллиптических кривых подробнее.
Для практического применения в криптографии используются эллиптические
кривые (ЭК), заданные над полями Галуа. Пусть задано простое число p > 3. Тогда
эллиптической кривой E, определенной над простым конечным полем Fp, называется множество пар чисел (x, y), x, y  Fp, которые удовлетворяют тождеству:
y2 = x3 + ax + b mod p,
где a, b  Fp и (4a3 + 27b2)  0 mod p. Кроме того, к эллиптической кривой добавляется бесконечно удаленная точка I. Таким образом, точки, удовлетворяющие уравнению кривой E, и точка I образуют конечную абелеву группу.
Геометрическое представление эллиптической кривой изображено на рис. 4.3.
72
Рис. 4.3. График эллиптической кривой
Для точек эллиптической кривой определена операция сложения. Для двух точек, принадлежащих кривой E, P(xp,yp) и Q(xq,yq), точка, являющаяся их суммой,
также будет лежать на эллиптической кривой. Координаты точки S=P+Q определяются следующими выражениями:
k  (( y q  y p ) /( x q  x p )) mod p
xs  (k 2  x p  xq ) mod p
y s  (k ( x p  x q )  y p ) mod p
Точку S можно получить графически путем несложных построений. Для этого
на графике проводится прямая через точки P и Q, и точка пересечения этой прямой с
ЭК зеркально отображается относительно оси OX (см. рис 4.3).
Если точки P и Q совпадают, то мы получаем точку S=2*Q. Тогда ее координаты определяются иначе:
k  ((3 * xq2  a) /( 2 * yq )) mod p
xs  (k 2  2 xq ) mod p
73
y s  (k ( xq  x s )  y p ) mod p
Графически удвоение точки можно получить, построив касательную к точке и
отразив точку пересечения касательной с эллиптической кривой относительно оси
OX (см. точки R и 2R на рис.4.3). Отсюда очевидно, что можно определить операцию умножения некоторой точки эллиптической кривой на целое число , которая
позволяет определить точку Q = k*P (точка P, умноженная на целое число k, обращается в точку Q). Скалярное умножение осуществляется посредством нескольких
комбинаций сложения и удвоения точек эллиптической кривой. Например, точка
25*P может быть представлена, как 25*P = 2*(2*(2*(2*P)) + 2*(2*(2*P))) + P. С операцией умножения точки ЭК на целое число напрямую связана идея, надёжность и
криптостойкость эллиптической криптографии. Дело в том, что задача ECDLP
(Elliptic Curve Discrete Logarithm Problem - задача дискретного логарифма на эллиптической кривой), суть которой заключается в отыскании целого числа k по известным точкам P и Q = k*P, является трудноразрешимой. Помимо уравнения, важным
параметром кривой является базисная (генерирующая) точка G, выбираемая для
каждой кривой отдельно. Секретным ключом в соответствии с технологией ЭК является большое случайное число k, а сообщаемым открытым ключом - произведение
k на базисную точку G.
На криптостойкость алгоритма существенное влияние оказывает правильный
выбор как самой кривой (коэффициентов а, b, p) , так и базисной точки G.
Не каждая кривая обеспечивает требуемую криптостойкость, и для некоторых
из них задача ECDLP решается довольно эффективно. Поскольку неудачный выбор
кривой может повлечь за собой снижение обеспечиваемого уровня безопасности,
организации по стандартизации выделяют целые блоки кривых, обладающих необходимой надёжностью. Использование стандартизированных кривых рекомендуется
и потому, что становится возможной лучшая совместимость между различными реализациями протоколов информационной безопасности.
Выбор базисной точки обусловлен тем соображением, чтобы ее порядок был
достаточно большим 2254 < q < 2256. Точка P  E называется точкой порядка q, если
qP=I.
74
На эллиптических кривых построен алгоритм проверки ЭЦП ГОСТ Р 34.10 –
2001, являющийся на сегодня стандартом РФ в области ЭЦП. Схема этого алгоритма приведена на рис. 4.4.
Отправитель
Генерация ключей
Выбрать случайное d
Вычислить
Q=d*P
Открытый параметр (P)
Открытый
ключ (Q)
Закрытый ключ d
Получатель
h=H( m)
u1 = s/h mod q
u2 = (-r)/h mod q
R = КоординатаХ(u1P+u2Q)
Сообщение m
h=H(m)
Письмо с ЭЦП
(m,r,s)
R=r
Формирование подписи
да
Выбрать случайное k
ЭЦП верна
r=КоординатаX(k*P)
s=( (rd+kh)) mod q
Рис.4.2. Схема алгоритма ЭЦП ГОСТ Р 34.10-2001
Основным достоинством криптосистем на основе ЭК является то, что они
обеспечивают надежность, адекватную классическим криптосистемам (RSA, ЭльГемаль) на существенно меньших по длине ключах, что положительно отражается
на времени кодирования и декодирования. Криптосистемы цифровой подписи на
основе эллиптических кривых с длиной ключа 160 бит имеют одинаковую стойкость
с криптосистемами DSA и Эль-Гамаля с длиной ключа 1024 бита. Ожидается, что в
ближайшем будущем данные системы займут доминирующее положение в криптографии с открытым ключом. Однако, это повлечет более серьезные исследования
свойств этих криптоалгоритмов, что может привести к появлению новых, более эффективных алгоритмов решения проблемы дискретного логарифма в группе точек
эллиптических кривых.
75
Еще одним подходом к формированию ЭЦП является использование симметричных алгоритмов шифрования. Однако, известные на сегодня алгоритмы этого
класса представляют скорее теоретический интерес, поскольку эффективность их
реализации по времени или по объему требуемых вычислений очень невысока.
Например, предложенная Диффи и Хелманом система ЭЦП на симметричном шифре позволяет подписывать только один бит информации, что на практике потребует
формирования отдельной подписи для каждого бита передаваемого сообщения,
причем подпись бита имеет размер ключа блочного шифра, и каждый новый бит
требует генерации своего ключа подписи. Поэтому системы подобного класса пока
не нашли широкого применения.
Вывод
Электронная цифровая подпись – это эффективное средство защиты информации от модификации, которое переносит свойства реальной подписи под документом в область электронного документооборота. В основу ЭЦП положены такие
криптографические методы, как асимметричное шифрование и хэш-функции.
76
5. Основы сетевой безопасности
Бурное развитие сети Интернет привело к появлению множества дополнительных информационных угроз. Если при работе в локальной сети существует возможность унификации программной конфигурации для каждой рабочей станции и
используемых в сети протоколов, централизации администрирования сетью, то глобальная сеть представляет собой неподконтрольную и очень часто агрессивную информационную среду, в которой существует ряд специфичных угроз, с которыми
нельзя бороться описанными выше способами. Для противодействия сетевым атакам используются специальные аппаратные, программные, алгоритмические методы
защиты, о которых пойдет речь в этой главе.
5.1. Угрозы безопасности в глобальных сетях
Одной из основных причин уязвимости информационных систем в сети Интернет являются слабости сетевого протокола IP стека протоколов TCP/IP, который
служит основой сетевых коммуникаций. При проектировании этого протокола на
заре развития Интернет проблемы безопасности стояли не так остро, и поэтому
внимания защищенности протокола практически не уделялось. В настоящее время
ведутся разработки новой версии протокола – IPv6, который, как ожидается, будет
содержать встроенные механизмы защиты и поможет снять многие проблемы. Рассмотрим основные сетевые угрозы.
Атаки типа «отказ в обслуживании» (denial of service, DoS ). Под этим названием объединены методы, призванные расстроить работу некоторого сетевого
устройства путем перегрузки какого-либо ограниченного ресурса, отказа устройства, изменения его настроек. Ограниченными ресурсами являются оперативная память, емкость жесткого диска, процессорное время. Типичная DoS атака представляет собой генерацию большого потока сетевых пакетов, которые не успевают обрабатываться сетевыми серверами, что приводит либо к отказам в их работе, либо к
невозможности обрабатывать запросы обычных пользователей. В качестве примера
DoS атаки можно привести атаку SYN flooding, когда злоумышленник отправляет на
77
атакуемый компьютер множество TCP-пакетов с установленным флагом SYN и несуществующим адресом отправителя. Атакуемый компьютер в ответ на каждый такой пакет создает внутренние структуры данных, необходимые для поддержки соединения и отправляет ответный пакет для подтверждения соединения. Так как в
качестве адреса отправителя был указан несуществующий адрес, то ответа на свой
пакет атакуемый компьютер не дождется, а память под внутренние структуры данных будут некоторое время зарезервированы. При большом количестве атакующих
пакетов память атакуемого компьютера может закончиться, что приведет к его отказу. Для предотвращения подобных атак используются интеллектуальные фильтры
пакетов, в момент возникновения атаки можно динамически уменьшать время ожидания ответа на пакет. Особенно разрушительными являются распределенные DoSатаки (distributed DoS, DDoS). При реализации атаки данного типа злоумышленник
сначала должен получить доступ ко множеству слабо защищенных компьютеров,
подсоединенных к Интернет и установить на них специальное программное обеспечение DDoS. Удаленный компьютер с установленным программным обеспечение
DDoS называется агентом. По команде с компьютера злоумышленника агенты
начинают передавать сетевые пакеты на атакуемый компьютер. Агенты могут
направить ICMP запросы на широковещательный адрес (Smurf атаки), поддельные
HTTP запросы, фрагментированные пакеты или случайный трафик. Атака может
быть направлена на любое сетевое устройство: маршрутизаторы (что эффективно
блокирует всю сеть), серверы (Web, mail, DNS), или специфичные компьютеры
(firewalls, IDS). В результате атаки (а несколько сотен машин могут создать трафик в
несколько гигабайт) атакуемый компьютер либо полностью перестанет обрабатывать запросы, либо будет делать это очень медленно.
Очень распространенными являются атаки с использованием протокола
ICMP. Протокол управляющих сообщений ICMP (Internet Control Message Protocol)
носит вспомогательный характер (популярная утилита ping использует этот протокол). Протокол ICMP не содержит методов аутентификации источника сообщения,
что активно используется злоумышленниками. Например, для блокировки обслуживания используются icmp-сообщения “time exceeded” (превышено время) или
“destination unreachable” (адресат недоступен). Первое сообщение означает, что
78
предел, указанный в поле TTL заголовка пакета, превышен. Такое может произойти
из-за зацикливания пакетов или когда адресат расположен очень далеко. Сообщение
“destination unreachable” имеет несколько значений. Но все они означают, что нет
способа благополучно доставить пакет адресату. Оба сообщения вынуждают адресата немедленно прервать соединение. Именно эту цель может преследовать злоумышленник, посылая такое сообщение одному из участников взаимодействия.
Протокол ICMP может использоваться и для перехвата пакетов. ICMP-сообщение
“redirect” обычно используется внешними портами сети в случаях, когда какая-то
ЭВМ полагает, что адресат находится вне локальной сети и направляет пакеты, адресованные ему, через внешний порт. Злоумышленник может послать ICMPсообщение “redirect” и вынудить другую ЭВМ посылать пакеты через узел, указанный злоумышленником.
Популярными являются также атаки на серверы некоторых сетевых служб
(Web, mail), когда из-за ошибок в программном обеспечении запросы определенной
конфигурации способны вызвать ошибки типа переполнение буфера, предоставить
злоумышленнику доступ с правами администратора.
Важным аспектом безопасности является обеспечение конфиденциальности
сетевого трафика, поскольку пакеты сообщения могут быть перехвачены на любом
промежуточном узле по пути следования к получателю, а встроенных средств шифрования классический протокол IP не предоставляет.
Глобальная сеть является благоприятной средой для распространения вирусов
и «троянских коней». Развитие Интернет привело к появлению такого феномена как
вирусы – черви. Остановимся подробнее на сетевом черве Klez. Этот экземпляр заражает компьютер через ошибку в почтовой программе Outlook: когда пользователь
пытается прочитать письмо, содержащее вирус, Klez инфицирует систему. После
попадания в ОС сетевой червь сканирует жесткие диски, ищет электронные адреса и
рассылает на них письма, прикрепляя свое тело в качестве вложения, создавая очень
большой исходящий трафик. Таким образом, скорость распространения сетевого
червя становилась очень высокой. Эту же схему используют и все остальные сетевые черви: каким-либо образом попадают на компьютер, ищут потовые адреса и
рассылают себя дальше. По данным Лаборатории Касперского за время своего су79
ществования Klez заразил более 110 тыс. компьютеров. Главным способом защиты
от подобных вредоносных программ является регулярное обновление баз антивирусного программного обеспечения, а также регулярное обновление используемого
программного обеспечения, которое атакуют вирусы, поскольку, например, программная «заплатка», предотвращающая ошибку ОС, эксплуатируемую вирусом
Klez, была выпущена задолго до его появления.
Список возможных угроз, исходящих из глобальной сети, на этом, конечно,
не исчерпан, тем более что все новые и новые типы атак регулярно проявляются в
сети, но и приведенный список описывает круг проблем, стоящих перед системой
безопасности локальной сети. Далее будут обсуждены способы противодействия
основным сетевым угрозам.
5.2. Средства криптографической защиты соединений в вычислительных сетях
Для обеспечения конфиденциальности информации, передаваемой по сети,
необходимо обеспечить ее шифрование на стороне отправителя и дешифрацию на
стороне получателя по одному из алгоритмов, рассмотренных в главе 2. Существует
несколько средств кодирования, которые шифруют информацию на разных уровнях
модели OSI. Самым простым средством является шифрование информации на прикладном уровне. В этом случае шифрованию подвергается только непосредственно
передаваемая информация, никакая служебная информация из заголовков сетевых
пакетов в этом случае не кодируется. Примером программы, которая осуществляет
подобного рода шифрование можно назвать PGP (Pretty Good Privacy). Одно из
главных достоинств этой программы состоит в том, что существуют версии PGP
практически для всех программных платформ: DOS, Windows, Unix, Macintosh. PGP
представляет собой криптосистему, которая позволяет шифровать данные (содержимое файлов, буфера обмена) по асимметричной схеме, а также формировать ЭЦП
для передаваемых сообщений. В PGP используются следующие алгоритмы: RSA,
SHA, DES, CAST, IDEA, DSS. Закодированная информация сохраняется в виде файла, который может быть передан по сети любым способом (электронная почта,
FTP). Для удобства работы PGP может интегрироваться с почтовыми программами,
80
такими как OutlookExpress, TheBat, Eudora. Еще одно достоинство PGP – то, что существуют свободно распространяемые версии этой программы (freeware), которые
можно найти по адресу http://www.pgpru.com
Применение программы PGP и подобных ей может оказаться неудобным
вследствие того, что пользователю необходимо самому принимать меры для шифрации сообщений. Для того чтобы сделать процедуру шифрования прозрачной для
пользователя, существуют различные сетевые протоколы, реализующие технологии
защищенных соединений. Рассмотрим один из подобных протоколов – протокол
SSL (Secure Socket Layer). Протокол SSL спроектирован компанией Netscape для
своего браузера Netscape Navigator для обеспечения конфиденциальности обмена
между двумя прикладными процессами клиента и сервера. Он предоставляет также
возможность аутентификации сервера и, опционно, клиента. SSL работает на представительском уровне модели OSI поверх протокола TCP.
Преимуществом SSL является то, что он независим от прикладного протокола.
Прикладные протоколы, такие как HTTP, FTP, TELNET и другие могут работать поверх протокола SSL совершенно прозрачно. Протокол SSL может согласовывать алгоритм шифрования и ключ сессии, а также аутентифицировать сервер до того как
приложение примет или передаст первый байт данных. Все протокольные прикладные данные передаются зашифрованными с гарантией конфиденциальности.
Протокол SSL предоставляет безопасный канал, который имеет три основные
свойства:

Канал является частным. Шифрование используется для всех сообщений после простого диалога, который служит для определения секретного ключа.

Канал аутентифицирован. Серверная сторона диалога всегда аутентифицируется, в то время как клиентская - аутентифицируется опционно.

Канал надежен. Транспортировка сообщений включает в себя проверку целостности
Протокол SSL использует следующие криптографические алгоритмы: DES,
DSA, MD5, RC2, RC4. Все современные браузеры поддерживают протокол SSL. Если пользователь вводит в адресной строке URL начинающийся с аббревиатуры
HTTPS, то начинает работать протокол HTTPS, который представляет собой стан81
дартный протокол HTTP, защищенный средствами SSL. При этом подключение
происходит к порту номер 443, который для HTTPS обычно используется по умолчанию. После этого браузер и сервер обмениваются пакетами, проводя взаимную
аутентификацию по имеющимся у них сертификатам, обмениваются сеансовыми
ключами шифрования и начинают обмен информацией в зашифрованном виде (рис.
5.1).
Клиент
Версия протокола, идентификатор сеанса, список методов шифрования
Сервер
Сертификат сервера, выбранный метод шифрования
Сертификат клиента (по запросу сервера)
Информация для генерации ключа
сеанса, зашифрованная на публичном
ключе сервера
Обмен информацией, зашифрованной
на ключе сеанса
Рис. 5.1. Обобщенная схема установки соединения по протоколу SSL
Альтернативой использованию протокола SSL может стать применение протокола TLS (Transport Layer Security), имеющего практически аналогичную функциональность
Для защиты информации на более низком – сетевом – уровне модели OSI используется технология VPN (Virtual Private Network). VPN предполагает использование криптографических методов защиты для обеспечения конфиденциальности и
целостности информации на сетевом уровне с использованием ряда современных
протоколов сетевого уровня (IPSec, PPTP, L2TP, L2P) при передаче информации по
сетям общего пользования. Шифрование происходит прозрачно для пользователей
82
Локальная сеть
Шлюз
Internet
Шлюз
Локальная сеть
VPN
Рис. 5.2. Соединение двух локальных сетей с помощью технологии VPN
программными или программно-аппаратными средствами. При этом данные всех
сетевых пакетов, начиная с транспортного уровня, шифруются и помещаются в закодированном виде в область данных пакета сетевого уровня. Так образуется скрытый от посторонних «туннель», по которому информация может передаваться в сети
общего доступа между узлами воображаемой, виртуальной сети. По сравнению с
протоколом SSL VPN предоставляет возможность скрыть от злоумышленника такую информацию, как номера используемых портов, а при использовании механизма туннелирования - и используемые в локальной сети IP-адреса, что затрудняет
возможности сканирования сети, поиска слабых мест в ней.
Существуют три основных метода подключения VPN:

соединением двух сетей, при этом VPN обеспечивается маршрутизаторами
или брандмауэрами на границе сети (рис.5.2);

подключением узла к сети, когда программное обеспечение VPN устанавли-
вается на клиентском компьютере, который подключается к сети;

подключением через провайдера, когда организацию VPN на коммутируе-
мых линиях связи берет на себя Интернет-провайдер.
Рассмотрим один из протоколов, посредством которого реализуется технология VPN. Стандарт IP Security - это комплект протоколов, касающихся вопросов
шифрования, аутентификации и обеспечения защиты при транспортировке IP83
пакетов, который должен стать частью разрабатываемого стандарта IPv6. Он включает в себя 3 основных протокола – аутентификации заголовка (Authentification
Header, AH), безопасного сокрытия содержимого (Encapsulation Security Payload,
ESP) и обмена ключами (Internet Key Exchange, IKE). Протокол AH обеспечивает
аутентификацию отправителя пакета и целостность заголовка пакета с использованием механизмов хэширования. Протокол ESP обеспечивает проверку целостности
датаграммы пакета и шифрование информации в ней. Он может работать в двух режимах: транспортном и туннельном. В транспортном режиме протокол ESP обеспечивает защиту пакетов (и данных, и заголовков) протоколов более высокого уровня,
заголовок пакета IP не защищается. В туннельном режиме ESP обеспечивает связь
между двумя шлюзами локальных сетей, защищая информацию в заголовке IPпакета. В этом режиме IP- пакет полностью кодируется и помещается в область данных пакета, передаваемого между двумя шлюзами. На шлюзе принимающей стороны этот пакет распаковывается и отправляется адресату. Протокол IKE отвечает за
процедуру установки соединения, когда стороны договариваются об используемых
криптоалгоритмах, обмениваются сеансовыми ключами шифрования. Протоколы
стандарта IPSec используют такие криптоалгоритмы, как DES, TripleDES, AES,
SHA, MD5.
Для использования VPN на практике можно использовать аппаратные шлюзы
(например, CSP VPN Gate), через которые осуществляется связь с внешней сетью и
которые сами реализуют все функции VPN. Для конечного пользователя более простым и дешевым решением может оказаться использование программной реализации, можно, например, воспользоваться встроенными средствами поддержки IPSec в
Windows 2000/XP.
5.3. Использование межсетевых экранов для защиты локальных сетей
Одним из самых популярных методов защиты локальной сети от атак извне
является использование межсетевого экрана (МСЭ). Межсетевой экран (firewall,
брандмауэр) представляет собой программную или программно-аппаратную систе84
му, которая устанавливается на границе охраняемой вычислительной сети и осуществляет фильтрацию сетевого трафика в обе стороны, разрешая или запрещая
прохождение определенных пакетов внутрь локальной сети (в периметр безопасности) или из нее в зависимости от выбранной политики безопасности. Однако, только
фильтрацией пакетов задачи современных МСЭ не ограничиваются, они выполняют
также множество дополнительных действий:

кэширование информации, когда часть полученной из внешней сети инфор-
мации временно сохраняется на локальных запоминающих устройствах, что позволяет экономить время и потребляемый трафик при повторном обращении к той же
информации;

трансляция адресов, позволяющая использовать для внешних коммуникаций
компьютеров локальной сети только один IP-адрес – адрес самого брандмауэра,
внутренние адреса локальной сети могут быть любыми;

переадресация, позволяющая отправлять пакеты, приходящие на некоторый
IP-адрес, на компьютер с другим адресом. Это позволяет, например, распределить
нагрузку на Web-сервер.
Существуют два основных типа МСЭ: пакетные фильтры и шлюзы приложений. При этом оба типа могут быть реализованы одновременно в одном брандмауэ-
Локальная сеть
Пакетный фильтр
Internet
Рис.5.3. Пакетный фильтр на границе локальной сети
ре. Пакетные фильтры (packet filter) представляют собой сетевые маршрутизаторы,
85
которые принимают решение о том, пропускать или блокировать пакет на основании информации в его заголовке (рис.5.3).
Пакетные фильтры работают с информацией в заголовках IP, ICMP, TCP и
UDP- пакетов. Правила фильтрации пакетов задаются на основе следующих данных:

название сетевого интерфейса и направление передачи информации;

IP-адреса отправителя и получателя;

протокол более высокого уровня (используется TCP или UDP);

порт отправителя и получателя для протоколов TCP и UDP;

опции IP (например, блокировка маршрутизации от источника);

тип сообщения ICMP.
При определении правил фильтрации необходимо придерживаться одной из
двух стратегий политики безопасности:
1.
Разрешить весь трафик, не запрещенный правилами фильтрации.
2.
Запретить весь трафик, не разрешенный правилами фильтрации.
С точки зрения безопасности более предпочтительной является вторая стратегия, согласно которой задаются правила, разрешающие прохождение пакетов определенного типа, прохождение остальных пакетов запрещается. Это связано с тем,
что, во-первых, количество запрещенных пакетов обычно гораздо больше, чем количество разрешенных, а во-вторых, со временем могут появиться новые службы,
для которых при использовании первой стратегии необходимо будет дописывать запрещающие правила (если доступ к ним, конечно, нежелателен), в то время как вторая стратегия запретит доступ к ним автоматически.
Пакетные фильтры классифицируются на фильтры без памяти и фильтры с
памятью (динамические). Первые из них фильтруют информацию только исходя из
информации в заголовке рассматриваемого пакета. Динамические же пакеты учитывают при фильтрации текущее состояние соединений, формируя таблицы входящих
и исходящих пакетов, и принимают решение на основании информации в нескольких взаимосвязанных пакетах.
Кроме того, пакетные фильтры могут реализовывать также множество дополнительных возможностей. Например, перенаправление пакетов, дублирование паке86
тов, подсчет трафика, ограничение полосы пропускания, запись пакетов в файл протокола и многое другое. Настройка пакетного фильтра требует от администратора
значительной квалификации и понимания принципов работы всех протоколов стека
TCP/IP от протоколов прикладного уровня до протоколов сетевого уровня.
Большинство современных операционных систем имеют встроенные пакетные
фильтры, например ipfw в Unix или Internet Connection Firewall в Windows. Функции
пакетного фильтра могут выполнять и аппаратные маршрутизаторы, например,
CISCO PIX 515E.
Главным недостатком пакетных фильтров является невозможность осуществления фильтрации пакетов по содержимому информационной части пакетов, то есть
по данным, относящимся к пакетам более высокого уровня. Этот недостаток может
быть устранен путем использования шлюзов приложений (application gateway, proxyserver). Proxy-серверы работают на прикладном уровне, обеспечивая работу той или
иной сетевой службы. При этом в отличие от пакетных фильтров, которые лишь перенаправляют пакет из одной сети в другую, proxy-серверы принимают запрос от
клиента и направляют его во внешнюю сеть от своего имени, разрывая таким образом нормальный сетевой трафик (см. рис.5.4). Поэтому брандмауэр в виде шлюза
приложений может быть реализован на компьютере всего с одним сетевым интерфейсом.
87
Proxy-сервер
Запрос (FTP, WWW)
от рабочей станции
Ответ от proxyсервера
Рабочая
станция
Запрос (FTP, WWW)
от proxy-сервера
Проверка
контента,
трансляция
адреса,
кэширование
Internet
Ответ на имя proxyсервера
Рис. 5.4. Выполнение запроса через proxy-сервер
Поясним схему на рис.5.4. Клиент формирует запрос на сервер какой-либо
службы в Internet (например, запрос на внешний Web-сервер). Запрос поступает на
proxy-сервер (конфигурация брандмауэра должна быть такова, чтобы все запросы к
какой-либо службе в Internet обязательно поступали на соответствующий proxyсервер). Приняв запрос от клиента, proxy-сервер проверяет его по заданным правилам фильтрации содержимого пакета и, если запрос не содержит запрещенных параметров, формирует пакет с запросом уже от своего имени (со своим обратным адресом) внешнему серверу. Ответ от внешнего сервера поступает, очевидно, на имя
proxy-сервера. Пройдя проверку, аналогичную запросу, ответ может быть принят
либо отвергнут. Если ответ принят - ответ направляется на адрес клиента, первоначально сформировавшего запрос.
Фильтрация содержимого может осуществляться по множеству параметров:

IP-адрес отправителя и получателя;

запрашиваемый URL;

наличие вложений (приложения Java, компоненты ActiveX) и т.п.

время запроса и другие, в зависимости от используемого proxy-сервера.
Важной функцией современных proxy-серверов является трансляция сетевых
адресов (Network Address Translation, NAT), которая подразумевает замену адреса
клиента в запросе во внешнюю сеть на собственный адрес (или несколько адресов)
88
proxy-сервера. Это позволяет скрыть от посторонних структуру внутренней сети,
список используемых в ней адресов. С другой стороны это позволяет иметь на всю
локальную сеть лишь один легальный IP-адрес, который должен быть присвоен
proxy-серверу. Рабочие станции внутри сети могут иметь любые IP-адреса, в том
числе и те, которые запрещено использовать во внешней сети. NAT может быть организована по статической и динамической схеме. При статической трансляции адрес клиента в локальной сети привязывается к конкретному адресу, который транслируется во внешнюю сеть. Динамическая трансляция предполагает наличие диапазона доступных внешних адресов и при каждом запросе клиента proxy-сервер выделяет один из свободных адресов для представления клиента во внешней сети, по
окончании транзакции этот адрес возвращается в список свободных и может быть
использован в дальнейшем для передачи запроса другого клиента. Развитием идеи
NAT стала трансляция адресов портов (Network Address Port Translation, NAPT), когда один и тот же IP-адрес распределяется при трансляции на несколько пользователей и каждому пользователю сопоставляется в отправляемом во внешнюю сеть пакете уникальная комбинация IP-адреса и номера порта отправителя. Иными словами, различным пользователям сети proxy-сервер сопоставляет один и тот же IPадрес, но присваивает различные номера портов в исходящих запросах. Это стало
возможным за счет того, что порт отправителя зачастую не несет в запросе никакой
полезной информации и может быть использован для уникальной идентификации
клиента локальной сети для proxy-сервера.
Современные proxy-серверы выполняют обычно еще одну важную функцию –
кэширование информации. Информация, пришедшая на proxy-сервер, сохраняется
на локальных запоминающих устройствах, и при очередном запросе клиента запрашиваемая им информация сначала ищется в локальной памяти, и только если ее
там нет - запрос передается во внешнюю сеть. Это позволяет уменьшить объем трафика, потребляемого из внешней сети, а также уменьшить время доступа к информации для конечного клиента.
Рассмотрим свойства наиболее распространенных proxy-серверов.
Microsoft Proxy Server (версия 2.0) представляет собой брандмауэр с расширяемым набором функций и сервер кэширования информации, обеспечивает поддерж89
ку протоколов HTTP и gopher, а также поддержку клиентских приложений (например, Telnet и RealAudio) для компьютеров интрасети, использующих протоколы
TCP/IP или IPX/SPX, поддерживает VPN, выполняет функции фильтра пакетов. Работает в среде Windows.
Squid - высокопроизводительный кэширующий proxy-сервер для webклиентов с поддержкой протоколов FTP, gopher и HTTP, имеющий реализации как
под Unix, так и под Windows- платформы. Squid хранит метаданные и особенно часто запрашиваемые объекты в ОЗУ, кэширует DNS-запросы, поддерживает неблокирующие DNS-запросы и реализует негативное кэширование неудачных запросов.
Поддерживает протокол ICP (Internet Casing Protocol), позволяющий организовывать
нескольким серверам иерархические структуры кэширования.
Помимо перечисленных, на практике могут быть использованы так называемые персональные межсетевые экраны. Они устанавливаются на компьютер пользователя, и все правила безопасности задаются для обмена этого компьютера с внешней сетью. Это позволяет настроить политику безопасности персонально под каждого пользователя непосредственно на его рабочей станции. Примером подобного
МСЭ является брандмауэр AtGuard, который включает в себя функции proxyсервера и локального пакетного фильтра. AtGuard способен блокировать баннеры,
файлы cookie, Java -скрипты и апплеты, а также элементы ActiveX. Еще одна особенность AtGuard – способность работать в режиме обучения, когда при каждой попытке подключиться к какому-либо порту запрашивается разрешение на установку
соединения, и сделанный пользователем выбор становится правилом для дальнейшей работы программы.
Используемые на практике МСЭ представляют собой интегрированную систему защиты, включающую и пакетный фильтр, и proxy-сервер. Они могут располагаться как на одном, так и на нескольких компьютерах, в связи с чем существует
возможность выбора архитектуры используемого МСЭ [8].
Архитектура с использованием в качестве МСЭ компьютера с двумя сетевыми
интерфейсами похожа на схему подключения пакетного фильтра (рис. 5.3), но на
МСЭ должна быть отключена возможность маршрутизации пакетов. Это позволяет
полностью блокировать трафик во внешнюю сеть на этом компьютере, а все необ90
ходимые сервисы должны обеспечиваться proxy-серверами, работающими на двухканальном компьютере. Для обеспечения дополнительной защиты можно поместить
маршрутизатор с фильтрацией пакетов между внешней сетью и двухканальным
компьютером.
Архитектура с экранированным узлом предполагает использование одновременно и пакетного фильтра, и proxy-сервера (рис.5.5).
Локальная сеть
Proxy-сервер Пакетный фильтр
Internet
Рис.5.5. МСЭ с использованием экранированного узла
На границе с внешней сетью устанавливается пакетный фильтр, который должен блокировать потенциально опасные пакеты, чтобы они не достигли прикладного шлюза (proxy-сервера) и локальной сети. Он отвергает или пропускает трафик в
соответствии со следующими правилами:

трафик из внешней сети к прикладному шлюзу пропускается;

прочий трафик из внешней сети блокируется;

пакетный фильтр блокирует любой трафик из локальной сети во внешнюю,
если он не идет от прикладного шлюза.
Прикладной шлюз должен обеспечивать функции proxy-сервера для всех потенциально опасных служб и для работы ему достаточно одного сетевого интерфейса. Подобная схема подключения брандмауэра отличается большей гибкостью по
сравнению с двухканальным МСЭ, поскольку пакетный фильтр может позволить
пропустить запросы к надежным сервисам в обход прикладного шлюза. Этими
надежными сервисами могут быть те сервисы, для которых нет proxy-сервера, и ко91
торым можно доверять в том смысле, что риск использования этих сервисов считается приемлемым.
Развитием концепции изолированного узла стала архитектура с изолированной подсетью. Здесь используется два пакетных фильтра (рис.5.6) для организации
изолированной подсети, которую еще называют демилитаризованной зоной (DMZ).
Локальная сеть
Пакетный
фильтр
Proxy-сервер
Пакетный
фильтр
Internet
DMZ
Рис.5.6. МСЭ с использованием экранированной подсети
Внутри изолированной подсети должен находиться прикладной шлюз, а также
могут находиться различные информационные серверы (mail, WWW, FTP), модемные пулы и т.п. Пакетный фильтр, установленный на границе с внешней сетью,
должен фильтровать пакеты по следующим правилам:

пропускать прикладной трафик от прикладного шлюза во внешнюю сеть;

пропускать прикладной трафик из внешней сети к прикладному шлюзу;

все остальные виды трафика блокировать.
Внутренний пакетный фильтр управляет трафиком «локальная сеть – демилитаризованная зона» согласно следующим правилам:

трафик от прикладного шлюза к внутренним системам пропускается;

трафик к прикладному шлюзу от внутренних систем пропускается;

трафик к информационным серверам внутри DMZ пропускается;

все остальные виды трафика блокировать.
Такая схема дает возможность еще более гибко формировать политику без-
опасности, задавая различные правила фильтрации для двух пакетных фильтров
92
(например, можно разрешить прохождения FTP-пакетов в DMZ из локальной сети
для обновления информации на WWW-сервере и запретить доступ по FTPпротоколу к DMZ из внешней сети). Компьютеры, расположенные в демилитаризованной зоне, подвержены большему количеству атак, чем компьютеры локальной
сети. Поэтому все компьютеры, находящиеся в DMZ, должны быть максимально
укреплены (bastion host, укрепленный компьютер). На них должны быть удалены все
неиспользуемые службы, максимально активизированы средства безопасности операционных систем (ужесточаются права доступа к объектам, минимизируется количество зарегистрированных субъектов, ведется строгий аудит).
Очевидно, что можно создать несколько экранированных подсетей, отделенных
друг от друга собственным пакетным фильтром с определением правил доступа для
каждой из подсетей. Выбор конкретной архитектуры МСЭ зависит от стоящих перед
администратором задач, условий функционирования, стоимости того или иного решения.
Рассмотрим пример реализации межсетевого экрана. Предположим, что существует некоторая организация, имеющая собственную локальную сеть, подключенную к глобальной сети Интернет. Будем считать, что провайдер выделил нашей организации один статический IP адрес 195.209.133.1. Внутри локальной сети администратор может использовать любой из диапазонов адресов, предназначенных для
применения в частных сетях: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Для примера
возьмем диапазон 10.0.0.0/8. Доступ в глобальную сеть Интернет будет осуществляться через компьютер, имеющий два сетевых интерфейса, один из которых подключен к глобальной сети Интернет и имеет IP адрес 195.209.133.1, а второй подключен к локальной сети организации и имеет IP адрес 10.0.0.1. Далее будем обозначать этот компьютер символом S. Также допустим, что у нашей организации существуют официальный WEB-сервер www.myorg.ru и почтовый сервер, обслуживающий домен myorg.ru. Данные сервера, а также основной DNS-сервер для зоны
myorg.ru будут установлены на компьютере S. Вспомогательный DNS-сервер для
зоны myorg.ru поддерживается провайдером. Кроме того, предположим, что на компьютере S также установлены локальный FTP-сервер и proxy-сервер, обеспечивающий доступ в сеть Интернет для остальных компьютеров, принадлежащих нашей
93
организации. Также предположим, что в нашей организации существуют два компьютера рекламного отдела, далее R1 и R2, два компьютера отдела продаж P1 и P2,
компьютер директора D, компьютер заместителя директора Z, два компьютера бухгалтерии B1 и B2, компьютер отдела кадров O и демонстрационный компьютер W.
Для всех компьютеров организации необходимо обеспечить доступ к почтовому
серверу, к локальному FTP-серверу, а также к WWW-серверу организации. Исключением является компьютер W, для которого необходимо обеспечить доступ только
к WWW-серверу. Кроме того, для компьютеров R1, R2, P1, P2, Z и D необходимо
обеспечить доступ к глобальной сети Интернет через proxy-сервер.
94
Для выполнения всех предъявленных выше требований, а также для обеспечения безопасности и исключения несанкционированного доступа целесообразно на
компьютере S установить пакетный фильтр. Рассмотрим примерную таблицу правил
для нашего случая. Назначим IP адреса для компьютеров нашей организации: R1 –
95
10.0.0.16, R2 – 10.0.0.17, P1 – 10.0.0.20, P2 – 10.0.0.21, D – 10.0.0.24, Z – 10.0.0.25, B1
– 10.0.0.32, B2 – 10.0.0.33, O – 10.0.0.36, W – 10.0.0.38. Такое неравномерное распределение адресов было выбрано для обеспечения возможности использования диапазонов IP адресов для компьютеров разных отделов. Например, компьютеры реклам-
96
ного отдела принадлежат диапазону 10.0.0.16/30. А компьютеры рекламного отдела,
отдела продаж, заместителя директора и директора - диапазону 10.0.0.16/28. Подобная группировка значительно упрощает администрирование и сокращает количество
правил для пакетного фильтра. Кроме того, в данном примере оставлены диапазоны
97
IP адресов для дальнейшего расширения организации. Например, если в дальнейшем появятся компьютеры R3 и P3, то им можно будет назначить IP адреса 10.0.0.18
и 10.0.0.22 соответственно. При этом изменения в правилах пакетного фильтра и
других конфигурационных файлах будут минимальными. Вся сеть нашей ор-
98
10.0.0.0/26
10.0.0.16
10.0.0.20
10.0.0.32
R1
P1
B1
10.0.0.17
10.0.0.21
10.0.0.33
10.0.0.36
R2
P2
B2
O
10.0.0.24
10.0.0.25
10.0.0.38
D
Z
W
RL0
10.0.0.1
S
PPP0
модем
Internet
Рис. 5.7. Схема локальной сети организации
ганизации в бесклассовой модели адресации будет представлена как 10.0.0.0/26.
Широковещательным адресом для нашей локальной сети будет адрес 10.0.0.63. В
общем случае при использовании диапазонов частных адресов администратор может использовать любую маску подсети, доступную для выбранного диапазона.
99
Например, в нашем случае можно было бы использовать сеть 10.0.0.0/24 с широковещательным адресом 10.0.0.255. Схема описанной выше локальной сети приведена
на рис.5.7. Данная схема реализует архитектуру двухканального компьютера.
В соответствии со всеми приведенными выше требованиями и учитывая
назначенные IP адреса, получаем набор для пакетного фильтра компьютера S, приведенный в таблице 5.1. Будем считать, что proxy-сервер работает на TCP порту
3128. Данный proxy-сервер обеспечивает доступ к WWW-серверам глобальной сети
Интернет, работающим на TCP порту 80 по протоколу http, и к WWW-серверам, работающим на TCP порту 443 по протоколу HTTPS. Кроме того, будем считать, что
вспомогательный DNS-сервер поддерживается провайдером и имеет адрес
195.209.133.2. Компьютер S подключен к локальной сети через сетевой адаптер, а
связь с провайдером осуществляется с помощью модема. Далее будем обозначать
эти сетевые интерфейсы в нотации операционных систем семейства UNIX, т.е. RL0
и PPP0 соответственно. Приведенная ниже таблица содержит следующие поля: № номер правила, «протокол» - протокол стека протоколов TCP/IP (ALL для любого
протокола, работающего поверх IP), «Отправитель.Адрес» - IP адрес либо диапазон
адресов отправителя IP дейтаграммы, «Отправитель.Порт» - TCP или UDP порт отправителя TCP сегмента или UDP дейтаграммы, «Получатель.Адрес» - IP адрес либо
диапазон адресов получателя IP дейтаграммы, «Получатель.Порт» - TCP или UDP
порт получателя TCP сегмента или UDP дейтаграммы, «Действие» - действие, которое необходимо выполнить, если пакет удовлетворяет правилу (возможные варианты: allow – пропустить пакет, deny – отклонить пакет), «Интерфейс» - сетевой интерфейс, через который отправляется или принимается пакет, «Направление» направление пакета (IN пакет приходит через данный интерфейс, OUT – пакет отправляется через данный интерфейс).
Таблица 5.1
Правила пакетного фильтра компьютера S.
№
Прото
Отправитель
Получатель
Действие
Интер
Напр
фейс
авл.
кол
Адрес
Порт
Адрес
Порт
100
ALL
ANY
-
ANY
-
ALLOW
LO0
-
150
ICMP
ANY
-
ANY
-
ALLOW
ANY
-
100
200
UDP
195.209.133.1
ANY
ANY
53
ALLOW
PPP0
OUT
201
UDP
ANY
53
195.209.133.1
ANY
ALLOW
PPP0
IN
210
UDP
ANY
ANY
195.209.133.1
53
ALLOW
PPP0
IN
211
UDP
195.209.133.1
53
ANY
ANY
ALLOW
PPP0
OUT
220
TCP
195.209.133.2
ANY
195.209.133.1
53
ALLOW
PPP0
IN
221
TCP
195.209.133.1
53
195.209.133.2
ANY
ALLOW
PPP0
OUT
300
TCP
195.209.133.1
ANY
ANY
25
ALLOW
PPP0
OUT
301
TCP
ANY
25
195.209.133.1
ANY
ALLOW
PPP0
IN
310
TCP
ANY
ANY
195.209.133.1
25
ALLOW
PPP0
IN
311
TCP
195.209.133.1
25
ANY
ANY
ALLOW
PPP0
OUT
400
TCP
ANY
ANY
195.209.133.1
80
ALLOW
PPP0
IN
401
TCP
195.209.133.1
80
ANY
ANY
ALLOW
PPP0
OUT
500
TCP
195.209.133.1
ANY
ANY
80,443
ALLOW
PPP0
OUT
501
TCP
ANY
80,443
195.209.133.1
ANY
ALLOW
PPP0
IN
1000
UDP
10.0.0.0/26
ANY
10.0.0.1
53
ALLOW
RL0
IN
1001
UDP
10.0.0.1
53
10.0.0.0/26
ANY
ALLOW
RL0
OUT
1100
TCP
10.0.0.0/26
ANY
10.0.0.1
80
ALLOW
RL0
IN
1101
TCP
10.0.0.1
80
10.0.0.0/26
ANY
ALLOW
RL0
OUT
1200
TCP
10.0.0.38
ANY
10.0.0.1
25,110,21
DENY
RL0
IN
1300
TCP
10.0.0.0/26
ANY
10.0.0.1
25,110
ALLOW
RL0
IN
1301
TCP
10.0.0.1
25,110
10.0.0.0/26
ANY
ALLOW
RL0
OUT
1310
TCP
10.0.0.0/26
ANY
10.0.0.1
20,21
ALLOW
RL0
IN
1311
TCP
10.0.0.1
20,21
10.0.0.0/26
ANY
ALLOW
RL0
OUT
1400
TCP
10.0.0.16/28
ANY
10.0.0.1
3128
ALLOW
RL0
IN
1401
TCP
10.0.0.1
3128
10.0.0.16/28
ANY
ALLOW
RL0
OUT
ANY
-
ANY
-
DENY
ANY
-
65535 ALL
Рассмотрим приведенные выше правила более подробно. Номера правил выбраны произвольно, однако следует отметить, что правила с меньшими номерами
обрабатываются раньше. Порядок обработки правил очень важен. По умолчанию в
большинстве пакетных фильтров, если пакет удовлетворяет условию правила, то
выполняется действие, указанное в правиле, и следующие правила не проверяются.
В данном примере правила с нечетными номерами являются «обратными» и обеспечивают прохождение пакетов, которые являются ответами на правила с предыду101
щим номером. В некоторых пакетных фильтрах данные правила добавляются автоматически, либо существуют специальные опции для автоматической генерации подобных правил. Примером может служить использование динамических правил и
опций check-state и keep-state в пакетном фильтре ipfw операционных систем семейства Unix.
Правило 100 обеспечивает прохождение всех IP-дейтаграмм через локальный
интерфейс. Данный интерфейс обычно имеет адрес 127.0.0.1 и существует на каждом хосте и шлюзе IP-сети. Он необходим для внутренней работы стека TCP/IP и
называется также локальной «заглушкой» или локальной «петлей». Под это правило
также попадают все IP-пакеты, имеющие в качестве адресов отправителя и получателя любой из локальных адресов данного компьютера. Для нашего случая это адреса 127.0.0.1, 10.0.0.1 и 195.209.133.1. Другими словами, данное правило разрешает
весь «внутренний» трафик компьютера S. Правило 150 обеспечивает работу межсетевого протокола управляющих сообщений ICMP. Данный протокол необходим для
корректной работы таких утилит, как ping и traceroute, а также для работы с сообщениями о недоступности хоста, сети и порта, контроля за перегрузкой сети и т.д.
Иногда целесообразно запретить некоторые из этих сообщений, например, сообщение с типом 5 – сообщение о переадресации. Правила 200 и 201 разрешают нашему
DNS-серверу запросы к другим DNS-серверам и необходимы для корректной работы нашего кэширующего DNS-сервера. Правила 210 и 211 разрешают запросы других DNS-серверов к нашему основному DNS-серверу. Правила 220 и 221 разрешают
зонную пересылку между вспомогательным DNS-сервером провайдера, обслуживающим зону myorg.ru, и нашим основным DNS-сервером. Правила 300 и 301 разрешают нашему SMTP-серверу отправлять почту на другие сервера. Правила 310 и
311 разрешают другим SMTP-серверам присылать почту нашему серверу. Правила
400 и 401 обеспечивают доступ к WWW-серверу организации из сети Интернет.
Правила 500 и 501 обеспечивают доступ proxy-сервера к WEB- и HTTPS-серверам
глобальной сети Интернет. Далее идут правила для компьютеров локальной сети.
Правила 1000 и 1001 обеспечивают доступ всех компьютеров локальной сети к
DNS-серверу. Правила 1100 и 1101 обеспечивают доступ всех компьютеров ло102
кальной сети к WWW-серверу организации. Правило 1200 следует отметить особо.
Это правило запрещает компьютеру W доступ к почтовым серверам SMTP и POP3, а
также к FTP-серверу. Следующие правила 1300, 1310 будут разрешать доступ к этим
серверам для всех компьютеров локальной сети, к которым конечно относится и
компьютер W. Однако, поскольку правило 1200 будет обработано первым, то в случае совпадения остальные правила обработаны не будут и доступ к почтовым и FTP
серверам организации для компьютера W будет запрещен. Отметим также, что для
этого правила нет «обратного». Поскольку будет запрещен первый же TCP-сегмент
с флагом SYN отправленный компьютером W, который инициирует установку TCPсоединения. Соответственно TCP модуль компьютера S даже не будет знать о желании компьютера W установить соединение на порты 21,25,110 и поэтому не будет
генерировать никаких ответных пакетов. Правила 1300 и 1301 разрешают доступ к
SMTP- и POP3-серверу для всех компьютеров локальной сети. Правила 1310 и 1311
обеспечивают работу всех компьютеров локальной сети с локальным FTP-сервером.
В данном случае разрешается только активный режим работы FTP-сервера. Порт 20
не был запрещен в правиле 1200, поскольку он используется только при установке
соединения данных. А данное соединение не может быть установлено без предварительной установки соединения команд на порту 21. Правила 1400 и 1401 разрешают
доступ к proxy-серверу для компьютеров R1,R2,P1,P2,Z и D. В общем случае эти
правила разрешают доступ к proxy-серверу для компьютеров из диапазона 10.0.0.16
– 10.0.0.31. И, наконец, правило 65535 запрещает прохождение всех остальных IPпакетов.
Таким образом, используя данную таблицу правил для пакетного фильтра, мы
обеспечили выполнение всех поставленных требований. Кроме того, исключили
возможность каких-либо атак или несанкционированного доступа к компьютеру S
как из сети Интернет, так и из локальной сети. Рассмотренная выше таблица правил
содержит только базовый набор правил. Реальные таблицы могут содержать гораздо
больше правил и быть намного сложнее. В данном примере был использован принцип «запрещено все, что не разрешено».
103
Межсетевые экраны являются мощными средствами обеспечения безопасности работы локальной сети при ее подключении к внешней сети, обеспечивающими
защиту от нежелательных вторжений извне по всем протоколам модели OSI. Использование МСЭ является неотъемлемой частью при обеспечении безопасности и
корректной работы локальной сети, подключенной к сети Интернет. Правильная
настройка МСЭ позволяет избежать множества проблем и существенно упростить
решение остальных задач при администрировании сети.
5.4. Вывод
Современные информационные системы функционируют в условиях постоянных угроз, исходящих из сети Интернет. Для защиты от этих угроз существует множество средств на различных уровнях. Для обеспечения конфиденциальности и целостности передаваемой по глобальной сети информации можно использовать защищенные сетевые протоколы, которые используют криптографические методы.
Для предотвращения вторжения извне, защиты от атак типа DoS необходимо использовать межсетевые экраны, основная задача которых – фильтрация входящего и
исходящего сетевого трафика в зависимости от принятой политики безопасности.
104
6. Средства безопасности операционных систем
Современные операционные системы обладают мощными встроенными средствами обеспечения безопасности, осуществляющими аутентификацию, авторизацию, аудит действий пользователей в системе, защиту от сбоев, криптографическую
защиту объектов операционной системы, предотвращение сетевых атак. Рассмотрим
подробнее встроенные средства безопасности самых популярных операционных систем.
6.1. ОС семейства Windows
Разговор о подсистемах безопасности ОС семейства Windows имеет смысл вести начиная с версий NT/2000/XP, поскольку именно это поколение ОС фирмы
Microsoft включает в себя надежную подсистему безопасности как одну из концептуальных основ системы. Более ранние версии (Windows 95,98) были ориентированы на домашние компьютеры и не реализовывали большинства функций безопасности платформы Win32.
ОС платформы Win32 для обеспечения безопасности позволяют: идентифицировать пользователей сети и управлять их доступом к ресурсам, кодировать информацию с использованием встроенных средств шифрования CryptoAPI, поддерживать безопасную связь по общедоступным сетям с использованием протоколов
IPSec, аутентифицировать пользователей по протоколу аутентификации Kerberos
версии 5 и посредством смарт-карт, разграничивать доступ к файлам и каталогам с
помощью файловых систем NTFS и EFS.
Система безопасности платформы Win32 основана на модели безопасности для
каждого пользователя или группы пользователей. Каждый пользователь, зарегистрированный в системе, имеет собственную учетную запись, которая содержит
персональную информацию о пользователе. Эти данные система использует для
проверки подлинности пользователя и для авторизации его при доступе к ресурсам
домена. После прохождения процедуры аутентификации пользователю присваивается маркер доступа, идентифицирующий пользователя, его группу, а также опре105
деляющий доступные пользователю привилегии в системе для доступа к ресурсам .
При этом каждому объекту системы, включая файлы, принтеры, сетевые службы,
контейнеры Active Directory и другие, присваивается дескриптор безопасности. Дескриптор безопасности объекта определяет права доступа к объекту и содержит список контроля доступа (ACL – Access Control List), в котором явно определяется, каким пользователям разрешено выполнять те или иные действия с этим объектом. Дескриптор безопасности объекта также определяет, для каких событий должен вестись
аудит. Авторизация Win32 основана на сопоставлении маркера доступа субъекта с
дескриптором безопасности объекта. Управляя свойствами объекта, администраторы
могут устанавливать разрешения, назначать право владения и отслеживать доступ
пользователей. Каждый дескриптор безопасности может содержать списки двух типов. Системный список управления доступом (SACL – System Access Control List)
позволяет отслеживать права и ограничения, установленные для объекта на системном уровне. В этот список могут вносить изменения только те пользователи, которые обладают правами доступа на уровне системы.
Пользовательский список управления доступом (DACL – Discretionary Access
Control List) позволяет отслеживать права и ограничения, установленные владельцем данного объекта. DACL может быть изменен пользователем, который указан
как текущий владелец объекта.
Оба списка имеют одинаковую структуру. Они могут не содержать ни одной
записи либо содержать одну или несколько записей. Каждая запись (ACE – Access
Control Entry) состоит из трех частей: в первой указываются пользователи или группы, к которым относится данная запись, во второй – права доступа, а третья информирует о том, предоставляются эти права или отбираются.
Дескрипторы безопасности могут быть представлены либо в абсолютном, либо
в относительном формате. Абсолютный формат предусматривает запись дескриптора безопасности в память в виде структуры указателей и, поэтому, он более удобен
для обновления содержимого дескриптора.
С другой стороны, поскольку указатели содержат ссылки на области памяти,
доступ к которым обычно обеспечивается только компьютером-владельцем, абсолютный формат не слишком хорош для передачи дескрипторов по сети (или записи
106
на диск), так как при этом записываются не сами структуры, а только набор указателей. Поэтому существует второй формат дескрипторов безопасности, в соответствии
с которым структура с текущим содержимым всех полей записывается в едином непрерывном блоке памяти. Такой формат более удобен для передачи дескриптора. Он
называется относительным форматом (см. рис. 6.1).
Дескрипторы безопасности
Абсолютный
Идентификатор безопасности владельца (SID)
Идентификатор безопасности основной группы (SID)
Указатель
Указатель
Указатель
Пользовательский список управления доступом (DACL)
Указатель
Запись в списке управления доступом к объекту (ACE)
Указатель
Запись в списке управления доступом к объекту (ACE)
Запись в списке управления доступом к устройству (DACE)
Указатель
.. и т.д. …(переменное число ACE и DACE)
Системный список управления доступом (SACL)
Указатель
Указатель
Указатель
Запись в списке управления доступом к объекту (ACE)
Запись в списке управления доступом к устройству (DACE)
.. и т.д. …(переменное число ACE и DACE)
Относительный
Идентификатор безопасности владельца (SID)
Идентификатор безопасности основной группы (SID)
Пользовательский список управления доступом (DACL)
Запись в списке управления доступом к объекту (ACE)
Запись в списке управления доступом к объекту (ACE)
Запись в списке управления доступом к устройству (DACE)
.. и т.д. …(переменное число ACE и DACE)
Системный список управления доступом (SACL)
Запись в списке управления доступом к объекту (ACE)
Запись в списке управления доступом к устройству (DACE)
.. и т.д. …(переменное число ACE и DACE)
Рисунок 6.1. Форматы дескрипторов безопасности
Задавать список прав доступа можно непосредственно в оконном диалоге Windows в окне свойств объекта (см. рис.6.2 с определением прав на доступ к файлу), а
можно программно, используя специальные API-функции. В листинге 1 представлен
107
фрагмент программы, позволяющей программно изменить права доступа к файлу
для некоторого пользователя.
Рис.6.2. Определения прав доступа к файлу в Windows
Листинг 1. Программа управления правами доступа к объектам в Windows
SID_NAME_USE
SIDType;
PSECURITY_DESCRIPTOR
pNewFileSD;
PACL
pNewFileDACL;
char
char
*filename = “c:\\testfle.dat”; //имя файла
*username =”guest” ;
//имя пользователя
char
szDomainName[250]=”VPI”;
char
UserSID[2048];
DWORD
dwSIDLength
DWORD
dwDomainLength
DWORD
dwNewACLSize;
//название домена
//идентификатор безопасности пользователя
= sizeof( UserSID );
= sizeof( szDomainName );
// получить SID (идентификатор безопасности) пользователя (группы)
108
LookupAccountName((LPSTR) NULL, username, UserSID, &dwSIDLength, szDomainName, &dwDomainLength, &SIDType );
// Инициализировать новый SD (дескриптор безопасности)
InitializeSecurityDescriptor( pNewFileSD, SECURITY_DESCRIPTOR_REVISION );
//получить размер ACL
dwNewACLSize =
sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE) +
GetLengthSid(UserSID) - sizeof(DWORD) ;
//создать и проинициализировать новый ACL
InitializeAcl( pNewFileDACL, dwNewACLSize, ACL_REVISION2 );
//поместить новый ACE с разрешением на чтение файла для пользователя в конец DACL
AddAccessAllowedAce( pNewFileDACL, ACL_REVISION2, GENERIC_READ, &UserSID
);
// записать DACL в новый SD файла
SetSecurityDescriptorDacl( pNewFileSD, TRUE, pNewFileDACL, FALSE );
// установить новый SD для файла с именем в filename
SetFileSecurity( filename, DACL_SECURITY_INFORMATION, pNewFileSD );
Разграничение прав доступа пользователей к файлам и папкам в Win32 возможно только при использовании файловой системы NTFS. Эта файловая система обеспечивает поддержку дескрипторов безопасности для элементов файловой системы и
позволяет определять следующие права на доступ: чтение, запись, выполнение, удаление, изменение прав доступа, получение права владельца, запись/чтение атрибутов (см. рис. 6.2). Необходимо, однако, отметить, что файловая система NTFS не
выполняет шифрования информации на носителях, в связи с чем существует возможность получить доступ к информации на физическом уровне, например, загрузившись с другой операционной системы, получить доступ к информации в файлах.
Такую возможность предоставляет утилита ntfsdos.exe, которую можно запустить,
предварительно загрузив на компьютер операционную систему MS DOS c гибкого
диска. Для того чтобы предотвратить доступ к логическим NTFS – дискам необходимо запретить загрузку компьютера с гибкого диска, запретить подключение других носителей к компьютеру и отключение носителя от компьютера. Альтернативой
этому комплексу мер может стать использование файловой системы EFS (Encrypting
109
File System). Шифрующая файловая система EFS - это тесно интегрированная с
NTFS служба, располагающаяся в ядре Windows. Ее назначение: защита данных,
хранящихся на диске, от несанкционированного доступа путем их шифрования. EFS
использует архитектуру Windows CryptoAPI. В ее основе лежит технология шифрования с открытым ключом. Для шифрования каждого файла случайным образом генерируется ключ шифрования файла. В текущей реализации EFS использует алгоритм - DESX, являющийся специальной модификацией стандарта DES.
Локальные учетные записи пользователей в Win32 хранятся в базе данных
SAM
(Security
Account
Manager).
Она
располагается
в
каталоге
\%Systemroot%\System32\ConfIg в отдельном файле, который называется SAM. В
учетных записях базы данных SAM находится информация о пользовательских
именах и паролях, которая необходима для идентификации и аутентификации пользователей при их интерактивном входе в систему. Учетные записи создаются с использованием инструмента Local Users and Groups (Локальные пользователи и группы) из программы Computer Management (Управление компьютером). Информация в
SAM хранится в зашифрованном виде. Пароль пользователя сначала хэшируется алгоритмом MD4, затем результат хэширования кодируется алгоритмом DES, причем
в качестве ключа шифрования используется так называемый относительный идентификатор пользователя (Relative Identifier, RID), который представляет собой автоматически увеличивающийся порядковый номер учетной записи данного пользователя в базе данных SAM. При входе пользователя в систему его пароль подвергается
аналогичным преобразованиям, и если их результат совпадет с содержимым SAM,
пользователь проходит аутентификацию. Для предотвращения доступа злоумышленника к базе данных SAM доступ к ней заблокирован для всех без исключения ее
пользователей. Однако, существует возможность сохранить копию этого файла с
помощью утилиты резервного копирования NTBACKUP. Доступ возможен также
при загрузке альтернативной ОС (уже упоминавшаяся утилита ntfsdos.exe из под MS
DOS может предоставить доступ к SAM). Необходимо также защищать от несанкционированного доступа автоматически создаваемую сжатую архивную копию
SAM (файл SAM) в каталоге \%Systemroot%\Repair.
110
При наличии файла SAM злоумышленник может получить доступ к хранящимся в нем учетным записям, используя такие программы, как LOphtCrack или
Advanced NT Security Explorer. В связи с этим необходимо защищать SAM от несанкционированного доступа, запретив загрузку альтернативных ОС с других дисков в BIOS, установив соответствующие права доступа к файлам SAM в системе или
используя специальную утилиту SYSKEY, дополнительно шифрующую содержимое файла SAM.
ОС платформы Win32 активно используют возможности защищенного режима процессора и позволяют эффективно защищать код и данные процессов от взаимного влияния друг на друга. Каждый процесс работает в собственном виртуальном адресном пространстве, доступ к которому других процессов запрещен, если
только сам процесс-владелец не разрешит его.
Платформа Win32 предоставляет программный интерфейс CryptoAPI для кодирования информации по различным алгоритмам, как симметричным, так и асимметричным. CryptoAPI – это интерфейс прикладного программирования (API –
Application Programming Interface) в операционной системе Windows, предоставляющий службы шифрования для операционной системы и приложений, работающих
под ее управлением. Он содержит ряд функций, позволяющих приложениям шифровать данные и ставить цифровую подпись различными способами, обеспечивая
защиту личных ключей. Однако, сами функции CryptoApi не выполняют никаких
криптографических действий, а служат лишь посредниками между прикладной программой и CSP (Cryptographic Service Provider – поставщик службы шифрования).
Программная часть криптопровайдера представляет собой dll-файл с функциями
поддержки шифрования. Криптопровайдеры отличаются друг от друга составом
функций, требованиями к оборудованию, алгоритмами, осуществляющими базовые
действия (создание ключей, хеширование и пр.).
По составу функций и обеспечивающих их алгоритмов криптопровайдеры подразделяются на типы. Например, любой CSP типа PROV_RSA_FULL поддерживает
как шифрование, так и цифровые подписи, использует для обмена ключами и созда-
111
ния подписей алгоритм RSA, для шифрования — алгоритмы RC2 и RC4, а для хеширования - MD5 и SHA.
В зависимости от версии операционной системы состав установленных криптопровайдеров может существенно изменяться. Однако на любом компьютере с Windows можно найти Microsoft Base Cryptographic Provider, относящийся к типу
PROV_RSA_FULL. Именно с этим провайдером по умолчанию будут взаимодействовать все программы. Пользователь имеет возможность приобрести CSP другого
производителя, тогда функции CryptoAPI будут работать с программами этого CSP.
Пример использования функций CryptoAPI для кодирования файла симметричным
алгоритмом RC4 приведен в листинге 2.
Листинг 2. Использование функций CryproAPI для кодирования файла
HCRYPTPROV hProv;
//Подключаемся к криптопровайдеру типа PROV_RSA_FULL
if(!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,0))
{
puts("Ошибка инициализации CSP\n";
return;
}
//Открываем входной и выходной файл
HANDLE hInFile;
hInFile=CreateFile("d:\\NS.doc", GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, NULL);
HANDLE hOutFile;
hOutFile=CreateFile("d:\\crypt", GENERIC_WRITE, FILE_SHARE_READ,
NULL,CREATE_ALWAYS, 0, NULL);
HCRYPTKEY hKey;
//генерируем сессионный ключ для RC4
if(!CryptGenKey(hProv,CALG_RC4,CRYPT_EXPORTABLE,&hKey))
{ puts("ошибка генерации ключа RC4\n");
return;
}
BYTE buf[BUFFER_SIZE];
DWORD dwSzLow,dwSzHigh;
dwSzLow=GetFileSize(hInFile,&dwSzHigh);// получить размер входного файла
112
unsigned __int64 fSize=(dwSzHigh<<32)+dwSzLow;
while(fSize)
{
if(!ReadFile(hInFile,buf,BUFFER_SIZE,&dwLen,NULL)) //читаем блок данных
puts("Ошибка чтения данных\n");
dwSzLow=dwLen;
if(!CryptEncrypt(hKey,0,fSize<=BUFFER_SIZE,0,buf,&dwSzLow,sizeof(buf)))
//шифруем блок данных
puts("Ошибка шифрования\n");
if(!WriteFile(hOutFile,buf,dwSzLow,&dwSzLow,NULL))
puts("Ошибка записи\n");
fSize-=dwLen;
}
CloseHandle(hOutFile);
CloseHandle(hInFile);
CryptReleaseContext(hProv,0);
Аудит - очень важный элемент системы безопасности, позволяющий регистрировать в специальных журналах события, связанные с действиями пользователей в системе. ОС платформы Win32 поддерживают систему аудита, позволяющую
выбрать типы отслеживаемых событий и регистрировать их в системных журналах.
Основной инструмент аудита в Windows – утилита Event Viewer (Просмотр событий). Запуск этой утилиты осуществляется из папки Administrative Tools (Администрирование).
113
Рис.6.3. Внешний вид утилиты Event Viewer (Просмотр событий) Windows
Windows записывает события в три журнала:

Системный журнал - (system log) содержит сообщения об ошибках,
предупреждения и другую информацию, исходящую от операционной системы и
компонентов сторонних производителей. Список событий, регистрируемых в этом
журнале, предопределен операционной системой и компонентами сторонних производителей и не может быть изменен пользователем. Журнал находится в файле
Sysevent.evt.

Журнал безопасности - (Security Log) содержит информацию об успеш-
ных и неудачных попытках выполнения действий, регистрируемых средствами
аудита. События, регистрируемые в этом журнале, определяются заданной администратором стратегией аудита. Журнал находится в файле Secevent.evt.

Журнал приложений - (Application Log) содержит сообщения об ошиб-
ках, предупреждения и другую информацию, выдаваемую различными приложениями. Список событий, регистрируемых в этом журнале, определяется разработчиками приложений. Журнал находится в файле Appevent.evt.
114
Все журналы размещены в папке %Systemroot%\System32\Config.
При выборе событий для проведения аудита следует учитывать возможность переполнения журнала. Для настройки каждого журнала можно использовать диалоговое окно Event Log Settings (Свойства журнала, рис. 6.4)
. С помощью этого окна можно управлять:

размером архивируемых журналов (размер по умолчанию – 512 Кбайт, можно
изменить размер от 64 до 4 194 240 Кбайт.);

методикой замещения устаревших записей журнала:
Затирать старые события по необходимости – в случае заполнения журнала
при записи новых событий операционная система удаляет самые старые события;
Затирать события старее N дней– в случае заполнения журнала при записи
новых событий удаляются самые события, но только если они старше N дней, иначе
новые события будут проигнорированы;
Не затирать события – в случае заполнения журнала новые события не фиксируются. Очистка журнала производится вручную.
Каждая запись в журнале содержит сведения о выполненном действии, о
Рис. 6.4. Определение свойств журнала событий
115
пользователе, который его выполнил, а также о дате и времени события. Можно
проводить аудит как успешных, так и неудачных попыток выполнения некоторых
действий. В журнал заносятся записи 5 различных типов:
Серьезные трудности, такие как потеря данных или функциональности. НаприОшибка
мер, если происходит сбой загрузки службы при запуске, в журнал заносится сообщение об ошибке.
События, которые в момент записи в журнал не были существенными, но могут
Предупреждение привести к сложностям в будущем. Например, если на диске осталось мало свободного места, в журнал заносится предупреждение.
Событие, описывающее удачное завершение действия приложением, драйвером
Сведения
или службой. Например, после успешной загрузки драйвера в журнал заносится
событие уведомления.
Событие, соответствующее успешно завершенному действию, связанному с под-
Аудит успехов
держкой безопасности системы. Например, в случае успешного входа пользователя в систему в журнал заносится событие типа «Аудит успехов»
Событие, соответствующее неудачно завершенному действию, связанному с
Аудит отказов
поддержкой безопасности системы. Например, в случае неудачной попытки доступа пользователя к сетевому диску в журнал заносится событие типа «Аудит
отказов»
Администратор имеет возможность определять набор подлежащих аудиту
событий. В WindowsNT это осуществляется в диалоговом окне Audit Policy (Политика Аудита) утилиты User Manager for Domains (Менеджер пользователей)
Основные события, которые могут регистрироваться:

Logon and Logoff – регистрация пользователя в системе или выход из
нее, а также установка и разрыв сетевого соединения;

File and Object Access – доступ к папкам, файлам и принтерам, подле-
жащим аудиту;

Use of User Rights – использование привилегий пользователей (кроме
прав, связанных с входом и выходом из системы);

User and Group Management – создание, изменение и удаление учётных
записей пользователей и групп, а также изменения в ограничениях учётной записи;
116

Security Policy Changes — изменения в привилегиях пользователей,
стратегии аудита и политике доверительных отношений;

System Restart and Shutdown — перезапуск и завершение работы систе-
мы, возникновение ситуации, влияющей на безопасность системы;

Process Tracking — события, связанные с запуском и завершением поль-
зовательских процессов, их доступом к объектам.
Настройка аудита доступа пользователей к тому или иному файлу или папке
осуществляется в окне свойств этого объекта, закладка Безопасность-> Дополнительно-> Аудит. С помощью оконного интерфейса здесь можно определить события, связанные с файлом или папкой, возникновение которых должно отражаться в
журнале системы. Список возможных событий отображен на рис. 6.5.
Рис.6.5. Определение событий, связанных с файлом, подлежащих аудиту
6.2. Средства безопасности ОС семейства Unix.
С самых первых версий операционная система Unix разрабатывалась как многопользовательская многозадачная операционная система. Она должна была обеспе117
чивать одновременную работу нескольких пользователей, работающих с различными приложениями. Таким образом, необходимо было защитить пользователей друг
от друга и предотвратить несанкционированный доступ, случайный или злонамеренный. Поэтому системе безопасности в ОС семейства Unix отводится очень большое внимание. В настоящий момент существует много различных версий операционных систем семейства Unix, однако все они поддерживают единую модель безопасности. Некоторые современные версии систем поддерживают различные расширения и улучшения системы безопасности, ознакомиться с которыми администратор может из справочного руководства к данным системам. В дальнейшем будем рассматривать традиционную модель безопасности операционных систем семейства Unix.
Основу безопасности ОС семейства Unix составляют пользователи системы.
Пользователи обладают определенными правами, они владеют файлами, от их имени запускаются системные и прикладные процессы. Причем набор функций, системных вызовов и операций, которые может выполнять процесс зависит от прав
пользователя, запустившего этот процесс. Все зарегистрированные в системе пользователи учитываются в файле /etc/passwd. Каждый пользователь системы имеет регистрационное имя (login name). Однако система различает пользователей не по
именам, а по ассоциированным с ними уникальным идентификаторам пользователей
или UID (User Identifier). Также каждый пользователь является членом одной или
нескольких групп. Группы описываются в файле /etc/group. Каждая группа имеет
уникальное имя и уникальный идентификатор группы GID (Group Identifier). В файле /etc/passwd указывается идентификатор первичной группы пользователя. Таким
образом UID и GID определяют, какими правами обладает пользователь в системе.
Среди всех пользователей особое положение занимает пользователь с UID=0, или
так называемый суперпользователь. Данный пользователь обычно имеет регистрационное имя root, однако в системе может быть несколько пользователей с UID=0 и
различными именами. Суперпользователь обладает неограниченными правами и
может выполнять над файлами и процессами любую допустимую операцию. Кроме
того, некоторые системные вызовы и операции может выполнять только суперполь118
зователь. Например, следующие операции доступны лишь суперпользователю: создание файлов устройств, изменение системного времени, увеличение лимитов на
использование ресурсов, увеличение приоритетов процессов, задание сетевого имени, конфигурирование сетевых интерфейсов, останов и перезагрузка системы. Администратору следует проявлять большую осторожность при работе под именем суперпользователя, поскольку неосторожные действия могут привести к необратимым
последствиям. Также во многих системах существует специальная привилегированная группа с GID=0 и именем wheel. Некоторые операции, например выполнение
команды su, доступны только пользователям, являющимся членами этой группы.
Кроме имени пользователя и идентификаторов в файле /etc/passwd содержатся также: зашифрованный пароль пользователя, домашний каталог пользователя и интерпретатор команд. Алгоритм шифрования пароля зависит от конкретной версии системы и является однонаправленным алгоритмом шифрования. Например, в системе
FreeBSD используется алгоритм MD5. Следует особо отметить, что в открытом виде
пароль никогда и нигде не хранится. При входе пользователя в систему введенный
им пароль шифруется и сравнивается два зашифрованных варианта. Даже суперпользователь не может узнать пароль какого-либо пользователя, однако он может
сменить пароль любого пользователя с помощью утилиты passwd. Данная утилита
также позволяет обычным пользователям менять их пароли. Если в файле паролей
вместо зашифрованного пароля стоит символ ‘*’, то такой пользователь не сможет
войти в систему. Если же поле пароля пустое, то пользователь сможет войти в систему, введя пустой пароль. Даже в зашифрованном виде файл паролей предоставляет некоторую угрозу безопасности, поскольку возможен подбор паролей, например, с использованием словаря. Поэтому во многих системах пароли были перенесены из файла /etc/passwd в другие файлы. Например, во FreeBSD пароли находятся
в файле /etc/master.passwd, а в Solaris и Linux в /etc/shadow. Оба этих файла доступны только суперпользователю и недоступны другим пользователям системы
даже для чтения. При входе пользователя в систему запускается указанный в файле
/etc/passwd интерпретатор команд. Обычно это один из стандартных командных интерпретаторов /bin/sh (Bourne shell), /bin/csh (C shell), /bin/ksh (Коrn shell) или
119
/bin/bash (Bourne shell again), позволяющих пользователю вводить команды и запускать задачи. Для пользователей, которым не нужен интерпретатор в этом поле
можно указать, например, /sbin/nologin, /nonexistent (для псевдопользователей) или
/bin/date (для удаленных пользователей). В общем случае в этом поле может быть
указана любая программа, важно то, что, завершив выполнение этой задачи, пользователь автоматически выйдет из системы. В файле /etc/shells содержится список
программ, которые могут быть использованы в качестве командного интерпретатора.
Как уже было отмечено, пользователи в ОС семейства Unix могут владеть файлами. Следует отметить, что в Unix файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, и к
периферийным устройствам. Т.е. доступ ко всем устройствам осуществляется через
специальные файлы устройств. В ОС семейства Unix файлы имеют двух владельцев:
владельца-пользователя и владельца-группу. Владельцем-пользователем вновь созданного файла является пользователь, создавший файл. Владелец-группа для вновь
созданного файла определяется по-разному в различных версиях систем. В BSDверсиях UNIX владелец-группа определяется по группе, владеющей каталогом, в
котором создается файл. В AT&T системах владельцем-группой становится первичная группа, которой принадлежит пользователь, создавший файл.
В Unix существуют три базовых класса доступа к файлу:
u – класс доступа для пользователя-владельца;
g – класс доступа для группы-владельца;
о – класс доступа для остальных пользователей.
Для каждого класса Unix поддерживает три типа прав доступа:
r – право на чтение;
w – право на запись;
x – право на исполнение.
Список прав доступа можно получить с помощью утилиты ls –l. Например:
- rwx rw- r- -
1
root wheel
1077 Jun 1 18:05 /usr/home/sergey/myinfo
120
Из приведенного примера видно, что для файла /usr/home/sergey/myinfo владельцем-пользователем является root, владельцем группой – wheel, права для владельца-пользователя rwx, владельца-группы rw, и для остальных пользователей r.
Первый символ указывает тип файла: ‘d’ – каталог, ‘с’ – файл байториентированного устройства, ‘b’ - файл блок-ориентированного устройства, ‘s’ –
сокет, ‘p’- именованный канал, ‘l’ – символическая ссылка.
Права доступа могут быть изменены только владельцем файла или суперпользователем при помощи утилиты chmod. Изменить владельца-пользователя и владельца-группу может только суперпользователь при помощи утилит chown и chgrp.
Общий формат chmod следующий:
u
chmod
В
g
+
r
o
-
w
a
=
x
качестве
аргументов
file1 file2 ….
указываются
классы
доступа
(‘u’-
владелец-
пользователь, ‘g’ - владелец-группа, 'о' — остальные пользователи, 'а' — все классы
пользователей), права доступа ('r' - чтение, ‘w’ - запись и 'х' - выполнение) и операция, которую необходимо произвести (‘+’ - добавить, ‘-‘ - удалить и ‘=’ - присвоить) для списка файлов file1, file2 и т. д. Например
chmod u+w,og+r-wx text1 text2
Также можно установить сразу все девять прав доступа, используя числовую
форму команды. Число определяется следующим образом: нужно представить права
доступа в двоичном виде (0 — отсутствие соответствующего права, 1 — его наличие) и каждую триаду, соответствующую классу доступа, в свою очередь преобразовать в десятичное число. Допустим chmod 754 * эквивалентно chmod
u=rwx,g=rx,o=r * (rwx=111b=7; r-x=101b=5; r--=100b=4 )
Значение прав доступа различно для разных типов файлов. Для файлов операции, которые можно производить, следуют из самих названий прав доступа.
Например, чтобы просмотреть содержимое файла командой cat, пользователь должен иметь право на чтение (r). Редактирование файла, т. е. его изменение, преду121
сматривает наличие права на запись (w). Наконец, для того, чтобы запустить некоторую программу на выполнение, необходимо иметь право на исполнение (х). Исполняемый файл может быть как скомпилированной программой, так и скриптом
командного интерпретатора shell. В последнем случае для выполнения необходимо
иметь также право на чтение, поскольку при выполнении скрипта командный интерпретатор должен иметь возможность считывать команды из файла. Все сказанное, за исключением права на выполнение, справедливо и для других типов файлов:
специальных файлов устройств, именованных каналов и сокетов. Для символических связей права доступа вообще не используются, поскольку контролируются целевым файлом (для символических связей права всегда равны lrwxrwxrwx).
Для каталогов система трактует права доступа несколько по-другому. Право
чтения каталога позволяет получить имена файлов (точнее только имена и их индексные дескрипторы), находящихся в данном каталоге. Чтобы получить дополнительную информацию о файлах каталога (например, подробный листинг команды ls
-l), необходимо иметь право на выполнение для каталога. Это право также необходимо, чтобы получить доступ к содержимому файла (например, прочитать его с помощью команды cat) и для того, чтобы перейти в каталог, т.е. сделать его текущим с
помощью команды cd. Кроме того, для того чтобы сделать каталог текущим, право
на выполнение необходимо иметь для всех каталогов на пути к указанному. Права r
и x действуют независимо, право х для каталога не требует наличия права r, и
наоборот. Комбинацией этих двух прав можно добиться интересных эффектов,
например, создания «темных» каталогов, файлы которых доступны только в случае,
если пользователь заранее знает их имена, поскольку получение списка файлов таких каталогов запрещено. Создание, удаление и переименование файлов требует
наличия прав w и x на каталог. При этом при удалении файлов не учитываются права доступа для самого файла. Т.е. если пользователь имеет право w на каталог, то он
может удалить в нем файл, на который не имеет никаких прав. Можно изменить подобное поведение операционной системы с помощью специальных дополнительных
флагов, которые будут рассмотрены ниже.
122
Операционная система UNIX производит проверку прав доступа при создании,
открытии (для чтения или записи), запуске на выполнение или удалении файла. При
этом выполняются следующие проверки:
1. Если операция запрашивается суперпользователем (с UID=0), доступ разрешается. Никакие дополнительные проверки не производятся. Это позволяет администратору иметь неограниченный доступ ко всей файловой системе.
2. Если операция запрашивается владельцем файла, то доступ разрешается при
условии, что требуемое право доступа определено для владельца-пользователя, в
противном случае доступ запрещается.
3. Если операция запрашивается пользователем, являющимся членом группы,
которая является владельцем файла, то доступ разрешается при условии, что требуемое право доступа определено для владельца-группы, в противном случае доступ
запрещается.
4. Если требуемое право доступа для прочих пользователей (other) установлено,
доступ разрешается, в противном случае доступ запрещается.
Система проводит проверки именно в указанной последовательности. Например, если пользователь не является владельцем файла, но является членом владельца-группы, то доступ определяется исключительно из прав владельца-группы, права,
указанные для остальных пользователей, не проверяются. Например,
-rwx --- r-- 2 root guest
1056
Jun 1 19:13 special.info
Если пользователь gstuser является членом группы guest, то доступ к файлу
special.info для него будет запрещен, хотя все остальные пользователи, не входящие
в эту группу, имеют право чтения на этот файл. Эта возможность позволяет выделять группы пользователей, обладающих ограниченными правами.
Помимо рассмотренных основных прав доступа, имеются еще дополнительные права. Это биты SUID, SGID и Sticky-бит. Данные биты можно установить или
убрать с помощью стандартной утилиты chmod. При использовании символьного
режима данные биты указываются буквами s и t соответственно, а при использовании числового режима SUID соответствует 4000, SGID – 2000 и Sticky-бит – 1000.
При просмотре прав доступа данные биты указываются вместо соответствующих
123
битов x строчными буквами s и t. Следует отметить, что в большинстве случаев использование данных битов без установки соответствующих битов x лишено смысла
(например установка SUID без установки бита x для владельца файла). Поэтому в
этом случае при просмотре прав доступа биты будут указаны прописными буквами
S и T, что указывает на некорректное их использование.
Рассмотрим область применения дополнительных битов. Биты SUID и SGID
позволяют установить для файлов EUID и EGID процесса, равными UID или GID
владельца-пользователя и владельца-группы файла. Sticky-бит для файлов считается
устаревшим режимом и в современных системах практически не используется. Для
каталогов бит SGID задает режим, при котором при создании файла владельцемгруппой становится группа, владеющая каталогом. Это позволяет некоторым Unix
системам имитировать поведение систем версии BSD, для которых такое правило
наследования действует по умолчанию. Sticky-бит для каталогов устанавливает режим, при котором пользователь может удалять файлы из каталога, только если он
имеет право w для этих файлов. Это перекрывает режим по умолчанию, при котором для удаления файлов достаточно только прав w и x на сам каталог. Примером
использования данного режима может служить каталог /tmp, который является открытым на запись для всех пользователей, но в котором может оказаться нежелательной возможность удаления пользователем чужих временных файлов.
Кроме рассмотренных выше прав доступа, в некоторых системах используются
дополнительные права доступа. Например, в BSD системах существует специальный флаг noschg, установка которого запрещает изменять и удалять файл. Кроме того, некоторые современные версии систем Unix поддерживают управление списками доступа ACL.
Как уже было отмечено, права процессов зависят от прав пользователя, запустившего процесс. В операционных системах семейства Unix процессы имеют четыре идентификатора, связанных с правами доступа. Это идентификаторы пользователя RUID, EUID (реальный и эффективный) и идентификаторы группы RGID,
EGID. RUID и RGID всегда устанавливаются равными UID и GID пользователя,
запустившего процесс. По умолчанию EUID и EGID также будут равны UID и GID
124
пользователя, запустившего процесс. Однако, как было отмечено выше, если для
файла установлены биты SUID или SGID, то EUID и EGID будут равны UID и GID
владельца-пользователя и владельца-группы соответственно. В качестве примера
можно привести утилиту passwd, владельцем которой является root, и у нее установлен бит SUID. Это дает право любому пользователю изменять свой пароль и сохранить изменения в файле паролей. Стоит также отметить, что в любом случае
утилита passwd может по битам RUID и EUID определить, запустил ее суперпользователь, либо другой пользователь от имени суперпользователя. И соответственно
для обычных пользователей она может предоставить лишь ограниченные права.
Например, суперпользователь может изменять пароль любого пользователя, даже не
зная его старого пароля. При запуске дочерних процессов они наследуют права доступа родительского процесса. Поэтому устанавливать биты SUID и SGID следует с
большой осторожностью и только для программ, которые не имеют возможности
запуска произвольных задач, поскольку, например, командный интерпретатор, запущенный от имени суперпользователя, предоставляет почти неограниченные возможности.
Как уже было отмечено, суперпользователь обладает неограниченными правами. Для работы в системе с правами суперпользователя можно просто войти в систему под именем root. Однако данный режим не рекомендуется использовать, поскольку, во-первых, при работе под именем root не ведется никаких записей о том,
какие действия выполнял суперпользователь, во-вторых, сценарий регистрации суперпользователя не предполагает сбора никакой другой идентифицирующей информации (например, если под именем root могут входить несколько человек, невозможно определить, кто именно произвел вход в систему) и, в-третьих, любые неосторожные действия могут привести к необратимым последствиям. Поэтому для
обеспечения большей безопасности регистрация под именем root запрещена на терминалах и по сети, т.е. везде кроме системной консоли.
Для того чтобы другой пользователь мог выполнять операции от имени root,
существует 2 варианта: команда su и утилита sudo. Для использования команды su,
пользователь должен войти в систему под любым произвольным именем и затем вы125
звать команду su без параметров. При этом будет запрошен пароль суперпользователя, и в случае указания правильного пароля, будет запущен командный интерпретатор с правами суперпользователя. Во многих системах пользователь должен также
являться членом группы с GID=0. В общем случае команда su позволяет запускать
командный интерпретатор от имени любого пользователя, указанного в качестве параметра. Команда su предназначена, в основном, для системных администраторов, а
не для обычных пользователей. В некоторых случаях может возникнуть необходимость разрешить для некоторых пользователей выполнение некоторых команд от
имени суперпользователя. Для этого можно использовать утилиту sudo. Программа
sudo принимает в качестве параметра командную строку, которая подлежит выполнению с правами пользователя root. В файле /usr/local/etc/sudoers содержится список пользователей и перечень команд, которые они имеют право выполнять на указанных машинах. Если все разрешения совпадают, то перед выполнением указанной
команды sudo запрашивает у пользователя его пароль и выполняет указанную команду от имени суперпользователя. Программа sudo ведет файл регистрации выполненных команд, а также вызвавших их пользователей и времени вызова. Редактировать файл sudoers может только суперпользователь с помощью специальной
утилиты visudo. Он должен соблюдать большую аккуратность при установке разрешений в файле sudoers и должен предоставить пользователям минимальный набор
команд, достаточный для выполнения требуемых операций.
Таким образом, можно сделать вывод, что подсистема безопасности ОС семейства Unix достаточно эффективна, и большинство систем Unix по всем параметрам
соответствуют классу безопасности C2. Однако стоит отметить, что администратор
системы должен очень ответственно подходить к вопросам безопасности, поскольку
какое-либо некорректное действие (например, предоставление пользователям возможности доступа к файлу паролей, возможности запуска командного интерпретатора с правами root, возможности запуска непроверенных или ненадежных скриптов
и программ от имени суперпользователя) могут свести на нет все достоинства системы безопасности Unix.
126
Подсистема аудита в операционных системах семейства UNIX позволяет эффективно отслеживать действия пользователей в системе. В большинстве операционных систем семейства Unix используется централизованная система регистрации
системных сообщений Syslog. Данная система позволяет администратору вести
полный контроль за сообщениями как самой системы и системных процессов, так и
прикладных процессов. Она обладает очень большой гибкостью и позволяет сортировать сообщения как по источникам, так и по степени важности и направлять их в
различные пункты назначения: в журнальные файлы, на терминалы пользователей и
даже на другие машины в сети. Таким образом, администратор может организовать
централизованную процедуру регистрации системных сообщений во всей сети.
Система Syslog состоит из трех компонентов:
- демона syslogd, который осуществляет регистрацию событий;
- библиотечных функций openlog(),syslog(),closelog(), которые передают сообщения демону syslogd;
- команды logger, которая принимает сообщения от интерпретатора команд.
Демон syslogd запускается во время начальной загрузки системы и работает
непрерывно. Процессы и демоны взаимодействуют с этим демоном через библиотечные
функции
syslog,
openlog,
closelog,
которые
описаны
в
/usr/include/sys/syslog.h. Файл /etc/syslog.conf является конфигурационным файлом
демона syslogd. Для того что бы демон перечитал файл конфигурации, ему необходимо послать сигнал HUP.
Сам файл конфигурации состоит из строк вида
селектор <Tab> действие
Пустые строки и строки, начинающиеся с символа ‘#’, игнорируются. Допускается наличие нескольких символов табуляции между селектором и действием, однако использование пробелов в качестве разделителей не допускается. Это может приводить к скрытым ошибкам при использовании различных редакторов, поэтому администратор должен быть очень внимательным при редактировании данного файла.
Формат селектора следующий:
средство.уровень
127
где средство указывает источник сообщений, а уровень определяет уровень серьезности сообщения. И имена средств, и уровни имеют стандартный набор значений,
администратор не может использовать произвольные значения для них. Допускается
также использование символов ‘*’ и none в качестве значений средства и уровня.
Эти символы обозначают «все» и «ничего» соответственно. Допускается указание
нескольких селекторов, разделенных символом ';' или ',' в одной строке. Например
средство1.уровень1;средство2.*;*.уровень3 <Tab> действие
В этом случае селекторы объединяются по схеме «ИЛИ», т.е. действие будет
выполнено для сообщения, соответствующего любому из селекторов. Базовый набор
средств и уровней приведен в таблицах 6.1 и 6.2 соответственно [13].
Таблица 6.1
Средства системы syslog.
Средство Программы и сообщения, которые его используют
Kern
Ядро системы
User
Пользовательские процессы (по умолчанию, если не указано иное )
Mail
Система sendmail и другие почтовые программы
Daemon
Системные демоны
Auth
Команды, связанные с безопасностью и авторизацией
Lpr
Система буферизации печати
News
Система телеконференций usenet
Cron
Демон cron
Mark
Метки времени, генерируемые через определенные промежутки
времени
Таблица 6.2
Уровни серьезности системы syslog
Уровень
Значение
Emerg
Экстренные ситуации
Alert
Срочные ситуации
Crit
Критические состояния
Err
Ошибочные состояния
128
Warning
Предупреждающие сообщения
Notice
Необычные события, заслуживающие внимания
Info
Информационные сообщения
Debug
Отладочные сообщения
Уровень сообщения определяет его важность. В таблице 6.2 уровни приведены
в порядке убывания важности. По умолчанию в файле syslog.conf указывается минимальная важность, которую должно иметь сообщение, чтобы быть зарегистрированным. Другими словами, если указано
mail.warning <tab> действие1
то «действие1» будет выполнено для всех сообщений от почтовой подсистемы
с уровнями warning, а также с уровнями err,crit,alert и emerg. В BSD системах допускается также дополнительные возможности указания уровня. Например,
mail.>=warning – аналогично использованию mail.warning; mail.=warning – для регистрации сообщений только уровня warning; mail.<=warning - для регистрации сообщений уровня warning и ниже; mail.<warning - для регистрации сообщений ниже
уровня warning; mail.>warning - для регистрации сообщений выше уровня warning.
Действие определяет, что нужно делать с сообщением. Возможны следующие
варианты: имя_файла – записать сообщение в указанный файл (необходимо использовать абсолютный путь к файлу); @имя_машины – переслать сообщение демону syslogd на машину с указанным именем; @ip_адрес – переслать сообщение
демону syslogd на машину с указанным IP адресом; пользователь1, пользователь2
– вывести сообщение на терминалы указанных пользователей; * - вывести сообщение на терминалы всех пользователей.
По умолчанию демон syslogd работает на 514 UDP порту, можно использовать
флаг ss при запуске демона, для запрета работы по сети. Кроме того, в BSD системах
допускается регистрация сообщений от прикладных процессов, которые не соответствуют ни одному стандартному средству. Для этого используется следующий синтаксис.
!myprog
129
*.error
/var/log/myprog_error.log
*.*
/var/log/myprog.log
В этом случае после строчки !myprog в качестве средства подразумевается
процесс myprog, вплоть до следующей строчки со знаком ‘!’.
Следует также особо отметить, что демон syslogd не создает файлы, указанные
в поле «действие», и для его корректной работы файлы должны уже существовать.
Для создания файлов можно использовать команду touch или использовать специальную утилиту newsyslog, которая будет рассмотрена далее. Администратор должен быть особенно осторожным при задании прав доступа для журнальных файлов,
поскольку в этих файлах может оказаться некоторая важная информация и даже в
некоторых случаях пароли пользователей.
В процессе работы системы объем журнальных файлов может значительно увеличиться. Работать с большими файлами не очень удобно, кроме того, если не предпринимать никаких действий, эти файлы могут заполнить все свободное пространство на жестком диске. Кроме того, администратору вряд ли будет полезна информация с очень большим сроком давности. Поэтому периодически необходимо архивировать старые журнальные файлы. В большинстве систем для этого применяется
утилита newsyslog. Данная утилита использует принцип ротации журнальных файлов. Это означает, что хранится несколько заархивированных версий файлов, и при
необходимости текущий журнальный файл архивируется, все версии переименовываются, а самая старая версия удаляется. По умолчанию утилита newsyslog запускается демоном cron каждый час и проверяет необходимость архивации тех или иных
файлов. Файл /etc/newsyslog.conf является файлом конфигурации этой утилиты. Использование утилиты newsyslog позволяет администратору очень гибко и эффективно настроить процедуру архивации журнальных файлов. Кроме того, утилита
newsyslog после архивации файла создает пустой файл с указанными правами доступа, что облегчает использование системы syslog.
Файл newsyslog.conf состоит из текстовых строк, содержащих следующие поля:
logfilename – имя журнального файла, owner.group – имя пользователя и группа,
которые будут использованы в качестве владельцев для нового журнального файла;
130
mode – режим доступа для нового журнального файла; count – количество архивных
копий файла, которые необходимо хранить; size – выполнять архивацию и ротацию
журнального файла, заданного в поле logfilename, если его размер превысил указанное количество килобайт; time - выполнять архивацию и ротацию журнального
файла, если с момента последней архивации прошло указанное количество часов;
ZB – поле флагов, если присутствует флаг Z, то файлы должны архивироваться при
ротации, если присутствует флаг B, то файл считается двоичным и newsyslog не будет добавлять в этот файл никакой своей информации (по умолчанию newsyslog добавляет в новый созданный файл текстовую строку); в последних двух полях задается файл, в котором хранится идентификатор процесса и номер сигнала. Если эти поля не пустые, то после создания нового файла указанный сигнал будет послан указанному процессу. Таким образом процесс будет проинформирован о замене журнального файла. Обычно заполняется либо поле size, либо поле time, символ '*’ в
этих полях обозначают любое значение. Если заполнены оба поля, то архивация будет произведена при выполнении хотя бы одного из двух условий.
Таким образом, можно сделать вывод, что в операционных системах семейства
Unix система аудита реализована очень эффективно и позволяет администратору организовать централизованную политику учета сообщений для всей сети с возможностью своевременного архивирования журнальных файлов.
6.3. Вывод
Современные операционные системы располагают встроенными средствами
обеспечения безопасности, которые позволяют обеспечить эффективные аутентификацию, авторизацию и аудит действий пользователей. Эти средства могут стать
основой реализации политики безопасности. Однако, одних только встроенных
средств операционных систем недостаточно для решения всех вопросов защиты, их
необходимо дополнить специализированным программным обеспечением (антивирусное ПО, межсетевые экраны и т.п.).
131
Список литературы
1. Анин Б. Ю. Защита компьютерной информации. – СПб.:
"BHV-Санкт-
Петербург" - 2000, 384 стр
2. Баричев С. В. Криптография без секретов. –М.: Наука, 1998. –120 с.
3. Галатенко В. А. Информационная безопасность. –М.: Финансы и статистика,
1997. –158 с.
4. Герасименко В. А. Защита информации в автоматизированных системах обработки данных кн. 1.-М.: Энергоатомиздат, 1994.-400с.
5. Гостехкомиссия России. Руководящий документ. Автоматизированные системы.
Защита от несанкционированного доступа к информации. Классификация автоматизированных систем и требования по защите информации. Москва, 1992.
6. Конеев И. Р., Беляев А. В. Информационная безопасность предприятия.-СПб.:
БХВ-Петербург, 2003.- 752с.:ил.
7. Мелюк А. А., Пазизин С. В., Погожин Н. С. Введение в защиту информации в автоматизированных системах. -М.: Горячая линия - Телеком, 2001.- 48с.:ил.
8. Оглтри Т. Практическое применение межсетевых экранов: Пер. с англ.-М.: ДМК
Пресс, 2001.- 400с.:ил.
9. Сетевые операционные системы/ В. Г. Олифер, Н. А. Олифер. – СПб.: Питер,
2002. – 544с.: ил.
10.Соколов А. В., Степанюк О. М. Защита от компьютерного терроризма. Справочное пособие. - СПб.: БХВ - Петербург, Арлит, 2002.- 496с.:ил.
11.Чмора А. Л. Современная прикладная криптография. 2-е изд. -М.:Гелиос АРВ,
2002.-256с.:ил.
12.Шнайер Б. Прикладная криптография.- М. : Триумф, 2002. – 816с.
13.Эви Немет, Гарт Снайдер, Скотт Сибасс, Трент Р. Хейн. Unix, руководство системного администратора./Пер с англ. – СПб.: Питер: K.Издательская группа
BHV,2002. – 928 c.: ил.
132
Дмитрий Николаевич Лясин
Сергей Геннадьевич Саньков
МЕТОДЫ И СРЕДСТВА ЗАЩИТЫ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ.
Учебное пособие
Редактор Е.М. Марносова
План заказных изданий 2005г. поз. N6 (магнитоноситель)
Лицензия ИД N04790 от 18.05.01
Подписано в печать _________ . Формат 60 х 84
Бумага газетная. Печать офсетная. Усл. печ. л. ____ .
Уч. -изд.л. ___ . Тираж _____ . Заказ _____ .
Волгоградский государственный технический университет.
400131 Волгоград , пр. Ленина , 28.
РПК "Политехник" Волгоградского государственного технического
университета.
400131 Волгоград , ул. Советская , 35.
133
Download