El Bitcoin y los Expertos Forenses

El Bitcoin y los Expertos Forenses

Este artículo no intenta proporcionar una guía para principiantes sobre Bitcoin, ni una tesis en profundidad sobre el análisis forense del Bitcoin.  Más bien, será una descripción de las oportunidades potenciales disponibles para los forenses digitales, peritos informáticos y los investigadores tradicionales para obtener evidencia en relación a las transacciones atribuidas o tenencias  hacia una persona específica y este apoderado de esos fondos (legalmente).
Se discutirá el trabajo académico que se ha llevado a cabo en esta área, que por un lado qué precauciones puede tomar un usuario consciente de su seguridad y por el otro, de los inconvenientes que se presentan al hacerlo.
También se discutirá una herramienta de código abierto de Python llamada BTCscan, que se ha creado para acompañar este artículo y extraer direcciones de bitcoin, claves privadas y otros artefactos de Bitcoin.
Este artículo puede ser de interés para las personas que realizan investigaciones de índole penal, civil, personal o comercial. Algunos elementos pueden ser de relevancia limitada para las agencias sin poderes de incautación y/o citación.

Si bien me he comprometido a hacer que este documento sea lo más fácil posible para que el entendimiento de principiantes, este es un área altamente técnico y, como tal, es posible que los lectores tengan que realizar más investigaciones personales por su cuenta para comprender toda la información contenida en este documento.

El Bitcoin no fue diseñado para ser anónimo, sino que fue diseñado para mantener un alto grado de privacidad para sus usuarios, en las palabras de su creador Satoshi Nakamoto: «El público puede ver que alguien está enviando una cantidad a otra persona, pero sin la información que vincule la transacción a cualquier otra persona». Las transacciones de Bitcoin se pueden ver, ya que están todas registradas en la cadena de bloques que es de acceso público. Por esta razón, el Bitcoin ha sido descrito como pseudo anónimo. [1]
No hay ningún requerimiento para revelar información de identificación personal, incluyendo una dirección IP para recibir, retener o transferir bitcoins, a menos que sea impuesta por terceros, en cuyo caso es opcional. Tampoco hay una persona central, autoridad emisora, intermediario designado, organización o país a cargo de Bitcoin, por lo tanto, no existe un solo lugar para citar una orden judicial para determinar uns cuenta de usuario o los detalles de propiedad.
Una regla frecuentemente repetida de los usuarios avanzados de Bitcoin es – si no controlas las claves privadas, entonces no eres dueño de tus bitcoins. Con esto se hace referencia de que el Bitcoin le permite retener y administrar la seguridad de sus propias claves privadas, pero no requiere de uno para hacerlo. Un servicio de terceros puede administrar sus claves privadas por usted, sin embargo, se requerirá de la confianza para que tomen todas las precauciones de seguridad necesarias y no puedan robar sus Bitcoins. Esto ha dado lugar a que todo dueño de bitcoins tome conciencia y establezca su propia seguridad para sus claves privadas, en lugar de depender de servicios de terceros. El almacenamiento de bitcoin sin terceros partes se analiza con más detalle a continuación.
Debido a lo anterior, la propiedad de quien posee bitcoins puede ser difícil de probar. La propiedad se puede considerar simplemente como un somero conocimiento de tenencia, o en caso de poder recrear la clave privada para la dirección bitcoin en la que residen actualmente los mismos.

Para aumentar las potenciales dificultades a los investigadores, una clave privada se puede almacenar, -y ocultar-, de muchas maneras. Los siguientes son ejemplos de una misma clave privada representada en diferentes formatos, conocida como Brain Wallet (llamado así porque están construidos a partir de texto que puede ser memorizado), WIF, WIF Compressed, Hex, Base64 y el código QR de WIF: [2]

“Where is the library”, enquired Mr Dog. “It’s on the second floor my dear”, replied Mrs Cat

5JdNpeG4KURTjVcz1tUj9met6CBmXdZ5kZ9rNah7Td72oQcTvaV

KzoZKHTTeY2xzZKpevDP3i6CVvNXYCLbyEv4vFi3WWMcwUgwHE58

6AECA69A2197EFA93A8344950068D4FA25619023802FE8DC33B17DACBDE30D8C

auymmiGX76k6g0SVAGjU + iVhkCOAL + jcM7F9rL3jDYw =

Los sitios web de terceros, como los servicios de billetera o los sitios web de intercambio de bitcoin, pueden comprar, mantener, comercializar, almacenar y realizar transacciones de bitcoin para sus usuarios. El determinar los servicios de terceras partes que fueron usadas por una persona de interés pudiera ser realizado mediante la examinación del historial de Internet, o mediante la examinación de la cadena de bloque. La realización de esta examinación requeriría el conocimiento de las direcciones bitcoin que ha sido  propiedad tanto de la persona de interés como del servicio de terceros, que luego se puede utilizar para identificar las transacciones entre ambas partes. Solo el movimiento directo de fondos entre estas direcciones conocidas que no pasaron a través del uso de direcciones intermediarias tendría valor probatorio por sí mismo, ya que con cualquier salto intermedio de la cadena de bloques podría argumentarse que los bitcoins se han salido del control del propietario original. Los servicios de terceros generalmente no documentan la dirección que estas partes utilizaron, por lo que es posible que se tengan que hacer suposiciones. [3,4, 5]

DESANONIMIZANDO A LOS USUARIOS DE BITCOIN

Recientemente, un documento académico discutió una potencial vía en que los investigadores pudieran identificar de manera relativamente económica hasta el 60% de los clientes de Bitcoin en la red. Su método funciona mediante la toma de “huellas dactilares” de los usuarios en función de las conexiones que tienen con otros nodos en la red p2p de Bitcoin. Estas conexiones son aleatorias y, por lo tanto, deben ser diferentes para cada usuario conectado. Cuando un usuario se conecta hacia otro nodo, su dirección IP es anunciada a ese nodo. Si un atacante o delincuente informático está conectado a suficientes nodos, estos anuncios pueden verse y se pueden tomar huellas dactilares. [6]
Si el usuario está utilizando una VPN, TOR, billetera web o está detrás de un NAT donde no recibe conexiones entrantes, entonces la dirección IP obtenida por el investigador no sería la del usuario. Pero incluso en estos casos, el investigador podría cotejar transacciones separadas y distintas para el mismo usuario.

El problema con el uso de este método es que no está dirigido y cuanto más exitoso se desea que sea (es decir, hasta un máximo del 60%), más ruidoso y más obvio se vuelve para los usuarios de Bitcoin.
Los usuarios pueden usar Bitcoin sobre las redes Tor pensando que esto aumenta la privacidad, pero una investigacion demuestran que los ataques en la vida real, exponen al usuario a ataques del tipo “hombre en el medio”, si estos usuarios no están usando direcciones .onion específicas. Además, los atacantes pueden tener la capacidad de prohibir que todos los nodos de salida de la redes TOR se conecten a la red Bitcoin, abusando de las protecciones de spam de los Bitcoins, obligando a los usuarios a conectarse a través de medios más tradicionales. [7,8]

Este ataque de desanonimización funciona realizando análisis previo del tráfico en la red Bitcoin. Esto es diferente del análisis de gráfico de transacciones que ha sido el tema principal del grueso de la investigación académica en esta área. Aquí es donde se analiza la contabilidad pública de las transacciones de bitcoins (la cadena de bloques) para encontrar patrones u otros artefactos que puedan utilizarse para ayudar al investigador.  Los tres factores principales que pueden reducir la privacidad del usuario y que pueden aprovecharse mediante el análisis de gráficos de transacciones son la reutilización de direcciones, el cambio de direcciones y la fusión de resultados.  Es muy probable que los resultados del análisis de la cadena de bloques no le proporcionen los detalles de la vida real del propietario, pero puede revelar el uso de terceros, con los que se pueden presentar citatorios de autoridades. [9]

REUTILIZACIÓN DE DIRECCIONES

