さまざまな Drupal モジュールで Fortify スキャンを実行していますが、一般的なクリティカル/高の結果は「Insecure Randomness」です。rand() 関数は暗号攻撃に耐えられないと述べています。
私の質問 - これは深刻な問題ですか? PHPでそれを修正するには?
ありがとうございました。
この質問に対する答えは、rand() 呼び出しの結果を何に使用しているかに完全に依存します。
ツールのセキュリティが乱数のランダム性に依存する暗号化キーのようなものにそれらを使用している場合、はい、これは深刻な懸念事項です. その場合、rand() または mt_rand() を呼び出すべきではありません。どちらも、暗号化に使用するのに十分にランダムな「乱数」を生成しないためです。実行しているプラットフォームの基礎となる疑似乱数ジェネレーター (PRNG) - Unix/Linux システムの /dev/urandom または Windows システムの crypto-api - を実際に利用したい - これらは広範囲に研究されており、暗号システムでの使用に適した実際の乱数。PHP では、これらのランダム ソースへのアクセスはそれほど簡単ではありませんが、アクセス方法の例が存在します (このように -> http://www.php.net/manual/en/function.mt-rand.
最初にユーザーに提示されるオプションをランダム化するなど、他の何かにランダムを使用している場合、または生成された数値が暗号化された方法で使用されていない場合は、次を使用して回避できる場合がありますrand() または mt_rand()。ただし、アプリケーション/モジュールがセキュリティのために適切な乱数に依存している場合は、上記のように OS ソースを利用する必要があります。