Download - How I met your eWallet - Rooted 2015
Índice
1. Concepto de cartera
2. Tipos de carteras
3. Tipos de almacenamiento
4. Diferentes ataques a las carteras
5. Implicaciones
Reto: Hack us!
¿Qué entedemos por eWallet?
Las carteras que permiten la realización de transacciones de una criptodivisa
Se trata de una dirección
asociada a una clave privada para firmar transacciones y
reclamar así la legitimidad ante la red de la criptodivisa.
Diferencias entre carteras C
arte
ras
ran
do
m
Dirección +
Clave privada
Seguridad Pérdida de claves privadas
Car
tera
s V
an
ity
Diferencias entre carteras
Patrón 1Rooted
¿Mac
hea
co
n e
l pat
rón
1
Ro
ote
d ?
SI
Dirección
+ Clave
privada
NO
Seguridad Coste de
computación Identidad
Dirección + clave privada
Car
tera
s m
enta
les
Diferencias entre carteras
Palabra conocida Rooted
Dirección +
Clave privada
No es necesario almacenar las claves privadas
Facilidad para dar con las palabras conocidas utilizadas
Car
tera
s m
ult
ifir
ma
Diferencias entre carteras
3NuevaDir
1DIRECCIÓN
1dirección
1DiReCcIóN
Más laborioso Transferencia por consenso
Para realizar transferencias con esta cartera serán necesarias las firmas de un número predefinido cuando se creó
Confiabilidad en el árbitro
Existen distintas formas de almacenar las claves privadas:
Carteras en local: almacenan las claves privadas en archivos bajo control del usuario.
Carteras mentales: es posible
la recuperación de la clave privada a partir de una palabra conocida por el usuario.
Carteras en la nube: un tercero
es el encargado de almacenar la clave privada asociada a una dirección.
¿Cómo recuperar monederos en local sin cifrar?
PASO 1: listar las direcciones del monedero
Los clientes tienen API de consulta que facilitan la automatización de tareas:
PASO 2: volcar la clave privada
PASO 3: importar la clave privada a otro equipo
¿Cómo recuperar monederos en local sin cifrar?
PASO 4: esperar al reescaneo de la cadena de bloques
PASO 1: listar las direcciones del monedero sigue siendo posible
¿Cómo recuperar monederos en local cifrados?
Solamente algunas operaciones muy concretas requieren la contraseña…
PASO 2: ataque de diccionario sobre la passphrase
¿Cómo recuperar monederos en local cifrados?
PASO 3: volver a cifrar el monedero con otra passphrase para evitar que el dueño los reclame
Qué necesitaría un atacante
Identificar equipos que están corriendo nodos de Bitcoin
Identificar ficheros de datos de los monederos
Qué necesitaría un atacante
Si no están cifrados:
Identificar equipos que están corriendo nodos de Bitcoin
Identificar ficheros de datos de los monederos
Si están cifrados:
Fuerza bruta
Keylogging
Ataques de diccionario
Un atacante que controlara los nodos a los que se conecta el cliente puede hacer que se perciban como válidas las transacciones de un tercero
peers.dat
Ataque por aislamiento
Algunas cifras sobre carteras mentales
4.000.000 palabras
204 diccionarios
17.902 direcciones
recibieron bitcoins en 4.753 transacciones sumando en
total 37.040 movimientos
con estas direcciones
4.000.000 direcciones y
claves privadas
0
2
4
6
8
10
12
14
16
18
20
0
500
1000
1500
2000
2500
3000
3500
01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015
BTC
USD
USD extraídos acumulados BTC extraídos acumulados
Cantidades extraídas de las carteras identificadas
Algunas cifras sobre carteras mentales
18,97
2.906
204 diccionarios
4.000.000 palabras
17.902 direcciones
recibieron bitcoins en 4.753 transacciones sumando en
total 37.040 movimientos
con estas direcciones
4.000.000 direcciones y
claves privadas
Algunas cifras sobre carteras mentales
18,97
2.906
204 diccionarios
4.000.000 palabras
17.902 direcciones
recibieron bitcoins en 4.753 transacciones sumando en
total 37.040 movimientos
con estas direcciones
4.000.000 direcciones y
claves privadas
Compramos bitcoins 1
Generamos tres direcciones a partir de palabras conocidas 2
Realizamos la transferencia 3
¿Cuánto tuvimos que esperar a que se los llevaran?
¿Qué proceso hemos llevado a cabo?
Transferimos bitcoins a las siguientes direcciones:
DIRECCIÓN 1
0.00009933
Hora: 10:17:41
DIRECCIÓN 2
0.00009933 Hora: 10:17:41
Hora: 10:17:51 Robado a las:
Robado a las: Hora: 10:17:51
DIRECCIÓN 3
0.00010033 Hora: 10:17:41
Robado a las: Hora: 15:25:01 Palabra: overrate
Palabra: cute
Palabra: callosal
Características de las transacciones que han solicitado los bitcoins de esta transacción
Inputs: 0,00009933
Hora de petición: 10:17
¿Fee?: NO Tamaño de la transacción: 224 bytes
INTENTO DE
Hora de petición: 10:18
Tamaño de la transacción: 224 bytes
¿Fee?: SÍ Inputs: 0,0009933
INTENTO DE
Hora de petición: 10:19
¿Fee?: NO Tamaño de la transacción: 373 bytes
Inputs: 0,00009933 + 74,98848262
INTENTO DE
¿Qué criterio se utiliza para incorporar las transacciones a la cadena de bloques?
Espacio para transacciones con prioridad máxima 50 KB
𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖
𝑠𝑡
Donde:
𝑃𝑡 Prioridad de la transacción t
𝐵𝑇𝐶𝑖 Input en Satoshis de la «operación» i
𝐴𝑔𝑒𝑖 Antigüedad medida en confirmaciones i
𝑠𝑡 Tamaño en bytes de la transacción
750 KB
𝑛 Es el total de inputs de la transacción
A mayor antigüedad
Pri
ori
dad
¿Qué criterio se utiliza para incorporar las transacciones a la cadena de bloques?
Espacio para transacciones con prioridad máxima 50 KB
𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖
𝑠𝑡
A mayores cantidades transferidas
A mayor tamaño
750 KB
¿Qué criterio se utiliza para incorporar el resto de las transacciones a la cadena de bloques?
Comisiones
𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖
𝑠𝑡
Criterio de prioridad descendente
El nodo que escribe un nuevo bloque las acumula
Es un incentivo para la cesión de cómputo complementario a la minería
750 KB
𝑛𝑡 = 1 𝑠𝑡 = 224 𝐵𝑦𝑡𝑒𝑠 Comisión = 0,00001
Inputs 𝐵𝑇𝐶1 = 9933; 𝐴𝑔𝑒1 = 0
Diferentes formas de aproximarse 𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖
𝑠𝑡
-- 𝑃𝑡 =9933·0
224= 0
En el momento de NUESTRA transferencia, el bloque no está confirmado: 𝐴𝑔𝑒1 = 0
𝑛𝑡 = 1 𝑠𝑡 = 224 𝐵𝑦𝑡𝑒𝑠
Inputs 𝐵𝑇𝐶1 = 9933; 𝐴𝑔𝑒1 = 0
Comisión 𝑃𝑡 =9933·0
224= 0
Varias entradas
𝑃𝑡 = 0+7,498·109∗424
373≫ 0
𝑛𝑡 = 2 𝑠𝑡 = 373 𝐵𝑦𝑡𝑒𝑠
Inputs 𝐵𝑇𝐶1 = 9933; 𝐴𝑔𝑒1 = 0 𝐵𝑇𝐶2 = 7 498 848 162; 𝐴𝑔𝑒2 = 424
Diferentes formas de aproximarse 𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖
𝑠𝑡
En el momento de NUESTRA transferencia, el bloque no está confirmado: 𝐴𝑔𝑒1 = 0
𝑃𝑡 =0+7,498·109∗424
373= 8,524 · 109
𝑃𝑡 =9933·0
224=0
𝑃𝑡 =9933·0
224= 0
¿Cuándo se robaron las credenciales?
0
50
100
150
200
250
300
350
01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015
Acu
mu
lad
o d
e c
red
en
cial
es
sust
raid
as
bitcoin.de btc-e.com coinbase.com coinkite.com strongcoin.com xapo.com
Se intensifica la campaña
de robo de credenciales en plataformas de Bitcoin
0
200
400
600
800
1000
1200
01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015
Val
or
de
l Bit
coin
en
USD
Evolución del precio del Bitcoin desde 2011
La campaña coincide con un gran
repunte del precio del Bitcoin
¿Se podría acceder con la información prodecente de una botnet genérica?
Usuario
Password
Identificador Passphrase
Autenticación en 2 pasos
• OTP al móvil, mail, etc. • Autorizar accesos desde otras
localizaciones o navegadores
ACCESS GRANTED
Histórico
PIN
bitalo.com
bitcoin.de
bitgo.com
blockchain.info
btc-e.com
coinapult.com
coinbase.com
coinkite.com
coinpunk.com
cubits.com
greenaddress.it
hivewallet.com
strongcoin.com
xapo.com
Plataformas a las que se habría podido acceder*
* Asumiendo una configuración de seguridad por defecto
Confirmación de datos de inicio de sesión
ACCESS GRANTED
Autenticación en dos pasos
Passcode (distinto del de inicio de sesión)
TRANSFERENCIA REALIZADA
¿Existen más medidas de seguridad para realizar transferencias?
bitalo.com
btc-e.com
coinapult.com
coinkite.com
coinpunk.com
cubits.com
Plataformas desde la que se hubiera podido realizar transferencias*
(2FA)
(Password)
greenaddress.it
hivewallet.com
strongcoin.com
(2FA)
* Asumiendo una configuración de seguridad por defecto
Los delincuentes también están lanzando campañas de phishing contra estas plataformas aprovechando dominios cybersquatting y typosquatting
Ficheros de configuración de ZeuS con menciones a plataformas de ewallets
Año
Plataforma Nº de ficheros
2013 bitcoin.de 6
2013 blockchain.info 3
2015 blockchain.info 1
2015 coinbase.com 1
Tú sabrás si utilizas…
…dispositivos conectados a la red para el almacenamiento de claves privadas
…carteras mentales para la generación de tus claves
… si confías en un tercero para generar tus claves privadas ya que puede convertirse
en un acto de fe
Tú sabrás si utilizas…
…dispositivos conectados a la red para el almacenamiento de claves privadas
… carteras mentales para la generación de tus claves
… plataformas que no dispongan de sistemas de verificación en dos pasos
Una buena práctica es utilizar carteras multifirma para asegurar tus criptodivisas
Aplicarán técnicas tradicionalmente utilizadas contra el sector bancario. Para ello, tratarán de…
… obtener el máximo conocimiento de las víctimas
… adecuar la filosofía de ZeuS al robo de criptodivisas
… intensificar campañas de phishing
… diseñar redes artificiales para la realización de ataques de aislamiento
… utilizar botnets para el calentamiento artificial de la divisa
Las empresas de seguridad pueden encontrar un nuevo target al que destinar sus productos basados en…
Detección de campañas de phishing, malware o aplicaciones móviles sospechosas para aquellas
empresas que operen en la nube
Reducción de los tiempos de espera basados en la identificación de transacciones sospechosas con ciertos márgenes de confianza
Ofrecimiento de servicios de arbitraje para la resolución de conflictos entre partes
Hemos transferido bitcoins a varias direcciones para que las recuperéis…
• A la cartera mental generada con la palabra
RootedCon2015: 0.02 BTC = 5€
• A una cartera mental generada con el
nombre de un ponente de la Rooted: 0.08 BTC = 20€
• A la cuenta del lumbreras que perdió la clave: 0.39 BTC = 100€
http://pastebin.com/AwE2B52m