La reutilización de direcciones trata a las direcciones bitcoin, como una cuenta bancaria, donde una única dirección bitcoin es usada para múltiples transacciones. Las direcciones Bitcoin no están diseñadas para ser usadas de esta manera, el hecho de que pueden estar, es por accidente y no por diseño. No hay restricciones en el número de direcciones bitcoin que una persona puede usar y su diseño es tal de que para cada transacción se debe crear una nueva dirección bitcoin. Esto no se considera un desperdicio debido a la cantidad extremadamente grande de direcciones disponibles (hay 1.46 × 10 ^ 48 direcciones bitcoin posibles, lo que le da a cada persona en la Tierra 2.05 × 10 ^ 38 direcciones diferentes). [10]
Cuando las direcciones se reutilizan, todas las demás transacciones realizadas por esa dirección se pueden ver examinando la cadena de bloques. Si se conoce de una transacción realizada por una persona de interés y esa transacción proviene de la misma dirección bitcoin mediante la cual esta persona recibe todos sus pagos, entonces sus ganancias pueden determinarse fácilmente. También se podría revisar el historial de esa dirección, siguiendo las cadenas de transacciones, para determinar qué otra información pudiera ser extraída.

CAMBIO DE DIRECCIONES

Los bitcoins se gastan creando una transacción para transferir los fondos de una dirección a otra. Cada transacción tiene una o más entradas y una o más salidas, – lo que significa que se pueden enviar bitcoins a más de una dirección en una sola transacción. Cada entrada debe ser una completa salida de Transacción sin confirmar “Unspent Transaction Output” (UTXO) desde una transacción previa o anterior –  los UTXO no se pueden gastar parcialmente. Esto significa que si recibes 10 BTC en una sola transacción, debes gastar los 10 BTC completos si se desea gastar en algo. Para recibir cualquier cambio que se deba, se crean dos salidas; una salida a quien se le está pagando y otra salida a la dirección propiedad del remitente. Esto se conoce como una dirección de cambio. Si tuvieras que comprar un artículo de 1.5 BTC con una Transacción sin confirmar de 10 BTC, esta requeriría de una transacción con dos salidas; 1.5 BTC yendo al vendedor y 8.5 BTC de vuelta al comprador como cambio. [11]

Esto es de interés para un investigador, ya que se puede suponer que una de las direcciones bitcoin asociadas con un salida de la transacción, es también es propiedad del creador de la transacción.

FUSIÓN DE RESULTADOS

Si una transacción es enviada hacia donde la transacción ha sido agrupada en un número de UTXO, para crear la entrada total requerida, se puede suponer que todas esas direcciones que se combinaron para crear la entrada hacia la transacción son propiedad de la misma persona.

MEZCLADORES

Los servicios mixtos (también denominados lavanderías y tendederos) se utilizan para intercambiar un conjunto de bitcoins que se perciben que están contaminados por otro conjunto que se cree que no están contaminados, todo esto por una pequeña tarifa. Esto se hace para evitar que los investigadores puedan seguir la cadena de bloques y determinar la propiedad actual de los bitcoins en los que tienen un interés específico. Si un servicio de mezcla funciona como se anuncia, entonces los bitcoins que el usuario recibe al final de la operación no tienen relación a los depositados en el sistema. El usuario generalmente tiene que confiar en que el servicio tiene suficientes clientes para mezclar efectivamente la cantidad de bitcoins que están siendo depositados y que estos no conservan ningún archivo de registro de la mezcla.

Algunas investigaciones han indicado que, al menos en algunos casos, los servicios de mezcla pueden no ser tan seguros como sugieren a sus usuarios, con transacciones de servicios que pueden ser elegidos de la cadena de bloques o que los fondos depositados pueden ser robados. [12,13]

Los servicios de mezcla de Bitcoin pronto podrán ser reemplazados por billeteras mejoradas de privacidad, como una billetera oscura, que usa la mezcla de transacciones con cada transacción realizada por la billetera, así como el uso de avanzadas direcciones de privacidad con sigilo.

