Ir al contenido

Brainwallet

De BitcoinWiki
Brainwallet
Brainwallet.

Un brainwallet es un método para derivar claves de criptomonedas a partir de la información que una persona intenta recordar. En su forma clásica de Bitcoin, un usuario elige una palabra, cita o frase de contraseña y la codifica para obtener una clave privada. Este método no es seguro porque el texto elegido por humanos tiene mucha menos imprevisibilidad que una clave criptográfica y los atacantes pueden probarlo sin interactuar con el propietario.

El término también se utiliza a veces para memorizar una frase de recuperación generada en la billetera. Se trata de una construcción diferente: una frase de recuperación codifica entropía aleatoria generada por el software de billetera, mientras que una billetera cerebral clásica comienza con palabras elegidas por el usuario. Depender de la memoria como única copia de seguridad todavía crea un grave riesgo de pérdida permanente.

Advertencia de seguridad: No cree ni financie un Brainwallet clásico. No pruebe una frase de contraseña, una frase de recuperación, una semilla o una clave privada real en un sitio web. Se debe asumir que los ejemplos publicados en artículos, videos, código fuente o demostraciones están comprometidos.

Cómo funcionan los Brainwallets clásicos

Las primeras herramientas de billetera cerebral comúnmente aplicaban un hash como SHA-256 a una frase seleccionada por el usuario e interpretaban el resultado como una clave privada de Bitcoin. La clave pública y la dirección asociadas podrían entonces calcularse de forma determinista. El proceso no requirió ningún archivo de clave almacenado, lo que lo hacía parecer resistente a la pérdida o robo del dispositivo.

El diseño traslada el problema de seguridad a la frase memorizada. Un atacante puede recopilar diccionarios, citas, títulos de canciones, contraseñas filtradas, variantes ortográficas, patrones de teclado y listas de palabras específicas de un idioma; derivar cada clave candidata; y verifique la cadena de bloques pública en busca de fondos. Estas conjeturas se realizan sin conexión y a alta velocidad. Una oración larga o de apariencia inusual no es necesariamente impredecible, y agregar algunas sustituciones o signos de puntuación no proporciona una entropía criptográfica mensurable.

Evidencia de explotación

Vasek, Bonneau, Castellucci, Keith y Moore realizaron un estudio a gran escala sobre el uso de la billetera cerebral de Bitcoin. Después de evaluar alrededor de 300 mil millones de contraseñas candidatas y excluir la actividad de investigación, identificaron 884 billeteras cerebrales utilizadas entre septiembre de 2011 y agosto de 2015. Todas menos 21 habían sido agotadas; muchos se vaciaron en cuestión de minutos y la mayoría en 24 horas. Los investigadores observaron múltiples drenadores compitiendo para gastar fondos de claves débiles.[1]

Ryan Castellucci demostró públicamente el modelo de ataque en DEF CON 23 y lanzó brainflayer, una herramienta de prueba de concepto que prueba frases candidatas utilizando la derivación de clave pública secp256k1 de Bitcoin.[2] La herramienta no rompió la criptografía de Bitcoin: automatizó conjeturas extraídas del espacio mucho más pequeño de elecciones humanas.

Por qué fortalecer el hash no es suficiente

Algunos diseños posteriores agregaron sales o funciones de derivación de contraseñas con memoria dura para hacer que cada conjetura fuera más costosa. Dichos controles pueden ralentizar materialmente a un atacante cuando se especifican e implementan correctamente, pero no constituyen una frase predecible equivalente a un secreto uniformemente aleatorio. Su protección depende de la frase, los parámetros, la sal, la implementación y los recursos del atacante.

Los esquemas personalizados añaden otro riesgo: si se olvidan la normalización exacta, la codificación de caracteres, las mayúsculas, la sal o los parámetros, las mismas palabras pueden derivar una clave diferente. Una construcción privada también puede recibir poca revisión y volverse imposible de reproducir después de que su software desaparezca. Por esas razones, una “billetera cerebral reforzada” no debe presentarse como un reemplazo de la entropía de billetera generada de forma segura y una copia de seguridad probada.

Las frases de recuperación son diferentes

Las frases de recuperación BIP 39 codifican de 128 a 256 bits de entropía generada por billetera más una suma de verificación y derivan una semilla usando PBKDF2-HMAC-SHA512. La especificación describe explícitamente las palabras como un transporte para la aleatoriedad generada por computadora, no como una forma de procesar oraciones creadas por el usuario.[3] Otras carteras utilizan diferentes esquemas de códigos de recuperación. En todos los casos, la seguridad proviene de la entropía aleatoria de la billetera y del proceso de derivación revisado, no de una persona que inventa palabras memorables.

Mastering Bitcoin distingue los códigos de recuperación de los Brainwallets sobre esta base: la billetera crea aleatoriamente las palabras de recuperación, mientras que las palabras de Brainwallet las selecciona el usuario.[4] Una frase de recuperación es una copia de seguridad completamente secreta y nunca debe revelarse.

Una frase de contraseña BIP 39 opcional crea una semilla diferente para cada valor ingresado. Por lo tanto, puede proporcionar un secreto adicional, pero también crea otro riesgo de pérdida permanente: no existe un servicio universal de recuperación de cuentas y una frase de contraseña incorrecta puede abrir una billetera aparentemente válida pero diferente. No debe confundirse con la elección de las propias palabras de recuperación.

Riesgos de continuidad y memoria humana

Incluso un secreto que inicialmente tenía suficiente entropía puede perderse debido a acontecimientos humanos comunes. El recuerdo exacto puede cambiar con el tiempo, enfermedades, lesiones, estrés, envejecimiento, cambios en el lenguaje o una ayuda mnemotécnica mal entendida. La custodia basada únicamente en la memoria también crea difíciles problemas de herencia e incapacidad. Por el contrario, la coerción puede derrotar la suposición de que un secreto memorizado no deja nada que robar.

Memorizar el material de recuperación generado en la billetera puede ser una protección personal adicional, pero no debería ser el único método de recuperación probado a menos que el propietario haya aceptado deliberadamente los riesgos de olvido, incapacidad, muerte, coerción y fracaso de la herencia. Un plan duradero normalmente separa la generación aleatoria segura de la recuperación redundante, protegida físicamente y probada.

Práctica más segura

  • Utilice un software de billetera mantenido o un dispositivo de firma de hardware que genere entropía de forma segura.
  • Registre el material de recuperación de la billetera exactamente como se indica y manténgalo fuera de línea en un almacenamiento físicamente protegido.
  • Nunca fotografíe, envíe por correo electrónico, cargue ni pegue una frase de recuperación en un sitio web, una conversación de soporte o un sistema de inteligencia artificial.
  • Pruebe el proceso de recuperación utilizando el procedimiento documentado de la billetera y un entorno seguro antes de confiar en la copia de seguridad.
  • Preservar el tipo de billetera y otros metadatos no secretos necesarios para la recuperación.
  • Considere la pérdida, el robo, el incendio, la coerción, la incapacidad y la herencia como partes separadas del modelo de amenaza.
  • Si alguna vez un Brainwallet clásico o un ejemplo expuesto públicamente ha retenido fondos, trate su clave como comprometida y transfiera los fondos restantes a un monedero recién generado.

Valor histórico y educativo

Los Brainwallets son un ejemplo importante de la diferencia entre el tamaño de la clave matemática y la seguridad efectiva. El espacio de clave privada de Bitcoin es extremadamente grande, pero una clave derivada de una cita común ocupa un pequeño conjunto de conjeturas priorizadas por el atacante. El episodio también ilustra por qué las afirmaciones de seguridad deben examinar la generación de entropía, el comportamiento de las copias de seguridad, la compatibilidad del software y las interfaces de usuario en lugar de solo los algoritmos criptográficos.

Los tutoriales más antiguos a menudo incluían una frase elaborada, una clave derivada y una dirección. Repetir un recorrido de este tipo proporciona poco valor enciclopédico y crea una clave predecible que los lectores pueden fundamentar por error. La lección útil es el modelo de ataque y la evidencia histórica, no una receta reutilizable de generación de secretos.

Ver también

Referencias