Las partes, que no necesariamente corresponden a las charlas son:
- CPU 32 bits
- Hack CPU 64 bits
- Optimización loop unroll
- SIMD
- Threads, forks y GPGPU
- Supercomputadora
- FGPA
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
Primera parte, CPU y hack 64 bits
- 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
- Charlas Ninjas
- Charlas Ninjas, sin acceso público, uno de estos días.
- OWASP LATAM TOUR 2019[4], todo menos FPGA, vendría a ser "con computadoras"
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
- Sitio: https://h4ck3d.org/
- 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
- https://www.owasp.org/index.php/LatamTour2019#tab=ARGENTINA_-_Buenos_Aires
No hay comentarios:
Publicar un comentario