70
Bitcoin y (In)seguridad: 5 paradojas Philippe Camacho [email protected] @philippecamacho

Bitcoin y (in)seguridad: 5 paradojas

Embed Size (px)

DESCRIPTION

Charla sobre (In)Seguridad de Bitcoin dada en la conferencia 8.8, Santiago de Chile, Octubre 2014

Citation preview

Page 1: Bitcoin y (in)seguridad: 5 paradojas

Bitcoin y (In)seguridad: 5 paradojas Philippe Camacho

[email protected]

@philippecamacho

Page 2: Bitcoin y (in)seguridad: 5 paradojas

¿Quién soy?

Philippe Camacho • Francés, 10 años en Chile

• Desarrollador, Consultor

• Doctorado en Criptografía en la Universidad de Chile

• Co-fundador de comprabitcoin.com (2013-2014)

• Unos de los primeros sitios de compra-venta de bitcoins en América Latina

• Mucha prensa (estuvimos en Tele 13 ) • 3 millones de USD de venta

• Desarrollador I+D en Synaptic.cl (septiembre 2014)

Page 3: Bitcoin y (in)seguridad: 5 paradojas

Premio

¡Hay 40 mBTC ≈ $7000 escondidos en esta presentación!

Page 4: Bitcoin y (in)seguridad: 5 paradojas

De 1 USD a 1000 USD en 3 años (Por qué Bitcoin importa)

Page 5: Bitcoin y (in)seguridad: 5 paradojas

I tried hacking Bitcoin and I failed.

http://www.businessinsider.com/dan-kaminsky-highlights-flaws-bitcoin-2013-4

???

Page 6: Bitcoin y (in)seguridad: 5 paradojas

Paradojas

• #1 El verdadero costo del dinero

• #2 Anonimato v/s trazabilidad

• #3 Poder computacional: una arma de doble filo

• #4 Centralización v/s Descentralización

• #5 “In Bitcoin we Trust”

Page 7: Bitcoin y (in)seguridad: 5 paradojas

Bloque

Minería

en 1 slide

Genesis (Coinbase)

Cadena de bloques

Page 8: Bitcoin y (in)seguridad: 5 paradojas

Paradojas

• #1 El verdadero costo del dinero

• #2 Anonimato v/s trazabilidad

• #3 Poder computacional: una arma de doble filo

• #4 Centralización v/s Descentralización

• #5 “In Bitcoin we Trust”

Page 9: Bitcoin y (in)seguridad: 5 paradojas

¿Cuanto cuesta mandar 195.500.000 USD de un país a otro con Bitcoin?

0.0001 BTC = 0.04 USD

Page 10: Bitcoin y (in)seguridad: 5 paradojas

Firmas digitales

Clave privada Clave pública ≈ Dirección de Bart

Firmar Mensaje

Firma

Equivale a la habilidad de

“dibujar la firma”

Page 11: Bitcoin y (in)seguridad: 5 paradojas

Firma

Firmas digitales

Aceptar / Rechazar

Verificar

Page 12: Bitcoin y (in)seguridad: 5 paradojas

¿Que significa “Soy dueño de 30 BTC”?

Tu conoces la clave privada asociada a una clave pública (≈dirección bitcoin) cuyo balance es 30 BTC.

Tu eres el único a conocer esa clave privada.

1

2

Page 13: Bitcoin y (in)seguridad: 5 paradojas

Entonces…

2 cosas feas te pueden pasar

Pierdes la clave privada

Alguien te roba la clave privada y transfiere todos tus bitcoins a otra dirección

1

2

Page 14: Bitcoin y (in)seguridad: 5 paradojas

¿Que harías con 500000 BTC?

• 500000 BTC = 195.500.000 USD

Page 15: Bitcoin y (in)seguridad: 5 paradojas

¿El problema: donde guardarlos?

?

? ? ?

Page 16: Bitcoin y (in)seguridad: 5 paradojas

¿El problema: donde guardarlos?

Page 17: Bitcoin y (in)seguridad: 5 paradojas
Page 18: Bitcoin y (in)seguridad: 5 paradojas

¿Y eso?

Page 19: Bitcoin y (in)seguridad: 5 paradojas

O perdón, esto: (Cold Storage)

Page 20: Bitcoin y (in)seguridad: 5 paradojas

Cold Storage

• Internet es inseguro => hay que almacenar las claves privadas offline

• Costo real

– Seguridad física

– Proceso MUY MUY complejo

Page 21: Bitcoin y (in)seguridad: 5 paradojas

