我正在开发大型Web应用程序,该应用程序使用forge.js在客户端生成RSA私钥。据我阅读Forge文档-https://github.com/digitalbazaar/forge#rsa-IT使用浏览器中的webcrypto API生成RSA密钥/提供随机数。
我还有很多selenium2测试,它们可以验证不同的场景(与RSA生成有关)。在docker环境中执行测试时,我观察到频繁的测试超时。我的Docker环境使用Ubuntu。使用selenium2 3.11在Firefox 64上执行测试
经过一些分析,我得出的结论是测试超时是由RSA密钥生成缓慢引起的。当然,由于该问题在开发人员机器上是可重现的,因此分析不是防弹的。
从对Java中类似问题的分析中,我知道这可能是由于使用了熵的阻塞源-/ dev / random而不是/ dev / urandom引起的。所以我的问题是:
答案 0 :(得分:0)
您不能选择Web加密的熵源。
通常,RSA密钥的密钥生成延迟是素数检查,而不是随机性。
与其使用forge来生成RSA密钥,不如直接使用Web加密-https://github.com/diafygi/webcrypto-examples#rsassa-pkcs1-v1_5---generatekey
如果您需要在Java兼容界面中的Node中生成密钥,请查看:https://github.com/PeculiarVentures/webcrypto