Windows JVMレベルでの/dev/urandomに相当するものは何ですか

Windows JVMレベルでの/dev/urandomに相当するものは何ですか

最近、エントロピー不足と rand IO のブロックによりハングが発生し、問題が発生しています。Linux では、次の操作を実行できます。

JAVA_OPTS=-Djava.security.egd=/dev/urandom ./myStartScript.sh

Windows で同等のものは何ですか? Linux サーバーと Windows サーバーの両方でアプリを実行しています。Linux サーバーでは OpenJDK JRE を使用し、Windows サーバーでは Oracle JRE を使用しています。

について多くの提案を見つけましたCryptGenRandomが、それを JVM レベルでアプリに渡すにはどうすればよいですか?

答え1

これを裏付けるドキュメントをjre/lib/security/java.securityで見つけました。引用文は次のとおりです。

「Sun」プロバイダの「SHA1PRNG」および「NativePRNG」SecureRandom 実装のシード データのプライマリ ソースを選択します。(他の SecureRandom 実装でもこのプロパティが使用される場合があります。)

Unix 系システム (Solaris/Linux/MacOS など) では、「NativePRNG」および「SHA1PRNG」実装は、file:/dev/random などの特殊なデバイス ファイルからシード データを取得します。

Windows システムでは、URL「file:/dev/random」または「file:/dev/urandom」を指定すると、SHA1PRNG のネイティブ Microsoft CryptoAPI シード メカニズムが有効になります。

デフォルトでは、「securerandom.source」セキュリティ プロパティで指定されたエントロピー収集デバイスの使用が試行されます。指定された URL にアクセス中に例外が発生した場合:

 SHA1PRNG:
     the traditional system/thread activity algorithm will be used.

 NativePRNG:
     a default value of /dev/random will be used.  If neither
     are available, the implementation will be disabled.
     "file" is the only currently supported protocol type.

関連情報