Otro método para anonimizar bitcoins puede ser la acción de depositarlos en un servicio de billetera en la web o de intercambio y retirarlos algún tiempo después – aunque el servicio utilizado pudiera retener registros. Si el intercambio admite otras monedas criptográficas como litecoin, ripple, dogecoin, namecoin, etc., estos fondos podrían convertirse a una criptomoneda diferente antes de ser intercambiados o vendidos para ocultar el historial de transacciones en otra cadena de bloques. [14]
Cualquier movimiento o división de bitcoins puede ser un problema potencial para los investigadores, ya que puede resultar extremadamente difícil, casi imposible, determinar qué ha ocurrido. ¿Han sido trasladados los bitcoins desde una dirección propiedad de la persona de interés hacia otra, han sido trasladados hacia un servicio de intercambio o hacia un sitio web con uso de billetera bitcoin o fueron vendidos? Dicho esto, por un lado para grandes cantidades de bitcoins es más fácil obtener una negación plausible de quien es el propietario en lugar de anonimato total, y por el otro lado las cantidades más pequeñas se pueden obtener con poco esfuerzo y un poco de conocimiento.
El método por el cual se analiza la cadena de bloques para determinar qué direcciones bitcoins se relacionan con otras se denomina análisis de contaminación (taint analysis). Si una persona de interés realiza el análisis de seguimiento en las direcciones, puede significar que han realizado la mezcla de bitcoins y solo desean verificar que la operación fue exitosa. [15]
El tratar de identificar a usuarios de Bitcoin, particularmente usando el análisis de cadena de bloques (block chain analysis), es un área que se prevea que sea de interés continuo para las comunidades académicas y comerciales.

SEGURIDAD AVANZADA BITCOIN

Aunque el mejor escenario para que un investigador que haya incautado una computadora en donde se pudieran encontrar claves privadas en archivos de texto plano, este escenario es cada vez menos probable, debido a las precauciones de seguridad adicionales que son requeridas para mantener el almacenamiento de Bitcoin a salvo, de posibles ladrones y hasta de investigadores (dependiendo de quién este teniendo los bitcoins).

Un usuario avanzado que ha decidido proveer su propia seguridad y no que desea confiar de terceros es probable que almacene las claves privadas que protegen la mayoría de sus posesiones fuera de línea, ya sea digital o físicamente. Esto se llama almacenamiento en frío.
Una forma de almacenar claves privadas es con una billetera de papel; estos comúnmente contienen dos códigos QR, uno que muestra la dirección Bitcoin, y el otro la clave privada para el gasto.
Estos pueden plegarse para que el código de gasto QR no se pueda ver, mostrando solo la dirección Bitcoin en el exterior. También se pueden sellar con cinta holográfica resistente a la manipulación y / o sellarse en bolsas resistentes al agua.

Las recientemente creadas billeteras de papel pueden estar protegidas con BIP-0038, donde las claves privadas están encriptadas para que requieran una contraseña cuando se desee acceder a los fondos. Si se obtiene una billetera de papel BIP-0038, también se requerirá la contraseña para mover los bitcoins. Las claves privadas cifradas BIP-0038 comienzan con un 6, las claves privadas no cifradas (como arriba) comienzan con un 5. [16]

Se  debe tener en cuenta que las billeteras de papel y/o las claves privadas (cifradas o no cifradas) se pueden duplicar y almacenar en múltiples ubicaciones. Por ejemplo, alguien puede almacenar una copia de su clave privada cifrada BIP-0038 en su computadora local, otra en un documento almacenado en la nube, una impresión de la misma en una caja fuerte con un amigo que tenga otra copia. Con copias múltiples de las mismas claves privadas, y ya que son todas iguales, solo se necesitaría una para mover todos los bitcoins (potencialmente lejos de las incautaciones),

Otro método es almacenar las claves privadas es tenerlas una computadora de bajo costo, como una Raspberry Pi o una computadora portátil barata, que luego se mantiene aislada de todas las redes. Para acceder a los bitcoins, las transacciones se pueden firmar utilizando claves privadas almacenadas en un computadora que este aislada y fuera de línea, luego estas transacciones firmadas se pueden transportar hacia a una computadora conectada a Internet a través de una unidad flash USB, antes de enviarse anónimamente a la red Bitcoin como una transacción sin confirmar. Alternativamente, un CD o USB en vivo de Linux portable, que puede usarse para iniciarse en un entorno de seguridad conocida, con las claves privadas guardadas en una unidad flash USB separada, posiblemente encriptada. Adicional a esto, también podría mantenerse de forma permanente fuera de línea, o usarse solo con una distribución de seguridad como por ejemplo, Windows PE con seguridad de la red mejorada (VPN).

