Техника сетевых атак
Шрифт:
· credentials required to log on to the server. This is usually caused by not s
· ending the proper WWW-Authenticate header field.«/p»
· «p»Please contact the Web server's administrator to verify that you have permiss
· ion to access to requested resource.«/p»
Первые два случая говорят о правильной конфигурации сервера (с точки зрения политики безопасности), но факт авторизации
Механизмы аутентификации HTTP-серверов довольно многочисленны, поэтому ниже будет описан лишь один, наиболее распространенный, из них. Всю остальную информацию можно почерпнуть из технической документации RFC-2068 и RFC-2069.
Начиная со спецификации HTTP 1.0, код ошибки “401” зарезервирован за «Access Denied, need authenticate [261]». Именно его возвратил сервер в последнем примере. Ниже заголовок ответа сервера приводится еще раз:
· HTTP/1.1 401 Access Denied
· WWW-Authenticate: Basic realm=" 195.161.42.222 "
· Content-Length: 644
· Content-Type: text/html
Выделенная жирным шрифтом строка «Basic» указывает на требуемый метод аутентификации, а “realm” содержит имя области аутентификации. На сервере может существовать несколько независимых друг от друга зон, каждая со своей схемой доступа. В приведенном случае, очевидно, единственная область аутентификации распространяется на весь сервер.
Чтобы получить доступ к любому ресурсу, расположенному на 195.161.42.222, необходимо сообщить имя пользователя и пароль, задаваемые полем “Authorization” в заголовке запроса, и закодированные согласно правилам выбранного метода аутентификации.
В простейшем случае, когда не требуется прибегать к серьезным защитным механизмам, используют метод basic, передающий открытый, незашифрованный пароль в кодировке base64. При использовании клиентом метода basic появляется возможность «подглядывания» пароля злоумышленником, сумевшим перехватить сетевой трафик [262]. Довольно часто администраторы игнорируют такую угрозу и разрешают метод based для доступа к критической к разглашению информации [263], что категорически не рекомендуется в RFC-2068.
Врезка «информация»
«The most serious flaw in Basic authentication is that it results in the essentially clear text transmission of the user's password over the physical network. It is this problem which Digest Authentication attempts to address.
Because Basic authentication involves the clear text transmission of passwords it SHOULD never be used (without enhancements) to protect sensitive or valuable information.»
RFC-2068, раздел 15.1, страница 140.
Врезка «алгоритм кодировки base64»
Битовый поток разбивается на двадцати четырех битовые сегменты, делящиеся на четыре части по 6 бит (26– 64, отсюда и название), каждая из которых содержит один символ, кодируемый в соответствии с особой таблицей, состоящей из читабельных кодов ASCII.
Выполнить вручную перекодировку строки пароля в base64-формат довольно-таки затруднительно, но у пользователей Windows всегда под рукой средство, автоматизирующее эту задачу. Речь идет о приложении “Outlook Express”. Достаточно настроить его надлежащим образом (в меню
Рисунок 23 Настойка Outlock Express для пересылки писем в кодировке Base64
При этом строка “KPNC:MyGoodPassword” [264] будет выглядеть следующим образом (в меню «Файл» выбрать «Свойства», перейти к закладке «Подробности», кликнуть по кнопке «Исходный текст сообщения»):
· S1BOQzpNeUdvb2RQYXNzd29yZ
Полный заголовок запроса для доступа к главной странице сервера может выглядеть, например, так:
· GET / HTTP/1.0
· Authorization: Basic S1BOQzpNeUdvb2RQYXNzd29yZ
Если пароль введен правильно, то сервер вернет запрошенный ресурс. В противном случае появится сообщение об ошибке.
Врезка «замечание»
В Internet-магазинах и аналогичных системах, предъявляющих повышенное требование к безопасности, широко используется шифрование данных на уровне транспортного протокола TCP.
Популярный механизм SSL (Secure Sockets Layer) представляет собой самостоятельный протокол, применяющийся для передачи зашифрованного пароля и пользовательских данных, поверх которого могут работать как HTTP, так FTP, SMTP и другие протоколы.
Реализации SSL поддерживают множество криптоалгоритмов, таких как RSA, DES, MD5, выбираемых в зависимости от ценности и рода передаваемой информации. К сожалению, ранние версии ограничивались ключами небольшой длины, но с развитием Internet - торговли это было исправлено [265].
Изучение протокола SSL и методов криптоанализа выходит за рамки данной книги. Интересующиеся этим вопросом могут обратиться к домашней станице Павла Семьянова , посвященной криптографии и ее безопасности.
Метод POST, аналогично PUT, предназначен для передачи данных от клиента на сервер. Однако они не сохраняются в виде файла, а передаются скрипту параметрами командой строки. С первого взгляда непонятно, какими соображениями руководствовались разработчики при введении нового метода. Ведь с этой задачей неплохо справляется и GET! Пример, приведенный ниже, доказывает справедливость такого утверждения:
· «BODY»
· «A HREF=”lightning.prohosting.com/~kpnc/cgi-bin/post.pl?user=kpnc amp;pass=saltmine”»
· Click«/A»
· «/BODY»
Рисунок 024 показывает, что параметры, передаваемые скрипту методом GET, отображаются в адресной строке браузера и доступны для изучения всем желающим. А это нехорошо с точки зрения политики безопасности.
Рисунок 024 Передача параметров методом GET