Está en la página 1de 68

Fundamentos de la

Seguridad Informática
Módulo V
Criptografía
V. Criptografía
a. Conceptos generales
b. Métodos criptográficos
c. Certificados digitales
Conceptos generales
Criptología

La Criptología (del griego


krypto: “oculto” y logos:
“discurso”) es la disciplina
científica que se dedica al
estudio de la escritura
secreta, es decir, estudia
los mensajes que,
procesados de cierta
manera, se convierten en
difíciles o imposibles de leer
por entidades no
autorizadas.
Campos de la Criptología

La Criptología esta dividida en varios campos, cada uno


con un enfoque de estudio particular:
• Criptografía
• Criptoanálisis
• Esteganografía
• Estegoanálisis
Criptografía

Criptografía (del griego krypto: “oculto” y graphos:


“escribir”) tradicionalmente se ha definido como la parte
de la criptología que se ocupa de las técnicas que
alteran las representaciones lingüísticas de los
mensajes, mediante técnicas de cifrado o codificado,
para hacerlos incomprensibles a los intrusos (lectores
no autorizados) que intercepten esos mensajes.
Por tanto el único objetivo de la criptografía era
conseguir la confidencialidad de los mensajes.
Criptoanálisis

Criptoanálisis (del griego kryptós:


"escondido" y analýein:
"desatar") es la parte de la
criptología que se dedica al
estudio de sistemas criptográficos
con el fin de encontrar
debilidades en los sistemas y
romper su seguridad sin el
conocimiento de información
secreta. A las personas que se
dedican al criptoanálisis se llaman
criptoanalistas.
Esteganografía
Esteganografía (del griego
steganos: “cubierto” u
“oculto” y graphos:
“escritura”), es la parte de la
criptología en la que se
estudian y aplican técnicas
que permiten el ocultamiento
de mensajes u objetos,
dentro de otros, llamados
portadores, de modo que no
se perciba su existencia.
Es decir, se trata de ocultar
mensajes a la vista de todos.
¿Conoces algún caso donde se aplique
la esteganografía?
Estegoanálisis

Es la disciplina dedicada al estudio de la detección de


mensajes ocultos usando esteganografía. Como
analogía, el estegoanálisis es a la esteganografía lo que
el criptoanálisis es a la criptografía.
Por otra parte, a diferencia del criptoanálisis donde es
necesario descifrar el mensaje para considerar roto un
criptosistema, en el caso del estegoanálisis basta con
ser capaz de detectar la existencia de un mensaje
oculto para considerar el sistema roto.
Terminología

Texto en claro o texto plano (plain text): El mensaje


que se cifra o la manera natural en que viaja un
mensaje.
Cifrado: El cifrado es la práctica de codificar y
decodificar datos. Cuando los datos están cifrados, se
les ha aplicado un algoritmo para codificarlos, de
manera que dejan de estar en su formato original.
Criptograma o texto cifrado: El mensaje resultante una
vez que se ha producido el cifrado, es decir, el mensaje
cifrado.
Cifrado simétrico

Se usa una misma clave para cifrar y descifrar los


mensajes entre el emisor y el receptor. Las dos partes
que se comunican acuerdan cual será la clave de
cifrado a utilizar. Una vez que ambas partes tienen
acceso a esta clave, el remitente cifra un mensaje
usando la clave, lo envía al destinatario, y éste lo
descifra con la misma clave.
Cifrado asimétrico
Emplea dos llaves diferentes en cada uno de los
extremos de la comunicación. Cada usuario tendrá una
clave pública y otra privada.
La clave pública sirve para cifrar el mensaje y esta será
accesible a todos los usuarios del sistema de
comunicación. La clave privada tendrá que ser protegida
y guardada por el propio usuario, será secreta y no la
deberá conocer nadie ya que esta será usada para
descifrar el mensaje.
Los métodos criptográficos garantizan que esa pareja de
claves sólo se puede generar una vez, de modo que se
puede asumir que no es posible que dos personas hayan
obtenido casualmente la misma pareja de claves.
Nonrepudiation (no repudio)

No repudio es cuando se proporcionan pruebas de la