DIRECCIONES BITCOIN CON SEGURIDAD MEJORADA

Los Bitcoins se pueden almacenar en direcciones con redundancia incorporada llamada M-OF-N o MULTI-SIG. Si bien estos tienen resultados similares y, a veces, se los denomina indistintamente, utilizan diferentes tecnologías, –  una que funciona fuera de la cadena de bloques y la otra que funciona explícitamente dentro de ella. Ambos permiten que el acceso a los fondos dentro de una dirección bitcoin se pueda dividir entre un grupo de personas o diferentes ubicaciones para mejorar la seguridad.

M-OF-N utiliza el algoritmo de Shamir’s Secret Sharing (SSS), SSS divide la clave privada en un número (n) de piezas y que al menos un número determinado (m) de estas piezas debe reunirse para reconstruir la clave privada. Por ejemplo, una dirección dividida en 2 de 3, tiene tres partes, dos de las cuales deben reunirse para recrear la clave privada original. Estas partes pueden ser retenidas por la misma persona y asegurarlas en diferentes lugares o pueden ser entregadas a tres personas diferentes. [17]

Las direcciones MULTI-SIG en concepto son similares, pero utilizan las capacidades de scripting de las transacciones Bitcoin para bloquear una dirección bitcoin con múltiples claves privadas y nuevamente requieren un cierto número de ellas para desbloquear los fondos. De las dos direcciones MULTI-SIG se consideran las formas más seguras y la via más poderosa para dividir las claves, ya que a diferencia del SSS, con direcciones MULTI-SIG, las claves privadas separadas no necesitan juntarse en un solo lugar para desbloquear los fondos (se considera esto un posible punto de falla). [18]

A pesar de que ofrecen una mayor seguridad, las direcciones MULTI-SIG son poco utilizadas; –  de hecho, ninguna de las 100 direcciones que contienen la mayor cantidad de bitcoins son MULTI-SIG. [19]

HARDWARE BITCOIN

Un dispositivo llamado Trezor es el billetera de bitcoin de hardware más común que está disponible, y se usa para almacenar de forma segura claves privadas de Bitcoin. Es un dispositivo de hardware de un único propósito hecho a la medida y, por lo tanto, se considera más seguro que una computadora para almacenar bitcoins, ya que las computadoras de propósito general son más susceptibles al malware, y la billetera de hardware no se puede conectar directamente a Internet ni se puede acceder sin ella a menos que se ingrese su código PIN correcto. Las transacciones pueden ser firmadas utilizando las claves privadas almacenadas al crear la transacción por medio de una aplicación  de software o sitio web que sea compatible con la billetera de hardware al momento de ser usada, para luego confirmar en la pantalla de la billetera de hardware si se desea firmar la transacción.

Cuando se configura un billetera de hardware marca Trezor, se crea una semilla de recuperación. Esto consiste en una lista de palabras que son generadas inicialmente de manera aleatoria, y después deben ser escritas y almacenadas en un orden numerado y especifico, y de acuerdo a este orden (si se obtienen las palabras), las claves privadas se pueden replicar en cualquier otro dispositivo Trezor. Una actualización de firmware reciente incluyó el requisito de que la semilla de recuperación esté protegida con un codigo PIN como una capa adicional de seguridad.

Si bien el Trezor es de lejos el más popular en este momento, otros dispositivos de seguridad de hardware están empezando a entrar en el mercado. Otros dispositivos pueden parecer tarjetas de crédito gruesas con botones y hasta dispositivos USB con una  pequeña pantalla LCD, que pueden conservarse en un llavero. Otros dispositivos USB relacionados con Bitcoin son dispositivos 2FA (Two Factor Authentication – Autenticación de dos factores), que permiten al usuario autenticarse en sitios web (por lo general, servicios de terceros o de intercambios). Estos pueden simular en apariencia a unidades de memoria USB o ser mucho más pequeños y pueden o no tener un botón en ellos. Alternativamente, se puede suministrar dispositivos 2FA para recibir mensajes SMS o llamadas telefónicas automáticas, desde aplicaciones como Google Authenticator o Authy en un teléfono inteligente o códigos preimpresos de una sola vez.

