Поиск используемого метода шифрования или хэширования

StackOverflow https://stackoverflow.com/questions/6348462

Вопрос

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

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

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

Приложение, полученное с сервера << 52 D7 1C 3F 9F 2C 05 C9 (Ключ сеанса один раз)
Приложение отправлено на сервер >> 11 83 2d 7d ff 0c 51 8c 53 45 52 56 31 43 45 20

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

Кто -нибудь знает, как были созданы байты «11 83 2d 7d FF 0C 51 8C» с помощью пароля «Test12» и 64 -битной (8bytes) клавиши сеанса «52 D7 1C 3F 9F 2C 05 C9»?

Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top