integridad y origen de los datos. Una autentificación
que con un alto aseguramiento pueda ser reafirmado
como genuino.
El no repudio en origen garantiza que la persona que
envía el mensaje no puede negar que es el emisor del
mismo, ya que el receptor tendrá pruebas del envío.
El no repudio en destino garantiza que el receptor no
puede negar que recibió el mensaje, porque el emisor
tiene pruebas de la recepción del mismo.
Firma Digital
La validación de identificación y autenticidad de
muchos documentos legales, financieros y de otros
tipos se determina por la presencia o ausencia o bien
de una firma manuscrita autorizada o bien de una
firma digital.
La firma digital permite que una parte pueda enviar un
mensaje “firmado” a otra parte, con las propiedades
de autentificación (integridad, autenticidad) y no
repudio.
La clave de la firma digital estriba en pedir
obligatoriamente un acuse de recibo.
Únicas: Las firmas deben poder ser generadas solamente por el
firmante y por lo tanto infalsificable. Por tanto la firma debe
depender del firmante.
Infalsificables: Para falsificar una firma digital el atacante tiene
que resolver problemas matemáticos de una complejidad muy
elevada, es decir, las firmas han de ser computacionalmente
seguras. Por tanto la firma debe depender del mensaje en sí.
Verificables: Las firmas deben ser fácilmente verificables por
los receptores de las mismas y, si ello es necesario, también por
los jueces o autoridades competentes.
Innegables: El firmante no debe ser capaz de negar su propia
firma.
Viables: Las firmas han de ser fáciles de generar por parte del
firmante.
Hashing
Una funciona hash o
función resumen tiene
como objetivo el generar
una secuencia de valores
de longitud fija mediante
un algoritmo o función
matemática tomando como
referencia una cadena de
valores de entrada.
Algunos ejemplos de hash
serian MD y SHA.
Cuando un usuario envía un mensaje seguro, se
genera un hash del mismo que se encripta y es
enviado junto con todo el mensaje.
Cuando este mensaje es recibido por el destinatario, lo
desencripta junto con el hash y vuelve a generar un
hash sobre el mensaje desencriptado.
Si en la comparación de hashes (remitente vs
destinatario) estos son idénticos, se asume que la
transmisión del mensaje fue segura ya que el mismo
no fue alterado.
Perfect Forward Secrecy (PFS)
Es la característica de un sistema de encripcion en la
que automáticamente realiza el cambio de llave para
encriptar y desencriptar la información.
Esto significa que si un atacante logra obtener una
llave para desencriptar la información, solo podrá
desencriptar una parte de ella ya que la información
que fue transmitida con anterioridad fue encriptada
con llaves diferentes.
Este cambio de llave puede tener lugar en cada
mensaje de texto de un chat, cada llamada telefónica
o cada que se recarga una página web.
Métodos Criptográficos
Message Digest (MD)
Este hash se encarga de convertir la información en
una secuencia de valores de salida con una longitud
que va entre los 128 bits y los 256 bits.
Algunas características que podemos mencionar:
Cada bit de la salida de la función MD está
potencialmente influenciado por cada bit de la entrada
de la función.
Si se modifica cualquier bit de la entrada de la
función, cada bit de salida tiene un 50% de
probabilidad de cambiar.
Dado un archivo de entrada y su MD
correspondiente, debería ser computacionalmente
inviable encontrar otro archivo con el mismo valor de
resumen de mensaje.
Existen varias versiones para el hash MD:
Nunca fue publicado para uso libre ya que fue un protocolo propietario.
MD
Desarrollado por Ronald Rivest en 1989 para las computadoras de 8 bits.
MD2 Actualmente se usa pero no en aplicaciones que requieren gran nivel de
seguridad.
No fue publicado.
MD3
Reemplazo a MD2 en 1990 y se utilizo para las computadoras de 32 bits.
MD4 Fue considerado mucho mas rápido que MD2 pero también se le
encontraron vulnerabilidades que lo hacen obsoleto hoy en día.
Reemplazo a MD4 en 1992 también para computadoras de 32 bits. No es
MD5 tan rápido como MD4 pero si es mas seguro.
Secure Hash Algorithm (SHA)

Fue desarrollado por la NSA (National Security Agency)


junto con NIST (National Institut of Standards and
Technology) y procesa los datos de entrada en bloques
de 512 bits, pero a diferencia del MD5 genera un
compendio de mensaje de 160 bits (20 bytes).
La primera versión del algoritmo se creó en 1993 con
el nombre de SHA, aunque en la actualidad se la
conoce como SHA-0 para evitar confusiones con las
versiones posteriores.
La segunda versión del sistema, publicada con el
nombre de SHA-1, fue publicada en 1995. Este
algoritmo produce un hash de salida de 160 bits.
La tercera versión publicada en 2001 es llamada SHA-
2 abarca diversos tamaños para el hash de salida:
SHA-224, SHA-256, SHA-384 y SHA-512
La cuarta versión publicada en 2012 es llamada SHA-3,
sin embargo, su uso aun no es muy común debido a
que no se han encontrado problemas con SHA-2.
Data Encryption Standard (DES)

Método para cifrar información, escogido como un


estándar FIPS (Estándares Federales de Procesamiento
de la Información) en los Estados Unidos en 1976, y
cuyo uso se ha propagado ampliamente por todo el
mundo.
El algoritmo fue controvertido al principio, con algunos
elementos de diseño clasificados, una longitud de clave
relativamente corta, y las continuas sospechas sobre la
existencia de alguna puerta trasera para la National
Security Agency (NSA).
Hoy en día, DES se considera inseguro para muchas
aplicaciones. Esto se debe principalmente a que el
tamaño de clave de 56 bits es corto; las claves de DES
se han roto en menos de 24 horas. Existen también
resultados analíticos que demuestran debilidades
teóricas en su cifrado, aunque son inviables en la
práctica.
Triple Data Encryption Standard
(3DES)
Este algoritmo se basa en el algoritmo DES con la
particularidad que hace un cifrado triple, es decir, lo
aplica 3 veces con 3 claves distintas, por lo que resulta
mucho mas seguro.
Su funcionamiento es de 3 pasos en los cuales usa 3
claves diferentes (K1, K2 y K3) para cifrar-descifrar-
cifrar la información. Encripta con K1, desencripta con
K2 y vuelve a encriptar con K3.
Debido a esto, la longitud de la clave pasa de 56 bits a
168 bits.
Advanced Encryption Standard (AES)
Este algoritmo también es conocido como Rijndael ya
que fue desarrollado por los criptologos belgas Joan
Daemen y Vincent Rijmen.
El AES fue anunciado por el Instituto Nacional de
Estándares y Tecnología (NIST) como FIPS (Estándares
Federales de Procesamiento de la Información) de los
Estados Unidos el 26 de noviembre de 2001 después
de un proceso de estandarización que duró 5 años.
Desde 2006, es uno de los algoritmos más populares
usados en criptografía simétrica.
AES utiliza 3 tamaños de llave para el cifrado de la
información: AES-128, AES-192 y AES-256
Los datos son cifrados y descifrados en bloques de 128
bits utilizando claves criptográficas de 128, 192 y 256
bits, respectivamente.
Este algoritmo de cifrado esta desplazando al
algoritmo 3DES debido a que puede llegar a ser hasta
6 veces mas rápido y al día de hoy no se ha
encontrado ninguna vulnerabilidad en el mismo.
Diffie-Hellman (DH)
Este algoritmo fue creado por Whitfield Diffie y Martin
Hellman en el año de 1976 y permite acordar una
clave secreta entre dos máquinas, a través de un canal
inseguro y enviando únicamente dos mensajes.
La clave secreta resultante no puede ser descubierta
por un atacante, aunque éste obtenga los dos
mensajes enviados por el protocolo. La principal
aplicación de este protocolo es acordar una clave
simétrica con la que posteriormente cifrar las
comunicaciones entre dos máquinas.
El sistema se basa en la idea de que dos interlocutores
pueden generar conjuntamente una clave compartida
sin que un intruso, que esté escuchando las
comunicaciones, pueda llegar a obtenerla.
Para ello se eligen dos números públicos y, cada
interlocutor, un número secreto. Usando una fórmula
matemática, que incluye la exponenciación, cada
interlocutor hace una serie de operaciones con los dos
números públicos y su número secreto. A continuación
los interlocutores se intercambian los resultados de
forma pública.
En teoría revertir esta función es tan difícil como
calcular un logaritmo discreto (un sextillón de veces
más costosa que la exponenciación usada para
transformar los números).
A continuación ambos interlocutores utilizan por
separado una fórmula matemática que combina los dos
números transformados con su número secreto y al
final los dos llegan al mismo número resultado, que
será la clave compartida.
Actualmente se conoce que es vulnerable a ataques de
hombre en medio (MitM): un atacante podría situarse
entre ambas máquinas y acordar una clave simétrica
con cada una de las partes, haciéndose pasar por el
host A de cara al host B y viceversa. Una vez
establecidas las 2 claves simétricas, el atacante haría
de puente entre los 2 hosts, descifrando toda la
comunicación y volviéndola a cifrar para enviársela al
otro host.
Existen varios grupos de DH, los miembros de grupos más altos
son más seguros, pero se necesita más tiempo para computar la
clave:
Grupo DH 1: grupo de 768 bits
Grupo DH 2: grupo de 1024 bits
Grupo DH 5: grupo de 1536 bits
Grupo DH 14: grupo de 2048-bit
Grupo DH 15: grupo de 3072-bit
Grupo DH 19: grupo de 256-bit de curva elíptica*
Grupo DH 20: grupo de 384 bits de curva elíptica*
*Variante de la criptografía asimétrica o de clave pública basada
en las matemáticas de las curvas elípticas.
https://cifraronline.com/
RSA
El algoritmo fue creado en 1977 por Ron Rivest, Adi
Shamir y Leonard Adleman, del Instituto Tecnológico
de Massachusetts (MIT). Las letras RSA son las
iniciales de sus apellidos.
RSA es un algoritmo de cifrado de clave pública que
aprovecha la complejidad para factorizar un número
compuesto.
La fortaleza del algoritmo RSA se basa en la
complejidad de cálculo que tiene encontrar los dos
factores primos de un número compuesto muy grande.
Multiplicar dos números primos grandes, es una
operación poco costosa computacionalmente y que se
puede realizar rápidamente. En sentido contrario,
encontrar los factores primos de un número es una
operación que a medida que se incrementa el tamaño
del número aumenta los requerimientos de hardware
para su cálculo además de aumentar el tiempo
requerido para su cálculo.
Por ejemplo, sin utilizar ningún tipo de ayuda
electrónica, cuanto tiempo demoras en calcular el
producto 11 por 31. Y ahora, cuanto se demora en
hallar los factores primos de 221.
Con el algoritmo RSA los valores de los factores primos
deben ser mínimo de 155 dígitos, lo que
aproximadamente son unos 512 bits.
El producto de estos factores tiene alrededor de 310
dígitos, que representa 1024 bits, lo cual puede dar
una idea de lo complejo que puede llegar volverse su
factorización en materia de recursos tecnológicos.
Dado el crecimiento en capacidad de cómputo, donde
se puede encontrar por ejemplo clústeres de 25 GPU
que descifran contraseñas de 8 caracteres en 5.5
horas, se ha vuelto frecuente en algunas aplicaciones
utilizar como factores números de mínimo 1024 bits.
No repudio Firmas digitales

