Unidad 5 - Criptografía

36
UNIDAD 5. CRIPTOGRAFÍA Seguridad y Alta Disponibilidad 1

description

Unidad 5 Seguridad y Alta DisponibilidadCRIPTOGRAFÍA

Transcript of Unidad 5 - Criptografía

Page 1: Unidad 5 - Criptografía

UNIDAD 5.

CRIPTOGRAFÍA

Seguridad y Alta Disponibilidad

1

Page 2: Unidad 5 - Criptografía

Contenidos

1. Principios de criptografía

2. Tipos de algoritmos de cifrado 2.1. Criptografía simétrica

2.2. Criptografía de clave asimétrica

2.3. Criptografía híbrida

2.4. Firma digital

3. Certificados digitales 3.1. Terceras partes de confianza

3.2. DNIe

2

Page 3: Unidad 5 - Criptografía

1

PRINCIPIOS DE

CRIPTOGRAFÍA

3

Page 4: Unidad 5 - Criptografía

Principios de Criptografía

CRIPTOGRAFÍA

4

CRIPTOLOGÍA

Arte o ciencia de cifrar y descifrar información.

Del griego “kriptos” (ocultar) y “graphos” (escribir), literalmente “escritura oculta”.

Se emplea para el intercambio de mensajes de manera segura, de forma que sólo puedan ser leídos por personas a las que van dirigidos y que poseen los medios para descifrarlos (confidencialidad).

Como ciencia, engloba:

o Técnicas de cifrado: la criptografía.

o Técnicas complementarias: el criptoanálisis.

Page 5: Unidad 5 - Criptografía

Principios de Criptografía

Conceptos de criptología:

5

Información original a proteger: texto en claro o texto plano.

Cifrado: proceso de convertir el texto plano en un texto ilegible (texto cifrado o criptograma).

Algoritmos de cifrado: se basan en la existencia de una información secreta (clave) que adapta el algoritmo de cifrado para cada uso distinto. Dos tipos:

o De cifrado en bloque: dividen el texto origen en bloques de bits de un tamaño fijo y los cifran de manera independiente.

o De cifrado de flujo: se realiza bit a bit, byte a byte o carácter a carácter.

Técnicas más sencillas de cifrado (en la criptografía clásica):

o Sustitución: cambio de significado de los elementos básicos del mensaje, las letras, los dígitos o los símbolos.

o Transposición: reordenación de los mismos, los elementos básicos no se modifican.

Descifrado: proceso inverso, recupera el texto plano a partir del criptograma y la clave.

Page 6: Unidad 5 - Criptografía

Principios de Criptografía

Ejemplos históricos:

6

Cifrado del César

Sistema de sustitución que consiste en reemplazar cada letra del texto original por otra que se encuentra un número fijo de posiciones más adelante en el alfabeto.

ROT13 ( = Rotar 13 posiciones )

Tipo de cifrado de César en el que ciframos un texto sustituyendo cada letra por la que está 13 posiciones por delante en el alfabeto.

Julio César solía utilizar un desplazamiento de 3 posiciones en casi todos sus mensajes.

Page 7: Unidad 5 - Criptografía

Principios de Criptografía

Ejemplos históricos:

7

El escitalo de Esparta (siglo V a.C)

Método de transposición que consistía en el uso de una vara de madera (scytale) en la que se enrollaba una tira de cuero o papiro sobre la que se escribía el mensaje. Cuando se desenrollaba el mensaje, parecía una lista de letras sin sentido. Para descifrar el mensaje, el destinatario simplemente necesitaba una vara del mismo diámetro.

Trasposición de Riel

El mensaje se escribe alternando las letras en dos líneas separadas. A continuación, la secuencia de letras de la línea inferior, se añade al final de la secuencia de la línea superior, creando el mensaje cifrado. El mensaje se recupera simplemente invirtiendo el proceso.

Page 8: Unidad 5 - Criptografía

Práctica 1. Script de cifrado.

8

Ejemplo de algoritmo de sustitución: comando tr

Para cifrar mediante codificación César un archivo de texto plano:

