Está en la página 1de 114

DIPLOMADO DE CIBERSEGURIDAD

Módulo 7 – Criptografía
Fausto R. Richardson Hernández
Capitán de Fragata, ARD
Contenido del Diplomado

1.Operaciones de Ciberseguridad
2.Manejo Avanzado de Windows en
Operaciones de Ciberseguridad
3.Manejo de GNU / Linux en Operaciones de
Ciberseguridad
4.Protocolos de Red y Servicios
5.Seguridad y Protección de la Infraestructura
de Redes
6.Tecnologías de Seguridad
7.Criptografía
8.Análisis Forense Digital
Módulo VII
Criptografía
PRINCIPALES METAS DE LA CIBERSEGURIDAD

➢ Confidencialidad
Asegura que la data solo pueda ser vista por usuarios autorizados.
La Encriptación protege la confidencialidad de la data.

➢ Integridad
Provee las garantías de que la data no ha sido modificada. La
Función Hash asegura que la data ha mantenido su integridad.

➢ Disponibilidad
Se refiere a usuarios autorizados que pueden tener acceso a los
sistemas, las redes, y la data que necesitan diariamente para
poder realizar sus tareas.
PRINCIPALES METAS DE LA CIBERSEGURIDAD

➢ Confidencialidad
Asegura que la data solo pueda ser vista por usuarios autorizados.
La Encriptación protege la confidencialidad de la data.

➢ Integridad
Provee las garantías de que la data no ha sido modificada. La
función Hash asegura que la data ha mantenido su integridad.

En este módulo estaremos trabajando


con estos dos conceptos.
BREVE HISTORIA DE LA CRIPTOGRAFÍA
DEFINICIONES DE ACUERDO A LA RAE
CIFRADO DE JULIO CÉSAR
HISTORIA USO DE LA CRIPTOGRAFÍA EN LA SEGUNDA GUERRA MUNDIAL
➢ Cuando nos referimos a la criptografía como una forma
de protección, nos referimos al concepto de criptografía
aplicada a enlaces de comunicación, dispositivos de
almacenamiento, software y mensajes utilizados en un
sistema. La criptografía tiene una larga e importante
historia en la protección de sistemas críticos e
información confidencial.
➢ Durante la Segunda Guerra Mundial, los alemanes
utilizaron máquinas Enigma para cifrar las
comunicaciones, y los Aliados hicieron todo lo posible
para descifrar el cifrado.
➢ Las Máquinas Enigma utilizaron una serie de rotores que
transformaron el texto sin formato en texto cifrado, y al
comprender la posición de los rotores, los Aliados
pudieron descifrar el texto cifrado en texto sin formato.
Este fue un logro trascendental, pero requirió mano de
obra y recursos significativos. Hoy todavía es posible
descifrar ciertas técnicas de cifrado; sin embargo, a
menudo es más factible atacar otros aspectos de los
sistemas criptográficos, como los protocolos, los puntos
de integración o incluso las bibliotecas utilizadas para
implementar la criptografía.
“MÁQUINA ENIGMA” DISEÑADA POR LOS ALEMANES PARA ENCRIPTAR MENSAJES (1)
“MÁQUINA ENIGMA” DISEÑADA POR LOS ALEMANES PARA ENCRIPTAR MENSAJES (2)
MÁQUINA DISEÑADA POR TURING PARA DESCIFRAR CÓDIGO ENIGMA
PROPORCIONANDO INTEGRIDAD
CON FUNCIONES HASH
PROPORCIONANDO INTEGRIDAD CON HASH

➢ Usted puede comprobar la integridad de un archivo utilizando la


Función Hash.
➢ El Hashing es un algoritmo realizado a archivos o mensajes que
produce un número llamado hash muchas veces llamado
Checksum (o suma de comprobación).
➢ El Hash es utilizado para comprobar que la data no ha sido
modificada, manipulada o corrompida.
➢ No importa las veces que apliques la función hash a un archivo, si
este no ha sido modificado, el resultado será el mismo.
➢ El Hash verifica la integridad de la data, tales como, el correo
electrónico, y de los archivos.
➢ Un Hash frecuentemente es generado en número hexadecimales.
TIPOS DE FUNCIONES HASH MÁS UTILIZADAS
➢ MD5 – Message Digest 5
✓ Es un algoritmo de hash muy común, y produce una cadena
de caracteres de 128 bit.
✓ Ha sido utilizado desde 1992.
✓ Expertos han descubierto vulnerabilidades en este algoritmo
que han puesto en riesgo su uso.
➢ SHA – Secure Hash Algorithm
✓ Existen varias versiones. Es uno de los algoritmos más
utilizados hoy en día.
✓ Genera una cadena de caracteres de 160, 224, 256 y 512 bits.
✓ Lo recomendable es utilizar funciones hash que generen
cadenas de caracteres de por lo menos 256 bits.
➢ HMAC – Hash-based Message Authentication Code
✓ Genera al igual que las anteriores funciones hash una cadena
de caracteres, adicionando que esta función utiliza una clave
secreta compartida para agregar algo de aleatoriedad al
resultado. Solo el remitente y el receptor conocen la clave
secreta. Es utilizado para fines de autenticación.
TIPOS DE FUNCIONES HASH MÁS UTILIZADAS

