Техника сетевых атак
Шрифт:
· Content-Type: text/plain;
· charset=" windows-1251 "
Если теперь в правом окне начать вводить шестнадцатеричные значения символов, в левом окне станет появляться исходный текст письма (смотри рисунок 006):
Рисунок 006 Декодирование сообщения, переданного в формате MIME
Детальное
Врезка «для начинающих» *
Что такое RFC (Request For Comments)? В силу открытости архитектуры сети Internet и необходимости поддерживать общие соглашения между независимыми разработчиками появился набор стандартов и соглашений, доступный для массового использования.
Любой разработчик имеет право внести свое предложение. Оно будет подвергнуто тщательной экспертной оценке и, если не встретит никаких возражений, будет добавлено в RFC.
За каждым соглашением закреплен определенный номер, так, например, POP3 протокол описывается в RFC-1081, RFC-1082, RFC-1225, RFC-1725, RFC-1939.
Для удаления сообщений из почтового ящика предусмотрена команда “DELE”, которая принимает в качестве аргумента порядковый номер уничтожаемого сообщения. Один из примеров ее использования продемонстрирован ниже:
· +OK QPOP (version 2.52) at mail.computerra.ru starting.
· LIST
· +OK 4 messages (789046 octets)
· 1 4363
· 2 6078
· 3 4933
· 4 4644
·.
· DELE 1
· +OK message 1 deleted
· LIST
· +OK 3 messages (16655 octets)
· 2 6078
· 3 4933
· 4 4644
·.
Внимание: непосредственно после операции удаления перенумерации сообщений не происходит! Т.е. уничтоженное сообщение просто «выпадает» из списка, а следующие за ним сообщение не занимает этот индекс, и не сдвигается вверх. Сообщения будут перенумерованы только при следующем сеансе работы с сервером.
Сеанс завершает команда “QUIT”. Сервер переходит в состояние обновления транзакции (transaction update) и разрывает соединение. Выглядеть это может следующим образом:
· +OK QPOP (version 2.52) at mail.computerra.ru starting.
· QUIT
· +OK POP3 server at mail.ru signing off
Если до обновления транзакции произойдет обрыв соединения, сервер выполнит откат транзакции, т.е. приведет почтовый ящик в тот вид, каким он был до начала последнего сеанса связи и все удаленные сообщения окажутся восстановленными (вернее, правильнее было бы сказать, не удаленными, поскольку команда “DELE” физически не уничтожает письма, а лишь помечает их для удаления, которое происходит
Ниже будут рассмотрены некоторые дополнительные возможности протокола POP3. Для проведения описанных экспериментов потребуется подключиться к серверу, поддерживающему такие расширения. Одним из подходящих серверов является бесплатная служба электронной почты mail.ru.
Подключение к серверу mail.ru
После успешного установления TCP-соединения, сервер mail.ru возвращает приглашение, содержащее уникальный идентификатор (на рисунке 004 он обведен вокруг пером):
Приглашение сервера mail.ru
Выше уже отмечалась незащищенность пароля, открытым текстом передаваемого по сети. Если злоумышленник перехватит информационный поток, он сможет восстановить оригинальный пароль и вплоть до его смены несанкционированно проникать в систему. Для аутентификации, осуществляемой по нестойким к подслушиванию каналам связи, были разработаны специальные алгоритмы, которые обеспечивают однонаправленное шифрование и постоянную смену паролей.
Один из таких алгоритмов, именуемый «запрос-отклик», работает следующим образом: сервер посылает клиенту случайную последовательность условно именуемую меткой. Клиент зашифровывает ее, используя в качестве ключа свой пароль, и полученный результат отправляет серверу. При этом алгоритм шифрования специальным образом подобран так, чтобы, зная зашифрованный пароль и метку, было бы невозможно найти ключ шифрования иначе, чем прямым перебором. Затем сервер самостоятельно шифрует метку хранящимся у него паролем пользователя и сравнивает полученные результаты. Если они идентичны, следовательно, пользователь ввел правильный пароль и наоборот. Подробнее о схеме «запрос-отклик» рассказывается в главе «Атака на Windows NT» и здесь, во избежание повторения, никакие математические выкладки приводиться не будут.
Уникальная последовательность, передаваемая клиенту при каждом соединении с сервером, называется временной меткой. Стандарт не оговаривает формат представления метки, но обычно она имеет следующий вид: processID.clock@hostname, где processID - идентификатор процесса, clock - состояние таймера сервера на момент установления соединения, а hostname - имя узла. Один из примеров временной метки показан ниже (в тексте он выделен жирным шрифтом):
· +OK mPOP POP3 server ready 93089.95277996@mail.ru
Пользователь шифрует временную метку своим паролем по алгоритму MD 5, и полученный результат (который именуется зашифрованным паролем, или, технически более грамотно, “digest”) передает на сервер.
Следующий эксперимент позволяет убедиться, что временные метки действительно различны при каждом новом соединении:
· +OK mPOP POP3 server ready «29238.953050801@aport.ru»
· +OK mPOP POP3 server ready «29554.953050821@aport.ru»
· +OK mPOP POP3 server ready «29857.953050839@aport.ru»