Author

Topic: 25 minutos basta para dar con el orden correcto de una semilla desordenada, con (Read 129 times)

member
Activity: 82
Merit: 28
Es direcciones Data Base de bitcoin, gracias por su explicacion. Entiendo a lo que se refiere ahora.
legendary
Activity: 2338
Merit: 10802
There are lies, damned lies and statistics. MTwain
Qué es AddressDB.?

En el contexto aquí tratado, sería una base de datos que contiene las 1,1M de direcciones públicas distintas que figuran en la blockchain de Bitcoin. Lo que pretende el sistema del caso citado en el OP, a grosso modo, es buscar una combinatoria de la semilla que bien de con la dirección que se le indique (y que pertenece seguro a la cartera), bien pertenezca a una dirección existente en la Blockchain cualquiera (para lo cual usa la AddressDB).

Como la AddressDB completa sería grande, sobre las 1,110,878,796 direcciones distintas, entiendo que reduciría el espectro de búsqueda limitando a direcciones de TXs en un periodo en el cual sepamos que hemos hecho una TX (ej/ año 2022), reduciendo así sustancialmente el tamaño de la Base de Datos.

Nota: He corregido un post anterior, donde me fui algún orden de magnitud que otro a la baja ...
member
Activity: 82
Merit: 28
legendary
Activity: 1162
Merit: 2025
Leading Crypto Sports Betting & Casino Platform
Esto me recuerda un poco las diferencias que existen entre la generación y recuperación de las semillas en los equipos de Trezor.

El Trezor One por defecto tiene una generación de 24 paralabras, Mientras en modelo Trezor T tiene por defecto una generación de 12 (con la opción de importar seeds the 24 palabras).

La cuestión es que en el momento de recuperar, en el Trezor One (debido a su complejo manejo de botones duales) también tiene la opción de recuperar tecleando las palabras en forma desordenada en el teclado. Obviamente la opción más segura y la recomendada en aprender a hacerlo con los dos botones que tiene.

En el caso del Modelo T es más fácil hacerlo desde el dispositivo en si, pero aún así te dan la opción de teclear las 12 palabras en la PC, en ese caso tengo entendido que a parte de estar desordenadas también se incluyen palabras falsas para desorientar a un posible atacante que tenga un keylogger en nuestros equipos. No tengo un modelo T así que nose como funcionará eso exactamente...
legendary
Activity: 2338
Merit: 10802
There are lies, damned lies and statistics. MTwain
El software original de BTCrecover (o lo que creo que es) parece llevar años sin actualizarse, y he visto que hay varios usuarios que han clonado el repositorio y lo han evolucionado un tanto a su manera. Queda claro que, sea con el software original, o una derivada, uno ha de tener cuidado con lo que instala y ejecuta, y para pruebas, sería mejor establecer una máquina virtual a tales efectos.

He localizado un video del 2020, donde su autor ya anotaba tiempos máximos (en el peor de los casos) de entre 15 y 50 en sus entornos. De hecho, en la prueba que grabó para el video tardó 11 minutos.

Ver (El acento no es trivial para todos):
https://www.youtube.com/watch?v=ruSF8OKwBRk

Hay un aspecto a destacar en lo que observo en el video anterior: Usa una dirección ya conocida de la wallet como uno de los parámetros. Más específicamente, usa la primera dirección, aunque puede usar otra y cambiar los parámetros. Esto entiendo que facilita que se acelere el proceso. El comando Python es relativamente sencillo de usar para el usuario.

El video habla de que, si no se tiene una dirección de la wallet, se puede usar una AddressDB, y cita que en otro video lo explica (no lo he buscado). En la documentación de BTCRecover cita como crear y usar una address DB. Si no te la bajas de algún lado, parte de derivarla a partir de la blockchain completa de Bitcoin:

https://btcrecover.readthedocs.io/en/latest/Creating_and_Using_AddressDB/

Entiendo por tanto que este proceso sería más largo de ejecutar (*) que no el que parte de la guía de una dirección BTC ya conocida de la wallet, y que además requiere que exista una TX onchain ya realizada para que una dirección de la wallet exista al derivar la AddressDB (para qué hacer el ejercicio si no).

No obstante, la documentación dice que el tiempo es casi igual realizando la prueba contra 1 dirección BTC ya conocida que una BD con 600K direcciones. Claro que ahora mismo la blockchain contiene más de 1,1M 1,110,878,796 direcciones distintas, y todo dependerá del equipo un tanto más de lo que dice la documentación a mi entender:

https://studio.glassnode.com/metrics?a=BTC&category=Addresses&m=addresses.Count

