La vulnerabilidad de SecureRandom en Android de 2013

Investigación. Vulnerabilidad

La vulnerabilidad de SecureRandom en Android de 2013

En 2013, el generador de números aleatorios de Android no era tan aleatorio como debería haber sido, y las carteras de Bitcoin que confiaban en él revelaron sus claves privadas a través de las mismas transacciones que firmaban.

Actualizado en julio de 2026 · KeychainX — Recuperación de carteras desde 2017

Este es un ejemplo emblemático de un fallo de aleatoriedad a nivel de plataforma con consecuencias económicas directas. En agosto de 2013, una vulnerabilidad en la implementación de SecureRandom de Android provocó que unos valores que se suponían impredecibles no lo fueran, lo que hizo que las carteras de Bitcoin de los dispositivos afectados quedaran expuestas. Esta página documenta lo que ocurrió y por qué sigue siendo relevante para las carteras antiguas de Android.

Por qué las firmas necesitan aleatoriedad

Cada vez que una cartera de Bitcoin realiza un pago, firma la transacción con ECDSA, y cada firma requiere un número aleatorio nuevo e impredecible: el «nonce» o valor k. La seguridad de ECDSA depende totalmente de que ese número sea único y secreto para cada firma. Si se reutiliza el mismo k en dos firmas, las matemáticas permiten que cualquiera pueda calcular la clave privada a partir de las dos firmas públicas. Se trata de uno de los ejemplos más claros de «un pequeño error, una pérdida total» en criptografía.

La vulnerabilidad de SecureRandom

Las aplicaciones de Android obtenían esa aleatoriedad del sistema SecureRandom. En 2013 se descubrió que, en determinadas condiciones, la implementación de Android no se inicializaba correctamente, por lo que podía generar resultados predecibles o repetidos. En el caso de los monederos de Bitcoin, esto significaba que el valor k crítico de las firmas se repetía en ocasiones. Dos transacciones del mismo monedero que reutilizaran un mismo valor k proporcionaban a un observador toda la información necesaria para deducir la clave privada directamente de la cadena de bloques pública.

El impacto

Dado que las transacciones de Bitcoin son públicas, los atacantes podían analizar la cadena en busca de los nonces repetidos reveladores y vaciar las carteras expuestas. Varias carteras de Bitcoin para Android se vieron afectadas y se sustrajeron fondos antes de que el ecosistema pudiera reaccionar. La respuesta oficial instó a los usuarios afectados a generar nuevas claves y trasladar sus monedas, y las aplicaciones de carteras lanzaron correcciones; sin embargo, cualquier transacción que ya se hubiera firmado con un nonce repetido había dejado al descubierto su clave de forma permanente.

Cómo identificar un monedero afectado

La huella digital permanece en la cadena de bloques: dos o más firmas procedentes de la misma dirección que comparten un nonce. Un antiguo monedero de Bitcoin para Android de la época de 2013 que haya firmado varias transacciones constituye el perfil classic . Incluso un monedero del que nunca se haya vaciado el saldo de forma evidente puede haber firmado una transacción vulnerable y, si aún contiene fondos, cualquiera que detecte el patrón podría acceder a ellos, lo que hace que merezca la pena realizar una evaluación en lugar de dar por sentada la seguridad.

Qué significa esto para la recuperación

Para un propietario, esta falla tiene dos caras. Si tu propia cartera antigua de Android expusiera su clave mediante un nonce repetido, la clave privada se podría deducir a partir de tus propias transacciones públicas —lo cual, con una prueba de propiedad, constituye una vía legítima para recuperar fondos a los que ya no puedes acceder de otra forma. Consideramos esto estrictamente como una recuperación por parte del propietario: reconstruir una clave a partir de las firmas de una cartera de la que el cliente sea propietario de forma demostrable, para transferir los fondos a los que había perdido acceso.

La lección más general

El incidente de SecureRandom en Android es el ejemplo por excelencia de que la seguridad de un monedero depende directamente de la aleatoriedad en la que se basa. Pertenece a la misma categoría que Randstorm y MilkSad: una criptografía sólida socavada por una fuente de aleatoriedad predecible o defectuosa. La diferencia en este caso es que el fallo provocó la filtración de claves a través de la firma, en lugar de durante la generación de claves, pero el principio —y la lógica de recuperación para los propietarios— es el mismo.

