繁体   English   中英

Crypto.getRandomValues的熵源是什么?

[英]What is the source of entropy for Crypto.getRandomValues?

我正在开发大型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引起的。 所以我的问题是:

  • webcrypto中的熵源是什么(Firefox 64,webcrypto,docker)
  • 熵的来源可以改变吗?

您无法为Web Crypto选择熵源。

通常,RSA密钥的密钥生成的延迟是素性检查,而不是收集随机性。

不使用forge进行RSA密钥生成,而是直接使用Web Crypto - https://github.com/diafygi/webcrypto-examples#rsassa-pkcs1-v1_5---generatekey

如果您需要在兼容Javascript的界面中在Node中生成密钥,请查看: https//github.com/PeculiarVentures/webcrypto

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM