Criptografía para Seguridad Redes CCNA

Criptografía

Criptografía
5

Resumen

Se describe los procesos criptográficos comunes utilizados para proteger los datos en tránsito. ¡¡Empieza a aprender CCNA 200-301 gratis ahora mismo!!

¡Bienvenido!: Este tema forma parte del Módulo 3 del curso de Cisco CCNA 3, para un mejor seguimiento del curso puede ir a la sección CCNA 3 para guiarte del índice.

1. Vídeo – Criptografía

Al principio del tema anterior, la criptografía se menciona como parte de la tríada CID de seguridad de la información. En este tema, profundizarás en los muchos tipos de criptografía y cómo se utilizan para proteger la red.

Haz clic en Reproducir en la figura para ver un video sobre criptografía.

2. Asegurando 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 partners.

Estos son los cuatro elementos de las comunicaciones seguras:

  • Integridad de los Datos – Garantiza que el mensaje no se haya modificado. Se detecta cualquier cambio en los datos en tránsito. La integridad se garantiza mediante la aplicación de los algoritmos de generación de hash Message Digest versión 5 (MD5) o Secure Hash (SHA).
  • Autenticación de origen – Para garantizar que el mensaje no sea falso y que el remitente sea el verdadero. Muchas redes modernas garantizan la autenticación con protocolos, como el código de autenticación de mensaje hash (HMAC, Hash Message Authentication Code).
  • 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 plazo razonable. La confidencialidad de los datos se implementa utilizando algoritmos de encriptación simétrica y asimétrica.
  • No repudio de 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 cifrará.


3. Integridad de Datos

Las funciones de hash se utilizan para garantizar la integridad de un mensaje. Garantizan que los datos del mensaje no hayan cambiado accidental o intencionalmente.

En la figura, el remitente envía una transferencia de USD $100 a Alex.

Algoritmos de Hash

Algoritmos de Hash
Algoritmos de Hash

El remitente quiere asegurarse de que el mensaje no se altere en su camino hacia el receptor.

  • El dispositivo emisor introduce el mensaje en un algoritmo de hash y calcula su hash de longitud fija de 4ehiDx67NMop9.
  • Este hash se adjunta al mensaje y se envía al receptor. Tanto el mensaje como el hash están 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, el mensaje no ha sido alterado durante el tránsito. Si los hashes no son iguales, como se muestra en la figura, entonces ya no se puede confiar en la integridad del mensaje.

4. Función de Hash

Existen tres funciones de hash muy conocidas:

MD5 con 128 bits

MD5 es una función unidireccional que produce un mensaje hash de 128 bits, como se muestra en la figura. MD5 es un algoritmo heredado que solo debe usarse cuando no hay mejores alternativas disponibles. Usa SHA-2 en su lugar.

MD5 con 128 bits
MD5 con 128 bits

En la figura, un mensaje de texto plano se pasa a través de una función hash MD5. El resultado es un mensaje hash de 128 bits.

Algoritmo de Hashing de SHA

SHA-1 es muy similar a las funciones hash MD5, como se muestra en la figura. 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. Usa SHA-2 cuando sea posible.

Algoritmo de Hashing SHA
Algoritmo de Hashing SHA

En la figura, un mensaje de texto plano se pasa a través de una función hash del SHA. El resultado es un mensaje de hash.

SHA-2

Esto incluye SHA-224 (224 bit), SHA-256 (256 bit), SHA-384 (384 bit) y SHA-512 (512 bit). SHA-256, SHA-384 y SHA-512 son algoritmos de última generación y deben utilizarse siempre que sea posible.

Mientras que el hash se puede utilizar para detectar modificaciones accidentales, no brinda protección contra cambios deliberados. 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 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 y no proporciona seguridad a los datos transmitidos. Para proporcionar integridad y autenticación de origen, se necesita algo más.

5. Autenticación de Origen

Para agregar autenticación al control de integridad, se usa un código de autenticación de mensajes hash con clave (HMAC). Los HMAC utilizan una clave secreta adicional como entrada a la función de hash.

Haz clic en cada botón para ver una ilustración y una explicación sobre la autenticación de origen con HMAC.

Como se muestra en la figura, un HMAC se calcula utilizando cualquier algoritmo criptográfico que combine una función hash criptográfica con una clave secreta. Las funciones de hash son la base del mecanismo de protección de HMAC.

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 partes que tienen acceso a esa clave secreta pueden calcular el compendio 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.

Algoritmo Hashing HMAC
Algoritmo Hashing HMAC

Como se muestra en la figura, el dispositivo emisor introduce datos (como la paga de 100 dólares de Terry Smith y la clave secreta) en el algoritmo de hash y calcula el resumen del HMAC de longitud fija. Este resumen autenticado se adjunta al mensaje y se envía al receptor.

Crear Valor HMAC
Crear Valor HMAC

