Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры ПАЗИ.docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
93.22 Кб
Скачать

Цифровые сертификаты

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

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

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

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

26. Изучение и обратное проектирование ПО. Понятие изучения и обратного проектирования ПО. Цели и задачи изучения работы ПО. Способы изучения ПО: статическое и динамическое изучение. Роль программной и аппаратной среды. Временная надежность (невозможность обеспечения гарантированной надежности).

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

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

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

Работа по анализу программы состоит из трех основных этапов.

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

2. Восстановление алгоритмов функционирования программы. Именно на этом этапе производится изучение программы.

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

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

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

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

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

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

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

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

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

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