➢ RIPEMD – RACE Integrity Primitives Evaluation Messages


Digest.
✓ Es otra función de hash para verificación de integridad.
✓ Tiene diferentes versiones RIPEMD-160 que crea hashes
de 160 bits de tamaño fijo. Otras versiones crean hashes
de 128, 256 y 320 bits de tamaño.
➢ Existen una variedad de aplicaciones que calculan el hash de
manera automática, es decir sin la intervención del usuario,
como por ejemplo las firmas digitales.
➢ Las contraseñas de los usuarios son almacenadas en formato
hash en los sistemas operativos.
Ejemplo de Obtención de
Hash de un archivo
CÁLCULO DEL HASH - WINDOWS

Powershell es un entorno, vía comando, que permite ejecutar determinadas tareas de


administración en los Sistemas Operativos Windows. Para entrar, solo necesitamos
ejecutar el comando powershell en la línea de comandos de Windows.

La función Get-FileHash permite generar el hash del archivo indicado

Cadena de caracteres que


Función Hash utilizada
devolvió la función SHA256

Generando el HASH del archivo java0.log desde Powershell con el comando Get-FileHash
CÁLCULO DEL HASH - LINUX
Con el comando CAT verificamos el contenido del archivo wetransfer.

Contenido del archivo wetransfer

Generamos el Hash del archivo wetransfer con el comando sha256sum

Cadena de caracteres resultantes (Hash)

Contenido modificado del archivo wetransfer

Cadena de caracteres resultantes (Hash), en donde


podemos notar que varió el resultado de la cadena
dado que fue modificado el contenido del archivo.

Generando un Hash en Linux del archivo wetransfer con la función SHA256


VISUALIZANDO ARCHIVO DE CONTRASEÑAS DE LINUX

Nombre del Usuario y después de los “:”


inicia la cadena de caracteres (o
hash)correspondiente a su contraseña. Los caracteres señalados aquí son las cadenas de caracteres almacenadas
en el archivo de contraseñas de Linux llamado “shadow”.

¿Cómo funciona esto?

1. Cuando creas el usuario pide la contraseña de este.


2. El sistema operativo la convierte en Hash.
3. El Hash es almacenado en el archivo shadow.
4. Cuando un usuario quiere entrar al sistema, introduce su contraseña.
5. Luego el sistema operativo captura la contraseña y le calcula el hash.
6. Compara este hash con el almacenado en el archivo shadow.
7. Si es el mismo hash quiere decir que esa es la contraseña válida. De lo
contrario le da error de contraseña al usuario y no le permite entrar al
sistema.
PROPORCIONANDO CONFIDENCIALIDAD
CON MÉTODOS DE ENCRIPTACIÓN
PROPORCIONANDO CONFIDENCIALIDAD CON ENCRIPTACIÓN

➢ La encriptación provee confidencialidad, y previene de la


divulgación de información no autorizada.
➢ La data encriptada es un formato de texto cifrado que
hace la data ilegible.
➢ Un “atacante” no puede leer tráfico encriptado que pasa
por la red o la data encriptada que está almacenada en
un sistema.
➢ ¡¡¡Ojo!!! Si la data es enviada en texto claro a través de
los diferentes medios de intercambios de información,
un atacante pude capturar la data y leerla utilizando un
analizador de protocolos.
ESTADOS DE LA DATA CON RELACIÓN A LA ENCRIPTACIÓN
➢ Data en reposo (data at rest)
✓ Se refiere a la data almacenada en cualquier dispositivo de
almacenamiento.
✓ Comúnmente se encripta este tipo de data.
✓ Ejemplo: encriptar el archivo de backup de una base de datos.
➢ Data en tránsito (data in transit)
✓ Se refiere a la data que es enviada en la red, por lo que es
común encriptar la que es sensitiva.
✓ Ejemplo: cuando ponemos nuestro usuario / contraseña en
una página web. Esta data que es bastante sensitiva, si no
está encriptada, pudiera ser capturada por un atacante.
➢ Data en uso (data in use)
✓ Se refiere a la data que es utilizada por una computadora u
otro dispositivo.
✓ Como necesitan procesar la data, no es encriptada mientras
está en uso. Cuando deja de ser utilizada, vuelve a encriptarse
para mantener la confidencialidad de la misma.
¿CÓMO FUNCIONA LA ENCRIPTACIÓN?
Casos de ejemplo de la importancia
de utilizar métodos criptográficos
EJEMPLO – CONEXIÓN A SERVIDOR FTP NO ENCRIPTADA (1)

