CRIPTOGRAFÍA

En el día a día

  • Sin live coding ni ejecución de demos

  • Sin teoría pesada

  • Se adapta el nivel para tod@s (mayoría)

DISCLAIMER

  • Teoria
  • Hashing
  • Criptografía Simétrica
  • Criptografía Asimétrica
  • PGP

AGENDA

Un largo viaje 

Alice y Bob

ALICE

BOB

Otros

FRIEND

ENEMY

La comunicación

Definiciones

Encriptar:

 cifrar (‖ transcribir con una clave).
 

Cifrar:

 Transcribir en guarismos, letras o símbolos, de acuerdo con una clave, un mensaje o texto cuyo contenidose quiere proteger.
 

Criptografia teorica

Scenario: clean

  • Confidencialidad: Solo la(s) personas/maquinas autorizadas pueden acceder
  • Integridad: El contenido es verificable
  • Vinculación: El autor del contenido puede ser verificable (firma digital)
  • Autenticación: Provee de mecanismos para verificar la identidad del comunicador

Objetivos

Hashes

La idea

Hashes

IMAGEN

  • Bajo/nulo en Colisiones: Que dos inputs distintos generen el mismo output
  • Determinismo: Con el mismo input esperamos el mismo output
  • Rápido
  • Difícil de analizar: un pequeño cambio en el input genera un output muy distinto
  • Irreversible: El output no puede invertirse

Los Objetivos

  • Integridad de información/ficheros (checksum)
  • Hashing de información sensible (contraseñas, emails...)
  • Generación de Ids únicos
  • Generación de números pseudoaletorios (semilla)

Usos comunes

Código

const { createHash } = require('crypto');

const generateHash = (txt, algorithm) => {
  return createHash(algorithm).update(txt).digest('hex')
}

const generateChecksum = (txt) => ({
  md5: generateHash(txt, 'md5'),
  sha1: generateHash(txt, 'sha1'),
  sha256: generateHash(txt, 'sha256')
})

generateChecksum("Just a simple Text")
/*
{ 
  md5: '42fc79f713ed18f0aff045c8a86eb14c',
  sha1: '4ca3e243ede34c908fd3a9ec971d4b4eb3ff4da5',
  sha256: '838af5f849c8a7b5eb8c7021feb47c53836bda5f183228194e3373b5f245c7a5' 
}
*/

Alteraciones

Hashes crudos

La idea

Usaremos varias utilidades para evitar este ataque como

  • Salto
  • Vector de inicialización (IV)

Hashes + Salt

Cifrado Simétrico

Encriptación simétrica

Cifrado Asimétrico

Circulo de confianza

  • Los usuarios generan sus propias claves (privada y publica)
  • Los usuarios pueden verificar la autenticidad de un mensaje (comparar clave publica)
  • Los usuarios pueden cifrar la información sin tener que interactuar previamente (cifrado publico)
  • Las claves tiene una fortaleza y expiración pública
  • Un mensaje en claro puede ser firmados (ratificación de hash)
  • Este sistema hacer que el medio de comunicación sea irrelevante para autenticación e integridad
  • Las claves son responsabilidad de las personas (perdida, etc..)
  • Un mensaje puede ser irrecuperable si las claves se pierden
  • Soporte a ficheros y texto

Características

Firma de documentos

PGP

IMAGEN

PGP (cifrar)

IMAGEN

PGP (cifrar y firmar)

TU RETO

PGP Tools

Terminal (Win/Mac/Lin)

GUI for MacOS

  • Descargar una firma de alguien del equipo
  • Crear una firma PGP propia (fuerza)
  • Crear y compartir tu firma PGP
  • Cifrar/Descifrar un mensaje
  • Cifrar/Descifrar un fichero
  • Firmar un mensaje plano (Autenticidad)
  • Comparte tu experiencia

Objetivos

Next level

PREGUNTAS

¡Gracias!

Los sueños son sumamente importantes. Nada se hace sin que antes se imagine.  

- George Lucas