Как шифруются пароли в AzerothCore? Это то же самое, что и Тринитикор?

Я пытаюсь создать веб-портал, который использует SOAP RBAC (3.3.5a) для связи между сервером wow и веб-порталом.

Какое шифрование использует AzerothCore? Это то же самое, что Тринити?

Я попытался использовать другие существующие CMS FusionGen и github и посмотрел систему входа и регистрации. Все они основаны на троице.

Но кажется, что это не совсем то же самое.

Любая помощь приветствуется


person Squeezee    schedule 03.08.2019    source источник


Ответы (3)


AzerothCore использует ту же стратегию, что и все игровые серверы на базе MaNGOS. Так что да, тоже самое, что и в TrinityCore.

Пароли шифруются с помощью хеш-функции SHA1 в формате: account:password в верхнем регистре.

Поэтому, если ваша учетная запись squeeze, а пароль azeroth, он будет зашифрован в SHA1('SQEEZE:AZEROTH').

Пароль будет храниться в поле sha_pass_hash таблицы account в базе данных acore_auth.

SQL-код

SELECT SHA1(CONCAT(UPPER('your_username'), ':', UPPER('your_password')))

PHP-код

sha1(strtoupper($username).':'.strtoupper($password));
person Francesco Borzi    schedule 03.08.2019
comment
SHA1 с добавлением соли к вашему имени пользователя... это УЖАСНАЯ схема хранения паролей, если хакер взломает эту базу данных, будет очень легко провести атаку полным перебором с помощью современных графических процессоров для восстановления более коротких паролей, а атаки по словарю на эти хэши могут быть сделано на ноутбуке. кто-то действительно должен научить этих разработчиков bcrypt - person hanshenrik; 04.08.2019
comment
@hanshenrik Я согласен, это было реализовано давно. Будучи проектом с открытым исходным кодом, не стесняйтесь открывать PR и изменять его. - person Francesco Borzi; 04.08.2019
comment
где репозиторий и на каком языке он написан? - person hanshenrik; 04.08.2019

Здесь вы можете получить дополнительную информацию о паролях:

http://www.azerothcore.org/wiki/account#sha_pass_hash

В базе данных AZerothCore (и всех производных от Mangos) SHA1 используется только для хранения пароля в базе данных, но игровой клиент использует протокол SRP6, которому нужны ключи v и s, сгенерированные сервером и отправленные клиенту.

person Joseph    schedule 05.08.2019

@hanshenrik давай помедленнее. Я согласен с тем, что это УЖАСНАЯ схема хранения паролей, но по разным причинам. Соли защищают от предварительно вычисленной хеш-атаки, поэтому, если злоумышленник сможет взломать вашу БД, он все равно будет иметь доступ к соли, поэтому описанная атака на самом деле не зависит от использования учетной записи в качестве соли, хотя Я согласен, что всегда должна быть действительно уникальная достаточно длинная случайная последовательность битов (имя учетной записи может быть очень коротким и общедоступным). Настоящая проблема здесь 2:

1) SHA1 больше не считается безопасным 2) Сделайте пароль нечувствительным, уменьшите возможную комбинацию.

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

person Gabriele Gelardi    schedule 05.08.2019