質問

クライアントアプリケーションがセッションキーを返すために使用しているアルゴリズムを見つけようとしています。

接続を開始すると、サーバーは最初に一意のセッションキーを送信します。その後、クライアントは、パスワードを暗号化またはハッシュしたパスワードで応答し、ユーザー名と一緒にサーバーに送信する必要があります。

クライアントとサーバー間のサンプルネットワークトレース:(username:serv1ce / password:test12)

サーバーから受信したアプリ<< 52 D7 1C 3F 9F 2C 05 C9(1回限りのセッションキー)
サーバーに送信されたアプリ>> 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)としてクリアテキストのユーザー名です。

パスワード「Test12」と64ビット(8bytes)セッションキー「52 d7 1c 3f 9f 2c 05 c9」で「11 83 2d 7d ff 0c 51 8c」がどのように作成されたかを知っている人はいますか?

役に立ちましたか?

解決

彼らが暗号化的に安全なハッシュを使用している場合、原則として入力と出力からは、これを発見できないはずです。

実際には、彼らは8バイトを返しています。これは64ビットであり、MD5のバリアントを使用していることを示唆しています。彼らが典型的なプラクティスに従う場合、彼らは、ユーザー名、パスワード、セッションキー、および秘密のハッシュの何らかの組み合わせを含む、何らかの形で文字列を作成した可能性があります。 (ベストプラクティスではなく典型的な練習を言ったことに注意してください。ベストプラクティスは、この目的のために計算するためにゆっくりと何かを使用することです。そのようなBCRYPT。)魔法の組み合わせを理解すると、答えがあります。

2つの適切なアプローチがあります。最も簡単なのはブルートフォース検索です。検索する場合 md5 gpu cracking MD5計算をビデオカードにオフロードできるツールをたくさん見つけることができます。これらはブルートフォース検索に最適であり、上記のテーマで驚くべき数のバリエーションを非常に迅速に試すことができます。 (この攻撃の実現可能性は、人々がこの種のものにBCRYPTを使用する必要がある理由です。)

もう1つは、アプリケーションがあることです。アプリケーションの内部で実際に何が起こるかをその計算を行っているため、さまざまな方法があります。それを理解することに成功すれば、あなたは答えを得るでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top