39800

ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

Книга

Информатика, кибернетика и программирование

ISBN Новые информационные технологии активно развивающиеся в последние годы позволили осуществить своеобразную революцию в проблеме обработки и передачи информации. Основные угрозы безопасности информации в ИВС 8 1. Цели и задачи защиты информации в ИВС 19 1. При этом стоимость информации часто превосходит в сотни и тысячи раз стоимость компьютерной системы в которой она находится.

Русский

2013-10-08

1.32 MB

31 чел.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Воронежский институт высоких технологий

Российский Новый Университет

(Воронежский филиал)

Ю. П. П р е о б р а ж е н с к и й,

А. П. П р е о б р а ж е н с к и й,

П. В. Г л у х о в

ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

Учебное пособие

Воронеж

«Научная книга»

2006


УДК 002-004                                     
Печатается по решению

ББК 73-32.97                                    Учебно-методического совета

     П 72                                             Воронежского института

                                                          высоких технологий

Н а у ч н ы й  р е д а к т о р:

д-р техн. наук, проф., академик РАЕН Я. Е.Львович 

Р е ц е н з е н т ы:

д-р техн. наук, проф. А. А. Рындин;

зав. каф. ТАСЭМ ВГТУ д-р техн. наук, доцент О. Н. Чопоров

П 72 Преображенский Ю. П., Преображенский А. П., Глухов П. В. 

ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ: Учебное пособие / АНОО ВИВТ; РосНОУ (ВФ). – Воронеж: Научная книга. – 224 с.

ISBN

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

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

Табл. 8, Ил. 26., Библиогр. 43 назв.

УДК 002-004

ББК 73-32.97 

© Преображенский Ю. П.,

   Преображенский А. П.,

   Глухов П.В., 2006.

© ВИВТ, 2006.

© РосНОУ (ВФ), 2006.

ISBN

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

5

1. ИНФОРМАЦИЯ КАК ПРЕДМЕТ ЗАЩИТЫ

6

1.1. Основные угрозы безопасности информации в ИВС

8

1.1.1. Основные понятия

8

1.1.2. Классификация угроз безопасности данных

10

1.1.3. Модель потенциального нарушителя

14

1.1.4. Способы мошенничества в информационных системах

15

1.2. Цели и задачи защиты информации в ИВС

19

1.3. Принципы организации систем обеспечения

безопасности данных ИВС

20

1.3.1. Основные понятия

20

1.3.2. Принципы организации СОБД и требования к СОБД

20

1.3.3. Основные подсистемы, входящие в состав СОБД ИВС

22

2. МЕТОДЫ И СРЕДСТВА ЗАЩИТЫ ДАННЫХ

24

2.1. Основные методы защиты данных

24

2.2. Классификация средств защиты данных

25

2.2.1. Формальные средства защиты

25

2.2.2. Физические средства защиты

26

2.2.3. Аппаратные средства защиты

27

2.3. Криптографические методы и средства защиты данных

34

2.3.1. Симметричные криптоалгоритмы

37

2.3.1.1. Скремблеры

37

2.3.1.2. Блочные шифры

42

2.3.1.3. Общие сведения о конкурсе AES

50

2.3.1.4. Симметричные криптосистемы

52

2.3.2. Асимметричные криптоалгоритмы

64

2.3.2.1. Общие сведения об асимметричных криптоалгоритмах

64

2.3.2.2. Алгоритм RSA

66

2.3.2.3. Технологии цифровых подписей

68

2.3.2.4. Механизм распространения открытых ключей

70

2.3.2.5. Обмен ключами по алгоритму Диффи-Хеллмана

72

2.4 Аутентификация пользователя

74

2.5 Защита исходных текстов и двоичного кода

82

2.5.1 Противодействие изучению исходных текстов

82

2.5.2 Противодействие анализу двоичного кода

87

3. СЕТЕВАЯ БЕЗОПАСНОСТЬ

91

3.1. Основные понятия компьютерной безопасности

91

3.2. Особенности безопасности компьютерных сетей

92

3.3. Удаленные атаки на распределенные

     вычислительные системы

93

3.4 Характеристика и механизмы реализации типовых удаленных атак

99

3.4.1. Анализ сетевого трафика

100

3.4.2. Подмена доверенного объекта или субъекта

распределенной ВС

101

3.4.3. Ложный объект распределенной ВС

103

3.4.3.1. Внедрение в распределенную ВС ложного объекта путем навязывания ложного маршрута

104

3.4.3.2. Внедрение в распределенную ВС ложного объекта путем использования недостатков алгоритмов удаленного поиска

105

3.4.3.3. Использование ложного объекта для организации удаленной атаки на распределенную ВС

106

3.4.3.4. Отказ в обслуживании

110

3.5 Технологии обнаружения сетевых атак

112

3.5.1 Этапы реализации атак

115

3.5.2 Средства обнаружения компьютерных атак

124

3.6 Брандмауэр

132

4. СТАНДАРТЫ И СПЕЦИФИКАЦИИ В ОБЛАСТИ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

142

4.1 Основные понятия

142

4.2 Механизмы безопасности

145

4.3 Классы безопасности

148

4.4 Информационная безопасность распределенных систем. Рекомендации X.800

152

4.5 Стандарт ISO/IEC 15408 «Критерии оценки безопасности информационных технологий»

158

4.6 Гармонизированные критерии Европейских стран

166

ЗАКЛЮЧЕНИЕ

176

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

177

ПРИЛОЖЕНИЕ 1

180

ВВЕДЕНИЕ

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

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

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


1. ИНФОРМАЦИЯ КАК ПРЕДМЕТ ЗАЩИТЫ

Информация – это абстрактное содержание какого-либо высказывания, описание, указание, сообщение или известие.

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

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

Ценность информации является критерием при принятии любого решения о ее защите и для выбора метода защиты. В денежном выражении затраты на защиту информации не должны превышать возможные потери.

Принято следующее разделение информации по уровню важности:

жизненно важная незаменимая информация, наличие которой необходимо для функционирования организации;

важная информация – информация, которая может быть заменена или восстановлена, но процесс восстановления очень труден и связан с большими затратами;

полезная информация – информация, которую трудно восстановить, однако организация может эффективно функционировать и без нее;

несущественная информация – информация, которая больше не нужна организации.

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

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

Основные объекты защиты информации представлены на рис. 1.1.

Рис. 1.1. Объекты защиты информации

Вычислительной системой называется система обработки данных, настроенная на решение задач конкретной области применения.

Автоматизированные системы управления отличаются от вычислительных сетей наличием средств, решающих задачи управления каким-либо процессом. Различают два типа управления: системы управления техническими устройствами и производственными процессами и системы административно-организационного управления.

1.1. Основные угрозы безопасности информации в ИВС

1.1.1. Основные понятия

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

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

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

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

Нарушение безопасности информации – утрата свойств, характеризующих безопасность информации при ее обработке техническими средствами.

Угроза безопасности информации – случайная или преднамеренная деятельность людей или физической явление, которые могут привести к нарушению безопасности информации.

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

Утечка информации – утрата свойств конфиденциальности информации.

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

Искажение информации – любое преднамеренное или случайное изменение информации при ее обработке техническими средствами, меняющее содержание этой информации.

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

Подделка информации – преднамеренное действие по созданию ложной информации в технических средствах ее обработки.

Блокирование информации – прекращение или затруднение доступа законных пользователей к информации при ее обработке техническими средствами.

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

Аппаратная закладка – электронное устройство, встраиваемое или подключаемое к элементам технических средств обработки информации в целях нарушения безопасности информации при ее обработке техническими средствами.

1.1.2. Классификация угроз безопасности данных

По возможным последствиям выделяют:

  •  угрозы нарушения конфиденциальности обрабатываемой информации – информация становится известной лицу, которое не должно иметь к ней доступ;
  •  угрозы нарушения целостности обрабатываемой информации – целостность информации может быть нарушена как злоумышленником, так и в результате объективных воздействий со стороны среды эксплуатации системы;
  •  угрозы нарушения работоспособности системы (отказ в обслуживании) направлены на создание ситуаций, когда в результате преднамеренных действий снижается работоспособность вычислительной системы, либо ее ресурсы становятся недоступными.

По источнику возникновения выделяют следующие угрозы безопасности (рис. 1.2.):

Рис. 1.2. Угрозы безопасности данных

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

Воздействия, в результате которых может быть нарушена безопасность данных, включают в себя:

  •  случайные воздействия природной среды (ураган, землетрясение, пожар, наводнение и т. п.);
    •  целенаправленные воздействия нарушителя (шпионаж, разрушение компонентов ИBC, использование прямых каналов утечки данных);
    •  внутренние возмущающие факторы (отказы аппаратуры, ошибки в математическом и программном обеспечении, недостаточная профессиональная и морально-психологическая подготовка персонала и т. д.).

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

Уязвимые места ИВС, которые потенциально предоставляют нарушителю возможность НСД, приведены на рис. 1.3.

Все каналы утечки данных можно разделить на косвенные и прямые.

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

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

Рис. 1.3. Уязвимые места ИВС

Все каналы утечки данных можно разделить на косвенные и прямые.

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

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

При использовании прямых каналов утечки нарушитель может осуществить следующие действия:

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

При подключении к магистральной линии связи нарушитель может осуществить следующие действия с передаваемыми данными:

– раскрыть содержание передаваемых сообщений;

– проанализировать трафик, позволяющий определить принадлежность отправителя и получателя данных к одной из групп пользователей сети, связанных общей задачей;

– изменить поток сообщений, что может привести к нарушению режима работы какого-либо объекта, управляемого из удаленной ЭВМ;

– неправомерно отказаться в предоставлении услуг;

– несанкционированно установить соединения.

1.1.3 Модель потенциального нарушителя

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

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

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

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

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

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

1.1.5. Способы мошенничества в информационных системах

Мошенничество (ст. 159 УК РФ) – хищение чужого имущества или приобретение права на чужое имущество путем обмана или злоупотребления доверием.

Компьютерные преступления (ст. 272, 273, 274 УК РФ) – неправомерный доступ к компьютерной информации; создание, использование и распространение вредоносных программ для ЭВМ; нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети, повлекшие уничтожение, блокирование, модификацию либо копирование информации, нарушение работы ЭВМ, системы ЭВМ или их сети. В соответствии с этими понятиями под способом мошенничества в ИС понимается совокупность приемов и средств, обеспечивших несанкционированный доступ к информационным ресурсам и технологиям и позволивших их противоправное использование.

Мошенничество в ИС является комплексным преступлением с тремя четко выраженными фазами (звеньями):

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

На подготовительной фазе реализуется один или комбинация из приемов:

1) Изъятие средств вычислительной техники (СВТ) путем хищения, разбоя, вымогательства (т. е. совершения обычных «некомпьютерных» преступлений). Объектами, как правило, являются системные блоки, содержащие в постоянной памяти установочные данные обо всех клиентах, вкладчиках, кредиторах и т. д.;

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

3) несанкционированный доступ к СВТ, который реализуется с использованием следующих основных приемов:

«за дураком»  проникновение как в производственные помещения (физическое), так и в электронные системы по следующей схеме:

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

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

«компьютерный абордаж»  подбор вручную или с использованием автоматической программы кода доступа компьютерной системы с использованием обычного телефона;

«неспешный выбор» (брешь, люк)  изучение слабых мест в защите компьютерной системы, их исследований, выявление участков имеющих ошибки или неудачную логику программного строения, разрыв программы и дополнительное введение команд;

«маскарад»  проникновение в компьютерную систему, выдавая себя за законного пользователя с использованием его кодов и других идентифицирующих шифров;

мистификация создание условий, когда пользователь подключается к чьей-либо системе, будучи абсолютно уверенным в том, что он работает с нужным ему абонентом. Формируя правдоподобные ответы на запросы пользователя и поддерживая его заблуждения некоторое время, обычно добывается коды доступа или отклик на пароль;

– «аварийный» создание условий для возникновения сбоев или других отклонений в работе ЭВМ, когда в компьютерном центре включается особая программа, позволяющая в аварийном режиме получать доступ к наиболее ценным данным, как правило, в этом режиме «отключаются» все имеющиеся в системе средства защиты информации.

На основной фазе основными приемами манипуляции данными и управляющими программами, приводящими к движению информационных ресурсов являются:

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

«Салями»  оригинальная электронная версия методов изъятия «лишних» денежных средств в свою пользу. При использовании этого метода злоумышленник так же, как и в предыдущем случае, «дописывает» прикладное программное обеспечение специальным модулем, который манипулирует с информацией, перебрасывая на подставной счет результаты округления при проведении законных транзакций. Расчет построен на том, что отчисляемые суммы столь малы, что их потери практически незаметны, а незаконное накопление средств проводится за счет суммы совершения большого количества операций (ст. 272, 273, 158 УК РФ).

Сокрытие следов

  1.  Дробление денежных сумм  злоумышленник делит полученные в результате несанкционированных манипуляций с банковской информацией денежные средства на неравные долевые части с зачислением на корреспондентские счета сторонних банков, в которых можно было бы впоследствии снять переведенные суммы наличными.
  2.  Переброска денежных средств  злоумышленник организует перевод полученных денежных сумм по счетам различных клиентов банка и в результате затрудняет возможность определения истинного пути происхождения средств. Далее, когда «концы» потеряны, эти суммы можно использовать по своему усмотрению.
  3.  «Бухинг» (организация электронного блокирования) банковская компьютерная система блокируется одновременной «атакой» несанкционированного доступа большим количеством злоумышленников (сообщников) со своих персональных компьютеров из различных регионов. Они организуют прикрытие одной основной незаконной транзакции огромным количеством фиктивных платежных поручений, которые затрудняют определение истинных путей утечки денежных средств.

1.2. Цели и задачи защиты информации в ИВС

Цель защиты системы обработки информации – противодействие угрозам безопасности. Следовательно, безопасная или защищенная система – это система, обладающая средствами защиты, которые успешно и эффективно противостоят угрозам безопасности. Дерево целей представлено на рис. 1.4.

Рис. 1.4. Цели и задачи защиты данных в ИВС

1.3. Принципы организации систем обеспечения

безопасности данных (СОБД) ИВС

1.3.1. Основные понятия

Безопасность данных  такое состояние хранимых, обрабатываемых и передаваемых данных, при котором невозможно их случайное или преднамеренное получение, изменение или уничтожение.

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

Метод (способ) защиты данных – совокупность приемов и операций, реализующих функции защиты данных (примеры: методы паролирования, методы шифрования и т. п.).

На основе методов защиты создаются средства защиты (пример: устройства шифрации/дешифрации, программы анализа пароля, датчики охранной сигнализации, законы об авторских правах и т. п.)

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

Система обеспечения безопасности данных  совокупность средств и механизмов защиты данных.

1.3.2. Принципы организации СОБД и требования к СОБД

Организация СОБД осуществляется на основе следующих фундаментальных принципов (рис. 1.5.).

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

Принцип специализиpованности включает три аспекта:

– надежные механизмы защиты данных могут быть разработаны лишь профессиональными специалистами;

– осуществление непрерывного процесса обеспечения безопасности данных возможно лишь на базе средств и механизмов защиты промышленного производства;

– обеспечивать эффективное функционирование СОБД должны специалисты по защите данных.

Принцип нефоpмальности означает, что методология проектирования СОБД и отдельных механизмов защиты в своей основе является неформальной.

Рис. 1.5. Принципы и требования к СОБД

К СОБД и ее элементам предъявляются следующие основные требования:

1. Адекватность. СОБД должна надежно обеспечить безопасность данных в ИВС.

2. Экономичность. Создание и эксплуатация СОБД должны осуществляться с минимальным расходом материальных и сетевых ресурсов.

3. Удобство для пользователей (психологическая приемлемость). Механизмы защиты данных не должны создавать дополнительные трудности законным пользователям сети.

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

5. Минимизация привилегий. Каждому пользователю предоставляются только действительно необходимые ему права по доступу к ресурсам (данным) системы.

6. Полное посредничество (полнота контроля) должно осуществляться при каждом обращении к каждому защищаемому ресурсу (данным).

7. Распределение полномочий. Каждая важная операция должна разрешаться при наличии, как минимум, двух условий.

8. Минимум общего механизма. Использование многими пользователями одного механизма защиты может привести к раскрытию механизма.

9. Наказуемость нарушений. В СОБД должны быть предусмотрены «наказания» за нарушения (например, блокировка терминала при вводе пароля больше разрешенного числа раз).

1.3.3. Основные подсистемы, входящие в состав СОБД ИВС

Подсистема доступа объединяет механизмы управления доступом и предназначена для предотвращения несанкционированного использования ресурсов сети.

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

Подсистема аутентификации объединяет различные механизмы аутентификации и обеспечивает подтверждение подлинности пользователей и элементов ИВС.

В подсистему обеспечения безопасности данных в БД входят механизмы доступа к данным и механизмы поддержания целостности данных в БД.

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

Подсистема управления защитой данных выполняет функции обнаружения и компенсации последствий нарушения функционирования СОБД, а также координации функционирования подсистем и элементов СОБД.


2. МЕТОДЫ И СРЕДСТВА ЗАЩИТЫ ДАННЫХ

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

2.1. Основные методы защиты данных

Управление представляет собой регулирование использования всех ресурсов системы в рамках установленного технологического цикла обработки и передачи данных, где в качестве ресурсов рассматриваются технические средства, ОС, программы, БД, элементы данных и т. п. Управление защитой данных реализует процесс целенаправленного воздействия подсистемы управления СОБД на средства и механизмы защиты данных и компоненты ИВС с целью обеспечения безопасности данных.

Препятствия физически преграждают нарушителю путь к защищаемым данным.

Маскировка представляет собой метод защиты данных путем их криптографического закрытия.

Регламентация заключается в разработке и реализации в процессе функционирования ИВС комплексов мероприятий, создающих такие условия технологического цикла обработки данных, при которых минимизируется риск НСД к данным. Регламентация охватывает как структурное построение ИВС, так и технологию обработки данных, организацию работы пользователей и персонала сети.

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

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

На основе перечисленных методов создаются средства защиты данных.

2.2 Классификация средств защиты данных

Классификация средств защиты данных приведена на рис. 2.1.

Рис. 2.1. Классификация средств защиты данных

2.2.1. Формальные средства защиты

Формальными называются такие средства защиты, которые выполняют свои функции по заранее установленным процедурам без вмешательства человека.

К формальным средствам защиты относятся технические и программные средства.

К техническим средствам защиты относятся все устройства, которые предназначены для защиты данных. В свою очередь, технические средства защиты можно разделить на физические и аппаратные.

Физическими называются средства защиты, которые создают физические препятствия на пути к защищаемым данным и не входят в состав аппаратуры ИВС, а аппаратными  средства защиты данных, непосредственно входящие в состав аппаратуры ИВС.

Программными называются средства защиты данных, функционирующие в составе программного обеспечения ИВС.

Отдельную группу формальных средств составляют криптографические средства, которые реализуются в виде программных, аппаратных и программно-аппаратных средств защиты.

2.2.2. Физические средства защиты

Физические средства защиты выполняют следующие основные функции:

– охрана территории и зданий;

– охрана внутренних помещений;

– охрана оборудования и наблюдение за ним;

– контроль доступа в защищаемые зоны;

– нейтрализация излучений и наводок;

– создание препятствий визуальному наблюдению и подслушиванию;

– противопожарная защита;

– блокировка действий нарушителя и т. п.

Для предотвращения проникновения нарушителей на охраняемые объекты применяются следующие технические устройства:

  •  сверхвысокочастотные (СВЧ), ультразвуковые (УЗ) и инфракрасные (ИК) системы;
  •  лазерные и оптические системы;
  •  телевизионные (ТВ) системы;
  •  кабельные системы;
  •  системы защиты окон и дверей.

СВЧ, УЗ и ИК системы предназначены для обнаружения движущихся объектов, определения их размеров, скорости и направления перемещения. Принцип их действия основан на изменении частоты отраженного от движущегося объекта сигнала.

ИК системы бывают активными и пассивными. Активные системы содержат источник излучения и его приемник. Функционирование пассивных систем основано на фиксации теплового излучения ИК-датчиками.

УЗ и ИК системы применяются, главным образом, внутри помещений. СВЧ системы могут применяться как внутри помещений, так и для охраны зданий и территории.

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

Телевизионные системы применяются для наблюдения как за территорией охраняемого объекта, так и за обстановкой внутри помещений.

Кабельные системы используются для охраны небольших объектов, обычно временно находящихся на территории, а также оборудования внутри помещений. Они состоят из заглубленного кабеля, окружающего защищаемый объект и излучающего радиоволны. Приемник излучения реагирует на изменение поля, создаваемого нарушителем.

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

Регулирование доступа на территорию и в помещения может осуществляться и с помощью специальных замков, в том числе замков с управлением от микропроцессоров и ЭВМ и с содержанием микропроцессоров.

Для защиты от перехвата электромагнитного излучения применяются экранирование и зашумляющие генераторы излучений.

2.2.3. Аппаратные средства защиты

Наименее надежными компонентами вычислительной системы являются жесткий диск и источник питания.

Отказоустойчивые дисковые массивы. Проблема повышения отказоустойчивости систем чаще всего решается с помощью массивов RAID (Redundant Array of Inexpensive Disks) избыточный массив недорогих дисков.

Технология RAID может быть построена на аппаратной или программной реализации.

По определению RAID имеет три признака:

1. Набор дисков, доступных пользователям как один или несколько логических дисков.

2. Данные распределяются по набору дисков определенным способом.

3. Добавляется избыточная емкость или возможность восстановления данных в случае дисковых отказов.

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

Небольшие недорогие диски, используемые в персональных компьютерах и микроЭВМ, ниже по эффективности и емкости в сравнении с большими дорогими дисками универсальных ЭВМ и суперЭВМ. Они уступают последним по четырем важнейшим показателям:

  •  возможность ввода / вывода (I/O);
    •  стоимость за мегабайт;
    •  среднее время безотказной работы (MTBF – mean time before failure);
    •  соотношение «стоимость / эффективность» SCSI-контроллера на диск.

Совместное использование недорогих дисков в массиве дает очевидные преимущества:

  •  высокую скорость пересылки;
    •  увеличение дисковой емкости;
    •  высокую скорость ввода-вывода.

Однако практические результаты и, следовательно, преимущества полученных решений в большой степени зависят от используемых уровней RAID, определяющих различные степени быстродействия, надежности и стоимости массивов. Выделяют восемь уровней RAID (0-7), наибольшее распространение получили уровни 1, 3 и 5.

RAID-0 расщепление данных без проверки четности (DSA). Производится запись данных в виде отдельных блоков поочередно на каждый диск массива без контроля четности. Распределение данных по дискам позволяет производить операции считывания и записи одновременно, что значительно повышает производительность. Однако, если одно устройство отказывает, вся дисковая система разрушается.

RAID-1 зеркально отраженные диски (MDA). Основан на принципе полного дублирования данных (создании зеркальной копии диска). Все изменения на логическом разделе одного из дисков немедленно отражаются на точно таком же логическом разделе другого диска. Если операция чтения или записи не проходит на одном из дисков, то система использует второй. Контроль четности отсутствует. Обеспечивается высокий уровень готовности данных и высокая производительность при операциях чтения. Создание зеркального диска приводит к 100-процентному перерасходу дискового пространства, что повышает стоимость системы, однако, RAID-1 можно создать всего на двух дисках, а для матриц более высокого уровня нужно не менее трех.

RAID-3 параллельный дисковый массив (PDA). Производится расщепление данных на массиве дисков на битовом или байтовом уровне с выделением одного диска для контроля четности. Информация о четности позволяет восстановить потерянные блоки при меньшей избыточности по сравнению с RAID-1. Обладает высокой производительностью при больших размерах запросов ввода/вывода. Недостатками являются: возможность одновременного выполнения только одной операции ввода/вывода; высокие требования к синхронизации дисков; низкие показатели в средах обработки транзакций.

RAID-5 массив независимых дисков (IDA). Осуществляется запись данных и контрольных сумм по всем дискам массива. Отсутствует выделенный диск с данными о четности. Обладает высокой производительностью для операций с интенсивным чтением.

Надежность RAID-массива зависит от его организации. Время наработки на отказ, по данным DEC, составляет: для RAID-0 0.0375; RAID-1 117.0; RAID-3 47.0; RAID-5 47.0 млн. час.

Помимо рассмотренных аппаратных реализаций RAID-массивов существуют и программные способы организации дисковых систем. Технология RAID может быть интегрирована в операционную систему (например NetWare, Windows NT-based). В данных системах поддерживаются RAID-0 (распределение одного логического диска по нескольким физическим) и RAID-1 (зеркальное отражение дисков). В большинстве задач для небольших массивов (4 Гбайт) это является оправданным решением с точки зрения экономической эффективности, производительности и надежности.