Si tuvieras una cartera para Android de la época de 2013

Si tenías bitcoins en un monedero de Android allá por 2013 y aún conservas parte de ese material de clave o del historial de transacciones, considera que el monedero podría estar comprometido: cualquier saldo restante debería transferirse a un monedero basado en una aleatoriedad sólida. Si has perdido el acceso a dicho monedero, la vulnerabilidad del «nonce» podría ser, de hecho, la vía para que tú, como propietario, recuperes el acceso; vale la pena evaluarlo antes de dar por perdidos los fondos.

Por qué sigue siendo importante años después

Es tentador considerar una vulnerabilidad de 2013 como historia antigua, pero la permanencia de Bitcoin cambia esa perspectiva. Cada firma vulnerable que se haya transmitido sigue estando en la cadena, exactamente tal y como era, por lo que una clave expuesta por un nonce repetido hace una década queda expuesta para siempre: la cadena de bloques no olvida. Esto significa que las antiguas carteras de Android de aquella época siguen siendo un factor a tener en cuenta hoy en día: cualquiera que aún tenga saldo es accesible para quien busque ese patrón, y cualquier cartera cuyo propietario haya perdido el acceso puede recuperarse potencialmente a través de esa misma vulnerabilidad. Una vulnerabilidad en datos públicos y permanentes nunca caduca del todo, y es precisamente por eso por lo que debe figurar en una referencia como esta, en lugar de en una nota al pie de página de 2013.

Nuestra documentación

KeychainX documenta este caso como parte de nuestra investigación sobre la aleatoriedad débil, junto con Randstorm y MilkSad. Los avisos originales de 2013 de la comunidad de Bitcoin contienen toda la información al respecto; nuestro objetivo es recuperar las carteras afectadas para sus legítimos propietarios. Si tienes una antigua cartera de Bitcoin para Android a la que ya no puedes acceder, merece la pena que le eches un vistazo.

Preguntas frecuentes

¿Cómo puedo saber si mis firmas han reutilizado un nonce?

En la cadena de bloques se observa que hay dos firmas procedentes de una misma dirección que comparten el mismo valor de nonce. Podemos comprobar si el historial de transacciones de una dirección presenta este patrón como parte de una evaluación.

¿En qué consistía el fallo de SecureRandom de Android de 2013?

Una vulnerabilidad en la función SecureRandom de Android que generaba resultados predecibles o repetidos. Las carteras de Bitcoin que la utilizaban podían reutilizar el nonce de ECDSA en diferentes firmas, lo que permitía a cualquiera deducir la clave privada a partir de las transacciones públicas.

¿Cómo se sustrajeron los fondos?

Los atacantes analizaron la cadena de bloques en busca de firmas que reutilizaran el mismo nonce y, a partir de ellas, calcularon las claves privadas; a continuación, vaciaron las carteras, todo ello a partir de datos públicos.

¿Podría verse afectada mi antigua cartera de Android?

Si data aproximadamente de 2013 y se han realizado varias transacciones con ella, es posible. El riesgo se manifiesta en forma de nonces de firma repetidos en la cadena de bloques. Se deberían transferir los fondos restantes.

¿Me puede ayudar esto a recuperar mi propio monedero?

Si tu propia cartera ha revelado su clave mediante un nonce repetido, la clave se puede deducir a partir de tus transacciones públicas, lo que constituye una vía de recuperación legítima para ti, como propietario demostrado.

¿Cuánto cuesta la recuperación?

Basado en los resultados: un porcentaje del valor recuperado solo si recuperamos el monedero, y nada por adelantado.

¿Tienes una cartera de Bitcoin antigua para Android a la que no puedes acceder?

Es posible que se pueda recuperar un monedero de Android de la época de 2013 aprovechando la vulnerabilidad del «nonce» —para ti, como propietario—. Dinos qué tienes y te daremos una valoración honesta en un plazo de 24 horas.

Contactar con KeychainX →