Realizando la conexión a un servidor FTP no encriptada.

Usuario con el que me conectaré al servidor FTP.

Luego de haber puesto la contraseña, el sistema me da acceso.


EJEMPLO – CONEXIÓN A SERVIDOR FTP NO ENCRIPTADA (2)

Dirección IP de mi computadora recibiendo


la respuesta del Servidor de FTP

Dirección IP del Servidor FTP enviándole el


paquete de respuesta a mi computadora.

En este ejercicio estaremos utilizando el


analizador de protocolos Wireshark para
capturar el tráfico de la red “no encriptado”
de la conexión al Servidor FTP.
EJEMPLO – CONEXIÓN A SERVIDOR FTP NO ENCRIPTADA (3)

Luego de haber enviado al Servidor


FTP mi usuario, miren como es
capturado por Wireshark.
EJEMPLO – CONEXIÓN A SERVIDOR FTP NO ENCRIPTADA (4)

Contraseña “msfadmin” capturada


por Wireshark al estar en texto
plano, es decir, no encriptada.
EJEMPLO – CONEXIÓN A SERVIDOR FTP NO ENCRIPTADA (5)

Cuando recibo del Servidor FTP respuesta de que


mis credenciales (usuario y contraseña) han sido
validados permitiéndome el acceso al Servidor.

Esto que acabamos de ver es lo que sucede cuando NO


hacemos uso de la encriptación en los diferentes servicios y
medios de red en donde transmitimos informaciones.

¡¡¡Ojo!!! Cualquier tipo de datos (un archivo, una foto, etc.) puede
ser capturado y reconstruido utilizando este tipo de herramienta
como Wireshark. Es por eso que se hace necesario el uso de la
ENCRIPTACIÓN.
EJEMPLO – CONEXIÓN ENCRIPTADA SERVIDOR SSH (1)

Realizando la conexión al Servidor SSH.


EJEMPLO – CONEXIÓN ENCRIPTADA SERVIDOR SSH (2)

Inicio del intercambio de “llaves” para la encriptación


del tráfico entre mi computadora y el servidor remoto.

Diffie-Helman Tipo de algoritmo de encriptación


que será utilizado en la conexión vía SSH (Secure
Shell o conexión remota asegurada).

Versión del Servidor de Acceso Remoto vía SSH (Secure Shell).


Esta información pudiera ser útil en caso de que un “Atacante”
quisiera saber las vulnerabilidades que puede tener la versión
de este servicio, para así intentar atacar el servidor.
EJEMPLO – CONEXIÓN ENCRIPTADA SERVIDOR SSH (3)

Tráfico de datos encriptados entre el Cliente (mi


computadora) y el Servidor. Esto hace más difícil
cualquier intención de capturar paquetes de datos
para robar informaciones o credenciales que se
estén transmitiendo por la red.
EJEMPLO – CONEXIÓN NO ENCRIPTADA SERVIDOR PROXY (1)

El tráfico entre la página web y el cliente (o


navegador) no está encriptado.

Capturaremos este tráfico de envío


del usuario y contraseña.
EJEMPLO – CONEXIÓN NO ENCRIPTADA SERVIDOR PROXY (2)

Aquí estamos utilizando la herramienta BURP


SUITE que sirve para realizar pruebas de seguridad
a aplicaciones web.

En este caso, utilizaremos esta herramienta para


emular un Servidor Proxy (sin ningún método de
encriptación) para capturar el tráfico que se
presenta en la pantalla (1) de esta secuencia.

Un Servidor Proxy, es un programa o dispositivo,


que hace de intermediario de las solicitudes que
hace un “cliente” a un “servidor”.
EJEMPLO – CONEXIÓN NO ENCRIPTADA PÁGINA WEB (1)

El tráfico entre la página web y el cliente


(o navegador) no está encriptado.
EJEMPLO – CONEXIÓN NO ENCRIPTADA PÁGINA WEB (2)

Filtramos el tráfico por el nombre de la página web visitada.

El servidor web cuando recibe la petición nuestra para


acceder a la página solicitada nos responde la petición
con todas estas informaciones en donde claramente se
despliega el directorio y los archivos que son cargados
por la página web visitada.

