2013-07-01 6 views
5

私は複数のリソースをオンラインで検索していますが、これまでマイクロソフトのGUID生成メカニズムがアプリケーション全体で一意のIDとして使用されているかどうかについての確かな答えは見つかりませんでした。マイクロソフトのGUIDジェネレータは暗号で安全です

「十分に安全」とは、GUIDを生成するために使用されたアルゴリズムにGUIDの有効なランダム性を低下させる既知の弱点または脆弱性があるかどうかを尋ねることです。つまり無視できない数の衝突。そうでない場合は、GUIDが完全に推測不可能であることを意味しますか?そうであれば、生成されたGUIDのランダム性を効果的に高めるためにGUIDジェネレータ関数をシードする方法があります。

ここにMSDNガイド(http://msdn.microsoft.com/en-us/library/system.guid.aspx)で指定されている情報に基づいて、GUIDを生成するために使用されたシステムが十分にランダムであることに依存する可能性があります。

ありがとうございます!

答えて

7

号は、GUIDの目標は、ユニークことですが、安全な暗号化は、それが予測不可能であることを意味します。これらの目標は時には必ずしも一致するとは限りません。

あなたは安全な暗号化したい場合RNGCryptoServiceProvider

も参照のように、あなたが何かを使用する必要があります。

両方上記のリンクの重要なポイントでありますMicrosoftのGuidはUUIDの実装であり、UUID spec indicates that they should not be used as security tokens

UUIDが推測しにくいと仮定しないでください。例えば、セキュリティ機能(単なる所有権がアクセスを許可する識別子)として使用すべきではありません。予測可能な乱数源が状況を悪化させます。

+0

ありがとう@explunit。私はあなたが投稿した2つのリンクを読んでいた(私はこの質問を入力したときに重複して示唆していた)。 – raTM

+0

しかし、Python、Java、Rubyなどのいくつかの実装では、暗号で安全なguidを生成することがあります。 https://news.ycombinator.com/item?id=10631806を参照してください。 –

関連する問題