| |
| |
| 2.2, Sw00p aka jerom, 10:07, 13/11/2009 [^] [ответить] [смотреть все]
| +/– | |
уважаемый читаем как работает крам аутентификация
давно уже перешёл на хранения в базе (слон) в краме и авторизацию
пс: кому нужен пхп скрипт для генерации хеша ??? могу дать
|  | | |
| |
| 3.3, Гайбруш Трипвуд, 11:04, 13/11/2009 [^] [ответить] [смотреть все]
| +/– |
Я знаю, как работает cram-md5, поэтому и запостил, чтобы у читателей не возникало иллюзий, что таким образом можно защитить базу паролей от кражи. cram-md5 позволяет не передавать пароли в открытом виде при аутентификации, но за это приходится платить хранением их в открытом виде. Вы скажете, что хранится хеш? Но если посмотрите на алгоритм cram-md5, то увидите, что dovecot хранит их хеши только для того, чтобы не вычислять одно и тоже при каждом подключении и знания этого хеша достаточно для успешной аутентификации.
|  | | |
| |
| |
| |
| 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.
для дайджеста да но не для крама
|  | | |
| |
| |
| |
| 10.11, Sw00p aka Jerom, 11:05, 16/11/2009 [^] [ответить] [смотреть все]
| +/– | |
вот ещё функция реализации hmac_md5($challenge,$password)
function hmac_md5($data, $key='') {
if (extension_loaded('mhash')) {
if ($key== '') {
$mhash=mhash(MHASH_MD5,$data);
} else {
$mhash=mhash(MHASH_MD5,$data,$key);
}
return $mhash;
}
if (!$key) {
return pack('H*',md5($data));
}
$key = str_pad($key,64,chr(0x00));
if (strlen($key) > 64) {
$key = pack("H*",md5($key));
}
$k_ipad = $key ^ str_repeat(chr(0x36), 64) ;
$k_opad = $key ^ str_repeat(chr(0x5c), 64) ;
/* Heh, let's get recursive. */
$hmac=hmac_md5($k_opad . pack("H*",md5($k_ipad . $data)) );
return $hmac;
}
|  | | |
| 10.12, Гайбруш Трипвуд, 11:22, 16/11/2009 [^] [ответить] [смотреть все]
| +/– |
Посмотрим на такой алгоритм аутентификации имени меня.
- сервер посылает случайное число challenge
- клиент вычисляет некое x = H1(challenge, H2(password)), H1 и H2 - криптохеш-функции и посылает на сервер.
- сервер делает то же самое, только с хранящимся на сервере паролем и сравнивает
Видно, что это некий абстрактный cram-md5.
Так вот, хитрющий довекот хранит у себя dovecot_hash=H2(password), чтобы не вычислять его каждый раз. Если файл с хешами попадет к нехорошему человеку, он при аутентификации сможет вычислить x = H1(challenge, dovecot_hash) и авторизоваться.
> а теперь вопрос - зная хеш пароля куда я его буду пихат ?????????????
Я уже говорил, что нужно посмотреть, что именно довекот может вычислить без знания challenge (т.е. H2), и тогда можно будет определить формулу для злоумышленника.
|  | | |
|
|
|
| 7.8, Sw00p aka Jerom, 14:45, 14/11/2009 [^] [ответить] [смотреть все]
| +/– |
а на счёт брутфорсеров - то всё можно пробрутфорсить
но при этом есть варианты брутфорса с использованием имеющегося хеша пароля и без него
типичный случай брутфорс мд5 который возвращает один и тот же хеш и в данном случае достаточно шифровать последовательности и сравнивать с хешом
в случае мд5 используемом в системе юниксов для авторизации необходимо иметь хеш чтобы пробрутфорсить
|  | | |
|
|
|
|
| 3.14, fi, 20:11, 17/11/2009 [^] [ответить] [смотреть все]
| +/– | |
Да это уже проходили.
любой CRAM принципиально требует наличия не зашифрованного пароля на сервере. Это просто по определению. В случаи с мд5 всего лишь требуется модифицированный клиент.
Сами разберитесь как это работает, в инете достаточно много есть об этом.
|  | | |
|
|
|
|