Esto facilita bastante la información para un “Atacante”.

En esta ocasión, estamos utilizando un software


especializado para la captura del tráfico de la red,
llamado Wireshark.

Hemos capturado el tráfico que se genera cuando el


navegador (ver slide anterior) de una computadora
intenta enviar las credenciales de usuario y contraseña
a una página web que no tenga su tráfico encriptado.
Es detectado por el Servidor Web
el tipo de navegador que se está
utilizando, el sistema operativo,
entre otros datos.
EJEMPLO – CONEXIÓN NO ENCRIPTADA PÁGINA WEB (3)

Credenciales capturadas.
Usuario: faustorichardson
Contraseña: Temporal1234
EJEMPLO – CONEXIÓN ENCRIPTADA PÁGINA WEB (1)

El tráfico entre la página web y el cliente (o


navegador) estará encriptado.

Capturaremos el tráfico de paquetes que será


generado cuando intentemos acceder con las
credenciales introducidas en la página web para
ver qué información nos presenta Wireshark.

Capturaremos este tráfico de envío


del usuario y contraseña.
EJEMPLO – CONEXIÓN ENCRIPTADA PÁGINA WEB (2)

Respuesta de la “petición” al Servidor Web de la página visitada


encriptada (protocolo HTTPS), en donde inicia el intercambio de
datos y la comunicación encriptada.

Muy diferente a cuando la data no estaba encriptada, ahora


toda la información que intercambiamos con la página web
tiene un tráfico no legible. Ver cuando la página no estaba
encriptada que se visualizamos todos los directorios y archivos
que eran cargados por la página web para que fueran
visualizados por el navegador.

Data encriptada
EJEMPLO – CONEXIÓN ENCRIPTADA PÁGINA WEB (3)

Data encriptada
CIFRADOS DE BLOQUES (BLOCK CIPHERS)
VS.
CIFRADOS DE FLUJO (STREAM CIPHERS)
TIPOS Y MÉTODOS DE ALGORITMOS DE ENCRIPTACIÓN
• Algoritmo. Es lo que realiza el cálculo
Métodos Block Vs. Stream •
matemático en la data.
Llave (key). Es el número que provee la
variabilidad para la encriptación.

• Cifrado Asimétrico. Hay


una llave que encripta y
otra que desencripta la
Tipos data.
• Cifrado Simétrico. La
misma llave que encripta,
es la que desencripta la
data.
ENCRIPTACIÓN SIMÉTRICA
(SYMMETRIC ENCRYPTION)
ENCRIPTACIÓN SIMÉTRICA

✓ Utiliza la misma llave tanto para encriptar como desencriptar la información. Ejemplo, el servicio RADIUS.
✓ También llamada “cifrado de clave secreta”.
✓ La misma cantidad de llaves que encriptan se utilizan para desencriptar. Por ejemplo. Si tenemos una “llave de 3” y queremos
encriptar la palabra HOLA el resultado sería KROD.
✓ H es K (I, J, K)
✓ O es R (P, Q, R)
✓ L es O (M, N, O)
✓ A es D (B, C, D)
ENCRIPTACIÓN SIMÉTRICA (ROT13)

✓ ROT13 es la abreviatura de ROTATE 13 places (o rotar


13 espacios).
✓ Es una técnica de encriptación que utiliza el mismo
algoritmo de cifrado, pero siempre utiliza una “llave”
de 13.
✓ Para encriptar un mensaje deberá rotar 13 letras (o
espacios), y de igual manera, para desencriptarlo
deberá rotar la misma cantidad de espacios hacia
atrás.

NOTA: Hoy en día existen técnicas sofisticadas de


