CRAM-MD5
Последнее изменение этой страницы: 19:54, 12 января 2018.
В криптографии CRAM-MD5 является механизмом аутентификации вида запрос-ответ (CRAM) на основе алгоритма HMAC-MD5. В качестве одного из механизмов, поддерживаемых SASL (Simple Authentication and Security Layer), он часто используется в программном обеспечении электронной почты как часть аутентификации SMTP и для аутентификации пользователей POP и IMAP, а также в приложениях, реализующих LDAP, XMPP, BEEP и другие протоколы.
Когда такое программное обеспечение требует аутентификации по незашифрованным соединениям, CRAM-MD5 предпочтительнее механизмов, которые передают пароли «в ясном виде», такие как LOGIN и PLAIN. Однако он не может предотвратить вывод пароля с помощью метода "грубой силы", поэтому он менее эффективен, чем альтернативные механизмы, которые позволяют избежать паролей или использовать соединения, зашифрованные с помощью TLS (Transport Layer Security).
Протокол
Протокол CRAM-MD5 включает в себя один цикл вызов-ответ и инициируется сервером:
- Запрос: В аутентификации CRAM-MD5 сервер первый посылает строку запроса клиенту.
- Ответ: Клиент отвечает строкой, созданной следующим образом.
- Запрос был послан как строка, закодированная в base64, которая декодируется.
- Декодированный запрос зашифрован HMAC-MD5 паролем пользователя в качестве секретного ключа.
- Зашифрованный запрос преобразовывается в строку шестнадцатеричных цифр.
- Имя пользователя и пробельный символ присоединяются спереди к шестнадцатеричным цифрам.
- Результат объединения затем кодируется base64 и посылается серверу.
- Сравнение: Сервер использует тот же метод для вычисления ожидаемого ответа. Если полученный ответ и ожидаемый ответ совпадают, то аутентификация пройдена успешно.
Сильные стороны
Односторонний хеш и новая случайная задача обеспечивают три типа безопасности:
- Посторонние не могут дублировать хеш, не зная пароля. Это обеспечивает аутентификацию.
- Посторонние не могут воспроизвести хэш. Это называется предотвращением воспроизведения.
- Наблюдатели не узнают пароль; это называется секретностью.
Слабые стороны
- Нет взаимной аутентификации: клиент не проверяет сервер. Однако аутентификация SASL обычно выполняется через соединение TLS, которое проверяет идентификацию сервера.
- Слабое хранилище паролей: некоторые реализации требуют доступа к открытым паролям пользователей, в то время как другие (например, Dovecot) используют промежуточный шаг процесса HMAC для хранения MD5-хэша пароля (строго говоря, внутренние переменные HMAC i_key_pad и o_key_pad). Такие реализации используют то, что для вычисления md5 (something_with_64_bytes || something_else) нужно знать только md5_internal (something_with_64_bytes) и something_else (из-за использования Merkle-Damgård в MD5; md5_internal - md5 без окончательного блока). Поскольку i_key_pad и o_key_pad находятся в начале внутреннего и внешнего хэшей HMAC и имеют длину 64 байта, этот факт может быть использован.
- Угроза обратимости: атака в автономном словаре для восстановления пароля возможна после захвата успешного обмена протоколом CRAM-MD5 (например, с использованием Cain & Abel).
- Возможность прокси-сервера: в отличие от схемы соглашения с ключом с паролем (PAKE), CRAM-MD5 не устанавливает секрет, разделенный между двумя конечными точками, но неизвестный для подслушивания. Поэтому при атаке посредник может открыть соединение с сервером, получить вызов, предложить вызов клиенту, получить ответ клиента и перенаправить ответ на сервер. Теперь он может отказаться от дальнейших сообщений клиента, выдавая себя за клиента на сервер.
Стандарты
CRAM-MD5 определяется стандартным протоколом IETF RFC 2195, который с раннего 1997 года заменяет RFC 2095. Эти фактические стандарты определяют CRAM-MD5 как метод аутентификации для протоколов управления почтовыми ящиками POP и IMAP.
CRAM-MD5 является одним из методов проверки подлинности, поддерживаемых Simple Authentication and Security Layer (SASL), определенных в 2006 году RFC 4422, который заменяет стандарт RFC 2222 от 1997 года.
IANA поддерживает реестр механизмов SASL, включая CRAM-MD5, для ограниченного использования.
CRAM-MD5 требуется для ретрансляции почты по запросу(ODMR), определенной в RFC 2645.
Источники
CRAM-MD5 // Википедия. [2017—2017]. Дата обновления: 06.12.2017. URL: https://en.wikipedia.org/wiki/CRAM-MD5 (дата обращения: 06.12.2017).
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.