Нахождение используемого метода шифрования или хеширования - PullRequest
1 голос
/ 14 июня 2011

Я пытаюсь выяснить, какой алгоритм клиентское приложение использует для возврата ключа сеанса.

Когда я инициирую соединение, сервер сначала отправляет уникальный ключ сеанса.Затем клиент должен ответить зашифрованным или хешированным паролем и отправить вместе с именем пользователя на сервер.

Пример трассировки сети между клиентом и сервером: (имя пользователя: serv1ce / пароль: test12)

Приложение получено с сервера << 52 d7 1c 3f 9f 2c 05 c9 (однократный ключ сеанса) <br>Приложение отправлено на сервер >> 11 83 2d 7d ff 0c 51 8c 53 45 52 56 31 4345 20

Часть "53 45 52 56 31 43 45 20" - это имя пользователя в виде открытого текста в виде байтовых значений (serv1ce).

Кто-нибудь знает, как работают байты "11 83 2d 7dff 0c 51 8c "созданы с паролем 'test12' и 64-битным (8-байтовым) сеансовым ключом" 52 d7 1c 3f 9f 2c 05 c9 "?

1 Ответ

1 голос
/ 15 июня 2011

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

На практике они возвращают 8 байтов, что составляет 64 бита, что говорит о том, что они используют какой-то вариант MD5. Если они следуют обычной практике, они, вероятно, каким-то образом создали строку, которая включает некоторую комбинацию имени пользователя, пароля, ключа сеанса и секретного хэша, а затем хэшируют ее. (Обратите внимание, что я сказал, что обычная практика, а не лучшая. Лучше всего использовать для этой цели что-то медленное, например, bcrypt.) Если вы выясните магическую комбинацию, у вас есть ответ.

У вас есть два достойных подхода. Самый простой - это перебор. Если вы ищете md5 gpu cracking, вы можете найти множество инструментов, которые позволят вам перенести вычисления MD5 на вашу видеокарту. Они идеально подходят для поиска методом "грубой силы" и позволяют довольно быстро попробовать удивительное количество вариантов вышеупомянутой темы. (Возможность этой атаки заключается в том, что люди должны использовать bcrypt для такого рода вещей.)

Другое дело, что у вас есть приложение. Существуют различные способы отслеживания того, что на самом деле происходит внутри приложения, когда оно выполняет эти вычисления. Преуспеете в этом, и у вас будет ответ.

...