MACsec (Media Access Control Security) es un estándar definido por el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) bajo la especificación 802.1AE.
Este protocolo proporciona seguridad en la capa de enlace de datos (capa 2 del modelo OSI), asegurando la integridad y confidencialidad de los datos que se transmiten entre dispositivos en una red local (LAN).
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
Funcionalidades de MACsec
1. Autenticación de Paquetes
MACsec autentica cada paquete de datos transmitido, asegurándose de que provenga de una fuente legítima. Esto ayuda a prevenir ataques de suplantación de identidad y asegurarse de que los datos no sean manipulados por actores no autorizados.
2. Confidencialidad de los Datos
A través del cifrado, MACsec garantiza que los datos transmitidos sean accesibles únicamente por los dispositivos autorizados. Este cifrado se realiza en la capa 2, lo que significa que la información es protegida antes de ser enviada a la capa de red.
3. Integridad de los Datos
MACsec utiliza mecanismos de autenticación de mensajes para asegurar que los datos no hayan sido alterados durante la transmisión. Esto se logra mediante el uso de códigos de autenticación de mensajes (MACs).
4. Protección Contra Repetición de Paquetes
MACsec incluye un contador de paquetes en cada trama que permite detectar y evitar ataques de repetición, donde un atacante podría intentar retransmitir un paquete válido para causar efectos adversos en la red.
Componentes de MACsec
1. CA (Connectivity Association)
Una CA es un conjunto de dispositivos que comparten una clave secreta y se comunican de forma segura entre sí. Cada dispositivo dentro de una CA es un miembro de esa asociación de conectividad.
2. SA (Secure Association)
Una SA es una relación segura unidireccional que define cómo se cifrarán y autenticarán los paquetes enviados desde un dispositivo a otro. Cada SA tiene su propia clave de cifrado y parámetros de seguridad.
3. SCI (Secure Channel Identifier)
El SCI identifica de manera única a los dispositivos en una red y se utiliza para diferenciar entre diferentes canales seguros.
4. SecTAG (Security Tag)
El SecTAG es un campo que se agrega a cada paquete para transportar información de seguridad, como el SCI y el número de secuencia de la trama.
Proceso de Funcionamiento
Establecimiento de la Clave
Los dispositivos que deseen comunicarse de forma segura primero establecen una clave compartida mediante un protocolo de gestión de claves, como el protocolo MKA (MACsec Key Agreement).
Generación de SA
Utilizando la clave compartida, se generan una o más Secure Associations (SA) con parámetros de cifrado específicos.
Cifrado y Autenticación de Paquetes
Cada paquete de datos que se transmite se cifra y se le agrega un SecTAG. El paquete cifrado se autentica para asegurar su integridad y legitimidad.
Recepción y Descifrado de Paquetes
El dispositivo receptor utiliza la clave de la SA correspondiente para descifrar el paquete y verificar su autenticidad antes de procesar los datos.
Ventajas de MACsec
- Seguridad Mejorada: Proporciona una capa adicional de seguridad, protegiendo la red local de ataques internos.
- Transparencia: Funciona de manera transparente para las capas superiores, lo que significa que no se requiere modificación de las aplicaciones o protocolos de red existentes.
- Rendimiento: La implementación de MACsec generalmente se realiza en hardware, lo que permite mantener un alto rendimiento de la red.
Desafíos y Consideraciones
- Compatibilidad: No todos los dispositivos de red soportan MACsec, lo que puede requerir actualizaciones de hardware.
- Gestión de Claves: La gestión y distribución de claves seguras es crucial y puede ser compleja.
- Costos: La implementación de MACsec puede aumentar los costos debido a la necesidad de hardware y software especializados.
Implementación de MACsec en MikroTik RouterOS v7
Con la versión 7, MikroTik ha incorporado soporte para MACsec permitiendo a los administradores de red implementar una capa adicional de seguridad en sus redes locales.
MACsec utiliza cifrado GCM-AES-128 sobre Ethernet y asegura todo el tráfico de LAN, incluyendo DHCP, ARP, LLDP y protocolos de capa superior.
La implementación de MACsec en RouterOS está en una etapa temprana. No soporta la gestión dinámica de claves a través de Dot1x (se requiere configuración manual de claves) y el cifrado acelerado por hardware (el rendimiento máximo está muy limitado por la CPU del dispositivo).
Ejemplo Básico de Configuración
Imagina que la interfaz ether1 de Host1 está conectada a la interfaz ether1 del Switch y que la interfaz ether1 de Host2 está conectada a la interfaz ether2 del Switch.
En este ejemplo, crearemos dos pares de interfaces MACsec y usaremos un bridge para crear una conexión segura de Capa 2 entre ambos dispositivos finales.
Primero, configura las interfaces MACsec en Host1 y Host2. Podemos especificar solo la interfaz Ethernet y RouterOS generará automáticamente la Clave de Asociación de Conectividad (CAK) y el nombre de la asociación de conectividad (CKN). Utiliza el comando print para ver los valores:
# Host1
/interface macsec
add interface=ether1 name=macsec1
[admin@Host1] /interface/macsec print
Flags: I - inactive, X - disabled, R - running
0 name="macsec1" mtu=1468 interface=ether1 status="negotiating" cak=71a7c363794da400dbde595d3926b0e9
ckn=f2c4660060169391d29d8db8a1f06e5d4b84a128bad06ad43ea2bd4f7d21968f profile=default
# Host2
/interface macsec
add interface=ether1 name=macsec1
[admin@Host2] /interface/macsec print
Flags: I - inactive, X - disabled, R - running
0 name="macsec1" mtu=1468 interface=ether1 status="negotiating" cak=dc47d94291d19a6bb26a0c393a1af9a4
ckn=e9bd0811dad1e56f06876aa7715de1855f1aee0baf5982ac8b508d4fc0f162d9 profile=default
En el dispositivo Switch, para habilitar MACsec, necesitamos configurar los valores de CAK y CKN correspondientes para la interfaz Ethernet apropiada:
# Switch
/interface macsec
add comment=Host1 cak=71a7c363794da400dbde595d3926b0e9 ckn=f2c4660060169391d29d8db8a1f06e5d4b84a128bad06ad43ea2bd4f7d21968f interface=ether1 name=macsec1
add comment=Host2 cak=dc47d94291d19a6bb26a0c393a1af9a4 ckn=e9bd0811dad1e56f06876aa7715de1855f1aee0baf5982ac8b508d4fc0f162d9 interface=ether2 name=macsec2
Una vez que las claves precompartidas se intercambien con éxito, se activa el protocolo de Acuerdo de Clave MACsec (MKA). MKA es responsable de asegurar la continuidad de MACsec en el enlace y determina qué lado se convierte en el servidor de claves en una conexión punto a punto.
El servidor de claves genera una Clave de Asociación Segura (SAK) que se comparte exclusivamente con el dispositivo en el otro extremo del enlace.
Esta SAK se utiliza para asegurar todo el tráfico de datos que pasa por el enlace. Periódicamente, el servidor de claves genera una nueva SAK creada aleatoriamente y la comparte a través del enlace punto a punto para mantener la funcionalidad de MACsec.
En RouterOS, la interfaz MACsec se puede configurar como cualquier interfaz Ethernet. Se puede usar como una interfaz enrutable con una dirección IP o colocarse dentro de un bridge. En Host1 y Host2, agregaremos una dirección IP de la misma red. En el Switch, utilizaremos un bridge.
Requisitos Previos
- Dispositivo MikroTik Compatible: Asegúrate de que tu dispositivo MikroTik es compatible con RouterOS v7 y tiene soporte para MACsec.
- Versión de RouterOS: Verifica que tu RouterOS esté actualizado a la versión 7 o superior.
- Conexión a la Interfaz de Configuración: Accede a la interfaz de configuración de tu dispositivo, ya sea a través de Winbox, WebFig o la línea de comandos (CLI).
Pasos para Implementar MACsec
1. Acceso al Dispositivo
Accede a tu dispositivo MikroTik usando Winbox o a través de SSH para utilizar la CLI.
2. Configuración de Interfaces
Identifica las interfaces que deseas proteger con MACsec. Puedes listar las interfaces disponibles usando el siguiente comando en la CLI:
/interface print
3. Creación de Peer (Par) MACsec
Configura los pares MACsec (los dispositivos que se comunicarán de manera segura). Se necesita definir los parámetros de seguridad, como la clave secreta compartida.
/interface macsec peer add name=peer1 mac-address=XX:XX:XX:XX:XX:XX
Reemplaza XX:XX:XX:XX:XX:XX con la dirección MAC del dispositivo remoto.
4. Configuración de la Clave
Define una clave secreta compartida que se utilizará para cifrar y autenticar los datos. Esto se puede hacer con el siguiente comando:
/interface macsec key add key=miClaveSecreta name=miClave1
5. Asociación de la Clave con el Peer
Asocia la clave previamente creada con el peer configurado:
/interface macsec set peer=peer1 key=miClave1
6. Activación de MACsec en la Interfaz
Activa MACsec en la interfaz deseada. Por ejemplo, para activar MACsec en la interfaz ether1, utiliza el siguiente comando:
/interface macsec interface add interface=ether1 peer=peer1
7. Verificación de la Configuración
Verifica que la configuración se haya aplicado correctamente y que MACsec esté activo en la interfaz. Puedes usar los siguientes comandos:
/interface macsec print
/interface macsec interface print
Esto te mostrará el estado de MACsec en las interfaces y cualquier información relevante sobre las conexiones seguras.
Consideraciones Adicionales
- Compatibilidad de Dispositivos: Asegúrate de que todos los dispositivos en la red soporten MACsec para evitar problemas de conectividad.
- Rendimiento: Aunque la implementación de MACsec se realiza en hardware, verifica que el rendimiento de la red no se vea significativamente afectado.
- Actualización de Claves: Implementa un plan de rotación de claves para mantener la seguridad de la red.
- Documentación: Mantén una documentación clara y actualizada de la configuración de MACsec para facilitar la gestión y resolución de problemas.
Ejemplo Completo de Configuración en CLI
A continuación, se muestra un ejemplo completo de configuración de MACsec en una interfaz ether1:
# Acceder al dispositivo MikroTik
/interface print
# Crear un peer MACsec
/interface macsec peer add name=peer1 mac-address=XX:XX:XX:XX:XX:XX
# Crear una clave secreta
/interface macsec key add key=miClaveSecreta name=miClave1
# Asociar la clave con el peer
/interface macsec set peer=peer1 key=miClave1
# Activar MACsec en la interfaz ether1
/interface macsec interface add interface=ether1 peer=peer1
# Verificar la configuración
/interface macsec print
/interface macsec interface print
Conclusión
MACsec es una herramienta poderosa para asegurar las comunicaciones en la capa 2 de las redes locales, proporcionando autenticación, integridad y confidencialidad de los datos transmitidos.
Su implementación mejora significativamente la seguridad de la red, aunque puede requerir consideraciones en términos de compatibilidad, gestión y costos.
La implementación de MACsec en MikroTik RouterOS v7 mejora significativamente la seguridad de la red local al proporcionar autenticación, integridad y confidencialidad en la capa de enlace de datos.
Breve cuestionario de conocimientos
¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?
Libros recomendados para éste artículo
(Book) Networking with MikroTik RouterOS: A Practical Approach to Understanding and Implementing RouterOS
Material de estudio para el Curso de Certificación MTCNA, actualizado a RouterOS v7
Libro Switching y Brindging RouterOS v7
Material de estudio para el Curso de Certificación MTCSWE actualizado a RouterOS v7
Artículos Relacionados
- Malas configuraciones en Capa 2: Limitaciones de Hardware Offload en Múltiples Bridges
- Malas configuraciones en Capa 2: Interfaces LAG y balanceo de carga
- Malas configuraciones en Capa 2: Flujo de paquetes con Hardware Offloading y aprendizaje de MAC
- Entendiendo el Concepto de MTU en Capa 2 y Capa 3: Impactos y Consideraciones
- Bonding XOR (balance-xor) en MikroTik