022.1 Lección 1
Certificado: |
Fundamentos de seguridad |
---|---|
Versión: |
1.0 |
Tema: |
021 Conceptos de seguridad |
Objetivo: |
022.1 Criptografía e infraestructura de clave pública |
Lección: |
1 de 2 |
Introducción
La criptografía es un aspecto fundamental de la ciberseguridad moderna, ya que proporciona los medios para proteger los datos y las comunicaciones confidenciales del acceso no autorizado. En esencia, la criptografía incluye el cifrado, que transforma la información legible en un formato ilegible mediante algoritmos específicos. Este proceso garantiza que solo las personas con la clave correcta puedan descifrar el texto y devolverlo a su forma original. El cifrado es crucial para salvaguardar los datos durante la transmisión o el almacenamiento, ya sean mensajes personales, información financiera o secretos comerciales.
Además del cifrado, la criptografía también implica el hashing, un proceso que genera un resultado único de tamaño fijo, llamado hash, a partir de los datos de entrada. El hash se utiliza para verificar la integridad de los datos, lo que garantiza que la información no haya sido alterada.
Comprender estos conceptos básicos de criptografía es esencial para cualquiera que desee comprender los principios que sustentan la protección de la información digital y la integridad de los datos. Estas técnicas criptográficas se utilizan en aplicaciones cotidianas, desde la protección de sitios web y transacciones en línea hasta la protección de datos personales y comunicaciones digitales.
Funciones hash, cifrados y algoritmos de intercambio de claves
Para obtener una comprensión más profunda de la criptografía, es esencial explorar los conceptos detrás de las funciones hash, los cifrados y los algoritmos de intercambio de claves, que juntos forman los componentes básicos de la comunicación segura y la protección de datos.
Una función hash es un algoritmo criptográfico que convierte datos de entrada de cualquier longitud en una cadena de tamaño fijo, conocida como hash o digest. La propiedad clave de una función hash es que incluso un cambio leve en los datos de entrada da como resultado un hash radicalmente diferente, lo que la hace muy sensible a las alteraciones. Esta característica garantiza la integridad de los datos, ya que cualquier modificación se puede detectar fácilmente. Las funciones hash también están diseñadas para ser unidireccionales, lo que significa que es computacionalmente inviable realizar ingeniería inversa de los datos originales a partir del hash.
Por ejemplo, los encargados del código fuente de Linux y de varias herramientas GNU proporcionan la firma Secure Hash Algorithm (SHA-256) de los archivos distribuidos en sus repositorios de software. Esto permite a los usuarios verificar que los archivos descargados no hayan sido alterados durante la transferencia.
En el contexto de las firmas digitales, las funciones hash se utilizan para crear una versión condensada de un mensaje o documento, conocida como message digest. Este resumen se cifra luego con la clave privada del remitente para crear una firma digital. El destinatario puede verificar la firma descifrándola con la clave pública del remitente y comparándola con el hash del documento recibido. Si los dos hashes coinciden, se confirma que el documento no ha sido alterado y se autentica la identidad del remitente. Por ejemplo, este método se utiliza ampliamente en comunicaciones seguras por correo electrónico como Pretty Good Privacy (PGP) y en la distribución de software para garantizar la autenticidad e integridad de la información transmitida.
Las funciones hash también son fundamentales para almacenar de forma segura las contraseñas. En lugar de almacenar la contraseña real, los sistemas utilizan una función hash para convertir la contraseña en un valor hash único, que luego se almacena en la base de datos. Cuando un usuario intenta iniciar sesión, el sistema realiza un hash de la contraseña ingresada y la compara con el hash almacenado. Si coinciden, se concede el acceso. Este enfoque garantiza que, incluso si un atacante obtiene acceso a la base de datos de contraseñas, no pueda recuperar fácilmente las contraseñas originales. Para mejorar aún más la seguridad, muchos sistemas utilizan una técnica llamada salting, en la que se agrega un valor aleatorio (el salt) a la contraseña antes de realizar el hash. Esto garantiza que incluso las contraseñas idénticas resulten en diferentes hashes, lo que hace que sea mucho más difícil para los atacantes utilizar tablas precalculadas (rainbow tables) para descifrar los hashes.
Para mostrar el hash en acción, veamos SHA-256 (parte de la familia SHA-2). Este estándar produce un hash de 256 bits, que se usa ampliamente en tecnologías como la cadena de bloques y las comunicaciones seguras. A continuación, se muestra un ejemplo:
- Texto orginal
-
HelloWorld
- SHA-256 hash
-
a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b53d83a38ac8f0287
Por el contrario, las funciones hash más antiguas, como MD5, se han ido eliminando debido a importantes fallos de seguridad que permiten los ataques de colisión. Un ataque de colisión se produce cuando dos entradas distintas generan el mismo valor hash, lo que compromete la unicidad del hash. Esta vulnerabilidad permite a los atacantes sustituir un archivo o mensaje malicioso por uno legítimo sin ser detectados, ya que ambos producirían hashes idénticos. Estas debilidades comprometen la integridad y la seguridad del proceso de hash, lo que hace que MD5 sea inadecuado para las tareas que utilizan hashes, como la verificación de la integridad de los archivos, las firmas digitales o el almacenamiento seguro de contraseñas en las aplicaciones criptográficas modernas.
Cifrado simétrico y asimétrico
Los cifrados, otro elemento fundamental de la criptografía, son algoritmos que se utilizan para cifrar y descifrar. Convierten texto simple en texto cifrado mediante una clave de cifrado, y el proceso se puede revertir utilizando una clave de descifrado. Los cifrados se clasifican en dos categorías principales: simétricos y asimétricos.
Cifrados simétricos
Los cifrados simétricos, como el ampliamente utilizado AES (Advanced Encryption Standard), se basan en la misma clave tanto para el cifrado como para el descifrado. Este enfoque es muy eficiente, especialmente para cifrar grandes volúmenes de datos, porque las operaciones de cifrado y descifrado son relativamente rápidas y computacionalmente económicas.
El algoritmo AES es particularmente popular debido a sus sólidas características de seguridad y rápido rendimiento, lo que lo convierte en una opción estándar para proteger información confidencial en una amplia gama de aplicaciones. Se utiliza comúnmente para proteger datos en redes inalámbricas a través de protocolos como WPA2 (Wi-Fi Protected Access 2) y también lo emplean los gobiernos y las organizaciones para salvaguardar información clasificada.
El intercambio de claves simétricas generalmente implica compartir de forma segura una clave secreta entre las partes antes de que puedan comunicarse. Dado que tanto el emisor como el receptor utilizan la misma clave para cifrar y descifrar, esta clave debe transmitirse de manera que impida su interceptación por partes no autorizadas.
Un método común para el intercambio seguro de claves es utilizar un medio físico confiable o una clave precompartida (PSK), donde la clave se intercambia manualmente entre las partes con anticipación. Sin embargo, en las comunicaciones digitales, un método más seguro y eficiente implica el uso de cifrado asimétrico o protocolos de intercambio de claves como Diffie-Hellman para establecer la clave simétrica.
El método Diffie-Hellman permite que dos partes establezcan una clave secreta compartida a través de un canal inseguro, como Internet, sin transmitir directamente la clave. Esto se logra mediante un proceso matemático que implica números primos grandes, lo que hace que sea computacionalmente imposible para un atacante determinar la clave secreta compartida. Una vez que se establece el secreto compartido, se puede utilizar el cifrado simétrico para proteger la comunicación posterior entre las partes. Este método es fundamental para muchos protocolos criptográficos modernos y es crucial para establecer comunicaciones seguras en entornos donde los métodos tradicionales de intercambio de claves no son viables.
He aquí un ejemplo sencillo de cómo funciona el algoritmo simétrico AES en la práctica:
- Cifrado
-
Input (plaintext):
SensitiveData
Clave simétrica:
mysecretkey12345
El algoritmo AES cifra el texto simple utilizando la clave, lo que produce la salida(ciphertext):
4f6a79e0f2e041b4c6d61e64a98f0d5a
- Descifrado
-
Input (ciphertext):
4f6a79e0f2e041b4c6d61e64a98f0d5a
Clave simétrica:
mysecretkey12345
(a misma clave utilizada para el cifrado)El algoritmo AES descifra el texto cifrado utilizando la clave, restaurando el mensaje original como salida (plaintext):
SensitiveData
Sin embargo, el cifrado simétrico se enfrenta a un desafío en cuanto a la distribución de claves. Ambas partes deben obtener de forma segura la misma clave. Sin embargo, transmitir esta clave de forma segura, especialmente en redes inseguras, es una tarea compleja. La criptografía asimétrica surgió para resolver este problema.
Cifrados asimétricos
A diferencia del cifrado simétrico, que requiere que ambas partes tengan la misma clave, el cifrado asimétrico utiliza dos claves diferentes: una para el cifrado (clave pública) y otra para el descifrado (clave privada).
Este par de claves es crucial para una comunicación segura, ya que permite que cualquiera pueda cifrar un mensaje utilizando la clave pública, pero solo el propietario de la clave privada puede descifrarlo. Este enfoque resuelve eficazmente el desafío de intercambiar claves de forma segura a través de un canal inseguro, lo que lo convierte en una herramienta esencial para el intercambio seguro de claves y las firmas digitales.
RSA (Rivest-Shamir-Adleman) es un ejemplo destacado de cifrado asimétrico, a menudo utilizado en certificados digitales y comunicaciones de correo electrónico seguras para garantizar que los datos puedan intercambiarse de forma segura sin compartir previamente una clave.
RSA se basa en la dificultad computacional de factorizar números grandes, lo que lo hace altamente seguro y adecuado para diversas aplicaciones, incluida la comunicación por correo electrónico segura a través de PGP (Pretty Good Privacy) y la autenticación de usuarios en SSH (Secure Shell).
Uno de los desafíos de la criptografía asimétrica es verificar que una clave pública pertenece verdaderamente al destinatario previsto. Sin esta verificación, un atacante podría interceptar y reemplazar una clave pública por la suya, lo que daría lugar a un ataque de intermediario (man-in-the-middle attack).
Para evitarlo, existe un sistema de infraestructura de clave pública (PKI) que proporciona un marco para autenticar claves públicas mediante certificados digitales emitidos por autoridades de certificación (CA) de confianza. Esto garantiza que las claves públicas sean legítimas y no hayan sido alteradas, lo que permite comunicaciones seguras y confiables a través de redes.
Además de RSA, otros algoritmos asimétricos como Elliptic Curve Diffie-Hellman (ECDH) ofrecen una seguridad similar pero con tamaños de clave más pequeños, lo que los hace más eficientes para dispositivos con capacidad de procesamiento limitada, como los teléfonos inteligentes. ECDH utiliza las matemáticas de las curvas elípticas para facilitar los intercambios de claves seguros, lo que proporciona una seguridad sólida con una sobrecarga computacional reducida en comparación con el RSA tradicional.
Criptografía híbrida
La criptografía híbrida combina eficazmente las ventajas del cifrado simétrico y asimétrico para lograr una comunicación segura y eficiente. De este modo, la criptografía híbrida aprovecha las ventajas de cada una de ellas. Una aplicación típica del cifrado híbrido se encuentra en protocolos muy extendidos como Secure Sockets Layer/Transport Layer Security (SSL/TLS), que protegen la transmisión de datos a través de Internet.
La criptografía híbrida es una excelente opción porque combina las ventajas de los métodos de cifrado simétrico y asimétrico para crear un sistema robusto y eficiente de protección de datos. El cifrado simétrico, como AES, es muy eficiente y rápido, lo que lo hace ideal para cifrar grandes volúmenes de datos. Requiere menos potencia computacional que el cifrado asimétrico. Esta eficiencia es esencial para aplicaciones que requieren transferencia de datos a alta velocidad, como la transmisión de video o el intercambio de archivos grandes. Por otro lado, el cifrado asimétrico, como RSA, requiere más recursos computacionales, pero ofrece un método seguro para el intercambio de claves en redes no confiables.
En la criptografía híbrida, se utiliza el cifrado asimétrico para transmitir de forma segura la clave simétrica, que luego se utiliza para el cifrado de datos propiamente dicho. Esta estrategia aprovecha los mejores aspectos de ambos métodos: la sólida seguridad del cifrado asimétrico para el intercambio de claves y el alto rendimiento del cifrado simétrico para la transmisión de datos.
Así es como funciona: durante la fase inicial de la comunicación, el remitente genera una clave simétrica temporal, conocida como clave de sesión, para cifrar los datos reales. Esta clave de sesión se cifra luego utilizando la clave pública del destinatario y se envía junto con los datos cifrados. Al recibir el mensaje, el destinatario utiliza su clave privada para descifrar la clave de sesión y luego utiliza la clave simétrica descifrada para descifrar los datos. Este proceso garantiza que el cifrado y descifrado de los datos sean eficientes mientras que el intercambio de claves sigue siendo seguro.
Por ejemplo, al visitar un sitio web seguro a través de HTTPS, el navegador del usuario y el servidor realizan un intercambio de claves Diffie-Hellman para establecer una clave simétrica compartida, que luego se utiliza para cifrar todos los datos intercambiados durante la sesión. Esto garantiza que, incluso si un atacante intercepta la comunicación, no podrá leer el contenido cifrado sin la clave simétrica, que no puede obtener únicamente de los datos interceptados.
La criptografía híbrida es una piedra angular de la comunicación segura moderna. Permite la transmisión segura de datos en escenarios que abarcan desde la banca en línea y el comercio electrónico hasta el correo electrónico seguro y las conexiones VPN. Al combinar los mejores aspectos de ambos tipos de cifrado, la criptografía híbrida proporciona un marco sólido para proteger los datos en tránsito, lo que garantiza tanto el rendimiento como la seguridad en diversos entornos digitales.
Perfect Forward Secrecy (PFS)
Los sistemas de cifrado desempeñan un papel fundamental en la protección de las comunicaciones digitales, ya que cifran los datos para evitar el acceso no autorizado. Sin embargo, incluso los sistemas de cifrado más seguros pueden ser vulnerables si un atacante obtiene acceso a las claves a largo plazo que se utilizan para el cifrado. Aquí es donde entra en juego Perfect Forward Secrecy (PFS).
Un principio básico de la criptografía es garantizar que las comunicaciones sigan siendo seguras, incluso si se ve comprometida una clave de cifrado a largo plazo. PFS garantiza que se genere una clave de cifrado única para cada sesión de comunicación y se descarte una vez que finalice la sesión.
Esto significa que incluso si un atacante logra obtener la clave privada utilizada para la comunicación, no podrá descifrar sesiones anteriores, ya que las claves específicas de la sesión ya no están disponibles. Este enfoque evita el descifrado retroactivo de los datos y protege la integridad de las comunicaciones anteriores.
El PFS es especialmente crítico en entornos en los que se intercambia información confidencial con frecuencia, como en aplicaciones web, servicios de correo electrónico y VPN. Al implementar PFS, las organizaciones pueden garantizar que incluso en el caso de una futura violación de la seguridad, los datos históricos permanezcan seguros. Esto mejora la seguridad general al proteger no solo las comunicaciones actuales sino también las pasadas, lo que proporciona una defensa sólida contra posibles amenazas.
Los protocolos criptográficos como Diffie-Hellman (DH) y Elliptic Curve Diffie-Hellman (ECDH) son fundamentales para lograr PFS, ya que generan claves de sesión efímeras que se utilizan solo una vez y luego se descartan. Estos algoritmos garantizan que cada sesión de comunicación tenga una clave única, lo que hace imposible descifrar sesiones anteriores incluso si la clave privada de largo plazo se ve comprometida.
Este principio es parte integral de los protocolos de comunicación segura modernos, como TLS, que dependen de PFS para proteger los datos en tránsito y mantener la confidencialidad de las comunicaciones a través de Internet.
Cifrado de extremo a extremo frente a cifrado de transporte
A medida que exploramos más soluciones criptográficas, es importante diferenciar entre dos enfoques ampliamente utilizados para proteger datos que difieren en su alcance e implementación.
El cifrado de extremo a extremo (E2EE) garantiza que los datos se encripten en su origen y permanezcan encriptados durante todo el trayecto hasta que llegan al destinatario previsto. Solo el remitente y el receptor tienen las claves necesarias para encriptar y desencriptar los datos, lo que hace que el E2EE sea ideal para las comunicaciones privadas. Los intermediarios, como los proveedores de servicios o los servidores, no tienen acceso a los datos no encriptados. Las aplicaciones de mensajería como WhatsApp utilizan el E2EE para proteger la privacidad del usuario.
La principal fortaleza del E2EE es que ofrece total confidencialidad, ya que ningún tercero puede descifrar los datos. Sin embargo, su implementación es más compleja y requiere una gestión cuidadosa de las claves de cifrado para garantizar que solo el destinatario previsto tenga acceso a los datos.
Por otro lado, el cifrado de transporte cifra los datos solo mientras se transmiten entre dos puntos, como por ejemplo entre el dispositivo de un usuario y un servidor. Una vez que los datos llegan al servidor, se descifran y pueden almacenarse o procesarse en su forma original. El protocolo TLS, utilizado en HTTPS, es un ejemplo de cifrado de transporte.
El cifrado de transporte es más sencillo de implementar que el de extremo a extremo y ofrece suficiente protección para proteger los datos en tránsito. Sin embargo, una vez que los datos se almacenan o procesan en el servidor, quedan expuestos y son potencialmente vulnerables a ataques internos o amenazas externas.
Ejercicios guiados
-
Explique la diferencia entre criptografía simétrica y asimétrica.
-
Describa cómo Perfect Forward Secrecy (PFS) mejora la seguridad de los protocolos de comunicación como SSL/TLS.
-
¿Qué papel desempeñan las funciones hash en la verificación de la integridad de los datos? Proporcione un ejemplo de un escenario en el que esto sea crucial.
Ejercicios exploratorios
-
Investigar y explicar cómo se implementa la criptografía híbrida en la navegación web segura a través del protocolo HTTPS.
-
Investigar el concepto de computación cuántica y cómo representa una amenaza para los sistemas criptográficos actuales, especialmente el cifrado asimétrico como RSA.
Resumen
La criptografía desempeña un papel crucial en la protección de la información digital mediante el uso de técnicas de cifrado, como los cifrados simétricos y asimétricos, para proteger los datos y las comunicaciones. El cifrado simétrico, como el AES, es muy eficaz para grandes volúmenes de datos, pero requiere un método seguro para la distribución de claves. El cifrado asimétrico, como el RSA, aborda este desafío mediante el uso de un par de claves públicas y privadas para el intercambio seguro de claves, aunque es más exigente desde el punto de vista computacional. Además, las funciones hash mejoran la seguridad al verificar la integridad de los datos mediante la generación de salidas únicas de tamaño fijo, lo que garantiza que cualquier alteración de los datos se pueda detectar fácilmente.
Esta lección también cubre la criptografía híbrida, que combina las ventajas del cifrado simétrico y asimétrico. Los enfoques híbridos, como los que se utilizan en los protocolos SSL/TLS, aprovechan la velocidad del cifrado simétrico para la transferencia de datos y las capacidades de intercambio seguro de claves del cifrado asimétrico. Además, Perfect Forward Secrecy (PFS) agrega una capa adicional de seguridad al generar claves únicas y efímeras para cada sesión de comunicación, lo que garantiza que las comunicaciones anteriores permanezcan protegidas incluso si se comprometen las claves de cifrado a largo plazo. En conjunto, estas técnicas criptográficas brindan una protección sólida para los datos confidenciales y son fundamentales para proteger las comunicaciones digitales en aplicaciones como la banca en línea, las VPN y la navegación web segura.
Respuestas a los ejercicios guiados
-
Explique la diferencia entre criptografía simétrica y asimétrica.
La criptografía simétrica utiliza la misma clave para el cifrado y el descifrado, lo que la hace eficiente pero plantea un desafío para distribuir la clave de forma segura. La criptografía asimétrica utiliza un par de claves (una pública y una privada), donde la clave pública cifra los datos y solo la clave privada correspondiente puede descifrarlos. Esto elimina la necesidad de compartir una clave secreta, pero es computacionalmente más exigente.
-
Describa cómo Perfect Forward Secrecy (PFS) mejora la seguridad de los protocolos de comunicación como SSL/TLS.
Perfect Forward Secrecy garantiza que cada sesión de comunicación tenga una clave de cifrado única y efímera que se descarta una vez finalizada la sesión. Esto significa que, incluso si se compromete una clave privada de largo plazo, no se pueden descifrar las comunicaciones anteriores. En protocolos como SSL/TLS, PFS utiliza algoritmos como Diffie-Hellman para generar estas claves temporales, lo que protege la confidencialidad de los datos y proporciona una mayor seguridad para las comunicaciones web.
-
¿Qué papel desempeñan las funciones hash en la verificación de la integridad de los datos? Proporcione un ejemplo de un escenario en el que esto sea crucial.
Las funciones hash generan un hash único de tamaño fijo a partir de una entrada, que cambia drásticamente incluso con una alteración menor en la entrada. Esta propiedad las hace ideales para verificar la integridad de los datos, ya que cualquier modificación en los datos da como resultado un hash diferente. Un escenario crucial para el uso de hashes es verificar las descargas de software. Por lo tanto, los mantenedores de herramientas Linux y GNU a menudo proporcionan un hash (como SHA-256) para sus archivos, lo que permite a los usuarios verificar que los archivos no se han alterado durante la transferencia. Si el hash del archivo descargado coincide con el hash proporcionado, se confirma que el archivo está intacto y sin modificaciones.
Respuestas a los ejercicios exploratorios
-
Investigue y explique cómo se implementa la criptografía híbrida en la navegación web segura a través del protocolo HTTPS.
En HTTPS, la criptografía híbrida se implementa mediante el uso de cifrado asimétrico, generalmente RSA, para intercambiar de forma segura una clave de sesión simétrica entre el cliente y el servidor. Esta clave de sesión se utiliza luego para cifrar toda la transmisión de datos posterior mediante cifrado simétrico, como AES. El uso del cifrado asimétrico garantiza que la clave de sesión se intercambie de forma segura incluso en una red no confiable, mientras que el cifrado simétrico proporciona un cifrado de datos rápido y eficiente para la comunicación real. Esta combinación ofrece seguridad y rendimiento, lo que la hace ideal para la navegación web segura.
-
Investigar el concepto de computación cuántica y cómo representa una amenaza para los sistemas criptográficos actuales, especialmente el cifrado asimétrico como RSA.
La computación cuántica, con su potencial para realizar cálculos complejos exponencialmente más rápido que las computadoras clásicas, plantea una amenaza significativa para los sistemas criptográficos actuales, particularmente los métodos de cifrado asimétrico como RSA y ECC. En particular, RSA se basa en la dificultad de factorizar números primos grandes, un problema que las computadoras cuánticas podrían resolver de manera eficiente utilizando el algoritmo de Shor. Esto haría posible que las computadoras cuánticas rompan el cifrado RSA, volviéndolo inseguro.
Para abordar estos desafíos, los investigadores están desarrollando algoritmos resistentes a los cuánticos diseñados para soportar ataques de computadoras cuánticas. Los algoritmos resistentes a los cuánticos son cruciales para garantizar que los métodos de cifrado futuros sigan siendo seguros, incluso a medida que avanza la computación cuántica. Estos algoritmos ayudarán a proteger las comunicaciones confidenciales, las transacciones financieras y los datos gubernamentales contra la amenaza potencial de las capacidades de descifrado cuántico.