encriptación simétrica que utilizan los mismos
componentes de un algoritmo y una llave. Sin embargo,
los algoritmos y llaves son más complejos.
También, el tamaño de la llave ayuda a qué tan fuerte
pueda ser la “llave de encriptación”.
ALGORITMOS DE ENCRIPTACIÓN SIMÉTRICA (1)
➢ AES – Advanced Encryption Standard
✓ Es un fuerte algoritmo de cifrado en bloque simétrico,
que encripta la data en bloques de 128 bits.
✓ Fue adoptado como el algoritmo estándar de la
encriptación simétrica, luego de que la NIST (National
Institute of Standards and Technology) evaluara
durante (5) años 15 algoritmos diferentes, terminando
AES como el mejor de todos.
✓ También puede utilizar llaves de 128 bits, 192 bits o
de 256 bits, referidas como: AES-128, AES-192 y AES-
256.
✓ Es rápido. Utiliza un algoritmo de fórmulas
matemáticas que facilita la encriptación rápidamente.
✓ Es eficiente. Utiliza menos recursos que otros
algoritmos de encriptación.
✓ Es fuerte.
ALGORITMOS DE ENCRIPTACIÓN SIMÉTRICA (2)
➢ DES – Data Encryption System
✓ Es un algoritmo de cifrado en bloque simétrico, que fue
utilizado por muchos años, desde la década de los 70.
✓ Encripta la data en bloques de 60 bits.
✓ Utiliza una llave de 56 bits, que puede ser rota con
ataques de fuerza bruta. En aquellos años no existía
tecnología que pudiera romper una llave de 56 bits.
✓ No se recomienda el uso de DES hoy en día.
➢ 3DES – Triple DES
✓ Es un algoritmo de cifrado en bloque simétrico designado
como una mejora a las debilidades encontradas en DES.
✓ Utiliza “varios pases” para encriptar la data, al igual que
múltiples llaves.
✓ Encripta la data en bloques de 64 bits. Pero utiliza llaves
de encriptación de 64 bits, mejorando las de 56 bits de
DES. También usa llaves de 112 y 168 bits.
✓ Aunque es un algoritmo “fuerte”, se usa menos que AES.
ALGORITMOS DE ENCRIPTACIÓN SIMÉTRICA (3)
➢ RC4 – Ron Rivest Cipher (ver. 4)
✓ Es un algoritmo de cifrado de flujo simétrico, el más
utilizado.
✓ Encripta desde 40 hasta 2048 bits de datos.
✓ Ha sido el algoritmo de encriptación recomendado para
mecanismo de encriptación como SSL (Secure Socket
Layer) y TLS (Transport Layer Secure), utilizados para la
encriptación de las páginas web haciendo uso del
protocolo HTTPS.
✓ Existen especulaciones de expertos que indican que
desde el año 2013, agencias como la NSA (National
Security Agency), pueden romper RC4.
✓ Microsoft ha recomendado deshabilitar RC4 y utilizar AES.
ALGORITMOS DE ENCRIPTACIÓN SIMÉTRICA (4)
➢ Blowfish
✓ Es un fuerte algoritmo de cifrado en bloque simétrico que
es utilizado bastante hoy en día.
✓ Encripta data en bloques de 64 bits.
✓ Utiliza llaves entre 32 y 448 bits.
✓ Desarrollado por Bruce Schneier para sustituir DES.
➢ Twofish
✓ Relacionado a Blowfish.
✓ Encripta la data en bloques de 128 bits.
✓ Soporta llaves de 128, 192 o 256 bits.
✓ Fue uno de los algoritmos finalistas cuando la NIST estaba
evaluando cuál sería el estándar.
ALGORITMOS DE ENCRIPTACIÓN SIMÉTRICA (5)
➢ Resumen – Cuadro Técnico

Algoritmo Tipo Método Tamaño Llave


AES Bloque (Block) 128 bits 128, 192, 256 bits
3DES Bloque (Block) 64 bits 56, 112, 168 bits
Blowfish Bloque (Block) 64 bits 32 a 448 bits
Twofish Bloque (Block) 128 bits 128, 192, 256 bits
RC4 Flujo (Stream) Bit a Bit 40 a 2048 bits
DES Bloque (Block) 64 bits 56 bits
ENCRIPTACIÓN ASIMÉTRICA
(ASYMMETRIC ENCRYPTION)
ENCRIPTACIÓN ASIMÉTRICA (1)
➢ La Encriptación Asimétrica utiliza dos llaves para encriptar y
desencriptar los datos. Una llave pública y una privada.
➢ Si la llave pública encripta la información, solo la llave
privada que coincide puede desencriptar la información.
➢ Si la llave privada encripta la información, solo la llave
pública que coincide puede desencriptar la información.
➢ Una usuario puede generar varias llaves públicas y solo
habrá una sola llave privada.
➢ Las llaves privadas nunca se comparten a diferencia de las
llaves públicas que si se comparten para poder entablar el
método de encriptación.
➢ Existen dos elementos importantes en este tipo de
encriptación que son: un certificado digital y una
infraestructura de llaves públicas (PKI – Public Key
Infrastructure).
ENCRIPTACIÓN ASIMÉTRICA (2)
➢ Certificados
✓ Son elementos clave de la encriptación asimétrica.
✓ Es un documento digital que contiene típicamente la llave
pública e información acerca del dueño del certificado.
➢ Autoridades de certificación (Certificates Authority)
✓ Son las entidades que emiten y gestionan los certificados
digitales.

NOTA: A encripta el mensaje con la llave pública que


