Быстрая схема аутентификации и обмена ключами, устойчивая к DDoS-атаке

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование




), Ек (St (Ra, К А, В))

  1. Боб проверяет подписи Трента. Затем он посылает Алисе вторую часть сообщения Трента, полученного на этапе (5), и новое случайное число, зашифровав все открытым ключом Алисы.

EK (ST(RA,K,A,B), RB)

  1. Алиса проверяет подпись Трента и свое случайное число. Затем она посылает Бобу второе случайное число, шифрованное сеансовым ключом.

Ek(Rb)

  1. Боб расшифровывает свое случайное число и проверяет, что оно не изменилось.

Рисунок 3.5 Woo-Lam

.6 Таблица сравнения аналогов

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

Таблица 3.1 - Сравнение характеристик протоколов аутентификации и обмена ключами

Характеристики для сравненияYahalomNeedham-SchroederKerberosDASSWoo-LamСимметричная криптография++++-Ассиметричная криптография---++Использование доверенного сервера+++++Использование временных меток--++-Использование случайных данных++--+Разделяемый секрет+----Доказывает присутствие сторонA&BA&BA&BA&BA&B4. ОПИСАНИЕ РЕАЛИЗУЕМОЙ СХЕМЫ

Вся процедура аутентификации и обмена сеансовыми ключами в предлагаемой схеме состоит из отправки клиентом (C) серверу (S) одного-единственного пакета, составленного из четырех полей P1, P2, P3 и P4. После анализа этого пакета сервер либо принимает решение об установлении связи с клиентом, в случае положительной аутентификации, либо просто игнорирует данное соединение, не загружая свой канал связи лишним исходящим трафиком. Это делается возможным благодаря использованию возможности многозадачных операционных систем, применяемых на серверах, устанавливать различные приоритеты процессам, порождаемым для обслуживания запросов на установление соединений. При этом авторизованные соединения получают высокий уровень приоритета, а неавторизованные соединения имеют настолько низкий приоритет, что даже большое количество одновременно рассматриваемых запросов не может замедлить скорость обслуживания высокоприоритетных соединений. Большое количество ожидающих соединений вызывает только расход оперативной памяти, но с удешевлением микросхем оперативной памяти это не представляет проблемы.

C->S: P1=EPks(K1, K2, IDc); P2=EK1(E Skc(hash(P1))); =IDauthkey; P4=MACauthkey (P1, P2);>C: EK2(Hello, client, MAC K2 (Hello, client));

Поле P1 представляет собой два сеансовых ключа и идентификатор ключа клиента, зашифрованные на публичном ключе сервера Pks. Аутентификация сервера будет осуществлена тем фактом, что сервер смог расшифровать это поле на своём секретном ключе Sks, получить сеансовые ключи и ответить клиенту подтверждающим сообщением. Идентификатор ключа клиента IDc рекомендуется вычислять как хэш от соответствующего публичного ключа клиента, таким образом, совместить функции идентификатора клиента и отпечатка (fingerprint) публичного ключа iелью защиты от подмены идентификатора или открытого ключа. Поле P2 представляет собой цифровую подпись P1, вычисленную на секретном ключе клиента Skc. Аутентификация клиента осуществляется расшифровкой поля P2 на публичном ключе клиента Pkc, хранящемся на сервере в базе публичных ключей и их сертификатов, и сравнением полученного результата с вычисленным хэшем от поля P1. iелью защиты конфиденциальности клиента, это поле зашифровано на сеансовом ключе K1. Если бы это поле не было зашифровано, существовала бы возможность раскрыть инкогнито клиента, просто перебрав публичные ключи всех клиентов. Поля P3 и P4 предназначены для быстрой аутентификации сообщения, чтобы быстро различать пакеты, сформированные добропорядочными клиентами. Для этого клиенты в ходе своебы быстро различать пакеты, сформированные добропорядочными клиентами. Для этого клиенты в ходе своего предыдущего сеанса согласовывают с сервером ключ аутентификации сообщения authkey и соответствующий ему идентификатор IDauthkey. Они должны быть сформированы таким образом, чтобы используя IDaythkey, содержащийся в поле P3 в открытом виде, нельзя было определить authkey, идентификатор клиента, сеансовые ключи или какую-то другую информацию. Допустимо вычислять пару IDauthkey и authkey, например, как криптостойкий хэш от сеансовых ключей K1 и K2. Сервер и клиент запоминают пару (IDauthkey, authkey) с тем, чтобы использовать её при следующем сеансе связи. Если в поле P3 был указан правильный IDauthkey, сервер использует соответствующий ему authkey и вычисляет код аутентификации сообщения (Message Authentication Code, MAC). Если вычисленный код совпадает с указанным в поле P4, это означает, что данное сообщение было сформировано добропорядочным клиентом, следовательно, можно приступать к относительно трудоёмким вычислениям на секретном ключе с высоким приоритетом процесса. Поскольку код аутентификации сообщения не несет криптографической нагрузки, он не обязан вычисляться слишком стойким способом, важно, чтобы его вычисление осуществлялось быстрым алгоритмом, возможно, специально облегченным для этой цели. Стойкость MAC должна быть достаточна, чтобы атакующий, перехвативший пакет клиента, не мог вычислить authkey. Пара IDauthkey и authkey используется только один раз - при успешной пром, предотвращая многократное использование каким-либо способом полученной от легального пользователя пары IDauthkey и authkey.

Атакующие не имеют ранее согласованной пары IDauthkey и authkey, следовател