The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Подключение виртуальной базы пользователей к Dovecot с CRAM-MD5 аутентификацией
Для того чтобы не хранить базу виртуальных пользователей с открытыми паролями
можно использовать в Dovecot механизм аутентификации CRAM-MD5.

Для включения  CRAM-MD5 аутентификации в /etc/dovecot.conf необходимо привести конфигурацию к виду:

   default_mail_env = maildir:/var/spool/vhosts/%d/%n
   auth_mechanisms = plain DIGEST-MD5 CRAM-MD5
   auth_verbose = yes
   auth default {
      mechanisms = plain cram-md5
      passdb passwd-file {
      args = /etc/dovecot/passdb
   }
   userdb static {
      args = uid=virtual gid=virtual /etc/dovecot/userdb
   }


В директории /etc/dovecot создаем два файла: passdb с паролями и userdb со
списком пользователей и расположением их виртуальных аккаунтов.

Пример содержимого userdb:

   tom@example.com::510:510::/var/spool/vhosts/example.com/:/bin/false::
 
Пример passdb:

   tom@example.com:{HMAC-MD5}e02d374fde0dc75a17a557039a3a5338c7743304777dccd376f332bee68d2cf6

Для формирования HMAC-MD5 хэша на основе открытого пользовательского пароля
необходимо использовать утилиту dovecotpw:

   # dovecotpw
   Enter new password:
   Retype new password:
   {HMAC-MD5}e02d374fde0dc75a17a557039a3a5338c7743304777dccd376f332bee68d2cf6
 
12.11.2009 , Источник: http://postfixmail.com/blog/index.p...
Ключи: crypt, dovecot, imap, mail, cuth / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / Mail, почта / Безопасность и установка ограничений

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Гайбруш Трипвуд (?), 14:53, 12/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Такое хеширование имеет немного смысла, потому что знания этого хеша достаточно для аутентификации.
     
     
  • 2.2, Sw00p aka jerom (?), 10:07, 13/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    уважаемый читаем как работает крам аутентификация

    давно уже перешёл на хранения в базе (слон) в краме и авторизацию

    пс: кому нужен пхп скрипт для генерации хеша ??? могу дать

     
     
  • 3.3, Гайбруш Трипвуд (?), 11:04, 13/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Я знаю, как работает cram-md5, поэтому и запостил, чтобы у читателей не возникало иллюзий, что таким образом можно защитить базу паролей от кражи. cram-md5 позволяет не передавать пароли в открытом виде при аутентификации, но за это приходится платить хранением их в открытом виде. Вы скажете, что хранится хеш? Но если посмотрите на алгоритм cram-md5, то увидите, что dovecot хранит их хеши только для того, чтобы не вычислять одно и тоже при каждом подключении и знания этого хеша достаточно для успешной аутентификации.
     
     
  • 4.4, Sw00p aka jerom (?), 15:49, 13/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>, но за это приходится платить хранением их в открытом виде.

    уважаемый плохо читали значить

    я хряню в базе не плаин текстовые пароли а захешированные крамом
    и при подключении пользователь либо PLAIN использует либо CRAM-MD5

    пс: ещё почитайте настройки довкота

    особенно файлик (у мня слон) dovecot-pgsql.conf

    driver = pgsql
    connect = host=localhost dbname=db user=bla password=bla

    # Default password scheme.
    #
    # List of supported schemes is in
    # http://wiki.dovecot.org/Authentication/PasswordSchemes
    #
    # А вот это как раз для вас (как храняться пароли в базе)

    default_pass_scheme = CRAM-MD5

    # а это по дефолту
    #default_pass_scheme = LOGIN

    # ниже следующие строчки делались исключительно под себя

    user_query = SELECT '/base/mailboxes/%d/%n' AS home, 'maildir:/base/mailboxes/%d/%n' AS mail, 1981 AS uid, 1981 AS gid, '*:bytes='||quota AS quota_rule, 'INBOX.Spam:ignore' AS quota_rule2, 'INBOX.Trash:ignore' AS quota_rule3 FROM mdb_mailbox_tbl WHERE username='%u' AND active='1'

    password_query = SELECT username AS user, password, '/base/mailboxes/%d/%n' AS  userdb_home, 'maildir:/base/mailboxes/%d/%n' AS userdb_mail, 1981 AS userdb_uid, 1981 AS userdb_gid FROM mdb_mailbox_tbl WHERE username='%u' AND active='1'

     
     
  • 5.5, Sw00p aka jerom (?), 16:01, 13/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Non-plaintext authentication mechanisms

    See Authentication/Mechanisms for explanation of auth mechanisms. Most installations use only plaintext mechanisms, so you can skip this section unless you know you want to use them.

    The problem with non-plaintext auth mechanisms is that the password must be stored either in plaintext, or using a mechanism-specific scheme that's incompatible with all other non-plaintext mechanisms. For example if you're going to use CRAM-MD5 authentication, the password needs to be stored in either PLAIN or CRAM-MD5 scheme. If you want to allow both CRAM-MD5 and DIGEST-MD5, the password must be stored in plaintext.

    In future it's possible that Dovecot could support multiple passwords in different schemes for a single user.


    пс: в переводе не нуждается думаю
    пс2: если мы хотим использовать PLAIN or CRAM-MD5 scheme то пароли плаинтекстом хранить не обязательно
    если же мы хотим использоват CRAM-MD5 and DIGEST-MD5 то тут обязательно нужно хранить плаинтекстом (особенно в использовании DIGEST-MD5)

     
     
  • 6.6, Гайбруш Трипвуд (?), 17:02, 13/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Документация ввела вас в заблуждение.
    Еще раз повторяю: знания довекотовского cram-md5 хеша достаточно для успешной авторизации по механизму cram-md5, и польза такого хеширования ограничена лишь:
    - меньше вычислений при каждом логине
    - знание такого хеша не позволит авторизоваться по некоторым другим механизмам (digest-md5, например), что верно подмечено в документации

    В этом заключается минус таких механизмов, как cram-md5 и digest-md5 по сравнению с передачей пароля открытым текстом. В последнем случае пароль тоже хранится в хешированном виде, и знания этого хеша уже не будет достаточно для аутентификации, вычислять пароль брутфорсом.

    Посмотрите хотя бы вот этот тред
    http://www.dovecot.org/list/dovecot/2008-April/029986.html
    Ну и стандарты почитать тоже можно.

     
     
  • 7.7, Sw00p aka Jerom (?), 14:38, 14/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    схему в студию как вы будете зная хеш на стороне сервера проходить авторизацию

    пс: тот кто отвечал в треде даже сам понятия не имеет как этот механизм реализован

    и говорит мол Then you have to store passwords in plaintext.
    для дайджеста да но не для крама

     
     
  • 8.9, Гайбруш Трипвуд (?), 16:17, 14/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Тред вы не дочитали, они там разобрались Попробуем уйти в детали CRAM-MD5 рабо... текст свёрнут, показать
     
     
  • 9.10, Sw00p aka Jerom (?), 10:45, 16/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    описанный вами алгоритм он производится на стороне сервера довкот посылает челен... текст свёрнут, показать
     
     
  • 10.11, Sw00p aka Jerom (?), 11:05, 16/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    вот ещё функция реализации hmac_md5 challenge, password function hmac_md5 dat... текст свёрнут, показать
     
  • 10.12, Гайбруш Трипвуд (?), 11:22, 16/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрим на такой алгоритм аутентификации имени меня - сервер посылает случайн... текст свёрнут, показать
     
     
  • 11.13, Sw00p aka Jerom (?), 12:16, 16/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    а вы попробуйте реализовать этот алгоритм dovecot_hash H2 password а потом сдел... текст свёрнут, показать
     
  • 7.8, Sw00p aka Jerom (?), 14:45, 14/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    а на счёт брутфорсеров - то всё можно пробрутфорсить
    но при этом есть варианты брутфорса с использованием имеющегося хеша пароля и без него

    типичный случай брутфорс мд5 который возвращает один и тот же хеш и в данном случае достаточно шифровать последовательности и сравнивать с хешом

    в случае мд5 используемом в системе юниксов для авторизации необходимо иметь хеш чтобы пробрутфорсить

     
  • 3.14, fi (ok), 20:11, 17/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да это уже проходили.

    любой CRAM принципиально требует наличия не зашифрованного пароля на сервере. Это просто по определению. В случаи с мд5 всего лишь требуется модифицированный клиент.

    Сами разберитесь как это работает, в инете достаточно много есть об этом.

     
     
  • 4.15, Sw00p aka Jerom (?), 10:04, 18/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    мда не знал что у меня в базе плаинтекстовые пассы храняться

    капча: 30005

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру