Por qué la fuente de entropía es clave en la generación de claves privadas
Este artículo está disponible en los siguientes idiomas:
¿Sabías que una clave privada de Bitcoin es un número de 256 bits? Esto significa que existen alrededor de 2^256 combinaciones posibles, una cifra tan inmensa que supera el número total de átomos en el universo observable.
Las claves privadas son el pilar de la seguridad en las criptomonedas, actuando como el equivalente criptográfico de una contraseña maestra para tus activos digitales. Su seguridad depende en gran medida del azar o entropía, que es fundamental en su generación. La entropía se mide en bits y cuantifica el grado de aleatoriedad o incertidumbre de un sistema.
Para que te des una idea de la importancia de la aleatoriedad: una mala entropía al generar claves privadas ha provocado vulnerabilidades graves e incluso hackeos. En 2024, se perdieron más de US$ 239 millones debido a claves privadas comprometidas, lo que subraya lo esencial que es asegurar que estas claves se generen con entropía de alta calidad.
Entonces, si una clave privada de Bitcoin es solo un número, ¿cuánto tardaría una supercomputadora en descifrarla por fuerza bruta? Quédate hasta el final de este artículo para descubrir la respuesta.
¿Qué es la entropía?
La entropía es una medida de aleatoriedad o imprevisibilidad, y es crucial para generar claves criptográficas seguras. El concepto proviene de la teoría de la información, donde la entropía cuantifica la incertidumbre en un sistema. En términos simples, cuanto más impredecible es algo, mayor es su entropía.
Una alta entropía es esencial para las claves privadas en criptomonedas porque asegura que sean prácticamente imposibles de adivinar o descifrar por fuerza bruta. Esta aleatoriedad suele derivarse de diversas fuentes, como eventos de hardware, ruido ambiental o interacciones del usuario como movimientos del mouse y pulsaciones de teclas. El sistema operativo agrupa estos eventos impredecibles para generar un número verdaderamente aleatorio que sirve de base para una clave privada segura.
Sin suficiente entropía, las claves generadas pueden volverse predecibles y vulnerables a ataques. Por ejemplo, si la fuente de entropía es defectuosa, podría producir los mismos o similares resultados repetidamente, permitiendo que los atacantes predigan o incluso recreen la clave privada.
Esta aleatoriedad es tan crucial que incluso sistemas sofisticados como plataformas en la nube y máquinas virtuales emplean hardware dedicado para garantizar un suministro confiable de entropía de alta calidad en operaciones criptográficas.
¿Cómo funciona la entropía?
En las billeteras de hardware, la entropía es fundamental para generar claves privadas seguras. Así es como funciona:
Fuente de entropía
Billeteras de hardware como Tangem Wallet cuentan con Generadores de Números Aleatorios por Hardware (HRNGs). Estos dispositivos generan aleatoriedad midiendo fenómenos físicos como el ruido electrónico o variaciones térmicas. Esta entropía bruta es esencial para crear claves privadas impredecibles.
Algunas billeteras permiten que los usuarios aporten entropía ingresando datos aleatorios manualmente, por ejemplo, tirando dados. Aunque mezclar entropía controlada por el usuario con la generada por hardware puede no cambiar mucho el grado de entropía, es un añadido interesante.
Generación de la clave
Una vez que se ha reunido suficiente entropía, la billetera la utiliza para generar una clave privada. Este proceso generalmente implica combinar la entropía con algoritmos criptográficos como SHA-256 para producir una clave de 256 bits. Muchas billeteras de hardware emplean el estándar BIP39 para generar una frase mnemotécnica (una serie de 12 a 24 palabras) a partir de la entropía. Esta frase puede usarse para recuperar la clave privada si es necesario.
Seguridad del proceso
El firmware de la billetera garantiza que la entropía se mezcle completamente para evitar cualquier previsibilidad. Luego almacena la clave privada de forma segura en un entorno resistente a manipulaciones dentro del dispositivo. Por eso, la mayoría de las billeteras de hardware cuentan con un elemento seguro certificado por CC. El firmware de Tangem también ha sido auditado dos veces por destacados laboratorios de seguridad independientes: Kudelski Security y Riscure.
En general, las billeteras de hardware aíslan los procesos de generación de entropía y almacenamiento de claves del resto de las operaciones del dispositivo. Esta separación reduce el riesgo de exposición a malware u otras amenazas externas.
Respaldo y recuperación
La frase mnemotécnica generada a partir de la entropía puede anotarse y guardarse en un lugar seguro. Esta frase es clave para recuperar la billetera si el dispositivo se pierde o se daña. La propia frase contiene la entropía usada para generar la clave, lo que la convierte en un método de respaldo seguro.
Las billeteras de hardware dependen de entropía de alta calidad para garantizar que las claves privadas que generan sean seguras y resistentes a ataques, lo que las convierte en uno de los métodos más seguros para almacenar criptomonedas.
¿Por qué es importante la entropía?
Como contienen la misma información pero en diferentes formatos, tu entropía debe mantenerse tan privada como tu frase de recuperación. Para reiterar: ¡cualquiera que tenga acceso a tu entropía puede acceder a toda tu billetera!
Así como tu frase semilla da acceso a todas tus claves privadas y, por lo tanto, a cada cuenta protegida por esa billetera, lo mismo ocurre con tu entropía. Por eso, es fundamental para la seguridad asegurarse de que tu entropía sea lo más aleatoria posible y difícil de descifrar.
No querrías que alguien adivinara tu entropía y accediera a tus fondos, ¿verdad? Justamente por eso, este número debe ser tan difícil de adivinar. Debe ser tan aleatorio que adivinar la secuencia o encontrar la misma combinación dos veces sea estadísticamente imposible.
Si tu entropía es fácil de adivinar, los hackers podrían aprovecharlo y acceder a tus fondos. Por eso, elegir una billetera cripto que considere este aspecto es sumamente importante.
Entropía y frases semilla: lo que debes saber
La aleatoriedad de tu frase semilla es fundamental para mantener la seguridad. Elegir palabras manualmente o usar patrones predecibles debilitaría considerablemente la protección de tu billetera. El método basado en entropía que utiliza Tangem garantiza un nivel de aleatoriedad esencial para una defensa robusta contra distintos ataques cripto.
Aunque Tangem proporciona las herramientas para generar entropía de forma segura, es importante recordar que proteger tu frase semilla es tu responsabilidad. Nunca compartas esta información con nadie, ni siquiera con representantes de Tangem. Tu frase semilla es la llave de tus activos digitales y su secreto es vital para mantener la seguridad de tu billetera.
Caso Trust Wallet: por qué la buena entropía importa
Al elegir una billetera cripto, debes priorizar cómo genera la aleatoriedad. El incidente de seguridad en Trust Wallet en 2022 se debió principalmente a la naturaleza predecible de la generación de entropía en la billetera.
SecBit hizo un excelente trabajo investigando y explicando esta vulnerabilidad en su blog: Trust Wallet's Fomo3D Summer: Fresh Discovery of Low Entropy Flaw From 2018. Aquí resumimos los puntos clave.
La versión iOS de Trust Wallet dependía de la biblioteca trezor-crypto para generar palabras mnemotécnicas BIP39. Esta biblioteca incluía un código de ejemplo que nunca debió usarse en producción. El propio código advertía que era solo para pruebas y no para situaciones reales.
- El código tiene dos partes principales: random32() y random_buffer().
- random32():
- Esta parte crea números aleatorios, pero lo hace de una forma poco segura.
- Utiliza la hora actual para iniciar el proceso de generación.
- El problema es que, si sabes aproximadamente cuándo se creó el número, podrías adivinarlo.
- Aún peor, si dos personas generan números en el mismo segundo exacto, obtendrán el mismo número "aleatorio". - random_buffer():
- Esta parte llena un espacio con bytes aleatorios.
- Utiliza random32() para hacerlo, por lo que hereda los mismos problemas de seguridad. - El gran problema:
- Este código se usó para crear frases semilla que daban acceso a las billeteras de los usuarios.
- Como la aleatoriedad no era realmente aleatoria, fue mucho más fácil para los hackers adivinar estas frases de lo que debería.
- En vez de adivinar entre millones de posibilidades, solo debían probar entre unos pocos miles (según los posibles momentos de creación). - El error:
- Trust Wallet ignoró la advertencia y usó el código de todas formas.
- Esto hizo que la entropía de las frases para crear billeteras fuera mucho más fácil de recrear de lo que debería haber sido.
La reciente brecha de seguridad en Trust Wallet nos recuerda la importancia vital de una buena generación de entropía para proteger las billeteras de criptomonedas. Trust Wallet resolvió el problema compensando a los usuarios por sus pérdidas.
¿Cómo genera entropía Tangem Wallet?
Tangem Wallet ofrece una seguridad robusta para tus criptoactivos, comenzando por su proceso de generación de entropía. La billetera utiliza un Generador de Números Aleatorios Verdaderamente Aleatorio certificado, probado exhaustivamente por expertos independientes. Esto garantiza que los números generados sean impredecibles, protegiendo tus activos frente a posibles ataques.
¿Cuánto tardaría en descifrarse por fuerza bruta una clave privada de Bitcoin?
Para responder a esta pregunta, veamos el proceso y la magnitud del desafío:
Una clave privada de Bitcoin es, en efecto, solo un número, pero de tamaño gigantesco. Específicamente, es un número de 256 bits, lo que implica que existen 2^256 posibles claves privadas.
Incluso con las supercomputadoras más potentes de hoy, descifrar por fuerza bruta una clave privada de Bitcoin tomaría un tiempo inconcebible. Hablamos de escalas de tiempo mucho mayores que la edad del universo.
Suponiendo que una supercomputadora pudiera revisar 1 billón (10^12) de claves por segundo, encontrar una sola clave privada tomaría en promedio 3,67 x 10^57 años. El universo tiene unos 13.800 millones de años (1,38 × 10^10 años).
Así que el tiempo necesario para descifrar por fuerza bruta una clave privada de Bitcoin es unas 1,33 × 10^47 veces la edad del universo.
Es asombroso lo que hemos logrado en esta joven y húmeda roca llamada Tierra.