Protocolos de Seguridad


   Hola, soy Patri y en esta página os voy a hablar de los protocolos de seguridad, de su importancia y cuáles son los principales ejemplos.

   Los protocolos de seguridad regulan la forma de comunicación entre individuos que usan canales electrónicos para dicha comunicación, diseñando reglas para que un sistema pueda aguantar y sobrevivir a un ataque maligno.

   Un protocolo de seguridad es diseñado teniendo en cuenta los riesgos a los que un sistema está expuesto; protegerse de cualquier tipo de mal que exista  es demasiado costoso y prácticamente imposible; por lo que un sistema es protegido de ciertos riesgos que pudiera tener que afrontar. Que un sistema sea seguro depende también de la persona que utiliza dicho sistema.

   Los principales protocolos de seguridad de los que hablaremos a continuación serán:
  • Protocolo SSL: trabaja a nivel de transporte y provee de seguridad a cualquier servicio o protocolo a nivel de aplicación como HTTP, FTP, POP3, SMTP…
  • Protocolo IPSec: trabaja a nivel de red y permite garantizar que el anuncio de un nuevo router proviene de un router autorizado, que un mensaje de redirección proviene del router de destino y que las rutas son infalsificables.
  • Protocolo Kerberos: trabaja a nivel de aplicación y su principal objetivo es proveer un servicio de autenticación de clientes ante servidores y viceversa.

   Ahora nos vamos a centrar en cada uno de ellos.

SSL

El Secure Sockets Layer (SSL), que en español quiere decir “capa de conexión segura”, es un protocolo criptográfico que proporciona conexiones seguras en la red. Fue desarrollado por Netscape para dar seguridad en Internet.

Trabaja sobre el protocolo de transporte TCP y provee seguridad a cualquier servicio o protocolo a nivel de aplicación. El principal objetivo de SSL es aportar a un sistema confidencialidad, integridad y autenticación.
  • Proporciona confidencialidad a través del cifrado de datos, de este modo no podrán ser interpretados por personas que no sean el emisor o el receptor.
  • Proporciona integridad ya que se garantiza que los datos recibidos por el receptor son los mismos datos enviados por el emisor, pero estos además pueden ser modificados por el receptor una vez le lleguen.
  • Proporciona autenticación, tanto de cliente como de servidor, aunque la autenticación de cliente es opcional. El documento de autenticación de ambos es infalsificable y se garantiza que cada uno es quien dice ser.

El protocolo SSL cifra los datos que se intercambian el servidor y el cliente mediante un algoritmo de cifrado simétrico, normalmente siendo este IDEA o RC4. Además cifra la clave de sesión (de IDEA O RC4), que es la que se utiliza para cifrar los datos que vienen del servidor y los que vienen del cliente al servidor, usando un algoritmo de cifrado de clave pública, usualmente RSA. Esta clave de sesión además es distinta en cada transacción, así en caso de ser descubierta en una ocasión no servirá para futuros ataques.

Aquí vemos una imagen del protocolo SSL:




SSL se compone de dos capas (o sub-protocolos):

Protocolo de salutación (handshake)

   Este es el protocolo más complejo de SSL, permite la autenticación del cliente y servidor. Estos se ponen de acuerdo en los parámetros y claves de cifrado necesarios. El protocolo se divide en varias fases:
  •  Se ponen de acuerdo en cuanto al conjunto de algoritmos que se van a utilizar.
  •  Intercambio de claves, teniendo finalmente una clave maestra compartida entre ambos.
  •  Se produce la clave de sesión que se utilizará para cifrar los datos intercambiados.
  •  Se autentica el servidor y opcionalmente se autentica el cliente.
  •  La última fase indica que ya se puede iniciar una sesión segura.