cat archivo | tr [a-z] [d-zabc] | tr [A-Z] [D-ZABC]

El comando tr permite realizar una sustitución carácter a carácter.

Page 9: Unidad 5 - Criptografía

2

TIPOS DE

ALGORITMOS DE

CIFRADO

9

Page 10: Unidad 5 - Criptografía

Tipos de algoritmos de cifrado

10

Simétricos o de clave simétrica o privada: usan una única clave tanto en el proceso de cifrado como en el descifrado.

Existen dos grandes tipos de algoritmos de cifrado:

Asimétricos o de clave asimétrica o pública: usan una clave para cifrar mensajes y una clave distinta para descifrarlos. Forman el núcleo de las técnicas de cifrado modernas (certificados digitales, firma digital, DNIe)

Page 11: Unidad 5 - Criptografía

Criptografía simétrica

11

Se usa una misma clave para cifrar y descifrar mensajes.

Las dos partes que se comunican han de acordar de antemano sobre la clave a usar.

Un buen sistema de cifrado pone toda la seguridad en la clave y ninguna en el algoritmo:

la clave debe ser muy difícil adivinar

Importante: longitud de la clave y conjunto de caracteres que emplee.

Page 12: Unidad 5 - Criptografía

Criptografía simétrica

12

DES: usa una clave de 56 bits hay 256 claves posibles.

3DES, Blowfish e IDEA: usan claves de 128 bits hay 2128 claves posibles.

RC5 y AES (Advanced Encryption Standard) o Rijndael.

Ejemplos de algoritmo de cifrado simétrico:

Principales problemas de los sistemas de cifrado simétrico:

El intercambio de claves

¿Qué canal de comunicación seguro han usado para transmitirse las claves?

Más fácil para el atacante intentar interceptar una clave que probar todas las posibles combinaciones.

El número de claves que se necesitan

Para n personas que necesiten comunicarse entre sí, se necesitan n/2 claves diferentes por cada pareja.

Funciona con un grupo reducido de personas, imposible con grupos grandes.

Page 13: Unidad 5 - Criptografía

Práctica 2. Cifrado simétrico.

13

Comando: gpg

Opciones: – c (cifrado simétrico). Generará un archivo con la extensión .asc

– d (descifrado)

Ejemplo: gpg –c archivo gpg –d archivo.asc

PGP (Pretty Good Privacy)

Programa más popular de encriptación y de creación de llaves públicas y privadas para seguridad en aplicaciones informáticas.

Criptosistema híbrido.

GPG (GNU Privacy Guard)

Herramienta para cifrado y firmas digitales.

Reemplazo de PGP, es software libre licenciado bajo la GPL.

Page 14: Unidad 5 - Criptografía

Práctica 3. Cifrado de datos y particiones.

14

TrueCrypt

Herramienta para cifrar y ocultar en el ordenador datos que el usuario considere reservados o confidenciales.

Ofrece la posibilidad de crear discos virtuales o aprovechar una partición ya existente para guardar ficheros cifrados.

Permite escoger entre varios algoritmos de cifrado: AES, Serpent, Twofish…

Page 15: Unidad 5 - Criptografía

Criptografía de clave asimétrica

15

Cada usuario del sistema ha de poseer una pareja de claves:

o Clave pública: conocida por todos los usuarios.

o Clave privada: custodiada por el propietario y no se dará a conocer.

Page 16: Unidad 5 - Criptografía

Criptografía de clave asimétrica

16

Ventajas

Se puede cifrar con una clave y descifrar con la otra.

Desventajas

Para una misma longitud de clave y mensaje se necesita mayor tiempo de proceso.

Las claves deben ser de mayor tamaño que las simétricas (mínimo 1024 bits)

El mensaje cifrado ocupa más espacio que el original.

Algoritmos de técnicas de clave asimétrica:

Diffie-Hellman, RSA, DSA, ElGamal, criptografía de curva elíptica.

Claves

Estas claves se obtienen mediante métodos matemáticos complicados de forma que por razones de tiempo de cómputo, es imposible conocer una clave a partir de otra.

