何乱数の脆弱性は何ですか?

コンピュータと予測しているため、確定している。 コンピュータでは、自身との、真の乱数を生成することはできません。

外部入力がない場合は、コンピュータのみの擬似乱数を生成することができます。

無作為に選ばれたコードの脆弱性のいずれかである場合、プログラムは、乱数を生成するメソッドを使用して発生します:

  1. ないランダム
  2. 予測可能な

良い乱数を生成するには、コンピュータは2つのことをする必要があります:

  1. 良い乱数生成アルゴリズム
  2. は、乱数生成アルゴリズムのためのランダムシードとunpredicatable

ランダムな番号の脆弱性の例

次のコードスニペットを考慮:

 のX =ランド( ) ; 

このコードはsrandで確立されたランダムな数字が悪いときに種子( )を呼び出す前に生成ランド( ) 、これはデフォルトの値は1種として使用しています。 種子は、 1の( )と同様にするだけでしたが同じランダムな番号を取得するランドの呼び出しと同じコンパイラでは、同一のマシン上で、他の誰も。

別のコードの断片を見てみましょう:

  srand (時間( 0 ) ) ; 
 のX =ランド( ) ; 

このコードは、種子としては、現在の時刻( )の呼び出しsrandありません。 しかし、このコードに危険ですので:

  1. これは小さな範囲内で予測されているシステムのタイムは非常に悪いシードされています。
  2. ランドのはANSI C ( )良い乱数を生成されない自体に機能します。

の3分の1のコードスニペットを調べてみよう:

  srandom (時間( 0 ) ) ; 
 のX =ランダム( ) ; 

このコードはBSD ( )とsrandomランダムに使用しています( )関数は、よりランダムなのはANSI C前任者よりも数字を生成します。 しかし、このコードには時間を使用しています( )は、種子の数を生成します。 BSDとLinuxのシステム上で任意の数のがよりよいソースは、 / dev /ランダムなデバイスです。

数種と乱数脆弱性

良い種子の数、ユーザーのキー入力やマウスの動きなど、予測不能な出来事から来ています。 これらのランダム性の完全なソースがされていません。 人間の行動をある程度、コンピュータのハードウェアキーボードとマウスの割り込みをバッファするので、予測可能な乱数を低減しています。

その他多くの乱数発生器は、様々なプラットフォームと開発環境をご利用いただけます。 それは非常に良いものを作成し、さらに多くの場合、あなたは本当に数字のランダムな乱数を生成すると予測できないが作成を決定するのは困難は困難です。 ほとんどのアプリケーションのための最高のパスが公開されて暗号解析の対象としている既存の乱数生成器を実装することです。

乱数の脆弱性、ハッカーが暗号化機能への入力値を決定するために利用することができますしている。 この暗号解析に利用することができます。

この関数の不適切な使用( )とランダム( )の正常な乱数の脆弱性が発生しているランドと呼んでいる。

乱数の生成に関する追加の情報源

、 RFC 1750を読む乱数生成-ランダムおすすめの安全保障のための詳細については

"誰でも純粋に演算手段で乱数を生成しようとしています、もちろん、罪の状態にある。 " -ジョンフォンノイマン。
セキュアなコードを書く ビルセキュリティソフトウェア 安全なコーディング セキュアなプログラミング以前
Amazon.comでセキュアなプログラミングを購入、これらの優れた図書


上位5つの無料ネットワークツール

ブックマークとは乱数の脆弱性は何です

最新のブログの投稿


英語 英語 ドイツ語 ドイツ語 スペイン語 スペイン語 フランス語 フランス語 イタリア語 イタリア語 ポルトガル語 ポルトガル語 ロシア語 ロシア語 オランダ語 オランダ語
ギリシャ語 ギリシャ語 ヒンディー語 ヒンディー語 日本語 日本語 韓国語 韓国語 中国語 中国語 中国語(簡体字) 中国語(簡体字) アラビア語 アラビア語

著作権2009 技術に関するよくある質問。 版権所有。 プライバシーポリシー。