Técnicas de cifrado. Clave pública y clave privada: - Pretty Good Privacy (PGP). GNU Privacy Good (GPG). - Seguridad a nivel de aplicación: SSH (“Secure Shell”). - Seguridad en IP (IPSEC). - Seguridad en Web : SSL ("Secure Socket Layer“). TLS ("Transport Layer Security”). Luis Villalta Márquez Pretty Good Privacy (PGP) GNU Privacy Good (GPG) PGP es una herramienta de cifrado de texto plano a comprimido. La compresión de los datos ahorra espacio en disco, tiempos de transmisión y, más importante aún, fortalece la seguridad criptográfica. Después de comprimir el texto, PGP crea una clave de sesión secreta que solo se empleará una vez. Esta clave es un número aleatorio generado a partir de los movimientos del ratón y las teclas que se pulsen durante unos segundos con el propósito específico de generar esta clave. GPG es una herramienta de cifrado y firmas digitales, que viene a ser un reemplazo del PGP (Pretty Good Privacy) pero con la principal diferencia que es software libre licenciado bajo la GPL. GPG utiliza el estándar del IETF denominado OpenPGP. Seguridad a nivel de aplicación: SSH ("Secure Shell") SSH es un protocolo que permite a los equipos establecer una conexión segura que hace posible que un cliente (un usuario o incluso un equipo) abra una sesión interactiva en una máquina remota (servidor) para enviar comandos o archivos a través de un canal seguro. Los datos que circulan entre el cliente y el servidor están cifrados y esto garantiza su confidencialidad (nadie más que el servidor y el cliente pueden leer la información que se envía a través de la red). El cliente y el servidor se autentifican uno a otro para asegurarse que las dos máquinas que se comunican son, de hecho, aquellas que las partes creen que son. El hacker ya no puede adoptar la identidad del cliente o de su servidor (falsificación). Una conexión SSH se establece en varias fases: Primero, se determina la identidad entre el servidor y el cliente para establecer un canal seguro (capa segura de transporte). Segundo, el cliente inicia sesión en el servidor. Seguridad en IP (IPSEC) IPsec (abreviatura de Internet Protocol security) es un conjunto de protocolos cuya función es asegurar las comunicaciones sobre el Protocolo de Internet (IP) autenticando y/o cifrando cada paquete IP en un flujo de datos. IPsec también incluye protocolos para el establecimiento de claves de cifrado. Seguridad en Web SSL ("Secure Socket Layer") y TLS ("Transport Layer Security") son protocolos criptográficos que proporcionan comunicaciones de seguridad en el Internet. TLS y SSL cifra los segmentos de conexiones de red por encima de la capa de transporte, utilizando criptografía asimétrica de clave cambio, el cifrado simétrico de la vida privada, y los códigos de autenticación de mensajes para la integridad del mensaje. Seguridad en Web: SSL SSL ("Secure Socket Layer"). SSL proporciona autenticación y privacidad de la información entre extremos sobre Internet mediante el uso de criptografía. Habitualmente, sólo el servidor es autenticado fes decir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar. Funcionamiento: Durante la primera fase, el cliente y el servidor negocian qué algoritmos criptográficos se van a usar. El cliente envía y recibe varias estructuras handshoke: Envía un mensaje ClientHello especificando una lista de conjunto de cifrados, métodos de compresión y la versión del protocolo SSL más alta permitida. Éste también envía bytes aleatorios que serán usados más tarde (llamados Challenge de Cliente o Reto). Además puede Incluir el identificador de la sesión. Después, recibe un registro ServerHello, en el que el servidor elige los parámetros de conexión a partir de las opciones ofertadas con anterioridad por el cliente. Seguridad en Web: SSL Cuando los parámetros de la conexión son conocidos, cliente y servidor intercambian certificados (dependiendo de las claves públicas de cifrado seleccionadas). Estos certificados son actualmente X.509, pero hay también un borrador especificando el uso de certificados basados en OpenPGP. El servidor puede requerir un certificado al cliente, para que la conexión sea mutuamente autenticada. Cliente y servidor negocian una clave secreta (simétrica) común llamada moster secret, posiblemente usando el resultado de un intercambio Diffie-Hellman, o simplemente cifrando una clave secreta con una clave pública que es descifrada con la clave privada de cada uno. Todos los datos de claves restantes son derivados a partir de este master secret (y los valores aleatorios generados en el cliente y el servidor!, que son pasados a través una función pseudoaleatoria cuidadosamente elegida. Seguridad en Web: TLS TLS ("Transport Layer Securitv"). TLS (Transport Layer Securityl es una evolución del protocolo SSL (Secure Sockets Layer), es un protocolo mediante el cual se establece una conexión segura por medio de un canal cifrado entre el cliente y servidor. Así el intercambio de información se realiza en un entorno seguro y libre de ataques. Normalmente el servidor es el único que es autenticado, garantizando así su identidad, pero el cliente se mantiene sin autenticar, ya que para la autenticación mutua se necesita una infraestructura de claves públicas (o PKI) para los clientes. Estos protocolos permiten prevenir escuchas (eavesdropping), evitar la falsificación de la Identidad del remitente y mantener la integridad del mensaje en una aplicación cliente-servidor.