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

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

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

1) Обмен идентификаторами

2) Процедура «рукопожатия»

3) Аутентификация при распределении ключей

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

Различают два варианта выполнения процедуры рукопожатия:

Обмен вопросами и ответами.

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

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

2) Процесс В по секретному алгоритму вычисляет и пересылает ее процессу А.

3) Процесс А также вычисляет функцию и сравнивает ее с полученной от процесса В.

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

Третий способ – это аутентификация при распределении ключей. Распределение ключей является одной из процедур управления ключами(генерация, распределение, хранение, смена). Обычно выделяют две категории ключей:

1) Ключи шифрования данных

2) Ключи шифрования ключей для их передачи и хранения

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

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

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

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

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