Android JNI上是否有/ dev / random的替代品?

时间:2012-10-24 18:32:19

标签: android random cryptography

我有一个应用程序,它通过OpenSSL 1.0.1c生成一个ECDSA公钥/私钥对。 根据我的理解,OpenSSL在Linux上使用/ dev / random,但Android没有/ dev / random,这意味着我可能会使用加密弱密钥对。

我读了这两个

https://security.stackexchange.com/questions/2152/do-mobile-oss-provide-crypto-quality-randomness

和这个问题

https://security.stackexchange.com/questions/14669/how-to-select-dev-random-or-dev-urandom-in-the-code-in-android

并且两者都提供了使用java.security.SecureRandom的充分建议,但是我在本机生成了这些密钥对,因此欢迎本地的东西。我可以将参数从Java传递给我的本机代码,因此传递随机字节很容易,但是如果完全在本机端完成它,我会选择它。

那么,Android上有/ dev / random的替代品吗?

1 个答案:

答案 0 :(得分:3)

Android为本机代码提供/dev/random/dev/urandom。两者都是世界可读的。您应该使用/dev/urandom,因为Android已经确保PRNG已播种。

/dev/random /超过/dev/urandom的唯一优势是即使PRNG没有播种,/dev/random也是安全的。但是Android总是在PRNG上播种。所以没有优势。而且/dev/random有很大的缺点 - 它耗尽了系统的熵池。