Como o EJBCA gera a chave privada

1

Estou procurando o método usado pelo EJBCA para gerar as chaves privadas em geral (CA, Sub-Ca, certificados ...).

Digamos que você queira, por exemplo, o tamanho da chave RSA 2048. O processo de geração é todo feito no aplicativo EJBCA? Eles dependem da geração aleatória do servidor de aplicativos baseado em Java EE (no meu caso, Jboss)? Existe um link em algum lugar com a geração de números aleatórios implementados localmente, portanto, por exemplo, no Linux / dev / (u) aleatório?

Qual é o nível de entropia, e eles garantem um?

    
por Florent 15.04.2016 / 09:47

1 resposta

0

Eu recebi a resposta da lista de discussão do EJBCA e também peguei informações no código-fonte.

Talvez possa ser de alguma ajuda para outra pessoa, por isso vou colar aqui a resposta.

The underlying method used by EJBCA to generate private key is via the Java class java.util.Random and the class java.security.SecureRandom.

In EJBCA code, the key are generated by the method createCryptoToken from the class CryptoTokenManagementSessionBean which uses SecureRandom() from the file modules/cesecore-ejb/src/org/cesecore/keys/token/CryptoTokenManagementSessionBean.java

At the end OpenJDK SecureRandom implementation uses /dev/random. So the overall entropy is the entropy of /dev/random. There is plenty of methods to improve it's entropy pool. A solution is with using hardware token.

NB: Aqui aplica-se apenas ao sistema sem HSM (nesse caso, a chave é gerada no HSM, portanto, depende do HSM) e executada no Linux (e provavelmente no sistema com / dev / random, portanto, a família BSD ).

    
por 27.04.2016 / 12:25