logo
All_lections

5.2. Подтверждение подлинности взаимодействующих процессов

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

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

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

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

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

Шаг 1. Процесс А генерирует величину х и отсылает ее процессу В.

Шаг 2. Процесс В по секретному алгоритму вычисляет функцию у = f(х) и отсылает ее процессу А.

Шаг 3. Процесс А вычисляет функцию у = f(х) и сравнивает ее с полученной от процесса В.

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

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

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

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

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

Проблема распределения симметричных ключей в больших сетях не является тривиальной. Каждой паре взаимодействующих абонентов сети необходимо доставить по одному одинаковому ключу. Если необходимо предусмотреть возможность независимого обмена абонентов по принципу: "каждый с каждым", то в сети из 200 абонентов необходимо каждому из них доставить 199 мастер-ключей. Тогда в ЦРК необходимо сгенерировать N ключей. Количество ключей определяется по формуле:

где n - количество абонентов сети.

При n = 200 получается N = 9900.

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

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

Совместить достоинства обоих методов шифрования удалось благодаря разработке У. Диффи и М. Хеллманом метода получения секретного сеансового ключа на основе обмена открытыми ключами (рис. 4). По известному виду и значениям функций f(x) и f(y) при больших значениях х, у, а и р (больше 200 бит) практически невозможно за приемлемое время восстановить секретные ключи х и у.

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

  1. Путём создания одного или нескольких центров распределения ключей (ЦРК).

  2. Прямой обмен сеансовыми ключами между абонентами сети.

Недостатком первого способа является наличие возможности доступа в ЦРК ко всей передаваемой по сети информации. В случае организации прямого обмена сеансовыми ключами возникают сложности в проверке подлинности процессов или абонентов.

Рис. 4. Схема получения секретного сеансового ключа К

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

Протоколы распределения ключей для систем с симметричными и несимметричными ключами отличаются.