Выше уже отмечалась незащищенность пароля, открытым текстом передаваемого по сети. Если злоумышленник перехватит информационный поток, он сможет восстановить оригинальный пароль и вплоть до его смены несанкционированно проникать в систему. Для аутентификации, осуществляемой по нестойким к подслушиванию каналам связи, были разработаны специальные алгоритмы, которые обеспечивают однонаправленное шифрование и постоянную смену паролей.
Один из таких алгоритмов, именуемый «
Уникальная последовательность, передаваемая клиенту при каждом соединении с сервером, называется временной меткой. Стандарт не оговаривает формат представления метки, но обычно она имеет следующий вид: processID.clock@hostname, где processID - идентификатор процесса, clock - состояние таймера сервера на момент установления соединения, а hostname - имя узла. Один из примеров временной метки показан ниже (в тексте он выделен жирным шрифтом):
· +OK mPOP POP3 server ready [email protected]
Пользователь шифрует временную метку своим паролем по алгоритму MD 5, и полученный результат (который именуется зашифрованным паролем, или, технически более грамотно, “digest”) передает на сервер.
Следующий эксперимент позволяет убедиться, что временные метки действительно различны при каждом новом соединении:
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
· +OK mPOP POP3 server ready «[email protected]»
Для передачи серверу имени пользователя и зашифрованного пароля предусмотрена команда “APOP”. По стандарту она не входит в перечень команд, обязательных для реализации, поэтому существуют сервера, которые принимают только открытый пароль. Признаком того, что сервер поддерживает команду “APOP” служит наличие временной метки в строке приглашения.
Пример использования команды APOP приведен ниже:
· +OK mPOP POP3 server ready [email protected]
· APOP ORION d373e6c3a7c6d9c5a2d6c2a1
· +OK ORION's maildrop has 1 messages (789046 octets)
В приведенном примере в почтовом ящике лежит письмо значительных размеров, поэтому, возникает потребовать в предварительном просмотре фрагмента письма без его загрузки целиком (быть может, нет никакого смысла получать это сообщение и его можно безболезненно удалить). Для этой цели предусмотрена команда “TOP msg n”, которая выводит n первых строк, сообщения с порядковым номером msg.
Например, “TOP 1 10” возвращает десять первых строк от начала первого письма. Это может выглядеть так: