IPsec (abreviatura de seguridad IP ) es un conjunto de protocolos para garantizar la protección de los datos transmitidos a través del protocolo IP de Internet . Permite la autenticación ( autenticación ), verificación de integridad y/o encriptación de paquetes IP. IPsec también incluye protocolos para el intercambio seguro de claves en Internet . Se utiliza principalmente para organizar conexiones VPN .
Inicialmente, Internet se creó como un medio seguro para la transmisión de datos entre militares. Dado que solo un determinado círculo de personas trabajaba con él, personas educadas y que tenían una idea sobre la política de seguridad, no había una necesidad obvia de crear protocolos seguros. La seguridad se organizaba a nivel de aislamiento físico de los objetos de personas no autorizadas, y esto se justificaba cuando un número limitado de máquinas tenía acceso a la red. Sin embargo, cuando Internet se hizo público y comenzó a desarrollarse y crecer activamente, apareció tal necesidad [1] .
Y en 1994, la Junta de Arquitectura de Internet (IAB) publicó el informe "Seguridad arquitectónica de Internet". Se dedicó principalmente a los métodos de protección contra el control no autorizado, la suplantación de paquetes y el control del flujo de datos. Se necesitaba algún estándar o concepto para resolver este problema. Como resultado, surgieron estándares de protocolo seguro, incluido IPsec. Inicialmente, incluía tres especificaciones básicas descritas en los documentos (RFC1825, 1826 y 1827), pero posteriormente el grupo de trabajo del Protocolo de seguridad IP de IETF las revisó y propuso nuevos estándares (RFC2401 - RFC2412), que todavía se utilizan en la actualidad.
La construcción de un canal de comunicación seguro se puede implementar en diferentes niveles del modelo OSI . IPsec se implementa en la capa de red . Hay varios argumentos en conflicto con respecto a la elección del nivel de implementación del canal seguro: por un lado, la elección de los niveles superiores está respaldada por su independencia del tipo de transporte (la elección de los protocolos de capa de red y enlace), por el otro Por otro lado, cada aplicación requiere un ajuste y una configuración independientes. La ventaja de elegir las capas inferiores es su versatilidad y visibilidad para las aplicaciones, la desventaja es la dependencia de la elección de un protocolo en particular (por ejemplo, PPP o Ethernet ). El hecho de que IPsec resida en la capa de red es un compromiso al elegir la capa OSI. IPsec usa el protocolo de capa de red más común: IP , lo que hace que el uso de IPsec sea flexible; se puede usar para proteger cualquier protocolo basado en IP ( TCP , UDP y otros). Al mismo tiempo, es transparente para la mayoría de las aplicaciones [2] .
IPsec es un conjunto de estándares de Internet y una especie de "complemento" del protocolo IP. Su núcleo consta de tres protocolos [3] :
También uno de los conceptos clave es la Asociación de Seguridad (SA). De hecho, SA es un conjunto de parámetros que caracterizan la conexión. Por ejemplo, el algoritmo de cifrado y la función hash utilizada , claves secretas, número de paquete, etc.
IPsec puede operar en dos modos: transporte y túnel.
En el modo de transporte, solo se cifran o firman los datos del paquete IP, se conserva el encabezado original. El modo de transporte se usa normalmente para establecer una conexión entre hosts. También se puede usar entre puertas de enlace para asegurar túneles organizados de alguna otra manera (ver, por ejemplo, L2TP ).
En el modo túnel, se cifra todo el paquete IP original: datos, encabezado, información de enrutamiento, y luego se inserta en el campo de datos de un nuevo paquete, es decir, se produce la encapsulación [4] . El modo túnel se puede utilizar para conectar equipos remotos a una red privada virtual o para organizar la transmisión segura de datos a través de canales de comunicación abiertos (por ejemplo, Internet) entre puertas de enlace para combinar diferentes partes de una red privada virtual .
Los modos IPsec no son mutuamente excluyentes. En el mismo host, algunas SA pueden usar el modo de transporte, mientras que otras pueden usar el modo de túnel.
Para comenzar a intercambiar datos entre dos partes, debe establecer una conexión, que se denomina SA (Asociación de seguridad). El concepto de SA es fundamental para IPsec, de hecho, es su esencia. Describe cómo las partes utilizarán los servicios para proporcionar comunicaciones seguras. Una conexión SA es simplex (unidireccional), por lo que se deben establecer dos conexiones para que las partes se comuniquen. También vale la pena señalar que los estándares de IPsec permiten que los puntos finales del canal seguro usen una SA para transmitir el tráfico de todos los hosts que interactúan a través de este canal y para crear una cantidad arbitraria de asociaciones seguras para este propósito, por ejemplo, una para cada conexión TCP. . Esto hace posible elegir el nivel deseado de detalle de protección. [2] El establecimiento de una conexión comienza con la autenticación mutua de las partes. A continuación, se seleccionan los parámetros (si se realizarán verificaciones de autenticación, cifrado o integridad de datos) y el protocolo requerido (AH o ESP) para la transferencia de datos. Después de eso, se seleccionan algoritmos específicos (por ejemplo, cifrado, función hash) de varios esquemas posibles, algunos de los cuales están definidos por el estándar (para cifrado - DES , para funciones hash - MD5 o SHA-1 ), otros se agregan por fabricantes de productos que utilizan IPsec (por ejemplo , Triple DES , Blowfish , CAST ) [5] .
Todas las SA se almacenan en la SAD (base de datos de asociaciones de seguridad) del módulo IPsec. Cada SA tiene un marcador único que consta de tres elementos [6] :
El módulo IPsec, dados estos tres parámetros, puede buscar una entrada SA particular en el SAD. La lista de componentes de SA incluye [7] :
Número de serie Un valor de 32 bits que se utiliza para formar el campo Número de secuencia en los encabezados AH y ESP. Desbordamiento del contador de secuencia Una bandera que señala el desbordamiento del contador de números de secuencia. Ventana de supresión de ataques de repetición Se utiliza para determinar la retransmisión de paquetes. Si el valor del campo Número de secuencia no se encuentra dentro del rango especificado, el paquete se destruye. Información AH el algoritmo de autenticación utilizado, las claves requeridas, la vida útil de las claves y otros parámetros. Información ESP algoritmos de encriptación y autenticación, claves requeridas, parámetros de inicialización (por ejemplo, IV), vida útil de la clave y otros parámetros Modo de operación IPsec tunel o transporte Vida útil de SA Especificado en segundos o bytes de información que pasan por el túnel. Determina la duración de la existencia de SA, cuando se alcanza este valor, la SA actual debe finalizar, si es necesario continuar la conexión, se establece una nueva SA. MTU El tamaño máximo de paquete que se puede enviar a través de un circuito virtual sin fragmentación.Cada protocolo (ESP/AH) debe tener su propia SA para cada dirección, por lo que AH+ESP requiere cuatro SA para un enlace dúplex . Todos estos datos residen en el SAD.
El SAD contiene:
Además de la base de datos SAD, las implementaciones de IPsec admiten la base de datos de políticas de seguridad (SPD). SPD se utiliza para correlacionar paquetes IP entrantes con reglas de procesamiento para ellos. Los registros en SPD constan de dos campos. [8] El primero almacena los rasgos característicos de los paquetes, según los cuales se puede distinguir uno u otro flujo de información. Estos campos se denominan selectores. Ejemplos de selectores que están contenidos en SPD [6] :
El segundo campo en SPD contiene la política de seguridad asociada con este flujo de paquetes. Los selectores se utilizan para filtrar los paquetes salientes a fin de hacer coincidir cada paquete con una SA específica. Cuando llega un paquete, los valores de los campos correspondientes en el paquete (campos selectores) se comparan con los contenidos en el SPD. Cuando se encuentra una coincidencia, el campo de política de seguridad contiene información sobre cómo manejar este paquete: pasarlo sin cambios, descartarlo o procesarlo. En el caso de tramitación, el mismo campo contiene un enlace a la entrada correspondiente en el DUA. Luego se determina la SA para el paquete y su índice de parámetros de seguridad (SPI) asociado, después de lo cual se realizan las operaciones de IPsec (operaciones de protocolo AH o ESP). Si el paquete es entrante, inmediatamente contiene SPI: se lleva a cabo el procesamiento correspondiente.
compensaciones | 16 de octubre | 0 | una | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 de octubre | bit 10 | 0 | una | 2 | 3 | cuatro | 5 | 6 | 7 | ocho | 9 | diez | once | 12 | 13 | catorce | quince | dieciséis | 17 | Dieciocho | 19 | veinte | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | treinta | 31 |
0 | 0 | Siguiente encabezado | Longitud de carga útil | Reservado | |||||||||||||||||||||||||||||
cuatro | 32 | Índice de parámetros de seguridad (SPI) | |||||||||||||||||||||||||||||||
ocho | 64 | secuencia de números | |||||||||||||||||||||||||||||||
C | 96 | Valor de comprobación de integridad (ICV) ... | |||||||||||||||||||||||||||||||
… | … |
El protocolo AH se utiliza para la autenticación, es decir, para confirmar que nos estamos comunicando exactamente con quienes creemos que somos y que los datos que recibimos no se manipulan en tránsito [9] .
Si el módulo IPsec de transmisión determina que el paquete está asociado con una SA que requiere procesamiento AH, entonces comienza el procesamiento. Dependiendo del modo (modo de transporte o túnel), inserta el encabezado AH de manera diferente en el paquete IP. En el modo de transporte, el encabezado AH aparece después del encabezado del protocolo IP y antes de los encabezados del protocolo de la capa superior (normalmente TCP o UDP ). En el modo de túnel, todo el paquete IP de origen se enmarca primero con el encabezado AH y luego con el encabezado del protocolo IP. Este encabezado se denomina externo y el encabezado del paquete IP original se denomina interno. Después de eso, el módulo IPsec transmisor debe generar un número de secuencia y escribirlo en el campo Número de secuencia . Cuando se establece una SA, el número de secuencia se establece en 0 y se incrementa en uno antes de enviar cada paquete IPsec. Además, hay una comprobación para ver si el contador ha ido en ciclos. Si ha alcanzado su valor máximo, se vuelve a establecer en 0. Si se utiliza el servicio de prevención de retransmisión, cuando el contador alcanza su valor máximo, el módulo IPsec de transmisión reinicia la SA. Esto brinda protección contra el reenvío de paquetes : el módulo IPsec receptor verificará el campo Número de secuencia e ignorará los paquetes entrantes. A continuación, se calcula la suma de comprobación de ICV. Cabe señalar que aquí la suma de verificación se calcula utilizando una clave secreta, sin la cual un atacante podrá volver a calcular el hash, pero sin conocer la clave, no podrá formar la suma de verificación correcta. Los algoritmos específicos utilizados para calcular el ICV se pueden encontrar en RFC 4305 . Actualmente, por ejemplo, se pueden utilizar los algoritmos HMAC-SHA1-96 o AES-XCBC-MAC-96. El protocolo AH calcula la suma de comprobación (ICV) a partir de los siguientes campos del paquete IPsec [10] :
Al recibir un paquete que contiene un mensaje de protocolo AH, el módulo IPsec receptor busca la conexión virtual segura (SA) SAD (base de datos de asociaciones de seguridad) adecuada utilizando la dirección IP de destino, el protocolo de seguridad (AH) y el índice SPI. Si no se encuentra ninguna SA coincidente, el paquete se descarta. La conexión virtual segura (SA) encontrada indica si el servicio se utiliza para evitar la retransmisión de paquetes, es decir, la necesidad de verificar el campo Número de secuencia . Si el servicio está en uso, el campo está marcado. Esto utiliza un método de ventana deslizante para limitar la memoria intermedia necesaria para que funcione el protocolo. El módulo IPsec receptor forma una ventana con un ancho W (generalmente W se elige para que sea de 32 o 64 paquetes). El borde izquierdo de la ventana corresponde al número de secuencia mínimo ( Sequence Number ) N de un paquete recibido correctamente. Un paquete con un campo de número de secuencia que contiene un valor de N+1 a N+W se recibe correctamente. Si el paquete recibido está en el borde izquierdo de la ventana, se destruye. El módulo IPsec receptor luego calcula el ICV de los campos apropiados del paquete recibido utilizando el algoritmo de autenticación que aprende del registro SA y compara el resultado con el valor ICV ubicado en el campo "Valor de verificación de integridad". Si el valor ICV calculado coincide con el recibido, el paquete entrante se considera válido y se acepta para su posterior procesamiento de IP. Si la comprobación falla, el paquete recibido se destruye [10] .
compensaciones | 16 de octubre | 0 | una | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 de octubre | bit 10 | 0 | una | 2 | 3 | cuatro | 5 | 6 | 7 | ocho | 9 | diez | once | 12 | 13 | catorce | quince | dieciséis | 17 | Dieciocho | 19 | veinte | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | treinta | 31 |
0 | 0 | Índice de parámetros de seguridad (SPI) | |||||||||||||||||||||||||||||||
cuatro | 32 | secuencia de números | |||||||||||||||||||||||||||||||
ocho | 64 | datos de carga útil | |||||||||||||||||||||||||||||||
… | … | ||||||||||||||||||||||||||||||||
… | … | ||||||||||||||||||||||||||||||||
… | … | Relleno (0-255 octetos) | |||||||||||||||||||||||||||||||
… | … | Longitud de la almohadilla | Siguiente encabezado | ||||||||||||||||||||||||||||||
… | … | Valor de comprobación de integridad (ICV) ... | |||||||||||||||||||||||||||||||
… | … |
Si el módulo IPsec de transmisión determina que el paquete está asociado con una SA que requiere procesamiento ESP, entonces comienza el procesamiento. Según el modo (modo de transporte o túnel), el paquete IP original se procesa de manera diferente. En el modo de transporte, el módulo IPsec de transmisión realiza el procedimiento de trama para el protocolo de capa superior (por ejemplo, TCP o UDP), utilizando el encabezado ESP (los campos Índice de parámetros de seguridad y Número de secuencia del encabezado) y el tráiler ESP (el resto campos del encabezado que siguen al campo de datos) para esto. - Datos de carga útil), sin afectar el encabezado del paquete IP original. En el modo de túnel, el paquete IP se enmarca con un encabezado ESP y un tráiler ESP ( encapsulación ), después de lo cual se enmarca con un encabezado IP externo (que puede no coincidir con el original, por ejemplo, si el módulo IPsec está instalado en la puerta de enlace ) [8] . A continuación, se realiza el cifrado: en el modo de transporte, solo se cifra el mensaje del protocolo de la capa superior (es decir, todo lo que estaba después del encabezado IP en el paquete de origen), en el modo de túnel, todo el paquete de IP de origen. El módulo IPsec transmisor de la entrada SA determina el algoritmo de cifrado y la clave secreta . Los estándares IPsec permiten el uso de los algoritmos de cifrado Triple DES , AES y Blowfish si ambas partes los admiten. De lo contrario, se utiliza DES como se especifica en RFC 2405 . Dado que el tamaño del texto sin formato debe ser un múltiplo de una cierta cantidad de bytes, por ejemplo, el tamaño de bloque para algoritmos de bloque , antes del cifrado, también se realiza la adición necesaria del mensaje cifrado. El mensaje cifrado se coloca en el campo Datos de carga útil . El campo Longitud del pad contiene la longitud del pad . Luego, como en AH, se calcula el número de secuencia, después de lo cual se calcula la suma de verificación (ICV). La suma de verificación, a diferencia del protocolo AH, donde también se tienen en cuenta algunos campos del encabezado IP al calcularlo, en ESP se calcula solo por los campos del paquete ESP menos el campo ICV. Antes de calcular la suma de comprobación, se rellena con ceros. El algoritmo de cálculo de ICV, como en el protocolo AH, el módulo IPsec de transmisión aprende del registro sobre la SA con la que está asociado el paquete procesado.
Al recibir un paquete que contiene un mensaje de protocolo ESP, el módulo IPsec receptor busca la conexión virtual segura (SA) adecuada en el SAD utilizando la dirección IP de destino, el protocolo de seguridad (ESP) y el índice SPI [8] . Si no se encuentra ninguna SA coincidente, el paquete se descarta. La conexión virtual segura (SA) encontrada indica si se está utilizando el servicio de prevención de retransmisión de paquetes, es decir, la necesidad de verificar el campo Número de secuencia. Si el servicio está en uso, el campo está marcado. Para ello, al igual que en AH, se utiliza el método de ventana deslizante. El módulo IPsec receptor forma una ventana de ancho W. El borde izquierdo de la ventana corresponde al número de secuencia mínimo (Sequence Number) N de un paquete recibido correctamente. Un paquete con un campo de número de secuencia que contiene un valor de N+1 a N+W se recibe correctamente. Si el paquete recibido está en el borde izquierdo de la ventana, se destruye. Luego, si se usa el servicio de autenticación, el módulo IPsec receptor calcula el ICV a partir de los campos correspondientes del paquete recibido usando el algoritmo de autenticación que aprende del registro SA y compara el resultado con el valor de ICV ubicado en el "Valor de verificación de integridad". campo. Si el valor ICV calculado coincide con el recibido, el paquete entrante se considera válido. Si la comprobación falla, el paquete receptor se descarta. A continuación, se descifra el paquete. El módulo IPsec receptor aprende de la entrada SA qué algoritmo de cifrado se utiliza y la clave secreta. Cabe señalar que la verificación de la suma de verificación y el procedimiento de descifrado se pueden llevar a cabo no solo secuencialmente, sino también en paralelo. En este último caso, el procedimiento de verificación de suma de verificación debe finalizar antes que el procedimiento de descifrado, y si la verificación de ICV falla, el procedimiento de descifrado también debe finalizar. Esto permite una detección más rápida de paquetes rotos, lo que a su vez aumenta el nivel de protección contra ataques de denegación de servicio (ataques DOS ). Además, el mensaje descifrado de acuerdo con el campo Siguiente encabezado se transmite para su posterior procesamiento.
IKE (pronunciado haik , abreviatura de Intercambio de claves de Internet) es un protocolo que une todos los componentes de IPsec en un todo funcional. En concreto, IKE prevé la autenticación inicial de las partes, así como su intercambio de secretos compartidos .
Es posible configurar manualmente una clave de sesión (que no debe confundirse con la clave precompartida [PSK] para la autenticación). En este caso, no se utiliza IKE. Sin embargo, esta opción no se recomienda y rara vez se usa. Tradicionalmente, IKE opera en el puerto 500 UDP .
Existe IKE y una versión más reciente del protocolo: IKEv2. Existen algunas diferencias en las especificaciones y el funcionamiento de estos protocolos. IKEv2 establece los parámetros de conexión en una sola fase que consta de varios pasos. El proceso IKE se puede dividir en dos fases.
IKE crea un canal seguro entre dos nodos denominado asociación de seguridad IKE (IKE SA). También en esta fase, los dos nodos acuerdan una clave de sesión utilizando el algoritmo Diffie-Hellman . La primera fase de IKE puede tener lugar en uno de dos modos [12] :
Desde el punto de vista de la seguridad, el modo agresivo es más débil, ya que los participantes comienzan a intercambiar información antes de establecer un canal seguro, por lo que es posible la interceptación no autorizada de datos. Sin embargo, este modo es más rápido que el principal. De acuerdo con el estándar IKE, se requiere cualquier implementación para admitir el modo principal , y es muy deseable admitir el modo agresivo .
En la fase dos IKE, solo hay un modo rápido. El modo rápido solo se realiza después de que se haya establecido el canal seguro durante la primera fase. Negocia una política IPsec común, obtiene secretos compartidos para los algoritmos del protocolo IPsec (AH o ESP), establece una IPsec SA. El uso de números secuenciales brinda protección contra ataques de reproducción. Además, el modo rápido se usa para revisar la IPsec SA actual y seleccionar una nueva cuando la SA caduca. De forma predeterminada, el modo rápido actualiza las claves secretas compartidas mediante el algoritmo Diffie-Hellman de la primera fase.
Los protocolos IPsec se pueden dividir en cinco etapas [13] :
El protocolo IPsec se utiliza principalmente para organizar túneles VPN . En este caso, los protocolos ESP y AH funcionan en modo túnel. Además, al configurar políticas de seguridad de cierta manera, el protocolo puede usarse para crear un firewall . El significado de un firewall es que controla y filtra los paquetes que lo atraviesan de acuerdo con las reglas dadas. Se establece un conjunto de reglas y la pantalla observa todos los paquetes que pasan por ella. Si los paquetes transmitidos están sujetos a estas reglas, el cortafuegos los procesa en consecuencia [14] . Por ejemplo, puede rechazar ciertos paquetes, terminando así las conexiones inseguras. Al configurar la política de seguridad en consecuencia, puede, por ejemplo, denegar el tráfico web. Para ello, basta con prohibir el envío de paquetes que contengan mensajes de protocolo HTTP y HTTPS . IPsec también se puede usar para proteger servidores; para esto, todos los paquetes se descartan, excepto los paquetes necesarios para el correcto desempeño de las funciones del servidor. Por ejemplo, para un servidor web, puede bloquear todo el tráfico excepto las conexiones en el puerto TCP 80 o en el puerto TCP 443 en los casos en que se utilice HTTPS .
Ejemplo [15] :
IPsec proporciona acceso de usuario seguro al servidor. Al usar el protocolo ESP, todas las llamadas al servidor y sus respuestas están encriptadas. Sin embargo, los mensajes claros se envían detrás de la puerta de enlace VPN (en el dominio de cifrado).
Otros ejemplos de uso de IPsec [16] :
Redes privadas virtuales (VPN) | |
---|---|
Tecnología | |
Software | |
Servicios VPN |
Protocolos TCP /IP básicos por capas del modelo OSI | |
---|---|
Físico | |
canalizado | |
la red | |
Transporte | |
sesión | |
Representación | |
Aplicado | |
Otro aplicado | |
Lista de puertos TCP y UDP |