Pareja de claves complementaria: lo que cifra una, sólo lo puede descifrar la otra y viceversa.

Page 17: Unidad 5 - Criptografía

Criptografía de clave asimétrica

17

Funciones resumen o funciones hash

Los sistemas asimétricos se basan en funciones resumen o funciones hash de un solo sentido su cálculo directo es viable, pero el de la función inversa resulta casi imposible.

Algoritmos empleados como funciones resumen o hash: MD5 y SHA.

Usos: Analizar la integridad de un archivo o verificar su atenticidad. Resumen.

Cifrado de contraseñas de usuario, arhivo /etc/shadow de GNU/Linux

Firma digital de archivos, mail, etc.

Page 18: Unidad 5 - Criptografía

Práctica 4. Funciones resumen (hash).

18

Comando md5sum

Calcula el valor resumen MD5 de un fichero.

Ejemplo:

Ejecutamos md5sum archivo.txt > archivo.md5

Para verificar la integridad del archivo: md5sum –c archivo.md5

Si el archivo no ha sido modificado, mostrará: archivo.txt: OK

Si el archivo ha sido modificado, mostrará: archivo.txt: FAILED

Ejemplo de uso de las funciones resumen.

Analizar la integridad de un archivo descargado mediante la comprobación de su valor resumen calculado.

En muchas ocasiones, las web de los fabricantes originales muestran junto a su archivo de instalación el valor resumen calculado, con el que podremos verificar tras descargar el archivo de instalación su integridad o que no ha sido modificado o es una falsificación.

Page 19: Unidad 5 - Criptografía

Comparación entre criptografía simétrica y asimétrica

Atributo Clave simétrica Clave asimétrica

Años en uso Miles Menos de 50

Velocidad Rápida Lenta

Uso principal Cifrado de grandes volúmenes de datos

Intercambio de claves Firma digital

Claves Compartidas entre emisor y receptor Privada: sólo conocida por 1 persona. Pública: conocida por todos.

Intercambio de claves

Difícil de intercambiar por un canal inseguro

La clave pública se comparte por cualquier canal. La privada nunca se comparte

Longitud de claves

56 bits (vulnerable) 256 bits (seguro)

1024 bits mínimo

Algoritmos DES, 3DES, Blowfish, IDEA, AES Diffie-Hellman, RSA, DSA, ElGamal

Servicios de seguridad

Confidencialidad Integridad Autenticación

Confidencialidad Integridad Autenticación, No repudio

19

Page 20: Unidad 5 - Criptografía

Práctica 5. Cifrado asimétrico.

20

Generar par de claves para cifrado asimétrico: gpg –gen-key

Durante el proceso de generación se nos irán haciendo diversas preguntas: o Tipo de cifrado. La opción DSA and ElGamal nos permite encriptar y firmar. o Tamaño de las claves. Por defecto se recomienda 2048 (a mayor tamaño más seguridad). o Tiempo de validez de la clave. 0 indicará que no caduque nunca. o Frase de paso (o passphrase). Contraseña que nos va a asegurar que nadie más que

nosotros mismo va a poder usar esta clave GPG.

Ver las claves públicas que tenemos disponibles: gpg --list-keys o gpg -k

Ver las claves privadas que tenemos disponibles: gpg --list-secret-keys

Borrar claves:

o 1º borrar la clave privada: gpg –-delete-secret-key ClaveID

o 2º borrar la clave pública: gpg –-delete-key ClaveID

GPG (GNU Privacy Guard)

Page 21: Unidad 5 - Criptografía

Práctica 5. Cifrado asimétrico.

21

Distribución de la clave pública: a. Subirla a un servidor de claves públicas (p. ej., el servidor pgp de rediris) gpg --send-keys --keyserver pgp.rediris.es ClaveID

b. Enviarla por correo o en soporte portable (USB, CD/DVD…). La volcamos a un fichero de texto: gpg --armor --output fichero –-export ClaveID

