Este artículo lleva a cabo una investigación y análisis en profundidad sobre el mecanismo de soporte IPsec en el kernel Linux 2.6, y proporciona un método de diseño integral para construir una pasarela VPN: incluyendo la consola de la pasarela de usuario, la comunicación del módulo del kernel y el módulo IKE, diseñando e implementando un prototipo de pasarela de seguridad VPN IPsec.
La seguridad es un requisito importante para el desarrollo de Internet. En febrero de 1998, el IETF publicó el protocolo de seguridad IP, comúnmente conocido como IPsec. Se trata de un conjunto de protocolos en la capa de red que proporcionan autenticación de la fuente de datos, integridad de datos y confidencialidad de datos para IPv4 e IPv6. Como conjunto de seguridad de red extensible, IPsec es compatible y cada vez más ampliamente adoptado. La arquitectura de seguridad IPsec consta de cuatro partes:
(1) Protocolo de seguridad: El encabezado de autenticación (AH) se utiliza para proporcionar integridad sin conexión y autenticación de la fuente de datos para datagramas IP. ESP proporciona confidencialidad, autenticación del origen de los datos, integridad sin conexión, confidencialidad de la capa de red y confidencialidad limitada del tráfico. Tanto AH como ESP admiten dos modos de uso: modo transporte y modo túnel. En modo transporte, el protocolo protege principalmente los protocolos de capa superior. En modo túnel, el protocolo es adecuado para tunelizar paquetes IP.Pasarela industrial
(2) Asociaciones de seguridad y políticas de seguridad. Una asociación de seguridad (SA) es una simple "conexión" que puede utilizar AH o ESP para proporcionar servicios de seguridad unidireccionales. Si se aplica protección AH y ESP al flujo de tráfico, es necesario crear dos (o más) SA.Para garantizar una comunicación bidireccional típica entre dos hosts, o entre dos pasarelas de seguridad, se necesitan dos asociaciones de seguridad (una en cada dirección)
necesarias. Las políticas de seguridad se dirigen a múltiples parámetros de comunicación (como direcciones IP, números de puerto, protocolos, etc.) para definir servicios de seguridad de red aplicados específicamente a un tráfico de red concreto.
(3) Protocolo de interacción de claves. Internet Key Exchange (IKE) es un importante protocolo IPsec. Su propósito es negociar y proporcionar material de claves certificadas de asociación de seguridad de forma protegida.La versión actual del protocolo es IKEv2, que define
Tipos más eficaces de intercambio de claves, claves, mecanismos de autenticación y cifrado más seguros y la creación de nuevos métodos.
(4) Algoritmo de seguridad. Los algoritmos especificados por IPsec incluyen HMAC-MD5-96, HMAC-SHA-96, el algoritmo criptográfico DES-CBC y muchos otros algoritmos.
1 Compatibilidad con Linux IPSec
El núcleo Linux 2.6 proporciona un nuevo mecanismo de soporte para IPSec. El mecanismo de soporte de IPSec en el núcleo Linux 2.6 incluye principalmente: Procesamiento IPSec/acceso sin fisuras 0 en la pila de protocolos de red del kernel, protocolo AH, procesamiento de protocolos ESP, la estructura de datos y estructuras de datos relacionadas de los componentes importantes de IPSec asociación de seguridad SA y política de seguridad SP Algoritmo de acceso, construcción y acceso de la base de datos de asociación de seguridad SAD y base de datos de política de seguridad SPD, soporte de la biblioteca de funciones de algoritmos de cifrado IPSec, soporte de comunicación entre el modo kernel y el modo usuario basado en el socket Netlink, y gestión de IPSec del kernel, etc. Diseño e implementación general de la pasarela 2VPN
La pasarela de seguridad VPN se divide en módulo de consola de usuario y módulo de espacio de núcleo. Como se muestra en la Figura 1.
La consola de gestión de la pasarela de seguridad proporciona a los administradores una interfaz de configuración de gestión. Los administradores de VPN pueden activar o desactivar la función de pasarela de seguridad a través de la consola. Cuando la pasarela de seguridad está activada, pueden establecer manualmente un canal seguro a través de la consola de gestión y configurar las políticas de seguridad, las asociaciones de seguridad y otros parámetros de comunicación segura.
El módulo de pasarela de seguridad e interacción con el kernel es un concentrador de comunicaciones que se encarga de conectar el proceso del espacio de usuario y la parte IPSec del espacio del kernel. Realiza principalmente dos tareas:
(1) Recibir mensajes iniciados activamente por procesos del espacio de usuario, incluidas las solicitudes enviadas por la consola de gestión y el demonio IKE, encapsular las solicitudes del proceso de usuario en un formato de mensaje aceptable para la gestión IPSec del núcleo, enviarlas al núcleo y, por último, supervisar los resultados del procesamiento del núcleo ;
(2) Monitorizar mensajes iniciados activamente por el kernel, incluyendo: solicitud para establecer SA, notificación de expiración de vida SA, y notificación de expiración de vida de política de seguridad.
La parte de gestión IPSec del kernel también incluye la interfaz de comunicación proporcionada por el kernel para la interacción entre IPSec del kernel y el espacio de usuario. Esta parte recibe mensajes del espacio de usuario, llama a las funciones correspondientes proporcionadas en el núcleo y completa operaciones específicas.
La base de datos de asociaciones de seguridad SAD contiene todas las asociaciones de seguridad utilizadas para proteger las comunicaciones, y la base de datos de políticas de seguridad SPD contiene todas las entradas de políticas utilizadas. Todos los paquetes entrantes y salientes pasan por la capa IP. Al recibir el procesamiento IPSec, SAD y SPD deben ser consultados para tomar las medidas de procesamiento correspondientes.
El procesamiento IPSec proporciona protección de cifrado e integridad para los datos salientes, descifra y comprueba la integridad de los datos recibidos, y realiza realmente la función de garantía de seguridad de la pasarela de seguridad. Se proporciona esta parte del núcleo funcional. La biblioteca de algoritmos de cifrado del núcleo proporciona a IPSec las funciones necesarias para diversas operaciones de cifrado.