Última actualización: abril 1, 2022
21.0. Introducción
21.0.1. ¿Por qué deberíamos tomar este módulo?
¿Qué sabemos de la criptografía? ¿Qué es y cómo se puede implementar? Para proteger los datos a medida que viajan a través de enlaces, debemos comprender cómo proteger esos datos y mantener su integridad. En este módulo aprenderás sobre criptografía y su papel en las comunicaciones digitales de datos. ¡Comencemos!
21.0.2. ¿Qué aprenderemos en este módulo?
Título del módulo: Criptografía de Clave Pública
Module Objective: Explicar el papel de la infraestructura de Clave Pública (PKI, siglas en inglés) en la seguridad de las redes.
Título del tema | Objetivo del tema |
---|---|
Integridad y Autenticidad | Explicar la función de la criptografía para garantizar la integridad y autenticidad de los datos. |
Confidencialidad | Explicar cómo los enfoques criptográficos mejoran la confidencialidad de los datos. |
Criptografía de Clave Pública | Explicar la criptografía de clave pública. |
Las autoridades y el Sistema de Confianza de PKI | Explicar cómo funciona la infraestructura de clave pública. |
Aplicaciones e impactos de la Criptografía | Explicar cómo el uso de la criptografía afecta las operaciones de ciberseguridad. |
21.0.3. Actividad de clase: Crear códigos
Los códigos secretos se han empleado por miles de años. En la antigua Grecia y Esparta se utilizaba una escítala para codificar mensajes. Los romanos utilizaban un cifrado conocido como César para cifrar mensajes. Hace aproximadamente 100 años, los franceses utilizaban la clave Vigenère para codificar mensajes. Actualmente se pueden codificar mensajes de muchas maneras.
En esta práctica de laboratorio crearemos y encriptaremos mensajes con herramientas online.
21.1. Integridad y Autenticidad
21.1.1. Protegiendo las Comunicaciones
Las organizaciones deben proporcionar soporte para proteger los datos a medida que viajan a través de enlaces. Esto puede incluir el tráfico interno, pero la mayor preocupación es proteger los datos que viajan fuera de la organización a sitios de sucursales, teletrabajadores y socios.
Estos son los cuatro elementos de las comunicaciones seguras:
- Integridad de los datos – Garantiza que el mensaje no fue alterado. Se detectara cualquier cambio de los datos en tránsito. La integridad se garantiza mediante la implementación de Algoritmos de Seguridad de Hash (Secure Hash Algorithms SHA-2 o SHA-3) El algoritmo de resumen de mensajes MD5 sigue siendo ampliamente utilizado, sin embargo, es inherentemente inseguro y crea vulnerabilidades en una red. Debe evitarse el uso de MD5.
- Autenticación de origen – Garantiza que el mensaje no sea falso y que el remitente sea el verdadero. Muchas redes modernas garantizan la autenticación con algoritmos, como el código de autenticación de mensaje basado en hash (hash-based message authentication code HMAC).
- Confidencialidad de los datos – Garantiza que solamente los usuarios autorizados puedan leer el mensaje. Si se intercepta el mensaje, no se puede descifrar en un período de tiempo razonable. La confidencialidad de los datos se implementa utilizando algoritmos de encriptación simétrico y asimétrico.
- Imposibilidad de Negación de los Datos – Garantiza que el remitente no pueda negar ni refutar la validez de un mensaje enviado. La imposibilidad de negación se basa en el hecho de que solamente el remitente tiene características o una firma únicas relacionadas con el tratamiento del mensaje.
La criptografía puede usarse casi en cualquier lugar donde haya comunicación de datos. De hecho, estamos yendo hacia un mundo donde toda la comunicación se encriptará.
21.1.2. Funciones del Hash Criptográfico
Los hash criptográficos se usan para comprobar y garantizar la integridad de los datos. El hashing se basa en una función matemática unidireccional que es relativamente fácil de computar, pero mucho más difícil de revertir. El café molido es una buena analogía de una función unidireccional. Es fácil moler los granos de café, pero es casi imposible volver a unir todas las partes minúsculas para reconstruir los granos originales. La función de hash criptográfico puede utilizarse también para verificar la autenticación.
Como se ve en la figura, una función de hash toma un bloque variable de datos binarios, llamado «mensaje», y produce una representación condensada de longitud fija, denominada hash. El hash resultante, a veces, también se denomina síntesis del mensaje, síntesis o huella digital.
Con las funciones de hash, es informáticamente inviable que dos conjuntos diferentes de datos tengan el mismo resultado de hash. Cada vez que se cambian o se modifican los datos, el valor hash también cambia. Debido a esto, los valores hash criptográficos se conocen a menudo como huellas dactilares digitales. Pueden usarse para detectar archivos de datos duplicados, cambios en las versiones de los archivos y otros usos similares. Estos valores se usan para proteger los datos de un cambio accidental o intencional, y del daño accidental.
La función de hash criptográfico se aplica en muchas situaciones diferentes con fines de autenticación de entidades, integridad de los datos y autenticidad de los datos.
21.1.3. Funcionamiento del Hash criptográfico
Matemáticamente, la ecuación h= H(x) se utiliza para explicar cómo funciona un algoritmo de hash. Como se ve en la imagen, la función de hash H toma un valor de entrada x y arroja un cadena de tamaño fijo con valor de hash h.
En el ejemplo de la imagen, se resume la operación matemática. Una función de hash criptográfica debe tener las siguientes propiedades:
- La entrada puede ser de cualquier longitud.
- La salida tiene una longitud fija.
- H(x) es relativamente fácil de calcular para cualquier valor x dado.
- H(x) es unidireccional y no reversible.
- H(x) está libre de colisiones, lo que significa que dos valores diferentes de entrada darán como resultado valores diferentes de hash.
Si una función de hash es difícil de invertir, se considera un hash unidireccional. Difícil de invertir significa que dado un valor hash de h, es computacionalmente inviable encontrar una entrada para x tal que h=h (x).
21.1.4. MD5 y SHA
Las funciones de hash se utilizan para garantizar la integridad de un mensaje. Garantizan que los datos no hayan cambiado accidental o intencionalmente. En la imagen , el remitente envía una transferencia de USD $100 a Alex. El remitente quiere asegurarse de que el mensaje no se modifique accidentalmente en su recorrido hasta el receptor. Los cambios deliberados realizados por un agente de amenazas siguen siendo posibles.
La imagen muestra los cálculos hash de un mensaje en el que el hash inicial y el hash final son diferentes. El mensaje enviado dice, Pay to Alex $100.00. El mensaje recibido dice, Pay to Jeremy $1000.00. El hash inicial es 4ehlDx67NMop9 y el hash final es 12ehqPx67NMoX.
El emisor quiere asegurarse de que el mensaje no se modifique en su recorrido hasta el receptor.
- El dispositivo de envío introduce el mensaje en un algoritmo de hash y calcula un hash de longitud fija de 4ehiDx67NMop9.
- Luego, este hash se adjunta al mensaje y se envía al receptor. El mensaje y el hash se transmiten en texto plano.
- El dispositivo receptor elimina el hash del mensaje e introduce el mensaje en el mismo algoritmo de hash. Si el hash calculado es igual al que se adjunta al mensaje, significa que el mensaje no se modificó durante su recorrido. Si los hash son no iguales, como se ve en la imagen, ya no es posible garantizar la integridad del mensaje.
Existen tres funciones de hash muy conocidas:
- MD5 with 128-bit digest – Desarrollada por Ron Rivest y utilizada en una variedad de aplicaciones de Internet, MD5 es una función unidireccional que produce un mensaje hash de 128- bits. MD5 se considera un algoritmo obsoleto y se debe evitar o usar solamente cuando no haya mejores alternativas disponibles. se recomienda utilizar SHA-2 o SHA-3 en su lugar.
- SHA-1 – Desarrollado por la Agencia Nacional de Seguridad de los Estados Unidos (National Security Agency NSA) en 1995. Es muy similar a las funciones de hash MD5. Existen numerosas versiones. SHA-1 crea un mensaje hash de 160 bits y es un poco más lento que MD5. SHA-1 tiene defectos conocidos y es un algoritmo obsoleto.
- SHA-2 — Desarrollado por la NSA. Esto incluye SHA-224 (224 bit), SHA-256 (256 bit), SHA-384 (384 bit) y SHA-512 (512 bit). Si está utilizando SHA-2, se deben usar los algoritmos SHA-256, SHA-384 y SHA-512 siempre que sea posible.
- SHA-3 – SHA-3 es el algoritmo hash más nuevo y fue introducido por el Instituto Nacional de Estándares y Tecnología (NITS, siglas en inglés) como una alternativa y eventual sustitución para la familia SHA-2 de algoritmos hash. SHA-3 incluye SHA3-224 (224 bit), SHA3-256 (256 bit), SHA3-384 (384 bit) y SHA3-512 (512 bit). La familia SHA-3 son la próxima generación de algoritmos y deben usarse siempre que sea posible.
Mientras que el hash se puede utilizar para detectar modificaciones accidentales, no brinda protección contra cambios deliberados hechos por un agente de amenaza. No existe información de identificación única del emisor en el procedimiento de hash. Esto significa que cualquier persona puede calcular un hash para cualesquiera sean los datos, siempre y cuando tengan la función de hash correcta.
Por ejemplo, cuando un mensaje pasa por la red, un atacante potencial puede interceptarlo, cambiarlo, o recalcular el hash y añadirlo al mensaje. El dispositivo receptor solo validará el hash que esté añadido.
Por lo tanto, el hash es vulnerable a los ataques man-in-the-middle (ataque de intermediario) y no proporciona seguridad a los datos transmitidos. Para proporcionar integridad y autenticación de origen, se necesita algo más.
Nota: Los algoritmos hash solo protegen contra cambios accidentales y no protegen los datos de los cambios realizados deliberadamente por un actor de amenazas.
21.1.5. Autenticación de origen
Para agregar autenticación y control de integridad, se usa un código de autenticación de mensajes hash con clave (hash message authentication code HMAC). Los HMAC utilizan una clave secreta adicional como entrada a la función de hash.
Nota: También se utilizan otros métodos de Código de Autenticación de Mensajes ( Message Authentication Code MAC). Sin embargo, HMAC se utiliza en muchos sistemas, incluidos SSL, IPSec y SSH.
Hacer clic en cada botón para ver una ilustración y una explicación sobre la autenticación de origen con HMAC.
- Algoritmo de Hashing de HMAC
- Creando un valor HMAC
- Verificando un valor HMAC
- Ejemplo de HMAC en Cisco Router.
Solo el emisor y el receptor conocen la clave secreta y el resultado de la función de hash ahora depende de los datos de entrada y la clave secreta. Solo las personas que tienen acceso a esa clave secreta pueden calcular la síntesis de una función de HMAC. Esta característica derrota los ataques man-in-the-middle y proporciona autenticación del origen de los datos.
Si las dos partes comparten una clave secreta y utilizan funciones HMAC para la autenticación, una síntesis HMAC construida correctamente de un mensaje que ha recibido un tercero indica que la otra parte fue la que originó el mensaje. Esto se debe a que la otra parte posee la clave secreta.
R1 esta envíando una Actualización de Estado de Enlace (LSU, siglas en inglés) sobre una ruta hacia la red 10.2.0.0/16:
- R1 calcula el valor de hash mediante el mensaje de LSU y la clave secreta.
- El valor de hash que resulta se envía con la LSU al R2.
- R2 calcula el valor de hash mediante la LSU y su clave secreta. R2 acepta la actualización si los valores de hash coinciden. Si no coinciden, R2 descarta la actualización.
21.1.6. Práctica de laboratorio: Convertir Elementos en Hashes
En esta práctica de laboratorio cumpliremos los siguientes objetivos:
- Crear hashes con OpenSSL
- Verificando Hashes
21.2. Confidencialidad
21.2.1. Confidencialidad de los datos
Hay dos clases de encriptación utilizadas para brindar confidencialidad de los datos; simétrico y asimétrico Estas dos clases se diferencian en cómo utilizan las claves.
Los algoritmos de encriptación simétrica, como Encriptado Estandar de datos ( Data Encryption Standard DES), 3DES y Encriptado Avanzado de Datos ( Advanced Encryption Standard AES) se basan en la premisa de que cada parte que se comunica conoce la clave precompartida. La confidencialidad de los datos también se puede garantizar utilizando algoritmos asimétricos, incluidos Rivest, Shamir, Adleman (RSA) y la Infraestructura de Clave Pública (public key infrastructura PKI).
Nota: DES es un algoritmo obsoleto y no debe usarse. 3DES debe evitarse si es posible.
La imagen destaca las diferencias entre encriptado simétrico y asimétrico.
21.2.2. Encriptado simétrico
Los algoritmos simétricos utilizan la misma clave pre-compartida para encriptar y desencriptar datos. Antes de que ocurra cualquier comunicación encriptada, el emisor y el receptor conocen la clave pre-compartida, también llamada clave secreta.
Para ayudar a ejemplificar cómo funciona la encriptación simétrica, consideremos un ejemplo en el que Alice y Bob viven en diferentes lugares y quieren intercambiar mensajes secretos entre sí mediante el sistema de correo. En este ejemplo, Alice desea enviar un mensaje secreto a Bob.
En la imagen, se ve que Alice y Bob tienen claves idénticas para un único candado. Las claves fueron intercambiadas antes de enviar cualquier mensaje secreto. Alice escribe un mensaje privado y lo coloca en una caja pequeña que cierra con el candado y su clave. Le envía la caja a Bob. El mensaje está seguro dentro de la caja mientras esta recorre el camino del sistema de oficina postal. Cuando Bob recibe la caja, usa la clave para abrir el candado y recuperar el mensaje. Bob puede utilizar la misma caja y el mismo candado para enviar una respuesta secreta a Alice.
Ejemplo de Encriptación Simétrica
Hoy en día, los algoritmos de encriptación simétrica suelen utilizarse con el tráfico de VPN. Esto se debe a que los algoritmos simétricos utilizan menos recursos de CPU que los algoritmos de encriptación asimétrica. Esto permite cifrar y descifrar datos rápidamente cuando se utiliza una VPN. Al utilizar algoritmos de encriptación simétrica, como ocurre con cualquier otro tipo de encriptación, mientras más prolongada sea la clave, más tiempo demorará alguien en descubrirla. La mayoría de las claves de encriptación tienen entre 112 bits y 256 bits. Para garantizar que la encriptación sea segura, se recomienda una longitud mínima de clave de 128 bits. Para comunicaciones más seguras, se aconseja el uso de claves más largas.
Los algoritmos de encriptación simétrica a menudo se clasifican como: Cifrados por bloque o cifrados de flujo. Hacer clic en los botones para obtener información sobre estos dos modos de cifrado.
- Cifrado por bloques
- Cifrado de flujo
Los algoritmos de encriptación simétrica bien conocidos se describen en la tabla.
Algoritmos de Encriptación Simétrica | Descripción |
---|---|
Estándar de Encriptación de Datos (Data Encryption Standard DES) | Este es un algoritmo de encriptación simétrica obsoleto. Utiliza una longitud de clave corta que la hace insegura para la mayoría de los usos actuales. |
3DES (Triple DES) | El es el reemplazo de DES y repite el proceso del algoritmo DES tres veces. Debe evitarse si es posible, ya que está previsto que se retire en 2023. Si se implementa, se deben usar claves de muy poco tiempo de vida |
Estándar de Encriptación Avanzada (Advanced Encryption Standard AES) | Es un algoritmo de encriptación simétrica popular y recomendado. Ofrece combinaciones de claves de 128, 192 ó 256 bits para cifrar bloques de datos de 128, 192óo 256 bits de longitud. |
Algoritmo de Encriptación Optimizado por Software (Software-Optimized Encryption Algorithm SEAL) | SEAL es un algoritmo de encriptación simétrica rápido y alternativo para DES y 3DES SEAL es un cifrado de flujo que usa un llave de cifrado de 160 bit y tiene un menor impacto en la CPU en comparación con otros algoritmos basados en software. |
Algoritmos de Rivest ciphers (RC) | Este algoritmo fue desarrollado por Ron Rivest. Se han desarrollado numerosas variantes, pero RC4 es la más usada. RC4 es un cifrado de flujo y se utiliza para proteger el tráfico web. Se ha encontrado que tiene múltiples vulnerabilidades que lo han hecho inseguro. No se debe usar RC4. |
21.2.3. Encriptación asimétrica
Los algoritmos asimétricos, también llamados algoritmos de claves públicas, están diseñados para que la clave de encriptación y la de desencriptación sean diferentes, como se ve en la imagen 1. En cualquier plazo razonable, no es posible calcular la clave de desencriptación a partir de la clave de encriptación, y viceversa.
Ejemplo de Encriptación asimétrica
Los algoritmos asimétricos utilizan una clave pública y una privada. Ambas claves son capaces de encriptar, pero se requiere la clave complementaria para la desencriptación. El proceso también es reversible. Los datos encriptados con la clave privada requieren la clave pública para desencriptarse. Los algoritmos asimétricos logran confidencialidad y autenticidad mediante el uso de este proceso.
Debido a que ninguna de las partes comparte un secreto, deben usarse longitudes de clave muy prolongadas. La encriptación asimétrica puede utilizar longitudes de claves entre 512 y 4096 bits. Longitudes de clave mayores o iguales a 2048 bits son confiables, y mientras que las claves de 1024 bits o más cortas se consideran insuficientes.
Entre algunos de los ejemplos de protocolos en los que se utilizan algoritmos de claves asimétricos se incluyen los siguientes:
- Intercambio de Claves de Internet (Internet Key Exchange IKE) – Es un componente fundamental de las VPN con IPsec.
- Capa de Puertos Seguros (Secure Socket Layer SSL) – Ahora se implementa como un estándar IETF de la Seguridad de la Capa de Transporte (Transport Layer Security TLS).
- Shell Seguro (Security Shell SSH) – Este protocolo proporciona una conexión segura de acceso remoto a dispositivos de red.
- Pretty Good Privacy (PGP) – Este programa de computadora proporciona privacidad y autenticación criptográfica. A menudo, se utiliza para aumentar la seguridad de las comunicaciones por correo electrónico.
Los algoritmos asimétricos son sustancialmente más lentos que los simétricos. Su diseño se basa en problemas informáticos, como la factorización de números demasiado grandes o el cálculo de logaritmos discretos de números demasiado grandes.
Dado que son lentos, los algoritmos asimétricos se utilizan típicamente en criptografías de poco volumen, como las firmas digitales y el intercambio de claves. Sin embargo, la gestión de claves de algoritmos asimétricos tiende a ser más simple que la de algoritmos simétricos porque, generalmente, es posible hacer pública una de las dos claves de encriptación o desencriptación.
En la tabla se describen ejemplos comunes de algoritmo de encriptación asimétrica.
Algoritmo de Encriptación asimétrico | Longitud de la clave | Descripción |
---|---|---|
Diffie-Hellman (DH) | 512, 1024, 2048, 3072, 4096 | El algoritmo Diffie-Hellman permite que dos partes acuerden una clave que pueden utilizar para encriptar los mensajes que quieren enviarse. La seguridad de este algoritmo depende de la suposición de que resulta sencillo elevar un número a una determinada potencia, pero difícil calcular qué potencia se utilizó sabiendo el número y el resultado. |
Estándar de firmas digitales (Digital Signature Standard DSS) y Algoritmo de firmas digitales (Digital Signature Algorithm DSA) | 512 – 1024 | DSS especifica DSA como el algoritmo para firmas digitales. DSA es un algoritmo de clave pública basado en el esquema de firmas ElGamal. La velocidad de creación es similar a la RSA, pero es de 10 a 40 veces más lenta para la verificación. |
Algoritmos de encriptación Rivest, Shamir, Adleman (RSA) | Entre 512 y 2048 | RSA es usado para criptografía de clave pública que se basa en la dificultad actual de factorización de números muy grandes. Es el primer algoritmo apto tanto para firmas, así como para encriptación. Es ampliamente utilizado en protocolos de comercio electrónico y se considera seguro si se utilizan claves suficientemente prolongadas e implementaciones actualizadas. |
EIGamal | 512 – 1024 | Un algoritmo de encriptación de claves asimétrico para criptografía de claves públicas basado en el acuerdo de claves Diffie-Hellman. Una desventaja del sistema ElGamal es que el mensaje encriptado se vuelve muy grande (aprox. el doble del tamaño del original). Por ello sólo se utiliza con mensajes pequeños como claves secretas. |
Técnicas de curvas elípticas. | 224 o superior | Se puede utilizar para adaptar muchos algoritmos criptográficos, como los de Diffie-Hellman o ElGamal. La principal ventaja es que las claves pueden ser mucho más pequeñas. |
21.2.4. Encriptación asimétrica – Confidencialidad
Los algoritmos asimétricos se usan para brindar confidencialidad sin compartir previamente una contraseña. El objetivo de confidencialidad de los algoritmos asimétricos se inicia cuando comienza el proceso de encriptación con la clave pública.
El proceso puede resumirse con la fórmula:
Clave Pública (Encriptar) + Clave Privada (Desencriptar) = Confidencialidad
Cuando se utiliza la clave pública para encriptar los datos, debe utilizarse la clave privada para desencriptarlos. Solamente un host tiene la clave privada; por lo tanto, se logra la confidencialidad.
Si la clave privada está en riesgo, se debe generar otro par de claves para reemplazar la clave afectada.
Hacer clic en los botones para ver cómo se pueden utilizar las claves privadas y públicas para proporcionar confidencialidad al intercambio de datos entre Bob y Alice.
- Alice adquiere la clave pública de Bob.
- Alice utiliza la clave pública
- Bob descifra el mensaje utilizando su clave privada
21.2.5. Encriptación asimétrica – Autenticación
El objetivo de autenticación de los algoritmos asimétricos se inicia cuando comienza el proceso de encriptación con la clave privada.
El proceso puede resumirse con la fórmula:
Clave privada (Encriptar)+Clave pública (Desencriptar)=Autenticación
Cuando se utiliza la clave privada para encriptar los datos, debe utilizarse la clave pública correspondiente para desencriptarlos. Debido a que un solo host tiene la clave privada, ese host es el único que puede haber encriptado el mensaje, es decir, proporcionar la autenticación del remitente. Por lo general, no se intenta preservar el secreto de la clave pública, por lo que muchos hosts pueden desencriptar el mensaje. Cuando un host desencripta correctamente un mensaje con una clave pública, se confía en que la clave privada encriptó el mensaje y permite verificar quién es el remitente. Esta es una forma de autenticación.
Hacer clic en los botones para ver cómo se pueden usar las claves privadas y públicas para proporcionar autenticación al intercambio de datos entre Bob y Alice.
- Alice utiliza su clave privada
- Bob solicita la clave pública de Alice
- Bob desencripta usando la clave pública
21.2.6. Encriptación asimétrica – Integridad
Combinar los dos procesos de encriptación asimétrica proporciona confidencialidad, autenticación e integridad de los mensajes.
Se utilizará el siguiente ejemplo para ilustrar este proceso. En este ejemplo, se cifrará un mensaje con la clave pública de Bob y se encriptará un hash cifrado con la clave privada de Alice para proporcionar confidencialidad, autenticidad e integridad.
- Alice adquiere la clave pública de Bob.
- Alice encripta un hash con su propia clave privada
- Bob utiliza la clave pública de Alice para desencriptar el hash
- Bob utiliza su clave privada para desencriptar el mensaje
21.2.7. Diffie-Hellman
Diffie-Hellman (DH) es un algoritmo matemático asimétrico que permite que dos computadoras generen un secreto compartido idéntico sin antes haberse comunicado. El remitente y el receptor nunca intercambian realmente la nueva clave compartida. Sin embargo, dado que ambos participantes la conocen, un algoritmo de encriptación puede utilizarla para encriptar el tráfico entre los dos sistemas.
Estos son tres ejemplos de casos en los que el algoritmo de DH suele utilizarse:
- Se intercambian datos mediante una VPN con IPsec
- Se intercambian datos de SSH
Para ayudar a ejemplificar cómo funciona el algoritmo de DH, consulte la figura.
Los colores en la figura se utilizarán en lugar de números largos y complejos para simplificar el proceso de acuerdo de claves del algoritmo de DH. El intercambio de claves del algoritmo de DH comienza con Alice y Bob eligiendo arbitrariamente un color en común que no deben mantener en secreto. El color acordado en nuestro ejemplo es el amarillo.
Luego, Alice y Bob seleccionan un color secreto cada uno. Alice eligió rojo y Bob, azul. Nunca compartirán estos colores secretos con nadie. El color secreto representa la clave privada secreta que cada parte eligió.
Ahora, Alice y Bob mezclan el color común compartido (amarillo) con su color secreto respectivo para producir un color público. Por lo tanto, Alice mezcla el amarillo con el rojo para obtener el anaranjado como color público. Bob mezcla el amarillo y el azul para obtener verde como color público
Alice envía su color público (anaranjado) a Bob y Bob le envía el suyo (verde) a Alice.
Alice y Bob mezclan cada uno el color que recibieron con su propio color secreto original (rojo para Alice y azul para Bob). El resultado es una mezcla final de color marrón que es idéntica a la mezcla final del otro participante. El color marrón representa la clave secreta que comparten Bob y Alice.
La seguridad del algoritmo de DH se basa en el hecho de que utiliza números increíblemente grandes en sus cálculos. Por ejemplo, un número del algoritmo de DH de 1024 bits es aproximadamente igual a un número decimal de 309 dígitos. Considerando que mil millones tiene 10 dígitos decimales (1,000,000,000), es posible imaginar fácilmente la complejidad de trabajar no con uno, sino con varios números decimales de 309 dígitos.
Diffie-Hellman utiliza grupos de DH diferentes para determinar la solidez de la clave que se utiliza en el proceso de acuerdo de clave. Los grupos superiores de números son más seguros, pero requieren tiempo adicional para calcular la clave. A continuación, se identifican los grupos de DH compatibles con el Software Cisco IOS y su valor asociado de número primo:
- DH Group 1: 768 bits
- DH Group 2: 1024 bits
- DH Group 5: 1536 bits
- DH Group 14: 2048 bits
- DH Group 15: 3072 bits
- DH Group 16: 4096 bits
Nota: Un acuerdo de clave de DH también puede estar basado en la criptografía de curva elíptica. Los grupos de DH 19, 20 y 24, los cuales están basados en la criptografía de curva elíptica, son compatibles con el software Cisco IOS.
Desafortunadamente, los sistemas de clave asimétrica son extremadamente lentos para cualquier tipo de encriptación masiva. Por esto, es común encriptar la mayor parte del tráfico utilizando un algoritmo simétrico (como 3DES o AES) y dejar el algoritmo de DH para crear claves que serán utilizadas por el algoritmo de encriptación.
21.2.8. Video – Criptografía
Ver el video para obtener más información sobre la criptografía.
21.2.10. Práctica de laboratorio: Encriptar y Desencriptar Datos Utilizando OpenSSL
En esta práctica de laboratorio cumpliremos los siguientes objetivos:
- Encriptar mensajes con OpenSSL
- Desencriptar mensajes con OpenSSL
21.2.11. Práctica de laboratorio: Encriptar y Desencriptar Utilizando una Herramienta de Hacker
En esta práctica de laboratorio cumpliremos los siguientes objetivos:
- Escenario de Configuración
- Crear y Encriptar Archivos
- Recuperar Contraseñas de Archivos Zip Encriptados
21.2.12. Práctica de laboratorio: Examinación de Telnet y SSH en Wireshark
En esta práctica de laboratorio cumpliremos los siguientes objetivos:
- Examinar una Sesión de Telnet con Wireshark
- Examinar una Sesión de SSH con Wireshark
21.3. Criptografía de Clave Pública
21.3.1. Uso de Firmas Digitales
Las firmas digitales son una técnica matemática empleada para brindar autenticidad, integridad, y no repudio (osea, que no se rechaze el mensaje al negar ser el remitente o el receptor) Las firmas digitales tienen propiedades específicas que permiten la autenticación de la entidad y la integridad de los datos. Además, las firmas digitales proporcionan no repudio a la transacción. En otras palabras, la firma digital sirve como prueba legal de que el intercambio de datos tuvo lugar. Las firmas digitales usan criptografía asimétrica.
Hacer clic en los botones para explorar las propiedades de las firmas digitales.
- Auténtica
- Inalterable
- No reutilizable.
- No repudiado
Las firmas digitales se utilizan comúnmente en las siguientes dos situaciones:
- Firma de código – Se utiliza para fines de integridad y autenticación de datos. La firma de código se utiliza para verificar la integridad de los archivos ejecutables descargados del sitio web de un proveedor. También utiliza certificados digitales firmados para autenticar y verificar la identidad de un sitio de donde provienen los archivos.
- Certificados digitales – Son similares a una tarjeta de Identificación virtual y se usan para autenticar la identidad del sistema con un sitio web de un proveedor, además de establecer una conexión encriptada para intercambiar datos confidenciales.
Se utilizan tres algoritmos DSS para generar y verificar firmas digitales:
- Algoritmo de Firma Digital (Digital Signature Algorithm DSA) – DSA es el estándar original para generar pares de claves públicas y privadas, y para generar y verificar firmas digitales.
- Algoritmo de Rivest-Shamir-Adelman (RSA) RSA es un algoritmo asimétrico que se utiliza comúnmente para generar y verificar firmas digitales.
- Algoritmo de Firma Digital de Curva Elíptica ( Eliptic Curve Digital Signature Algorithm ECDSA) – ECDSA es una nueva variante de DSA y proporciona autenticación de firma digital y no repudio, con los beneficios agregados de eficiencia informática, tamaños de firma pequeños y ancho de banda mínimo.
En los noventa, RSE Security Inc. comenzó a publicar Estándares de Criptografía de Clave Pública (public-key cryptograhy standards PKCS) Hubo 15 PKCS, aunque se ha retirado uno desde el momento en que se escribió el presente contenido. RSE publicó estos estándares porque tenía las patentes para los estándares y deseaba promocionarlos. Los PKCS no son estándares industriales, pero son bien reconocidos en la industria de la seguridad y, recientemente, han comenzado a llamar la atención de organizaciones de estándares, como IETF y el grupo de trabajo PKIX.
21.3.2. Firmas Digitales para la Firma de Código
Las firmas digitales suelen usarse para proporcionar certeza de la autenticidad e integridad del código de software. Los archivos ejecutables están dentro de un sobre firmado digitalmente, lo que le permite al usuario final verificar la firma antes de instalar el software.
Firmar código en forma digital proporciona varias garantías con respecto al código:
- El código es auténtico y realmente es provisto por el editor.
- El código no se ha modificado desde que salió del editor de software.
- El editor definitivamente publicó el código. Esto proporciona no repudio de la acción de la publicación.
La publicación 140-3 de los Estándares Federales de Procesamiento de la Información (Federal Information Processing Standard FIPS) del gobierno de EE.UU. especifica que el software disponible para descargar de Internet debe estar firmado y verificado digitalmente. El propósito del software firmado digitalmente es asegurar que no se alteró y que, como se dice, proviene de una fuente de confianza. Las firmas digitales sirven como verificación de que el código no ha sido manipulado por agentes de amenazas y que un tercero no ha insertado código malicioso en el archivo.
Hacer clic en los botones para acceder a las propiedades de un archivo que tiene un certificado firmado digitalmente.
- Propiedades de archivo
- Firmas digitales
- Detalles de la Firma Digital
- Información sobre Certificados
- Ruta de Certificación
21.3.3. Firmas digitales para Certificados Digitales
Un certificado digital es equivalente a un pasaporte electrónico. Permite que los usuarios, hosts y organizaciones intercambien información de manera segura en Internet. Específicamente, un certificado digital se usa para autenticar y verificar que los usuarios que envían un mensaje son quienes afirman ser. Los certificados digitales también pueden usarse para garantizar la confidencialidad del receptor con los medios necesarios para encriptar una respuesta.
Los certificados digitales son similares a los certificados físicos. Por ejemplo, el certificado Cisco Certified Network Associate Security (CCNA-S) en papel (Figura 1) permite identificar a quién se emitió el certificado, quién lo autorizó y el plazo de validez. Los certificados digitales también proporcionan información similar.
El certificado digital verifica de forma independiente una identidad. Las firmas digitales se utilizan para verificar que un artefacto, como un archivo o mensaje, se envía desde la persona verificada. En otras palabras, un certificado verifica la identidad, una firma verifica que algo proviene de esa identidad.
Este escenario le ayudará a comprender cómo se utiliza una firma digital. Bob confirma un pedido con Alice. Alice está ordenando desde el sitio web de Bob. Alice se ha conectado con el sitio web de Bob, y después de verificar el certificado, el certificado de Bob se almacena en el sitio web de Alice. El certificado contiene la clave pública de Bob. La clave pública se utiliza para verificar la firma digital de Bob.
Consulte la figura para ver cómo se utiliza la firma digital.
Bob confirma la orden y su computadora crea un hash de la confirmación. La computadora encripta el hash con la clave privada de Bob. El hash encriptado, conocido como la firma digital, se adjunta al documento. La confirmación del pedido se envía a Alice por medio de Internet.
Cuando Alice recibe la firma digital, se produce el siguiente proceso.
- El dispositivo receptor de Alice acepta la confirmación del pedido con la firma digital y obtiene la clave pública de Bob.
- Despues de eso, la computadora de Alice desencripta la firma utilizando la clave pública de Bob. Este paso revela el valor supuesto del hash del dispositivo remitente.
- La computadora de Alice crea un hash del documento recibido (sin su firma) y lo compara con el hash de la firma desencriptada. Si los hashes coinciden, el documento es auténtico. Es decir, se confirma que fue enviado por Bob y que no se modificó desde que se firmó.
21.4. Las Autoridades y el Sistema de Confianza de PKI
21.4.1. Administración de Claves Públicas
El tráfico de Internet se compone de tráfico entre dos participantes. Cuando se establece una conexión asimétrica entre dos hosts, estos intercambian su información de clave pública.
Un certificado SSL es un certificado digital que confirma la identidad de un dominio de sitio web. Para implementar SSL en un sitio web propio, debemos comprar un certificado SSL para nuestro dominio a un proveedor de Certificados SSL. El tercero de confianza realiza una investigación exhaustiva antes de emitir las credenciales. Después de esta investigación exhaustiva, el tercero emite credenciales (es decir, el certificado digital) que son difíciles de falsificar. Desde ese momento, todas las personas que confían en el tercero simplemente aceptan las credenciales que emite el tercero. Cuando las computadoras intentan conectarse a un sitio web a través de HTTPS, el navegador web comprueba el certificado de seguridad del sitio web y comprueba que es válido y se originó con una CA de confianza. Esto valida que la identificación del sitio web es verdadera. El certificado se guarda localmente por el navegador web y luego se utiliza en transacciones posteriores. La clave pública del sitio web se incluye en el certificado y se utiliza para verificar futuras comunicaciones entre el sitio web y el cliente.
Estos terceros de confianza proporcionan servicios similares a las agencias gubernamentales de concesión de licencias. En la figura, se muestra la analogía entre una licencia de conducir y un certificado digital.
La Infraestructura de Claves Públicas ( Public Key Infrastructure PKI) consiste en especificaciones, sistemas, y herramientas que se utilizan para crear, administrar, almacenar, distribuir y revocar certificados digitales. La Autoridad de Certificados ( Certificate Authority CA) es una organización que crea certificados digitales vinculando una clave pública a una identificación confirmada, como un sitio web o un individuo. La PKI es un sistema intrincado que está diseñado para salvaguardar las identidades digitales contra el hacking, incluso por los agentes de amenaza más sofisticados o estados nacionales.
Algunos ejemplos de CA son IDentrust, DigiCert, Sectigo, GlobalSign y GoDaddy. Estas CA pueden cobrar una tarifa por sus servicios. Let’s Encrypt es una CA sin fines de lucro que ofrece certificados de forma gratuita.
21.4.2. La Infraestructura de Claves Públicas (Public Key Infrastructure PKI)
La PKI es necesaria para admitir la distribución e identificación a gran escala de claves de encriptación públicas. El marco de trabajo de la PKI permite una relación de confianza altamente escalable.
Consiste en el hardware, software, personas, políticas y los procedimientos necesarios para crear, administrar, almacenar, distribuir y revocar certificados digitales.
La figura muestra los principales elementos de la PKI.
- Los certificados PKI contienen una clave pública de una entidad o una persona, su propósito, la autoridad certificadora (certificate authority CA) que validó y emitió el certificado, el plazo durante el cual el certificado se puede considerar válido y el algoritmo utilizado para crear la firma.
- El almacén de certificados reside en una computadora local y almacena certificados emitidos y claves privadas.
- La Autoridad de Certificación de PKI es un tercero de confianza que emite certificados PKI a entidades y personas luego de verificar sus respectivas identidades. La persona o entidad firma estos certificados utilizando su clave privada.
- En la base de datos de certificados se almacenan todos los certificados aprobados por la CA.
La siguiente figura muestra cómo interoperan los elementos de la PKI:
- En el ejemplo, Bob ha recibido su certificado digital de la CA. Este certificado se utiliza cada vez que Bob se comunica con otras partes.
Bob se comunica con Alice. - Cuando Alice recibe el certificado digital de Bob, ella se comunica con la CA de confianza para validar la identidad de Bob.
- Emite el certificado PKI Bob pide inicialmente un certificado de la CA. La CA autentica a Bob y almacena el certificado de PKI de Bob en la base de datos de certificados.
- Intercambia el certificado de PKI. Bob se comunica con Alice mediante su certificado de PKI.
- Verifica el certificado de PKI. Alice se comunica con la CA de confianza usando la clave pública de la CA. La CA consulta a la base de datos de certificados para validar el certificado PKI de Bob.
Nota: No todos los certificados de PKI se reciben directamente de una CA. Una autoridad de registro (Registration Authority RA) es una CA secundaria y está certificada por una CA principal para emitir certificados para usos específicos.
21.4.3. El sistema de autoridades de la PKI
Muchos proveedores proporcionan servidores de CA como un servicio administrado o como un producto para usuarios finales. Algunos de estos proveedores son Symantec Group (VeriSign), Comodo, Go Daddy Group, GlobalSign y DigiCert, entre otros.
Las organizaciones también pueden implementar PKI privadas utilizando Microsoft Server u Open SSL.
Las CA, especialmente aquellas tercerizadas, emiten certificados basados en clases que determinan cuán confiable es un certificado.
La tabla proporciona una descripción de las clases. El número de clase es determinado por el nivel de rigurosidad del procedimiento al momento de verificar la identidad del titular cuando se emitió el certificado. Cuanto mayor sea el número de clase, más confiable será el certificado. Por lo tanto, un certificado de clase 5 es mucho más confiable que un certificado de una clase inferior.
Clase | Descripción |
---|---|
0 | Se utiliza con fines de pruebas en situaciones en las que no se ha realizado ninguna comprobación. |
1 | Utilizado por personas que requieren verificación de correo electrónico. |
2 | Se utiliza por organizaciones en las que se requiere demostrar la identidad. |
3 | Se utiliza para la firma de servidores y software. La autoridad de certificación realizó la verificación y comprobación de identidad y autoridad |
4 | Se utiliza para transacciones comerciales en línea entre empresas. |
5 | Se utiliza para organizaciones privadas o agencias de seguridad gubernamentales. |
Por ejemplo, un certificado de clase 1 podría requerir una respuesta de correo electrónico del titular para confirmar que desea inscribirse. Este tipo de confirmación es una autenticación débil del titular. En el caso de un certificado de clase 3 o 4, el futuro titular debe probar su identidad y autenticar la clave pública presentándose en persona con, al menos, dos documentos de identificación oficiales.
Algunas claves públicas de la CA están precargadas, como las que aparecen en los navegadores web. En la figura, se ven varios certificados de VeriSign que están en el almacén de certificados en el host. El navegador considerará como legítimo cualquier certificado firmado por cualquiera de las CA de la lista y confiará automáticamente.
Nota: Una empresa también puede implementar una PKI para uso interno. La PKI puede utilizarse para autenticar a los empleados que tengan acceso a la red. En este caso, la empresa es su propia CA.
21.4.4. El sistema de confianza de la PKI
Las PKI pueden formar distintas topologías de confianza. La más simple es la topología de PKI de raíz única
Como se ve en la figura abajo, una sola CA, llamada la CA raíz, emite todos los certificados a los usuarios finales, que suelen encontrarse dentro de la misma organización. El beneficio de este enfoque es su sencillez. Sin embargo, es difícil llevar esta estructura a un entorno grande, ya que requiere una administración estrictamente centralizada que crea un punto único de falla.
Topología Single-Root PKI
En redes mayores, las CA de la PKI pueden vincularse con dos arquitecturas básicas:
Topologías de CA con certificación cruzada – Como se ve en la figura abajo, este es un modelo punto a punto en el que las CA individuales establecen relaciones de confianza con otras CA mediante la certificación cruzada de certificados de CA. Los usuarios de cualquiera de los dominios de CA pueden estar seguros de que pueden confiar el uno en el otro. Esto proporciona redundancia y elimina el punto único de falla.
The figure shows the same set up as the previous single-root p k i topology, but it is labeled c a 1. there is a two way arrow between this topology and another of the same topology labeled c a 2. an arrow points from the c a 2 topology to another of the same topology labeled c a 3.
Certificación Cruzada CA
Topologías de CA jerárquicas – Como se ve en la figura abajo, la CA de máximo nivel se llama CA raíz. Puede emitir certificados a usuarios finales y a una CA secundaria. Las CA secundarias pueden crearse para respaldar diversas unidades de negocio, dominios o comunidades de confianza. La CA raíz mantiene la “comunidad de confianza” establecida, al asegurar que cada entidad de la jerarquía se ajuste a un conjunto mínimo de prácticas. Algunos beneficios de esta topología son escalabilidad y capacidad de administración aumentadas. Esta topología funciona bien en la mayoría de las organizaciones grandes. Sin embargo, puede ser difícil determinar la cadena del proceso de firma.
Las topologías jerárquica y de certificación cruzada pueden combinarse para crear una infraestructura híbrida. Un ejemplo sería cuando dos comunidades jerárquicas quieren realizar la certificación cruzada entre ellas para que los miembros de cada comunidad confíen entre sí.
The figure shows a server labeled root c a with a certificate next to it. There are two arrows each pointing to a subordinate c a each with a single-root pki topology.
CA Jerárquico
21.4.5. Interoperabilidad de los diferentes proveedores de PKI
La interoperabilidad entre una PKI y sus servicios de soporte, por ejemplo el protocolo LDAP y los directorios X.500, es una preocupación porque muchos proveedores de CA han propuesto e implementado soluciones propias en lugar de esperar a que se desarrollen estándares.
Nota: LDAP y X.500 son protocolos que se utilizan para consultar un servicio de directorios, como Microsoft Active Directory, para verificar un nombre de usuario y una contraseña.
Para abordar esta preocupación sobre la interoperabilidad, la IETF publicó el Marco de trabajo de prácticas y políticas de certificación de PKI, de Internet X.509 (RFC 2527). El estándar X.509 versión 3 (X.509v3) define el formato de un certificado digital.
Consulte la figura para obtener más información sobre las aplicaciones X.509 v3. Como se ve en la figura, el formato X.509 ya se usa ampliamente en la infraestructura de Internet.
Aplicaciones X.509v3
- SSL – Los servidores web seguros utilizan X.509v3 para la autenticación de sitios web en los protocolos SSL y TLS mientras que los navegadores web utilizan X.509v3 para implementar certificados de clientes HTTPS. SSL es la autenticación basada en certificados más utilizada.
- IPsec – Las redes VPN IPsec utilizan X.509 cuando se pueden utilizar certificados como mecanismo de distribución de claves públicas para la autenticación basada en RSA de intercambio de claves de internet (internet key exhange IKE).
- S/MIME – Los agentes de correo de usuarios que admiten la protección de correo con el protocolo de Extensiones Seguras Multipropósito de Correo de Internet (S/MIME, siglas en inglés) utilizan certificados X.509.
- EAP-TLS – Los switches de Cisco pueden utilizar los certificados para autenticar los dispositivos finales que se conectan a puertos de LAN utilizando 802.1X entre los dispositivos adyacentes. La autenticación se puede transmitir por proxy a un ACS central a través del Protocolo de autenticación extensible con TLS (EAP-TLS, siglas en inglés).
21.4.6. Inscripción, autenticación y revocación de certificados
En el procedimiento de autenticación de CA, el primer paso es obtener una copia segura de la clave pública de la CA. Todos los sistemas que utilizan el PKI deben tener la clave pública de la CA, que se llama certificado autofirmado. La clave pública de la CA verifica todos los certificados emitidos por la CA y es vital para el correcto funcionamiento del PKI.
Nota: Sólo una CA raíz puede emitir un certificado autofirmado que sea reconocido o verificado por otras CA dentro de la PKI.
Para muchos sistemas, como los navegadores web, la distribución de los certificados de CA se maneja automáticamente. El navegador web trae preinstalado un conjunto de certificado raíz de CA públicos. Las organizaciones y sus dominios de sitios web envian sus certificados públicos a los visitantes del sitio web. Las CA y los registradores de dominios de certificados crean y distribuyen certificados privados y públicos a los clientes que compran certificados.
Un sistema de host utiliza el proceso de inscripción de certificado para inscribirse en una PKI. Para hacerlo, se obtienen los certificados de CA transmisión en banda en una red y la autenticación se realiza en transmisión fuera de banda (out-of-band OOB) utilizando el teléfono. El sistema que se inscribirá en la PKI se pone en contacto con una CA para solicitar y obtener un certificado de identidad digital para sí mismo y para obtener el certificado autofirmado de la CA. En la etapa final, se verifica la autenticidad del certificado de CA utilizando un método fuera de banda como el Sistema de Servicio Telefónico Analógico (Plain OLd Telephone System POTS), para obtener la huella digital del certificado de identidad válido de CA.
La autenticación ya no requiere la presencia del servidor de CA y cada usuario intercambia sus certificados que contienen las claves públicas.
A veces, se debe revocar el certificado. Por ejemplo, un certificado digital se puede revocar si la clave está en riesgo o si ya no es necesario.
Estos son dos de los métodos más comunes de revocación:
- Lista de revocación de certificado (Certificate Revocation List CRL) – Una lista de números de serie de certificados revocados que ya no son válidos porque caducaron. Las entidades de PKI sondean periódicamente el repositorio de CRL para recibir la CRL más actual.
- Protocolo de estado de certificado en línea (Online Certificate Status Protocol OCSP) Un protocolo de Internet utilizado para consultar un servidor de OCSP y comprobar el estado de revocación de un certificado digital X.509. La información sobre revocación se publica inmediatamente en una base de datos en línea.
21.4.7. Práctica de laboratorio: Almacenes de autoridades emisoras de certificados
En esta práctica de laboratorio se cumplirán los siguientes objetivos:
- Certificados de confianza de los navegadores
- Buscar ataques MITM
21.5. Aplicaciones e impactos de la criptografía
21.5.1. Aplicaciones de PKI
¿Dónde puede usar PKI en una empresa? A continuación, se detalla una breve lista de usos comunes de las PKI:
- Autenticación de pares basada en certificados SSL/TLS
- Asegurar tráfico de red utilizando redes VPN IPsec
- Tráfico web HTTPS
- Control de acceso a la red mediante la autenticación 802.1x
- Protección de correo electrónico utilizando el protocolo S/MIME
- Protección de mensajería instantánea
- Aprobación y autorización de aplicaciones con firma de código
- Protección de datos de usuarios con el Sistema de Archivos de Encriptación (Encryption File System EFS)
- Implementación de autenticación de dos factores con tarjetas inteligentes
- Protección de dispositivos de almacenamiento USB
21.5.2. Encriptación de transacciones en la red
Un analista de seguridad debe ser capaz de reconocer y resolver problemas potenciales relacionados a permitir el uso de soluciones relacionadas con PKI en la red empresarial.
Tenga en cuenta la manera en que el crecimiento del tráfico de SSL/TLS constituye un riesgo grave de seguridad para las empresas, ya que el tráfico está encriptado y no puede interceptarse ni monitorearse con los métodos normales. Los usuarios pueden introducir malware o filtrar información confidencial en una conexión SSL/TLS.
Los agentes de amenaza pueden utilizar SSL/TLS para introducir violaciones de cumplimiento reglamentario, virus y malware, o provocar pérdida de datos e intentos de intrusión en una red.
Otros problemas relacionados con SSL/TLS pueden vincularse a la validación del certificado de un servidor web. Cuando esto ocurre, los navegadores web muestran una advertencia de seguridad. Algunos de los problemas relacionados con la PKI que están vinculados a advertencias de seguridad son los siguientes:
- Plazo de validez – Los certificados X.509v3 especifican fechas de inicio y fin de validez. Si la fecha actual está fuera del rango, el navegador web muestra un mensaje. Los certificados caducados pueden deberse simplemente a una distracción del administrador, pero también pueden reflejar problemas más graves.
- Error de validación de firma – Si un navegador no puede validar la firma en el certificado, no hay ninguna garantía de que la clave pública en el certificado sea auténtica. Ocurrirá un error con la validación de la firma si el certificado raíz de la jerarquía de la CA no está disponible en el almacén de certificados del navegador.
En la figura, se ve un ejemplo de un error de validación de firma con Cisco AnyConnect Mobility VPN Client.
Error de validación de firma
Algunos de estos problemas pueden evitarse gracias a que los protocolos SSL/TLS son extensibles y modulares. Esto se conoce como un conjunto de cifrado. Los componentes clave del conjunto de cifrado son: el algoritmo de Código de Autenticación de Mensajes (Authentication Code Algorithm MAC), el algoritmo de encriptación, el algoritmo de intercambio de claves y el algoritmo de autenticación. Estos pueden cambiarse sin reemplazar todo el protocolo. Esta función resulta muy útil, ya que los diferentes algoritmos continúan evolucionando. A medida que el criptoanálisis sigue revelando defectos en estos algoritmos, el conjunto de cifrado se puede actualizar para colocar parches en estos defectos. Cuando las versiones del protocolo dentro del conjunto de cifrado cambian, el número de versión de SSL/TLS también lo hace.
21.5.3. Encriptación y monitoreo de seguridad
El monitoreo de red se vuelve más difícil cuando los paquetes están encriptados. Sin embargo, los analistas de seguridad deben conocer esas dificultades y abordarlas lo mejor posible. Por ejemplo, cuando se utilizan VPN de sitio a sitio, el IPS debe colocarse de modo que pueda monitorear el tráfico sin encriptar.
Sin embargo, el aumento de HTTPS en la red empresarial supone nuevos desafíos. Dado que HTTPS introduce tráfico HTTP encriptado de punto a punto (mediante TLS/SSL), no es tan fácil observar el tráfico de los usuarios.
Los analistas especializados en seguridad deben saber cómo sortear y resolver estos problemas. Aquí vemos una lista de algunas de las medidas que podría tomar un analista especializado en seguridad:
- Configurar reglas para distinguir entre tráfico SSL y no SSL, o entre tráfico SSL de HTTPS y no HTTPS.
- Aumentar la seguridad mediante la validación de certificados de servidor usando CRL y OCSP.
- Implementar protección antimalware y filtrado URL de contenido HTTPS.
- Implementar un dispositivo Cisco SSL para desencriptar el tráfico SSL y enviarlo a dispositivos de Sistema de Prevención de Intrusiones (intrusion prevention system IPS) para identificar riesgos normalmente ocultos para SSL.
La criptografía es dinámica y siempre cambia. Un analista de seguridad debe comprender bien los algoritmos y las operaciones criptográficas para poder investigar los incidentes de seguridad relacionados con la criptografía.
Hay dos maneras principales en las que la criptografía afecta las investigaciones de seguridad. En primer lugar, los ataques pueden dirigirse específicamente a los algoritmos de encriptación propiamente dichos. Después de que se descodifica el algoritmo y el atacante obtiene las claves, es posible desencriptar y leer todos los datos encriptados que recopile el atacante, lo que expone los datos privados. Luego de esto, la investigación de seguridad también se ve afectada porque los datos se pueden ocultar a plena vista, encriptándolos. Por ejemplo, es muy probable que un firewall no vea el tráfico de control y comando que se encripte con TLS/SSL. Si no es posible ver y comprender el tráfico de control y comando entre un servidor de control y comando y una computadora infectada en una red segura, tampoco se puede detener. El atacante podría continuar usando comandos encriptados para infectar más computadoras y, posiblemente, crear una botnet. Es posible detectar este tipo de tráfico si se desencripta el tráfico y se lo compara con firmas de ataques conocidos, o si se detecta tráfico anómalo de TLS/SSL. Esto es muy difícil y lento, y la eficacia del proceso no está garantizada.
21.6. Resumen de Criptografía
21.6.1. ¿Qué aprendimos en este módulo?
Cómo proteger las comunicaciones
Las organizaciones deben proporcionar soporte para proteger los datos a medida que viajan a través de enlaces. Los cuatro elementos de las comunicaciones seguras son: integridad de datos, autenticación de origen, confidencialidad de datos y no repudio de datos. La criptografía puede usarse casi en cualquier lugar donde haya comunicación de datos. Los hash criptográficos se usan para comprobar y garantizar la integridad de los datos. El hashing se basa en una función matemática unidireccional que es relativamente fácil de computar, pero mucho más difícil de revertir. La función de hash criptográfico puede utilizarse también para verificar la integridad Una función de hash toma un bloque variable de datos binarios, denominado mensaje, y produce una representación condensada de longitud fija, denominada hash. Hay cuatro funciones hash conocidas: MD5 con resumen de 128 bits, SHA-1, SHA-2 y SHA-3. Mientras que el hash se puede utilizar para detectar modificaciones accidentales, no brinda protección contra cambios deliberados hechos por un agente de amenaza. El hash es vulnerable a los ataques MITM. Para proporcionar integridad y autenticación de origen, se necesita algo más. Para agregar autenticación al control de integridad, se usa un Código de Autenticación de Mensajes basado en Hash (Hashed Message Authentication Codes HMAC) con clave. Los HMAC utilizan una clave secreta adicional como entrada a la función de hash.
Confidencialidad de los datos
Hay dos clases de encriptación utilizadas para brindar confidencialidad de los datos: asimétrica y simétrica. Estas dos clases se diferencian en cómo utilizan las claves. Los algoritmos de encriptpación simétricos como DES, 3DES y el estándar AES se basan en la premisa de que cada parte que se comunica conoce la clave precompartida. La confidencialidad de los datos también se puede garantizar utilizando algoritmos asimétricos, incluidos RSA y PKI. Los algoritmos simétricos se usan normalmente con el tráfico de VPN porque utilizan menos recursos de CPU que los algoritmos de encriptación asimétrica. Los algoritmos de encriptación simétrica a menudo se clasifican como: cifrados por bloque o cifrados de flujo. Los algoritmos asimétricos, también llamados algoritmos de claves públicas, están diseñados para que la clave de encriptación y la de desencriptación sean diferentes. Los algoritmos asimétricos utilizan una clave pública y una privada. Algunos ejemplos de protocolos que utilizan algoritmos de claves asimétricos son: IKE, SSL, SSH, y PGP. Ejemplos comunes de algoritmos de encriptación asimétricos incluyen DSS, DSA, RSA, EIGaMal y técnicas de curva elíptica. Los algoritmos asimétricos se usan para brindar confidencialidad sin compartir previamente una contraseña. El proceso se puede resumir mediante la fórmula: Clave pública (Encriptar) + Clave privada (Desencriptar) = Confidencialidad El objetivo de autenticación de los algoritmos asimétricos se inicia cuando comienza el proceso de encriptación con la clave privada. El proceso se puede resumir mediante la fórmula: Clave privada (Encriptar) + Clave pública (Desencriptar) = Autenticación. Combinar los dos procesos de encriptación asimétrica proporciona confidencialidad, autenticación e integridad de los mensajes. Diffie-Hellman (DH) es un algoritmo de ecuación matemática asimétrico que permite que dos computadoras generen una clave secreta idéntica compartida sin antes haberse comunicado. Dos ejemplos de instancias cuando se utiliza DH son cuando los datos son intercambios mediante una VPN IPsec y cuando se intercambian datos SSH.
Criptografía de clave pública
Las firmas digitales son una técnica matemática empleada para brindar 3 servicios de seguridad básicos: autenticidad, integridad, y no repudio (osea, que no se rechaze el mensaje al negar ser el remitente o el receptor) Las propiedades de la firma digital son: que son auténticas, inalterables, no reutilizables y no repudiadas. Las firmas digitales se utilizan comúnmente en las siguientes dos situaciones: firma de código y certificados digitales Existen tres algoritmos DSS que se utilizan para generar y verificar firmas digitales: Algoritmo de Firma Digital (Digital Signature Algorithm DSA), algoritmo Rivet-Shamir Adelman (Rivet-Shamir Adelman Algorithm RSA) y Algoritmo de Firma Digital de Curva Elíptica (Elliptical Curve Digital Signature Algorithm ECDSA). El código de firma digital proporciona garantías sobre el código de software: el código es auténtico y en realidad es originado por el editor, el código no ha sido modificado desde que salió del editor del software, y el editor innegablemente publicó el código. Un certificado digital es equivalente a un pasaporte electrónico. Permite que los usuarios, hosts y organizaciones intercambien información de manera segura en Internet. Específicamente, un certificado digital se usa para autenticar y verificar que los usuarios que envían un mensaje son quienes afirman ser.
Autoridades y el sistema de confianza de PKI
Cuando se establece una conexión segura entre dos hosts, estos intercambian su información de clave pública. Existen terceros de confianza de Internet que validan la autenticidad de estas claves públicas mediante certificados digitales. La Infraestructura de Claves Públicas (Public Key Infrastructure PKI) consiste en especificaciones, sistemas, y herramientas que se utilizan para crear, administrar, almacenar, distribuir, utilizar, y revocar certificados digitales. La PKI es necesaria para admitir la distribución e identificación a gran escala de claves de encriptación públicas. El marco de trabajo de PKI permite una relación de confianza altamente escalable. Muchos proveedores proporcionan servidores de CA como un servicio administrado o como un producto para usuarios finales. Algunos de estos proveedores son: Symantec Group (VeriSign), Comodo, Go Daddy Group, GlobalSign y DigiCert, entre otros. El número de clase (entre 0 y 5) es determinado por el nivel de rigurosidad del procedimiento al momento de verificar la identidad del titular cuando se emitió el certificado, siendo que 5 es el mayor. Las PKI pueden formar distintas topologías de confianza. La más simple es la topología de PKI de raíz única. La interoperabilidad entre una PKI y sus servicios de soporte, por ejemplo el protocolo LDAP y los directorios X.500, es una preocupación porque muchos proveedores de CA han propuesto e implementado soluciones propias en lugar de esperar a que se desarrollen estándares. Para abordar esta preocupación sobre la interoperabilidad, la IETF publicó las Políticas de certificación y el Marco de trabajo de certificación de PKI, de Internet X>509 (RFC 2527).
Aplicaciones e impactos de la criptografía
Hay muchos usos comunes de las PKI, incluidos algunos enunciados aquí: autenticación de pares basada en certificados SSL/TLS, tráfico web HTTPS, mensajes instantáneos seguros y protección de dispositivos de almacenamiento USB. Un analista de seguridad debe ser capaz de reconocer y resolver problemas potenciales relacionados a permitir el uso de soluciones relacionadas con PKI en la red empresarial. Por ejemplo: los agentes de amenaza pueden utilizar SSL/TLS para introducir violaciones de cumplimiento reglamentario, virus y malware, o provocar pérdida de datos e intentos de intrusión en una red. Otros problemas relacionados con SSL/TLS pueden asociarse a la validación del certificado de un servidor web. Algunos de los problemas relacionados con la PKI que están asociados a advertencias de seguridad son los siguientes: Algunos de estos problemas pueden evitarse gracias a que los protocolos SSL/TLS son extensibles y modulares. Esto se conoce como el conjunto de cifrado. Los componentes clave del conjunto de cifrado son el algoritmo MAC, el algoritmo de encriptación, el algoritmo de intercambio de claves y el algoritmo de autenticación. La criptografía es dinámica y siempre cambia. Debemos comprender bien los algoritmos y las operaciones para poder investigar los incidentes de seguridad relacionados con la criptografía. Las comunicaciones encriptadas pueden hacer que las cargas útiles de datos de seguridad de red sean ilegibles por los analistas de ciberseguridad. La encriptación se puede utilizar para ocultar comandos de malware y controlar el tráfico entre los hosts infectados y los servidores de control y comando. Además, el malware puede ocultarse mediante la encriptación y los datos pueden encriptarse durante la exfiltración, lo que dificulta su detección.