|
www.lissyara.su
—> документация
—> EXIM
—> 4.70
—> часть 35
35. Аутентификатор cram_md5
Аутентификационный механизм cram_md5 описан в RFC2195. Сервер посылает клиенту строку вызова, и ответ содержит имя пользователя и CRAM-MD5 строки вызова, комбинированные с секретной строкой (паролем), который известен обоим, серверу и клиенту. Таким образом, секретная строка не посылается по сети открытым текстом, что делает этот аутентификатор более безопасным, чем “plaintext ”. Однако, обратная сторона - это то, что секретная строка должна быть доступна в открытом виде с обоих строн.
35.1 Использование cram_md5 как сервера
Этот аутентификатор имеет одну серверную опцию, которая должна быть установлена для конфигурирования аутентификатора как сервера:
Имя
|
Использование
|
Тип
|
Дефолтовое значение
|
server_secret
|
cram_md5
|
string†
|
незадана
|
|
Когда серевер получает ответ клиента, имя пользвателя помещается в переменную раскрытия “$auth1 ”, и “server_secret ” раскрывается, для полчения пароля этого пользователя. Тогда сервер вычисляет CRAM-MD5, который должен был послать клиент, и проверяет, что получена корректная строка. Если раскрытие “server_secret ” принудительно неудачно, - аутентификация неудачна. Если раскрытие неудачно по иной причине, клиенту возвращается временный код ошибки.
Для совместимости с предыдущими релизами exim`a, имя пользователя, также помещается в “$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
| Отметьте, что это раскрытие явно вызывает принудительную неудачу, если поиск неудачен, поскольку “$auth1 ” содержит неизвестное имя пользователя.
35.2 Использование cram_md5 как клиента
Когда аутентификатор “cram_md5 ” используется как клиент, он обладает двумя опциями:
Имя
|
Использование
|
Тип
|
Дефолтовое значение
|
client_name
|
cram_md5
|
string†
|
первичное имя хоста
|
|
Эта строка раскрывается, и результат используется как данные имени пользователя, при вычислении ответа на подсказку сервера.
Имя
|
Использование
|
Тип
|
Дефолтовое значение
|
client_secret
|
cram_md5
|
string†
|
незадана
|
|
Эта опция должна быть установлена, чтобы аутентификатор работал как клиент. Это значение раскрывается, и результат используется как секретная строка, когда вычисляется ответ.
Для различных серверов могут использоваться различные имера пользователей и пароли, используя опции “$host ” и “$host_address ”. Принудительная неудача любой раскрываемой строки обрабатывается как признак индицирующий, что этот аутентификатор не готов обработать этот случай. Exim двигается к следующему сконфигурированному клиентскому аутентификатору. Любые другие ошибки раскрытия заставляют exim прекратить попытки отправить сообщение текущему серверу.
Простая конфигурация аутентификатора “cram_md5 ”, использующая фиксированные строки, такова:
fixed_cram:
driver = cram_md5
public_name = CRAM-MD5
client_name = ph10
client_secret = secret
| =============
translated by lissyara
verifying by Gerk
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|