Integridad MD y SHA

Cifrado DES, 3DES, AES, RSA

Intercambio de DH
claves
Certificados Digitales
Certificado Digital
Los certificados digitales son
un mecanismo de seguridad
que combina alta tecnología
y procedimientos para
garantizar el origen de la
información y la emisión de
un mensaje, así como su
privacidad y si sufrió
modificaciones o robo
durante su desplazamiento
en las redes.
Esta información, avalada por una Autoridad de
Confianza, acerca de una organización que se presenta
como confiable y garantiza a sus clientes o visitantes
web que las transacciones realizadas en su sitio son
seguras.
Una definición más técnica puede explicarlos como una
firma digital estructurada con técnicas de cifrado o
criptográficas para codificar matemáticamente los
mensajes y evitar que sean alterados, interceptados o
robados, ya que se utilizan para establecer una
conexión encriptada entre un navegador de internet
(computadora de un usuario) y el servidor (Sitio Web).
Certification Authority (CA)
Se trata de una entidad de confianza, responsable de
emitir y revocar los certificados, utilizando en ellos la
firma electrónica, para lo cual se emplea la criptografía
de clave pública.
Una autoridad de certificación expide los certificados
digitales, que ya contienen las identificaciones
numéricas y las contraseñas que se necesitan, poniendo
a disposición el procedimiento de verificación para
validar el certificado proporcionado.
Los servicios de una autoridad de certificación, son
principalmente utilizados para garantizar la seguridad
de las comunicaciones digitales vía el protocolo SSL
(Secure Sockets Layer) o TLS (Transport Layer
Security), utilizados en las comunicaciones web (HTTPS)
o las comunicaciones de emails (SMTP, POP3, IMAP).
X.509
Este formato fue publicado oficialmente en 1998 y
asume un sistema jerárquico estricto de autoridades
certificantes (ACs) para emisión de certificados.
Es un estándar UIT-T (Sector de Normalización de las
Telecomunicaciones) para infraestructuras de claves
públicas (Public Key Infrastructure o PKI). X.509
especifica, entre otras cosas, formatos estándar para
certificados de claves públicas y un algoritmo de
validación de la ruta de certificación.
Elementos del certificado X.509