ARTEFACTOS ADICIONALES

Como se discutió anteriormente, la reutilización de direcciones reduce la privacidad, la forma de evitar esto es crear una nueva dirección bitcoin para cada transacción. Si se usa un servicio de terceros o desde aplicación de billetera, esa billetera administrará la dirección múltiple para el usuario. En los primeros días del Bitcoin, esto era un problema, ya que las nuevas direcciones creadas no se podían replicar necesariamente desde copias de seguridad anteriores de la billetera del usuario. Esto ha sido resuelto por las billeteras HD (deterministas jerárquicas), que pueden crear una cantidad ilimitada de direcciones bitcoin a partir de una única semilla. Como estas direcciones se crean de manera predecible, solo es necesario realizar una copia de seguridad de la semilla, sin tener que preocuparse de que la copia de seguridad esté desactualizada. Una billetera HD compatible con BIP-0039 (como la Trezor descrita anteriormente) almacena la semilla como una mnemotécnica de 12 o más palabras utilizando palabras comunes en inglés. [20]
A continuación se muestra un ejemplo de semilla de recuperación mnemónica de 12 palabras BIP-0039: [21]

holiday raven mask element segment august rapid hazard blade spread satisfy comfort

El popular servicio de billetera blockchain.info no cumple con BIP-0039 y usa una lista de palabras diferente. A continuación se muestra un ejemplo de semilla de recuperación de mnemónicos de la cuenta blockchain.info de 16 palabras:

begun center nowhere periodontal activate crit expensed mumm bps chronicling chiang dahlquist dragnet hernia dubious dagmar

Internamente, las billeteras HD almacenan las semillas como claves de nodo privadas y públicas. Estos pueden separarse, por lo que una computadora puede ser capaz de crear direcciones para una billetera HD, pero no puede acceder a los fondos por sí misma. También relacionado con blockchain.info es el identificador de billetera, que se utiliza para iniciar sesión en el sitio. Esto tiene una apariencia similar a la que se muestra a continuación:

a8c1022a-34ef-4f9b-976a-1b06280726ec

Un script de canje es una sección de hex que se requiere para validar y gastar bitcoins almacenados en una dirección MULTI-SIG.
La misma secuencia de comandos se le da a cada titular de una parte de una dirección MULTI-SIG.
A continuación, se muestra un script de rescate de ejemplo:

52210247ff353a285cfd5df7b928815b5d2660d1a38a02ce3a07eebabc06ce4465afed2102d1f689dcad 039c818cd3d810b9b9ab22953d09b2a042b08c204de0963b6f8cf42103612bada10935f41d1e29fdd8 5e2cd7a86a43bcd7f13f9e174932b363268ff3bb53ae

Una última oportunidad potencial es examinar cualquier historial de Internet disponible, para determinar si se han visto los sitios web populares de Bitcoin y si se han buscado direcciones bitcoin particulares en la cadena de bloques.

ARCHIVO / MEMORIA FORENSE

Una dirección bitcoin tiene entre 26 y 35 caracteres (pero generalmente 34 caracteres de longitud), y se puede construir una expresión regular o una búsqueda grep para buscarlos.
A continuación se muestran las variantes ANSI y Unicode de estas búsquedas:

ANSI:   1[a-km-zA-HJ-NP-Z1-9]{25,34}
Unicode:   1\x00([a-km-zA-HJ-NP-Z1-9]\x00){25,34}

Curiosamente, estos no parecen funcionar correctamente dentro de EnCase 6.19.7.2; esto puede deberse al uso de corchetes no documentados en el manual de EnCase.
Las pruebas en Python muestran que las expresiones son correctas. Si estas expresiones regulares se utilizan para buscar archivos de direcciones bitcoin, se devolverá una gran cantidad de falsos positivos. Por lo tanto, debe haber alguna forma de verificar que cada dirección sea correcta.  Afortunadamente, el formato en el que se codifican las direcciones de bitcoin tiene una función de comprobación de errores incorporada; esto se llama Base58Check. Hay dos partes en esta codificación.

