Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso SISeccion 4
Curso SISeccion 4
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Criptografa
Vctor Bravo, Antonio Araujo1
1 Fundacin
CENDITEL, 2008
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Licencia de Uso
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Agenda
1 2
Criptografa Clases de Cifrado Algoritmos Simtricos DES 3DES AES Algoritmos Asimtricos RSA DSA Curva Elptica Firma electrnica y algoritmos Funciones de una va Firma electrnica Vericar rma electrnica Notas nales sobre rma electrnica Protocolos SSL, TLS
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Tcnicas Criptogrcas Criptografa Se pretende ocultar la informacin contenida en un mensaje; el mensaje mismo est accesible a cualquiera. Permiten la autenticacin, rmas digitales, y vericacin de la integridad de un mensaje especco. Cifrar documento algoritmo claves
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Tcnicas Criptogrcas Criptografa Cifrar o descrifrar informacin (digital) utilizando tcnicas matemticas. Las matemticas son tiles y fundamentales!
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Criptosistema En general: un conjunto de algoritmos necesarios para implementar una forma particular de cifrado y descrifrado. Tcnicamente: una quntupla (m,C,K,E,D), donde: m mensajes sin cifrar (texto plano) C posibles mensajes cifrados K claves que se pueden emplear en el criptosistema E transformaciones de cifrado D transformaciones de descifrado
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Tcnicas Criptogrcas Se reconocen varias clases de cifrado: Cifrado por ujo Cifrado por bloques
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Clases de Cifrado
Cifrado por ujo Conocido como Stream cipher Realiza el proceso de cifrado convirtiendo el texto plano en texto cifrado bit a bit. Utilizan claves de tamano pequeo (128 bits). La transformacin sobre los bits vara. RC4 es uno de los cifrados por ujo ms utilizado. Se utiliza en aplicaciones donde la longitud del texto plano no es conocida. Excepcionalmente ms rpido que el cifrado por bloques.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Clases de Cifrado
Cifrado por bloques Conocido como block cipher. Realiza el proceso de cifrado sobre bloques de texto plano de longitud ja. La transformacin sobre los bits no vara; siempre es la misma. DES y AES son ejemplos de cifrado por bloques.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Clases de Cifrado
De acuerdo al tipo de clave que utiliza se tiene: Cifrado Simtrico (criptografa simtrica) Cifrado Asimtrico (criptografa asimtrica)
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Clases de Cifrado
Cifrado Simtrico Se utiliza una sola clave para cifrar/descifrar (clave privada). Los extremos que se comunican debe conocer la clave privada. Considerablemente importante el intercambio de la clave privada.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Clases de Cifrado
Cifrado Asimtrico Se utiliza una par de claves para cifrar/descifrar. Lo que se cifra con una clave se descifra con la otra. Utilizan longitudes de claves mayores que cifrado simtrico. Utilizan funciones de una va. Ms lento que el cifrado simtrico.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Clases de Cifrado
Cifrado Hbrido
Combinacin de cifrado simtrico con asimtrico. Uso de cifrado asimtrico para compartir la clave secreta simtrica. Uso de cifrado simtrico para cifrar el mensaje. La clave simtrica se cambia en el tiempo para cada sesin. Velocidad en la transmisin con cifrado simtrico.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Algoritmos Simtricos
Criptografa DES
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Desarrollado en los aos 70. Tamao de clave 56 bits. Genera bloques de cifrado de 64 bits. Estuvo reconocido como estndar en el FIPS PUB 46 No se utiliza en aplicaciones dada su pequea longitud de clave. versin mejorada: 3DES
Criptografa 3DES
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Surge como respuesta ante ataques de fuerza bruta de DES. Utiliza tres (3) claves en su operacin. Tamao de clave de 128 bits. Genera bloques de cifrado de 64 bits.
Criptografa AES
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Conocido como Rijndael. Algoritmo de cifrado por bloques. Tamao de clave 128, 192, 256 bits. Genera bloques de cifrado de 128 bits.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Algoritmos Asimtricos
Criptografa RSA
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Creado en 1977 por Rivest, Shamir y Adelman y publicado en 1997. Se basa en la dicultad de factorizar nmeros primos muy grandes. Es considerado uno de los algoritmos criptogrcos ms exitoso de clave pblica/privada. Lentitud con respecto a algoritmos simtricos. Longitudes de clave mucho mayor que en algoritmos simtricos. Utilizado en la rma electrnica y cifrado. Tamaos de clave: 512, 1024, 2048, 4096 bits.
Criptografa RSA
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
El receptor potencial elige dos nmeros primos (p y q), se calcula z = p q El receptor potencial calcula = (p 1) (q 1) y elige n tal que mcd(n, ) = 1; n suele ser primo El par (n, z) forman la clave pblica El receptor potencial calcula el nmero s tal 0 < s < y satisface ns mod = 1; el exponente s es la clave privada.
3 4
Criptografa RSA
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Criptografa RSA
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
seleccionar p y q; p = 23 q = 31 calcular z = p q = 713 calcular = (p 1) (q 1) = 660 escoger 1 < n < ; n = 29 calcular s tal que: ns mod = 1; 29 569 mod 660 = 1
cifrar c = 57229 mod 713 = 113 descifrar a = 113569 mod 713 = 572
Criptografa DSA
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Algoritmo de Firma Digital (Digital Signature Algorithm) Reconocido como un estndar FIPS del NIST (USA). Patentado en USA. Slo puede ser utilizado en rma electrnica (no cifrado). Tamaos de clave: 1024 bits.
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Nacimiento a mediados de los 80. Siguente algoritmo asimtrico ms reconocido despus de RSA. Util en aplicaciones donde la memoria, el ancho de banda y el poder computacional son limitados. Utilizan tamaos de claves ms pequeos que RSA: clave de 160 bits de curva elptica equivale a 1024 bits en RSA. Ms rpidos que RSA para rmar y descifrar, pero ms lentos para vericar rma y cifrar.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Funciones de una va
La criptografa asimtrica permite identicar al emisor y al receptor del mensaje. Para identicar el mensaje propiamente dicho se utilizan las llamadas funciones hash. Caractersticas: entrada variable y salida de longitud ja (128 160 bits). no se puede generar la salida sin la misma entrada. dos entradas no deberan producir una misma salida. cualquier cambio en la entrada, modica la salida.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Funciones de una va
Producen una huella digital (ngerprint) o resea de tamao jo a partir de datos de longitud variable. MD5 (longitud de 128 bits) SHA-1 (longitud de 160 bits) SHA-256 (longitud de 256 bits) SHA-512 (longitud de 512 bits)
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Firma electrnica
Firma electrnica
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Firma electrnica
La rma electrnica es un mtodo criptogrco que asegura la integridad del documento rmado as como la identidad del rmante.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Firma electrnica
La rma electrnica es legalmente equivalente a la rma autgrafa? Podra decirse que s, pero debe estar validada por una Autoridad de Certicacin (Tercero de conanza) que expida un certicado digital que diga que la rma es vlida.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Firma electrnica
Firmar electrnicamente
La rma electronica es el resultado de aplicar cierto algoritmo matematico, denominado funcin hash, a su contenido. Esta funcin asocia un valor dentro de un conjunto nito (generalmente los nmeros naturales) a su entrada. Cuando la entrada es un documento, el resultado de la funcin (resena) es un nmero que identica casi unvocamente al texto. Si se adjunta ste nmero al texto de manera cifrada con el algortimo asimtrico usando la clave privada del que rma.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Firma electrnica
Firmar electrnicamente
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
El destinatario debe aplicar de nuevo la funcin hash al texto en claro y comparar su resultado (resena) con la que ha recibido, que se tiene que descifrar usando la clave pblica del rmante. Si ambas son iguales, tiene la seguridad de que el texto no fue modicado una vez que fue rmado y que lo envi la persona poseedora de la clave privada que rm el texto.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Notas nales
Firma no vlida falla de autenticidad/integridad Firmar electrnicamente calcular hash y cifrar! Se pueden rmar claves (integridad) Se puede rmar todo!
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Permiten asegurar las conexiones entre extremos a nivel de transporte. Ejemplos: SSL TLS
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Protocolo SSL
Protocolo de capa de socket seguro. Propuesto por Netscape. Versin actual del protocolo: 3.0 Utilizacin de certicados digitales. Autenticacin de servidores y clientes.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Protocolo SSL
Objetivos del protocolo SSL: Seguridad Criptogrca: establecimiento de conexin segura entre partes Interoperabilidad Extensibilidad Eciencia relativa
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Protocolo SSL
Ubicacin de SSL
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Protocolo SSL
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Protocolo de Seguridad de la Capa de Transporte. Estndar del IETF, desarrollado a partir de SSL. Diferencias muy pequeas con SSL. Versin actual del TLS: 1.1 (propuesta la 1.2 en marzo de 2008).
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
El protocolo TLS sigue tres (3) fases en su operacin bsica: Negociacin entre los extremos para especicar soporte de algoritmos. Intercambio de claves y autenticacin. Cifrado simtrico y autenticacin de mensaje.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
OpenSSL: La herramienta OpenSSL es un conjunto de herramientas de cdigo abierto que implementan los protocolos SSL (v2/v3) y TLS (v1). Se encuentra disponible para distintas plataformas. Versin actual: 0.9.8g Se puede instalar desde los cdigos fuentes o desde paquetes precompilados para distintas distribuciones Linux. http://www.openssl.org
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
OpenSSL: La herramienta Se incluye el programa openssl que permite realizar varias operaciones criptogrcas desde una terminal. Se puede utilizar para:
Crear claves RSA, DSA, DH. Crear certicados X509, solicitudes de rma de certicados (CSR) y listas de certicados revocados (CRL). Calcular reseas de mensajes Cifrar y descifrar Manejar correo rmado o cifrado S/MIME.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Funciones hash y reseas Recuerdan lo que es una funcin hash? Recuerdan algunos algoritmos utilizados para obtener reseas? TIP: puede usar el comando man para obtener ayuda.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Funciones hash y reseas (dgst) Calcular el hash SHA1 para un archivo llamado archivo.txt:
openssl dgst -sha1 archivo.txt
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Funciones hash y reseas (dgst) Calcular el hash SHA1 para un archivo llamado archivo.txt:
openssl dgst -sha1 archivo.txt Editar archivo.txt y agregar un caracter al inicio del archivo. Calcular de nuevo el hash de archivo.txt y comparar.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Funciones hash y reseas (dgst) Calcular el hash SHA1 para un archivo llamado archivo.txt:
openssl dgst -sha1 archivo.txt Editar archivo.txt y agregar un caracter al inicio del archivo. Calcular de nuevo el hash de archivo.txt y comparar. Discutir el resultado.
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Cifrado simtrico (enc) Cifrar el archivo llamado archivo2.txt utilizando el algoritmo 3DES
openssl enc -des3 -salt -in archivo2.txt -out cifrado1.bin
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Cifrado simtrico (enc) Cifrar el archivo llamado archivo2.txt utilizando el algoritmo 3DES
openssl enc -des3 -salt -in archivo2.txt -out cifrado1.bin Alguna observacin al ejecutar el comando?
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Cifrado simtrico (enc) Cifrar el archivo llamado archivo2.txt utilizando el algoritmo 3DES
openssl enc -des3 -salt -in archivo2.txt -out cifrado1.bin Alguna observacin al ejecutar el comando? Puede ver el contenido del archivo cifrado1.bin?
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Cifrado simtrico (enc) Cifrar el archivo llamado archivo2.txt utilizando el algoritmo 3DES
openssl enc -des3 -salt -in archivo2.txt -out cifrado1.bin
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Criptografa de clave pblica Generar una clave RSA de 1024 bits
openssl genrsa -out miclaveprivada.pem 1024
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Criptografa de clave pblica Generar una clave RSA de 1024 bits
openssl genrsa -out miclaveprivada.pem 1024 pruebe: openssl rsa -in miclaveprivada.pem -noout -text
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Criptografa de clave pblica Generar una clave RSA de 1024 bits
openssl genrsa -out miclaveprivada.pem 1024
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Criptografa de clave pblica Generar una clave RSA de 1024 bits
openssl genrsa -out miclaveprivada.pem 1024
Generar una clave RSA de 1024 bits y cifrarla con el algoritmo 3DES
openssl genrsa -out miclave2.pem -des3 1024
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Criptografa de clave pblica Generar una clave RSA de 1024 bits
openssl genrsa -out miclaveprivada.pem 1024
Generar una clave RSA de 1024 bits y cifrarla con el algoritmo 3DES
openssl genrsa -out miclave2.pem -des3 1024
Cifrar archivo3.txt usando el algoritmo 3DES con la clave publica RSA generada (miclavepublica.pem)
openssl rsautl -encrypt -pubin -inkey miclavepublica.pem -in archivo3.txt -out cifrado2.txt
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Criptografa de clave pblica Generar una clave RSA de 1024 bits
openssl genrsa -out miclaveprivada.pem 1024
Generar una clave RSA de 1024 bits y cifrarla con el algoritmo 3DES
openssl genrsa -out miclave2.pem -des3 1024
Cifrar archivo3.txt usando el algoritmo 3DES con la clave publica RSA generada (miclavepublica.pem)
openssl rsautl -encrypt -pubin -inkey miclavepublica.pem -in archivo3.txt -out cifrado2.bin
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Criptografa de clave pblica Firmar archivo3.txt con la clave privada (miclaveprivada.pem)
openssl rsautl -sign -inkey miclaveprivada.pem -in archivo3.txt -out firma.bin
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Ejercicios: Criptografa de clave pblica Firmar archivo3.txt con la clave privada (miclaveprivada.pem)
openssl rsautl -sign -inkey miclaveprivada.pem -in archivo3.txt -out firma.bin
Criptografa
Algoritmos Simtricos
Algoritmos Asimtricos
OpenSSL
Preguntas, comentarios.