Todos los sistemas operativos tienen vulnerabilidades que se descubren todas las semanas, pero Android lleva una racha cuanto menos curiosa. La última que se ha descubierto afecta a la seguridad criptográfica del sistema operativo de Google, y está confirmada por la propia compañía, pero no es del todo culpable de ella.
El fallo de seguridad reside en la arquitectura criptográfica de Java (JCA, Java Cryptography Architecture), y se descubrió la semana pasada tras un robo de 5.720 dólares de una cartera digital de BitCoins, la moneda virtual. Según informa Ars Technica, afecta a los generadores pseudo aleatorios de números de Java que, bueno, no lo son tanto y haciendo uso de esta vulnerabilidad se pueden predecir. El fallo está presente en todas las versiones de Android.
El problema real está en que hay más de 360.000 aplicaciones que confían en la librería JCA según Symantec, y su uso suele estar relacionado con la generación aleatoria de claves para todo tipo de transacciones seguras, como es el caso de BitCoin. Y ahora viene en dónde está la culpa de Google: no se inicializa la función que genera los números pseudo aleatorios correctamente si el usuario no lo hace por sí mismo, y por lo tanto produce número no aleatorios.
Los fallos en Java son muy habituales y un quebradero de cabeza para Oracle. Siempre he dicho que la mejor forma de hacer que Java sea más seguro sería reescribirlo desde cero, aunque existen versiones del compilador de Java no controladas por Oracle que hacen precisamente eso: partir de cero centrándose en la seguridad. Pero desgraciadamente, la versión más común es Java 1.2, que es a la vez la que cuenta con mayor cantidad de vulnerabilidades.
Por último, Google ya ha corregido los fallos que permiten esta vulnerabilidad, pero no sabemos cuándo llegará al usuario final debido a que primeramente deben crear parches los fabricantes de los terminales. En algunos casos, ni siquiera llegarán a los terminales de 2011 o 2012 debido a la mala política de actualización de las compañías que dejan fuera del ciclo de actualizaciones a terminales con tan solo 1 ó 2 años de existencia. Un punto más a favor de la gama Nexus de Google.
Por su parte, los desarrolladores tendrán que actualizar sus aplicaciones para inicializar correctamente la generación aleatoria de claves, y de momento las de BitCoin lo van haciendo rápidamente. Por la cuenta que les trae.