genera B y la intercambia con A. Este mensaje solo
puede ser desencriptado por la llave privada de B.
ENCRIPTACIÓN ASIMÉTRICA (3)
➢ RSA
✓ Ron Rivest, Adi Shamir y Leonard Adleman.
✓ Desarrollado en el año 1977.
✓ Es un método de encriptación asimétrica que utiliza llaves
públicas y privadas en un par combinado.
✓ Es utilizado en Internet ampliamente por su fuerte
seguridad. Por ejemplo, el correo electrónico seguro
utiliza RSA.
✓ Este método utiliza funciones matemática de los números
primos, ya que considera que es difícil factorizar el
producto de dos números primos.
✓ Los laboratorios de RSA consideran “seguro”, proteger la
data con un tamaño de una llave de 2048 bits para
aquella data que será protegida hasta el año 2030. Si la
data requiere ser protegida más allá del 2030, deberá ser
utilizada una llave de 3072 bits.
EXPLORANDO LOS COMPONENTES DE UNA PKI (1)
➢ Infraestructura de Llave Pública (PKI – Public Key Infrastructure)
es un grupo de tecnologías utilizadas para solicitar, crear,
administrar, distribuir o revocar certificados digitales.
➢ La encriptación asimétrica depende del uso de certificados
digitales para una gran variedad de propósitos, como, proteger
correos electrónicos, el tráfico de páginas web de manera
encriptada, entre otros.
➢ Autoridad Certificadora (CA - Certificate Authority). Gestiona,
valida y revoca los certificados digitales.
➢ Certificado Raíz (Root Certificate). Es el primer certificado creado
por la CA que la identifica.
➢ CA Públicas como Symantec y Comodo, negocian con los
desarrolladores de navegadores para poder incluir sus
certificados dentro de estos y que puedan ser reconocidos
cuando un usuario navegue por las páginas web certificadas por
estas entidades.
➢ Solicitud de firma de certificado (CSR – Certificate Signing
Request) es el proceso de solicitarle a una CA el pedido de un
certificado para las llaves que hemos generado.
EXPLORANDO LOS COMPONENTES DE UNA PKI (2)
➢ Revocación de Certificados.
✓ Generalmente los certificados pueden expirar basados en la
fecha de inicio / fin de vigencia del certificado.
✓ Cuando es comprometida la llave.
✓ Cuando es comprometida la Entidad Certificadora.
✓ Cuando se hace un cambio de afiliación.
✓ Cuando ha sido reemplazado.
✓ Cuando ha finalizado las operaciones de la organización que
utiliza ese certificado.
✓ Cuando se ha retenido el certificado.
▪ Lista de Certificados Revocados (CRL – Certificate Revocation List).
✓ Es la lista en donde la CA publica los certificados que han sido
“revocados”, para que los navegadores al encontrarlos den un
aviso a los usuarios en donde sugieren que no naveguen hacia
esa página web porque puede comprometer sus datos.
▪ Agente de Recuperación (Recovery Agent).
✓ Es el individuo designado para recobrar o restaurar llaves
criptográficas.
PÁGINA WEB CON UN CERTIFICADO EMITIDO POR UNA CA

El candado en verde asegura que el


certificado generado por esta página
está validado por una CA (Certificate
Authority o Autoridad Certificadora)
PÁGINA WEB CON UN CERTIFICADO NO VALIDADO POR UNA CA

Para este caso, aunque esta aplicación web utiliza el


protocolo HTTPS y ha generado un certificado, este indica
que no ha sido validado por una Autoridad Certificadora, por
lo que tenemos que tener cuidado navegando en páginas
web que tienen este tipo de inconveniente.

Es muy probable que antes de entrar a la página web, el


navegador les de una advertencia sobre el riesgo de visitar
este sitio.
LLAVES ESTÁTICAS VS. LLAVES EFÍMERAS

➢ Las dos categorías primarias de llaves asimétricas son


estáticas y efímeras.
➢ Llaves estáticas
✓ Es una llave semipermanente que se mantiene sobre un
largo período de tiempo.
➢ Llaves efímeras
✓ Es una llave generada por un período corto de tiempo, y
es recreada para cada sesión.
➢ RSA utiliza llaves estáticas. Estas pueden expirar cuando
vence el certificado digital de la entidad.
EJEMPLO DE LLAVES EFÍMERAS

El servidor establece una conexión segura de manera encriptada

Aquí el servidor cambia nuevamente las llaves utilizadas para encriptar


la data que se está intercambiando.
CRIPTOGRAFÍA DE CURVAS ELÍPTICAS

