Size: a a a

Zabbix Russian Community

2020 October 20

FT

Full Throttle in Zabbix Russian Community
Evgeny Yurchenko
Но согласно теории, как только ты первый раз залогинился, в базе хэш поменяется. Проверь, а?
Так оно так все и было.
Взял насильно в базу прописал хэш из базы 4.4. Залогинился. Проверил - а там уже bcrypt. Т.е. да, все так и работает - при первом логине хэш был заменен.
источник

EY

Evgeny Yurchenko in Zabbix Russian Community
Full Throttle
Так оно так все и было.
Взял насильно в базу прописал хэш из базы 4.4. Залогинился. Проверил - а там уже bcrypt. Т.е. да, все так и работает - при первом логине хэш был заменен.
источник

AK

Alexander Khatsayuk in Zabbix Russian Community
Full Throttle
Так оно так все и было.
Взял насильно в базу прописал хэш из базы 4.4. Залогинился. Проверил - а там уже bcrypt. Т.е. да, все так и работает - при первом логине хэш был заменен.
Доверяй, но проверяй? )
источник

EY

Evgeny Yurchenko in Zabbix Russian Community
Значит всё-таки можно пароль через базу сбрасывать, ну и славненько
источник

FT

Full Throttle in Zabbix Russian Community
Alexander Khatsayuk
Доверяй, но проверяй? )
И это тоже, да, но и не только.
Во-первых, про поведение 5.2. на эту тему нигде ничего не пишут (ну или я не нашел). Логично предположить, что оно наследует поведение в 5.0. но это вовсе не обязательно.
А во-вторых, если оно ведет себя иначе, то будет неприятно, если я перенесу юзеров, а они залогиниться не смогут. Лучше знать наверняка, как оно будет.
источник

FT

Full Throttle in Zabbix Russian Community
Evgeny Yurchenko
Значит всё-таки можно пароль через базу сбрасывать, ну и славненько
Так bcrypt тоже можно же посчитать вручную, и в базу записать. Или я чего не понял?
источник

AK

Alexander Khatsayuk in Zabbix Russian Community
Full Throttle
И это тоже, да, но и не только.
Во-первых, про поведение 5.2. на эту тему нигде ничего не пишут (ну или я не нашел). Логично предположить, что оно наследует поведение в 5.0. но это вовсе не обязательно.
А во-вторых, если оно ведет себя иначе, то будет неприятно, если я перенесу юзеров, а они залогиниться не смогут. Лучше знать наверняка, как оно будет.
Было бы очень странно, если бы апгрейд ломал возможность входа в ПО.
Вон, бинарник zabbix_agent'a не переименовывали из-за соображений совместимости, как тот же dimir сказал
источник

FT

Full Throttle in Zabbix Russian Community
Ну, странно - не странно, у каждого свой путь. У заббикса тоже были спорные решения.
Я сейчас не осуждаю, если что. :)
источник

FT

Full Throttle in Zabbix Russian Community
Evgeny Yurchenko
Значит всё-таки можно пароль через базу сбрасывать, ну и славненько
Короче, можно, но ЯННП.
Я только что сгенерил чистый хэш из пароля:
php -r 'echo password_hash("mycoolpass", PASSWORD_DEFAULT, ["cost" => 10,]);'
Записал его в базу, и нормально зашел. Что-то тут не чисто. :)
В том смысле, что мне знаний не хватает в этой вашей криптографии. Возможно, там есть способ из хэша одного типа получить хэш другого типа.

Продолжу эксперименты уже завтра.
источник

AK

Alexander Khatsayuk in Zabbix Russian Community
Full Throttle
Короче, можно, но ЯННП.
Я только что сгенерил чистый хэш из пароля:
php -r 'echo password_hash("mycoolpass", PASSWORD_DEFAULT, ["cost" => 10,]);'
Записал его в базу, и нормально зашел. Что-то тут не чисто. :)
В том смысле, что мне знаний не хватает в этой вашей криптографии. Возможно, там есть способ из хэша одного типа получить хэш другого типа.

Продолжу эксперименты уже завтра.
Я не понял где должен быть подвох. Вот если бы ты не вошёл, было бы странно. Нет?
источник

FT

Full Throttle in Zabbix Russian Community
Нет.
Вот смотри, есть md5 хэш. При обновлении на 5.0 при первом входе юзера в базе md5 меняется на bcrypt. Вопрос в том, как это происходит.
Логично предположить, что т.к. это хэш, его не развернешь обратно, а юзеров нужно сохранить, то вариант такой - считать bcrypt от md5. Пароль ведь на этом этапе нам не известен.
Поэтому я предположил, что схема такая - bcrypt(md5(pass)). Но это не работает, а работает bcrypt(pass).
Я допускаю, что либо md5 может быть как-то преобразован в bcrypt, либо md5 - первые этап в вычислении bcrypt-хэша.
источник

ДУ

Денис Устинов... in Zabbix Russian Community
при входе то пароль известен
источник

ДУ

Денис Устинов... in Zabbix Russian Community
проверяется сначала md5, если проходит, то считается bcrypt и апдейтится в БД
источник

FT

Full Throttle in Zabbix Russian Community
Денис Устинов
при входе то пароль известен
Фак!
Вот это я затупил, да.
источник

IA

Ilya Ableev in Zabbix Russian Community
1. Если дока не очень очевидна - @ZabbixJunior
2. Конкретики не хватает. Что там не очень очевидного? Куча примеров есть
источник

EY

Evgeny Yurchenko in Zabbix Russian Community
Full Throttle
Фак!
Вот это я затупил, да.
вот как это происходит:
        private static function verifyPassword($password, array $db_user) {
               if (strlen($db_user['passwd']) > ZBX_MD5_SIZE) {
                       return password_verify($password, $db_user['passwd']);
               }
               elseif (hash_equals($db_user['passwd'], md5($password))) {
                       DB::update('users', [
                               'values' => ['passwd' => password_hash($password, PASSWORD_BCRYPT, ['cost' => ZBX_BCRYPT_COST])],
                               'where' => ['userid' => $db_user['userid']]
                       ]);

                       return true;
               }
источник

AK

Alexander Khatsayuk in Zabbix Russian Community
Могу нагенерировать типовых выражений.
.last()>3
.min(5m)<10
Эти бесплатно. Дальше 100 рублей штука.
источник

FT

Full Throttle in Zabbix Russian Community
Evgeny Yurchenko
вот как это происходит:
        private static function verifyPassword($password, array $db_user) {
               if (strlen($db_user['passwd']) > ZBX_MD5_SIZE) {
                       return password_verify($password, $db_user['passwd']);
               }
               elseif (hash_equals($db_user['passwd'], md5($password))) {
                       DB::update('users', [
                               'values' => ['passwd' => password_hash($password, PASSWORD_BCRYPT, ['cost' => ZBX_BCRYPT_COST])],
                               'where' => ['userid' => $db_user['userid']]
                       ]);

                       return true;
               }
Да теперь то все понятно. Я упустил, что в момент входа у нас есть пароль.
источник

NK

Nikolay Kulikov in Zabbix Russian Community
Alexander Khatsayuk
Могу нагенерировать типовых выражений.
.last()>3
.min(5m)<10
Эти бесплатно. Дальше 100 рублей штука.
Надо на башэ же :) вообще тоже считаю что Дока нормальная, бывают вопросы, Но их не так много, чаще скорее сам чего-то не замечаешь
источник

RF

Ruslan Fedoseev in Zabbix Russian Community
++
источник