Proceso básico

1. Preparar un computador que no tenga acceso a internet 2. Instalar un sistema operativo sin virus 3. Instalar el código que permite generar claves privadas/publicas 4. Generar las claves privadas y las direcciones bitcoin asociadas 5. Almacenar las claves en lugar seguro (colchon) 6. Copiar manualmente la dirección bitcoin en un computador online 7. Enviar dinero a la dirección elegida (chao jefe) 8. Recolectar la información de las transacciones asociada a la dirección 9. Mover manualmente esa información en el computador offline 10. Firmar (usando la clave privada) la transacción nueva 11. Mover manualmente la transacción firmada en un computador online 12. Publicar en la red bitcoin la transacción

Page 22: Bitcoin y (in)seguridad: 5 paradojas

Algunos problemas

• ¿Donde se almacenan las claves privadas? • ¿Quien sabe donde están (físicamente) las claves privadas? • ¿Quién cuida la seguridad del lugar físico / como? • En caso de encriptar las claves privadas, quien recuerda la

password • ¿Quien prepara el computador offline? • ¿De donde se saca el sistema operativo? • ¿Hay que partir del principio cada vez que se quiere enviar

dinero (reinstalar todo)? • ¿En caso que por alguna razón el computador offline este

infectado por un virus será un problema? – Sí.

Page 23: Bitcoin y (in)seguridad: 5 paradojas

Malas noticias En la práctica se usan claves USB para mover

manualmente la información desde entre el computador online y el computador offline.

https://www.schneier.com/blog/archives/2014/07/the_fundamental.html

Page 24: Bitcoin y (in)seguridad: 5 paradojas

Pregunta filosófica

¿Entonces que se puede hacer?

Page 25: Bitcoin y (in)seguridad: 5 paradojas

Idea Internet

Hardware especializado para validar transacciones. Puede ser considerado como seguro

Transacción Firmada

Transacción Firmada

(Monto, Dirección BTC destinación)

Page 26: Bitcoin y (in)seguridad: 5 paradojas
Page 27: Bitcoin y (in)seguridad: 5 paradojas

Las cosas no son tan simples…

• ECDSA – Setup():

• 𝐺 grupo de tamaño 𝑛, 𝑔 ∈ 𝐺 • 𝑆𝐾 = 𝑑 ∈ [1, 𝑛] (aleatorio) • 𝑃𝐾 = 𝑔𝑑 • Return (𝑃𝐾, 𝑆𝐾)

– Sign(m,SK): • 𝑒 = 𝐻𝑎𝑠ℎ(𝑚)

• 𝑧 = 𝑒[1, 𝐿𝑛] • 𝑘 ∈ [1, 𝑛] (aleatorio)

• (𝑥1, 𝑦1) = 𝑔𝑘

• 𝑟 = 𝑥1 𝑚𝑜𝑑 𝑛

• 𝑠 = 𝑘−1 𝑧 + 𝑟 𝑆𝐾 𝑚𝑜𝑑 𝑛 • Return (𝑟, 𝑠)

Page 28: Bitcoin y (in)seguridad: 5 paradojas

Ataque sobre la “idea brillante”ea

Internet

Hardware especializado para validar transacciones. Puede ser considerado como seguro

Transacción Firmada

Transacción Firmada

(Monto, Dirección BTC destinación)

El adversario usa

dos veces el mismo 𝑘

Page 29: Bitcoin y (in)seguridad: 5 paradojas

Ataque sobre la “idea brillante”

• El adversario usa dos veces el mismo 𝑘 Tenemos:

𝑠1 = 𝑘−1 𝑧1 + 𝑟 𝑆𝐾 𝑚𝑜𝑑 𝑛 𝑠2 = 𝑘−1 𝑧2 + 𝑟 𝑆𝐾 𝑚𝑜𝑑 𝑛

Entonces podemos deducir

s1 /𝑠2 = 𝑘−1 𝑧1 + 𝑟 𝑆𝐾

𝑘−1 𝑧2 + 𝑟 𝑆𝐾

𝑺𝑲 = 𝑠2𝑧1 − 𝑠1𝑧2

𝑟 𝑠1 − 𝑠2

Clave secreta

Todos los valores son conocidos

Page 30: Bitcoin y (in)seguridad: 5 paradojas

Se nos olvido decirle a Philippe que había que

hablar de temas prácticos también…

Page 31: Bitcoin y (in)seguridad: 5 paradojas

En la práctica

