¿Por qué las billeteras cerebrales no son seguras? La gente lo sigue diciendo, pero explícame por qué.

Todo el mundo sigue diciendo que las billeteras cerebrales son inseguras. ¿Alguien puede explicarme POR QUÉ?

¿Qué pasaría si tuviera una billetera cerebral de 200 caracteres, que es la concatenación de los nombres de todos los miembros de mi familia junto con los signos de puntuación y los números? ¿Qué hay sobre eso?

¿Y cuánto dura una clave privada? No veo cómo una billetera cerebral es insegura si se te ocurre algo que SOLO tú puedes saber.

Respuestas (6)

Alguien más ya mencionó la entropía. Los humanos son realmente malos para crear aleatoriedad. Pero eso es solo una parte. La otra parte es el tiempo, y cómo está del lado del atacante.

Un atacante puede generar muchos brainwallets con muchas palabras y frases diferentes. Luego miran la cadena de bloques para ver si alguna de esas direcciones recibe monedas. Si lo hacen, el atacante se abalanza y roba las monedas. ¿Qué hace el atacante mientras espera? ¡Genera más carteras de cerebros! Cada palabra del diccionario. Cada variante l33tspeak de cada palabra del diccionario. Todas las frases cortas. Todas las frases en cada libro, siempre. Poemas oscuros en lengua extranjera. Las direcciones de Bitcoin no ocupan mucho espacio de almacenamiento, por lo que el atacante puede conservarlas todas y observarlas. Tiene todo el tiempo del mundo.

Tal vez tenga suerte y encuentre una frase de contraseña que nadie más haya generado. Pero es arriesgado. Por otro lado, puede generar fácilmente una billetera segura y memorable con Electrum , que traduce una clave aleatoria de 128 bits en doce palabras. También hay otros sistemas mnemotécnicos que puede utilizar. Entonces, ¿por qué arriesgarse a que le roben las monedas de su billetera cerebral cuando es tan fácil almacenarlas de forma segura?

¿Cuál es la diferencia de esas 12 palabras cuando puedes usar una billetera cerebral de 5 direcciones diferentes en las que vivías previamente combinadas como una cadena realmente larga que también involucra puntuación? ¿El diccionario de electrum está limitado a un máximo de 1000 palabras? pero las direcciones completas son al menos 100,000+ en el mundo o solo en los EE. UU. ¿pensamientos?
Una diferencia es que un brainwallet es una sola dirección. Se utiliza una semilla de Electrum para generar de manera determinista una billetera con un número ilimitado de direcciones. Por el bien de la privacidad, es mejor nunca reutilizar una dirección. Entonces, una vez que haya usado su billetera cerebral una vez, corre el riesgo de comprometer su privacidad si la usa nuevamente.
Si realmente quiere usar un brainwallet y cree que tiene una frase de contraseña realmente segura, adelante. Su idea de usar direcciones anteriores probablemente funcione. Pero muchas, muchas personas crean frases de contraseña que creen que son seguras pero que en realidad no lo son. Lo más seguro es evitar los brainwallets por completo.

No tiene que ver con la longitud, sino con la entropía. Los humanos son terribles para crear aleatoriedad, incluso lo que crees que es difícil de adivinar, con toda probabilidad podría adivinarse con suficiente iteración.

Los apellidos, por ejemplo, son fáciles de adivinar, hay un número finito de ellos y una gran parte de los nombres provienen de un conjunto de solo unos pocos cientos.

¿Cuál es la probabilidad de que recuerde qué son los nombres, la ortografía, la puntuación y el orden? Bastante bajo, sospecho, los humanos también son terribles para recordar datos explícitos como ese.

Tan pronto como las personas comienzan a tratar de ser inteligentes, es probable que pasen del robo a la pérdida irrecuperable. Simplemente use las claves criptográficas de la forma en que se supone que deben usarse, 256 bits de entropía creados con un CSRNG.

¿Me estás diciendo que no puedes nombrar a todas tus tías, tíos y primos en el orden en que nacieron? Luego agrega su propia sal de contraseña al final y la posibilidad de algunos otros elementos aleatorios que solo usted conocería. creo que es mucho más aleatorio que 5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF
Definitivamente no podía recordar ni siquiera todos sus nombres, ¿los que han pasado cuentan? ¿Qué pasa con los cambios de nombre debido al matrimonio? Buena suerte recordando algo tan increíblemente complejo. No hay más entropía en su esquema que la clave de 256 bits que publicó, 2 ** 256 es inimaginablemente enorme, más átomos que los que componen la tierra.

200 caracteres me suena un poco excesivo. ¿Cuáles son las posibilidades de un error tipográfico al intentar ingresar su contraseña, solo para generar la clave privada?