A destacar que la solución parece autosuficiente en base a Python, y sólo hace falta la blockchain si hemos de derivar una nueva AddressDB.

Nota: El software permite trabajar sobre más casos de uso, como sería por ejemplo que conozcamos la posición de determinadas palabras, que desconozcamos otras (la palabra en sí), wallets ETH, etc.
member
Activity: 182
Merit: 80
Don Pedro Dinero alt account
Lo de guardar las semillas desordenadas es algo que se me ha pasado por la cabeza alguna vez. No cada una en un orden distinto, sino un desorden fácil de memorizar y el mismo para todas. Tampoco tan sencillo como dadas la vuelta (1,...,12 => 12,...,1) pero algo a medio camino entre eso y el random total.

Vale que una vez visto todo el mundo es listo, y a alguien con conocimientos en la materia no le costaría mucho reordenarlas; pero supongo que si las semillas cayeran en malas manos dificultaría bastante hacerse con el botín en el futuro (porque a día de hoy dudo que mucha gente supiera qué hacer con ellas, incluso en orden).

Si es solo desordenarlas, vale, pues a una mala si no te acordaras luego de cómo reordenarlas podrías pedir ayuda en el foro. Seguro que de entre los miembros de gran reputación habrían algunos que te podrían ayudar. Pero en general, confiar en tu memoria es una mala idea. Hace tiempo se me ocurrió una idea de este estilo y abrí un hilo al respecto:

Encrypting the hardware wallet seeds

Al final, la conclusión a la que llegué es que soluciones que dependan de tu memoria solo se deberían de usar a corto plazo, en situaciones de riesgo y con poca dificultad memorística. Por ejemplo: tienes que pasar por una frontera donde piensas que te pueden requisar tus holdings. Creo que la siguiente cita lo resume todo:

I'm generally not a fan of people coming up with their own obfuscation/encryption methods for a couple of reasons. Firstly, it is unlikely to be as secure as you think it is, and it definitely won't be as secure as a proper encryption algorithm. Secondly, we have seen countless users who have forgotten their system and cannot access their coins.
legendary
Activity: 1960
Merit: 3107
LE ☮︎ Halving es la purga
Asignar un número a cada primera letra de cada palabra es una vía, entre otras, de entrada es un error anotar o resguardar las palabras tal cual, al menos una o dos (obviamente más) deberían entrar en esa regla desordenada, que serviría para un nivel "normal" si se pierde en las manos de alguien de "confianza".

No creo que un equipo (PC) estándar permita esa solución en 25 minutos.

Edito: Hablando de "palabras" que se repiten, etc. no se si bueno, malo  Smiley pero en una wallet tengo la palabra satoshi, creo que puede tener algún valor en un futuro, como colección.  Smiley Pero quizas exista satoshi ... nakamoto en alguna wallet.
legendary
Activity: 2002
Merit: 2534
The Alliance Of Bitcointalk Translators - ENG>SPA
Parte de la magia está en ver cómo se lleva a cabo las pruebas combinatorias en sí, pues se ha de llegar que efectivamente dan origen a poder acceder a los fondos del reto. Esta parte habría, en su caso, que leer más al respecto. Si alguien conoce cómo lo haría, sería interesante añadirlo a este hilo.

Nota: Esta sería otra opción para el para el próximo aniversario de nuestro foro local:  … para el año que viene si acaso ya …

¿Quieres ganar el juego? Cheesy  Propón uno de sacar estadísticas sobre bitcointalk (méritos, posts, etc.) ya si acaso.

Cheesy Cheesy Cheesy Cheesy Cheesy Esto mismo he pensado yo al leerlo, pero no se me habría ocurrido una respuesta tan ingeniosa Grin



Lo de guardar las semillas desordenadas es algo que se me ha pasado por la cabeza alguna vez. No cada una en un orden distinto, sino un desorden fácil de memorizar y el mismo para todas. Tampoco tan sencillo como dadas la vuelta (1,...,12 => 12,...,1) pero algo a medio camino entre eso y el random total.

Vale que una vez visto todo el mundo es listo, y a alguien con conocimientos en la materia no le costaría mucho reordenarlas; pero supongo que si las semillas cayeran en malas manos dificultaría bastante hacerse con el botín en el futuro (porque a día de hoy dudo que mucha gente supiera qué hacer con ellas, incluso en orden).
legendary
Activity: 2338
Merit: 10802
There are lies, damned lies and statistics. MTwain
Esto como experimento está bien, pero ¿a santo de qué va alguien a guardar las semillas de forma desordenada? <…>
No lo veo tan descabellado como una de las potenciales medidas para disimular un tanto la semilla que uno podría llevar a cabo. Estoy convencido que la mayoría de las personas guardan las semillas tal cual, solo que intentan esconderlas bien.

