Introducción a la Criptografia

  • 5,925 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
5,925
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
220
Comments
3
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Dani Gutiérrez Porset [email_address]
      • Introducción a la Criptografía
  • 2. Índice
    • Introducción
    • Valores aleatorios
    • Funciones hash
    • Cifrados simétrico y asimétrico. Comparación.
    • Aplicaciones: encriptación, firma digital, protocolos, MAC/HMAC
    • Esquemas de autenticación
    • Estándares y Formatos
    • Software
    • Licencia de uso
  • 3. Introducción
    • Objetivos:
      • Privacidad=Confidencialidad
      • Autenticación
      • Integridad
      • No repudio
    • Fundamentos matemáticos:
      • Generación de números aleatorios
      • Generación de números primos grandes
      • Sustituciones
      • Permutaciones=Trasposiciones
  • 4. Valores aleatorios
    • “nonce”=”number used once”. Número o cadena de bits a ser empleado una sola vez, aleatorio y que no se repite. Ej. empleado en autenticación digest de http
    • Vector de inicialización (IV): bloque de bits necesario para los cifradores de flujo o de bloque. Es un caso de nonce.
    • “salt”: para protegerse contra los ataques de diccionario, las funciones de generación de claves crean claves a partir de una clave original y un conjunto de bits aleatorios denominado “salt”. A veces se emplea un IV como salt.
      • Ej: En ldap, {smd5} es la versión salted de md5y {ssha} la variante salted de la sha-1 {sha}
  • 5. Funciones hash
    • Sinónimos: resumen, digest, hash
    • Crean un resumen de N bits a partir de un contenido origen.
    • Propiedades:
      • Funciona en una sola dirección: a partir del resumen no se puede deducir el origen
      • No hay 2 orígenes que den un mismo resumen (en teoría), o son difíciles de calcularlos (ver http://en.wikipedia.org/wiki/Hash_collision )
    • Usos:
      • Resumen de un contenido (ej. fichero, correo electrónico), ej. para comparación
      • Codificación de passwords a longitud fija
  • 6. Funciones hash
    • Ejs. de algoritmos:
      • crypt: el resultado depende de cada sistema concreto ( http://en.wikipedia.org/wiki/Crypt_(Unix ) )
      • md5. Tiene colisiones. Ejs:
        • En /etc/shadow se emplea una versión salted de md5. El salt se almacena en el 2º campo de la forma $1salt$... Ej. comprobación: openssl passwd -1 -salt mi_salt mi_clave
        • Passwords joomla de mysql
      • sha, sha-1, sha-2. sha-1 es el sucesor de md5. Se emplea en SSL/TLS, S/MIME, PGP, SSH, IPsec.
    • Refs:
      • http://en.wikipedia.org/wiki/Cryptographic_hash_function
      • http://en.wikipedia.org/wiki/SHA_hash_functions
  • 7. Cifrado simétrico
    • Una misma clave para encriptar y desencriptar
    • Problema: distribución de claves (ha de estar muy guardada, o ser de vida corta)
    • Los métodos pueden ser de flujo o de bloque.
    • Ejs. de algoritmos:
      • des, 3des, aes, desx
      • cast, cast5
      • rc2, rc4, rc5
      • idea (patentado)
      • blowfish
    • Ref: http://en.wikipedia.org/wiki/Symmetric-key_algorithm
  • 8. Cifrado asimétrico
    • Dos claves, una pública y otra privada. Propiedades:
      • A partir de una clave pública es imposible deducir la privada.
      • Lo que se encripta con una se puede desencriptar con la otra, y viceversa. Ej:
        • Encriptación:
          • Origen: encriptar mensaje con clave pública del receptor
          • Destino: desencriptarlo con clave privada del receptor
        • Firma:
          • Origen: encriptar hash de un mensaje con clave privada del emisor
          • Destino: desencriptarlo con la clave pública del emisor
      • Sólo se puede desencriptar con la otra clave; con ninguna otra.
  • 9. Cifrado asimétrico
    • Ejs. de algoritmos:
      • DH (Diffie-Hellman). Uso típico para claves de sesión: intercambiar claves simétricas sin la ayuda de una clave previa en un medio inseguro
      • RSA
      • DSA/DSS: Más moderno y más seguro que RSA
        • Usado sólo para firmar (no para encriptar).
        • Necesita una función hash (ej. sha1). DSS=DSA+sha1
      • ElGamal
      • Curvas elípticas
    • Ref: http://en.wikipedia.org/wiki/Public-key_cryptography
  • 10. Cifrado asimétrico
    • Usos de RSA y DSA:
      • Generación de claves privada y pública:
        • La clave privada se puede encriptar con una passphrase y algoritmos simétricos des, 3des o idea. Se pide al usarla ej. arranque de servidor web
        • La clave pública es deducible a partir de la clave privada.
      • Operaciones:
        • Firma: más rápido RSA.
        • Verificación: más rápido DSA.
        • Encriptación: sólo RSA.
    • Ejs:
      • openssh: ssh-keygen -t dsa
      • openssl: openssl genrsa -out privkey.pem 1024
  • 11. Comparación de cifrados
    • En ambos: importante longitud de clave.
    • Asimétrico más lento que simétrico
    • Claves:
  • 12. Aplicaciones: encriptación
    • Proceso:
      • Se crea una clave K. Puede ser:
        • Aleatoria, en el lado del emisor.
        • De sesión, a partir de las claves privada y pública de emisor y receptor. Algoritmo Diffie-Hellman.
      • El emisor envía:
        • Mensaje encriptado con algoritmo simétrico y clave K.
        • Clave K encriptada con algoritmo asimétrico y clave pública del receptor.
    • Garantiza confidencialidad
  • 13. Aplicaciones: firma digital
    • Proceso:
      • En el lado del emisor:
        • Se encripta el resumen del mensaje con la firma privada del emisor.
        • Se envía el resultado
    • Garantiza:
      • Autenticidad e integridad
      • No repudio, como consecuencia de los dos anteriores
    • Ej. aplicaciones:
      • Correo electrónico (thunderbird, kmail,...)
      • Documentos ofimáticos (openoffice, acrobat reader)
  • 14. Aplicaciones: protocolos
    • Uso específico en:
      • GPG/PGP
      • SSL/TLS (ej. https: autenticación de servidor y/o cliente)
      • SSH
      • IKE (IPsec)
      • ...
  • 15. Aplicaciones: MAC/HMAC/...
    • MAC (message authentication code): código pequeño de información construido a partir del mensaje y de una clave simétrica (no es una firma digital).
    • Garantiza autenticidad e integridad.
    • Algoritmos:
      • Funciones resumen ej SHA1, MD5. HMAC (key-hashed MAC): MAC generado con funciones resumen
      • Cifrado de bloque ej. OMAC.
    • MIC (message integrity code): sólo para integridad. Parte sólo del mensaje, no de una clave
  • 16. Esquemas de autenticación
    • Problema de partida: verificar la asociación de claves públicas e identidades.
    • Esquemas:
      • Confianza en base a terceros:
        • Vertical: jerarquía de CAs (ej. PKI X.509)
        • Horizontal: red de confianza (ej. PGP/GPG)
      • Verificación directa (ej. ssh)
      • Otros: modelo de confianza local (ej. SPKI=Simple PKI)
  • 17. Estándares y Formatos
    • PKCS: Public Key Cryptography Standards. Listado de los principales:
      • 1: claves RSA pública y privada
      • 5: encriptación en base a claves
      • 7: Firmar y encriptar mensajes,....
      • 8: formato de fichero no encriptado de claves públicas y privadas
      • 10: Mensaje enviado a una CA para solicitar verificación de una clave pública
      • 11: API para tokens de criptografía (seguridad hardware)
      • 12: formato de fichero encriptado de claves públicas y privadas
  • 18. Estándares y Formatos
    • ASN.1
      • Abstract Syntax Notation One.
      • Lenguaje para describir y codificar reglas para representar datos.
      • Estándar ITU X.208/X.680.
      • Reglas de codificación:
        • BER: Basic Encoding Rules (X.690). Ej. para LDAP
        • CER: Canonical Encoding Rules
        • DER: Distinguished Encoding Rules
        • XER: XML Encoding Rules
        • ...
  • 19. Estándares y Formatos
    • Formatos de parámetros, claves privada y pública,...:
      • DER (es binario)
      • PEM (es ascii). Ej: -----BEGIN ...----- siendo ...:
        • Claves:
          • PKCS8 encriptado: ENCRYPTED PRIVATE KEY
          • PKCS8 no encriptado: PRIVATE KEY
          • RSA: RSA PRIVATE KEY
          • DSA: DSA PRIVATE KEY, DSA PARAMETERS
          • Curvas elípticas: EC PRIVATE KEY
        • Certificados:
          • Certificado: CERTIFICATE, X509 CERTIFICATE
          • Certificado firmado: TRUSTED CERTIFICATE
          • CSR: CERTIFICATE REQUEST
          • CRL: X509 CRL
  • 20. Software
    • Paquetes ubuntu
      • asn1c - ASN.1 compiler for C
      • dirmngr - server for managing certificate revocation lists
      • kleopatra - KDE Certificate Manager
      • openssl - Secure Socket Layer (SSL) binary and related cryptographic tools
      • libbotan1.6 - multiplatform crypto library
      • libio-socket-ssl-perl - Perl module implementing object oriented interface to SSL sockets
      • libksba8 - X.509 and CMS support library
      • libxyssl-dev - lightweight crypto and SSL/TLS library
      • python-ncrypt - python wrapper for OpenSSL
  • 21. Software
    • Paquetes ubuntu
      • beidgui - application to read out information from the Belgian electronic ID card
      • ca-certificates - Common CA Certificates PEM files
      • coolkey - Smart Card PKCS #11 cryptographic module
      • cryptonit - A client side PKI (X.509) cryptographic tool
      • ebox-ca - eBox - Certificate Authority Manager
      • newpki-client - PKI based on the OpenSSL low-level API (client package)
      • newpki-server - PKI based on the OpenSSL low-level API (server package)
      • pyca - Certification Authority written in python
      • seccure - tools for using algorithms based on elliptic curve cryptography (ECC)
      • ssl-cert - Simple debconf wrapper for openssl
      • tinyca - simple graphical program for certification authority management
  • 22. Licencia de uso
      • http://creativecommons.org/licenses/by-sa/3.0/