➢ Criptografía de Curvas Elípticas (ECC – Elliptic Curves


Cryptography)
➢ No requiere de mucho consumo de recursos como otros
métodos de encriptación.
➢ Este método es utilizado frecuentemente en dispositivo que
tienen poco recursos, como por ejemplo, dispositivos
inalámbricos.
DIFFIE HELLMAN
➢ Diffie-Hellman (DH)
✓ Es un algoritmo de intercambio utilizado para
intercambiar de manera privada llaves simétricas entre
tos partes.
✓ Una vez que ambas partes conocen la llave, utilizan
encriptación simétrica para el cifrado de la data.
✓ El algoritmo de Diffie-Hellman soporta llaves estáticas y
llaves efímeras.
✓ RSA está basado en el método de intercambio de llaves de
Diffie-Hellman, utilizando llaves estáticas.
✓ Existen más de 25 grupos DH que van desde el DH Grupo 1
que utiliza llaves de 768 bits en el proceso de intercambio
de llaves, y el DH Grupo 15 que utiliza llaves de 3072 bits.
ENCRIPTACIÓN ASIMÉTRICA
¿CÓMO FUNCIONA LA ENCRIPTACIÓN ASIMÉTRICA?
➢ Firmas Digitales en Correo
✓ La llave privada de quien envía encripta (o firma el correo).
✓ La llave pública de quien envía desencripta.
➢ Encriptación de Correos
✓ La llave pública del destinatario encripta.
✓ La llave privada del destinatario desencripta.
➢ Encriptación en Páginas Web
✓ La llave pública de la página web encripta (una llave simétrica).
✓ La llave privada de la página web desencripta (una llave simétrica).
✓ Una llave simétrica encripta la data de la sesión.
ESTEGANOGRAFÍA
(STEGANOGRAPHY)
ESTEGANOGRAFÍA
➢ Es el arte de esconder data secreta en un archivo de
imagen, sonido o video.
➢ El objetivo es enconder la data de manera que no se
sospeche que un archivo multimedia contiene data
escondida dentro.
➢ La esteganografía esconde la data, no la encripta.
➢ Se puede esconder data en un archivo de la siguiente
manera:
1. Esconder la data manipulando bits. Es posible
manipular bits de datos de un archivo de imagen o
de sonido para esconder un mensaje dentro de
ellos.
2. Esconder la data en el “espacio en blanco” de un
archivo. Algunos archivos contienen espacios no
utilizados, lo que es posible aprovecharlos para
esconder data en este espacio.
Ejemplo Práctico de Encriptación Simétrica
Encriptación Simétrica
Utilizando MCRYPT
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (1)

El comando ejecutado nos


permite visualizar la ayuda
del comando mcrypt.
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (2)

El comando ejecutado nos permite


visualizar los diferentes algoritmos
de encriptación disponibles para
cifrar datos con el comando mcrypt.
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (3)

Archivo que vamos a encriptar


EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (4)
Nombre del archivo que vamos
a cifrar.

Texto sin cifrar del archivo que


vamos a encriptar utilizando mcrypt
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (5)

Se introduce dos veces la contraseña con la que


encriptaremos el archivo. Esta debe ser recordada
para cuando se vaya a desencriptar.
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (6)

Archivo encriptado
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (7)

Como podemos ver, el contenido del archivo es ilegible.

La desventaja de utilizar la encriptación simétrica para


compartir archivos es que la contraseña para
desencriptarlo la debe de saber la otra persona con la que
vamos a compartir el archivo. De lo contrario, no podrá
leerlo.

Esa es la ventaja de utilizar la encriptación asimétrica.


EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (8)

He borrado el archivo original que encriptamos para


proceder a desencriptar ejemplo_encriptación_mcrypt_nc.
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (9)

Introducir la contraseña
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON MCRYPT (10)

Archivo desencriptado
Encriptación Simétrica
Utilizando GnuPG (GPG)
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (1)

Archivo que será encriptado


EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (2)

Texto sin encriptar


EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (3)

• Para verificar la ayuda


• En caso de que no esté instalado
gpg ejecutar el siguiente comando
para su instalación:
sudo apt-get install gnupg
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (4)

Introducir contraseña
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (5)

Archivo encriptado
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (6)

Mensaje encriptado
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (7)

Borramos el archivo original que


fue encriptado
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (8)

Cuando ejecutamos el comando presentado en


pantalla, se despliega en pantalla el contenido
del archivo de manera legible.

Si queremos desencriptar y extraer en un


archivo el mensaje, en el siguiente slide
explicamos cómo hacerlo.
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (9)

Al comando anterior, agregamos la opción:


--output nombre_archivo_encriptado.extensión
para este caso lo guardamos como un archivo txt
EJEMPLO DE ENCRIPTACIÓN SIMÉTRICA CON GNUPG (10)

