我正在寻找EJBCA通常用于生成私钥的方法(CA、Sub、证书.)。
比方说,您需要RSA 2048密钥大小。生成过程是否全部在EJBCA应用程序中完成?他们是否依赖基于Java的应用服务器随机生成(在我的例子中是Jboss)?是否有本地实现的随机数生成的链接,例如Linux /dev/(U)随机生成?
熵的水平是多少,它们能保证熵的水平吗?
发布于 2016-04-27 10:25:09
我从EJBCA邮件列表中得到了答案,我还在源代码中获取了信息。
也许这对其他人有帮助,所以我会把答案贴在这里。
EJBCA用于生成私钥的底层方法是通过Java类java.util.Random和类java.security.SecureRandom实现的。在EJBCA代码中,密钥由类modules/cesecore-ejb/src/org/cesecore/keys/token/CryptoTokenManagementSessionBean.java的createCryptoToken生成,类CryptoTokenManagementSessionBean在OpenJDK SecureRandom实现使用/dev/CryptoTokenManagementSessionBean的末尾使用文件SecureRandom()。因此,总熵是/dev/随机的熵。改进熵池的方法有很多。解决方案是使用硬件令牌。
注意:在这里,它只适用于没有HSM的系统(在这种情况下,键是在HSM中生成的,所以它依赖于HSM)并在Linux上运行(而且很可能依赖于拥有/dev/随机的系统,所以BSD家族)。
https://serverfault.com/questions/770522
复制相似问题