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 включает в себя один цикл вызов-ответ и инициируется сервером:

  1. Запрос: В аутентификации CRAM-MD5 сервер первый посылает строку запроса клиенту.
  2. Ответ: Клиент отвечает строкой, созданной следующим образом.
    1. Запрос был послан как строка, закодированная в base64, которая декодируется.
    2. Декодированный запрос зашифрован HMAC-MD5 паролем пользователя в качестве секретного ключа.
    3. Зашифрованный запрос преобразовывается в строку шестнадцатеричных цифр.
    4. Имя пользователя и пробельный символ присоединяются спереди к шестнадцатеричным цифрам.
    5. Результат объединения затем кодируется base64 и посылается серверу.
  3. Сравнение: Сервер использует тот же метод для вычисления ожидаемого ответа. Если полученный ответ и ожидаемый ответ совпадают, то аутентификация пройдена успешно.

Сильные стороны

Односторонний хеш и новая случайная задача обеспечивают три типа безопасности:

  • Посторонние не могут дублировать хеш, не зная пароля. Это обеспечивает аутентификацию.
  • Посторонние не могут воспроизвести хэш. Это называется предотвращением воспроизведения.
  • Наблюдатели не узнают пароль; это называется секретностью.

Слабые стороны

  • Нет взаимной аутентификации: клиент не проверяет сервер. Однако аутентификация 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).