View
120
Download
0
Category
Preview:
Citation preview
Programación 3
Encriptación
Angel Vázquez-Patiñoangel.vazquezp@ucuenca.edu.ec
Departamento de Ciencias de la ComputaciónUniversidad de Cuenca
5 de enero de 2017
05/01/17 Angel Vázquez-Patiño 2/81
Objetivos
1. Entender los principales problemas de seguridad en redes y sistemas de información
2. Entender la diferencia entre cifrado y codificación
3. Entender las dos categorías históricas de encriptación
4. Conocer los dos principios criptográficos fundamentales
05/01/17 Angel Vázquez-Patiño 3/81
Objetivos
5. Entender la diferencia entre algoritmos de clave simétrica y de clave pública
6. Entender los conceptos de firma digital
7. Usar encriptación con un gestor de correos electrónicos
05/01/17 Angel Vázquez-Patiño 4/81
Contenido
Introducción
Problemas de seguridad
Criptografía
Cifrado vs codificación
Cifrado por sustitución y transposición
Principios criptográficos fundamentales
Algoritmos de clave simétrica y de clave pública
Firmas digitales
05/01/17 Angel Vázquez-Patiño 5/81
Introducción
05/01/17 Angel Vázquez-Patiño 6/81
Introducción● Comienzo de telecomunicaciones: email,
compartir impresoras● No había interés en la seguridad
Seguridad● No poder leer o modificar mensajes● Acceso a servicios remotos no autorizados● Verificación de proveniencia● Captura y reproducción de mensajes legítimos,
personas que intentar negar que enviaron
05/01/17 Angel Vázquez-Patiño 7/81
Introducción
05/01/17 Angel Vázquez-Patiño 8/81
IntroducciónProblemas de seguridad● Confidencialidad
– Usuarios no autorizados fuera del alcance de la información
● Autenticación– Con quién se está hablando antes de revelar informa ción delicada o
hacer un trato de negocios
● No repudio– firmas: ¿cómo comprobar que su cliente en realidad hizo un pedido
electrónico, cuando después él afirma que no? O tal vez argumente que él nunca realizó ningún pedido
● Control de integridad– forma en que podemos estar seguros de que un mensaje recibido
realmente fue el que se envió, y no algo que un adversario mali cioso modificó en el camino o ideó por su propia cuenta
05/01/17 Angel Vázquez-Patiño 9/81
Introducción● La aparición de las Tecnologías de la
Información y la Comunicación y el uso masivo de las comunicaciones digitales han producido un número creciente de problemas de seguridad
05/01/17 Angel Vázquez-Patiño 10/81
Introducción
Confidencialidad
05/01/17 Angel Vázquez-Patiño 11/81
Introducción
Integridad
05/01/17 Angel Vázquez-Patiño 12/81
Introducción
Autenticación
05/01/17 Angel Vázquez-Patiño 13/81
Introducción● En un Sistema de Comunicación de Datos, es
de vital importancia, asegurar que la Información viaje segura, manteniendo su autenticidad, integridad, confidencialidad y el no repudio de la misma entre otros aspectos
● Estas características sólo se pueden asegurar utilizando las Técnicas de Firma Digital Encriptada y la Encriptación de Datos
05/01/17 Angel Vázquez-Patiño 14/81
Revisar
Historia de la Criptografía y su Desarrollo en Europa● https://youtu.be/a99Qorfotv4
Redes sociales y menores● https://youtu.be/nlfUhKijHCg
Datos personales. Guía de seguridad para usuarios● https://youtu.be/qNKozIsD31M
Seguridad en redes Wi-fi● https://youtu.be/rhJAJ1TdNyg
05/01/17 Angel Vázquez-Patiño 15/81
Criptografía
05/01/17 Angel Vázquez-Patiño 16/81
Criptografía
Definición● Griego, escritura secreta● Kahn, 1996. The codebreakers● Parte de la criptología que se ocupa de las
técnicas, bien sean aplicadas al arte o la ciencia, que alteran las representaciones lingüísticas de mensajes, mediante técnicas de cifrado y/o codificado, para hacerlos ininteligibles a intrusos (lectores no autorizados) que intercepten esos mensajes
05/01/17 Angel Vázquez-Patiño 17/81
Criptografía
Sistema de cifrado vs sistema de código (1)● Cifrado
– transformación carácter por carácter o bit por bit, sin importar la estructura lingüística del mensaje
● Código– reemplaza una palabra con otra palabra/símbolo.
Ya no se utilizan, aunque tienen una historia gloriosa
05/01/17 Angel Vázquez-Patiño 18/81
Criptografía
Sistema de cifrado vs sistema de código (2)● Cifrado
– transformar un mensaje de "texto claro“ (esté en el código que esté) a algo ininteligible mediante el uso de una clave que sólo el emisor y el receptor del mensaje conozcan
● Código– convertir un mensaje cualquiera (e.g., letras, números,
bytes arbitrarios) de un código A (Morse, Base64, UTF-8, ASCII, ...) a otro B (traducir). Decodificar es el proceso inverso: dado un mensaje en el código B, transformarlo según el código A
05/01/17 Angel Vázquez-Patiño 19/81
Criptografía
Codificación: un ejemplo de la historia● “El código con mayor éxito fue el de las fuerzas
armadas de Estados Unidos, durante la Segunda Guerra Mundial en el Pacífico. Tenían indios navajos hablando entre sí, utilizando palabras específicas en navajo correspondientes a términos militares; por ejemplo, chay-da-gahi-nail-tsaidi (literalmente: asesino de tortugas) quiere decir arma antitanque. El lenguaje navajo es altamente tonal, muy complejo y no tiene forma escrita. Ninguna persona en Japón sabía algo acerca de él.”
Kahn (1996)
05/01/17 Angel Vázquez-Patiño 20/81
Criptografía
Contribuciones al arte de la criptografía● Los militares● El cuerpo diplomático● Los redactores de los periódicos● Los amantes
Tanenbaum y Wetherall (2012)
05/01/17 Angel Vázquez-Patiño 21/81
Criptografía
El arte de quebrantar los sistemas de cifrado, es conocidocomo criptoanálisis, y en conjunto con el arte de idearlos (criptografía) se conocen como criptología
05/01/17 Angel Vázquez-Patiño 22/81
Criptografía
Principio de Kerckhoff● Suponer que el algoritmo de encriptación y
desencriptación está seguro. Seguridad por desconocimiento
● La clave (K) se puede cambiar con mayor frecuencia
Todos los algoritmos deben ser públicos; Todos los algoritmos deben ser públicos; sólo las claves deben ser secretassólo las claves deben ser secretas
05/01/17 Angel Vázquez-Patiño 23/81
Criptografía
Clave de encriptación● Su longitud es importante (es conocida)
● Cuanto más grande sea la clave, mayor será el factor de trabajo que tendrá que enfrentar el criptoanalista
05/01/17 Angel Vázquez-Patiño 24/81
Criptografía
Factor de trabajo● Búsqueda exhaustiva del espacio
de clave crece exponencialmente● El secreto radica en tener un algoritmo poderoso
(pero público) y una clave larga● Para evitar que su hermano menor lea su correo
electrónico, las claves de 64 bits son suficientes. Para el uso comercial común, se requieren por lo menos 128 bits. Para mantener a raya a gobiernos poderosos se requieren claves de al menos 256 bits, y de preferencia mayores
05/01/17 Angel Vázquez-Patiño 25/81
Criptografía
Categorías históricas de encriptación
1) Sistemas de cifrado por sustitución
2) Sistemas de cifrado por transposición
05/01/17 Angel Vázquez-Patiño 26/81
Sistemas de cifrado por sustitución● Reemplazo por letra o grupo de letras
Sistema de cifrado de César● a se vuelve D, b se vuelve E, c se vuelve F, ... ,
y z se vuelve C● ataque se vuelve DWDTXH
Generalización del sistema de cifrado de César● Desplazamiento de k letras● K se vuelve clave de encriptación
05/01/17 Angel Vázquez-Patiño 27/81
Sistemas de cifrado por sustitución
Cifrado por sustitución monoalfabética● Cada símbolo se asocia con una letra
● ataque se transformaría en el texto cifrado QZQJXT
Clave de encriptación
05/01/17 Angel Vázquez-Patiño 28/81
Cifrado por sustitución
Cifrado por sustitución monoalfabética● Romper seguridad
– 4×1026 claves posibles, 10.000 años
– Frecuencia de letras
– Capturar mensaje donde se sabe de alguna palabra y analizar la repetición de letras
05/01/17 Angel Vázquez-Patiño 29/81
Cifrado por transposición● Reordenan las letras pero no las disfrazan
Transposición columnar
05/01/17 Angel Vázquez-Patiño 30/81
Tarea● Saber si un texto cifrado fue cifrado por
sustitución o transposición● Cifre un texto plano de mínimo 10.000 letras● No use caracteres especiales
05/01/17 Angel Vázquez-Patiño 31/81
Rellenos de una sola vez● Es sencillo construir un sistema de cifrado
inquebrantable:
1) Escoger cadena de bits al azar como clave
2) Convertir el texto plano en una cadena de bits
3) Calcular el XOR de las dos cadenas, bit por bit● En una muestra suficientemente grande de texto cifrado
cada letra aparecerá con la misma frecuen cia, lo mismo que cada diagrama, trigrama, etc.
● La razón se deriva de la teoría de la información: no hay información en el mensaje debido a que todos los textos planos posibles de una longitud dada son parecidos
05/01/17 Angel Vázquez-Patiño 32/81
Rellenos de una sola vez
I l o v e y o u .
E l v i s l i v e s
No hay información en el texto cifrado● Es posible obtener cualquier mensaje con la
longitud correcta a partir de él
05/01/17 Angel Vázquez-Patiño 33/81
Rellenos de una sola vez
Desventajas en la práctica● La clave no se puede memorizar, por lo que
tanto el emisor como el receptor deben transportar una copia escrita con ellos. Captura de información
● La cantidad total de datos que se pueden transmitir está limitada por la cantidad de claves disponibles. Si el espía tiene suerte y descubre una gran cantidad de datos, quizá no los pueda transmitir al cuartel general debido a que la clave se ha agotado
05/01/17 Angel Vázquez-Patiño 34/81
Rellenos de una sola vezDesventajas en la práctica● Sensibilidad del método a los caracteres perdidos o
insertados. Si el emisor y el receptor pierden la sincronización, de ahí en adelante todos los datos aparecerán distorsionados
● Transporte de la clave. DVD con varios gigabytes de información y, si se transporta en una caja de película para DVD y se le anteponen algunos minutos de vídeo, ni siquiera sería sospechoso. Por supuesto que, a velocidades de red de gigabit, tener que insertar un nuevo DVD cada 30 segundos podría volverse tedioso. Y los DVD deben transportarse personalmente desde el emisor hasta el receptor antes de poder enviar cualquier mensaje, lo que reduce en gran medida su utilidad práctica
05/01/17 Angel Vázquez-Patiño 35/81
Criptografía cuántica
Seminario de introducción a la Computación y Criptografía Cuántica, UPM (2010)
https://youtu.be/3zsg3DGfWFg
05/01/17 Angel Vázquez-Patiño 36/81
Revisar
¿Qué es la teoría de la información?● https://youtu.be/vVokVFHz8uA
05/01/17 Angel Vázquez-Patiño 37/81
Principios criptográficos fundamentales
1) Los mensajes deben contener alguna redundancia
2) Es necesario algún método para frustrar los ataques de repetición
05/01/17 Angel Vázquez-Patiño 38/81
Redundancia● Infor mación no necesaria para entender el
mensaje● 60.000 productos, se sabe la lista de clientes
Mensaje de pedido
Cantidad
Número producto
Nombre del cliente Datos
05/01/17 Angel Vázquez-Patiño 39/81
Redundancia● Al desencriptar un mensaje, el destinatario debe tener la
capacidad de saber si es válido con sólo inspeccionarlo y tal vez mediante un cálculo simple
● Esta redundancia es necesaria para evitar que intrusos activos envíen basura y engañen al receptor para que desencripte la basura y realice algo con el “texto plano”
● Sin embargo, esta misma redundancia simplifica en gran medida la violación del sistema por parte de los intrusos pasivos, por lo que aquí hay un poco de preocupación
● Además, la redundancia nunca debe estar en la forma de n ceros al principio o al final de un mensaje, debido a que al ejecutar tales mensajes a través de algunos algoritmos criptográficos los resultados son más predecibles, lo que facilita el trabajo del criptoanalista. Un polinomio CRC, hash criptográfico.
05/01/17 Angel Vázquez-Patiño 40/81
Actualización● Asegurar que cada mensaje reci bido se verifique con el fin de
saber si está actualizado● Evitar que intrusos activos reproduzcan mensajes antiguos● Continuar repitiendo los mensajes válidos enviados con
anterioridad● Una de tales medidas es incluir en cada mensaje una estampa de
tiempo válida durante, digamos, 10 segundos. El receptor puede entonces guardar los mensajes unos 10 segundos y comparar los mensajes recién llegados con los anteriores para filtrar los duplicados. Los mensajes con una antigüedad mayor a 10 segundos pueden descartarse, dado que todas las repeticiones enviadas más de 10 segundos después también se rechazarán por ser demasiado viejas. Más adelante estudiaremos algunas medidas diferentes a las estampas de tiempo
05/01/17 Angel Vázquez-Patiño 41/81
Algoritmos de clave simétrica
05/01/17 Angel Vázquez-Patiño 42/81
Algoritmos de clave simétrica
05/01/17 Angel Vázquez-Patiño 43/81
Algoritmos de clave simétrica● La criptografía moderna usa las mismas ideas
básicas que la criptografía tradicional (la transposición y la sustitución), pero su énfasis es distinto. Por tradición, los criptógrafos han usado algoritmos simples
● Hoy día se hace lo opuesto: el objetivo es hacer el algoritmo de encriptación tan complicado y rebuscado que incluso si el criptoanalista obtiene cantidades enormes de texto cifrado a su gusto, no será capaz de entender nada sin la clave
05/01/17 Angel Vázquez-Patiño 44/81
Algoritmos de clave simétrica
Definición● Misma clave para encriptar y para desencriptar● Nos enfocaremos en los sistemas de cifrado en
bloques, que toman un bloque de n bits de texto plano como entrada y lo transforman mediante el uso de la clave en un bloque de n bits de texto cifrado
05/01/17 Angel Vázquez-Patiño 45/81
Algoritmos de clave simétrica
n bits
n bits
n bits
05/01/17 Angel Vázquez-Patiño 46/81
Algoritmos de clave simétricaEjemplo simple● Mensaje: VII Jornadas
● Formato binario: 111111000000
● Clave secreta: Paradigma
● Formato binario: 101010101010
● Algoritmo matemático (conocido): XOR (Suma Binaria dígito a dígito)
El emisor encripta el Documento● 111111000000
● 101010101010
● 010101101010 Documento Encriptado
05/01/17 Angel Vázquez-Patiño 47/81
Algoritmos de clave simétrica● Eventualmente si alguien escucha el mensaje 010101101010 no podrá interpretarlo ya que no conocen la Clave
● El Destinatario Recibe el Documento Encriptado y lo Desencripta utilizando la Clave
● 010101101010
● 101010101010
● 111111000000 Mensaje: VII Jornadas
05/01/17 Angel Vázquez-Patiño 48/81
Algoritmos de clave simétrica
DES: Estándar de Encriptación de Datos● 1977, gobierno Estadounidense● Con potencia de cálculo actual, ya no es
seguro en su forma original, pero aún es útil en una forma modificada
● Está sujeta a ataques de fuerza bruta● El 19 de mayo de 2005, su uso ha sido
rechazado por el gobierno de los EE.UU.
05/01/17 Angel Vázquez-Patiño 49/81
19 etapas
05/01/17 Angel Vázquez-Patiño 50/81
Algoritmos de clave simétrica
1. Transposición inicial, independiente de la clave y texto plano
2-17. Parametrizadas mediante diferentes funciones de la clave
18. 32 bits más a la izquierda con los 32 bits más a la derecha
19. Inverso exacto de la transposición
05/01/17 Angel Vázquez-Patiño 51/81
Algoritmos de clave simétrica● La salida de la derecha es el XOR a nivel de bits de la entrada izquierda y una función de la entrada derecha, además de ser la clave de esta etapa, Ki
05/01/17 Angel Vázquez-Patiño 54/81
Algoritmos de clave simétrica● En cada una de las 16 iteraciones, se usa una clave diferente. Antes de iniciarse el algoritmo, se aplica una transposición de 56 bits a la clave
● Justo antes de cada iteración, la clave se divide en dos unidades de 28 bits, cada una de las cuales se rota hacia la izquierda una cantidad de bits dependiente del número de iteración
● Ki se deriva de esta clave rotada al aplicarle otra transposición de 56 bits. En cada ronda un subgrupo de 48 bits diferente se extrae y permuta de los 56 bits
05/01/17 Angel Vázquez-Patiño 55/81
Algoritmos de clave simétrica
AES (Rijndael)
Ver el libro Redes de Computadores de Tanenbaum y Wetherall (2012)
05/01/17 Angel Vázquez-Patiño 56/81
Algoritmos de clave simétrica● 3DES (TripleDES): Reemplazo para DES. Usa
tres claves de 64 bits (la longitud de clave máxima es de 192 bits, aunque la duración real es de 56 bits que proporcionan claves de 168 bits)
● Los datos se cifran con la primera clave descifrada con la clave cifrada segundo y, finalmente, de nuevo con la tercera llave
● Esto hace que 3DES sea más lento que el original DES, pero ofrece una mayor seguridad. En lugar de tres claves puedes ser utilizadas sólo dos
05/01/17 Angel Vázquez-Patiño 57/81
Algoritmos de clave simétrica
Rijndael● también conocido como AES (Advanced Encryption
Standard). Sucesor de DES. En la actualidad, el algoritmo es adoptado por el gobierno de EEUU
● Compatible con claves de 128 bits, bits de 192 y 256 bits
RC2● Puede ser configurado para que sea más seguro o
menos seguro que el DES. Patrocinado por Lotus. Soporta claves de 8 a 128 bits. Utiliza 64 bits de forma predeterminada
05/01/17 Angel Vázquez-Patiño 58/81
Algoritmos de clave simétrica
BLOWFISH● Seguro y rápido, desarrollado por Bruce
Schneier. Se utilizan claves de 448 bits
TwoFish● Algoritmo que acepta bloques de 128K de
tamaño de clave variable de hasta 256 bits. No está patentado. No se rige por los derechos de autor y ha sido ampliamente analizado
05/01/17 Angel Vázquez-Patiño 59/81
Revisar
Sistemas de cifra con clave simétrica● https://youtu.be/46Pwz2V-t8Q
05/01/17 Angel Vázquez-Patiño 60/81
Tarea
1) AES (Rijndael)
2) 3DES (TripleDES) y DESede
3) RC2
4) BLOWFISH
5) TwoFish
6) HmacMD5
7) HmacSHA1
05/01/17 Angel Vázquez-Patiño 62/81
Algoritmos de clave pública
05/01/17 Angel Vázquez-Patiño 63/81
Algoritmos de clave pública● Debilidad de mayoría de criptosistemas: distribución de
claves● Claves de encriptación y desencriptación eran iguales o se
podían derivar una de la otra● En 1976, claves de encriptación y desencriptacioń eran
sumamente diferentes● El algoritmo de encriptación (con clave) E y el algoritmo de
desencriptación (con clave) D1) D(E(P)) = P
2) Es demasiado difícil deducir D a partir de E
3) E no se puede descifrar mediante un ataque de texto plano elegido (los intrusos pueden experimentar todo lo que quieran con el algoritmo)
05/01/17 Angel Vázquez-Patiño 64/81
Algoritmos de clave pública
Alice
● EA Público
● DA Privado
● EB(PP11)
● DA(EA(PP22)) = PP22
Bob
● EB Público
● DB Privado
● DB(EB(PP11)) = PP11
● EA(PP22)
05/01/17 Angel Vázquez-Patiño 65/81
Algoritmos de clave pública● La dificultad es encontrar algoritmos que satisfagan
las tres condiciones
RSA (Rivest, Shamir y Adleman, 1978, MIT)● Basado en principios de la teoría de los números:
factorización de números enteros● Los mensajes enviados se representan mediante
números, y el funcionamiento se basa en el producto, conocido, de dos números primos grandes elegidos al azar y mantenidos en secreto
● Es el primer y más utilizado algoritmo y es válido para cifrar y para firmar digitalmente
05/01/17 Angel Vázquez-Patiño 66/81
Algoritmos de clave pública
RSA (Rivest, Shamir y Adleman, 1978, MIT)● Aunque es el más popular no es soportado por
algunas JDK por lo que debe instalarse una librería de un tercero, e.g., BouncyCastle
● Desventaja– 1024 bits, más lento que clave simétrica (128)
05/01/17 Angel Vázquez-Patiño 67/81
Algoritmos de clave pública
Diffie-Hellman● Primer algoritmo asimétrico● Solamente se puede utilizar para intercambiar
claves simétricas● Una de las principales funciones de los
algoritmos asimétricos● Así, está muy extendido en sistemas de
internet con confidencialidad de clave simétrica
05/01/17 Angel Vázquez-Patiño 71/81
Revisar
Sistemas de cifra con clave pública● https://youtu.be/On1clzor4x4
05/01/17 Angel Vázquez-Patiño 72/81
Tarea
1) RSA
2) Diffie-Hellman
3) MD2, MD4 y MD5
05/01/17 Angel Vázquez-Patiño 73/81
Firmas digitales
05/01/17 Angel Vázquez-Patiño 74/81
Firmas digitales● Condiciones
1)Que el receptor pueda verificar la identidad del transmisor
2)Que el emisor no pueda repudiar más tarde el contenido del mensaje
3)Que el receptor no haya podido elaborar el mensaje él mismo
05/01/17 Angel Vázquez-Patiño 75/81
Firmas digitales
Firmas de clave simétrica● Autoridad central de confianza que sepa todo
● La autoridad y Alice conocen KA
05/01/17 Angel Vázquez-Patiño 76/81
Firmas digitales
Firmas de clave pública
05/01/17 Angel Vázquez-Patiño 77/81
Firmas digitales● La firma digital es un bloque de bytes que
identifican inequívocamente al emisor y al contenido del mensaje
● Las firmas digitales se utilizan comúnmente para la distribución de software, transacciones financieras y en otras áreas donde es importante detectar la falsificación y la manipulación
05/01/17 Angel Vázquez-Patiño 78/81
Firmas digitales● La firma digital consiste en un método
criptográfico que asocia la identidad de una persona o de un equipo informático, al mensaje o documento
● En función del tipo de firma, puede además asegurar la integridad del documento o mensaje
● Las firmas son especialmente útiles cuando la información debe atravesar redes sobre las que no se tiene control directo y, en consecuencia, no existe posibilidad de verificar de otra forma la procedencia de los mensajes
05/01/17 Angel Vázquez-Patiño 79/81
Firmas digitales● Existen varios métodos para hacer uso de la
firma digital, uno de ellos es el siguiente:● «quien envía el mensaje lo codifica con su
clave privada. Para descifrarlo, sólo puede hacerse con la clave pública correspondiente a dicha persona o institución. Si efectivamente con dicha clave se descifra es señal de que quien dice que envió el mensaje, realmente lo hizo»
05/01/17 Angel Vázquez-Patiño 80/81
Firma digital formada encriptando con la clave privada del emisor
● Firma Digital y Autentificación● E: Encriptar / D: Desencriptar.● KP: Encriptación utilizando la Clave Privada.● KV: Encriptación utilizando la Clave Pública.● M: Mensaje.
05/01/17 Angel Vázquez-Patiño 81/81
Tarea
1) Encriptación en gestor de correos electrónicos● Por ejemplo, Mozilla Thunderbird
05/01/17 Angel Vázquez-Patiño 82/81
Conceptos y términos importantes
05/01/17 Angel Vázquez-Patiño 83/81
Conceptos y términos importantes● Principio de Kerckhoff● Intruso activo vs intruso pasivo● Clave pública vs clave simétrica● Firma digital● Teoría de la información
05/01/17 Angel Vázquez-Patiño 84/81
Información adicional
Intypedia, Enciclopedia de la Seguridad de la Información● www.intypedia.com
Introducción a la teoría de la información● https://goo.gl/Q2zeYt
Fundamentos básicos de la Teoría de la Información● https://goo.gl/hFdQr9
05/01/17 Angel Vázquez-Patiño 85/81
Referencias● Tanenbaum, A.S., Wetherall, D.J., 2012. Redes
de computadoras, 5th ed. Pearson Educación, México D.F., México.
● Kahn, D., 1996. The codebreakers, Rev. ed. ed. Scribner, New York.
Recommended