Page 32: Bitcoin y (in)seguridad: 5 paradojas

En la práctica

http://bitcoinmagazine.com/6251/critical-vulnerability-found-in-android-wallets/

NOTA: El ataque funciona

SIN TENER que acceder al dispositivo de la victima.

¡Toda la información necesaria esta en la cadena de bloques!

Page 33: Bitcoin y (in)seguridad: 5 paradojas

En la práctica FIX

http://bit.ly/1sVT994

Page 34: Bitcoin y (in)seguridad: 5 paradojas

#¡NoLoHagan!#

Page 35: Bitcoin y (in)seguridad: 5 paradojas

https://brainwallet.github.io

¡El dinero esta en tu mente!

Page 36: Bitcoin y (in)seguridad: 5 paradojas

#¡NoLoHagan!#

Page 37: Bitcoin y (in)seguridad: 5 paradojas

Leyes y reglas en un mundo que cambia

¿Será prohibido acordarse de una password cuando uno se sube a un avión?

Page 38: Bitcoin y (in)seguridad: 5 paradojas

Paradojas

• #1 El verdadero costo del dinero

• #2 Anonimato v/s trazabilidad

• #3 Poder computacional: una arma de doble filo

• #4 Centralización v/s Descentralización

• #5 “In Bitcoin we Trust”

Page 39: Bitcoin y (in)seguridad: 5 paradojas

En el mundo Bitcoin mi identidad es distinta

El identificador del usuario se reemplaza por una secuencia de simbolos

aleatorios

Dirección Bitcoin: 31uEbMgunupShBVTewXjtqbBv5MndwfXhb

Page 40: Bitcoin y (in)seguridad: 5 paradojas

Y eso es bueno

Page 41: Bitcoin y (in)seguridad: 5 paradojas

Y eso es malo (o al menos complejo) también

Page 42: Bitcoin y (in)seguridad: 5 paradojas

Bitcoin no es totalmente anónimo

ANONIMATO = SEUDONIMATO + NO VINCULACIÓN

Page 43: Bitcoin y (in)seguridad: 5 paradojas

Para proveer “más” anonimato

Mixer

Page 44: Bitcoin y (in)seguridad: 5 paradojas

Para proveer “más” anonimato