Archivo desencriptado
Ejemplo Práctico de Encriptación Asimétrica
Encriptación Asimétrica
Utilizando GnuPG - GPG
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (1)

Simulando la PC del Usuario1


EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (2)
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (3)
Lo primero que hago es generar una llave
1 privada para luego generar una llave
1 pública que es la que voy a intercambiar.
gpg --full-generate-key

Luego selecciono el tipo de llave.


2 Opción 1 (luego enter)
2 Luego selecciono la cantidad de bits de
longitud que quiero que tenga la llave que
voy a generar. Por defecto vienen 3072
3 bits.
3 Puedo darle directo a ENTER ó digito
3072 y luego ENTER

Luego selecciono el tiempo de validez de


la llave que voy a generar. Por defecto
viene 0, es decir, que la llave nunca
4 expira.
4 Puedo darle directo a ENTER
ó digito 0 y luego ENTER
5
Si todo está correcto le doy a Y (luego
5 enter)

Digito una serie de datos que me piden,


como nombre, correo electrónico, etc. Si
6 todo está correcto le doy a O (de Okay y
luego enter)
6
Me sale un cuadro de diálogo donde me
pide una contraseña para generar la llave.
7 7 Digito la contraseña y luego OK.
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (4)
Comando para ver las llaves que tengo disponibles mías y de otros
usuarios que me hayan compartido su llave pública.

Llave Privada asociada al correo faustorichardson@gmail.com


EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (5)

Comando utilizado para generar la llave pública con la que un Usuario


a quien se la comparta encripte los archivos con esta llave para que
solamente yo los pueda desencriptar con mi llave privada.

Llave Pública Generada. Esto (preferiblemente generado en un


archivo) es lo que se puede compartir sin problemas, dado que con
esta llave lo que se encripta solamente podrá ser desencriptado por
mi llave privada.
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (6)

Simulando la PC
del Usuario2
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (7)

Este es el archivo del mensaje que voy a encriptar con la llave


pública que generé con la simulación del USUARIO1.
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (8)

Archivo que contiene el Llave pública que me


mensaje que va a encriptar envié por correo del
el USUARIO2 simulado, USUARIO1 simulado
utilizando la llave pública
del USUARIO1
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (9)
Verificando las llaves que tiene la pc del USUARIO2
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (10)
Importando la llave pública del USUARIO1

Llave Pública importada de manera satisfactoria


EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (11)

gpg --output message.gpg --encrypt --recipient faustorichardson@gmail.com message

El archivo que será Opción indicado que el Opción que indica el correo Nombre del archivo que
generado cuando se archivo se va a encriptar que está relacionado a la vamos a encriptar con la
ejecute el comando llave pública que será llave pública del Usuario
utilizada para encriptar el
archivo con el mensaje
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (12)

Mensaje Encriptado
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (13)

Luego de haber descargado el archivo que me envié por correo


simulando que el USUARIO2 le envió por correo el archivo
message.gpg al USUARIO1 encriptado con su llave pública para
que este lo pueda desencriptar con su llave privada.

Intento abrir el archivo, y vemos que es ilegible porque está


encriptado.
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (14)
Comando para desencriptar el archivo enviado (message.gpg)

Cuando ejecutamos este comando nos sale este cuadro de


diálogo para insertar la contraseña con las que generamos en un
principio nuestra llave privada.
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (15)

Archivo desencriptado
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (16)
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (17)

El sistema permite hasta (3)


intentos de digitación de la
contraseña con la que se
generó la llave privada.
EJEMPLO DE ENCRIPTACIÓN ASIMÉTRICA CON GNUPG (18)

En caso de que se haya querido hacer el intento de desencriptar un


archivo con una llave privada que no está asociada a una llave pública
con la que este fue encriptado, dará error al intento de desencriptarlo.
¿Preguntas?
EJERCICIOS
EJERCICIOS DE TAREA
1. Mandar evidencia de que fue encriptado y
desencriptado un archivo utilizando los
siguientes comandos:
▪ mcrypt
▪ gpg
2. Investigar cómo ocultar una foto en un
archivo de audio cualquiera.
3. Realizar lo siguiente:
a. Generar una llave privada con GnuPG
b. Exportar su llave pública
c. Contactar al facilitador de este módulo
vía Whatsapp para que este le provea un
correo donde le enviarán esa llave
pública.
d. El profesor encriptará un archivo con la
llave pública recibida.
e. Enviará al estudiante el archivo.
f. El estudiante con su llave privada deberá
desencriptar el archivo y escribirle al
profesor el mensaje.

También podría gustarte