Как EJBCA генерирует закрытый ключ

Я ищу метод, используемый EJBCA для генерации закрытых ключей в целом (CA, Sub-CA, сертификаты ...).

Скажем, например вам нужен размер ключа RSA 2048. Все ли выполняется в приложении EJBCA? Полагаются ли они на случайную генерацию сервера приложений на основе Java EE (в моем случае Jboss)? Есть ли где-нибудь ссылка на локально реализованную генерацию случайных чисел, например, в Linux / dev / (u) random?

Каков уровень энтропии, и гарантируют ли они его?

2
задан 15 April 2016 в 10:47
1 ответ

Я получил ответ из списка рассылки EJBCA, и я также взял информацию в исходном коде.

Может быть, это поможет кому-то другому, поэтому я вставлю сюда ответ.

Основной метод, используемый EJBCA для генерации закрытого ключа, - это Java-класс java.util.Random и класс java.security.SecureRandom.

В коде EJBCA ключ генерируется методом createCryptoToken из класса CryptoTokenManagementSessionBean, который использует SecureRandom () из файла модули / cesecore-ejb / src / org / cesecore / keys / token / CryptoTokenManagementSessionBean.java

В конце реализации OpenJDK SecureRandom используется / dev / random. Итак, общая энтропия - это энтропия / dev / random. Есть много методы улучшения его энтропийного пула. Решение с использованием аппаратный токен.

NB: Здесь он применяется только к системе без HSM (в этом случае ключ создается в HSM, поэтому он зависит от HSM) и работает в Linux (и, скорее всего, в системе с / dev / random, так семейство BSD).

1
ответ дан 3 December 2019 в 12:41

Теги

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