• Coinjoin (https://bitcointalk.org/index.php?topic=279249.0)

– Aprovecha la forma en que se implementan las transacciones en Bitcoin

– Usa multi-firmas

– Evita el riesgo de que el mixer se robe los bitcoins

Page 45: Bitcoin y (in)seguridad: 5 paradojas

Para proveer aún más anonimato

¡56 paginas!

Requiere cambiar

Bitcoin

Page 46: Bitcoin y (in)seguridad: 5 paradojas

Paradojas

• #1 El verdadero costo del dinero

• #2 Anonimato v/s trazabilidad

• #3 Poder computacional: una arma de doble filo

• #4 Centralización v/s Descentralización

• #5 “In Bitcoin we Trust”

Page 47: Bitcoin y (in)seguridad: 5 paradojas

Bloque

Minería

en 1 slide

Genesis (Coinbase)

Cadena de bloques

Page 48: Bitcoin y (in)seguridad: 5 paradojas

Cadena de bloques

H H H

Tx1; Tx2; Tx3…

Tx34; Tx35; Tx36…

Tx54; Tx55; Tx56…

Bloque de transacciones

Genesis (Coinbase)

Page 49: Bitcoin y (in)seguridad: 5 paradojas

¿Pero quien calcula el siguiente bloque?

Page 50: Bitcoin y (in)seguridad: 5 paradojas

Demostración de Esfuerzo (Proof of Work)

00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111

10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111

H 1001101|| x 000||10

Encuentra el valor x tal que la salida empieza

con 3 zeros.

La única forma (*) de calcular este valor tal que la salida

empiece por 𝒏 zeros es intentar al alrededor de 𝟐𝒏 veces.

(*) Si lo logras de otra manera puedes (1) volverte rico, (2) famoso (Premio Turing), o (3) ambas cosas...

Page 51: Bitcoin y (in)seguridad: 5 paradojas

La intuición

• El primer nodo que logra a resolver el puzzle computacional gana el bloque

• La red extiende la cadena a partir de este nuevo bloque

• La red siempre elige extender la cadena más larga

¡Diablos! Necesito controlar

51% del poder computacional de la red (*)

(*) No es tan así… => Majority is not Enough: Bitcoin Mining is Vulnerable http://arxiv.org/abs/1311.0243

Page 52: Bitcoin y (in)seguridad: 5 paradojas

Poder computacional como arma

Page 53: Bitcoin y (in)seguridad: 5 paradojas

¿Qué pasa con Ecuador?

¿Cuanto poder computacional se

necesita para proteger la moneda digital de un país?

Page 54: Bitcoin y (in)seguridad: 5 paradojas

Poder computacional == $$$

http://www.wired.com/2014/08/isp-bitcoin-theft/

Page 55: Bitcoin y (in)seguridad: 5 paradojas

Paradojas

• #1 El verdadero costo del dinero

• #2 Anonimato v/s trazabilidad

• #3 Poder computacional: una arma de doble filo

• #4 Centralización v/s Descentralización

• #5 “In Bitcoin we Trust”

Page 56: Bitcoin y (in)seguridad: 5 paradojas

Minería tiende a centralizarse

Page 57: Bitcoin y (in)seguridad: 5 paradojas

Protocolo descentralizado pero servicios centralizados

Page 58: Bitcoin y (in)seguridad: 5 paradojas

5 Super heroes para proteger una economía de 5 billones de dólares

• Wladimir J. van der Laan

• Gavin Andresen

• Jeff Garzik

• Gregory Maxwell

• Pieter Wuille

Page 59: Bitcoin y (in)seguridad: 5 paradojas

A veces la centralización es buena…

https://bitcoin.org/en/alert/2013-03-11-chain-fork

Page 60: Bitcoin y (in)seguridad: 5 paradojas

Paradojas

• #1 El verdadero costo del dinero

• #2 Anonimato v/s trazabilidad

• #3 Poder computacional: una arma de doble filo

• #4 Centralización v/s Descentralización

• #5 “In Bitcoin we Trust”

Page 61: Bitcoin y (in)seguridad: 5 paradojas

Cambio de paradigma

Bancos Confianza en instituciones

Bitcoin Confianza en código

abierto + leyes matemáticas

V/S

= +

Page 62: Bitcoin y (in)seguridad: 5 paradojas

¿Pero quién invento Bitcoin?

No se sabe quien es...

http://www.newsweek.com/2014/03/14/face-behind-bitcoin-247957.html

Page 63: Bitcoin y (in)seguridad: 5 paradojas

¡Satoshi tendría 10% de los bitcoins!

Nota a los organizadores:

¡Inviten a Sergio el próximo año!

Page 64: Bitcoin y (in)seguridad: 5 paradojas

ECDSA y la Teoría de la Conspiración

• [In answer to: "Is the NSA aware of any weaknesses in the DES or the DSS? The RSA?"] We are unaware of any weaknesses in the DES or the DSS when properly implemented and used for the purposes for which they both are designed. —National Security Agency, June 1992

http://en.wikipedia.org/wiki/Data_Encryption_Standard#NSA.27s_involvement_in_the_design

Page 65: Bitcoin y (in)seguridad: 5 paradojas

ECDSA y la Teoría de la Conspiración

Page 66: Bitcoin y (in)seguridad: 5 paradojas

ECDSA y la Teoría de la Conspiración

https://www.nsa.gov/ia/programs/suiteb_cryptography/

Page 67: Bitcoin y (in)seguridad: 5 paradojas

Demostraciones de Seguridad

• Idea – Si supuesto es valido entonces sistema es seguro

– Bueno:

• Permite definir: “que es seguro” • Permite enfocarse en los supuestos

– No da ninguna garantía absoluta pero no tenerla es

mucho peor

Teorema: Logaritmo Discreto Difícil ⇒ Algoritmo de firma de ElGamal es seguro

Page 68: Bitcoin y (in)seguridad: 5 paradojas

Demostraciones de Seguridad

• Problema

– No hay demostración de seguridad para ECDSA

– No hay demostración de seguridad para Bitcoin • Malleability Attack

http://www.righto.com/2014/02/the-bitcoin-malleability-attack-hour-by.html

• Majority is not Enough: Bitcoin Mining is Vulnerable http://arxiv.org/abs/1311.0243

• ???

Page 69: Bitcoin y (in)seguridad: 5 paradojas

Necesitamos otras herramientas (internet?)

Generalización de Bitcoin

Lenguaje Turing Completo

(contratos inteligentes)

Tendremos malware en la cadena de

bloque Que pasa frente a un

ataque global / local?

Ethereum.org

Page 70: Bitcoin y (in)seguridad: 5 paradojas

Hal Finney (1956-2014)

¡Gracias!