CRAM-MD5

В криптографии, CRAM-MD5 является механизмом аутентификации вида запрос-ответ (англ. challenge-response authentication mechanism, отсюда «CRAM»), определенному в RFC 2195, основанному на алгоритме HMAC-MD5 MAC. Он используется некоторыми реализациями Simple Authentication and Security Layer (SASL).

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