2009-05-03 6 views
3

私は、お客様に10000通のメールを送ってきたし、各メールは特定のGUIDから次のGUIDを予測する方法はありますか?

http://example.com/LogIn?key={guid} 
私が送っ

残念ながら​​はランダムのGUID(Guid.NewGuid()によって生成されたテストデータ)だったので、顧客はすべて無効なリンクを受けている形式のリンクを持っていました。 ..

私はウェブサーバーから受け取った404sに基づいて、私が送ったいくつかのguidsがあります。私はWindowsのguidジェネレータが弱いので、あなたがすでに持っているGUIDジェネレータから次のGUIDを予測できることを読んだ。誰がどのように知っていますか?もし私がそれを行うことができれば、私は送信されたガイドを有効にして、リンクが再び働くようにすることができます。

+0

送信されたメールをチェックし、そこから送信されたGUIDを解析してみませんか?メールサーバーのアーカイブがありますか? または、そのフォームの任意のGUIDを有効にできます。送信されたリンクの詳細を知っているあなたのオファーを利用するのを待っている悪人の集団があり、GUIDを持っていない(S.Oのあなたの投稿があるまで)ようなものではありません。 – Hejazzman

+0

送信したもののコピーを入手して処理する方法はありませんか?独自のメールサーバーをお持ちの場合は、コピーを保持している可能性があります。 –

+0

参照:http://stackoverflow.com/questions/643445/how-easily-can-you-guess-a-guid-that-might-be-generated –

答えて

-1

GUIDの一部が現在の日付/時刻です。連続して2つを受け取った場合、それらがどれくらい速く作成されているかを知ることができ、したがって強い確信度でシーケンスを予測できます。

+2

は、タイプ1のGUIDである場合のみです。 – user192472

1

ガイドにはいくつかの種類があります。タイプ1は、ホストID(通常はMACアドレス)、シーケンス番号、現在の日付と時刻を使用します。タイプ4は完全にランダムです。それがタイプ1のUUIDの場合は、かなり限定された可能性のあるUUIDのセットを見つけることができますが、そうであっても、単一のUUIDシーケンスを生成することはできませんので、ピン止めすることはできません特定のユーザーへの特定のUUID

+1

タイプ4はランダムですが、このランダム性は暗号的に安全であるとは言いません。これは実装には至りません。 – SilverlightFox

5

WindowsがGUIDを生成する方法は何度か変更されており、インターネット上で一見信頼できるアドバイスは完全に間違っています。

私がこれを調べたのは数年前、おそらくXP SP2でしたが、実際に何が起こっていたかを見るためにOSコードを踏んだところ、secure random number generatorで乱数を生成していました。

デフォルトの方法でGUIDを生成した場合、あるGUIDを別のGUIDから予測することは大変なことでしょう。

+1

これに関連する資料はありますか?つまり、なぜこの投稿が「インターネット上にある」ためにあなたの言葉を取るべきですか? .NET 4.5とMS SQLサーバがこのOS機能を使用していることを間違いなく確認できますか? – SilverlightFox

+0

@SilverlightFoxこれは、デバッガを使ってWindowsに入るという私の結論にどのようになったかを示しています。 .NETのソースも入手可能です(または、とにかく簡単に逆コンパイル可能です)ので、チェックアウトすることもできます。私の主なポイントは、主に、このニーズに関する正確な確認が、どのようなバージョンのものに適用されるかについての正確な資格があることです。 –

+0

私はこれを[新しい質問として](http://stackoverflow.com/q/35366368/413180)尋ねました。あなたが主題に関する標準的な回答を投稿することに興味があれば、あなたにお答えしたいと思います?そうでない場合は問題ありません。ありがとう。 – SilverlightFox

0

次のGUIDを予測することはできますが、信頼できるものではありませんが、あなたの処分では完全に不可能な可能性があります。

不一致のGUIDから、何がうまくいかなかったのかを説明するか、プログラムが最終的にどこに送信して送信するべきかを示す汎用ページにマニュアルリダイレクトを追加するだけです。

関連する問題