En la figura, el dispositivo receptor elimina el resumen del mensaje y utiliza el mensaje de texto plano con su clave secreta como entrada en la misma función de hashing. Si el compendio calculado por el dispositivo receptor es igual al compendio que se envió, el mensaje no ha sido alterado. Además, el origen del mensaje se autentica porque sólo el remitente posee una copia de la clave secreta compartida. La función HMAC ha asegurado la autenticidad del mensaje.

Verificar Valor HMAC
Verificar Valor HMAC

En la Figura, se ejemplifica cómo usan las HMAC los routers de Cisco configurados para utilizar la autenticación de routing que supone abrir primero la ruta más corta (OSPF, Open Shortest Path First).

En la figura, el router R1 envía una actualización de estado de enlace (LSU, Link State Update) sobre una ruta hacia la red 10.2.0.0/16.

  1. El R1 calcula el valor de hash mediante el mensaje de LSU y la clave secreta.
  2. El valor de hash que resulta se envía con la LSU al R2.
  3. El R2 calcula el valor de hash mediante la LSU y su clave secreta. El R2 acepta la actualización si los valores de hash coinciden. Si no coinciden, R2 descarta la actualización.

Cisco Router HMAC
Cisco Router HMAC

6. Confidencialidad de los Datos

Hay dos clases de encriptación utilizadas para brindar confidencialidad de los datos. Estas dos clases se diferencian en cómo utilizan las claves.

Los algoritmos de cifrado simétricos como (DES), 3DES y el 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 y Adleman (RSA) y la infraestructura de clave pública (PKI, Public Key Infrastructure).

La figura destaca algunas diferencias entre cada método de algoritmo de cifrado.

Diferencias algoritmo de cifrado
Diferencias algoritmo de cifrado

7. Cifrado Simétrico

Los algoritmos simétricos utilizan la misma clave precompartida para encriptar y desencriptar datos. Antes de que ocurra cualquier comunicación encriptada, el emisor y el receptor conocen la clave precompartida, 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 figura, se ve que Alice y Bob tienen claves idénticas para un único candado. Intercambiaron estas claves 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 Cifrado Simétrico

Ejemplo de Cifrado Simétrico
Ejemplo de Cifrado Simétrico

Hoy en día, los algoritmos de cifrado simétrico 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 cifrado asimétrico. El cifrado y descifrado de datos es rápido cuando se usa una VPN. Al utilizar algoritmos de cifrado simétrico, como ocurre con cualquier otro tipo de cifrado, mientras más prolongada sea la clave, más tiempo demorará alguien en descubrirla. La mayoría de las claves de cifrado tienen entre 112 bits y 256 bits. Para garantizar que el cifrado sea seguro, se recomienda una longitud mínima de clave de 128 bits. Para comunicaciones más seguras, se aconseja el uso de claves más prolongadas.

Los algoritmos de cifrado simétrico bien conocidos se describen en la tabla.

Algoritmos de Cifrado Simétrico Descripción
Data Encryption Standard
(DES)
Este es un algoritmo de cifrado simétrico heredado. Puede utilizarse en modo de cifrado de flujo, pero normalmente funciona en modo de bloque, cifrando los datos en un tamaño de bloque de 64 bits. El cifrado de flujo cifra un byte o un bit a la vez.
3DES
(Triple DES)
Es una versión más reciente del DES, pero repite el proceso del algoritmo DES tres veces. El algoritmo básico ha sido bien probado en el campo durante más de 35 años. Se considera muy fiable cuando se implementa utilizando tiempos de vida clave muy cortos.
Advanced Encryption Standard
(AES)
El AES es un algoritmo seguro y más eficiente que el 3DES. Es un algoritmo de cifrado simétrico popular y recomendado. Ofrece nueve combinaciones de longitud de clave y bloque usando una clave de longitud variable de 128, 192 o 256 bits para cifrar bloques de datos de 128, 192 o 256 bits de longitud.
Software-Optimized Encryption Algorithm
(SEAL)
SEAL es un algoritmo de cifrado simétrico alternativo más rápido que el DES, 3DES y AES. Utiliza una clave de cifrado de 160 bits y tiene un menor impacto en la CPU en comparación con otros algoritmos basados en software.
Serie de Algoritmos Rivest ciphers
(RC)
Este algoritmo fue desarrollado por Ron Rivest. Se han desarrollado varias variaciones, pero el RC4 es el más utilizado. RC4 es un cifrado de flujo y se usa para asegurar el tráfico web en SSL y TLS.

8. Cifrado Asimétrico

Los algoritmos asimétricos, también llamados algoritmos de claves públicas, están diseñados para que la clave de cifrado y la de descifrado sean diferentes, como se ve en la figura. En cualquier plazo razonable, no es posible calcular la clave de descifrado a partir de la clave de cifrado, y viceversa.

