Каков эквивалент / dev / urandom на уровне Windows JVM

Недавно У меня проблемы, потому что отсутствие энтропии и блокировка ввода-вывода в случайном порядке вызывали зависания. В Linux я могу делать следующее:

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

Что эквивалентно в Windows? Мы запускаем приложение как на серверах Linux, так и на Windows, серверах Linux с использованием OpenJDK JRE и серверах Windows с использованием Oracle JRE.

Я нашел много предложений по CryptGenRandom , но как передать это в приложение на уровне JVM?

5
задан 27 February 2018 в 19:03
1 ответ

Я нашел документацию в jre / lib / security / java.security, подтверждающую это. Вот цитата

Выберите первичный источник начальных данных для «SHA1PRNG» и Реализации SecureRandom "NativePRNG" в провайдере "Sun". (Другие реализации SecureRandom также могут использовать это свойство.)

В Unix-подобных системах (например, Solaris / Linux / MacOS) Реализации "NativePRNG" и "SHA1PRNG" получают начальные данные из специальные файлы устройств, такие как file: / dev / random.

В системах Windows указание URL-адресов "file: / dev / random" или "file: / dev / urandom" включит собственное заполнение Microsoft CryptoAPI механизм для SHA1PRNG.

По умолчанию предпринимается попытка использовать устройство сбора энтропии указывается свойством безопасности "securerandom.source". Если исключение возникает при доступе к указанному URL:

  SHA1PRNG:
  будет использоваться традиционный алгоритм активности системы / потока.

  Собственный PRNG:
  будет использоваться значение по умолчанию / dev / random.  Если ни то, ни другое
  доступны, реализация будет отключена.
  "файл" - единственный поддерживаемый в настоящее время тип протокола.
 
3
ответ дан 3 December 2019 в 01:49

Теги

Похожие вопросы