022.3 Lección 1
Certificado: |
Fundamentos de seguridad |
---|---|
Versión: |
1.0 |
Tema: |
022 Cifrado |
Objetivo: |
022.3 Cifrado de correo electrónico |
Lección: |
1 de 1 |
Introducción
En el panorama actual, el correo electrónico sigue siendo una herramienta de comunicación fundamental, pero también es vulnerable a la interceptación y al acceso no autorizado. Para proteger la información confidencial intercambiada por correo electrónico, las tecnologías de cifrado como OpenPGP y S/MIME brindan confidencialidad, integridad y autenticidad. Comprender estos dos estándares de cifrado es esencial para cualquier persona involucrada en comunicaciones seguras.
Open Pretty Good Privacy (OpenPGP) y Secure/Multipurpose Internet Mail Extensions (S/MIME) son dos protocolos ampliamente adoptados para cifrar y firmar digitalmente mensajes de correo electrónico. OpenPGP se basa en un modelo de confianza descentralizado, que permite a los usuarios generar y gestionar sus propias claves de cifrado, mientras que S/MIME funciona con un modelo de confianza centralizado, que utiliza certificados digitales emitidos por autoridades de certificación (CA) de confianza. Ambos estándares ofrecen cifrado para proteger el contenido de un mensaje de correo electrónico y evitar que lo lean destinatarios no deseados, así como firmas digitales para verificar la identidad del remitente y garantizar que el mensaje no haya sido alterado.
Exploraremos Mozilla Thunderbird, un cliente de correo electrónico multiplataforma conocido por admitir e integrar OpenPGP y S/MIME, lo que permite el cifrado de extremo a extremo. La configuración generalmente implica configurar OpenPGP y S/MIME, generar pares de claves públicas y privadas, importar certificados X.509 y administrar el envío y la recepción seguros de mensajes cifrados.
Cifrado de correo electrónico y firmas digitales
Para cifrar el correo electrónico, los sistemas utilizan criptografía de clave pública o criptografía asimétrica. A diferencia de la criptografía simétrica, que se basa en la misma clave para cifrar y descifrar, la criptografía de clave pública proporciona a cada usuario un par de claves que consta de una clave pública y una clave privada.
Como lo indica el nombre, la clave pública se comparte abiertamente y es accesible para cualquier persona que desee participar en una comunicación por correo electrónico cifrada. Sin embargo, la clave privada permanece confidencial y el usuario nunca la comparte ni la transmite.
El proceso de cifrado funciona de la siguiente manera: el remitente utiliza la clave pública del destinatario para cifrar el mensaje de texto sin formato, lo que da como resultado un texto cifrado que no se puede leer sin la clave privada correspondiente. Solo el destinatario, que la posee, puede descifrar el texto y acceder al formato original.
La criptografía de clave pública se emplea en una variedad de aplicaciones, como la navegación web segura a través de HTTPS (Protocolo seguro de transferencia de hipertexto), el correo electrónico seguro con S/MIME o PGP y las firmas digitales, que garantizan la autenticidad e integridad de los documentos digitales.
Dos algoritmos ampliamente utilizados en criptografía de clave pública son RSA y DSA. RSA recibe su nombre de sus creadores (Ron Rivest, Adi Shamir y Leonard Adleman), mientras que DSA significa Digital Signature Algorithm. Un desarrollo más reciente es la criptografía de curva elíptica, que incluye el Elliptic Curve Digital Signature Algorithm (ECDSA).
OpenPGP
Como puede ver en el sitio web de OpenPGP, esta tecnología se derivó originalmente del software PGP creado por Phil Zimmermann. Hoy en día, OpenPGP es el estándar de cifrado de correo electrónico más utilizado. Para mostrar cómo funciona, utilizaremos GNU Privacy Guard (GnuPG o GPG para abreviar), una implementación gratuita de OpenPGP para cifrar y firmar digitalmente sus datos y comunicaciones. GPG se publica bajo los términos de la Licencia Pública General de GNU.
GPG puede utilizar criptografía de clave simétrica y de clave asimétrica. De todos los algoritmos admitidos, AES es quizás el más conocido para el cifrado simétrico, mientras que RSA y ECDSA son los que utiliza GPG con más frecuencia para el cifrado asimétrico.
Comencemos abriendo una terminal y cifrando simétricamente un archivo que contiene un mensaje en texto plano:
$ echo "Hello world" > message_file.txt $ gpg --symmetric message_file.txt
Se le solicitará una contraseña dos veces y se generará el archivo cifrado message_file.txt.gpg
. Si intenta leer el texto ahora, obtendrá un texto sin sentido como el siguiente:
$ cat message_file.txt.gpg ???_?#?[??Qw?h:0???V?)??z/LBzL>?ϧQ$?֫?#U.srm[?.3?O??V?p!\@!J?w?|??90?,R??
Para desencriptarlo, simplemente use la opción --decrypt
y proporcione la contraseña cuando se le solicite:
$ gpg --decrypt message_file.txt.gpg gpg: AES256.CFB encrypted data gpg: encrypted with 1 passphrase Hello world
También puedes firmar y cifrar el mensaje con un solo comando (siempre que hayas creado una clave privada previamente):
$ gpg --sign --symmetric message_file.txt
Puedes subir un nivel y usar GPG de una manera más sofisticada cifrando asimétricamente un mensaje para un destinatario en particular. Para eso, tendrás que crear un par de claves. Aunque aprenderemos a generar fácilmente un par de claves usando Mozilla Thunderbird más adelante en la lección, es interesante notar que también puedes usar gpg
en la línea de comandos para hacerlo:
$ gpg --full-generate-key gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. gpg: directory '/home/carol/.gnupg' created gpg: keybox '/home/carol/.gnupg/pubring.kbx' created Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) (14) Existing key from card Your selection? RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (3072) Requested keysize is 3072 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Carol Doe E-mail address: carol.doe@example.com Comment: Generating keys is fun! You selected this USER-ID: "Carol Doe (Generating keys is fun!) <carol.doe@example.com>" Change (N)ame, (C)omment, (E)-mail or (O)kay/(Q)uit? O We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilise the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: /home/carol/.gnupg/trustdb.gpg: trustdb created gpg: key 683714AD69979321 marked as ultimately trusted gpg: directory '/home/carol/.gnupg/openpgp-revocs.d' created gpg: revocation certificate stored as '/home/carol/.gnupg/openpgp-revocs.d/FFA136F2E1B69CAA35DE55CE683714AD69979321.rev' public and secret key created and signed. pub rsa3072 2023-05-03 [SC] FFA136F2E1B69CAA35DE55CE683714AD69979321 uid Carol Doe (Generating keys is fun!) <carol.doe@example.com> sub rsa3072 2023-05-03 [E]
¡Listo! Tu par de claves ya está listo. Otras opciones más rápidas para crear un par de claves son --quick-generate-key
y --generate-key
.
Note
|
Quizás la opción |
El cifrado asimétrico implica cifrar el mensaje utilizando su clave privada junto con la clave pública del destinatario, de modo que el mensaje pueda descifrarse únicamente con la clave privada del destinatario. Para ello, necesitará la clave pública del destinatario. Puede pedir que la compartan con usted o, más a menudo, buscarla en servidores de clave pública. Este tema nos lleva directamente a la siguiente sección.
El rol de los servidores de claves OpenPGP
La función principal de los servidores de claves OpenPGP es almacenar claves públicas y ponerlas a disposición de cualquier persona que desee comunicarse de forma segura con el propietario de la clave. Cuando un usuario desea enviar un mensaje de correo electrónico cifrado o verificar una firma digital, puede buscar la clave pública del destinatario en un servidor de claves, lo que garantiza que el proceso de cifrado pueda continuar sin necesidad de un intercambio manual de claves.
Los servidores de claves almacenan y sirven claves públicas criptográficas que se utilizan para intercambiar claves públicas. El procedimiento estándar es el siguiente (supondremos que hay dos usuarios llamados Carol y John):
-
Carol crea un par de claves (pública y privada) utilizando GPG.
-
Carol conserva la clave privada.
-
Carol exporta (carga) su clave pública a un servidor de claves públicas para que John pueda usarla.
-
John importa (descarga) la clave pública de Carol en su llavero.
Ahora John puede firmar asimétricamente un mensaje que sólo puede descifrarse con la clave privada de Carol.
Note
|
La clave pública normalmente se incluye en un archivo de certificado criptográfico que contiene no solo la clave sino también información sobre su propietario. |
S/MIME
Compatible con la gran mayoría de los clientes de correo electrónico (como Apple Mail, Microsoft Outlook y Mozilla Thunderbird), S/MIME es un protocolo estándar para proteger y autenticar mensajes de correo electrónico mediante criptografía de clave pública: cifrado y firmas digitales. De este modo, S/MIME garantiza la confidencialidad, integridad y autenticidad del correo electrónico.
Los siguientes términos a menudo se confunden, por lo que es importante tener una idea clara de lo que significa cada uno:
- Confidencialidad
-
El mensaje debe ser descifrado y leído únicamente por el destinatario previsto. Esto se logra mediante el cifrado.
- Integridad
-
El mensaje debe llegar a su destino exactamente como fue escrito (sin modificaciones). Esto se logra mediante firmas digitales.
- Autenticidad
-
Se deben verificar las identidades del remitente y del destinatario. Esto se logra firmando y verificando digitalmente los mensajes de correo electrónico utilizando la clave privada del remitente y la clave pública del destinatario, respectivamente.
S/MIME proporciona seguridad de extremo a extremo para la comunicación por correo electrónico. El remitente cifra el mensaje de correo electrónico utilizando la clave pública del destinatario para que pueda descifrarse únicamente utilizando la clave privada del destinatario. Esto es extremadamente importante, ya que garantiza que el mensaje pueda ser leído únicamente por el destinatario previsto y que no sea alterado durante el envío por terceros no autorizados.
Además, S/MIME proporciona firmas digitales, que permiten a los remitentes firmar digitalmente sus mensajes utilizando sus claves privadas y a los destinatarios verificar que el mensaje proviene del supuesto remitente. Esto se hace de la siguiente manera: el remitente crea una firma digital cifrando un hash del mensaje utilizando su clave privada. El destinatario puede verificar la firma descifrando el hash con la clave pública del remitente y comparándolo con el hash que ha calculado él mismo.
Note
|
Una función hash toma algunos datos de entrada o un mensaje y les aplica un conjunto de algoritmos para generar una salida única de longitud fija: una secuencia de caracteres o bits conocida como resumen del mensaje, código hash o simplemente hash. El hash resultante se utiliza normalmente para validar la integridad de los datos de entrada. Una de las ventajas del hash es que permite comparar los datos de forma rápida y eficiente sin tener que comparar todo el contenido de los datos. |
El rol de los certificados para S/MIME
Para utilizar S/MIME, tanto el remitente como el destinatario deben tener un cliente de correo electrónico compatible con S/MIME y un certificado digital emitido por una autoridad de certificación de confianza. Además de la clave pública del propietario, el certificado contiene otra información de identificación importante y se utiliza para demostrar la identidad del propietario, así como la autenticidad de la clave pública.
Algunas CA ofrecen certificados digitales S/MIME gratuitos por un período de un año. También puedes generar tu propio certificado autofirmado con OpenSSL.
Cómo se asocian las claves PGP y los certificados S/MIME con una dirección de correo electrónico
Como ya se ha mencionado, tanto PGP como S/MIME se utilizan para el cifrado de correo electrónico y las firmas digitales. Sin embargo, difieren en la forma en que asocian las claves o los certificados con una dirección de correo electrónico.
PGP requiere que el usuario genere un par de claves PGP y asocie la clave pública con su dirección de correo electrónico en el cliente de correo electrónico. Esto normalmente se hace compartiendo la clave pública en un servidor de claves. Luego, otros usuarios pueden buscar la clave pública asociada con la dirección de correo electrónico del usuario en el servidor de claves y usarla para enviarle mensajes cifrados.
Por otro lado, S/MIME utiliza certificados para asociar la clave pública a una dirección de correo electrónico. El certificado digital es emitido por una CA de confianza, que verifica la identidad del usuario y la autenticidad de la clave pública. El usuario debe tener el certificado digital instalado en su cliente de correo electrónico. El certificado contiene la clave pública del usuario, así como otros datos de identificación, incluida la dirección de correo electrónico. Otros usuarios pueden verificar la firma digital del usuario y cifrar los mensajes que le envían utilizando la clave pública asociada a su dirección de correo electrónico.
Cómo usar Mozilla Thunderbird para enviar y recibir correo electrónico cifrado
Mozilla Thunderbird es un cliente de correo electrónico multiplataforma, gratuito y de código abierto que realiza el cifrado de correo electrónico de extremo a extremo e integra tanto OpenPGP como S/MIME, así como una funcionalidad de administración de claves incorporada. Las siguientes subsecciones demuestran cómo configurar Thunderbird para cifrar y descifrar correo electrónico de forma asimétrica.
Las instrucciones asumen que Thunderbird está instalado en su sistema y que ya hay una cuenta de correo electrónico configurada.
Configuración de OpenPGP y generación de un par de claves
Una vez creada la cuenta, vaya a la pestaña “Bandeja de entrada” y haga clic en el icono de la rueda dentada (“Configuración”) en la esquina inferior izquierda. Luego, desde la pestaña “Configuración”, haga clic en “Configuración de la cuenta” y, por último, en “Cifrado de extremo a extremo”. Encontrará la pantalla que se muestra en Pantalla de cifrado de extremo a extremo.
Actualmente, no hay claves disponibles para su cuenta (ni tampoco certificados personales S/MIME), por lo que debe hacer clic en el botón “Agregar clave…”. Ahora puede elegir entre importar una clave OpenPGP existente para su dirección de correo electrónico o crear una nueva clave OpenPGP desde cero. Optaremos por la segunda opción (Creación de un nuevo par de claves PGP).
A continuación debes realizar algunas configuraciones, como seleccionar el tiempo de expiración, el tipo y el tamaño de la clave (Configuración de su par de claves).
Por último, se le informa sobre el tiempo necesario para la generación de la clave y se le solicita que confirme la operación (Confirmando la creación del par de claves).
El par de claves ahora debería haberse creado correctamente (Par de claves generadas correctamente).
Ahora puede hacer clic en “Administrador de claves OpenPGP” para configurar una serie de cosas, como un keyserver para buscar claves públicas de sus destinatarios potenciales (Interfaz del administrador de claves).
Configuración de S/MIME e importación de un certificado
Ahora nos centraremos en S/MIME. Comenzaremos obteniendo e importando un certificado X.509 válido para firmar y cifrar digitalmente el correo con S/MIME. Para simplificar el proceso, puede obtener un certificado gratuito de una CA de confianza. (La generación de su propio certificado autofirmado queda fuera del alcance de esta lección). Una vez que lo haga, haga clic en “Administrar certificados S/MIME”, busque su certificado en su unidad local e impórtelo. Si se le solicita una contraseña, proporciónela como se muestra en Cómo proporcionar una contraseña al importar un certificado.
Luego seleccione su certificado (Selección de una imagen de certificado).
A continuación se le solicitará un segundo certificado que será utilizado por otras personas al enviar sus mensajes cifrados. Puede elegir el mismo certificado (Seleccionar una segundo certificado).
Por último, puedes verificar que tu certificado esté seleccionado tanto para firma digital como para cifrado (Los certificados están listos para usar).
Ahora que ha configurado tanto OpenPGP como S/MIME, puede ir a la parte inferior de la página y elegir su tecnología de cifrado preferida: OpenPGP, S/MIME o selección automática basada en claves o certificados disponibles (Tecnología de cifrado preferida).
Enviar y recibir correo electrónico cifrado con OpenPGP
Si intenta enviar un mensaje a alguien cuya clave pública posee, Thunderbird le informa que el cifrado de correo electrónico está disponible y puede proceder a utilizarlo. El cifrado es posible cuando se posee la clave pública del destinatario muestra el mensaje que aparece en la parte inferior del mensaje de correo electrónico. La interfaz es bastante fácil de usar.
De esta forma, si te envías un mensaje a ti mismo con el asunto “Prueba de cifrado de correo electrónico” y el cuerpo “¡Hola! ¡Adiós!”, podrás abrirlo y leerlo. En el lado derecho de la pantalla, haz clic en el botón “OpenPGP” para obtener información sobre la clave (Envío y recepción de correo electrónico cifrado mediante PGP).
Por otro lado, si intentas enviar un mensaje a un destinatario cuya clave pública no tienes en tu servidor, recibirás un mensaje alertándote de que el cifrado no es posible (El cifrado no es posible a menos que tenga una clave utilizable para el destinatario).
Puede importar claves públicas desde archivos o buscarlas en el servidor de claves.
Envío y recepción de correo electrónico cifrado con S/MIME
De manera similar a lo que hemos visto en la sección anterior, Thunderbird te permite enviar correo electrónico cifrado a alguien que tenga el certificado (El cifrado es posible si tiene un certificado válido del destinatario).
Puedes enviarte un mensaje a ti mismo con el asunto “Retesting email encrypted” y el mismo cuerpo que antes. Nuevamente, podrás abrirlo, leerlo y ver la información de seguridad S/MIME haciendo clic en el botón “S/MIME” a la derecha (Envío y recepción de correo electrónico cifrado mediante S/MIME).
Si intenta enviar un mensaje a un destinatario que no tiene certificado, un mensaje de alerta le informará al respecto (El cifrado de extremo a extremo requiere resolver problemas de clave para el destinatario).
Ejercicios guiados
-
La criptografía de clave pública se basa en un par de claves formado por una clave pública y una clave privada. Indique a qué tipo de clave corresponden las siguientes afirmaciones:
Enunciado ¿Clave pública o clave privada? Disponible para cualquiera que quiera enviar correo electrónico cifrado
No debe compartirse con nadie
Se aplica a un mensaje en texto simple para obtener un texto cifrado
Se utiliza para descifrar correo electrónico
Se puede importar a su llavero
-
Indique a cuál de los siguientes conceptos corresponden las siguientes afirmaciones: criptografía simétrica, texto cifrado, autoridad de certificación, firma digital, Mozilla Thunderbird, ECDSA, confidencialidad, claves pares, GPG, S/MIME.
Afirmación Concepto Una clave pública y su clave privada correspondiente
La misma clave se utiliza tanto para el cifrado como para el descifrado
Un tercero de confianza que emite, revoca y gestiona certificados digitales
Se utiliza para verificar la autenticidad e integridad de un documento digital
Una implementación gratuita de OpenPGP
Un algoritmo criptográfico para generar y verificar firmas digitales
Un mensaje que se ha vuelto ininteligible
Un protocolo de seguridad que garantiza el cifrado de extremo a extremo
Garantiza que un mensaje sea leído solo por el destinatario previsto
Un cliente de correo electrónico multiplataforma gratuito y de código abierto que admite el cifrado de extremo a extremo
Ejercicios exploratorios
-
Aparte de los tres casos de uso mencionados en el último ejercicio de la sección anterior, nombre dos protocolos de intercambio de datos que utilicen criptografía asimétrica. Explique brevemente cómo funcionan.
-
¿Qué protocolos pueden garantizar un intercambio seguro de correo electrónico?
-
¿Qué protocolos pueden garantizar una navegación web segura?
Resumen
Esta lección profundiza en la importancia crítica del cifrado de correo electrónico en el mundo digital actual, centrándose en dos protocolos ampliamente utilizados: OpenPGP y S/MIME. Estos estándares de cifrado garantizan la confidencialidad, integridad y autenticidad de las comunicaciones por correo electrónico, brindando protección contra el acceso no autorizado. OpenPGP opera con un modelo de confianza descentralizado en el que los usuarios administran sus propias claves de cifrado, mientras que S/MIME utiliza un modelo de confianza centralizado respaldado por certificados digitales emitidos por autoridades de certificación (CA) confiables. Ambos protocolos permiten el cifrado para evitar que los destinatarios no autorizados lean el contenido del correo electrónico y ofrecen firmas digitales para verificar la identidad del remitente.
La lección también analiza la configuración práctica de Mozilla Thunderbird, un popular cliente de correo electrónico que admite OpenPGP y S/MIME para el cifrado de extremo a extremo.
Respuestas a los ejercicios guiados
-
La criptografía de clave pública se basa en un par de claves formado por una clave pública y una clave privada. Indique a qué tipo de clave corresponden las siguientes afirmaciones:
Enunciado ¿Clave pública o clave privada? Disponible para cualquiera que quiera enviar correo electrónico cifrado
clave pública
No debe compartirse con nadie
clave privada
Se aplica a un mensaje en texto simple para obtener un texto cifrado
clave pública
Se utiliza para descifrar correo electrónico
clave privada
Se puede importar a su llavero
clave pública
-
Indique a cuál de los siguientes conceptos corresponden las siguientes afirmaciones: criptografía simétrica, texto cifrado, autoridad de certificación, firma digital, Mozilla Thunderbird, ECDSA, confidencialidad, claves pares, GPG, S/MIME.
Afirmación Concepto Una clave pública y su clave privada correspondiente
claves pares
La misma clave se utiliza tanto para el cifrado como para el descifrado
criptografía simétrica
Un tercero de confianza que emite, revoca y gestiona certificados digitales
autoridad de certificación
Se utiliza para verificar la autenticidad e integridad de un documento digital
firma digital
Una implementación libre de OpenPGP
GPG
Un algoritmo criptográfico para generar y verificar firmas digitales
ECDSA
Un mensaje que se ha vuelto ininteligible
texto cifrado
Un protocolo de seguridad que garantiza el cifrado de extremo a extremo
S/MIME
Garantiza que un mensaje sea leído solo por el destinatario previsto
confidencialidad
Un cliente de correo electrónico multiplataforma gratuito y de código abierto que admite el cifrado de extremo a extremo
Mozilla Thunderbird
Respuestas a los ejercicios exploratorios
-
Además de los tres casos de uso mencionados en el último ejercicio de la sección anterior, nombre dos protocolos de intercambio de datos que utilicen criptografía asimétrica. Explique brevemente cómo funcionan.
El Protocolo de transferencia segura de archivos (SFTP) y Secure Shell (SSH) aseguran las transferencias de archivos entre un cliente y un servidor.
Una red privada virtual (VPN) proporciona una comunicación segura y autenticada entre dispositivos remotos a través de una red insegura como Internet.
-
¿Qué protocolos pueden garantizar un intercambio seguro de correo electrónico?
PGP, S/MIME.
-
¿Qué protocolos pueden garantizar una navegación web segura?
SSL, TLS.