Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОИУСЗИ / MSZI_2003

.pdf
Скачиваний:
90
Добавлен:
20.05.2015
Размер:
7.81 Mб
Скачать

Программы защиты программ 331

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

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

4.Иметь возможность криптографического закрытия данных в базах.

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

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

Программы защиты программ

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

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

В соответствии с этим необходимо использовать следующие меры по защите программ:

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

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

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

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

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

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

332 Глава 17. Программные методы защиты

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

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

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

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

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

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

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

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

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

Защита от копирования

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

Программы ядра системы безопасности 333

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

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

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

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

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

Невозможность трассировки по существенно важным прерываниям с помощью стандартных средств. При этом будет скрыт обмен программы с “внешним миром”, — диском, DOS и т.д.

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

— чтобы их вскрытие не давало существенной информации об их работе.

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

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

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

система с “навесным” проверочным модулем, созданным по технологии файлового вируса;

системы с внешним проверочным модулем, вынесенным в отдельную программу;

системы с внутренними функциями проверки.

Модуль защиты от просмотра и анализа логики системы.

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

Программы ядра системы безопасности

334 Глава 17. Программные методы защиты

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

называемый ядром системы безопасности.

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

загрузка программ защиты;

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

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

проверка условий разрешения доступа;

проверка распределения и использования паролей и кодов;

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

создание и ведение массивов данных и полномочий пользователей;

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

некоторые вспомогательные функции.

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

Программы контроля

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

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

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

Программы ядра системы безопасности 335

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

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

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

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

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

Глава 18

Криптографическая защита

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

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

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

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

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

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

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

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

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

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

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

имеются незаконные пользователи, которые стремятся овладеть этой информацией.

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

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

извлечь из этого сообщения защищаемую информацию.

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

Широко применяется современный метод “микроточки”: сообщение записывается с помощью современной техники на очень маленький носитель — “микроточку”, которая пересылается с обычным письмом, например, над маркой или где-нибудь в другом заранее обусловленном месте.

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

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

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

Вскрытие шифра — процесс получения защищаемой информации (открытого текста) из шифрованного сообщения (шифртекста) без знания примененного шифра.

Шифрование — процесс применения шифра и защищаемой информации, т.е. преобразование защищаемой информации в шифрованное сообщение с помощью определенных правил, содержащихся в шифре.

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

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

338 Глава 18. Криптографическая защита

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

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

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

Немного истории

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

Свой след в истории криптографии оставили многие хорошо известные исторические личности.

Первые сведения об использовании шифров в военном деле связаны с именем спартанского полководца Лисандра (шифр “Сциталь”, V век д.н.э). Цезарь использовал в переписке шифр, который вошел в историю как “шифр Цезаря”. В древней Греции был изобретен вид шифра, который в дальнейшем назывался “Квадрат Полития”. Братство франкмасонов с момента своего возникновения (VIII век) разработало и использовало целую систему особых шифров.

Одну из первых книг по криптографии написал аббат И. Тритемий (1462-1516 гг.) живший в Германии. В 1566 г. известный механик и математик Д. Кардано опубликовал работу с описанием изобретенной им системы шифрования (“решетка Кардано”). Франция XVI века оставила в истории криптографии шифры короля Генриха IX и Ришелье. В России наиболее известным шифром является “цифровая азбука” 1700 года, автором которой был Петр I.

Немного истории 339

Некоторые сведения о свойствах шифров и их применения могло найти в художественной литературе и кино. Хорошее и подробное объяснение одного из простейших шифров — шифра замены и методов его вскрытия содержится в двух известных рассказах: “Золотой жук” Э. По и “Пляшущие человечки” А. Конан-Дойля.

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

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

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

Шифр Цезаря. Этот шифр реализует следующие преобразования открытого текста: каждая буква открытого текста заменяется третьей после нее буквой в алфавите, который считается по кругу, т.е. после буквы “я” следует буква “а”. Поэтому класс шифров, к которым относится и шифр Цезаря, — это подстановочные шифры.

Например, открытый текст КРИПТОГРАФИЯ при таком способе шифрования преобразуется в шифртекст НУЛТХСЕУГЧЛВ.

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

Шифр Виженера. Этот шифр относится к семейству полиалфавитных подстановочных шифров. Его удобнее всего представить, как шифр Цезаря с переменной величиной сдвига. Чтобы знать, на сколько сдвигать очередную букву открытого текста, заранее оговаривается способ запоминания сдвигов. Для этой цели используется ключевое слово, каждая буква которого своим номером в алфавите указывает величину сдвига. Ключевое слово повторяется столько раз, сколько нужно для замены всех букв открытого текста. Например, если ключевое слово ВАЗА, а открытый текст — КРИПТОГРАФИЯ, значит, ключевое слово даст следующую последовательность сдвигов букв открытого текста

319131913191

При таком способе шифрования открытый текст преобразуется в шифротекст

НССРХПЛСГХСА

340 Глава 18. Криптографическая защита

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

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

Условно можно выделить три принципиально разных этапа в развитии математического аппарата криптографии.

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

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

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

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

сложность и стойкость криптографического закрытия должны выбираться в зависимости от объема и степени секретности данных;

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

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

выполнение процедур прямого и обратного преобразований должно быть формализованным. Эти процедуры не должны зависеть от длины сообщений;

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

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

Классификация криптографических методов

В настоящее время не существует законченной и общепринятой классификации криптографических методов, так как многие из них находятся в стадии развития и становления. Наиболее целесообразной представляется классификация, представленная на рис. 18.1.