it-swarm-es.com

¿Los sistemas operativos móviles proporcionan aleatoriedad de calidad criptográfica?

¿Qué sistemas operativos móviles proporcionan una primitiva para generar aleatoriedad de calidad criptográfica que las aplicaciones pueden usar?

En los sistemas de escritorio, estas características son generalizadas. Unix proporciona/dev/urandom. Windows proporciona CryptGenRandom. ¿Los sistemas operativos móviles proporcionan algo como esto? ¿Proporcionan algún soporte para que los desarrolladores no tengan que escribir su propio código para recopilar entropía de múltiples fuentes y combinarla para obtener una semilla? (Eso es algo que es propenso a errores y no trivial para los desarrolladores, así que estoy buscando soporte de la plataforma, ya sea el sistema operativo, las bibliotecas u otra cosa).

Agradecería respuestas que especifiquen un sistema operativo móvil, si proporciona o no este soporte y, en caso afirmativo, cuál es la interfaz que deben usar los desarrolladores.

14
D.W.

iOS en iPhone proporciona entropía de todas las entradas estándar como acelerómetros, brújula, banda base de radio, así como de ciertas partes de los circuitos que detectan interferencias en todos los niveles. Los desarrolladores de aplicaciones pueden acceder a bits aleatorios mediante la función SecRandomCopyBytes() .

No tengo información sobre otras plataformas.

14
Rory Alsop

Android proporciona Java.util.SecureRandom en su API basada en Java, que se supone que es un PRNG criptográficamente seguro, que se alimenta de todo lo que la plataforma base proporciona como fuente de alea robusta. Android se basa en un kernel de Linux, por lo que es probable que haya un /dev/urandom De algún tipo.

De manera similar, Maemo de Nokia y su sucesor MeeGo , al estar basado en Linux, ofrecen un /dev/urandom.

7
Thomas Pornin

Blackberry OS proporciona net.rim.device.api.crypto.RandomSource a aplicaciones firmadas. Recopila aleatoriedad de varias fuentes en el dispositivo, al igual que el RNG de iOS. Tenga en cuenta que el paquete crypto también contiene varias clases PRNG, que no son criptográficamente aleatorias.

6
user185

Para completar la imagen: Silverlight y XNA ofrecen el sistema .NET System.Security.Cryptography habitual, que incluye RNGCryptoServiceProvider . Por lo tanto, esa clase se puede usar en Windows Phone 7. La documentación dice que esto ofrece una aleatoriedad criptográficamente fuerte, pero no explica cómo se asegura.

5
user185

El sistema operativo móvil Symbian también proporciona un RNG de calidad criptográfica, como se describe aquí .

Gracias a John Kemp, quien proporcionó esta información .

2
D.W.