Uno podría considerar una reordenación parcial o total, lo cual supone que, probablemente, la semilla resultante sea más dependiente de su propietario para reordenarla. Por ejemplo, alguien podría pensar que, en base a recordar los cumpleaños de dos personas nacidas los días 23, 19, y permutando las palabras según cada par de dígitos (poca entropía tiene, pero bueno), tendría una protección mínima adicional. Todo dependerá de quien se encuentre con la semilla, y su habilidad para que se le ocurra que debe intentar reordenarla, amén de su pericia para llevarlo a cabo.

Si pensamos en medidas para garantizar su seguridad contra todo intruso, obviamente lo anterior no sirve. Sí es algo mínimo adicional respecto de una lista en su orden inicial, y seguro que evita que el 99,9% de las personas sepan cómo acceder a los fondos si se hace con la semilla desordenada (aunque el porcentaje es más bajo si el círculo de la persona es del ámbito cripto).
legendary
Activity: 1358
Merit: 1565
The first decentralized crypto betting platform
Esto como experimento está bien, pero ¿a santo de qué va alguien a guardar las semillas de forma desordenada? Visto el experimento, supongo que los que sean capaces de reordenarlas lo podrían hacer para añadir un grado de dificultad pero los que no sabemos de esos temas no lo vamos a hacer.

Parte de la magia está en ver cómo se lleva a cabo las pruebas combinatorias en sí, pues se ha de llegar que efectivamente dan origen a poder acceder a los fondos del reto. Esta parte habría, en su caso, que leer más al respecto. Si alguien conoce cómo lo haría, sería interesante añadirlo a este hilo.

Nota: Esta sería otra opción para el para el próximo aniversario de nuestro foro local:  … para el año que viene si acaso ya …

¿Quieres ganar el juego? Cheesy  Propón uno de sacar estadísticas sobre bitcointalk (méritos, posts, etc.) ya si acaso.

Nota 2: Hasta hace poco, no era consciente de que la semilla permite repetir palabras BIP39, y no fue hasta que creé una con palabras repetidas que no tomé plena consciencia.

Yo me di cuenta hace poco, al comprar un nuevo HW y migrar los wallets, que vi una palabra repetida y dudé un momento si la había apuntado mal, pero no.
legendary
Activity: 2338
Merit: 10802
There are lies, damned lies and statistics. MTwain
Un usuario de Twitter puso como reto poder dar con el orden correcto de una semilla de 12 palabras que había desordenado. Quien lograse dar con el orden correcto de las palabras tendría como botín 0.001 BTCs



El reto fue recogido por varios usuarios, uno de los cuales fue capaz de resolverlo en tan solo 25 minutos usando su GPU, presumiblemente nada del otro mundo como equipamiento. Para ello, Fraser (el alias del resolutor) recurrió al uso de BTCrecover (obtenido en Github), aseverando que cualquiera con conocimiento básico de Python, Windows Shell, y los nemónicos BIP 39 puede replicar su caso de éxito.

Cabe recordar que estamos hablando de reordenar 12 palabras conocidas en este caso para dar con el orden correcto, y no adivinar 12 palabras sin más pista de que deben ser BIP 39:

Reordenar 12 palabras:                            12! -> 479.001.600 combinaciones.
Adivinar 12 palabras BIP 39 en orden:      2048^12 = 5.4445179e+39 combinaciones.

Lógicamente, con 24 palabras se complicaria bastante más:
Reordenar 24 palabras:                            24! -> 6.204484e+23 combinaciones.
Adivinar 24 palabras BIP 39 en orden:      2048^24 = 2.9642775e+79 combinaciones.

A lo cual podemos además añadir una passphrase que eleva la dificultad considerablemente.


Parte de la magia está en ver cómo se lleva a cabo las pruebas combinatorias en sí, pues se ha de llegar que efectivamente dan origen a poder acceder a los fondos del reto. Esta parte habría, en su caso, que leer más al respecto. Si alguien conoce cómo lo haría, sería interesante añadirlo a este hilo.

Nota: Esta sería otra opción para el para el próximo aniversario de nuestro foro local:  … para el año que viene si acaso ya …

Nota 2: Hasta hace poco, no era consciente de que la semilla permite repetir palabras BIP39, y no fue hasta que creé una con palabras repetidas que no tomé plena consciencia.


Ver:
https://cointelegraph.com/news/bitcoin-advocate-cracks-known-12-word-seed-phrase-in-minutes
Jump to: