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

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

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




ьно, они не могут должным образом заполнить поля P3 и P4. Однако такой пары не имеют и клиенты, первый раз устанавливающие соединение с сервером, или по каким-либо причинам утратившие пару IDauthkey и authkey. Следовательно, им придётся устанавливать соединение с низким приоритетом, это может занять довольно много времени, в зависимости от наличия других соединений, осуществляемых с сервером в данный момент. Это очевидное неудобство предлагаемой схемы.

Для защиты от случайного обнаружения атакующими действующей пары IDauthkey и authkey, сервер, получив корректные поля P3 и P4 и проведя ускоренную процедуру авторизации с высоким приоритетом, в случае отрицательного результата разрывает соединение не сразу же, а спустя такое время, за которое он ответил бы (разрывом соединения) в случае недействительных P3 и P4. Таким образом, атакующие лишаются возможности случайно обнаружить IDauthkey и authkey.

Предлагаемая схема позволяет создавать защиту от SYN-атаки, основанной на переполнении таблицы TCB (transmission control block)[6], возникающей при используемой атакующими тактики посылки многочисленных запросов на установление соединения с установленным флагом SYN[6]. Использование SYN-cookies также не является решением, поскольку, если алгоритм вычисления cookies либо является слабым, и его могут незамедлительно использовать атакующие, либо он является криптографически стойким, но тогда есть возможность перегрузить вычислениями сервер. Для борьбы против SYN-атаки можно применить технологию обратного вызова (callback). Эта технология использовалась, например, Интернет-провайдерами для дополнительной аутентификации клиентов.

Для защиты от SYN-атаки может использоваться следующая модификация предлагаемой схемы. Сервер вообще не имеет открытых портов TCP, запросы от клиентов он принимает по UDP. Клиент определяет номер порта, на котором он будет ожидать входящее соединения от сервера. Свой адрес и выбранный номер порта он сообщает серверу вместе со своим идентификатором и сеансовыми ключами в поле P1. Должным образом сформированное сообщение, содержащее поля P1, P2, P3 и P4, он посылает серверу по протоколу UDP. После проверки на основе (IDauthkey, authkey) сервер помещает пакет в очередь на обслуживание либо с высоким приоритетом, либо с низким, в зависимости от результата проверки. Сервер, расшифровав часть P1 сообщения, извлекает из нее IP-адрес клиента и номер порта, на котором клиент ожидает входящего соединения от сервера, и по которому сервер устанавливает соединение с клиентом по протоколу TCP, используя сеансовые ключи, переданные клиентом. Таким образом, сервер может просто игнорировать все входящие пакеты с флагом SYN [6], поскольку он таких пакетов вообще не ждёт. Практическому применению этой технологии несколько мешает широкое распространение маскарада адресов, вызванного дефицитом адресного пространства IPv4, а также применение клиентами межсетевых экранов. Впрочем, в этом случае клиент должен использовать посредника (proxy), установленного на корпоративном межсетевом экране (firewall, брандмауэр), либо должным образом сконфигурированную политику безопасности на сетевом экране.

Для защиты от атаки с повтором трафика (replay-атака), сервер может запоминает в своей базе данных все ранее использованные сеансовые ключи. Если при расшифровке поля P1 было обнаружено, что хотя бы один из ключей был ранее использован - такое сообщение отвергается и соединение не устанавливается. Либо это replay-атака, либо просто ключи были неудачно сформированы, впрочем, вероятность этого события при достаточной длине ключа пренебрежимо мала. Для защиты в случае возможной утечки информации из этой базы данных, сервер хранит не целые ключи K1 и K2, а только половину бит от них. Если бы сервер хранил у себя в базе данных все ранее использованные ключи целыми, то утечка информации из этой базы данных скомпрометировала бы все сеансы связи с данным сервером. Поскольку сервер хранит только половину ключа, то при соответствующем выборе длины ключа, утечка этих половинок никак не ослабила бы систему, но хранение только половины ключа делает маловероятным случайное совпадение двух половинок ключей. В настоящее время безопасной iитается длина ключа 128 бит, следовательно, длину сеансовых ключей K1 и K2 следует выбрать по 256 бит, соответственно, вероятность случайного совпадения ключей составляет всего лишь 2-128.

Запоминание ключей в базе данных незначительно тормозит работу сервера, поскольку время поиска с включением в базу данных, построенную как АВЛ-дерево, растет всего лишь логарифмически с ростом размера базы данных [7]. Сам же размер базы данных тоже не является существенной трудностью, учитывая прогресс в увеличении ёмкости и производительности дисковых накопителей.

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

5. ФОРМИРОВАНИЕ ТРЕБОВАНИЙ К ПО

5.1 Общие сведения

Для решения основной задачи дипломного проекта которая заключалась в реализации и исследовании описанной в главе 4 схемы необходимо разра?/p>