NOTA IMPORTANTE:
En primer lugar, la parte Base58 es un esquema de codificación binario a texto creado específicamente para Bitcoin. La codificación Base58 solo usa los caracteres 0-9, az y AZ excepto 0 (cero), O (mayúscula o), l (L minúscula) e I (mayúscula i), los caracteres omitidos se eliminan ya que pueden causar ambigüedad visual, dejando 58 personajes, por lo tanto Base58.

En segundo lugar, la parte de comprobación es la comprobación de errores donde los últimos cuatro bytes de la cadena son el doble SHA-256 y que son recopilados desde los datos anteriores.
Al verificar la validez de la codificación Base58Check para cualquier cadena encontrada por la búsqueda RE / grep previa, podemos determinar cuáles son falsos positivos y, lo que es más importante, cuáles no. [22]
Prácticamente, las direcciones bitcoin no son los únicos elementos del ecosistema Bitcoin que utilizan codificación Base58Check, otros elementos que la utilizan son direcciones Bitcoin P2SH, claves privadas cifradas BIP-0038, claves privadas en WIF (formato de importación de billetera) para ambas claves públicas comprimidas y sin comprimir, y las claves de nodo públicas y privadas para billeteras BIP-0032 HD.

BTCscan

BTCscan es un script de Python que ha sido escrito para automatizar la extracción de cadenas codificadas de Base58Check que cumplan con el formato de los elementos de Bitcoin mencionados anteriormente, desde cualquier archivo sobre el que se pueda ejecutar el script. Si se dirige hacia una carpeta, la secuencia de comandos hará interacción sobre los archivos y las carpetas dentro de ese directorio buscando cada uno por turno.
BTCscan es de código abierto, no usa ninguna dependencia de Python3 predeterminada y está disponible aquí:

https://gist.github.com/chriswcohen/7e28c95ba7354a986c34

BTCscan es en su mayoría simplista, no se verá en áreas forenses (UC, archivos flojos, ADS, etc.) y no encontrará elementos relevantes que no sean ANSI o Unicode. Rastrearará en los archivos DD de una unidad, pero solo como un archivo plano. No está optimizado ni es de alta calidad, pero funciona (al menos en Windows) y esta herramienta he tenido éxito al ejecutarse sobre una imagen de memoria, y hay elementos se han recuperado de archivos previamente eliminados dentro de una imagen DD de una unidad.
BTCscan puede recuperar elementos de archivos asociados con el software de Bitcoin y archivos de caché de sitios web relacionados con Bitcoin. Tenga en cuenta que algunos falsos positivos pueden aparecer, por ejemplo, si una dirección de Bitcoin contiene una base58check formateada correctamente, pero es una dirección P2SH desconocida.

Chris Cohen MSc Net +
chris.w.cohen @ gmail.com
Especialista Forense en Computación (LE), Reino Unido

Notas and referencias

[1] Real time transactions and blocks can be examined on web sites which parse the block chain such as https://blockexplorer.com/ and https://blockchain.info/

[2] SHA256(Brain wallet text) = HEX private key

[3] A web wallet, eWallet or online wallet is a bitcoin wallet hosted on the internet by a third party.

[4] Although this website http://www.walletexplorer.com/ appears to do this, the methodology through which they obtain their data is unknown. It is likely to be similar to that identified in the paper A Fistful of Bitcoins: Characterizing Payment Among Men with No Names, where services are used by researchers to determine some of the addresses they use, which are then analysed along with all address in the block chain using heuristics and the methods mentioned in this article to group other addresses to the services and to unknown users.

[5] https://blockchain.info/tags contains a listing of supposed known addresses.

[6] http://orbilu.uni.lu/bitstream/10993/18679/1/Ccsfp614s-biryukovATS.pdf

A good overview of this paper can be found here: https://www.cryptolux.org/index.php?title=Bitcoin&oldid=1257

[7] http://arxiv.org/abs/1410.6079