Hacer una copia de nuestra clave privada para poder recuperarla: gpg --armor --output fichero –-export-secret-key ClaveID

Importar una clave volcada en un fichero: gpg --import fichero

Crear certificado de revocación: gpg –o revocacion.asc --gen-revoke ClaveID

Importar nuestra relación de claves: gpg --import revocacion.asc

GPG (GNU Privacy Guard)

Page 22: Unidad 5 - Criptografía

Criptografía híbrida

22

Utiliza los dos algoritmos:

o Algoritmo de clave pública

Para el cifrado en el envío de la clave simétrica (pequeña cantidad de información). Más seguro.

o Algoritmo de clave simétrica

Para el cifrado del mensaje. Se reduce el coste computacional.

Herramientas SW que usan los algoritmos anteriores:

PGP y GPG.

Protocolos de comunicación que usan los algoritmos anteriores:

SSH, SSL y TLS.

Page 23: Unidad 5 - Criptografía

Criptografía híbrida

23

PROCESO:

A y B tienen sus pares de claves respectivas.

A escribe un mensaje a B. Lo cifra con el sistema de criptografía de clave simétrica. La clave que utiliza se llama clave de sesión y se genera aleatoriamente. Para enviar la clave de sesión de forma segura, ésta se cifra con la clave púbica de B, utilizando por lo tanto criptografía de clave asimétrica.

B recibe el mensaje cifrado con la clave de sesión y ésta misma cifrada con su clave pública. Para realizar el proceso inverso, en primer lugar utiliza su clave privada para descifrar la clave de sesión. Una vez obtenida la clave de sesión, ya puede descifrar el mensaje.

Page 24: Unidad 5 - Criptografía

Firma digital

24

Permite al receptor de un mensaje:

Verificar la autenticidad del origen de la información (autenticación)

Verificar que la información no ha sido modificada desde su generación (integridad)

El emisor del mensaje firmado no puedo argumentar que no lo hizo (no repudio)

Una firma digital está destinada al mismo propósito que una manuscrita, pero la manuscrita es sencilla de falsificar, mientras la digital es imposible mientras no se descubra la clave privada del firmante.

La firma digital es un cifrado del mensaje que se está firmando pero utilizando la clave privada en lugar de la pública.

Firma digital = resultado de cifrar con clave privada el resumen de los datos a firmar, haciendo uso de funciones resumen o hash.

Page 25: Unidad 5 - Criptografía

Firma digital

25

Page 26: Unidad 5 - Criptografía

Práctica 6. Cifrado de datos y particiones.

26

Unir la firma digital al contenido del documento, el cual no se cifra.

gpg --clear-sign fichero

Tendremos a la salida un archivo fichero.asc, donde el contenido no está cifrado y se encuentra firmado digitalmente al final.

Diversos modos de envío de documentos firmados:

Unir la firma digital al contenido del documento, el cual se cifra con la clave, obteniendo un archivo binario.

gpg –s fichero

Documento y firma en archivos separados.

gpg –b fichero

En el archivo fichero.asc tendremos la firma separada del documento. Para verificar la firma emplearemos la opción --verify

Page 27: Unidad 5 - Criptografía

3

CERTIFICADOS

DIGITALES

27

Page 28: Unidad 5 - Criptografía

Certificados Digitales

28

Para asegurar que una determinada clave pública pertenece a un usuario concreto

Para garantizar la unicidad de las claves privadas

Soportes físicos, como tarjetas inteligentes (SmartCards). Ej: DNIe.

Garantizan la imposibilidad de la duplicación de claves.

Protegidas por un número personal o PIN (sólo lo conoce su propietario).

Certificados digitales.

Page 29: Unidad 5 - Criptografía

Certificados Digitales

29

CERTIFICADO DIGITAL = documento electrónico (archivo) que asocia una clave pública con la identidad de su propietario.

Contiene información sobre la identidad de su propietario (nombre, dirección, mail), la clave pública, otros atributos (ámbito de uso de la clave pública, fechas de validez, etc.) y una firma digital de una autoridad certificadora (en España, La Casa de la Moneda y Timbre)

