Bitcoin y (In)seguridad:
5 paradojas
Philippe Camacho
philippe.camacho@synaptic.cl
@philippecamacho
¿Quién soy?
Philippe Camacho
• Francés, 10 años en Chile
• Desarrollador, Consultor
• Doctorado en Criptografía en la Univ...
Premio
¡Hay 40 mBTC ≈ $7000 escondidos en esta presentación!
De 1 USD a 1000 USD en 3 años
(Por qué Bitcoin importa)
I tried hacking Bitcoin and I failed.
http://www.businessinsider.com/dan-kaminsky-highlights-flaws-bitcoin-2013-4
???
Paradojas
• #1 El verdadero costo del dinero
• #2 Anonimato v/s trazabilidad
• #3 Poder computacional: una arma de doble f...
Bloque
Minería
en 1 slide
Genesis
(Coinbase)
Cadena de bloques
Paradojas
• #1 El verdadero costo del dinero
• #2 Anonimato v/s trazabilidad
• #3 Poder computacional: una arma de doble f...
¿Cuanto cuesta mandar
195.500.000 USD de un país a otro con Bitcoin?
0.0001 BTC = 0.04 USD
Firmas digitales
Clave privada Clave pública ≈
Dirección de Bart
FirmarMensaje
Firma
Equivale a la
habilidad de
“dibujar l...
Firma
Firmas digitales
Aceptar /
Rechazar
Verificar
¿Que significa
“Soy dueño de 30 BTC”?
Tu conoces la clave privada
asociada a una clave pública
(≈dirección bitcoin)
cuyo b...
Entonces…
2 cosas feas te pueden pasar
Pierdes la clave privada
Alguien te roba la clave
privada y transfiere todos
tus bi...
¿Que harías con 500000 BTC?
• 500000 BTC = 195.500.000 USD
¿El problema: donde guardarlos?
?
? ? ?
¿El problema: donde guardarlos?
¿Y eso?
O perdón, esto:
(Cold Storage)
Cold Storage
• Internet es inseguro => hay que almacenar las
claves privadas offline
• Costo real
– Seguridad física
– Pro...
Proceso básico
1. Preparar un computador que no tenga acceso a internet
2. Instalar un sistema operativo sin virus
3. Inst...
Algunos problemas
• ¿Donde se almacenan las claves privadas?
• ¿Quien sabe donde están (físicamente) las claves privadas?
...
Malas noticiasEn la práctica se usan
claves USB para mover
manualmente la
información desde entre
el computador online y
e...
Pregunta filosófica
¿Entonces que se puede hacer?
Idea
Internet
Hardware especializado para validar transacciones.
Puede ser considerado como seguro
Transacción
Firmada
Tra...
Las cosas no son tan simples…
• ECDSA
– Setup():
• 𝐺 grupo de tamaño 𝑛, 𝑔 ∈ 𝐺
• 𝑆𝐾 = 𝑑 ∈ [1, 𝑛] (aleatorio)
• 𝑃𝐾 = 𝑔 𝑑
• R...
Ataque sobre la
“idea brillante”ea Internet
Hardware especializado para validar transacciones.
Puede ser considerado como ...
Ataque sobre la “idea brillante”
• El adversario usa dos veces el mismo 𝑘
Tenemos:
𝑠1 = 𝑘−1 𝑧1 + 𝑟 𝑆𝐾 𝑚𝑜𝑑 𝑛
𝑠2 = 𝑘−1 𝑧2 + ...
Se nos olvido decirle a
Philippe que había que
hablar de temas
prácticos también…
En la práctica
En la práctica
http://bitcoinmagazine.com/6251/critical-vulnerability-found-in-android-wallets/
NOTA:
El ataque funciona
S...
En la práctica
FIX 
http://bit.ly/1sVT994
#¡NoLoHagan!#
https://brainwallet.github.io
¡El dinero esta
en tu mente!
#¡NoLoHagan!#
Leyes y reglas en
un mundo que cambia
¿Será prohibido acordarse
de una password cuando
uno se sube a un avión?
Paradojas
• #1 El verdadero costo del dinero
• #2 Anonimato v/s trazabilidad
• #3 Poder computacional: una arma de doble f...
En el mundo Bitcoin
mi identidad es distinta
El identificador del usuario
se reemplaza por una secuencia de simbolos
aleat...
Y eso es bueno
Y eso es malo
(o al menos complejo) también
Bitcoin no es totalmente anónimo
ANONIMATO = SEUDONIMATO + NO VINCULACIÓN
Para proveer “más” anonimato
Mixer
Para proveer “más” anonimato
• Coinjoin (https://bitcointalk.org/index.php?topic=279249.0)
– Aprovecha la forma en que se ...
Para proveer aún más anonimato
¡56 paginas!
Requiere
cambiar
Bitcoin 
Paradojas
• #1 El verdadero costo del dinero
• #2 Anonimato v/s trazabilidad
• #3 Poder computacional: una arma de doble f...
Bloque
Minería
en 1 slide
Genesis
(Coinbase)
Cadena de bloques
Cadena de bloques
HH H
Tx1;
Tx2;
Tx3…
Tx34;
Tx35;
Tx36…
Tx54;
Tx55;
Tx56…
Bloque de
transacciones
…
Genesis
(Coinbase)
¿Pero quien calcula el siguiente bloque?
Demostración de Esfuerzo
(Proof of Work)
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
011...
La intuición
• El primer nodo que logra a
resolver el puzzle
computacional gana el bloque
• La red extiende la cadena a
pa...
Poder computacional como arma
¿Qué pasa con Ecuador?
¿Cuanto poder
computacional se
necesita para
proteger la moneda
digital de un país?
Poder computacional == $$$
http://www.wired.com/2014/08/isp-bitcoin-theft/
Paradojas
• #1 El verdadero costo del dinero
• #2 Anonimato v/s trazabilidad
• #3 Poder computacional: una arma de doble f...
Minería tiende a centralizarse
Protocolo descentralizado
pero servicios centralizados
5 Super heroes para proteger una
economía de 5 billones de dólares
• Wladimir J. van der Laan
• Gavin Andresen
• Jeff Garz...
A veces la centralización es buena…
https://bitcoin.org/en/alert/2013-03-11-chain-fork
Paradojas
• #1 El verdadero costo del dinero
• #2 Anonimato v/s trazabilidad
• #3 Poder computacional: una arma de doble f...
Cambio de paradigma
Bancos
Confianza en instituciones
Bitcoin
Confianza en código
abierto + leyes
matemáticas
V/S
= +
¿Pero quién invento Bitcoin?
No se sabe quien es...
http://www.newsweek.com/2014/03/14/face-behind-bitcoin-247957.html
¡Satoshi tendría 10% de los bitcoins!
Nota a los organizadores:
¡Inviten a Sergio el
próximo año!
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?"...
ECDSA y la Teoría de la Conspiración
ECDSA y la Teoría de la Conspiración
https://www.nsa.gov/ia/programs/suiteb_cryptography/
Demostraciones de Seguridad
• Idea
– Si supuesto es valido entonces sistema es seguro
– Bueno:
• Permite definir: “que es ...
Demostraciones de Seguridad
• Problema
– No hay demostración de
seguridad para ECDSA
– No hay demostración de
seguridad pa...
Necesitamos otras herramientas
(internet?)
Generalización de
Bitcoin
Lenguaje
Turing Completo
(contratos inteligentes)
Ten...
Hal Finney (1956-2014)
¡Gracias!
Bitcoin y (in)seguridad: 5 paradojas
Bitcoin y (in)seguridad: 5 paradojas
Próxima SlideShare
Cargando en…5
×

Bitcoin y (in)seguridad: 5 paradojas

544 visualizaciones

Publicado el

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

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
544
En SlideShare
0
De insertados
0
Número de insertados
11
Acciones
Compartido
0
Descargas
7
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Bitcoin y (in)seguridad: 5 paradojas

  1. 1. Bitcoin y (In)seguridad: 5 paradojas Philippe Camacho philippe.camacho@synaptic.cl @philippecamacho
  2. 2. ¿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)
  3. 3. Premio ¡Hay 40 mBTC ≈ $7000 escondidos en esta presentación!
  4. 4. De 1 USD a 1000 USD en 3 años (Por qué Bitcoin importa)
  5. 5. I tried hacking Bitcoin and I failed. http://www.businessinsider.com/dan-kaminsky-highlights-flaws-bitcoin-2013-4 ???
  6. 6. 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”
  7. 7. Bloque Minería en 1 slide Genesis (Coinbase) Cadena de bloques
  8. 8. 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”
  9. 9. ¿Cuanto cuesta mandar 195.500.000 USD de un país a otro con Bitcoin? 0.0001 BTC = 0.04 USD
  10. 10. Firmas digitales Clave privada Clave pública ≈ Dirección de Bart FirmarMensaje Firma Equivale a la habilidad de “dibujar la firma”
  11. 11. Firma Firmas digitales Aceptar / Rechazar Verificar
  12. 12. ¿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
  13. 13. 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
  14. 14. ¿Que harías con 500000 BTC? • 500000 BTC = 195.500.000 USD
  15. 15. ¿El problema: donde guardarlos? ? ? ? ?
  16. 16. ¿El problema: donde guardarlos?
  17. 17. ¿Y eso?
  18. 18. O perdón, esto: (Cold Storage)
  19. 19. Cold Storage • Internet es inseguro => hay que almacenar las claves privadas offline • Costo real – Seguridad física – Proceso MUY MUY complejo
  20. 20. 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
  21. 21. 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í.
  22. 22. Malas noticiasEn 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
  23. 23. Pregunta filosófica ¿Entonces que se puede hacer?
  24. 24. Idea Internet Hardware especializado para validar transacciones. Puede ser considerado como seguro Transacción Firmada Transacción Firmada (Monto, Dirección BTC destinación)
  25. 25. 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 (𝑟, 𝑠)
  26. 26. 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 𝑘
  27. 27. 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
  28. 28. Se nos olvido decirle a Philippe que había que hablar de temas prácticos también…
  29. 29. En la práctica
  30. 30. 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!
  31. 31. En la práctica FIX  http://bit.ly/1sVT994
  32. 32. #¡NoLoHagan!#
  33. 33. https://brainwallet.github.io ¡El dinero esta en tu mente!
  34. 34. #¡NoLoHagan!#
  35. 35. Leyes y reglas en un mundo que cambia ¿Será prohibido acordarse de una password cuando uno se sube a un avión?
  36. 36. 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”
  37. 37. En el mundo Bitcoin mi identidad es distinta El identificador del usuario se reemplaza por una secuencia de simbolos aleatorios Dirección Bitcoin: 31uEbMgunupShBVTewXjtqbBv5MndwfXhb
  38. 38. Y eso es bueno
  39. 39. Y eso es malo (o al menos complejo) también
  40. 40. Bitcoin no es totalmente anónimo ANONIMATO = SEUDONIMATO + NO VINCULACIÓN
  41. 41. Para proveer “más” anonimato Mixer
  42. 42. 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
  43. 43. Para proveer aún más anonimato ¡56 paginas! Requiere cambiar Bitcoin 
  44. 44. 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”
  45. 45. Bloque Minería en 1 slide Genesis (Coinbase) Cadena de bloques
  46. 46. Cadena de bloques HH H Tx1; Tx2; Tx3… Tx34; Tx35; Tx36… Tx54; Tx55; Tx56… Bloque de transacciones … Genesis (Coinbase)
  47. 47. ¿Pero quien calcula el siguiente bloque?
  48. 48. 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 H1001101|| 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...
  49. 49. 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
  50. 50. Poder computacional como arma
  51. 51. ¿Qué pasa con Ecuador? ¿Cuanto poder computacional se necesita para proteger la moneda digital de un país?
  52. 52. Poder computacional == $$$ http://www.wired.com/2014/08/isp-bitcoin-theft/
  53. 53. 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”
  54. 54. Minería tiende a centralizarse
  55. 55. Protocolo descentralizado pero servicios centralizados
  56. 56. 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
  57. 57. A veces la centralización es buena… https://bitcoin.org/en/alert/2013-03-11-chain-fork
  58. 58. 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”
  59. 59. Cambio de paradigma Bancos Confianza en instituciones Bitcoin Confianza en código abierto + leyes matemáticas V/S = +
  60. 60. ¿Pero quién invento Bitcoin? No se sabe quien es... http://www.newsweek.com/2014/03/14/face-behind-bitcoin-247957.html
  61. 61. ¡Satoshi tendría 10% de los bitcoins! Nota a los organizadores: ¡Inviten a Sergio el próximo año!
  62. 62. 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
  63. 63. ECDSA y la Teoría de la Conspiración
  64. 64. ECDSA y la Teoría de la Conspiración https://www.nsa.gov/ia/programs/suiteb_cryptography/
  65. 65. 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
  66. 66. 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 •???
  67. 67. 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
  68. 68. Hal Finney (1956-2014) ¡Gracias!

×