Mi sugerencia, si desea utilizar una contraseña lo suficientemente segura, es primero asegurarse de que no está utilizando en gran medida palabras o frases reales. Ciertamente, use información que solo usted conozca, organizada de una manera que solo usted pueda reconstruir de manera fácil y consistente. Mantendría la longitud por debajo de 100 caracteres, para minimizar las posibilidades de errores tipográficos persistentes.

Una clave privada aleatoria seguiría siendo matemáticamente más segura, pero las posibilidades de pérdida pueden ser mayores si tiene dificultades para asegurarla y protegerla. ¿Cuántas personas han "perdido" Bitcoin porque olvidaron la contraseña de su billetera o se desinstaló la billetera? ¿A cuántas personas les han robado su Bitcoin porque las copias de las claves se almacenaron en una forma o ubicación no segura?

Realmente necesita encontrar su tolerancia al riesgo en ambos lados. ¿Quiere algo menos criptográficamente seguro pero más fácilmente recuperable (menor probabilidad de pérdida, mayor probabilidad de robo) o más criptográficamente seguro y menos fácilmente recuperable (mayor probabilidad de pérdida, menor probabilidad de robo)?

Personalmente, me inclino por hacer una contraseña de Brainwallet que sea lo suficientemente segura como para proteger mi Bitcoin durante toda mi vida (o más, si es posible), en lugar de usar un software de billetera donde podría perder las claves privadas si mi disco duro falla. , o donde las copias de las claves privadas pueden robarse más fácilmente porque no pude mantenerlas lo suficientemente seguras.

Una presentación muy interesante sobre este tema, sobre cómo descifrar las billeteras cerebrales de bitcoin:

https://www.youtube.com/watch?v=foil0hzl4Pg

Las billeteras cerebrales pueden ser seguras, si puede generar y recordar alrededor de 80 bits de entropía y se procesan con un algoritmo de fortalecimiento de clave apropiado como bcrypt o scrypt. Una palabra aleatoria en inglés tiene alrededor de 12 bits, por lo que alrededor de siete palabras es el mínimo, o alrededor de 13 caracteres base64 completamente aleatorios.

Dado que la mayoría de las personas elegirán algo como 'uberSecret#wallet87' que apenas tiene 40 bits de entropía, la mayoría de estas semillas se adivinan fácilmente en unos pocos minutos en una computadora común, por lo que las billeteras cerebrales solo deben ser utilizadas por personas que entienden lo que están haciendo. Un paso estándar en cualquier pirateo de contraseña es obtener el texto cifrado de la contraseña; en el caso de Bitcoin, se distribuye a través de la cadena de bloques a una red global de personas con el hardware y las habilidades para atacarla. Además, no hay salazón, por lo que realmente necesita al menos 80 bits.

Suponiendo que hay ~2000 nombres posibles y un total de 20 miembros de la familia a los que podrías nombrar así, tendrías 2000^20 ~ 2^245posibles combinaciones, por lo que no sería terrible en comparación con un CSPRNG. Y sí, si te encuentras con una combinación de personajes que ningún otro ser humano considera plausible, eso sería seguro. Sin embargo, las posibilidades de que eso suceda, dado que estamos sintonizados para producir secuencias con las que otros puedan identificarse, no son tan buenas como pensarías.

El mayor defecto es que estarías usando información pública. Dado un registro de nacimiento, uno podría generar todas las contraseñas posibles con el esquema de apellido con bastante rapidez. Solo hay n_populationcombinaciones que no son nada para un descifrador de contraseñas. Te encuentras con un problema similar si decides usar un poema, el SHA256 del PNG de tu meme favorito, una respuesta de StackOverflow o cualquier otra cosa que parezca oscura pero que esté inherentemente en la esfera pública. SHA256 de una foto de bebé que solo tú tienes? Quizás. Pero, de nuevo, probablemente sea tan problemático almacenar el SHA256 en sí mismo, y un CSPRNG le dará eso.

También puedes hacer esto exactamente una vez. Si alguien encuentra su esquema y aterriza en su combinación, ¿entonces qué? Agregar algunos caracteres y números para darle vida a las cosas después de eso creará una clave que no es tan diferente desde la perspectiva de un descifrador de contraseñas, ya que entonces usará una contraseña de quizás 8 caracteres una vez que alguien conozca la original. . Claro, podría volverse loco aquí, pero ingresa a un territorio en el que también podría usar un CSPRNG, ya que será igual de difícil de recordar. No es imposible que esto suceda con un CSPRNG, pero todo lo que haces entonces es girarlo y usar la siguiente combinación que te da.

Su todo sobre riesgo realmente. ¿Si usted y sus amigos deciden poner el bote de póquer en una billetera asegurada por el SHA256 de una imagen de la fiesta sentada alrededor de la mesa? Tal vez eso sea suficiente si la billetera solo se usa para la noche. Pero si desea hacer algo a más largo plazo con una cantidad de dinero más significativa, le recomiendo que siga las recomendaciones de personas que han estudiado este problema únicamente desde la perspectiva de la seguridad.