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:

  • CPU 32 bits
  • CPU 64 bits
  • Optimización loop unroll
  • SIMD
  • GPGPU
  • Supercomputadora
  • FGPA
En negrita significa que ya está hecha, en itálica que la estoy elaborando. Tengo plena confianza en hacer todas, salvo la de FPGA, que puede ser en extremo difícil para mi.

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:  una repasada del conjunto [2]
  • Viernes Ñoños en CADIEEL: parte 1 [3]
  • Charlas Ninjas:  parte 1, sin acceso público

Segunda parte, SIMD
  • Charla Ninja viernes 2018/06/01 11:00
  • Viernes Ñoños en CADIEEL viernes 2018/06/01 18:00

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 al menos un año antes.

Excusa para aprender y practicar los temas que me interesan.

Mis recursos


Libros

  • 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
  • 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 Alvarez – 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