web-dev-qa-db-ja.com

Windows JVMレベルで同等の/ dev / urandomとは

最近、エントロピーの欠如とRand IOの原因となったハングが原因でした。

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

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

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

5
pydoge

これを確認するドキュメントが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.
3
cyberoblivion