[8] http://www.btcfeed.net/news/rogue-tor-node-hijacked-blockchain-info-accounts/

[9] The following academic papers might be of interest to those wanting to learn more:

Quantitative Analysis of the Full Bitcoin Transaction Graph, Ron & Shamir. https://eprint.iacr.org/2012/584.pdf

A Fistful of Bitcoins: Characterizing Payments Among Men with No Names, Meiklejohn et al. http://cseweb.ucsd.edu/~smeiklejohn/files/imc13.pdf

An Analysis of Anonymity in the Bitcoin System – Reid & Harrigan [2012]. http://arxiv.org/pdf/1107.4524.pdf

[10] Address reuse also reduces the security of the bitcoins stored in those addresses. Transaction signing requires 256 bytes of random data (r-value) so that the private key cannot be reverse engineered. If the r-value is not truly random then the private key can be determined, which can be used to sign other transactions for that particular bitcoin address. This attack can be negated by not reusing addresses, as once a transaction is signed from a bitcoin address, it remains empty.

http://www.nilsschneider.net/2013/01/28/recovering-bitcoin-private-keys.html

https://bitcoin.stackexchange.com/questions/25814/ecdsa-signature-and-the-z-value

[11] If the total of the outputs is less than that of the inputs, then the difference is taken by the miners as a transaction fee.

[12] http://www.coinjoinsudoku.com/advisory/

[13] http://www.coindesk.com/researcher-tracks-bitcoin-movements-anonymity/

[14] http://coinmarketcap.com/currencies/views/all/

[15] https://blockchain.info/taint/<Bitcoin address to examine>

[16] BIP stands for Bitcoin Improvement Proposals

[17] https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing. Examples of SSS can be found on bitaddress.org for Bitcoin specifically or http://passguardian.com/ for text in general.

[18] Multi-sig addresses are an example of a pay to script hash (P2SH) address. Instead of paying into a bitcoin address (which always starts with a 1 and is derived from a random 256 bit number), you pay into a P2SH address (which always starts with a 3 and is derived from a script). These script can be considerably complex, allowing such things as smart contracts, smart property and escrow. The scripting engine isn’t Turing complete as loops have been purposely omitted.

[19] http://bitcoinrichlist.com/top100

[20] https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

[21] The word list from which these words are taken can be viewed at https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

[22] https://en.bitcoin.it/wiki/Base58Check_encoding

Fuente Original y propiedad de las imágenes:
https://articles.forensicfocus.com/2015/01/16/forensics-bitcoin/

Traducción Libre


Fatal error: Uncaught TypeError: call_user_func(): Argument #1 ($callback) must be a valid callback, class "JSMin" not found in /home/inffor/public_html/wp-content/plugins/wp-optimize/vendor/mrclay/minify/lib/Minify/HTML.php:248 Stack trace: #0 [internal function]: Minify_HTML->_removeScriptCB(Array) #1 /home/inffor/public_html/wp-content/plugins/wp-optimize/vendor/mrclay/minify/lib/Minify/HTML.php(106): preg_replace_callback('/(\\s*)<script(\\...', Array, '<!DOCTYPE html>...') #2 /home/inffor/public_html/wp-content/plugins/wp-optimize/vendor/mrclay/minify/lib/Minify/HTML.php(53): Minify_HTML->process() #3 /home/inffor/public_html/wp-content/plugins/wp-super-minify/wp-super-minify.php(171): Minify_HTML::minify('<!DOCTYPE html>...', Array) #4 [internal function]: wpsmy_minify_html('<!DOCTYPE html>...', 9) #5 /home/inffor/public_html/wp-includes/functions.php(5420): ob_end_flush() #6 /home/inffor/public_html/wp-includes/class-wp-hook.php(324): wp_ob_end_flush_all('') #7 /home/inffor/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array) #8 /home/inffor/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #9 /home/inffor/public_html/wp-includes/load.php(1270): do_action('shutdown') #10 [internal function]: shutdown_action_hook() #11 {main} thrown in /home/inffor/public_html/wp-content/plugins/wp-optimize/vendor/mrclay/minify/lib/Minify/HTML.php on line 248