Guía para principiantes sobre la infraestructura de clave pública (PKI)

Hace unos meses, asistí a una conferencia. Una sesión relacionada con la seguridad había terminado, cuando un compañero asistente que estaba sentado a mi lado me preguntó si entendía de qué estaba hablando el orador. Cuando respondí que sí, el hombre me pidió que se lo explicara en términos sencillos. Después de hablar con él durante unos minutos, me di cuenta de que, aunque había trabajado con computadoras durante unos años, realmente no entendía la infraestructura de clave pública (PKI, por sus siglas en inglés). Me dijo que había intentado leer sobre ello en algunas ocasiones, pero que todos los libros o sitios web que encontró sobre el tema asumían que ya se sabía todo sobre PKI o usaban tantas palabras complicadas que eran difíciles de entender para un principiante. Reflexioné sobre su declaración y me di cuenta de que tenía razón. Nunca he visto nada sobre PKI que estuviera dirigido a un novato. En ese momento decidí ser yo quien escribiera una guía para principiantes sobre PKI.

Antes de comenzar

Antes de comenzar, solo quiero señalar que este artículo pretende ser una introducción a PKI. No puedo cubrir el tema a fondo sin escribir un libro bastante extenso.

Índice de Contenido
  1. Antes de comenzar
  • ¿Qué es PKI?
  • La anatomía de PKI
  • Certificados y PKI
  • ¿Qué es PKI?

    Como probablemente ya hayas deducido, PKI significa Infraestructura de Clave Pública. PKI tiene muchos usos diferentes, pero se utiliza principalmente para cifrar y/o firmar datos. Cifrar datos se refiere a mezclarlos de tal manera que sean ilegibles excepto para las personas autorizadas.

    La firma de datos se refiere básicamente a su autenticación. Un buen ejemplo de esto es firmar un mensaje de correo electrónico. Si un mensaje de correo electrónico contiene una firma digital válida, demuestra dos cosas. Primero, demuestra que el mensaje no ha sido alterado en tránsito. Segundo, demuestra que el mensaje proviene de la persona que dice ser. Sin embargo, los mensajes de correo electrónico no son la única cosa que se puede firmar.

    Probablemente hayas visto controladores de dispositivos o aplicaciones que contienen una firma digital del fabricante. Dichas firmas digitales demuestran que el código fue realmente desarrollado por la empresa que dice ser. Hablaré mucho más sobre las firmas digitales más adelante.

    La anatomía de PKI

    PKI se basa en un mecanismo llamado certificado digital. Los certificados digitales a veces también se conocen como certificados X.509 o simplemente como certificados. Piensa en un certificado como una tarjeta de identificación virtual.

    Cuál es la relación entre suposiciones y riesgos en un proyecto

    En el mundo real, las personas usan tarjetas de identificación como una licencia de conducir, un pasaporte o una credencial de empleado para demostrar su identidad. Un certificado hace lo mismo básicamente en el mundo electrónico, pero con una gran diferencia. Los certificados no solo se emiten a personas (usuarios, administradores, etc.). Los certificados también se pueden emitir a computadoras, paquetes de software o a cualquier otra cosa de la que necesites demostrar la identidad.

    Los certificados son muy útiles en situaciones de alta seguridad. Por ejemplo, supongamos que necesitas transmitir datos de forma segura desde una estación de trabajo con Windows XP a un servidor con Windows 2003 en tu empresa. ¿Cómo sabes realmente que estás transmitiendo los datos al servidor real y no a un impostor? Una forma de asegurar la integridad de la transacción es usar certificados digitales para demostrar las identidades de ambas máquinas. De hecho, los certificados digitales son uno de los requisitos subyacentes del protocolo IPSec que está diseñado para transmitir datos de forma segura en redes de Windows.

    Entonces, se puede establecer una sesión segura porque dos máquinas pueden presentarse certificados mutuamente. Sin embargo, es posible que te preguntes qué hace que los certificados sean tan confiables. Estos días, si quieres salir del país, prácticamente tienes que tener un pasaporte sin importar a dónde vayas.

    Hace algunos años, podías viajar a Canadá, México o a algunas de las islas del Caribe y usar un certificado de nacimiento y una licencia de conducir en lugar de un pasaporte. Supongamos que estas formas de identificación todavía son aceptadas y que quieres viajar a las Bahamas. Cuando llegas al aeropuerto de Nassau, entregas al oficial de inmigración tu licencia de conducir. El oficial no tiene idea de quién eres, pero sabe que tu licencia de conducir tiene tu nombre y tu foto. El hecho de que le entregues un documento de plástico con un nombre y una foto no significa nada para él. Sin embargo, su licencia fue emitida por una agencia gubernamental. Por supuesto, las Bahamas son un país extranjero y es posible que el oficial no haya escuchado nunca sobre tu estado. Lo que importa para él es que el Gobierno Federal de los Estados Unidos confía en que el estado haya realizado los procedimientos necesarios para demostrar tu identidad antes de emitir una licencia.

    Entonces, ¿qué tiene que ver esto con los certificados digitales? Volvamos a mi ejemplo anterior en el que una máquina con Windows XP necesitaba demostrar su identidad a un servidor. Piensa en el proceso en el que la máquina con Windows XP presenta al servidor su certificado digital como algo similar a entregarle al oficial de inmigración una licencia de conducir. El certificado en sí no demuestra nada al servidor. Sin embargo, si el certificado fue emitido por una fuente que el servidor conoce y en la que confía, entonces el servidor aceptará el certificado de la máquina como prueba de su identidad.

    Esto plantea la pregunta de dónde provienen los certificados y cómo las máquinas deciden si confiar o no en ellos. Bueno, hay varias formas en que se pueden obtener certificados. Una fuente es a través de autoridades de certificación de terceros, como VeriSign. Windows está configurado de forma predeterminada para confiar en cualquier cosa con un certificado válido de VeriSign. También hay algunas otras autoridades de certificación de terceros que también se confían por defecto.

    10 problemas éticos planteados por las capacidades de TI

    Windows 2000 Server y Windows Server 2003 también te permiten crear tu propia autoridad de certificación. A veces es más práctico y mucho menos costoso crear tu propia autoridad de certificación y permitir que emita certificados según sea necesario, de acuerdo con la política de seguridad corporativa.

    Certificados y PKI

    Hasta ahora he hablado mucho sobre certificados, pero es posible que te estés preguntando qué tienen que ver los certificados con PKI. PKI funciona asignando a un usuario un par de claves. Estas claves se generan mediante un proceso matemático a partir del certificado del usuario. Las claves en sí no son más que una cadena alfanumérica muy larga.

    Una de las claves se designa como la clave privada del usuario, mientras que la otra se designa como la clave pública del usuario. La idea es que solo el usuario que posee las claves tenga la clave privada, pero la clave pública del usuario puede entregarse libremente a cualquier persona. Normalmente, una autoridad de certificación o un servidor de gestión de claves distribuye claves públicas siempre que se soliciten, pero las claves públicas realmente se pueden distribuir de cualquier manera.

    Supongamos por un momento que un usuario necesita cifrar un archivo. El usuario usaría su clave privada para cifrar el archivo. Una vez que el archivo está cifrado, solo la clave pública puede descifrarlo. Al principio, esto probablemente no suena muy seguro, ya que cualquier persona en el mundo puede tener la clave pública del usuario solo con pedirla. Sin embargo, hay un detalle que debes tener en cuenta. La clave pública del usuario solo puede descifrar archivos, no se puede usar para cifrar nada. Además, solo puede descifrar elementos que hayan sido cifrados usando la clave privada correspondiente. Por lo tanto, si se utiliza una clave pública para descifrar un archivo, garantiza absolutamente que la persona que lo cifró era el propietario de la clave privada correspondiente (suponiendo que la clave privada no haya sido robada). Por ejemplo, si cifro un archivo con mi clave privada y tú usas mi clave pública para abrirlo, entonces puedes estar seguro de que yo fui la persona que cifró el archivo.

    Este concepto es muy importante cuando se trata de producir y autenticar firmas digitales. Para ver cómo funciona este concepto, supongamos que necesito enviarte un mensaje de correo electrónico y que, debido a la sensibilidad del mensaje, necesitas estar absolutamente seguro de que el mensaje proviene de mí y no de alguien que pretende ser yo. Para este ejemplo, también fingiremos que el mensaje no necesita estar cifrado. Solo necesitas poder verificar la identidad de la persona que envió el mensaje (yo) y verificar que el mensaje no haya sido interceptado y alterado en tránsito. Esto es lo que una firma digital hace por el correo electrónico en el mundo real. El ejemplo a continuación está simplificado, pero ilustra con precisión cómo funciona una firma digital.

    Comenzaría escribiendo el mensaje. Por simplicidad, supongamos que el mensaje dice: El cheque está en el correo. Lo primero que haría el programa de correo electrónico que estoy usando sería producir un hash irreversible del mensaje. Un hash no es más que un cálculo matemático basado en el contenido del mensaje. En el mundo real, los hashes son muy complejos, pero para efectos de demostración, fingiré que creamos un hash sumando los valores ASCII de cada carácter en el mensaje (incluyendo espacios y puntuación). El hash se vería así:

    Cómo usar un árbol de decisiones para gestionar los riesgos del proyecto

    El cheque está en el correo.

    84 + 104 + 101 + 32 + 99 + 104 + 101 + 99 + 107 + 32 + 105 + 115 + 32 + 105 + 110 + 32 + 116 + 104 + 101 + 32 + 109 + 97 + 105 + 108 + 46 = 2180

    Suponiendo que he sumado correctamente los números, el resultado de la suma de los valores ASCII utilizados para construir el mensaje es 2180. Como recordarás del párrafo anterior, dije que necesitábamos usar un hash irreversible. La razón por la que el hash es irreversible es porque no hay forma de que puedas ver el número 2180 y darte cuenta de que el mensaje era "El cheque está en el correo". Teóricamente podrías realizar un ataque de fuerza bruta contra el número 2180 y ver todas las combinaciones diferentes de valores ASCII que suman este número en un intento de obtener el mensaje original, pero hay algunos problemas con eso.

    En primer lugar, habría una enorme cantidad de cadenas ASCII que suman el valor correcto. No afirmaré ser suficientemente matemático como para decirte cuántas cadenas posibles hay, pero es un montón. El segundo problema es conocer el algoritmo que se utilizó para producir el hash. En este caso, he usado un algoritmo extremadamente simple, pero en la vida real los algoritmos son mucho más complejos y no se divulgan públicamente. El tercer problema es seleccionar cuál de los resultados es el mensaje original.

    Podrías usar un programa de diccionario para filtrar las cadenas basura y dejar solo aquellos mensajes que contengan palabras reales, pero luego los anagramas se convierten en un problema. Los anagramas se refieren a la capacidad de cambiar el orden de las letras en una frase para deletrear algo diferente. Por ejemplo, si cambiaras el orden de las letras en la palabra "perro" podrías obtener "rorpe". Ambas palabras producirían el mismo valor de hash utilizando el algoritmo anterior. Mi punto es que, para todos los propósitos prácticos, el valor de hash es irreversible.

    Una vez que mi cliente de correo electrónico ha producido el hash, lo agrega al final del mensaje. La idea es que cuando el destinatario reciba el mensaje, el ordenador del destinatario calcule el hash del mensaje utilizando el mismo algoritmo que mi máquina usó para producir el hash en primer lugar. Si el destinatario calcula el mismo valor que el valor de hash que se adjunta al final del mensaje, entonces el destinatario puede estar seguro de que el mensaje no ha sido alterado en tránsito y que todo está bien en el mundo, ¿verdad?

    Cómo habilitar el envejecimiento de contraseñas en Linux

    No tan rápido. No hay absolutamente nada que impida que un hacker intercepte el mensaje, cambie el contenido del mensaje y luego cambie el hash para reflejar el nuevo contenido del mensaje. Además, no he hecho nada para demostrar mi identidad al destinatario del mensaje.

    Aquí es donde entra en juego PKI. Hemos calculado un valor de hash que el destinatario debería poder usar para verificar que el mensaje no ha sido modificado en tránsito, pero actualmente no hay nada que impida que un hacker modifique el valor del hash junto con el mensaje. Supongamos, sin embargo, que use mi clave privada para cifrar el valor del hash antes de transmitir el mensaje.

    Si hiciera esto, entonces cualquier persona puede leer el valor del hash porque se puede descifrar con mi clave pública y mi clave pública está disponible libremente para cualquiera que la solicite. Sin embargo, ten en cuenta que solo mi clave privada puede descifrar cosas que fueron cifradas por mi clave pública. Por lo tanto, cuando el destinatario recibe el mensaje de correo electrónico, utiliza mi clave pública para descifrar el valor del hash. Si logra hacer esto correctamente, entonces sabe más allá de cualquier duda que fui yo quien cifró el valor del hash. Luego puede calcular un hash del mensaje por sí mismo. Si el valor de hash calculado coincide con el valor de hash ahora descifrado que está adjunto al mensaje, entonces el destinatario sabe con certeza que fui yo quien envió el mensaje y que el mensaje no ha sido manipulado.

    En resumen, he firmado digitalmente el mensaje. En el mundo real, los algoritmos utilizados para crear firmas digitales son más complejos, pero el proceso es muy similar a lo que acabo de mostrarte. Además, este proceso no solo se usa para firmar mensajes de correo electrónico. El proceso se puede usar para firmar paquetes de software o cualquier otra cosa.

    Cómo responder a un incidente de malware: plan y pasos clave

    En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Guía para principiantes sobre la infraestructura de clave pública (PKI) , tenemos lo ultimo en tecnología 2023.

    Artículos Relacionados

    Subir

    Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.