Protocolo de registro

   Este protocolo de SSL está justo por encima de TCP y sirve para proporcionar una conexión segura. Codifica los mensajes utilizando algoritmos de encriptación de llave simétrica, como por ejemplo DES o RC4, a estos se le aplica una MAC para verificar la integridad de estos.

   A continuación vemos una imagen de su funcionamiento:



   IPSEC

   El protocolo IPSec, Internet Protocol security, trabaja a nivel de red y consiste en un conjunto de protocolos que pretende asegurar el flujo de paquetes y así garantizar la seguridad mutua.

   IPSec al trabajar en la capa de red hace que sea más flexible comparado con otros protocolos que trabajan en la capa transporte, como el nombrado anteriormente, SSL, ya que puede ser usado para proteger protocolos de la capa 4, los protocolos de la capa de transporte más utilizados.

   Sus áreas funcionales son:
  • Autenticación: garantiza la identidad del emisor y asegura la integridad del mensaje.
  • Confidencialidad: garantiza la ilegibilidad del mensaje.
  • Gestión de claves: facilita el intercambio de claves.

   IPSec consta de dos componentes básicos:

   Cabecera de autenticación AH

   Sus principales objetivos son garantizar la integridad y la autenticación de los datos de origen del datagrama IP.

   Para ello calcula un HMAC (Hash Message Authentication Code) basada en una clave  secreta y cifra el contenido del paquete IP y esta cabecera se le añade al paquete. AH  protege el contenido del paquete IP y todos los campos de su cabecera excepto los campos  mutantes, es decir, aquellos que pueden ser  modificados durante el tránsito.

   La cabecera de autenticación mide 32 bits y su esquema es el siguiente:




   Encapsulación segura de los datos útiles (ESP)

   Proporciona confidencialidad del mensaje, confidencialidad de tráfico, integridad y autenticación de datos de origen del datagrama IP. Asegura la integridad del paquete empleando una HMAC y la confidencialidad empleando un algoritmo de cifrado.

   A diferencia de AH, que da una pequeña cabecera antes de la carga útil, ESP rodea la carga útil con su protección.

   Su esquema es el siguiente:



   Además IPSec tiene dos modos de trabajo:

   Modo túnel

   IPSec cifra el encabezado IP y la carga. El modo túnel protege todo el paquete IP. Todo este paquete se encapsula con un encabezado AH o ESP y además un encabezado IP adicional. Este modo se utiliza para proteger el tráfico entre redes diferentes, cuando se pasa por redes intermedias que no son de confianza.

   Modo transporte

   Este modo es el predeterminado para IPSec, se usa para comunicaciones de extremo a extremo, añadiendo seguridad a los niveles superiores. El modo transporte cifra únicamente la carga del paquete IP (datos útiles) y proporciona a esta la protección mediante el encabezado AH o ESP.


   KERBEROS

   El objetivo del protocolo Kerberos es proveer a un sistema de un servicio de autenticación centralizado capaz de permitir la autenticación de clientes ante servidores y viceversa. Esto se consigue manteniendo la seguridad, fiabilidad, transparencia y escalabilidad.

   Utiliza un mecanismo de cifrado simétrico y sigue el protocolo de Needham-Schroeder para la distribución de claves.

   Kerberos surge como solución ante la complejidad de los sistemas de autenticación. Utiliza un centro de distribución de claves (KDC) que se estructura en dos componentes: servidor de autenticación (AS) y servidor de vales (TGS).

   El KDC contiene la siguiente información sobre cada usuario, cliente y servidor:

  • El identificador como principal (los principales son los clientes, servidores y usuarios).
  • La clave maestra del principal o la contraseña en caso de ser usuario.
  • La fecha de expiración de la identidad del principal.
  • La fecha en que el registro se modificó por última vez.
  • La identidad del principal que modificó el registro por última vez.
  • Tiempo de vida máximo de los vales del principal.
  • Otros datos.

   Su arquitectura es la siguiente:


   Un cliente que precise trabajar con un servidor debe autenticarse primero ante el KDC y proporcionar a este la autenticación del servidor. El KDC generará una clave que es transmitida a cliente y servidor.

   Pasos:

    Comunicación entre C-AS (servidor de autenticación)
  • Un usuario quiere comunicarse con el cliente y proporciona su nombre de usuario, que el cliente envía al AS.
  • AS busca el nombre de usuario en el KDC y recupera la contraseña.
  • AS con la contraseña cifra un vale de TGS que envía al cliente.
  • El cliente pide al usuario su contraseña y si es válida descifra el vale.

   Comunicación entre C-TGS
  • El cliente se identifica con la identidad de C cifrada anteriormente con la clave del AS, además contiene un sello de tiempo para evitar ataques de repetición.
  • El cliente envía a TGS el vale antes recibido y el nombre del servidor.
  • TGS descifra el vale obteniendo la clave para descifrar la identidad.
  • TGS genera un vale cifrando una clave de sesión y un vale para S.
  • El cliente descifra la clave, el vale para S y el sello de tiempo para comprobar que es un mensaje reciente.

   Comunicación entre C-S (servidor)
  • El cliente construye un autenticador y cifra con la contraseña que tiene con S su identificación y el sello de tiempo. Además de eso le envía el vale de TGS.
  • El servidor descifra el vale, el autenticador y el sello de tiempo.
  • Finalmente S remite a C un acuse de recibo cifrado con la clave que comparten.


   Y esto es todo por mi parte en esta página de protocolos de seguridad, ya sabeis, si teneis alguna duda preguntadme, estaré encantada de contestaros =)

   Un saludo!

4 comentarios:

  1. Me ha gustado mucho tu entrada Patricia, ¡espero nuevas actualizaciones! =)

    fmdo: p.s.s

    ResponderEliminar
    Respuestas
    1. Muchas gracias! iremos poniendo nueva información en la página, ya sabes, no dejes de visitarnos! =)
      Un saludo!

      Eliminar
  2. Genial! he aprendido mucho con esta entrada!
    Muchas gracias!!!

    ResponderEliminar
  3. Muchas gracias por seguirnos! me alegro que te haya ayudado =)

    ResponderEliminar