Los algoritmos asimétricos utilizan una clave pública y una privada. Ambas claves son capaces de cifrar, pero se requiere la clave complementaria para el descifrado. El proceso también es reversible. Los datos cifrados con la clave privada requieren la clave pública para descifrarse. Los algoritmos asimétricos logran confidencialidad, autenticación e integridad mediante el uso de este proceso.

Ejemplo de Cifrado Asimétrico

Ejemplo de Cifrado Asimétrico
Ejemplo de Cifrado Asimétrico

Debido a que ninguna de las partes tiene un secreto compartido, se deben utilizar claves de gran longitud. El cifrado asimétrico puede utilizar longitudes de clave entre 512 y 4.096 bits. Se puede confiar en longitudes de clave mayores o iguales a 1.024 bits, mientras que las longitudes de clave más cortas se consideran poco fiables.

Entre algunos de los ejemplos de protocolos en los que se utilizan algoritmos de claves asimétricos se incluyen los siguientes:

  • Intercambio de claves por Internet (IKE, Internet Key Exchange)- Esto es un componente fundamental de las IPsec VPNs.
  • Secure Socket Layer (SSL) – Esto se implementa ahora como el estándar de Seguridad de la Capa de Transporte (TLS) de la IETF.
  • Secure 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 carecen de velocidad, 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 administració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 cifrado o descifrado.

En la tabla se describen ejemplos comunes de algoritmos de cifrado asimétrico.

Algoritmo de Cifrado Asimétrico Longitud de la Clave Descripción
Diffie-Hellman
(DH)
512, 1024, 2048, 3072, 4096 El algoritmo Diffie-Hellman permite a dos partes acordar una clave que pueden utilizar para cifrar los mensajes que quieren enviarse mutuamente. La seguridad de este algoritmo depende de la suposición de que es fácil elevar un número a una cierta potencia, pero difícil calcular qué potencia se utilizó dado el número y el resultado.
Digital Signature Standard (DSS)
y
Digital Signature Algorithm (DSA)
512 – 1024 El DSS especifica el DSA como el algoritmo para las firmas digitales. DSA es un algoritmo de clave pública basado en el esquema de firma de ElGamal. La velocidad de creación de la firma es similar a la del RSA, pero es de 10 a 40 veces más lenta para la verificación.
Rivest, Shamir, and Adleman encryption algorithms
(RSA)
512 to 2048 RSA es para la criptografía de clave pública que se basa en la dificultad actual de factorizar números muy grandes. Es el primer algoritmo que se conoce que es adecuado para la firma así como para el cifrado. Se utiliza ampliamente en los protocolos de comercio electrónico y se cree que es seguro si se le dan claves suficientemente largas y el uso de implementaciones actualizadas.
EIGamal 512 – 1024 Un algoritmo de cifrado de clave asimétrica para la criptografía de clave pública que se basa en el acuerdo de clave Diffie-Hellman. Una desventaja del sistema de ElGamal es que el mensaje cifrado se vuelve muy grande, aproximadamente dos veces el tamaño del mensaje original y por esta razón sólo se utiliza para mensajes pequeños como claves secretas.
Técnicas de curvas elípticas 160 La criptografía de curva elíptica puede utilizarse para adaptar muchos algoritmos criptográficos, como Diffie-Hellman o ElGamal. La principal ventaja de la criptografía de curva elíptica es que las claves pueden ser mucho más pequeñas.

9. Diffie-Hellman

Diffie-Hellman (DH) es un algoritmo matemático asimétrico que permite que dos computadoras generen una clave secreta idéntica compartida sin antes haberse comunicado. El emisor y el receptor nunca intercambian realmente la nueva clave compartida. Sin embargo, dado que ambos participantes la conocen, un algoritmo de cifrado puede utilizarla para cifrar 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 IPsec VPN.
  • Se cifran datos en Internet usando SSL o TLS
  • Se intercambian datos de SSH

Para ayudar a ejemplificar cómo funciona el algoritmo de DH, consulta la figura.

Cómo funciona Diffie-Hellman
Cómo funciona Diffie-Hellman

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 participante eligió.

Ahora, Alice y Bob mezclan el color común compartido (amarillo) con su color secreto respectivo para generar un color privado. Por lo tanto, Alice mezcla el amarillo con el rojo para obtener el anaranjado como color privado. Bob mezcla el amarillo y el azul para obtener verde como color privado.

Alice envía su color privado (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 de DH 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 tienen 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.

Desafortunadamente, los sistemas de clave asimétrica son extremadamente lentos para cualquier tipo de cifrado masivo. Por esto, es común cifrar 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 cifrado.

Glosario: Si tienes dudas con algún término especial, puedes consultar este diccionario de redes informáticas.

¡Listo! Sigue visitando nuestro blog de curso de redes, dale Me Gusta a nuestra fanpage; y encontrarás más herramientas y conceptos que te convertirán en todo un profesional de redes.