Bitcoin y (in)seguridad: 5 paradojas

634 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
634
En SlideShare
0
De insertados
0
Número de insertados
11
Acciones
Compartido
0
Descargas
8
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!

×