Общим недостатком для программных реализаций RAID является существенная загрузка процессора компьютера.

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

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

ИБП можно разделить на три группы:

  •  Standby (Off-Line);
    •  Line-interactive;
    •  On-Line.

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

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

Эти ИБП пользуются наибольшей популярностью как устройства с наилучшим соотношением между ценой и набором характеристик.

ИБП On-Line наиболее сложные приборы. Обладают идеальной формой выходного напряжения и нулевым временем переключения на батарею. Применяются для наиболее ответственных электронных и компьютерных систем: файл-серверов, офисных АТС, медицинских приборов, охранных систем, измерительных датчиков и т. д.

Среди основных причин, связанных с нарушением энергоснабжения можно выделить высоковольтные выбросы (Spikes), высокочастотный шум (Line Noise), подсадку напряжения (Brownout) и исчезновение напряжения (Blackout).

1. Высоковольтные выбросы (Spikes). Скачки проявляются в двух формах: пиковые выбросы, когда напряжение резко увеличивается в течение короткого промежутка времени (менее 0,008 сек.), и продолжительные повышения напряжения. И в том и в другом случае сила электрического тока заметно увеличивается, что может привести к перегреву компьютера, рассчитанного на более низкое напряжение.

Пиковые выбросы, вызванные зарядом молнии, могут попасть в оборудование через шнур питания или модемное соединение. Продолжительные скачки происходят чаще, зачастую в результате выключения находящегося поблизости кондиционера и других бытовых приборов. Блок питания сетевых компонентов может, как правило, гасить небольшие скачки (более 300 В), однако пиковые выбросы и продолжительные скачки требуют более совершенной защиты. Проблема решается путем подавления скачков.

Защита компьютеров и других устройств от высоковольтных выбросов производится путем ограничения напряжения до приемлемого уровня. Блоки подавления скачков напряжения, имеющиеся в составе большинства ИБП, оцениваются с точки зрения того максимального напряжения, которое они пропускают к компьютеру: чем меньше уровень пропускаемого напряжения, тем лучше прибор. Возможные отрицательные последствия скачков: сброс оперативной памяти, возникновение ошибок, выход из строя аппаратуры, мерцание освещения.

2. Высокочастотный шум (Line Noise). Это нежелательные электрические импульсы, накладывающиеся на переменный ток или волны напряжения правильной формы. График переменного тока, имеющий вид синусоиды с частотой 50 Гц и амплитудой 220 В, сам по себе гладкий, однако шум линии приводит к тому, что форма сигнала «обрастает» зазубринами. Как правило, основными причинами шума линии являются электромагнитные и радиопомехи. Вещание близлежащей радиостанции способно вызвать интерференцию радиоволн и переменного тока, включение флуоресцентных ламп привести к интерференции электрического тока и электромагнитных волн. Шум линии часто приводит к появлению на мониторах компьютеров статического электричества, возникновению на экране ряби.

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

Возможные отрицательные последствия шума линии: сброс оперативной памяти, возникновение ошибок, «зависание» компьютерных систем, выход из строя накопителей.

3. Подсадка напряжения (Brownout). Падение напряжения до неприемлемого уровня, заставляющее источники питания компенсировать; такое уменьшение возникает обычно из-за роста потребления электроэнергии в определенный момент времени (например, включение кондиционеров в жаркое время или обогревательных приборов – в холодное) при ограниченном питании на входе. Как правило, большое количество работающих кондиционеров, персональных компьютеров и сетевого оборудования обусловливает падение напряжения, сохраняющееся достаточно долго для того, чтобы появились серьезные проблемы.

Таблица 2.1

Свойства ИБП

Высоковольтные

выбросы (Spikes)

Высокочастотный шум (Line Noise)

Подсадка

напряжения (Brownout)

Исчезновение

напряжения

(Blackout)

Сетевые фильтры

Частично

Нет

Нет

Нет

Стабилизаторы

Да

Частично

Частично

Нет

ИБП Off-Line

Нет

Частично

Частично

Да

ИБП Line-Interactive

Нет

Частично

Частично

Да

ИБП On-Line

Да

Да

Да

Да

Регуляторы напряжения, являющиеся стандартными компонентами ИБП, ослабляют подъемы и спады напряжения путем стабилизации его колебаний. Главная задача регуляторов поддержка напряжения на постоянном уровне.

Возможные отрицательные последствия спада и повышения напряжения: потеря данных, выход из строя аппаратуры.

4. Исчезновение напряжения (Blackout). Возможные отрицательные последствия: потеря файлов, потеря данных, выход из строя аппаратуры.

При использовании ИБП, в случае прекращения электропитания включается аккумулятор ИБП, начинающий снабжать энергией защищаемое устройство.

Основной проблемой при выборе ИБП обычно становится определение необходимой мощности и времени работы в резервном режиме, а также время переключения и конструкция ИБП.

Требуемая мощность  параметр, выражаемый в вольт-амперах (VA), определяется как сумма мощностей всех устройств, питающихся от ИБП. Потребляемая мощность обычно указывается в ваттах (W) или в вольт-амперах (VA). Может быть указан максимальный потребляемый ток в амперах (А). VA=220*A, VA=1,4*W. Не стоит нагружать ИБП более чем на 70-75% его максимальной мощности. Для питания обычного настольного компьютера достаточно ИБП мощностью 400-600 ВА.

2.3. Криптографические методы и средства защиты данных

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

В отношении криптоалгоритмов существует несколько схем классификации, каждая из которых основана на группе характерных признаков. Таким образом, один и тот же алгоритм «проходит» сразу по нескольким схемам, оказываясь в каждой из них в какой-либо из подгрупп.

Основной схемой классификации всех криптоалгоритмов является следующая:

1. Тайнопись. Отправитель и получатель производят над сообщением преобразования, известные только им двоим. Сторонним лицам неизвестен сам алгоритм шифрования. Некоторые специалисты считают, что тайнопись не является криптографией вообще, и автор находит это совершенно справедливым.

2. Криптография с ключом. Алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от некоторого параметра – «ключа», которым обладают только отправитель и получатель.

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

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

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

В зависимости от характера воздействий, производимых над данными, алгоритмы подразделяются на:

– перестановочные. Блоки информации (байты, биты, более крупные единицы) не изменяются сами по себе, но изменяется их порядок следования, что делает информацию недоступной стороннему наблюдателю;

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

Заметим, что любые криптографические преобразования не увеличивают объем информации, а лишь изменяют ее представление. Поэтому, если программа шифрования значительно (более, чем на длину заголовка) увеличивает объем выходного файла, то в ее основе лежит неоптимальный, а возможно и вообще некорректный криптоалгоритм. Уменьшение объема закодированного файла возможно только при наличии встроенного алгоритма архивации в криптосистеме и при условии сжимаемости информации (так, например, архивы, музыкальные файлы формата MP3, видеоизображения формата JPEG сжиматься более чем, на 2-4 %, не будут).

В зависимости от размера блока информации криптоалгоритмы делятся на:

– потоковые шифры. Единицей кодирования является один бит. Результат кодирования не зависит от прошедшего ранее входного потока. Схема применяется в системах передачи потоков информации, т. е. в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Наиболее распространенными представителями поточных шифров являются скремблеры;

– блочные шифры. Единицей кодирования является блок из нескольких байтов (в настоящее время 4-32). Результат кодирования зависит от всех исходных байтов этого блока. Схема применяется при пакетной передаче информации и кодировании файлов.

2.3.1. Симметричные криптоалгоритмы

2.3.1.1. Скремблеры

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

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

Генерация кодирующей последовательности бит производится циклически из небольшого начального объема информации ключа по следующему алгоритму. Из текущего набора бит выбираются значения определенных разрядов и складываются по XOR между собой. Все разряды сдвигаются на 1 бит, а только что полученное значение («0» или «1») помещается в освободившийся самый младший разряд. Значение, находившееся в самом старшем разряде до сдвига, добавляется в кодирующую последовательность, становясь очередным ее битом (см. рис. 2.2).

Из теории передачи данных криптография заимствовала для записи подобных схем двоичную систему записи. По ней изображенный на рисунке скремблер записывается комбинацией «100112» единицы соответствуют разрядам, с которых снимаются биты для формирования обратной связи.

Рис. 2.2. Принцип работы скремблера

Рассмотрим пример кодирования информационной последовательности 0101112 скремблером 1012 с начальным ключом 1102.

  и т. д….

Рис. 2.3. Сдвиг битов в примере работы скремблера

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

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

На практике для этих целей обычно применяется комбинация двух методов:

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

б) использование высокоточных генераторов временных импульсов, что позволяет в моменты потери синхронизации производить декодирование принимаемых битов информации «по памяти» без синхронизации.

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

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

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

Возможны различные типы графов состояния скремблера. На рис. 2 приведены примерные варианты для 3-разрядного скремблера.

Рис. 2.4. Графы состояний скремблера

В случае «а» кроме всегда присутствующего цикла «000»>>«000» мы видим еще два цикла с 3-мя состояниями и 4-мя. В случае «б» мы видим цепочку, которая сходится к циклу из 3-х состояний и уже никогда оттуда не выходит. И наконец, в случае «в» все возможные состояния кроме нулевого, объединены в один замкнутый цикл. Очевидно, что именно в этом случае, когда все 2N-1 состояний, системы образуют цикл, период повторения выходных комбинаций максимален, а корреляция между длиной цикла и начальным состоянием скремблера (ключом), которая привела бы к появлению более слабых ключей, отсутствует.

Cледствием одной из теорем доказывается (в терминах применительно к скремблированию), что для скремблера любой разрядности N всегда существует такой выбор охватываемых обратной связью разрядов, что генерируемая ими последовательность бит будет иметь период, равный 2N-1 битам. Так, например, в 8-битном скремблере, при охвате 0-го, 1-го, 6-го и 7-го разрядов действительно за время генерации 255 бит последовательно проходят все числа от 1 до 255, не повторяясь ни разу.

Схемы с выбранными по данному закону обратными связями называются генераторами последовательностей наибольшей длины (ПНД), и именно они используются в скремблирующей аппаратуре. Из множества генераторов ПНД заданной разрядности во времена, когда они реализовывались на электрической или минимальной электронной базе, выбирались те, у которых число разрядов, участвующих в создании очередного бита, было минимальным. Обычно генератора ПНД удавалось достичь за 3 или 4 связи. Сама же разрядность скремблеров превышала 30 бит, что давало возможность передавать до 240 бит = 100 Мбайт информации без опасения начала повторения кодирующей последовательности.

ПНД неразрывно связаны с математической теорией неприводимых полиномов. Оказывается, достаточно чтобы полином степени N не был представим по модулю 2 в виде произведения никаких других полиномов, для того, чтобы скремблер, построенный на его основе, создавал ПНД. Например, единственным неприводимым полиномом степени 3 является x3+x+1, в двоичном виде он записывается как 10112 (единицы соответствуют присутствующим разрядам).

Скремблеры на основе неприводимых полиномов образуются отбрасыванием самого старшего разряда (он всегда присутствует, а следовательно, несет информацию только о степени полинома). Так, на основе указанного полинома, мы можем создать скремблер 0112 с периодом зацикливания 7(=23-1). Естественно, что на практике применяются полиномы значительно более высоких порядков, а таблицы неприводимых полиномов любых порядков можно всегда найти в специализированных математических справочниках. Существенным недостатком скремблирующих алгоритмов является их нестойкость к фальсификации. Подробнее данная проблема рассмотрена в материалах следующей лекции, применительно к созданию целых криптосистем.

2.3.1.2. Блочные шифры

Общие сведения о блочных шифрах. Характерной особенностью блочных криптоалгоритмов является тот факт, что в ходе своей работы они производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом. Таким образом, схему работы блочного шифра можно описать функциями Z = EnCrypt (X, Key) и X = DeCrypt (Z, Key)

Ключ Key является параметром блочного криптоалгоритма и представляет собой некоторый блок двоичной информации фиксированного размера. Исходный (X) и зашифрованный (Z) блоки данных также имеют фиксированную разрядность, равную между собой, но необязательно равную длине ключа.

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

Следующие разработки всемирно признаны стойкими алгоритмами.

Таблица 2.2.

Стойкие криптоалгоритмы

Название

алгоритма

Автор

Размер блока

Длина ключа

IDEA

Xuejia Lia

James Massey

64 бита

128 бит

CAST128

64 бита

128 бит

BlowFish

Bruce Schneier

64 бита

128 – 448 бит

ГОСТ 28147-89

«Секретный» НИИ

64 бита

256 бит

TwoFish

Bruce Schneier

128 бит

128 – 256 бит

MARS

Корпорация IBM

128 бит

128 – 1048 бит

Криптоалгоритм именуется идеально стойким, если прочесть зашифрованный блок данных можно, только перебрав все возможные ключи, до тех пор, пока сообщение не окажется осмысленным. Так как по теории вероятности искомый ключ будет найден с вероятностью 1/2 после перебора половины всех ключей, то на взлом идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем 2N-1 проверок.

Таким образом, в общем случае стойкость блочного шифра зависит только от длины ключа и возрастает экспоненциально с ее ростом. Даже предположив, что перебор ключей производится на специально созданной многопроцессорной системе, в которой благодаря диагональному параллелизму на проверку 1 ключа уходит только 1 такт, то на взлом 128 битного ключа современной технике потребуется не менее 1021 лет. Естественно, все сказанное относится только к идеально стойким шифрам, которыми, например, с большой долей уверенности являются приведенные в таблице 2.2. алгоритмы.

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

Таким образом, на функцию стойкого блочного шифра Z = EnCrypt(X,Key) накладываются следующие условия:

1. Функция EnCrypt должна быть обратимой.

2. Не должно существовать иных методов прочтения сообщения X по известному блоку Z, кроме как полным перебором ключей Key.

3. Не должно существовать иных методов определения, каким ключом Key было произведено преобразование известного сообщения X в сообщение Z, кроме как полным перебором ключей.

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

Таблица 2.3

Функции, используемые в криптоалгоритмах

Биективные математические функции

Сложение

X' = X + V

Исключающее ИЛИ

X' = X XOR V

Умножение по модулю 2N+1

X' = (X*V) mod (2N + 1)

Умножение по модулю 2N

X' = (X*V) mod (2N)

Битовые сдвиги

Арифметический сдвиг влево

X' = X SHL V

Арифметический сдвиг вправо

X' = X SHR V

Циклический сдвиг влево

X' = X ROL V

Циклический сдвиг вправо

X' = X ROR V

Табличные подстановки

S-box (англ. substitute)

X' = Table[X, V]

Все действия, производимые над данными блочным криптоалгоритмом, основаны на том факте, что преобразуемый блок может быть представлен в виде целого неотрицательного числа из диапазона, соответствующего его разрядности. Так, например, 32-битный блок данных можно интерпретировать как число из диапазона 0..4'294'967'295. Кроме того, блок, разрядность которого обычно является «степенью двойки», можно трактовать как несколько независимых неотрицательных чисел из меньшего диапазона (рассмотренный выше 32-битный блок можно также представить в виде 2 независимых чисел из диапазона 0..65535 или в виде 4 независимых чисел из диапазона 0..255).

Над этими числами блочным криптоалгоритмом и производятся по определенной схеме (табл. 2.3) следующие действия (слева даны условные обозначения этих операций на графических схемах алгоритмов).

В качестве параметра V для любого из этих преобразований может использоваться:

1. Фиксированное число (например, X'=X+125).

2. Число, получаемое из ключа (например, X'=X+F(Key)).

3. Число, получаемое из независимой части блока (например, X2'=X2+F(X1)) .

Последний вариант используется в схеме, названной по имени ее создателя сетью Фейштеля (нем. Feistel).

Последовательность выполняемых над блоком операций, комбинации перечисленных выше вариантов V и сами функции F и составляют «ноу-хау» каждого конкретного блочного криптоалгоритма. Размер блоков и длина ключа современных (1999 г. ) алгоритмов были нами рассмотрены ранее. Один-два раза в год исследовательские центры мира публикуют очередной блочный шифр, который под яростной атакой криптоаналитиков либо приобретает за несколько лет статус стойкого криптоалгоритма, либо (что происходит неизмеримо чаще) бесславно уходит в историю криптографии.

Характерным признаком блочных алгоритмов является многократное и косвенное использование материала ключа. Это диктуется, в первую очередь, требованием невозможности обратного декодирования в отношении ключа при известных исходном и зашифрованном текстах. Для решения этой задачи в приведенных выше преобразованиях чаще всего используется не само значение ключа или его части, а некоторая, иногда необратимая (небиективная) функция от материала ключа. Более того, в подобных преобразованиях один и тот же блок или элемент ключа используется многократно. Это позволяет при выполнении условия обратимости функции относительно величины X сделать функцию необратимой относительно ключа Key.

Рис. 2.5.Классическая сеть Фейштеля

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

Необходимо отметить, что данная операция никоим образом не изменяет ни длину ключа, ни криптостойкость алгоритма в целом. Здесь происходит лишь оптимизация скорости вычислений путем кеширования (англ. caching) промежуточных результатов. Описанные действия встречаются практически во многих блочных криптоалгоритмах и носят название расширение ключа (англ. key scheduling).

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

Классическая сеть Фейштеля имеет структуру, представленную на рис. 2.5.

Независимые потоки информации, порожденные из исходного блока, называются ветвями сети. В классической схеме их две. Величины Vi именуются параметрами сети, обычно это функции от материала ключа. Функция F называется образующей. Действие, состоящее из однократного вычисления образующей функции и последующего наложения ее результата на другую ветвь с обменом их местами, называется циклом или раундом (англ. round) сети Фейштеля. Оптимальное число раундов K от 8 до 32.

Важно то, что увеличение количества раундов значительно увеличивает криптоскойстость любого блочного шифра к криптоанализу. Возможно, эта особенность и повлияла на столь активное распространение сети Фейштеля ведь при обнаружении, скажем, какого-либо слабого места в алгоритме, почти всегда достаточно увеличить количество раундов на 4-8, не переписывая сам алгоритм. Часто количество раундов не фиксируется разработчиками алгоритма, а лишь указываются разумные пределы (обязательно нижний, и не всегда верхний) этого параметра.

Сразу же возникает вопрос: является ли данная схема обратимой? Очевидно, да. Сеть Фейштеля обладает тем свойством, что даже если в качестве образующей функции F будет использовано необратимое преобразование, то и в этом случае вся цепочка будет восстановима. Это происходит вследствие того, что для обратного преобразования сети Фейштеля не нужно вычислять функцию F-1.

Более того, как нетрудно заметить, сеть Фейштеля симметрична. Использование операции XOR, обратимой своим же повтором, и инверсия последнего обмена ветвей делают возможным раскодирование блока той же сетью Фейштеля, но с инверсным порядком параметров Vi. Заметим, что для обратимости сети Фейштеля не имеет значения, является ли число раундов четным или нечетным числом. В большинстве реализаций схемы, в которых оба вышеперечисленные условия (операция XOR и уничтожение последнего обмена) сохранены, прямое и обратное преобразования производятся одной и той же процедурой, которой в качестве параметра передается вектор величин Vi либо в исходном, либо в инверсном порядке.

Рис.2.6. Модификации сети Фейштеля

Модификацию сети Фейштеля для большего числа ветвей применяют гораздо чаще, чем классическую схему. Это, в первую очередь, связано с тем, что при больших размерах кодируемых блоков (128 и более бит) становится неудобно работать с математическими функциями по модулю 64 и выше. Как известно, основные единицы информации обрабатываемые процессорами на сегодняшний день – это байт и двойное машинное слово 32 бита. Поэтому все чаще и чаще в блочных криптоалгоритмах встречается сеть Фейштеля с 4-мя ветвями. Самый простой принцип ее модификации изображен на рис. 2.6 а. Для более быстрого перемешивания информации между ветвями (а это основная проблема сети Фейштеля с большим количеством ветвей) применяются две модифицированные схемы, называемые "type-2" и "type-3". Они изображены на рисунках 2.6 б и 2.6 в.

Сеть Фейштеля надежно зарекомендовала себя как криптостойкая схема произведения преобразований, и ее можно найти практически в любом современном блочном шифре. Незначительные модификации касаются обычно дополнительных начальных и оконечных преобразований (англоязычный термин whitening) над шифруемым блоком. Подобные преобразования, выполняемые обычно также либо «исключающим ИЛИ» либо сложением, имеют целью повысить начальную рандомизацию входного текста. Таким образом, криптостойкость блочного шифра, использующего сеть Фейштеля, определяется на 95% функцией F и правилом вычисления Vi из ключа. Эти функции и являются объектом все новых и новых исследований специалистов в области криптографии.

2.3.1.3. Общие сведения о конкурсе AES

В 1980-х г. в США был принят стандарт симметричного криптоалгоритма для внутреннего применения DES (Data Encryption Standard), который получил достаточно широкое распространение в свое время. Однако на текущий момент этот стандарт полностью неприемлем для использования по двум причинам:

– основной длина его ключа составляет 56 бит, что чрезвычайно мало на современном этапе развития ЭВМ;

– второстепенной при разработке алгоритм был ориентирован на аппаратную реализацию, то есть содержал операции, выполняемые на микропроцессорах за неприемлимо большое время (например, такие как перестановка бит внутри машинного слова по определенной схеме).

Все это сподвигло Американский институт стандартизации NIST (National Institute of Standards & Technology) на объявление в 1997 г. конкурса на новый стандарт симметричного криптоалгоритма. На сей раз уже были учтены основные промахи шифра-предшественника, а к разработке были подключены самые крупные центры по криптологии со всего мира. В результате, победитель этого соревнования, названного AES (Advanced Encryption Standard), станет де-факто мировым криптостандартом на ближайшие 10-20 лет.

Требования, предъявленные к кандидитам на AES в 1998 г., были предельно просты:

– алгоритм должен быть симметричным;

– алгоритм должен быть блочным шифром;

– алгоритм должен иметь длину блока 128 бит и поддерживать три длины ключа : 128, 192 и 256 бит;

Таблица 2.4

Финалисты конкурса AES

Алгоритм

Создатель

Страна

Быстродействие
(asm, 200МГц)

MARS

IBM

США

8 Мбайт/с

RC6

R.Rivest & Co

США

12 Мбайт/с

Rijndael

V.Rijmen

& J.Daemen

Бельгия

7 Мбайт/с

Serpent

Университеты

Израиль, Великобритания, Норвегия

2 Мбайт/с

TwoFish

B.Schneier & Co

США

11 Мбайт/с

Дополнительно кандидатам рекомендовалось:

– использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах);

– ориентироваться на 32-разрядные процессоры;

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

На первом этапе в оргкомитет соревнования поступило 15 заявок из совершенно разных уголков мира. В течение 2 лет специалисты комитета, исследуя самостоятельно и изучая публикации других исследователей, выбрали 5 лучших представителей, прошедших в «финал» соревнования (табл. 2.4).

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

2 октября 2000 г. NIST объявил о своем выборе победителем конкурса стал бельгийский алгоритм RIJNDAEL. С этого момента с алгоритма-победителя сняты все патентные ограничения его можно будет использовать в любой криптопрограмме без отчисления каких-либо средств создателю.

2.3.1.4. Симметричные криптосистемы

Функции криптосистем. Все исследования, которые мы проводили ранее, касались только криптоалгоритмов, то есть методов преобразования небольшого блока данных (от 4 до 32 байт) в закодированный вид в зависимости от заданного двоичного ключа. Криптоалгоритмы несомненно являются «сердцем» криптографических систем, но, как мы сейчас увидим, их непосредственное применение без каких-либо модификаций для кодирования больших объемов данных на самом деле не очень приемлимо.

Все недостатки непосредственного применения криптоалгоритмов устраняются в криптосистемах. Криптосистема это завершенная комплексная модель, способная производить двусторонние криптопреобразования над данными произвольного объема и подтверждать время отправки сообщения, обладающая механизмом преобразования паролей и ключей и системой транспортного кодирования. Таким образом, криптосистема выполняет три основные функции:

1. Усиление защищенности данных.

2. Облегчение работы с криптоалгоритмом со стороны человека.

3. Обеспечение совместимости потока данных с другим программным обеспечением.

Конкретная программная реализация криптосистемы называется криптопакетом.

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

Первый вопрос:

Что можно сделать, если мы хотим зашифровать 24 байта текста, если используется криптоалгоритм с длиной блока 8 байт?

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

Второй вопрос:

А что если данных не 24, а 21 байт.

Не шифровать последние 5 байт или чем-то заполнять еще 3 байта, а потом при дешифровании их выкидывать.

– Первый вариант вообще никуда не годится, а второй применяется, но чем заполнять ?

Для решения этих проблем и были введены в криптосистемы алгоритмы создания цепочек (англ. chaining modes). Самый простой метод мы уже в принципе описали. Это метод ECB (Electronic Code Book). Шифруемый файл временно разделяется на блоки, равные блокам алгоритма, каждый из них шифруется независимо, а затем из зашифрованных пакетов данных компонуется в той же последовательности файл, который отныне надежно защищен криптоалгоритмом. Название алгоритм получил из-за того, что в силу своей простоты он широко применялся в простых портативных устройствах для шифрования электронных шифрокнижках. Схема данного метода приведена на рис. 2.7.

 

Рис. 2.7. Метод ЕСВ

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

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

Все схемы создания цепочек основаны на идее зависимости результирующего зашифровываемого блока от предыдущих либо от позиции его в исходном файле. Это достигается с помощью блока «памяти» пакета информации длины, равной длине блока алгоритма. Блок памяти (к нему применяют термин IV англ. Initial Vector) вычисляется по определенному принципу из всех прошедших шифрование блоков, а затем накладывается с помощью какой-либо обратимой функции (обычно XOR) на обрабатываемый текст на одной из стадий шифрования. В процессе раскодирования на приемной стороне операция создания IV повторяется на основе принятого и расшифрованного текста, вследствие чего алгоритмы создания цепочек полностью обратимы.

Рис. 2.8. Метод СВС

Рис. 2.9. Метод CFB

Рис. 2.10

Метод OFB Два наиболее распространенных алгоритма создания цепочек CBC и CFB. Их структура приведена на рис. 2.8 и рис. 2.9. Метод CBC получил название от английской аббревиатуры Cipher Block Chaining объединение в цепочку блоков шифра, а метод CFB от Cipher FeedBack обратная связь по шифроблоку.

Таблица 2.5

Метод

Шифрование блока зависит от

Искажение одного бита при передаче

Кодируется ли некратное блоку число байт без дополнения?

На выход

криптосистемы поступает

ECB

текущего

блока

портит весь

текущий блок

нет

выход

криптоалгоритма

CBC

всех

предыдущих блоков

портит весь текущий и все последующие блоки

нет

выход

криптоалгоритма

CFB

всех предыдущих блоков

портит один бит текущего блока

и все последующие блоки

да

XOR маска

с исходным текстом

OFB

позиции блока в файле

портит только один бит текущего блока

да

XOR маска

с исходным текстом

Еще один метод OFB (англ. Output FeedBack обратная связь по выходу) имеет несколько иную структуру (она изображена на рис. 2.10): в нем значение, накладываемое на шифруемый блок, не зависит от предыдущих блоков, а только от позиции шифруемого блока (в этом смысле он полностью соответствует скремблерам), и из-за этого он не распространяет помехи на последующие блоки. Очевидно, что все алгоритмы создания цепочек однозначно восстановимы. Практические алгоритмы создания и декодирования цепочек будут разработаны на практическом занятии.

Сравним характеристики методов создания цепочек в виде таблицы (табл. 2.5.).

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

В этом случае необходимо введение какой-либо случайной величины в процесс шифрования. Это можно сделать несколькими способами:

– записью в начало файла данных псевдослучайной последовательности байт заранее оговоренной длины с отбрасыванием ее при дешифровании этот метод будет работать только при применении алгоритмов создания цепочек с памятью (CBC,CFB,OFB);

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

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

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

Генераторы случайных и псевдослучайных последовательностей. Самая большая проблема всех методов рандомизации сообщений это порождение действительно случайной последовательности бит. Дело в том, что генераторы случайных последовательностей, используемые для общих целей, например, в языках программирования, являются на самом деле псевдослучайными генераторами. Дело в том, что в принципе существует конечное, а не бесконечное множество состояний ЭВМ, и, как бы сложно не формировалось в алгоритме число, оно все равно имеет относительно немного бит информационной насыщенности.

Давайте рассмотрим проблему создания случайных и псевдослучайных чисел более детально. Наиболее часто в прикладных задачах результат формируют из счетчика тиков системных часов. В этом случае данные о текущем часе несут примерно 16 бит информации, значение счетчика тиков еще 16 бит. Это дает нам 32 бита информации как вы помните, на сегодняшний день границей стойкой криптографии является значение в 40 бит, при реальных длинах ключей в 128 бит. Естественно, подобного метода крайне недостаточно.

Идем дальше, к 32 битам можно добавить еще 16 бит из сверхбыстрого таймера, работающего на частоте 1,2 МГц в компьютерах архитектуры IBM PC AT и этого еще недостаточно. Кроме того, даже если мы сможем набрать длину ключа в 128 бит (что очень сомнительно), она будет нести псевдослучайный характер, поскольку основана на состоянии только лишь данной ЭВМ на момент начала шифрования. Источниками по-настоящему случайных величин могут быть только внешние объекты, например, человек.

Два наиболее часто применяемых метода создания случайных последовательностей с помощью человека основаны на вводе с клавиатуры. В обоих случаях пользователя просят, не задумываясь, понабирать на клавиатуре бессмысленные сочетания букв.

По первому методу над самими введенными значениями производятся действия, повышающие случайность выходного потока. Так, например, обязательно удаляются верхние 3 бита введенного ASCII символа, часто удаляются еще один верхний и еще один нижний биты. Затем, объем полученной последовательности уменьшается еще в три раза наложением первого и второго бита на третий операцией XOR. Это, в принципе, генерирует достаточно случайную последовательность бит.

По второму методу на введенные символы алгоритм не обращает никакого внимания, зато конспектирует интервалы времени, через которые произошли нажатия. Запись моментов производится по отсчетам быстрого системного таймера (частота 1,2 МГц) или по внутреннему счетчику процессора, появившемуся в процессорах, начиная с Intel Pentium (частота соответствует частоте процессора). Так как верхние и младшие биты имеют определенную корреляцию между символами (первые из-за физических характеристик человека, вторые из-за особенностей операционной системы), то они отбрасываются (обычно удаляются 0-8 старших бита и 4-10 младших).

Как более редко встречающиеся варианты можно встретить: комбинацию обоих клавиатурных методов и метод, основанный на манипуляторе «мышь» он выделяет случайную информацию из смещений пользователем указателя мыши.

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

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

Зачем же нужна архивация в криптографии? Дело в том, что в современном криптоанализе, то есть науке о противостоянии криптографии, с очевидностью доказано, что вероятность взлома криптосхемы при наличии корреляции между блоками входной информации значительно выше, чем при отсутствии таковой. А алгоритмы сжатия данных по определению и имеют своей основной задачей устранение избыточности, то есть корреляций между данными во входном тексте.

Все алгоритмы сжатия данных качественно делятся на:

– алгоритмы сжатия без потерь, при использовании которых данные на приемной восстанавливаются без малейших изменений;

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

Существует два основных метода архивации без потерь:

  •  алгоритм Хаффмана (англ. Huffman), ориентированный на сжатие последовательностей байт, не связанных между собой;
  •  алгоритм Лемпеля-Зива (англ. Lempel, Ziv), ориентированный на сжатие любых видов текстов, то есть использующий факт неоднократного повторения «слов» последовательностей байт.

Практически все популярные программы архивации без потерь (ARJ, RAR, ZIP и т. п.) используют объединение этих двух методов алгоритм LZH.

Хеширование паролей. От методов, повышающих криптостойкость системы в целом, перейдем к блоку хеширования паролей методу, позволяющему пользователям запоминать не 128 байт, то есть 256 шестнадцатиричных цифр ключа, а некоторое осмысленное выражение, слово или последовательность символов, называющуюся паролем. Действительно, при разработке любого криптоалгоритма следует учитывать, что в половине случаев конечным пользователем системы является человек, а не автоматическая система. Это ставит вопрос о том, удобно, и вообще реально ли человеку запомнить 128-битный ключ (32 шестнадцатиричные цифры). На самом деле предел запоминаемости лежит на границе 8-12 подобных символов, а, следовательно, если мы будем заставлять пользователя оперировать именно ключом, тем самым мы практически вынудим его к записи ключа на каком-либо листке бумаги или электронном носителе, например, в текстовом файле. Это, естественно, резко снижает защищенность системы.

Для решения этой проблемы были разработаны методы, преобразующие произносимую, осмысленную строку произвольной длины пароль в указанный ключ заранее заданной длины. В подавляющем большинстве случаев для этой операции используются так называемые хеш-функции (от англ. hashing мелкая нарезка и перемешивание). Хеш-функцией называется такое математическое или алгоритмическое преобразование заданного блока данных, которое обладает следующими свойствами:

– хеш-функция имеет бесконечную область определения;

– хеш-функция имеет конечную область значений;

– она необратима;

– изменение входного потока информации на один бит меняет около половины всех бит выходного потока, то есть результата хеш-функции.

Эти свойства позволяют подавать на вход хеш-функции пароли, то есть текстовые строки произвольной длины на любом национальном языке и, ограничив область значений функции диапазоном 0..2N-1, где N длина ключа в битах, получать на выходе достаточно равномерно распределенные по области значения блоки информации ключи.

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

Транспортное кодирование. Поскольку системы шифрования данных часто используются для кодирования текстовой информации : переписки, счетов, платежей электронной коммерции, и при этом криптосистема должна быть абсолютно прозрачной для пользователя, то над выходным потоком криптосистемы часто производится транспортное кодирование, то есть дополнительное кодирование (не шифрование !) информации исключительно для обеспечения совместимости с протоколами передачи данных.

Все дело в том, что на выходе криптосистемы байт может принимать все 256 возможных значений, независимо от того, был ли входной поток текстовой информацией или нет. А при передаче почтовых сообщений многие системы ориентированы на то, что допустимые значения байтов текста лежат в более узком диапазоне: все цифры, знаки препинания, алфавит латиницы плюс, возможно, национального языка. Первые 32 символа набора ASCII служат для специальных целей. Для того, чтобы они и некоторые другие служебные символы никогда не появились, в выходном потоке используется транспортное кодирование.

Наиболее простой метод состоит в записи каждого байта двумя шестнадцатиричными цифрами-символами. Так, байт 252 будет записан двумя символами 'FC'; байт с кодом 26, попадающий на специальный символ CTRL-Z, будет записан двумя допустимыми символами '1A'. Но эта схема очень избыточна : в одном байте передается только 4 бита информации.

На самом деле, практически в любой системе коммуникации без проблем можно передавать около 68 символов (латинский алфавит строчный и прописной, цифры и знаки препинания). Из этого следует, что вполне реально создать систему с передачей 6 бит в одном байте (26<68), то есть кодировать 3 байта произвольного содержания 4-мя байтами из исключительно разрешенных (так называемых печатных) символов. Подобная система была разработана и стандартизирована на уровне протоколов сети Интернет это система Base 64 (стандарт RFC1251).

Процесс кодирования преобразует 4 входных символа в виде 24-битной группы, обрабатывая их слева направо. Эти группы затем рассматриваются как 4 соединенные 6-битные группы, каждая из которых транслируется в одиночную цифру алфавита Base 64. При кодировании Base 64 входной поток байтов должен быть упорядочен старшими битами вперед.

Каждая 6-битная группа используется как индекс для массива 64-х печатных символов. Символ, на который указывает значение индекса, помещается в выходную строку. Эти символы выбраны так, чтобы быть универсально представимыми и исключают символы, имеющие специальное значение (".", CR, LF).

Выходной поток (закодированные байты) должен иметь длину строк не более 76 символов. Все признаки перевода строки и другие символы, отсутствующие в таблице подстановок, должны быть проигнорированы декодером Base 64. Среди данных в Base 64 символы, не перечисленные в таблице подстановок, переводы строки и т. п. должны говорить об ошибке передачи данных, и, соответственно, программа-декодер должна оповестить пользователя о ней.

Если в хвосте потока кодируемых данных осталось меньше, чем 24 бита, справа добавляются нулевые биты до образования целого числа 6-битных групп. А до конца 24-битной группы может оставаться только от 0 до 3-х недостающих 6-битных групп, вместо каждой из которых ставится символ-заполнитель «=». Поскольку весь входной поток представляет собой целое число 8-битных групп (т. е., просто байтных значений), то возможны лишь следующие случаи:

1. Входной поток оканчивается ровно 24-битной группой (длина файла кратна 3). В таком случае выходной поток будет оканчиваться четырьмя символами Base 64 без каких либо дополнительных символов.

2. «Хвост» входного потока имеет длину 8 бит. Тогда в конце выходного кода будут два символа Base 64, с добавлением двух символов «=».

3. «Хвост» входного потока имеет длину 16 бит. В этом случае в конце выходного будут стоять три символа Base 64 и один символ «=».

Так как символ «=» является хвостовым заполнителем, его появление в теле письма может означать только то, что конец данных достигнут. Но опираться на поиск символа «=» для обнаружения конца файла неверно, так как, если число переданных битов кратно 24, то в выходном файле не появится ни одного символа «=».

2.3.2. Асимметричные криптоалгоритмы

2.3.2.1. Общие сведения об асимметричных

криптоалгоритмах

Симметричные криптосистемы, рассмотренные нами ранее, несмотря на множество преимуществ, обладают одним серьезным недостатком, о котором Вы, наверное, еще не задумывались. Связан он с ситуацией, когда общение между собой производят не три-четыре человека, а сотни и тысячи людей. В этом случае для каждой пары, переписывающейся между собой, необходимо создавать свой секретный симметричный ключ. Это в итоге приводит к существованию в системе из N пользователей N2/2 ключей. А это уже очень «приличное» число. Кроме того, при нарушении конфиденциальности какой-либо рабочей станции, злоумышленник получает доступ ко всем ключам этого пользователя и может отправлять, якобы от его имени, сообщения всем абонентам, с которыми «жертва» вела переписку.

Своебразным решением этой проблемы явилось появление асимметричной криптографии. Эта область криптографии очень молода по сравнению с другими представителями. Первая схема, имевшая прикладную значимость, была предложена всего около 20 лет назад. Но за это время асимметричная криптография превратилась в одно из основных направлений криптологии и используется в современном мире также часто, как и симметричные схемы.

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

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

В целом система переписки при использовании асимметричного шифрования выглядит следующим образом. Для каждого из N абонентов, ведущих переписку, выбрана своя пара ключей : «открытый» Ej и «закрытый» Dj, где j номер абонента. Все открытые ключи известны всем пользователям сети, каждый закрытый ключ, наоборот, хранится только у того абонента, которому он принадлежит. Если абонент, предположил, под номером 7, собирается передать информацию абоненту под номером 9, он шифрует данные ключом шифрования E9 и отправляет ее абоненту 9.

Несмотря на то, что все пользователи сети знают ключ E9 и, возможно, имеют доступ к каналу, по которому идет зашифрованное послание, они не могут прочесть исходный текст, так как процедура шифрования необратима по открытому ключу. И только абонент №9, получив послание, производит над ним преобразование с помощью известного только ему ключа D9 и восстанавливает текст послания. Заметьте, что если сообщение нужно отправить в противоположном направлении (от абонента 9 к абоненту 7), то нужно будет использовать уже другую пару ключей (для шифрования ключ E7, а для дешифрования ключ D7).

Как мы видим, во-первых, в асимметричных системах количество существующих ключей связано с количеством абонентов линейно (в системе из N пользователей используются 2*N ключей), а не квадратично, как в симметричных системах. Во-вторых, при нарушении конфиденциальности k-ой рабочей станции злоумышленник узнает только ключ Dk : это позволяет ему читать все сообщения, приходящие абоненту k, но не позволяет выдавать себя за него при отправке писем. Кроме этого, асимметричные криптосистемы обладают еще несколькими очень интересными возможностями, которые мы рассмотрим через несколько разделов.

2.3.2.2. Алгоритм RSA

Алгоритм RSA стоит у истоков асимметричной криптографии. Он был предложен тремя исседователями-математиками Рональдом Ривестом (R.Rivest); Ади Шамиром (A.Shamir) и Леонардом Адльманом (L.Adleman) в 1977-78 гг.

Первым этапом любого асимметричного алгоритма является создание пары ключей: открытого и закрытого и распространение открытого ключа «по всему миру». Для алгоритма RSA этап создания ключей состоит из следующих операций:

1. Выбираются два простых (!) числа p и q.

2. Вычисляется их произведение n(=p*q).

3. Выбирается произвольное число e (e<n), такое, что НОД(e(p-1)(q-1))=1, то есть e должно быть взаимно простым с числом (p-1)(q-1).

4. Методом Евклида решается в целых числах (!) уравнение e*d+(p-1)(q-1)*y=1. Здесь неизвестными являются переменные d и y метод Евклида как раз и находит множество пар (d,y), каждая из которых является решением уравнения в целых числах.

5. Два числа (e,n) - публикуются как открытый ключ.

6. Число d хранится в строжайшем секрете это и есть закрытый ключ, который позволит читать все послания, зашифрованные с помощью пары чисел (e,n).

Как же производится собственно шифрование с помощью этих чисел:

1. Отправитель разбивает свое сообщение на блоки, равные k = [log2(n)] бит, где квадратные скобки означают взятие целой части от дробного числа.

2. Подобный блок, как Вы знаете, может быть интерпретирован как число из диапазона (0;2k-1). Для каждого такого числа (назовем его mi) вычисляется выражение c= ((mi)e)mod n. Блоки ci и есть зашифрованное сообщение Их можно спокойно передавать по открытому каналу, поскольку операция возведения в степень по модулю простого числа является необратимой математической задачей. Обратная ей задача носит название «логарифмирование в конечном поле» и является на несколько порядков более сложной задачей. То есть даже если злоумышленник знает числа e и n, то по ci прочесть исходные сообщения mi он не может никак, кроме как полным перебором mi.

А вот на приемной стороне процесс дешифрования все же возможен, и поможет нам в этом хранимое в секрете число d. Достаточно давно была доказана теорема Эйлера, частный случай которой утвержает, что если число n представимо в виде двух простых чисел p и q, то для любого x имеет место равенство (x(p-1)(q-1))mod n = 1. Для дешифрования RSA-сообщений воспользуемся этой формулой. Возведем обе ее части в степень (-y) : (x(-y)(p-1)(q-1))mod n = 1(-y) = 1. Теперь умножим обе ее части на x : (x(-y)(p-1)(q-1)+1)mod n = 1*x = x.

А теперь вспомним, как мы создавали открытый и закрытый ключи. Мы подбирали с помощью алгоритма Евклида d такое, что e*d+(p-1)(q-1)*y=1, то есть e*d=(-y)(p-1)(q-1)+1, а следовательно, в последнем выражении предыдущего абзаца могли заменить показатель степени на число (e*d). Получили (xe*d)mod n = x. То есть для того, чтобы прочесть сообщение ci=((mi)e)mod n, достаточно возвести его в степень d по модулю m : ((ci)d)mod n = ((mi)e*d)mod n = mi.

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

2.3.2.3 Технологии цифровых подписей

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

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

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

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

Представим теперь готовую к передаче хеш-сумму в виде нескольких k-битных блоков hi, где k это размер сообщений по алгоритму RSA в предыдущем параграфе. Вычислим над каждым блоком значение s= ((hi)d)mod n, где d это тот самый закрытый ключ отправителя. Теперь сообщение, состоящее из блоков si можно «спокойно» передавать по сети. Никакой опасности по известным hi и si найти Ваш секретный ключ нет это настолько же сложная задача, как и задача «логарифмирования в конечном поле». А вот любой получатель сообщения может легко прочесть исходное значение hi, выполнив операцию ((si)e)mod n = ((hi)d*e) mod n = hi  Ваш открытый ключ (e,n) есть у всех, а то, что возведение любого числа в степень (e*d) по модулю n дает исходное число, мы доказали в предыдущем параграфе. При этом никто другой, кроме Вас, не зная Вашего закрытого ключа d, не может изменив текст, а следовательно, и хеш-сумму, вычислить такие s'i, чтобы при их возведении в степень e получилась хеш-сумма h'i, совпадающая с хеш-суммой фальсифицированного текста.

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

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

2.3.2.4. Механизм распространения открытых ключей

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

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

– я зашифрую его тем ключом, который думаю, что является Вашим;

– злоумышленник, перехватив сообщение дешифрует его парным закрытым ключом, прочтет и более того;

– может переслать дальше, зашифровав действительно уже Вашим открытым ключом. Точно так же, но по инверсной схеме, он может подменить и мою электронную подпись под моим письмом.

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

Но в принципе, если множество единомышленников объединятся с целью создать надежную сеть распространения ключей, то это будет им вполне по силам. А сама асимметричная криптография поможет им в этом следующим образом: на самом деле никуда ходить с дискетой, получив просьбу от своего знакомого передать открытый ключ мистера V.M.B. мистеру R.H.J., не нужно. Ведь Вы общаетесь с Вашим знакомым, значит, у Вас есть его открытый ключ, полученный каким-либо надежным способом.

Следовательно, он может Вам прислать этот открытый ключ мистера V.M.B., подписав сообщение своей электронной подписью, а от Вас в свою очередь требуется всего лишь отправить этот ключ дальше по цепочке в направлении мистера R.H.J., подписав уже своей электронной подписью. Таким образом, минуя несколько переподписываний, открытый ключ дойдет от места отправления к месту требования по надежному пути. В принципе от Вас даже может не требоваться никаких действий просто поставьте на Вашей ЭВМ специальный сервер распространения ключей, и он все только что описанные действия будет выполнять автоматически.

На сегодняшний день не существует единой сети распространения открытых ключей, и дело, как это часто бывает, заключается в войне стандартов. Развиваются несколько независимых систем, но ни одна из них не получила довлеющего превосходства над другими, которое назывется «мировым стандартом».

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

2.3.2.5. Обмен ключами по алгоритму Диффи-Хеллмана

Данный параграф посвящен еще одному интересному алгоритму, который достаточно трудно классифицировать. Он помогает обмениваться секретным ключом для симметричных криптосистем, но использует метод, очень похожий на асимметричный алгоритм RSA. Алгоритм назван по фамилиям его создателей Диффи (Diffie) и Хеллмана (Hellman).

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

Предположим, что обоим абонентам известны некоторые два числа v и n. Они, впрочем, известны и всем остальным заинтересованным лицам. Например, они могут быть просто фиксированно «зашиты» в программное обеспечение. Для того, чтобы создать неизвестный более никому секретный ключ, оба абонента генерируют случайные или псевдослучайные простые числа: первый абонент число x, второй абонент число y. Затем первый абонент вычисляет значение (vx) mod n и пересылает его второму, а второй вычисляет (vy) mod n и передает первому. Злоумышленник получает оба этих значения, но модифицировать их (вмешаться в процесс передачи) не может. На втором этапе первый абонент на основе имеющегося у него x и полученного по сети (vy) mod n вычисляет значение (((vy) mod n)x)mod n, а второй абонент на основе имеющегося у него y и полученного по сети (vx) mod n вычисляет значение (((vx) mod n)y)mod n. На самом деле операция возведения в степень переносима через операцию взятия модуля по простому числу (коммутативна в конечном поле), то есть у обоих абонентов получилось одно и то же число : ((vx*y) mod n. Его они и могут использовать в качестве секретного ключа, поскольку здесь злоумышленник снова встретится с проблемой RSA при попытке выяснить по перехваченным (vx) mod n и (vy) mod n сами числа x и y это очень и очень ресурсоемкая операция, если числа v,n,x,y выбраны достаточно большими.

Необходимо еще раз отметить, что алгоритм Диффи-Хеллмана работает только на линиях связи, надежно защищенных от модификации. Если бы он был применим на любых открытых каналах, то давно снял бы проблему распространения ключей и, возможно, заменил собой всю асимметричную криптографию. Однако в тех случаях, когда в канале возможна модификация данных, появляется очевидная возможность вклинивания в процесс генерации ключей «злоумышленника-посредника» по той же самой схеме, что и для асимметричной криптографии.

2.4. Аутентификация пользователя

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

Идентификация пользователей заключается в установлении и закреплении за каждым из них уникального идентификатора в виде номера, шифра, кода и т. п. Это связано с тем, что традиционный идентификатор вида «фамилия-имя-отчество» не всегда может быть использован в конкретной системе. Для целей идентификации в различных автоматизированных системах широко применяется, например, так называемый персональный идентификационный номер (PIN  Personal Identification Number), социальный безопасный номер (SSN  Social Security Number), личный номер, код безопасности и т. д. Такие идентификаторы используются при построении различных систем разграничения доступа и защиты информации.

Аутентификация заключается в проверке подлинности пользователя по предъявленному им идентификатору, например, при входе в систему. Такая проверка должна исключать фальсификацию пользователей в системе и их компрометацию. Без проверки подлинности теряется смысл в самой идентификации пользователей и применении средств разграничения доступа, построенных на базе личных идентификаторов. Отсутствие надежных средств проверки подлинности пользователей может существенно затруднить реализацию принципа их персональной ответственности.

В настоящее время в автоматизированных системах используются три основных способа аутентификации пользователей по следующим признакам:

  •  паролю или личному идентифицирующему номеру (пользователь «знает»);
  •  некоторому предмету, который несет пользователь (пользователь «имеет»);
  •  каким-либо физиологическим признакам, свойственным конкретным людям (пользователь «есть»).

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

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

Более безопасные системы осуществляют хранение списков паролей в зашифрованном виде. В то же время перехват даже зашифрованного пароля позволяет при его использовании получить несанкционированный доступ к удаленной ЭВМ.

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

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

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

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

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

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

Наибольшее распространение среди устройств аутентификации по типу «пользователь имеет» получили индивидуальные магнитные карты. Популярность таких устройств объясняется универсальностью их применения (не только в автоматизированных системах), относительно низкой стоимостью и высокой точностью, они легко комплексируются с терминалом и персональной ЭВМ. Поскольку считыватели этих устройств идентифицируют не личность, а магнитную карту, то они комплектуются специальной, часто цифровой клавиатурой для ввода владельцем карты своего шифра, пароля. Для защиты карт от несанкционированного считывания и подделки, как и в предыдущих случаях, применяются специальные физические и криптографические методы.

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

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

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

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

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

Аутентификация по отпечаткам пальцев. Установление личности по отпечаткам пальцев старый и проверенный прием. В настоящее время существуют два возможных способа использования этого приема для аутентификации пользователя автоматизированной системы:

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

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

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

Большое распространение получил способ, построенный на сравнении деталей отпечатков (метод соотнесения бороздок на отпечатках). При этом пользователь вводит с клавиатуры идентифицирующую информацию, по которой устройство аутентификации проводит поиск необходимого списка деталей отпечатка в архиве. После этого он помещает палец на оптическое окошко устройства, и начинается процесс сканирования, в результате которого вычисляются координаты 12 точек, определяющих относительное расположение бороздок отпечатка. Объем информации при этом составляет около 100 байт на отпечаток. Сравнение проводится в ЭВМ по специальным алгоритмам. Недостатком данного способа, однако, является то, что практически невозможно обеспечить точную центровку и стабильную пластичность пальца, поэтому невозможно получить и точное положение бороздок, вследствие чего оценка соответствия имеет вероятностный характер.

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

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

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

Аутентификация по характеру голоса. По мнению ряда специалистов, наиболее надежным средством аутентификации пользователей являются средства верификации по голосам. Это направление очень перспективно потому, что для аутентификации могут быть использованы телефонные каналы связи, а алгоритм опознавания может быть реализован в центральной ЭВМ. Устройства аутентификации пользователей по их голосам анализируют спектры голосов, которые сугубо индивидуальны для каждого человека. В таких устройствах пользователь произносит перед микрофоном слова, которые подбираются по принципу наибольшего разнообразия звуков. Затем звуковой сигнал фильтруется на несколько частотных полос шириной 200-300 Гц каждая и определяются соответствующие амплитудно-частотные характеристики (спектрально-фонетические признаки) каждой части спектра. Слова, которые произносит пользователь, предварительно выводятся на экран дисплея в случайной последовательности, что исключает подделки, в том числе использование магнитофона.

Основными характеристиками устройств аутентификации являются:

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

Исследования и испытания устройств аутентификации различных типов показали, что частота ошибочного отрицания несколько превышает частоту ошибочного признания и составляет величину, как правило, не превышающую 1-2 %. Так, отечественное устройство аутентификации по подписи имеет частоту ошибочного отрицания, приблизительно равную частоте ошибочного признания и составляющую около 0,5 %.

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

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

2.5. Защита исходных текстов и двоичного кода

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

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

2.5.1. Противодействие изучению исходных текстов

Вообще говоря, открытость исходных текстов понятие расплывчатое. В связи с этим возникает вопрос: «Является ли бинарная программа в 1 Kбайт более открытой, чем миллион строк исходников без адекватной инфраструктуры и документации?» В самом деле, мало иметь исходный текст в нем еще предстоит разобраться. Достаточно удалить все или, по крайней мере, большую часть комментариев, дать переменным и функциям бессмысленные, ничего не говорящие имена, как в программе не разберется и сам автор. А наличие и полнота комментариев к исходному тексту в контракте, как правило, не оговаривается. Получается, что контракт может быть формально выполнен, а предоставленный заказчику исходный текст практически бесполезен. «Практически» не означает «полностью»: такой простой прием не позволит обеспечить абсолютную защиту.

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

Динамическое ветвление. Программу, состоящую из нескольких сотен тысяч строк, невозможно рассматривать как простую совокупность команд. На таком уровне детализации «за деревьями леса не видно». Сначала необходимо проанализировать взаимосвязь отдельных функций друг с другом, выделить интересующие фрагменты и лишь затем изучать реализацию самих функций. Чем выше степень дробления программы, тем труднее анализ. Элементарные функции, состоящие из десятка строк, сами по себе дают мало информации. Для формирования целостной картины необходимо рассмотреть вызывающий их код, поднимаясь по иерархии вызовов до тех пор, пока не удастся реконструировать весь алгоритм целиком или, по крайней мере, охватить его ключевой фрагмент. Чтобы построить дерево вызовов, нужно уметь отслеживать перекрестные ссылки в обоих направлениях: определять, какой функции передается управление данным вызовом, и, наоборот, находить все вызовы, передающие управление данной функции.

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

Здесь стоит сделать одну оговорку. Язык Си не позволяет объявить функцию, возвращающую указатель на функции это объявление рекурсивное. Приходится объявлять функцию, возвращающую бестиповой указатель void *. Аналогично если функция в ходе своей работы вызывает какие-то другие функции, лучше делать это не напрямую, а передавать указатели на вызываемые функции как аргументы. Такой подход не только препятствует анализу, но еще и увеличивает гибкость программы, облегчая повторное использование старого кода в новых проектах при должной культуре программирования каждая функция представляет «вещь в себе» и не привязана ко всем остальным.

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

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

Хуки (англ. – «крючья») – изящный, но ныне практически забытый прием программирования. Его суть заключается в совмещении нескольких разнотипных данных в одном аргументе. Например, если значение аргумента по модулю меньше 0x400000, функция считает его непосредственным значением, в противном случае – указателем на функцию, результат выполнения которой следует поставить на его место. Это увеличивает гибкость программы, но и затрудняет ее анализ, не позволяя быстро определить, происходит ли передача переменной по значению или по указателю. Указатели на переменную, в свою очередь, становятся неотличимы от указателей на функцию. Разумеется, отказ от строгой типизации может приводить к ошибкам, но вероятность их появления в тщательно продуманной программе невелика.

Снова замечание: хуки отрицательно сказываются на переносимости программ, поскольку представление указателей имеет свои особенности на каждой аппаратной платформе. Поэтому использовать их следует только в тех случаях, когда переносимость не требуется или когда на всех выбранных платформах представление указателей унифицировано. Существует еще множество других способов запутать того, кто пытается проанализировать исходный текст. Например, можно использовать совершенно корректные с точки зрения языка, но необычные конструкции, ставящие в тупик незнакомого с ними человека. Классический пример – перестановка индекса и имени массива в Си. С точки зрения языка, выражения «buff[666]» и «666[buf]» абсолютно равнозначны, но всякий ли об этом помнит?

Препроцессор Си также имеет свои тонкости. Возможно, самая популярная из них заключается в чувствительности к пробелам при объявлении макроса: «#define x(a,b) a+b» создаст макрос x(a,b), заменяющийся суммой своих аргументов, но «#define x (a,b) a+b» создаст макрос x, заменяющийся последовательностью «(a,b) a+b». Если не обратить внимание на лишний пробел, можно получить совсем не тот результат.

В той или иной степени эти, а также другие приемы используются в большинстве свободно распространяемых «открытых текстов». Последнее словосочетание заключено в кавычки для придания ему ироничного оттенка: одно лишь наличие исходного текста еще не обеспечивает открытости – требуется, по меньшей мере, грамотно продуманная и качественно составленная документация, а лучше – опыт работы с этим текстом. Разобраться с исходными текстами редактора emacs или операционной системы Linux не намного проще, чем написать их «с нуля», – слишком уж скупы их разработчики на комментарии, а документация зачастую и вовсе отсутствует.

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

2.5.2. Противодействие анализу двоичного кода

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

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

Сколько бы уровней защиты не предусматривалось, один или миллион, программа может быть взломана – это только вопрос времени и затраченных усилий. Но при отсутствии действенных правовых регуляторов защиты интеллектуальной собственности разработчикам приходится больше полагаться на стойкость своей защиты, чем на закон. Бытует мнение, что если затраты на нейтрализацию защитного механизма будут не ниже стоимости легальной копии, ее никто не будет взламывать. Это неверно. Материальный стимул – не единственное, что движет хакером. Гораздо более сильной мотивацией оказывается интеллектуальная борьба с автором защиты, спортивный азарт, любопытство, повышение своего профессионализма, да и просто интересное времяпрепровождение. Многие молодые люди могут неделями корпеть над отладчиком, снимая защиту с программы стоимостью в несколько долларов, а то и вовсе распространяемой бесплатно (например, диспетчер файлов FAR для жителей России абсолютно бесплатен, но это не спасает его от взлома).

Тем не менее, есть опыт создания защит, сломать которые почти невозможно. (Точнее, их взлом потребовал бы многих тысяч, а то и миллионов лет на типичном бытовом компьютере.)

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

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

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

На основе кода события и значения аргументов диспетчер событий генерирует три ключа: первый – только на основе кода события, второй – только на основе аргументов и третий – на основе кода и аргументов. Затем он пытается полученными ключами последовательно расшифровать всех обработчиков событий. Если расшифровка происходит успешно, это означает, что данный обработчик готов обработать данное событие, и тогда ему передается управление.

Алгоритм шифрования должен быть выбран так, чтобы обратная операция была невозможна. При этом установить, какое событие данный обработчик обрабатывает, можно только полным перебором. Для блокирования возможности перебора в язык была введена контекстная зависимость – генерация дополнительной серии ключей, учитывающих некоторое количество предыдущих событий. Это позволило устанавливать обработчики на любые последовательности действий пользователя, например, на открытие файла с именем «Мой файл», запись в него строки «Моя строка» и переименование его в «Не мой файл».

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

Таким же точно образом осуществляется ограничение срока службы демонстрационных версий. Разумеется, обращаться к часам реального времени бесполезно, их очень легко перевести назад, вводя защиту в заблуждение. Гораздо надежнее опираться на даты открываемых файлов: даже если часы переведены, созданные другими пользователями файлы в большинстве случаев имеют правильное время. Но взломщик не сможет узнать ни алгоритм определения даты, ни саму дату окончания использования продукта. Впрочем, дату в принципе можно найти и полным перебором, но что это дает? Модификации кода воспрепятствовать очень легко: достаточно, чтобы длина зашифрованного текста была чувствительна к любым изменениям исходного. В этом случае взломщик не сможет подправить «нужный» байт в защитном обработчике и вновь зашифровать его. Придется расшифровывать и вносить изменения во все остальные обработчики (при условии, что они контролируют смещение, по которому расположены), а это невозможно, поскольку соответствующие им ключи заранее неизвестны.

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


3. СЕТЕВАЯ БЕЗОПАСНОСТЬ

3.1. Основные понятия компьютерной безопасности

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

Уязвимость компьютерной системы – это некая ее неудачная характеристика, которая делает возможным возникновение угрозы. Другими словами, именно из-за наличия уязвимостей в системе происходят нежелательные события.

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

Далее исследователи обычно выделяют три основных вида угроз безопасности: угрозы раскрытия, целостности и отказа в обслуживании.

Угроза раскрытия заключается в том, что информация становится известной тому, кому не следовало бы ее знать. В терминах компьютерной безопасности угроза раскрытия имеет место всякий раз, когда получен доступ к некоторой конфиденциальной информации, хранящейся в вычислительной системе или передаваемой от одной системы к другой. Иногда вместо слова «раскрытие» используются термины «кража» или «утечка».

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

Угроза отказа в обслуживании возникает всякий раз, когда в результате некоторых действий блокируется доступ к некоторому ресурсу вычислительной системы. Реально блокирование может быть постоянным, так чтобы запрашиваемый ресурс никогда не был получен, или оно может вызвать только задержку запрашиваемого ресурса, достаточно долгую для того, чтобы он стал бесполезным. В таких случаях говорят, что ресурс исчерпан.

3.2. Особенности безопасности компьютерных сетей

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

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

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

3.3 Удаленные атаки на распределенные

вычислительные системы

Как уже отмечалось ранее, основной особенностью любой распределенной системы является то, что ее компоненты распределены в пространстве и связь между ними физически осуществляется при помощи сетевых соединений и программно при помощи механизма сообщений. При этом все управляющие сообщения и данные, пересылаемые между объектами распределенной ВС, передаются по сетевым соединениям в виде пакетов обмена. Эта особенность и является основной для рассматриваемых в этой главе удаленных атак на инфраструктуру и протоколы распределенных ВС.

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

Итак, удаленные атаки можно классифицировать по следующим признакам:

1. По характеру воздействия:

  •  пассивное;
  •  активное.

Пассивным воздействием на распределенную вычислительную систему назовем воздействие, которое не оказывает непосредственного влияния на работу системы, но может нарушать ее политику безопасности. Именно отсутствие непосредственного влияния на работу распределенной ВС приводит к тому, что пассивное удаленное воздействие практически невозможно обнаружить. Примером пассивного типового удаленного воздействия в РВС служит прослушивание канала связи в сети.

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

2. По цели воздействия:

  •  нарушение конфиденциальности информации либо ресурсов системы;
  •  нарушение целостности информации ;
  •  нарушение работоспособности (доступности) системы .

Этот классификационный признак является прямой проекцией трех основных типов угроз – раскрытия, целостности и отказа в обслуживании.

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

Возможность искажения информации означает либо полный контроль над информационным потоком между объектами системы, либо возможность передачи сообщений от имени другого объекта. Таким образом, очевидно, что искажение информации ведет к нарушению ее целостности. Данное информационное разрушающее воздействие представляет собой яркий пример активного воздействия. Примером удаленной атаки, цель которой нарушение целостности информации, может служить типовая удаленная атака (УА) «Ложный объект РВС».

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

3. По условию начала осуществления воздействия:

Удаленное воздействие, также как и любое другое, может начать осуществляться только при определенных условиях. В распределенных ВС существуют три вида условий начала осуществления удаленной атаки:

  •  Атака по запросу от атакуемого объекта.

В этом случае атакующий ожидает передачи от потенциальной цели атаки запроса определенного типа, который и будет условием начала осуществления воздействия. Примером подобных запросов в ОС Novell NetWare может служить SAP-запрос, а в сети Internet - DNS- и ARP-запросы. Важно отметить, что данный тип удаленных атак наиболее характерен для распределенных ВС.

  •  Атака по наступлению ожидаемого события на атакуемом объекте.

В этом случае атакующий осуществляет постоянное наблюдение за состоянием операционной системы удаленной цели атаки и при возникновении определенного события в этой системе начинает воздействие. Как и в предыдущем случае, инициатором осуществления начала атаки выступает сам атакуемый объект. Примером такого события может быть прерывание сеанса работы пользователя с сервером в ОС Novell NetWare без выдачи команды LOGOUT.

  •  Безусловная атака.

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

4. По наличию обратной связи с атакуемым объектом:

  •  с обратной связью;
  •  без обратной связи (однонаправленная атака).

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

В отличие от атак с обратной связью удаленным атакам без обратной связи не требуется реагировать на какие-либо изменения, происходящие на атакуемом объекте. Атаки данного вида обычно осуществляются передачей на атакуемый объект одиночных запросов, ответы на которые атакующему не нужны. Подобную УА можно называть однонаправленной удаленной атакой. Примером однонаправленной атаки является типовая УА «Отказ в обслуживании».

5. По расположению субъекта атаки относительно атакуемого объекта:

  •  внутрисегментное;
  •  межсегментное.

Рассмотрим ряд определений:

Субъект атаки (или источник атаки) – это атакующая программа или оператор, непосредственно осуществляющие воздействие.

Хост (host) – сетевой компьютер.

Маршрутизатор (router) – устройство, обеспечивающее маршрутизацию пакетов обмена в глобальной сети.

Подсеть (subnetwork) (в терминологии Internet) – совокупность хостов, являющихся частью глобальной сети, для которых маршрутизатором выделен одинаковый номер подсети. Подсеть – логическое объединение хостов маршрутизатором. Хосты внутри одной подсети могут взаимодействовать между собой непосредственно, минуя маршрутизатор.

Сегмент сети – физическое объединение хостов. Например, сегмент сети образует совокупность хостов, подключенных к серверу по схеме «общая шина». При такой схеме подключения каждый хост имеет возможность подвергать анализу любой пакет в своем сегменте.

С точки зрения удаленной атаки чрезвычайно важно, как по отношению друг к другу располагаются субъект и объект атаки, т.е. в одном или в разных сегментах они находятся. В случае внутрисегментной атаки, как следует из названия, субъект и объект атаки находятся в одном сегменте. При межсегментной атаке субъект и объект атаки находятся в разных сегментах.

Данный классификационный признак позволяет судить о так называемой «степени удаленности» атаки.

В дальнейшем будет показано, что на практике межсегментную атаку осуществить значительно труднее, чем внутрисегментную. Важно отметить, что межсегментная удаленная атака представляет гораздо большую опасность, чем внутрисегментная. Это связано с тем, что в случае межсегментной атаки объект её и непосредственно атакующий могут находиться на расстоянии многих тысяч километров друг от друга, что может существенно воспрепятствовать мерам по отражению атаки.

6. По уровню эталонной модели ISO/OSI, на котором осуществляется воздействие :

  •  физический;
  •  канальный;
  •  сетевой;
  •  транспортный;
  •  сеансовый;
  •  представительный;
  •  прикладной.

Международная Организация по Стандартизации (ISO) приняла стандарт ISO 7498, описывающий взаимодействие открытых систем (OSI). Распределенные ВС также являются открытыми системами. Любой сетевой протокол обмена, как и любую сетевую программу, можно с той или иной степенью точности спроецировать на эталонную семиуровневую модель OSI. Такая многоуровневая проекция позволит описать в терминах модели OSI функции, заложенные в сетевой протокол или программу. Удаленная атака также является сетевой программой. В связи с этим представляется логичным рассматривать удаленные атаки на распределенные ВС, проецируя их на эталонную модель ISO/OSI.

3.4. Характеристика и механизмы реализации

типовых удаленных атак

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

Введение этого понятия в совокупности с описанием механизмов реализации типовых УА позволяет предложить методику исследования безопасности, инвариантную по отношению к виду распределенной ВС. Методика заключается в последовательном осуществлении всех типовых удаленных воздействий в соответствии с предложенным далее их описанием и характеристиками. При этом основным элементом исследования безопасности РВС является анализ сетевого трафика.

В количестве пояснения последнего утверждения рассмотрим следующую аналогию: отладчик – основное средство для хакера, соответственно анализатор сетевого трафика – основное средство для сетевого хакера. Анализатор сетевого трафика по своей сути является сетевым отладчиком. Итак, в качестве методики исследования информационной безопасности распределенной ВС предлагается выполнение ряда тестовых задач, оценивающих защищенность системы по отношению к типовым удаленным воздействиям. Рассмотрим в следующих пунктах типовые удаленные атаки и механизмы их реализации.

3.4.1. Анализ сетевого трафика

Как уже отмечалось, основной особенностью распределенной ВС является то, что ее объекты распределены в пространстве и связь между ними физически осуществляется по сетевым соединениям и программно – при помощи механизма сообщений. При этом все управляющие сообщения и данные, пересылаемые между объектами РВС, передаются по сетевым соединениям в виде пакетов обмена. Эта особенность привела к появлению специфичного для распределенных ВС типового удаленного воздействия, заключающегося в прослушивании канала связи. Назовем данное типовое удаленное воздействие анализом сетевого трафика (или, сокращенно, сетевым анализом).

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

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

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

3.4.2. Подмена доверенного объекта

или субъекта распределенной ВС

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

Такой обмен обычно называется «рукопожатием» (handshake). Однако отметим, что не всегда для связи двух удаленных объектов в РВС создается виртуальный канал. Практика показывает, что зачастую, особенно для служебных сообщений (!?) (например, от маршрутизаторов) используется передача одиночных сообщений, не требующих подтверждения.

Как известно, для адресации сообщений в распределенных ВС используется сетевой адрес, который уникален для каждого объекта системы (на канальном уровне модели OSI – это аппаратный адрес сетевого адаптера, на сетевом уровне адрес определяется в зависимости от используемого протокола сетевого уровня (например, IP-адрес). Сетевой адрес также может использоваться для идентификации объектов распределенной ВС. Однако сетевой адрес достаточно просто подделывается и поэтому использовать его в качестве единственного средства идентификации объектов недопустимо.

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

  •  атака при установленном виртуальном канале;
  •  атака без установленного виртуального канала.

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

Для осуществления атаки данного типа необходимо преодолеть систему идентификации и аутентификации сообщений, которая, в принципе, может использовать контрольную сумму, вычисляемую с помощью открытого ключа, динамически выработанного при установлении канала, случайные многобитные счетчики пакетов и сетевые адреса станций. Однако на практике, например, в ОС Novell NetWare 3.12-4.1 для идентификации пакетов обмена используются два 8-битных счетчика: номер канала и номер пакета; в протоколе TCP для идентификации используются два 32-битных счетчика.

Как было замечено выше, для служебных сообщений в распределенных ВС часто используется передача одиночных сообщений, не требующих подтверждения, т. е. не требуется создание виртуального соединения. Атака без установленного виртуального соединения заключается в передаче служебных сообщений от имени сетевых управляющих устройств, например, от имени маршрутизаторов.

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

Посылка ложных управляющих сообщений может привести к серьезным нарушениям работы распределенной ВС (например, к изменению ее конфигурации). Типовая удаленная атака, использующая навязывание ложного маршрута, основана на описанной идее. Подмена доверенного объекта РВС является активным воздействием, совершаемым с целью нарушения конфиденциальности и целостности информации, по наступлению на атакуемом объекте определенного события. Данная удаленная атака может являться как внутрисегментной, так и межсегментной, как с обратной связью, так и без обратной связи с атакуемым объектом и осуществляется на сетевом и транспортном уровнях модели OSI.

3.4.3. Ложный объект распределенной ВС

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


3.4.3.1. Внедрение в распределенную ВС ложного

объекта путем навязывания ложного маршрута

Современные глобальные сети представляют собой совокупность сегментов сети, связанных между собой через сетевые узлы. При этом маршрутом называется последовательность узлов сети, по которой данные передаются от источника к приемнику. Каждый маршрутизатор имеет специальную таблицу, называемую таблицей маршрутизации, в которой для каждого адресата указывается оптимальный маршрут. Отметим, что таблицы маршрутизации существуют не только у маршрутизаторов, но и у любых хостов в глобальной сети. Для обеспечения эффективной и оптимальной маршрутизации в распределенных ВС применяются специальные управляющие протоколы, позволяющие маршрутизаторам обмениваться информацией друг с другом (RIP (Routing Internet Protocol), OSPF (Open Shortest Path First)), уведомлять хосты о новом маршруте – ICMP (Internet Control Message Protocol), удаленно управлять маршрутизаторами (SNMP (Simple Network Management Protocol)). Важно отметить, что все описанные выше протоколы позволяют удаленно изменять маршрутизацию в сети Internet, т. е. являются протоколами управления сетью.

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

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

Навязывание объекту РВС ложного маршрута – активное воздействие, совершаемое с любой целью, безусловно по отношению к цели атаки. Данная типовая удаленная атака может осуществляться как внутри одного сегмента, так и межсегментно, как с обратной связью, так и без обратной связи с атакуемым объектом на транспортном и прикладном  уровне модели OSI.

3.4.3.2. Внедрение в распределенную ВС ложного

объекта путем использования недостатков

алгоритмов удаленного поиска

В распределенной ВС часто оказывается, что ее удаленные объекты изначально не имеют достаточно информации, необходимой для адресации сообщений. Обычно такой информацией являются аппаратные (адрес сетевого адаптера) и логические (IP-адрес, например) адреса объектов РВС. Для получения подобной информации в распределенных ВС используются различные алгоритмы удаленного поиска, заключающиеся в передаче по сети специального вида поисковых запросов, и в ожидании ответов на запрос с искомой информацией. После получения ответа на запрос, запросивший субъект РВС обладает всеми необходимыми данными для адресации. Руководствуясь полученными из ответа сведениями об искомом объекте, запросивший субъект РВС начинает адресоваться к нему. Примером подобных запросов, на которых базируются алгоритмы удаленного поиска, могут служить SAP-запрос в ОС Novell NetWare, ARP- и DNS-запрос в сети Internet.

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

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

Ложный объект РВС – активное воздействие, совершаемое с целью нарушения конфиденциальности и целостности информации, которое может являться атакой по запросу от атакуемого объекта, а также безусловной атакой. Данная удаленная атака является как внутрисегментной, так и межсегментной, имеет обратную связь с атакуемым объектом и осуществляется на канальном и прикладном уровнях модели OSI.

3.4.3.3. Использование ложного объекта для

организации удаленной атаки на распределенную ВС

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

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

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

Модификация информации. Одной из особенностей любой системы воздействия, построенной по принципу ложного объекта, является то, что она способна модифицировать перехваченную информацию. Следует особо отметить, что это один из способов, позволяющих программно модифицировать поток информации между объектами РВС с другого объекта. Ведь для реализации перехвата информации в сети необязательно атаковать распределенную ВС по схеме «ложный объект». Эффективней будет атака, осуществляющая анализ сетевого трафика, позволяющая получать все пакеты, проходящие по каналу связи, но, в отличие от удаленной атаки по схеме «ложный объект», она не способна к модификации информации.

Далее рассмотрим два вида модификации информации:

  •  модификация передаваемых данных;
  •  модификация передаваемого кода.

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

Другим видом модификации может быть модификация передаваемого кода. Ложный объект, проводя семантический анализ проходящей через него информации, может выделять из потока данных исполняемый код. Известный принцип неймановской архитектуры гласит, что не существует различий между данными и командами. Следовательно, для того, чтобы определить, что передается по сети – код или данные, необходимо использовать определенные особенности, свойственные реализации сетевого обмена в конкретной распределенной ВС или некоторые особенности, присущие конкретным типам исполняемых файлов в данной локальной ОС.

Представляется возможным выделить два различных по цели вида модификации кода:

  •  внедрение РПС (разрушающих программных средств);
  •  изменение логики работы исполняемого файла.

В первом случае при внедрении РПС исполняемый файл модифицируется по вирусной технологии: к исполняемому файлу одним из известных способов дописывается тело РПС, а также одним из известных способов изменяется точка входа так, чтобы она указывала на начало внедренного кода РПС. Описанный способ, в принципе, ничем не отличается от стандартного заражения исполняемого файла вирусом, за исключением того, что файл оказался поражен вирусом или РПС в момент передачи его по сети. Такое возможно лишь при использовании системы воздействия, построенной по принципу «ложный объект». Конкретный вид РПС, его цели и задачи в данном случае не имеют значения, но можно рассмотреть, например, вариант использования ложного объекта для создания сетевого червя – наиболее сложного на практике удаленного воздействия в сетях, или в качестве РПС использовать сетевые шпионы.

Во втором случае происходит модификация исполняемого кода с целью изменения логики его работы. Данное воздействие требует предварительного исследования работы исполняемого файла и, в случае его проведения, может принести самые неожиданные результаты. Например, при запуске на сервере (например, в ОС Novell NetWare) программы идентификации пользователей распределенной базы данных ложный объект может так модифицировать код этой программы, что появится возможность беспарольного входа с наивысшими привилегиями в базу данных.

Подмена информации. Ложный объект позволяет не только модифицировать, но и подменять перехваченную им информацию. Если модификация информации приводит к ее частичному искажению, то подмена – к ее полному изменению.

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

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

Эта программа выполняет визуально те же действия, что и настоящая программа входа в систему, например, запрашивая имя и пароль пользователя, после чего полученные сведения посылаются на ложный объект, а пользователю выводится сообщение об ошибке. При этом пользователь, посчитав, что он неправильно ввел пароль (пароль обычно не отображается на экране) снова запустит программу подключения к системе (на этот раз настоящую) и со второго раза получит доступ. Результат такой атаки – имя и пароль пользователя, сохраненные на ложном объекте.


3.4.3.4. Отказ в обслуживании

Одной из основных задач, возлагаемых на сетевую ОС, функционирующую на каждом из объектов распределенной ВС, является обеспечение надежного удаленного доступа с любого объекта сети к данному объекту. В общем случае в распределенной ВС каждый субъект системы должен иметь возможность подключиться к любому объекту РВС и получить в соответствии со своими правами удаленный доступ к его ресурсам. Обычно в вычислительных сетях возможность предоставления удаленного доступа реализуется следующим образом: на объекте РВС в сетевой ОС запускаются на выполнение ряд программ-серверов (например, FTP-сервер, WWW-сервер и т. п.), предоставляющих удаленный доступ к ресурсам данного объекта.

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

Очевидно, что сетевая операционная система способна иметь только ограниченное число открытых виртуальных соединений и отвечать лишь на ограниченное число запросов. Эти ограничения зависят от различных параметров системы в целом, основными из которых являются быстродействие ЭВМ, объем оперативной памяти и пропускная способность канала связи (чем она выше, тем больше число возможных запросов в единицу времени).

Основная проблема состоит в том, что при отсутствии статической ключевой информации в РВС идентификация запроса возможна только по адресу его отправителя. Если в распределенной ВС не предусмотрено средств аутентификации адреса отправителя, т. е. инфраструктура РВС позволяет с одного объекта системы передавать на другой атакуемый объект бесконечное число анонимных запросов на подключение от имени других объектов, то в этом случае будет иметь успех типовая удаленная атака «Отказ в обслуживании». Результат применения этой удаленной атаки – нарушение на атакованном объекте работоспособности соответствующей службы предоставления удаленного доступа, т. е. невозможность получения удаленного доступа с других объектов РВС – отказ в обслуживании!

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

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

Типовая удаленная атака «Отказ в обслуживании» является активным воздействием, осуществляемым с целью нарушения работоспособности системы, безусловно относительно цели атаки. Данная УА является однонаправленным воздействием, как межсегментным, так и внутрисегментным, осуществляемым на транспортном и прикладном уровнях модели OSI.


3.5. Технологии обнаружения сетевых атак

Традиционная модель атаки строится по принципу «один к одному» (рис.3.1) или «один ко многим» (рис.3.2), т. е. атака исходит из одного источника. Разработчики сетевых средств защиты (межсетевых экранов, систем обнаружения атак и т. д.) ориентированы именно на традиционную модель атаки. В различных точках защищаемой сети устанавливаются агенты (сенсоры) системы защиты, которые передают информацию на центральную консоль управления. Это облегчает масштабирование системы, обеспечивает простоту удаленного управления и т. д. Однако такая модель не справляется с относительно недавно (в 1998 г.) обнаруженной угрозой – распределенными атаками.

  

         Рис. 3.1. Отношение                              Рис. 3.2. Отношение

            «один к одному»                              «один ко многим»

В модели распределенной атаки используются иные принципы. В отличие от традиционной модели в распределенной модели используются отношения «многие к одному» (рис.3.3) и «многие ко многим» (рис. 3.4).


  Рис. 3.3. Отношение                          Рис. 3.4. Отношение

    «многие к одному»                             «многие ко многим»

Распределенные атаки основаны на «классических» атаках типа «отказ в обслуживании», а точнее на их подмножестве, известном как Flood- или Storm-атаки (указанные термины можно перевести как «шторм», «наводнение» или «лавина»). Смысл данных атак заключается в посылке большого количества пакетов на атакуемый узел. Атакуемый узел может выйти из строя, поскольку он «захлебнется» в лавине посылаемых пакетов и не сможет обрабатывать запросы авторизованных пользователей. По такому принципу работают атаки SYN-Flood, Smurf, UDP Flood, Targa3 и т. д. Однако в том случае, если пропускная способность канала до атакуемого узла превышает пропускную способность атакующего или атакуемый узел некорректно сконфигурирован, к «успеху» такая атака не приведет. Например, с помощью этих атак бесполезно пытаться нарушить работоспособность своего провайдера. Но распределенная атака происходит уже не из одной точки Internet, а сразу из нескольких, что приводит к резкому возрастанию трафика и выведению атакуемого узла из строя.

3.5.1. Этапы реализации атак

Можно выделить следующие этапы реализации атаки:

1. Предварительные действия перед атакой или «сбор информации»;

2. Собственно «реализация атаки»;

3. Завершение атаки.

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


Рис. 3.5. Этапы реализации атаки

Cбор информации – это основной этап реализации атаки. Именно на данном этапе эффективность работы злоумышленника является залогом «успешности» атаки. Сначала выбирается цель атаки и собирается информация о ней (тип и версия операционной системы, открытые порты и запущенные сетевые сервисы, установленное системное и прикладное программное обеспечение и его конфигурация и т. д.). Затем идентифицируются наиболее уязвимые места атакуемой системы, воздействие на которые приводит к нужному злоумышленнику результату. Злоумышленник пытается выявить все каналы взаимодействия цели атаки с другими узлами. Это позволит не только выбрать тип реализуемой атаки, но и источник ее реализации. Например, атакуемый узел взаимодействует с двумя серверами под управлением ОС Unix и Windows NT/2000.

С одним сервером атакуемый узел имеет доверенные отношения, а с другим – нет. От того, через какой сервер злоумышленник будет реализовывать нападение, зависит, какая атака будет задействована, какое средство реализации будет выбрано и т. д. Затем, в зависимости от полученной информации и желаемого результата, выбирается атака, дающая наибольший эффект. Например: SYN Flood, Teardrop, UDP Bomb – для нарушения функционирования узла; CGI-скрипт – для проникновения на узел и кражи информации;

PHP – для кражи файла паролей и удаленного подбора пароля и т. п.

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

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

Рассмотрим основные механизмы реализации атак, необходимые для понимания методов обнаружения этих атак. Помимо вышеизложенного, понимание принципов действий злоумышленников – залог успешной обороны сети.

1. Сбор информации. Первый этап реализации атак – это сбор информации об атакуемой системе или узле. Он включает такие действия как определение сетевой топологии, типа и версии операционной системы атакуемого узла, а также доступных сетевых и иных сервисов и т. п. Эти действия реализуются различными методами.

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

Идентификация топологии сети. Существует два основных метода определения топологии сети, используемых злоумышленниками:

– изменение TTL (TTL modulation).;

– запись маршрута (record route).

По первому методу работают программы traceroute для Unix и tracert для Windows. Они используют поле Time to Live («время жизни») в заголовке IP-пакета, которое изменяется в зависимости от числа пройденных сетевым пакетом маршрутизаторов. Для записи маршрута ICMP-пакета может быть использована утилита ping . Зачастую сетевую топологию можно выяснить при помощи протокола SNMP, установленного на многих сетевых устройствах, защита которых неверно сконфигурирована. При помощи протокола RIP можно попытаться получить информацию о таблице маршрутизации в сети и т. д.

Многие из этих методов используются современными системами управления (например, HP OpenView, Cabletron SPECTRUM, MS Visio и т. д.) для построения карт сети. И эти же методы могут быть с успехом применены злоумышленниками для построения карты атакуемой сети.

Идентификация узлов. Идентификация узла, как правило, осуществляется путем посылки при помощи утилиты ping команды ECHO_REQUEST протокола ICMP. Ответное сообщение ECHO_REPLY говорит о том, что узел доступен. Существуют свободно распространяемые программы, которые автоматизируют и ускоряют процесс параллельной идентификации большого числа узлов, например, fping или nmap. Опасность данного метода в том, что стандартными средствами узла запросы ECHO_REQUEST не фиксируются. Для этого необходимо применять средства анализа трафика, межсетевые экраны или системы обнаружения атак.

Это самый простой метод идентификации узлов. Однако он имеет два недостатка:

– многие сетевые устройства и программы блокируют ICMP-пакеты и не пропускают их во внутреннюю сеть (или наоборот не пропускают их наружу). Например, MS Proxy Server 2.0 не разрешает прохождение пакетов по протоколу ICMP. В результате возникает неполная картина. С другой стороны, блокировка ICMP-пакета говорит злоумышленнику о наличии «первой линии обороны» – маршрутизаторов, межсетевых экранов и т. д.;

– использование ICMP-запросов позволяет с легкостью обнаружить их источник, что, разумеется, не может входить в задачу злоумышленника.

Существует еще один метод идентификации узлов – использование «смешанного» режима сетевой карты, который позволяет определить различные узлы в сегменте сети. Но он не применим в тех случаях, в которых трафик сегмента сети недоступен нападающему со своего узла, т. е. этот метод применим только в локальных сетях. Другим способом идентификации узлов сети является так называемая разведка DNS, которая позволяет идентифицировать узлы корпоративной сети при помощи обращения к серверу службы имен.

Идентификация сервисов или сканирование портов. Идентификация сервисов, как правило, осуществляется путем обнаружения открытых портов (port scanning). Такие порты очень часто связаны с сервисами, основанными на протоколах TCP или UDP. Например:

– открытый 80-й порт подразумевает наличие Web-сервера;

– 25-й порт – почтового SMTP-сервера;

– 31337-й – серверной части троянского коня BackOrifice;

– 12345-й или 12346-й – серверной части троянского коня NetBus и т. д.

Для идентификации сервисов и сканирования портов могут быть использованы различные программы, в том числе и свободно распространяемые. Например, nmap или netcat.

Идентификация операционной системы. Основной механизм удаленного определения ОС – анализ ответов на запросы, учитывающие различные реализации TCP/IP-стека в различных операционных системах. В каждой ОС по-своему реализован стек протоколов TCP/IP, что позволяет при помощи специальных запросов и ответов на них определить, какая ОС установлена на удаленном узле.

Другой, менее эффективный и крайне ограниченный, способ идентификации ОС узлов – анализ сетевых сервисов, обнаруженных на предыдущем этапе. Например, открытый 139-й порт позволяет сделать вывод, что удаленный узел, вероятнее всего, работает под управлением ОС семейства Windows. Для определения ОС могут быть использованы различные программы. Например, nmap или queso.

Определение роли узла. Предпоследним шагом на этапе сбора информации об атакуемом узле является определение его роли, например, выполнении функций межсетевого экрана или Web-сервера. Выполняется этот шаг на основе уже собранной информации об активных сервисах, именах узлов, топологии сети и т.п. Например, открытый 80-й порт может указывать на наличие Web-сервера, блокировка ICMP-пакета указывает на потенциальное наличие межсетевого экрана, а DNS-имя узла proxy.domain.ru или fw.domain.ru говорит само за себя.

Определение уязвимостей узла. Последний шаг – поиск уязвимостей. На этом шаге злоумышленник при помощи различных автоматизированных средств или вручную определяет уязвимости, которые могут быть использованы для реализации атаки. В качестве таких автоматизированных средств могут быть использованы ShadowSecurityScanner, nmap, Retina и т. д.

2. Реализация атаки. С этого момента начинается попытка доступа к атакуемому узлу. При этом доступ может быть как непосредственным, т. е. проникновение на узел, так и опосредованным, например, при реализации атаки типа «отказ в обслуживании». Реализация атак в случае непосредственного доступа также может быть разделена на два этапа:

  •  проникновение;
  •  установление контроля.

Проникновение. Проникновение подразумевает под собой преодоление средств защиты периметра (например, межсетевого экрана). Реализовываться это может различными путями. Например, использование уязвимости сервиса компьютера, «смотрящего» наружу или путем передачи враждебного содержания по электронной почте (макровирусы) или через апплеты Java. Такое содержание может использовать так называемые «туннели» в межсетевом экране (не путать с туннелями VPN), через которые затем и проникает злоумышленник. К этому же этапу можно отнести подбор пароля администратора или иного пользователя при помощи специализированной утилиты (например, L0phtCrack или Crack).

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

Известен случай, когда злоумышленник смог перепрограммировать EEPROM сетевой карты и даже после переустановки ОС он смог повторно реализовать несанкционированные действия. Более простой модификацией этого примера является внедрение необходимого кода или фрагмента в сценарий сетевой загрузки (например, для ОС Novell Netware).

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

3. Завершение атаки. Этапом завершения атаки является «заметание следов» со стороны злоумышленника. Обычно это реализуется путем удаления соответствующих записей из журналов регистрации узла и других действий, возвращающих атакованную систему в исходное, «предатакованное» состояние.

Классификация атак. Существуют различные типа классификации атак. Например, деление на пассивные и активные, внешние и внутренние, умышленные и неумышленные. Однако, дабы не запутать вас большим разнообразием классификаций, мало применимыми на практике, авторы предлагают более «жизненную» классификацию:

  1.  Удаленное проникновение (remote penetration). Атаки, которые позволяют реализовать удаленное управление компьютером через сеть. Например, NetBus или BackOrifice.
  2.  Локальное проникновение (local penetration). Атака, которая приводит к получению несанкционированного доступа к узлу, на котором она запущена. Например, GetAdmin.
  3.  Удаленный отказ в обслуживании (remote denial of service). Атаки, которые позволяют нарушить функционирование или перегрузить компьютер через Internet. Например, Teardrop или trin00.
  4.  Локальный отказ в обслуживании (local denial of service). Атаки, которые позволяют нарушить функционирование или перегрузить компьютер, на котором они реализуются. Примером такой атаки является «враждебный» апплет, который загружает центральный процессор бесконечным циклом, что приводит к невозможности обработки запросов других приложений.
  5.  Сетевые сканеры (network scanners). Программы, которые анализируют топологию сети и обнаруживают сервисы, доступные для атаки. Например, система nmap.
  6.  Сканеры уязвимостей (vulnerability scanners). Программы, которые ищут уязвимости на узлах сети и которые могут быть использованы для реализации атак. Например, система SATAN или ShadowSecurityScanner.
  7.  Взломщики паролей (password crackers). Программы, которые «подбирают» пароли пользователей. Например, L0phtCrack для Windows или Crack для Unix.
  8.  Анализаторы протоколов (sniffers). Программы, которые «прослушивают» сетевой трафик. При помощи этих программ можно автоматически искать такую информацию, как идентификаторы и пароли пользователей, информацию о кредитных картах и т. д. Например, Microsoft Network Monitor, NetXRay компании Network Associates или LanExplorer.

Компания Internet Security Systems, Inc. еще больше сократила число возможных категорий, доведя их до 5:

  1.  Сбор информации (Information gathering).
  2.  Попытки несанкционированного доступа (Unauthorized access attempts).
  3.  Отказ в обслуживании (Denial of service).
  4.  Подозрительная активность (Suspicious activity).
  5.  Системные атаки (System attack).

Первые 4 категории относятся к удаленным атакам, а последняя – к локальным, реализуемым на атакуемом узле. Можно заметить, что в данную классификацию не попал целый класс так называемых «пассивных» атак («прослушивание» трафика, «ложный DNS-сервер», «подмена ARP-сервера» и т. п.).

Классификация атак, реализованная во многих системах обнаружения атак, не может быть категоричной. Например, атака, реализация которой для ОС Unix (например, переполнение буфера statd) может иметь самые плачевные последствия (самый высокий приоритет), для ОС Windows NT/2000 может быть вообще не применима или иметь очень низкую степень риска. Кроме того, существует неразбериха и в самих названиях атак и уязвимостей. Одна и та же атака может иметь разные наименования у разных производителей систем обнаружения атак.

Одной из лучших баз уязвимостей и атак является база данных X-Force, находящаяся по адресу: http://xforce.iss.net/. Доступ к ней может осуществляться как путем подписки на свободно распространяемый список рассылки X-Force Alert, так и путем интерактивного поиска в базе данных на Web-сервере компании ISS.

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

3.5.2 Средства обнаружения компьютерных атак

Технология обнаружения атак должна решать следующие задачи:

  1.  Распознавание известных атак и предупреждение о них соответствующего персонала.
  2.  «Понимание» зачастую непонятных источников информации об атаках.
  3.  Освобождение или снижение нагрузки на персонал, отвечающий за безопасность, от текущих рутинных операций по контролю за пользователями, системами и сетями, являющимися компонентами корпоративной сети.
  4.  Возможность управления средствами защиты не-экспертами в области безопасности.
  5.  Контроль всех действий субъектов корпоративной сети (пользователей, программ, процессов и т. д.).

Очень часто системы обнаружения атак могут выполнять функции, существенно расширяющие спектр их применения.

  1.  Контроль эффективности межсетевых экранов. Например, установка системы обнаружения атак после межсетевого экрана (внутри корпоративной сети) позволяет обнаружить атаки, пропускаемые МСЭ и, тем самым, определить недостающие правила на межсетевом экране.
  2.  Контроль узлов сети с неустановленными обновлениями или узлов с устаревшим программным обеспечением.
  3.  Блокирование и контроль доступа к определенным узлам Internet. Хотя системам обнаружения атак далеко до межсетевых экранов и систем контроля доступа к различным URL, например, WEBsweeper, они могут выполнять частичный контроль и блокирование доступа некоторых пользователей корпоративной сети к отдельным ресурсам Internet, например, к Web-серверам порнографического содержания. Это бывает необходимо тогда, когда в организации нет денег на приобретение и межсетевого экрана и системы обнаружение атак, и функции МСЭ разносятся между системой обнаружения атак, маршрутизатором и proxy-сервером. Кроме того, системы обнаружения атак могут контролировать доступ сотрудников к серверам на основе ключевых слов. Например, sex, job, crack и т. д.
  4.  Контроль электронной почты. Системы обнаружения атак могут использоваться для контроля неблагонадежных сотрудников, использующих электронную почту для выполнения задач, не входящих в их функциональные обязанности, например, рассылка резюме. Некоторые системы могут обнаруживать вирусы в почтовых сообщениях и, хотя до настоящих антивирусных систем им далеко, они все же выполняют эту задачу достаточно эффективно.

Лучшее использование времени и опыта специалистов в области информационной безопасности заключается в обнаружении и устранении причин реализации атак скорее, чем в обнаружении самих атак. Устранив причины возникновения атак, т. е. обнаружив и устранив уязвимости, администратор тем самым устраняет и сам факт потенциальной реализации атак. Иначе атака будет повторяться раз за разом, постоянно требуя усилий и внимания администратора.

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

  •  host-based, то есть обнаруживающие атаки, направленные на конкретный узел сети;
  •  network-based, т. е. обнаруживающие атаки, направленные на всю сеть или сегмент сети.

Системы обнаружения атак, контролирующие отдельный компьютер, как правило, собирают и анализируют информацию из журналов регистрации операционной системы и различных приложений (Web-сервер, СУБД и т. д.). По такому принципу функционирует RealSecure OS Sensor. Однако в последнее время стали получать распространение системы, тесно интегрированные с ядром ОС, тем самым, предоставляя более эффективный способ обнаружения нарушений политики безопасности. Причем такая интеграция может быть реализована двояко. Прежде всего, могут контролироваться все системные вызовы ОС (так работает Entercept) или весь входящий/исходящий сетевой трафик (так работает RealSecure Server Sensor). В последнем случае система обнаружения атак захватывает весь сетевой трафик напрямую с сетевой карты, минуя операционную систему, что позволяет уменьшить зависимость от нее и тем самым повысить защищенность системы обнаружения атак.

Системы обнаружения атак уровня сети собирают информацию из самой сети, т. е. из сетевого трафика. Выполняться эти системы могут на обычных компьютерах (например, RealSecure Network Sensor), на специализированных компьютерах (например, RealSecure for Nokia или Cisco Secure IDS 4210 и 4230) или интегрированы в маршрутизаторы или коммутаторы (например, CiscoSecure IOS Integrated Software или Cisco Catalyst 6000 IDS Module). В первых двух случаях анализируемая информация собирается посредством захвата и анализа пакетов, используя сетевые интерфейсы в беспорядочном (promiscuous) режиме. В последнем случае захват трафика осуществляется с шины сетевого оборудования.

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

Достоинства систем обнаружения атак. Можно долго перечислять различные достоинства систем обнаружения атак, функционирующих на уровне узла и сети. Однако я остановлюсь только на нескольких из них. Коммутация позволяет управлять крупномасштабными сетями, как несколькими небольшими сетевыми сегментами. В результате бывает трудно определить наилучшее место для установки системы, обнаруживающей атаки в сетевом трафике. Иногда могут помочь специальные порты (span ports) на коммутаторах, но не всегда. Обнаружение атак на уровне конкретного узла обеспечивает более эффективную работу в коммутируемых сетях, так как позволяет разместить системы обнаружения только на тех узлах, на которых это необходимо.

Системы сетевого уровня не требуют, чтобы на каждом хосте устанавливалось программное обеспечение системы обнаружения атак. Поскольку для контроля всей сети число мест, в которых установлены IDS невелико, то стоимость их эксплуатации в сети предприятия ниже, чем стоимость эксплуатации систем обнаружения атак на системном уровне. Кроме того, для контроля сетевого сегмента, необходим только один сенсор, независимо от числа узлов в данном сегменте.

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

Системы, функционирующие на уровне сети, обнаруживают подозрительные события и атаки по мере того, как они происходят, и поэтому обеспечивают гораздо более быстрое уведомление и реагирование, чем системы, анализирующие журналы регистрации. Например, хакер, инициирующий сетевую атаку типа «отказ в обслуживании» на основе протокола TCP, может быть остановлен системой обнаружения атак сетевого уровня, посылающей TCP-пакет с установленным флагом Reset в заголовке для завершения соединения с атакующим узлом, прежде чем атака вызовет разрушения или повреждения атакуемого узла. Системы анализа журналов регистрации не распознают атаки до момента соответствующей записи в журнал и предпринимают ответные действия уже после того, как была сделана запись. К этому моменту наиболее важные системы или ресурсы уже могут быть скомпрометированы или нарушена работоспособность комплекса, запускающего систему обнаружения атак на уровне узла. Уведомление в реальном масштабе времени позволяет быстро среагировать в соответствии с предварительно определенными параметрами. Диапазон этих реакций изменяется от разрешения проникновения в режиме наблюдения для того, чтобы собрать информацию об атаке и атакующем, до немедленного завершения атаки.

И, наконец, системы обнаружения атак, функционирующие на сетевом уровне, не зависят от операционных систем, установленных в корпоративной сети, так как они оперируют сетевым трафиком, которым обмениваются все узлы в корпоративной сети. Системе обнаружения атак все равно, какая ОС сгенерировала тот или иной пакет, если он в соответствии со стандартами, поддерживаемыми системой обнаружения. Например, в сети могут работать ОС Windows 98, Windows NT, Windows 2000 и XP, Netware, Linux, MacOS, Solaris и т. д., но если они общаются между собой по протоколу IP, то любая из систем обнаружения атак, поддерживающая этот протокол, сможет обнаруживать атаки, направленные на эти ОС.  Совместное применение систем обнаружения атак на уровне сети и уровне узла повысит защищенность вашей сети.

Сетевые системы обнаружения атак и межсетевые экраны. Наиболее часто сетевые системы обнаружения атак пытаются заменить межсетевыми экранами, уповая на то, что последние обеспечивают очень высокий уровень защищенности. Однако не стоит забывать, что межсетевые экраны – это просто системы, основанные на правилах, которые разрешают или запрещают прохождение трафика через них. Даже межсетевые экраны, построенные по технологии « », не позволяют с уверенностью сказать, присутствует атака в контролируемом ими трафике или нет. Они могут сказать, соответствует ли трафик правилу. Например, МСЭ сконфигурирован так, чтобы блокировать все соединения кроме TCP-соединений на 80 порту (то есть HTTP-трафик). Таким образом, любой трафик через 80-ый порт законен с точки зрения МСЭ. С другой стороны, система обнаружения атак также контролирует трафик, но ищет в нем признаки атаки. Ее мало заботит, для какого порта предназначен трафик. По умолчанию весь трафик для системы обнаружения атак подозрителен. Иначе говоря, несмотря на то, что система обнаружения атак работает с тем же источником данных, что и МСЭ, т. е. с сетевым трафиком, они выполняют дополняющие друг друга функции. Например, HTTP-запрос «GET /../../../etc/passwd HTTP/1.0». Практически любой МСЭ разрешает прохождение данного запроса через себя. Однако система обнаружения атак легко обнаружит эту атаку и заблокирует ее.

Можно провести следующую аналогию. Межсетевой экран – это обычный турникет, устанавливаемый на главном входе в вашу сеть. Но помимо главных дверей существуют и другие двери, а также окна. Маскируясь под реального сотрудника или войдя в доверие к охраннику на турникете, злоумышленник может пронести сквозь турникет взрывное устройство или пистолет. Мало того, злоумышленник может залезть к вам через окно. Именно поэтому и нужны системы обнаружения атак, которые усиливают защиту, обеспечиваемую межсетевыми экранами, которые являются пусть и необходимым, но явно недостаточным элементом сетевой безопасности.  Межсетевой экран – не панацея!

Варианты реакций на обнаруженную атаку. Мало обнаружить атаку, необходимо отреагировать на нее соответствующим образом. Именно варианты реагирования во многом определяют эффективность системы обнаружения атак. На сегодняшний день предлагаются следующие варианты реагирования:

  1.  Уведомление на консоль (включая резервную) системы обнаружения атак или на консоль интегрированной системы (например, межсетевого экрана).
  2.  Звуковое оповещение об атаке.
  3.  Генерация управляющих последовательностей SNMP для систем сетевого управления.
  4.  Генерация сообщения об атаке по электронной почте.
  5.  Дополнительные уведомления на пейджер или факс. Очень интересная, хотя и редко применяемая возможность. Оповещение об обнаружении несанкционированной деятельности посылается не администратору, а злоумышленнику. По мнению сторонников данного варианта реагирования, нарушитель, узнав, что его обнаружили, вынужден прекратить свои действия.
  6.  Обязательная регистрация обнаруживаемых событий. В качестве журнала регистрации могут выступать:

– текстовый файл,

– системный журнал (например, в системе Cisco Secure Integrated Software),

– текстовый файл специального формата (например, в системе Snort),

– локальная база данных MS Access,

– SQL-база данных (например, в системе RealSecure).

Надо только учитывать, что объемы регистрируемой информации требуют, как правило, SQL-базу - MS SQL или Oracle.

  1.  Трассировка событий (event trace), т.е. запись их в той последовательности и с той скоростью, с которыми их реализовывал злоумышленник. Затем администратор в любое заданное время может прокрутить (replay или playback) необходимую последовательность событий с заданной скоростью (в реальном режиме времени, с ускорением или замедлением), чтобы проанализировать деятельность злоумышленника. Это позволит понять его квалификацию, используемые средства атаки и т. д.
    1.  Прерывание действий атакующего, т.е. завершение соединения. Это можно сделать, как:

– перехват соединения (session hijacking) и посылка пакета с установленным флагом RST обоим участникам сетевого соединения от имени каждого из них (в системе обнаружения атак, функционирующей на уровне сети);

– блокировка учетной записи пользователя, осуществляющего атаку (в системе обнаружения атак на уровне узла). Такая блокировка может быть осуществлена либо на заданный промежуток времени, либо до тех пор, пока учетная запись не будет разблокирована администратором. В зависимости от привилегий, с которыми запущена система обнаружения атак, блокировка может действовать как в пределах самого компьютера, на который направлена атака, так и в пределах всего домена сети.

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

3.6. Брандмауэр

Межсетевой экран или брандмауэр (по-нем. brandmauer, по-англ. firewall, по-рус. огненная стена)  это система или комбинация систем, позволяющих разделить сеть на две или более частей и реализовать набор правил, определяющих условия прохождения пакетов из одной части в другую (см. рис.3.6). Чаще всего эта граница проводится между локальной сетью предприятия и Internet, хотя ее можно провести и внутри локальной сети предприятия. Брандмауэр, таким образом, пропускает через себя весь трафик. Для каждого проходящего пакета брандмауэр принимает решение пропускать его или отбросить. Для того чтобы брандмауэр мог принимать эти решения, ему необходимо определить набор правил. О том, как эти правила описываются и какие параметры используются при их описании, речь пойдет чуть позже.

Рис. 3.6. Схема брандмауэра

Как правило, брандмауэры функционируют на какой-либо UNIX платформе – чаще всего это BSD, SunOS, AIX, IRIX и т. д., реже – VMS, WNT, Windows NT. Из аппаратных платформ встречаются INTEL, Sun SPARC, RS6000, Alpha, HP PA-RISC, семейство RISC процессоров R4400-R5000. Помимо Ethernet, многие брандмауэры поддерживают FDDI, Token Ring, 100Base-T, 100VG-AnyLan, различные серийные устройства. Требования к оперативной памяти и объему жесткого диска зависят от количества машин в защищаемом сегменте сети.

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

Все брандмауэры можно разделить на три типа:

– пакетные фильтры (packet filter);

– серверы прикладного уровня (application gateways);

– серверы уровня соединения (circuit gateways). Все типы могут одновременно встретиться в одном брандмауэре.

Пакетные фильтры. Брандмауэры с пакетными фильтрами принимают решение о том, пропускать пакет или отбросить, просматривая IP-адреса, флаги или номера TCP портов в заголовке этого пакета. IP-адрес и номер порта – это информация сетевого и транспортного уровней соответственно, но пакетные фильтры используют и информацию прикладного уровня, т. к. все стандартные сервисы в TCP/IP ассоциируются с определенным номером порта.

Для описания правил прохождения пакетов составляются таблицы типа:

Действие

тип пакета

адрес источн.

порт источн.

адрес назнач.

порт назнач.

флаги

Поле «действие» может принимать значения пропустить или отбросить. Тип пакета – TCP, UDP или ICMP. Флаги – флаги из заголовка IP-пакета. Поля «порт источника» и «порт назначения» имеют смысл только для TCP и UDP пакетов.

Серверы прикладного уровня. Брандмауэры с серверами прикладного уровня используют серверы конкретных сервисов (proxy server) – TELNET, FTP и т. д., запускаемые на брандмауэре и пропускающие через себя весь трафик, относящийся к данному сервису. Таким образом, между клиентом и сервером образуются два соединения: от клиента до брандмауэра и от брандмауэра до места назначения.

Полный набор поддерживаемых серверов различается для каждого конкретного брандмауэра, однако чаще всего встречаются сервера для следующих сервисов:

  •  терминалы (Telnet, Rlogin);
    •  передача файлов (Ftp);
      •  электронная почта (SMTP, POP3);
        •  WWW (HTTP);
        •  Gopher;
        •  Wais;
        •  X Window System (X11);
        •  сетевая печать (LP);
        •  удаленное выполнение задач (Rsh);
        •  Finger;
        •  новости Usenet (NNTP);
        •  Whois;
        •  RealAudio.

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

При описании правил доступа используются такие параметры, как:

  •  название сервиса,
    •  имя пользователя,
      •  допустимый временной диапазон использования сервиса,
        •  компьютеры, с которых можно пользоваться сервисом,
        •  схемы аутентификации.

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

Серверы уровня соединения. Сервер уровня соединения представляет из себя транслятор TCP соединения. Пользователь образует соединение с определенным портом на брандмауэре, после чего последний производит соединение с местом назначения по другую сторону от брандмауэра. Во время сеанса этот транслятор копирует байты в обоих направлениях, действуя как провод.

Как правило, пункт назначения задается заранее, в то время как источников может быть много (соединение типа один – много). Используя различные порты, можно создавать различные конфигурации.

Такой тип сервера позволяет создавать транслятор для любого определенного пользователем сервиса, базирующегося на TCP, осуществлять контроль доступа к этому сервису, сбор статистики по его использованию.

Сравнительные характеристики пакетных фильтров и серверов прикладного уровня

Ниже приведены основные достоинства и недостатки пакетных фильтров и серверов прикладного уровня относительно друг друга.

Достоинства пакетных фильтров:

  •  относительно невысокая стоимость;
    •  гибкость в определении правил фильтрации;
      •  небольшая задержка при прохождении пакетов.
        •  Недостатки пакетных фильтров:
        •  локальная сеть видна (маршрутизируется) из Internet;
        •  правила фильтрации пакетов трудны в описании, требуются очень хорошие знания технологий TCP и UDP;
        •  при нарушении работоспособности брандмауэра все компьютеры за ним становятся полностью незащищенными либо недоступными;
        •  аутентификацию с использованием IP-адреса можно обмануть использованием IP-спуфинга (атакующая система выдает себя за другую, используя ее IP-адрес);
        •  отсутствует аутентификация на пользовательском уровне.

Достоинства серверов прикладного уровня:

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

Недостатки серверов прикладного уровня:

  •  более высокая, чем для пакетных фильтров стоимость;
    •  невозможность использовании протоколов RPC и UDP;
      •  производительность ниже, чем для пакетных фильтров.

Виртуальные сети. Ряд брандмауэров позволяет также организовывать виртуальные корпоративные сети (Virtual Private Network), т. е. объединить несколько локальных сетей, включенных в INTERNET в одну виртуальную сеть. VPN позволяют организовать прозрачное для пользователей соединение локальных сетей, сохраняя секретность и целостность передаваемой информации с помощью шифрования. При этом при передаче по INTERNET шифруются не только данные пользователя, но и сетевая информация – сетевые адреса, номера портов и т. д.


Рис. 3.7. Брандмауэр как внешний роутер

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

Чаще всего подключение осуществляется через внешний маршрутизатор, поддерживающий два Ethernet – интерфейса(так называемый dual-homed брандмауэр) (две сетевые карточки в одном компьютере) (см. рис. 3.8).

Рис. 3.8. Подключение через внешний маршрутизатор

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


Рис. 3.9. Защита только одной подсети

При этом брандмауэром защищается только одна подсеть из нескольких выходящих из роутера. В незащищаемой брандмауэром области часто располагают серверы, которые должны быть видимы снаружи (WWW, FTP и т. д.). Большинство брандмауэров позволяет разместить эти сервера на нем самом – решение, далеко не лучшее с точки зрения загрузки машины и безопасности самого брандмауэра.

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


Рис. 3.10. Организация третьей сети

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

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

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

Аутентификация. Аутентификация является одним из самых важных компонентов брандмауэров. Прежде чем пользователю будет предоставлено право воспользоваться тем или иным сервисом, необходимо убедиться, что он действительно тот, за кого себя выдает. Как правило, используется принцип, получивший название «что он знает» – т. е. пользователь знает некоторое секретное слово, которое он посылает серверу аутентификации в ответ на его запрос. Одной из схем аутентификации является использование стандартных UNIX паролей. Эта схема является наиболее уязвимой с точки зрения безопасности – пароль может быть перехвачен и использован другим лицом.


4. СТАНДАРТЫ И СПЕЦИФИКАЦИИ В ОБЛАСТИ

ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

4.1. Основные понятия

Мы приступаем к обзору стандартов и спецификаций двух разных видов:

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

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

Исторически первым оценочным стандартом, получившим широкое распространение и оказавшим огромное влияние на базу стандартизации ИБ во многих странах, стал стандарт Министерства обороны США «Критерии оценки доверенных компьютерных систем».

Данный труд, называемый чаще всего по цвету обложки «Оранжевой книгой», был впервые опубликован в августе 1983 г. Уже одно его название требует комментария. Речь идет не о безопасных, а о доверенных системах, т. е. системах, которым можно оказать определенную степень доверия.

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

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

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

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

Степень доверия оценивается по двум основным критериям:

  1.  Политика безопасности – набор законов, правил и норм поведения, определяющих, как организация обрабатывает, защищает и распространяет информацию. В частности, правила определяют, в каких случаях пользователь может оперировать конкретными наборами данных. Чем выше степень доверия системе, тем строже и многообразнее должна быть политика безопасности. В зависимости от сформулированной политики можно выбирать конкретные механизмы обеспечения безопасности. Политика безопасности – это активный аспект защиты, включающий в себя анализ возможных угроз и выбор мер противодействия.
  2.  Уровень гарантированности – мера доверия, которая может быть оказана архитектуре и реализации ИС. Доверие безопасности может проистекать как из анализа результатов тестирования, так и из проверки (формальной или нет) общего замысла и реализации системы в целом и отдельных ее компонентов. Уровень гарантированности показывает, насколько корректны механизмы, отвечающие за реализацию политики безопасности. Это пассивный аспект защиты.

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

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

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

Основное назначение доверенной вычислительной базы – выполнять функции монитора обращений, т. е. контролировать допустимость выполнения субъектами (активными сущностями ИС, действующими от имени пользователей) определенных операций над объектами (пассивными сущностями). Монитор проверяет каждое обращение пользователя к программам или данным на предмет согласованности с набором действий, допустимых для пользователя.

Монитор обращений должен обладать тремя качествами:

Изолированность. Необходимо предупредить возможность отслеживания работы монитора.

Полнота. Монитор должен вызываться при каждом обращении, не должно быть способов обойти его.

Верифицируемость. Монитор должен быть компактным, чтобы его можно было проанализировать и протестировать, будучи уверенным в полноте тестирования.

Реализация монитора обращений называется ядром безопасности. Ядро безопасности – это основа, на которой строятся все защитные механизмы. Помимо перечисленных выше свойств монитора обращений, ядро должно гарантировать собственную неизменность.

Границу доверенной вычислительной базы называют периметром безопасности. Как уже указывалось, компоненты, лежащие вне периметра безопасности, могут не быть доверенными. С развитием распределенных систем понятию «периметр безопасности» все чаще придают другой смысл, имея в виду границу владений определенной организации. То, что находится внутри владений, считается доверенным, а то, что вне, – нет.

4.2. Механизмы безопасности

Согласно «Оранжевой книге», политика безопасности должна обязательно включать в себя следующие элементы:

  •  произвольное управление доступом;
  •  безопасность повторного использования объектов;
  •  метки безопасности;
  •  принудительное управление доступом.

Произвольное управление доступом (называемое иногда дискреционным) – это метод разграничения доступа к объектам, основанный на учете личности субъекта или группы, в которую субъект входит. Произвольность управления состоит в том, что некоторое лицо (обычно владелец объекта) может по своему усмотрению предоставлять другим субъектам или отбирать у них права доступа к объекту.

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

Для реализации принудительного управления доступом с субъектами и объектами ассоциируются метки безопасности. Метка субъекта описывает его благонадежность, метка объекта – степень конфиденциальности содержащейся в нем информации. Согласно «Оранжевой книге», метки безопасности состоят из двух частей – уровня секретности и списка категорий. Уровни секретности образуют упорядоченное множество, категории – неупорядоченное. Назначение последних – описать предметную область, к которой относятся данные.

Принудительное (или мандатное) управление доступом основано на сопоставлении меток безопасности субъекта и объекта.

Субъект может читать информацию из объекта, если уровень секретности субъекта не ниже, чем у объекта, а все категории, перечисленные в метке безопасности объекта, присутствуют в метке субъекта. В таком случае говорят, что метка субъекта доминирует над меткой объекта. Смысл сформулированного правила понятен – читать можно только то, что положено.

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

Описанный способ управления доступом называется принудительным, поскольку он не зависит от воли субъектов (даже системных администраторов). После того, как зафиксированы метки безопасности субъектов и объектов, оказываются зафиксированными и права доступа.

Если понимать политику безопасности узко, т. е. как правила разграничения доступа, то механизм подотчетности является дополнением подобной политики. Цель подотчетности – в каждый момент времени знать, кто работает в системе и что делает. Средства подотчетности делятся на три категории:

  •  идентификация и аутентификация;
  •  предоставление доверенного пути;
  •  анализ регистрационной информации.

Обычный способ идентификации – ввод имени пользователя при входе в систему. Стандартное средство проверки подлинности (аутентификации) пользователя – пароль.

Доверенный путь связывает пользователя непосредственно с доверенной вычислительной базой, минуя другие, потенциально опасные компоненты ИС. Цель предоставления доверенного пути – дать пользователю возможность убедиться в подлинности обслуживающей его системы.

Анализ регистрационной информации (аудит) имеет дело с действиями (событиями), так или иначе затрагивающими безопасность системы.

Если фиксировать все события, объем регистрационной информации, скорее всего, будет расти слишком быстро, а ее эффективный анализ станет невозможным. «Оранжевая книга» предусматривает наличие средств выборочного протоколирования, как в отношении пользователей (внимательно следить только за подозрительными), так и в отношении событий.

Переходя к пассивным аспектам защиты, укажем, что в «Оранжевой книге» рассматривается два вида гарантированности – операционная и технологическая. Операционная гарантированность относится к архитектурным и реализационным аспектам системы, в то время как технологическая – к методам построения и сопровождения.

Операционная гарантированность включает в себя проверку следующих элементов:

  •  архитектура системы;
  •  целостность системы;
  •  проверка тайных каналов передачи информации;
  •  доверенное администрирование;
  •  доверенное восстановление после сбоев.

Операционная гарантированность – это способ убедиться в том, что архитектура системы и ее реализация действительно реализуют избранную политику безопасности.

Технологическая гарантированность охватывает весь жизненный цикл системы, т. е. периоды проектирования, реализации, тестирования, продажи и сопровождения. Все перечисленные действия должны выполняться в соответствии с жесткими стандартами, чтобы исключить утечку информации и нелегальные «закладки».

4.3. Классы безопасности

«Критерии...» Министерства обороны США открыли путь к ранжированию информационных систем по степени доверия безопасности. В «Оранжевой книге» определяется четыре уровня доверия – D, C, B и A. Уровень D предназначен для систем, признанных неудовлетворительными. По мере перехода от уровня C к A к системам предъявляются все более жесткие требования. Уровни C и B подразделяются на классы (C1, C2, B1, B2, B3) с постепенным возрастанием степени доверия.

Всего имеется шесть классов безопасности – C1, C2, B1, B2, B3, A1. Чтобы в результате процедуры сертификации систему можно было отнести к некоторому классу, ее политика безопасности и уровень гарантированности должны удовлетворять заданным требованиям, из которых мы упомянем лишь важнейшие.

Класс C1:

  •  доверенная вычислительная база должна управлять доступом именованных пользователей к именованным объектам;
  •  пользователи должны идентифицировать себя, прежде чем выполнять какие-либо иные действия, контролируемые доверенной вычислительной базой. Для аутентификации должен использоваться какой-либо защитный механизм, например, пароли. Аутентификационная информация должна быть защищена от несанкционированного доступа;
  •  доверенная вычислительная база должна поддерживать область для собственного выполнения, защищенную от внешних воздействий (в частности, от изменения команд и/или данных) и от попыток слежения за ходом работы;
  •  должны быть в наличии аппаратные и/или программные средства, позволяющие периодически проверять корректность функционирования аппаратных и микропрограммных компонентов доверенной вычислительной базы;
  •  защитные механизмы должны быть протестированы на предмет соответствия их поведения системной документации. Тестирование должно подтвердить, что у неавторизованного пользователя нет очевидных способов обойти или разрушить средства защиты доверенной вычислительной базы;
  •  должны быть описаны подход к безопасности, используемый производителем, и применение этого подхода при реализации доверенной вычислительной базы.

Класс C2 (в дополнение к C1):

  •  права доступа должны гранулироваться с точностью до пользователя. Все объекты должны подвергаться контролю доступа;
  •  при выделении хранимого объекта из пула ресурсов доверенной вычислительной базы необходимо ликвидировать все следы его использования;
  •  каждый пользователь системы должен уникальным образом идентифицироваться. Каждое регистрируемое действие должно ассоциироваться с конкретным пользователем;
  •  доверенная вычислительная база должна создавать, поддерживать и защищать журнал регистрационной информации, относящейся к доступу к объектам, контролируемым базой;
  •  тестирование должно подтвердить отсутствие очевидных недостатков в механизмах изоляции ресурсов и защиты регистрационной информации.

Класс B1 (в дополнение к C2):

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

Класс B2 (в дополнение к B1):

  •  снабжаться метками должны все ресурсы системы (например, ПЗУ), прямо или косвенно доступные субъектам;
  •  к доверенной вычислительной базе должен поддерживаться доверенный коммуникационный путь для пользователя, выполняющего операции начальной идентификации и аутентификации;
  •  должна быть предусмотрена возможность регистрации событий, связанных с организацией тайных каналов обмена с памятью;
  •  доверенная вычислительная база должна быть внутренне структурирована на хорошо определенные, относительно независимые модули;
  •  системный архитектор должен тщательно проанализировать возможности организации тайных каналов обмена с памятью и оценить максимальную пропускную способность каждого выявленного канала;
  •  должна быть продемонстрирована относительная устойчивость доверенной вычислительной базы к попыткам проникновения;
  •  модель политики безопасности должна быть формальной. Для доверенной вычислительной базы должны существовать описательные спецификации верхнего уровня, точно и полно определяющие ее интерфейс;
  •  в процессе разработки и сопровождения доверенной вычислительной базы должна использоваться система конфигурационного управления, обеспечивающая контроль изменений в описательных спецификациях верхнего уровня, иных архитектурных данных, реализационной документации, исходных текстах, работающей версии объектного кода, тестовых данных и документации;
  •  тесты должны подтверждать действенность мер по уменьшению пропускной способности тайных каналов передачи информации.

Класс B3 (в дополнение к B2):

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

Класс A1 (в дополнение к B3):

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

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

Такова классификация, введенная в «Оранжевой книге». Коротко ее можно сформулировать так:

  •  уровень C – произвольное управление доступом;
  •  уровень B – принудительное управление доступом;
  •  уровень A верифицируемая безопасность.

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

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

4.4. Информационная безопасность

распределенных систем. Рекомендации X.800

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

Рекомендации X.800 – документ довольно обширный. Мы остановимся на специфических сетевых функциях (сервисах) безопасности, а также на необходимых для их реализации защитных механизмах.

Выделяют следующие сервисы безопасности и исполняемые ими роли:

  •  Аутентификация. Данный сервис обеспечивает проверку подлинности партнеров по общению и проверку подлинности источника данных. Аутентификация партнеров по общению используется при установлении соединения и, быть может, периодически во время сеанса. Она служит для предотвращения таких угроз, как маскарад и повтор предыдущего сеанса связи. Аутентификация бывает односторонней (обычно клиент доказывает свою подлинность серверу) и двусторонней (взаимной);
  •  управление доступом обеспечивает защиту от несанкционированного использования ресурсов, доступных по сети;
  •  конфиденциальность данных обеспечивает защиту от несанкционированного получения информации. Отдельно упомянем конфиденциальность трафика (это защита информации, которую можно получить, анализируя сетевые потоки данных);
  •  целостность данных подразделяется на подвиды в зависимости от того, какой тип общения используют партнеры – с установлением соединения или без него, защищаются ли все данные или только отдельные поля, обеспечивается ли восстановление в случае нарушения целостности;
  •  неотказуемость (невозможность отказаться от совершенных действий) обеспечивает два вида услуг: неотказуемость с подтверждением подлинности источника данных и неотказуемость с подтверждением доставки. Побочным продуктом неотказуемости является аутентификация источника данных.

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

Таблица 4.1

Распределение функций безопасности

по уровням эталонной семиуровневой модели OSI

Функции безопасности

Уровень

1

2

3

4

5

6

7

Аутентификация

+

+

+

Управление доступом

+

+

+

Конфиденциальность соединения

+

+

+

+

+

+

Конфиденциальность вне соединения

+

+

+

+

+

Избирательная конфиденциальность

+

+

Конфиденциальность трафика

+

+

+

Целостность с восстановлением

+

+

Целостность без восстановления

+

+

+

Избирательная целостность

+

Целостность вне соединения

+

+

+

Неотказуемость

+

«+» данный уровень может предоставить функцию безопасности;

«–» данный уровень не подходит для предоставления функции безопасности.

Сетевые механизмы безопасности. Для реализации сервисов (функций) безопасности могут использоваться следующие механизмы и их комбинации:

  •  шифрование;
  •  электронная цифровая подпись;
  •  механизмы управления доступом. Могут располагаться на любой из участвующих в общении сторон или в промежуточной точке;
  •  механизмы контроля целостности данных. В рекомендациях X.800 различаются два аспекта целостности: целостность отдельного сообщения или поля информации и целостность потока сообщений или полей информации. Для проверки целостности потока сообщений (т. е. для защиты от кражи, переупорядочивания, дублирования и вставки сообщений) используются порядковые номера, временные штампы, криптографическое связывание или иные аналогичные приемы;
  •  механизмы аутентификации. Согласно рекомендациям X.800, аутентификация может достигаться за счет использования паролей, личных карточек или иных устройств аналогичного назначения, криптографических методов, устройств измерения и анализа биометрических характеристик;
  •  механизмы дополнения трафика;
  •  механизмы управления маршрутизацией. Маршруты могут выбираться статически или динамически. Оконечная система, зафиксировав неоднократные атаки на определенном маршруте, может отказаться от его использования. На выбор маршрута способна повлиять метка безопасности, ассоциированная с передаваемыми данными;
  •  механизмы нотаризации. Служат для заверения таких коммуникационных характеристик, как целостность, время, личности отправителя и получателей. Заверение обеспечивается надежной третьей стороной, обладающей достаточной информацией. Обычно нотаризация опирается на механизм электронной подписи.

В следующей таблице сведены сервисы (функции) и механизмы безопасности. Таблица показывает, какие механизмы (по отдельности или в комбинации с другими) могут использоваться для реализации той или иной функции.

Таблица 4.2

Взаимосвязь функций и механизмов безопасности

Функции

Механизмы

Шифрование

Электронная подпись

Управление доступом

Целостность

Аутентификация

Дополнение трафика

Управление маршрутизацией

Нотаризация

Аутентификация

партнеров

+

+

+

Аутентификация

источника

+

+

Управление доступом

+

Конфиденциальность

+

+

+

Избирательная

конфиденциальность

+

Конфиденциальность

трафика

+

+

+

Целостность соединения

+

+

Целостность

вне соединения

+

+

+

Неотказуемость

+

+

+

«+» – механизм пригоден для реализации данной функции безопасности;

«–» – механизм не предназначен для реализации данной функции безопасности.

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

Концептуальной основой администрирования является информационная база управления безопасностью. Эта база может не существовать как единое (распределенное) хранилище, но каждая из оконечных систем должна располагать информацией, необходимой для реализации избранной политики безопасности. Согласно рекомендациям X.800, усилия администратора средств безопасности должны распределяться по трем направлениям:

  •  администрирование информационной системы в целом;
  •  администрирование сервисов безопасности;
  •  администрирование механизмов безопасности.

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

Обязанности администратора механизмов безопасности определяются перечнем задействованных механизмов. Типичный список таков:

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

Мы видим, что администрирование средств безопасности в распределенной ИС имеет много особенностей по сравнению с централизованными системами.

4.5. Стандарт ISO/IEC 15408 «Критерии оценки

безопасности информационных технологий»

Основные понятия. Мы возвращаемся к теме оценочных стандартов, приступая к рассмотрению самого полного и современного среди них – «Критериев оценки безопасности информационных технологий» (издан 1 декабря 1999 г.). Этот международный стандарт стал итогом почти десятилетней работы специалистов нескольких стран, он вобрал в себя опыт существовавших к тому времени документов национального и межнационального масштаба. По историческим причинам данный стандарт часто называют «Общими критериями» (или даже ОК). Мы также будем использовать это сокращение.

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

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

Важно отметить, что требования могут быть параметризованы, как и полагается библиотечным функциям.

Как и «Оранжевая книга», ОК содержат два основных вида требований безопасности:

  •  функциональные, соответствующие активному аспекту защиты, предъявляемые к функциям безопасности и реализующим их механизмам;
  •  требования доверия, соответствующие пассивному аспекту, предъявляемые к технологии и процессу разработки и эксплуатации.

Требования безопасности предъявляются, а их выполнение проверяется для определенного объекта оценки – аппаратно-программного продукта или информационной системы.

Очень важно, что безопасность в ОК рассматривается не статично, а в привязке к жизненному циклу объекта оценки. Выделяются следующие этапы:

  •  определение назначения, условий применения, целей и требований безопасности;
  •  проектирование и разработка;
  •  испытания, оценка и сертификация;
  •  внедрение и эксплуатация.

В ОК объект оценки рассматривается в контексте среды безопасности, которая характеризуется определенными условиями и угрозами.

В свою очередь, угрозы характеризуются следующими параметрами:

  •  источник угрозы;
    •  метод воздействия;
    •  уязвимые места, которые могут быть использованы;
    •  ресурсы (активы), которые могут пострадать.

Уязвимые места могут возникать из-за недостатка в:

  •  требованиях безопасности;
    •  проектировании;
    •  эксплуатации.

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

С точки зрения технологии программирования в ОК использован устаревший библиотечный (не объектный) подход. Чтобы, тем не менее, структурировать пространство требований, в «Общих критериях» введена иерархия класс-семейство-компонент-элемент.

Классы определяют наиболее общую, «предметную» группировку требований (например, функциональные требования подотчетности).

Семейства в пределах класса различаются по строгости и другим нюансам требований.

Компонент – минимальный набор требований, фигурирующий как целое.

Элемент – неделимое требование.

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

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

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

Задание по безопасности содержит совокупность требований к конкретной разработке, выполнение которых обеспечивает достижение поставленных целей безопасности.

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

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

Функциональный пакет – это неоднократно используемая совокупность компонентов, объединенных для достижения определенных целей безопасности. «Общие критерии» не регламентируют структуру пакетов, процедуры верификации, регистрации и т. п., отводя им роль технологического средства формирования ПЗ. Базовый профиль защиты должен включать требования к основным (обязательным в любом случае) возможностям. Производные профили получаются из базового путем добавления необходимых пакетов расширения, т. е. подобно тому, как создаются производные классы в объектно-ориентированных языках программирования.

Функциональные требования. Функциональные требования сгруппированы на основе выполняемой ими роли или обслуживаемой цели безопасности. Всего в «Общих критериях» представлено 11 функциональных классов, 66 семейств, 135 компонентов. Это, конечно, значительно больше, чем число аналогичных сущностей в «Оранжевой книге».

Перечислим классы функциональных требований ОК:

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

Опишем подробнее два класса, демонстрирующие особенности современного подхода к ИБ.

Класс «Приватность» содержит 4 семейства функциональных требований:

  1.  Анонимность. Позволяет выполнять действия без раскрытия идентификатора пользователя другим пользователям, субъектам и/или объектам. Анонимность может быть полной или выборочной. В последнем случае она может относиться не ко всем операциям и/или не ко всем пользователям (например, у уполномоченного пользователя может оставаться возможность выяснения идентификаторов пользователей).
    1.  Псевдонимность. Напоминает анонимность, но при применении псевдонима поддерживается ссылка на идентификатор пользователя для обеспечения подотчетности или для других целей.
    2.  Невозможность ассоциации. Семейство обеспечивает возможность неоднократного использования информационных сервисов, но не позволяет ассоциировать случаи использования между собой и приписать их одному лицу. Невозможность ассоциации защищает от построения профилей поведения пользователей (и, следовательно, от получения информации на основе подобных профилей).
    3.  Скрытность. Требования данного семейства направлены на то, чтобы можно было использовать информационный сервис с сокрытием факта использования. Для реализации скрытности может применяться, например, широковещательное распространение информации без указания конкретного адресата. Годятся для реализации скрытности и методы стеганографии, когда скрывается не только содержание сообщения (как в криптографии), но и сам факт его отправки.

Еще один показательный, с нашей точки зрения, класс функциональных требований – «Использование ресурсов», содержащий требования доступности. Он включает три семейства:

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

Мы видим, что «Общие критерии» – очень продуманный и полный документ с точки зрения функциональных требований. В то же время, хотелось бы обратить внимание и на некоторые недостатки. Первый мы уже отмечали – это отсутствие объектного подхода. Функциональные требования не сгруппированы в осмысленные наборы (объектные интерфейсы), к которым могло бы применяться наследование. Подобное положение, как известно из технологии программирования, чревато появлением слишком большого числа комбинаций функциональных компонентов, несопоставимых между собой.

В современном программировании ключевым является вопрос накопления и многократного использования знаний. Стандарты – одна из форм накопления знаний. Следование в ОК «библиотечному», а не объектному подходу сужает круг фиксируемых знаний, усложняет их корректное использование.

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

Требования доверия безопасности. Установление доверия безопасности, согласно «Общим критериям», основывается на активном исследовании объекта оценки. Форма представления требований доверия, в принципе, та же, что и для функциональных требований. Специфика состоит в том, что каждый элемент требований доверия принадлежит одному из трех типов:

  •  действия разработчиков;
  •  представление и содержание свидетельств;
  •  действия оценщиков.

Всего в ОК 10 классов, 44 семейства, 93 компонента требований доверия безопасности. Перечислим классы:

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

Применительно к требованиям доверия в «Общих критериях» сделана весьма полезная вещь, не реализованная, к сожалению, для функциональных требований, а именно, введены так называемые оценочные уровни доверия (их семь), содержащие осмысленные комбинации компонентов.

Оценочный уровень доверия 1 (начальный) предусматривает анализ функциональной спецификации, спецификации интерфейсов, эксплуатационной документации, а также независимое тестирование. Уровень применим, когда угрозы не рассматриваются как серьезные.

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

На третьем уровне ведется контроль среды разработки и управление конфигурацией объекта оценки.

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

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

На уровне 6 реализация должна быть представлена в структурированном виде. Анализ соответствия распространяется на проект нижнего уровня.

Оценочный уровень 7 (самый высокий) предусматривает формальную верификацию проекта объекта оценки. Он применим к ситуациям чрезвычайно высокого риска.

Всё вышеизложенное представляет собой обзор «Общих критериев».

4.6. Гармонизированные критерии Европейских стран

Наше изложение «Гармонизированных критериев» основывается на версии 1.2, опубликованной в июне 1991 г. от имени соответствующих органов четырех стран – Франции, Германии, Нидерландов и Великобритании. Принципиально важной чертой Европейских Критериев является отсутствие требований к условиям, в которых должна работать информационная система. Так называемый спонсор, т. е. организация, запрашивающая сертификационные услуги, формулирует цель оценки иначе говоря, описывает условия, в которых должна работать система, возможные угрозы ее безопасности и предоставляемые ею защитные функции. Задача органа сертификации – оценить, насколько полно достигаются поставленные цели, т. е. насколько корректны и эффективны архитектура и реализация механизмов безопасности в описанных спонсором условиях.

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

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

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

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

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

Гарантированность затрагивает два аспекта – эффективность и корректность средств безопасности. При проверке эффективности анализируется соответствие между целями, сформулированными для объекта оценки, и имеющимся набором функций безопасности. Точнее говоря, рассматриваются вопросы адекватности функциональности, взаимной согласованности функций, простоты их использования, а также возможные последствия эксплуатации известных слабых мест защиты. Кроме того, в понятие эффективности входит способность механизмов защиты противостоять прямым атакам (мощность механизма). Определяются три градации мощности – базовая, средняя и высокая.

Под корректностью понимается правильность реализации функций и механизмов безопасности. В Критериях определяется семь возможных уровней гарантированности корректности – от E0 до E6 (в порядке возрастания). Уровень E0 означает отсутствие гарантированности. При проверке корректности анализируется весь жизненный цикл объекта оценки – от проектирования до эксплуатации и сопровождения.

Общая оценка системы складывается из минимальной мощности механизмов безопасности и уровня гарантированности корректности.

Гармонизированные критерии Европейских стран явились для своего времени весьма передовым стандартом, они создали предпосылки для появления «Общих критериев».

Интерпретация «Оранжевой книги» для сетевых конфигураций. В 1987 г. Национальным центром компьютерной безопасности США была опубликована интерпретация «Оранжевой книги» для сетевых конфигураций. Данный документ состоит из двух частей. Первая содержит собственно интерпретацию, во второй рассматриваются сервисы безопасности, специфичные или особенно важные для сетевых конфигураций.

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

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

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

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

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

Систематическое рассмотрение вопросов доступности является новшеством по сравнению не только с «Оранжевой книгой», но и с рекомендациями X.800. Сетевой сервис перестает быть доступным, когда пропускная способность коммуникационных каналов падает ниже минимально допустимого уровня или сервис не в состоянии обслуживать запросы. Удаленный ресурс может стать недоступным и вследствие нарушения равноправия в обслуживании пользователей. Доверенная система должна иметь возможность обнаруживать ситуации недоступности, уметь возвращаться к нормальной работе и противостоять атакам на доступность.

Для обеспечения непрерывности функционирования могут применяться следующие защитные меры:

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

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

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

Данное утверждение является теоретической основой декомпозиции распределенной ИС в объектно-ориентированном стиле в сочетании с криптографической защитой коммуникаций.

Руководящие документы Гостехкомиссии России. Гостехкомиссия России ведет весьма активную нормотворческую деятельность, выпуская Руководящие документы (РД), играющие роль национальных оценочных стандартов в области информационной безопасности. В качестве стратегического направления Гостехкомиссия России выбрала ориентацию на «Общие критерии», что можно только приветствовать.

В своем обзоре мы рассмотрим два важных, хотя и не новых, руководящих документа – Классификацию автоматизированных систем (АС) по уровню защищенности от несанкционированного доступа (НСД) и аналогичную Классификацию межсетевых экранов (МЭ). Согласно первому из них, устанавливается девять классов защищенности АС от НСД к информации.

Каждый класс характеризуется определенной минимальной совокупностью требований по защите.

Классы подразделяются на три группы, отличающиеся особенностями обработки информации в АС.

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

Третья группа классифицирует АС, в которых работает один пользователь, имеющий доступ ко всей информации АС, размещенной на носителях одного уровня конфиденциальности. Группа содержит два класса – 3Б и 3А.

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

Группа содержит два класса – 2Б и 2А.

Первая группа классифицирует многопользовательские АС, в которых одновременно обрабатывается и (или) хранится информация разных уровней конфиденциальности и не все пользователи имеют право доступа ко всей информации АС. Группа содержит пять классов – 1Д, 1Г, 1В, 1Б и 1А.

Сведем в таблицу (табл. 4.3) требования ко всем девяти классам защищенности АС.

По существу, перед нами – минимум требований, которым необходимо следовать, чтобы обеспечить конфиденциальность информации. Целостность представлена отдельной подсистемой (номер 4), но непосредственно к интересующему нас предмету имеет отношение только пункт 4.1. Доступность (точнее, восстановление) предусмотрено только для самих средств защиты.


Таблица 4.3

Требования к защищенности автоматизированных систем

Подсистемы и требования

Классы

1. Подсистема управления доступом 1.1. Идентификация, проверка подлинности и контроль доступа субъектов;

+

+

+

+

+

+

+

+

+

– к терминалам, ЭВМ, узлам сети ЭВМ, каналам связи, внешним устройствам ЭВМ;

+

+

+

+

+

– к программам;

+

+

+

+

+

– к томам, каталогам, файлам, записям, полям записей.

+

+

+

+

+

1.2. Управление потоками информации

+

+

+

+

2. Подсистема регистрации и учета 2.1. Регистрация и учет:

– входа/выхода субъектов доступа в/из системы (узла сети);

+

+

+

+

+

+

+

+

+

– выдачи печатных (графических) выходных документов;

+

-

+

-

+

+

+

+

– запуска/завершения программ

и процессов (заданий, задач);

+

+

+

+

+

– доступа программ субъектов доступа к терминалам, ЭВМ, узлам сети ЭВМ, каналам связи, внешним устройствам ЭВМ, программам, томам, каталогам, файлам, записям, полям записей;

+

+

+

+

+

– изменения полномочий субъектов доступа;

+

+

+

– создаваемых защищаемых объектов доступа.

+

+

+

+

+

Окончание таблицы 4.3  

2.2. Учет носителей информации.

+

+

+

+

+

+

+

+

+

2.3. Очистка (обнуление, обезличивание) освобождаемых областей оперативной памяти ЭВМ и внешних накопителей.

+

+

+

+

+

+

2.4. Сигнализация попыток

нарушения защиты.

+

+

+

3. Криптографическая подсистема 3.1. Шифрование конфиденциальной информации.

-

-

+

-

-

-

+

+

3.2. Шифрование информации, принадлежащей различным субъектам доступа (группам субъектов) на разных ключах.

+

3.3. Использование аттестованных (сертифицированных) криптографических средств.

+

+

+

4. Подсистема обеспечения

целостности.

4.1. Обеспечение целостности программных средств и обрабатываемой информации

+

+

+

+

+

+

+

+

+

4.2. Физическая охрана средств вычислительной техники и носителей информации.

+

+

+

+

+

+

+

+

+

4.3. Наличие администратора

(службы защиты) информации в АС.

+

+

+

+

4.4. Периодическое тестирование СЗИ НСД.

+

+

+

+

+

+

+

+

+

4.5. Наличие средств восстановления СЗИ НСД.

+

+

+

+

+

+

+

+

+

4.6. Использование сертифицированных средств защиты.

+

+

+

+

+

«–» – нет требований к данному классу;

«+» – есть требования к данному классу;

«СЗИ НСД» – система защиты информации от несанкционированного доступа

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

Данный РД важен не столько содержанием, сколько самим фактом своего существования.

Основным критерием классификации МЭ служит протокольный уровень (в соответствии с эталонной семиуровневой моделью), на котором осуществляется фильтрация информации. Бесспорным является следующее: чем выше уровень, тем больше информации на нем доступно и, следовательно, тем более тонкую и надежную фильтрацию можно реализовать.

Значительное внимание в РД уделено собственной безопасности служб обеспечения защиты и вопросам согласованного администрирования распределенных конфигураций.


ЗАКЛЮЧЕНИЕ

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

Обеспечение информационной безопасности современных информационных систем требует комплексного подхода. Оно невозможно без применения широкого спектра защитных средств, объединенных в продуманную архитектуру. Далеко не все эти средства получили распространение в России, некоторые из них даже в мировом масштабе находятся в стадии становления.

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

СПИСОК ЛИТЕРАТУРЫ

1. Жельников В. Криптография от папируса до компьютера. М:ABF, 1996.

2. Защита информации в персональных ЭВМ / А. В. Спесивцев, В. А. Вегнер, А. Ю. Крутяков и др. М.: Радио и связь, ВЕСТА, 1992.

3. Петров В. А., Пискарев А. С., Шеин А. В. Информационная безопасность. Защита информации от несанкционированного доступа в автоматизированных системах: Учеб. пособие. М: МИФИ, 1995.

4. Михайлов С. Ф., Петров В. А., Тимофеев Ю. А. Информационная безопасность. Защита информации в автоматизированных системах. Основные концепции: Учебное пособие. – М.: МИФИ, 1995.

5. Лукацкий А. В. Обнаружение атак. – СПб.:БХВ-Петербург, 2001

6. Расторгуев С. П. Программные методы защиты информации в компьютерах и сетях. - М.: изд-во агентства «Яхтсмен», 1993.

7. Герасименко В. А. Защита информации в автоматизированных

системах обработки данных. М.: Энергоатомиздат, 1994, Кн.1 и 2.

8. Гайкович В. Ю., Ершов Д. В. Основы безопасности информационных технологий: Учебное пособие. М.: МИФИ, 1995.

9. Расторгуев С. П. Вирусы: биологические, социальные, психические, компьютерные. М.: Изд-во агентства «Яхтсмен», 1996.

10. Мамаев М., Петренко С. Технологии защиты информации в Интернете: Специальный справочник. – СПб:Питер, 2002

11. Медведовский И. Д., Семьянов П. В., Леонов Д. Г. Атака на Интернет. – ДМК, 1999

12. Корт С. С. Теоретические основы защиты информации: Учебное пособие. – М.:Гелиос АРВ, 2004. – 240с., ил.

13. Деднев М. А., Дыльнов Д. В., Иванов М. А. Защита информации в банковском деле и электронном бизнесе. – М.:КУДИЦ-ОБРАЗ, 2004.–512с.

14. Сипсер Р. Архитектура связи в распределенных системах. М.: Мир, 1981.

15. Герасименко В. А., Размахнин М. К., Родионов В. В. Технические средства защиты информации // Зарубеж. Радиоэлектроника. 1989, №12.

16. Акритас А. Основы компьютерной алгебры. М: Мир, 1994.

17. Введение в криптографию / Под общ. ред. В. В.Ященко. М.:МЦНМО, «Черо», 1998.

18. Стандарты информационной безопасности / В.А. Галатенко. Под ред. акад. РАН В. Б. Бетелина / М.:ИНТУИТ.РУ «Интернет-Университет Информационных Технологий», 2004.–328с.

19. Парфенов В.И. Защита информации. Словарь. – Воронеж, НП РЦИБ «Факел», 2003.

20. Саломаа А. Криптография с открытым ключом. М.: Мир, 1996.

21. Ландау С. Испытание временем, стандарт шифрования данных // Обозрение прикладной и промышленной математики. Т. 7. Вып.2. М.:ТВП, 2000. С. 240-258.

22. Щеглов А. Ю. Защита компьютерной информации от несанкционированного доступа. – СПб:Наука и техника, 2004. – 384с.

23.Рассел Р. и др. Защита от хакеров коммерческого сайта: Пер. с англ. – М.:Компания АйТи:ДМК Пресс:ТЕТРУ, 2004.–552с.

24. Касперский Е. Компьютерные вирусы: предварительные соображения // Компьютер Пресс. 1991. №5-7.

25. Николаев А. Осторожно вирус. // Компьютер Пресс, вып.6, 1990, с.3-16.

26. Карасик И. Ш. Анатомия и физиология вирусов. // Интеркомпьютер, №1, 1990. С.39-47.

27. Анджей Кадлоф. Вирусы//Компьютер. 1990, вып.1. С.44-47.

28. Безруков Н. Н. Компьютерная вирусология. Часть 1: Общие принципы функционирования, классификации и каталог наиболее распространенных вирусов в операционной системе MS DOS. Киев: КИИГА, 1990.

29. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC XT и AT. - М.: Финансы и статистика, 1991.

30. Ярочкин В. И. Информационная безопасность : Учебник для студентов вузов.–М.:Академический проект: Гаудеамус, 2004.–544с.

31. Longey D., Shain M. Data and Computer Security. Dictionary of Standards Concepts and Terms. STOCKON PRESS, New York, 1987.

32. Труды института инженеров по электротехнике и радиоэлектронике. Малый тематический выпуск «Защита информации»/ Пер. с англ., 1988. т.76. №5. М.: Мир, 1988.

33. Мафтик С. Механизмы защиты в сетях ЭВМ. Пер. с англ. М.: Мир, 1993.

34. Крылов В. В. Информационные компьютерные преступления. М.: Инфра М-Норма, 1997.

35. Расследование неправомерного доступа к компьютерной информации/ Под ред. Н. Г. Шурухова. М.: «Щит-М», 1999.

36. Кукушкин В. Д., Минаев В. А. Компьютерные преступления и информационная безопасность. М.: Новый Юрист, 1998.

37. Девянин П. Н., Михальский О. О., Правиков Д. И., Щербаков А. Ю. Программно-аппаратные средства обеспечения информационной безопасности. Теоретические основы компьютерной безопасности. М: Радио и связь, 2000.

38. Гайкович В., Першин А. Безопасность электронных банковских систем. М.: Единая Европа, 1994.

39. Грушо А. А., Тимонина Е. Е. Теоретические основы защиты информации. М.: Издательство Агентства «Яхтсмен», 1996.

40. Зегжда Д. П., Ивашко A. M. Как построить защищенную информационную систему. СПб.: НПО «Мир и семья», 1997.

41. Теория и практика обеспечения информационной безопасности. Под редакцией Зегжды П. Д. М.: Издательство Агентства «Яхтсмен», 1996.

42. Белкин П. Ю., Михальский О. О., Першаков А. С, Правиков Д. И., Проскурин В. Г., Фоменков Г. В., Щербаков А. Ю. Программно-аппаратные средства обеспечения информационной безопасности. Защита программ и данных. М.: «Радио и связь», 2000.

43. Проскурин В. Г., Крутов С. В., Мацкевич И. В. Программно-аппаратные средства обеспечения информационной безопасности. Защита в операционных системах. М.: «Радио и связь», 2000.


ПРИЛОЖЕНИЕ 1

РОССИЙСКАЯ ФЕДЕРАЦИЯ

ФЕДЕРАЛЬНЫЙ ЗАКОН О КОММЕРЧЕСКОЙ ТАЙНЕ

Принят

Государственной Думой

9 июля 2004 года

Одобрен

Советом Федерации

15 июля 2004 года

Статья 1. Цели и сфера действия настоящего Федерального закона.

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

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

3. Положения настоящего Федерального закона не распространяются на сведения, отнесенные в установленном порядке к государственной тайне, в отношении которой применяются положения законодательства Российской Федерации о государственной тайне.

Статья 2. Законодательство Российской Федерации о коммерческой тайне.

Законодательство Российской Федерации о коммерческой тайне состоит из Гражданского кодекса Российской Федерации, настоящего Федерального закона, других федеральных законов.

Статья 3. Основные понятия, используемые в настоящем Федеральном законе.

Для целей настоящего Федерального закона используются следующие основные понятия:

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

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

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

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

• доступ к информации, составляющей коммерческую тайну, – ознакомление определенных лиц с информацией, составляющей коммерческую тайну, с согласия ее обладателя или на ином законном основании при условии сохранения конфиденциальности этой информации;

• передача информации, составляющей коммерческую тайну, – передача информации, составляющей коммерческую тайну и зафиксированной на материальном носителе, ее обладателем контрагенту на основании договора в объеме и на условиях, которые предусмотрены договором, включая условие о принятии контрагентом установленных договором мер по охране ее конфиденциальности;

• контрагент – сторона гражданско-правового договора, которой обладатель информации, составляющей коммерческую тайну, передал эту информацию;

• предоставление информации, составляющей коммерческую тайну, – передача информации, составляющей коммерческую тайну и зафиксированной на материальном носителе, ее обладателем органам государственной власти, иным государственным органам, органам местного самоуправления в целях выполнения их функций;

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

Статья 4. Право на отнесение информации к информации, составляющей коммерческую тайну, и способы получения такой информации.

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

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

3. Информация, составляющая коммерческую тайну, полученная от ее обладателя на основании договора или другом законном основании, считается полученной законным способом.

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

Статья 5. Сведения, которые не могут составлять коммерческую тайну.

Режим коммерческой тайны не может быть установлен лицами, осуществляющими предпринимательскую деятельность, в отношении следующих сведений:

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

• содержащихся в документах, дающих право на осуществление предпринимательской деятельности;

• о составе имущества государственного или муниципального унитарного предприятия, государственного учреждения и об использовании ими средств соответствующих бюджетов;

• о загрязнении окружающей среды, состоянии противопожарной безопасности, санитарно-эпидемиологической и радиационной обстановке, безопасности пищевых продуктов и других факторах, оказывающих негативное воздействие на обеспечение безопасного функционирования производственных объектов, безопасности каждого гражданина и безопасности населения в целом;

• о численности, о составе работников, о системе оплаты труда, об условиях труда, в том числе об охране труда, о показателях производственного травматизма и профессиональной заболеваемости, и о наличии свободных рабочих мест;

• о задолженности работодателей по выплате заработной платы и по иным социальным выплатам;

• о нарушениях законодательства Российской Федерации и фактах привлечения к ответственности за совершение этих нарушений;

• об условиях конкурсов или аукционов по приватизации объектов государственной или муниципальной собственности;

• о размерах и структуре доходов некоммерческих организаций, о размерах и составе их имущества, об их расходах, о численности и об оплате труда их работников, об использовании безвозмездного труда граждан в деятельности некоммерческой организации;

• о перечне лиц, имеющих право действовать без доверенности от имени юридического лица;

• обязательность раскрытия которых или недопустимость ограничения доступа к которым установлена иными федеральными законами.

Статья 6. Предоставление информации, составляющей коммерческую тайну.

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

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

3. Обладатель информации, составляющей коммерческую тайну, а также органы государственной власти, иные государственные органы, органы местного самоуправления, получившие такую информацию в соответствии с частью 1 настоящей статьи, обязаны предоставить эту информацию по запросу судов, органов прокуратуры, органов предварительного следствия, органов дознания по делам, находящимся в их производстве, в порядке и на основаниях, которые предусмотрены законодательством Российской Федерации.

4. На документах, предоставляемых указанным в частях 1 и 3 настоящей статьи органам и содержащих информацию, составляющую коммерческую тайну, должен быть нанесен гриф «Коммерческая тайна» с указанием ее обладателя (для юридических лиц – полное наименование и место нахождения, для индивидуальных предпринимателей – фамилия, имя, отчество гражданина, являющегося индивидуальным предпринимателем, и место жительства).


Статья 7. Права обладателя информации, составляющей коммерческую тайну.

1. Права обладателя информации, составляющей коммерческую тайну, возникают с момента установления им в отношении такой информации режима коммерческой тайны в соответствии со статьей 10 настоящего Федерального закона.

2. Обладатель информации, составляющей коммерческую тайну, имеет право:

• устанавливать, изменять и отменять в письменной форме режим коммерческой тайны в соответствии с настоящим Федеральным законом и гражданско-правовым договором;

• использовать информацию, составляющую коммерческую тайну, для собственных нужд в порядке, не противоречащем законодательству Российской Федерации;

• разрешать или запрещать доступ к информации, составляющей коммерческую тайну, определять порядок и условия доступа к этой информации;

• вводить в гражданский оборот информацию, составляющую коммерческую тайну, на основании договоров, предусматривающих включение в них условий об охране конфиденциальности этой информации;

• требовать от юридических и физических лиц, получивших доступ к информации, составляющей коммерческую тайну, органов государственной власти, иных государственных органов, органов местного самоуправления, которым предоставлена информация, составляющая коммерческую тайну, соблюдения обязанностей по охране ее конфиденциальности;

• требовать от лиц, получивших доступ к информации, составляющей коммерческую тайну, в результате действий, осуществленных случайно или по ошибке, охраны конфиденциальности этой информации;

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

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

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

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

Статья 9. Порядок установления режима коммерческой тайны при выполнении государственного контракта для государственных нужд.

Государственным контрактом на выполнение научно-исследовательских, опытно-конструкторских, технологических или иных работ для федеральных государственных нужд или нужд субъекта Российской Федерации должен быть определен объем сведений, признаваемых конфиденциальными, а также должны быть урегулированы вопросы, касающиеся установления в отношении полученной информации режима коммерческой тайны.

Статья 10. Охрана конфиденциальности информации.

1. Меры по охране конфиденциальности информации, принимаемые ее обладателем, должны включать в себя:

•  определение перечня информации, составляющей коммерческую тайну;

• ограничение доступа к информации, составляющей коммерческую тайну, путем установления порядка обращения с этой информацией и контроля за соблюдением такого порядка;

•  учет лиц, получивших доступ к информации, составляющей коммерческую тайну, и (или) лиц, которым такая информация была предоставлена или передана;

•  регулирование отношений по использованию информации, составляющей коммерческую тайну, работниками на основании трудовых договоров и контрагентами на основании гражданско-правовых договоров;

• нанесение на материальные носители (документы), содержащие информацию, составляющую коммерческую тайну, грифа «Коммерческая тайна» с указанием обладателя этой информации (для юридических лиц – полное наименование и место нахождения, для индивидуальных предпринимателей – фамилия, имя, отчество гражданина, являющегося индивидуальным предпринимателем, и место жительства).

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

3. Индивидуальный предприниматель, являющийся обладателем информации, составляющей коммерческую тайну, и не имеющий работников, с которыми заключены трудовые договоры, принимает меры по охране конфиденциальности информации, указанные в части 1 настоящей статьи, за исключением пунктов 1 и 2, а также положений пункта 4, касающихся регулирования трудовых отношений.

4. Наряду с мерами, указанными в части 1 настоящей статьи, обладатель информации, составляющей коммерческую тайну, вправе применять при необходимости средства и методы технической защиты конфиденциальности этой информации, другие не противоречащие законодательству Российской Федерации меры.

5. Меры по охране конфиденциальности информации признаются разумно достаточными, если:

• исключается доступ к информации, составляющей коммерческую тайну, любых лиц без согласия ее обладателя;

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

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

Статья 11. Охрана конфиденциальности информации в рамках трудовых отношений.

1. В целях охраны конфиденциальности информации работодатель обязан:

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

• ознакомить под расписку работника с установленным работодателем режимом коммерческой тайны и с мерами ответственности за его нарушение;

• создать работнику необходимые условия для соблюдения им установленного работодателем режима коммерческой тайны.

2. Доступ работника к информации, составляющей коммерческую тайну, осуществляется с его согласия, если это не предусмотрено его трудовыми обязанностями.

3. В целях охраны конфиденциальности информации работник обязан:

• выполнять установленный работодателем режим коммерческой тайны;

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

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

• возместить причиненный работодателю ущерб, если работник виновен в разглашении информации, составляющей коммерческую тайну, ставшей ему известной в связи с исполнением им трудовых обязанностей;

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

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

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

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

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

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

Статья 12. Охрана конфиденциальности информации в рамках гражданско-правовых отношений.

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

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

3. В случае, если иное не установлено договором между обладателем информации, составляющей коммерческую тайну, и контрагентом, контрагент в соответствии с законодательством Российской Федерации самостоятельно определяет способы защиты информации, составляющей коммерческую тайну, переданной ему по договору.

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

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

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

Статья 13. Охрана конфиденциальности информации при ее предоставлении.

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

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

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

Статья 14. Ответственность за нарушение настоящего Федерального закона.

1. Нарушение настоящего Федерального закона влечет за собой дисциплинарную, гражданско-правовую, административную или уголовную ответственность в соответствии с законодательством Российской Федерации.

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

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

4. Лицо, которое использовало информацию, составляющую коммерческую тайну, и не имело достаточных оснований считать использование данной информации незаконным, в том числе получило доступ к ней в результате случайности или ошибки, не может в соответствии с настоящим Федеральным законом быть привлечено к ответственности.

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

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

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

Статья 16. Переходные положения.

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

Президент

Российской Федерации В. ПУТИН

Москва, Кремль

29 июля 2004 года

№ 98-ФЗ


РОССИЙСКАЯ ФЕДЕРАЦИЯ

ЗАКОН О ГОСУДАРСТВЕННОЙ ТАЙНЕ

(в ред. Федеральных законов от 06.10.1997№ 131-ФЗ,

от 30.06.2003№ 86-ФЗ, от 11. 11.2003№ 153-ФЗ, от 29.06.2004№ 58-ФЗ,

от 22.08.04№122-ФЗ, с изм., внесенными Постановлением Конституционного Суда РФ от 27.03.1996№ 8-П, определениями Конституционного Суда РФ от 10.11.2002№293-0, от 10.11.2002№ 314-0)

Настоящий Закон регулирует отношения, возникающие в связи с отнесением сведений к государственной тайне, их засекречиванием или рассекречиванием и защитой в интересах обеспечения безопасности Российской Федерации, (в ред. Федерального закона от 06.10.1997 № 131-ФЗ)

Раздел I. ОБЩИЕ ПОЛОЖЕНИЯ

Примечание. Постановлением Конституционного Суда РФ от 27.03.1996 N 8-П статья 1 признана соответствующей Конституции Российской Федерации.

Статья 1. Сфера действия настоящего Закона.

Положения настоящего Закона обязательны для исполнения на территории Российской Федерации и за ее пределами органами законодательной, исполнительной и судебной властей (далее – органы государственной власти), местного самоуправления, предприятиями, учреждениями и организациями независимо от их организационно-правовой формы и формы собственности, должностными лицами и гражданами Российской Федерации, взявшими на себя обязательства либо обязанными по своему статусу исполнять требования законодательства Российской Федерации о государственной тайне, (в ред. Федерального закона от 06.10.1997№ 131-ФЗ)

Статья 2. Основные понятия, используемые в настоящем Законе.

В настоящем Законе используются следующие основные понятия:

• государственная тайна – защищаемые государством сведения в области его военной, внешнеполитической, экономической, разведывательной, контрразведывательной и оперативно-розыскной деятельности, распространение которых может нанести ущерб безопасности Российской Федерации;

• носители сведений, составляющих государственную тайну, - материальные объекты, в том числе физические поля, в которых сведения, составляющие государственную тайну, находят свое отображение в виде символов, образов, сигналов, технических решений и процессов;

• система защиты государственной тайны – совокупность органов защиты государственной тайны, используемых ими средств и методов защиты сведений, составляющих государственную тайну, и их носителей, а также мероприятий, проводимых в этих целях;

• допуск к государственной тайне – процедура оформления права граждан на доступ к сведениям, составляющим государственную тайну, а предприятий, учреждений и организаций – на проведение работ с использованием таких сведений;

• доступ к сведениям, составляющим государственную тайну, – санкционированное полномочным должностным лицом ознакомление конкретного лица со сведениями, составляющими государственную тайну;

• гриф секретности – реквизиты, свидетельствующие о степени секретности сведений, содержащихся в их носителе, проставляемые на самом носителе и (или) в сопроводительной документации на него;

• средства защиты информации – технические, криптографические, программные и другие средства, предназначенные для защиты сведений, составляющих государственную тайну, средства, в которых они реализованы, а также средства контроля эффективности защиты информации.

• Перечень сведений, составляющих государственную тайну, – совокупность категорий сведений, в соответствии с которыми сведения относятся к государственной тайне и засекречиваются на основаниях и в порядке, установленных федеральным законодательством, (абзац введен Федеральным законом от 06.10.1997 № 131-ФЗ)

Статья 3. Законодательство Российской Федерации о государственной тайне

Законодательство Российской Федерации о государственной тайне основывается на Конституции Российской Федерации, Законе Российской Федерации «О безопасности» и включает настоящий Закон, а также положения других актов законодательства, регулирующих отношения, связанные с защитой государственной тайны.

Статья 4. Полномочия органов государственной власти и должностных лиц в области отнесения сведений к государственной тайне и их защиты

1. Палаты Федерального Собрания (в ред. Федерального закона от 06.10.1997№ 131-ФЗ):

• осуществляют законодательное регулирование отношений в области государственной тайны; (в ред. Федерального закона от 06.10.1997№ 131-ФЗ);

• рассматривают статьи федерального бюджета в части средств, направляемых на реализацию государственных программ в области защиты государственной тайны; (в ред. Федерального закона от 06.10.1997№ 131-ФЗ);

• абзац исключен. – Федеральный закон от 06.10.1997№ 131-ФЗ;

• определяют полномочия должностных лиц в аппаратах палат Федерального

Собрания по обеспечению защиты государственной тайны в палатах Федерального Собрания; (в ред. Федерального закона от 06.10.1997№ 131-ФЗ).

• абзац исключен. – Федеральный закон от 06.10.1997№ 131-ФЗ.

2. Президент Российской Федерации:

• утверждает государственные программы в области защиты государственной

тайны;

• утверждает по представлению Правительства Российской Федерации состав, структуру межведомственной комиссии по защите государственной тайны и положение о ней;

• утверждает по представлению Правительства Российской Федерации Перечень должностных лиц органов государственной власти, наделяемых полномочиями по отнесению сведений к государственной тайне, а также Перечень сведений, отнесенных к государственной тайне;

• заключает международные договоры Российской Федерации о совместном использовании и защите сведений, составляющих государственную тайну;

• определяет полномочия должностных лиц по обеспечению защиты государственной тайны в Администрации Президента Российской Федерации; (в ред. Федерального закона от 06.10.1997№ 131-ФЗ)

• в пределах своих полномочий решает иные вопросы, возникающие в связи с отнесением сведений к государственной тайне, их засекречиванием или рассекречиванием и их защитой, (в ред. Федерального закона от 06.10.1997№ 131-ФЗ)

3. Правительство Российской Федерации:

• организует исполнение Закона Российской Федерации «О государственной тайне»;

• представляет на утверждение Президенту Российской Федерации состав, структуру межведомственной комиссии по защите государственной тайны и положение о ней;

• представляет на утверждение Президенту Российской Федерации Перечень должностных лиц органов государственной власти, наделяемых полномочиями по отнесению сведений к государственной тайне;

• устанавливает порядок разработки Перечня сведений, отнесенных к государственной тайне;

• организует разработку и выполнение государственных программ в области защиты государственной тайны;

• определяет полномочия должностных лиц по обеспечению защиты государственной тайны в аппарате Правительства Российской Федерации;

• устанавливает порядок предоставления социальных гарантий гражданам, допущенным к государственной тайне на постоянной основе, и сотрудникам структурных подразделений по защите государственной тайны; (в ред. Федерального закона от 22.08.04М122-ФЗ).

• устанавливает порядок определения размеров ущерба, наступившего в результате несанкционированного распространения сведений, составляющих государственную тайну, а также ущерба, наносимого собственнику информации в результате ее засекречивания;

• заключает межправительственные соглашения, принимает меры по выполнению международных договоров Российской Федерации о совместном использовании и защите сведений, составляющих государственную тайну, принимает решения о возможности передачи их носителей другим государствам;

• в пределах своих полномочий решает иные вопросы, возникающие в связи с отнесением сведений к государственной тайне, их засекречиванием или рассекречиванием и их защитой, (абзац введен Федеральным законом от 06.10.1997№ 131-ФЗ)

4. Органы государственной власти Российской Федерации, органы государственной власти субъектов Российской Федерации и органы местного самоуправления во взаимодействии с органами защиты государственной тайны, расположенными в пределах соответствующих территорий:

• обеспечивают защиту переданных им другими органами государственной власти, предприятиями, учреждениями и организациями сведений, составляющих государственную тайну, а также сведений, засекречиваемых ими;

• обеспечивают защиту государственной тайны на подведомственных им предприятиях, в учреждениях и организациях в соответствии с требованиями актов законодательства Российской Федерации:

• устанавливают размеры предоставляемых социальных гарантий гражданам, допущенным к государственной тайне на постоянной основе, и сотрудникам структурных подразделений по защите государственной тайны на подведомственных им предприятиях, в учреждениях и организациях;

• обеспечивают в пределах своей компетенции проведение проверочных мероприятий в отношении граждан, допускаемых к государственной тайне;

• реализуют предусмотренные законодательством меры по ограничению прав граждан и предоставлению социальных гарантий лицам, имеющим либо имевшим доступ к сведениям, составляющим государственную тайну;

• вносят в полномочные органы государственной власти предложения по совершенствованию системы защиты государственной тайны (в ред. Федерального закона от 22.08.04№122-ФЗ).

5. Органы судебной власти:

• рассматривают уголовные и гражданские дела о нарушениях законодательства Российской Федерации о государственной тайне;

• обеспечивают судебную защиту граждан, органов государственной власти, предприятий, учреждений и организаций в связи с их деятельностью по защите государственной тайны;

• обеспечивают в ходе рассмотрения указанных дел защиту государственной тайны;

• определяют полномочия должностных лиц по обеспечению защиты государственной тайны в органах судебной власти.


Раздел II. ПЕРЕЧЕНЬ СВЕДЕНИЙ, СОСТАВЛЯЮЩИХ

ГОСУДАРСТВЕННУЮ ТАЙНУ

(в ред. Федерального закона от 06.10.1997№ 131-ФЗ)

Статья 5. Перечень сведений, составляющих государственную тайну (в ред. Федерального закона от 06.10.1997№ 131-ФЗ).

Государственную тайну составляют:

1) Сведения в военной области:

• о содержании стратегических и оперативных планов, документов боевого управления по подготовке и проведению операций, стратегическому, оперативному и мобилизационному развертыванию Вооруженных Сил Российской Федерации, других войск, воинских формирований и органов, предусмотренных Федеральным законом «Об обороне», об их боевой и мобилизационной готовности, о создании и об использовании мобилизационных ресурсов;

• о планах строительства Вооруженных Сил Российской Федерации, других войск Российской Федерации, о направлениях развития вооружения и военной техники, о содержании и результатах выполнения целевых программ, научно-исследовательских и опытно-конструкторских работ по созданию и модернизации образцов вооружения и военной техники;

• о разработке, технологии, производстве, об объемах производства, о хранении, об утилизации ядерных боеприпасов, их составных частей, делящихся ядерных материалов, используемых в ядерных боеприпасах, о технических средствах и (или) методах защиты ядерных боеприпасов от несанкционированного применения, а также о ядерных энергетических и специальных физических установках оборонного значения;

• о тактико-технических характеристиках и возможностях боевого применения образцов вооружения и военной техники, о свойствах, рецептурах или технологиях производства новых видов ракетного топлива или взрывчатых веществ военного назначения;

• о дислокации, назначении, степени готовности, защищенности режимных и особо важных объектов, об их проектировании, строительстве и эксплуатации, а также об отводе земель, недр и акваторий для этих объектов;

• о дислокации, действительных наименованиях, об организационной структуре, о вооружении, численности войск и состоянии их боевого обеспечения, а также о военно-политической и (или) оперативной обстановке;

2) Сведения в области экономики, науки и техники:

• о содержании планов подготовки Российской Федерации и ее отдельных регионов к возможным военным действиям, о мобилизационных мощностях промышленности по изготовлению и ремонту вооружения и военной техники, об объемах производства, поставок, о запасах стратегических видов сырья и материалов, а также о размещении, фактических размерах и об использовании государственных материальных резервов;

• об использовании инфраструктуры Российской Федерации в целях обеспечения обороноспособности и безопасности государства;

• о силах и средствах гражданской обороны, о дислокации, предназначении;

• степени защищенности объектов административного управления, о степени обеспечения безопасности населения, о функционировании транспорта и связи в Российской Федерации в целях обеспечения безопасности государства;

• об объемах, о планах (заданиях) государственного оборонного заказа, о выпуске и поставках (в денежном или натуральном выражении) вооружения, военной техники и другой оборонной продукции, о напичии и наращивании мощностей по их выпуску, о связях предприятий по кооперации, о разработчиках или об изготовителях указанных вооружения, военной техники и другой оборонной продукции;

• о достижениях науки и техники, о научно-исследовательских, об опытно-конструкторских, о проектных работах и технологиях, имеющих важное оборонное или экономическое значение, влияющих на безопасность государства;

• о запасах платины, металлов платиновой группы, природных алмазов в Государственном фонде драгоценных металлов и драгоценных камней Российской Федерации, Центральном банке Российской Федерации, а также об объемах запасов в недрах, добычи, производства и потребления стратегических видов полезных ископаемых Российской Федерации (по списку, определяемому Правительством Российской Федерации); (в ред. Федерального закона от 11.11.2003№ 153-ФЗ)

3) Сведения в области внешней политики и экономики:

• о внешнеполитической, внешнеэкономической деятельности Российской Федерации, преждевременное распространение которых может нанести ущерб безопасности государства;

• о финансовой политике в отношении иностранных государств (за исключением обобщенных показателей по внешней задолженности), а также о финансовой или денежно-кредитной деятельности, преждевременное распространение которых может нанести ущерб безопасности государства;

4) Сведения в области разведывательной, контрразведывательной и оперативно-розыскной деятельности:

• о силах, средствах, об источниках, о методах, планах и результатах разведывательной, контрразведывательной и оперативно-розыскной деятельности, а также данные о финансировании этой деятельности, если эти данные раскрывают перечисленные сведения;

• о лицах, сотрудничающих или сотрудничавших на конфиденциальной основе с органами, осуществляющими разведывательную, контрразведывательную и оперативно-розыскную деятельность;

• об организации, о силах, средствах и методах обеспечения безопасности объектов государственной охраны, а также данные о финансировании этой деятельности, если эти данные раскрывают перечисленные сведения;

• о системе президентской, правительственной, шифрованной, в том числе кодированной и засекреченной связи, о шифрах, о разработке, об изготовлении шифров и обеспечении ими, о методах и средствах анализа шифровальных средств и средств специальной защиты, об информационно-аналитических системах