RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Перевод выполнен Алексеем Паутовым в рамках некоммерческого проекта RussianLDP (http://www.rldp.ru/). Именно на этом сайте и надлежит искать новые версии, если таковые будут.

35. Аутентификатор cram_md5

Аутентификационный механизм cram_md5 описан в RFC 2195. Сервер посылает клиенту строку вызова, ответ содержит имя пользователя и CRAM-MD5 строки вызова, комбинированные с секретной строкой (паролем), который известен обоим, клиенту и серверу. Таким образом, секретная строка не посылается по сети открытым текстом, что делает этот аутентификатор более безопасным, чем plaintext. Однако, обратная сторона это то, что секретная строка должна быть доступна в открытом виде с обеих сторон.

35.1. Использование cram_md5 как сервера

Этот аутентификатор имеет одну серверную опцию, которая должна быть установлена для конфигурирования аутентификатора как сервера:
Имя Использование Тип Значение по умолчанию
server_secret cram_md5string† не задана

Когда серевер получает ответ клиента, имя пользователя помещается в переменную раскрытия $auth1, а server_secret раскрывается, для получения пароля этого пользователя. Тогда сервер вычисляет CRAM-MD5, который должен был послать клиент, и проверяет, что получена корректная строка. Если раскрытие server_secret принудительно неудачно, аутентификация неудачна. Если раскрытие неудачно по иной причине, клиенту возвращается временный код ошибки.

Для совместимости с предыдущими релизами exim, имя пользователя также помещается в $1. Однако, использование этой переменной для этой цели сейчас не приветствуется, поскольку может привести к беспорядку в раскрытиях строк, которые также используют числовые переменные для других целей.

Например, следующий аутентификатор проверяет, что имя пользователя, данное клиентом, ph10 и, если это так, используется secret как пароль. Для любых других имён пользователя аутентификация неудачна.
fixed_cram:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${if eq{$auth1}{ph10}{secret}fail}
  server_set_id = $auth1

Если аутентификация успешна, установка server_set_id сохраняет имя пользователя в $authenticated_id. Более типичная конфигурация могла бы искать секретную строку в файле, используя имя пользователя как ключ. Например:
lookup_cram:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup{
    $auth1}lsearch{/etc/authpwd}{$value}fail}
  server_set_id = $auth1

Отметьте, что это раскрытие явно вызывает принудительную неудачу, если поиск неудачен, поскольку $1 содержит неизвестное имя пользователя.

35.2. Использование cram_md5 как клиента

Когда аутентификатор cram_md5 используется как клиент, он обладает двумя опциями:
Имя Использование Тип Значение по умолчанию
client_name cram_md5string† первичное имя хоста

Эта строка раскрывается, и результат используется как данные имени пользователя при вычислении ответа на подсказку сервера.
Имя Использование Тип Значение по умолчанию
client_secret cram_md5string† не задана

Эта опция должна быть установлена, чтобы аутентификатор работал как клиент. Это значение раскрывается, и результат используется как секретная строка, когда вычисляется ответ.

Для различных серверов могут использоваться разные имера пользователей и пароли, используя опции $host и $host_address. Принудительная неудача любой раскрываемой строки обрабатывается как признак, индицирующий что этот аутентификатор не готов обработать этот случай. Exim двигается к следующему сконфигурированному клиентскому аутентификатору. Любые другие ошибки раскрытия заставляют exim прекратить попытки отправить сообщение текущему серверу. Простая конфигурация аутентификатора cram_md5, использующая фиксированные строки, такова:
fixed_cram:
  driver = cram_md5
  public_name = CRAM-MD5
  client_name = ph10
  client_secret = secret

Поиск

 

Найди своих коллег!