domingo, 13 de mayo de 2018

Forzando Brutalmente MD5 - presentación

Forzando Brutalmente MD5 es un ciclo de charlas, probablemente cinco, en las cuales comparto la experiencia de atacar por fuerza bruta el algoritmo obsoleto de hashing MD5.

Las partes, que no necesariamente corresponden a las charlas son:

Si tiene link ya ha sido presentada públicamente, en negrita significa que ya está hecha, en itálica que la estoy elaborando. Ahora estoy sufriendo en extremo con FPGA, es muy difícil para mi. Bueh, para cualquiera.

A lo largo de las siguiente semanas y meses, iré publicando acá y en github[1] los contenidos. Acá menos técnico, en github el código.

Estos contenidos han sido presentados en vivo en 
  • H4CK3D:  partes 1, 2 y una repasada del conjunto [2]
  • Viernes Ñoños en CADIEEL [3]
  • Charlas Ninjas, sin acceso público

Segunda parte, SIMD
  • Viernes Ñoños en CADIEEL
  • Charlas Ninjas, sin acceso público
Tercera parte, threads, forks y GPU

  • Charlas Ninjas, sin acceso público
Cuarta parte, supercomputadora
  • Charlas Ninjas, sin acceso público, uno de estos días.

De qué se trata


De cómo atacar por fuerza bruta un hash para obtener su preimagen utilizando distintos hardware y técnicas de programación.

En construcción desde 2017-12, pensada desde al menos un año antes.

Excusa para aprender y practicar los temas que me interesan.

Mis recursos


Libros

  • Programming with POSIX Threads – David R. Butenhof – 2009
  • Pthreads Programming – Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell – 2009
  • Structured Computer Organization - Andrew S. Tanenbaum – ~2010
  • Distributed Systems – Andrew S. Tanenbaum – ~2010
  • Computer Architecture: A Quantitative Approach – Hennessy/Patterson – 2017
  • Computer Organization and Design: The Hardware/Software Interface ARM Edition – Patterson/Hennessy – 2017

Cursos

  • Organización del computador –  Saubidet – FIUBA 2007
  • Taller de Programación I – Veiga – FIUBA 2009
  • Programación distribuida y paralela usando MPI – Arzhan Kinzhalin – ECI 2011
  • Software Performance: Methodology and Techniques – Arzhan Kinzhalin – ECI 2007
  • Circuitos Lógicos Programables – Nicolás Álvarez – CESE 2017

Aplicabilidad


Si siguieras un camino como este estarías en mejor estado para hacer:

  • Ataques de fuerza bruta
  • Defensa ante ataques de fuerza bruta
  • Decisiones de arquitectura
  • Optimizaciones generales
  • Blockchain

Por qué MD5


  • Por que es fácil.
  • Para separar la enseñanza de la “producción”, evitando el enviciamiento que su unión produce.
  • Es obsoleto, no hay presión.
  • Es de 32 bits y me habilita el ejemplo de “hacking”

Descripción MD5


Ver wikipedia y quedarse con esto:
  • Son 64 rondas en grupos de 16 aplicadas repetidamente a buffers de 512 bits (64 bytes), aplicando un pad para completar.
  • Se aplica un valor que se calcula con una función que se puede precalcular.



[1] Github
  • https://github.com/cpantel/Forzando-Brutalmente-MD5
[2] H4CK3D
  • Sitio: https://h4ck3d.org/
[3] Viernes Ñoños en CADIEEL
  • Buscar los mensajes con el asunto [Viernes Ñoños en CADIEEL] en https://groups.google.com/forum/?hl=en#!forum/embebidos32
  • Canal en youtube: https://www.youtube.com/channel/UCKsHdgvwvmCNnGD1Az8SSUQ

No hay comentarios:

Publicar un comentario