Versión: El campo de versión contiene el número de


versión del certificado codificado. Los valores aceptables
son 1, 2 y 3.
Número de serie del certificado: Este campo es un
entero asignado por la autoridad certificadora. Cada
certificado emitido por una CA debe tener un número de
serie único.
Identificador del algoritmo de firmado: Este campo
identifica el algoritmo empleado para firmar el
certificado (como por ejemplo el RSA o el DSA).
Nombre del emisor: Este campo identifica la CA que ha
firmado y emitido el certificado.
Periodo de validez: Este campo indica el periodo de
tiempo durante el cual el certificado es válido y la CA
está obligada a mantener información sobre el estado
del mismo.
Nombre del sujeto: Este campo identifica la identidad
cuya clave pública está certificada en el campo
siguiente. El nombre debe ser único para cada entidad
certificada por una CA dada, aunque puede emitir más
de un certificado con el mismo nombre si es para la
misma entidad.
Información de clave pública del sujeto: Este campo
contiene la clave pública, sus parámetros y el
identificador del algoritmo con el que se emplea la
clave.
Identificador único del emisor: Este es un campo
opcional que permite reutilizar nombres de emisor.
Identificador único del sujeto: Este es un campo
opcional que permite reutilizar nombres de sujeto.
Pretty Good Privacy (PGP)
PGP fue diseñado y desarrollado por Phil Zimmermann
en 1991 y es un criptosistema híbrido que combina
técnicas de criptografía simétrica y criptografía
asimétrica.
Esta combinación permite aprovechar lo mejor de cada
uno: El cifrado simétrico es más rápido que el
asimétrico o de clave pública, mientras que este, a su
vez, proporciona una solución al problema de la
distribución de claves en forma segura y garantiza el no
repudio de los datos y la no suplantación
Utiliza cuatro procesos distintos de cifrado (hashing,
compresión de datos, cifrado de clave simétrica y
cifrado de clave pública) que garantizan la seguridad
desde el momento en que cifras un archivo, mensaje o
documento y lo descifras.
En el proceso de cifrado, se comprime el documento o
archivo y se genera una clave aleatoria. Al enviar el
paquete de datos se adjunta una clave cifrada con la
clave del receptor, que en el momento de descifrar el
archivo o documento, realiza el proceso inverso.
Security Assertion Markup Language
(SAML)
El Lenguaje de marcado para confirmaciones de seguridad
es un estándar abierto que permite que las credenciales
de seguridad sean compartidas por múltiples
computadoras a través de una red. Describe un marco que
permite que una computadora realice algunas funciones
de seguridad en nombre de otra o más computadoras:
Autenticación: Determinar que los usuarios son quienes
dicen ser.
Autorización: Determinar si los usuarios tienen derecho
a acceder a ciertos sistemas o contenidos.
Usualmente las partes que intervienen en el intercambio
son un proveedor de identidad (entidad que dispone de la
infraestructura necesaria para la autenticación de los
usuarios) y un proveedor de servicio (entidad que concede
a un usuario el acceso o no a un recurso).
La especificación SAML define tres roles:
Principal
Proveedor de identidad
Proveedor de servicio.
En un escenario típico, el rol principal solicita un servicio al
proveedor de servicios, quien a su vez solicita y obtiene en
caso de éxito, una confirmación de identidad desde el
proveedor de identidad. Teniendo como base la
confirmación recibida, el proveedor de servicio puede
tomar decisiones acerca del acceso autorizado a un
usuario.

También podría gustarte