El formato estándar es X.509 y su distribución es posible realizarla:

o Con clave privada (extensión *.pfx o *.p12) o Con clave pública (extensión (*.cer o *.crt)

Aplicaciones de certificados digitales y DNIe: realizar compras y comunicaciones seguras, trámites con la banca online, con las administraciones públicas (Hacienda, Seg. Social) a través de Internet, etc.

Page 30: Unidad 5 - Criptografía

Terceras partes de confianza

30

¿Cómo confiar si un determinado certificado es válido o si está falsificado?

Mediante la confianza en terceras partes.

Idea: dos usuarios pueden confiar directamente entre sí, si ambos tienen relación con una tercera parte y que ésta puede dar fe de la fiabilidad de las dos.

Se podrá tener confianza en el certificado digital de un usuario al que previamente no conocemos si dicho certificado está avalado por una tercera parte en la que sí confiamos mediante su firma digital sobre el certificado.

La Tercera Parte Confiable (TPC o TTP, Trusted Third Party) que se encarga de la firma digital de los certificados de los usuarios de un entorno de clave pública se conoce con el nombre de Autoridad de Certificación (AC).

Page 31: Unidad 5 - Criptografía

Terceras partes de confianza

31

El modelo de confianza basado en Terceras Partes Confiables es la base de la definición de las Infraestructuras de Clave Pública (ICP o PKI, Public Key Infrastructures), formado por:

Autoridad de certificación (CA): emite y elimina los certificados digitales.

Autoridad de registro (RA): controla la generación de los certificados, procesa las peticiones y comprueba la identidad de los usuarios.

Autoridades de repositorio: almacenan los certificados emitidos y eliminados.

Software para el empleo de certificados.

Política de seguridad en las comunicaciones relacionadas con gestiones de certificados.

Page 32: Unidad 5 - Criptografía

Documento Nacional de Identidad Electrónico (DNIe)

32

Similar al tradicional y cuya principal novedad es que incorpora un pequeño circuito integrado (chip), capaz de guardar de forma segura información en formato digital como:

o Un certificado electrónico para autenticar la personalidad del ciudadano.

o Un certificado electrónico para firmar electrónicamente (con la misma validez jurídica que la firma manuscrita).

o Certificado de la Autoridad de Certificación emisora.

o Claves para su utilización.

o La plantilla biométrica de la impresión dactilar.

Para su uso es necesario:

o HW específico: lector de tarjetas inteligentes.

o SW específico: módulos criptográficos que permitan el acceso al chip.

Page 33: Unidad 5 - Criptografía

Práctica 7. Utilidades de certificados

33

1. Comprobar la veracidad de un sitio web.

Page 34: Unidad 5 - Criptografía

Práctica 7. Utilidades de certificados

34

2. Instalar certificados en el sistema operativo, en navegadores web o clientes de correo

electrónico Eliminamos el uso de credenciales escritas por teclado.

Page 35: Unidad 5 - Criptografía

Práctica 7. Utilidades de certificados

35

2. Instalar certificados en el sistema operativo, en navegadores web o clientes de correo

electrónico Eliminamos el uso de credenciales escritas por teclado.

Page 36: Unidad 5 - Criptografía

Enlaces

36

Web de la Fábrica Nacional de Moneda y Timbre, Autoridad de Certificación y expedición de certificados digitales: www.cert.fnmt.es

Camerfirma. Web de las cámaras de comercio con información sobre certificados digitales: www.camerfirma.com

Web del DNI electrónico. Ministerio del Interior: www.dnielectronico.es

DIRECCIONES DE INTERÉS

SOFTWARE

GPG. Completo software de cifrado: www.gnupg.org/index.es.html

TrueCrypt. Software de cifrado de volúmenes, particiones, etc.: www.truecrypt.org

Generador de funciones hash-resumen. Cifrado de texto plano mediante diversos algoritmos como MD5 o SHA: www.hashgenerator.de

OpenSSL: librerías de criptografía, proporciona entre otras aplicaciones, soporte SSL para entornos web: www.openssl.org