1

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

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

クライアントとサーバー間のネットワーク トレースの例: (ユーザー名: 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) としてのクリア テキストのユーザー名です。

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

4

1 に答える 1

1

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

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

あなたには2つのまともなアプローチがあります。最も単純なのは総当たり検索です。検索するmd5 gpu crackingと、MD5 計算をビデオ カードにオフロードできるツールがたくさん見つかります。これらは総当たり検索に最適で、上記のテーマで驚くほど多くのバリエーションをすぐに試すことができます。(この攻撃の実現可能性が、人々がこの種のものに bcrypt を使用すべき理由です。)

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

于 2011-06-14T23:26:02.243 に答える