Seguridad en MQTT: TLS, autenticación y buenas prácticas
Aprende cómo asegurar tu infraestructura MQTT con TLS, autenticación por credenciales y buenas prácticas de seguridad para IoT.
Maykol Rey
Seguridad en MQTT: TLS, autenticación y buenas prácticas
La seguridad en IoT no es opcional, es parte del diseño. Cuando conectas dispositivos que reportan datos de procesos industriales, sensores críticos o información sensible, necesitas asegurar cada capa de comunicación.
Las 3 capas de seguridad en MQTT
1. Cifrado en tránsito (TLS)
MQTT plano usa TCP en el puerto 1883. Para cifrar la comunicación necesitas TLS (puerto 8883):
#define MQTT_BROKER "mqtts://mqtt.kuska.io:8883"
Con TLS habilitado:
- Los mensajes viajan cifrados extremo a extremo
- Se previene la suplantación del broker (certificate pinning)
- Las credenciales nunca viajan en texto plano
2. Autenticación
Cada dispositivo debe tener credenciales únicas. Nunca compartas una misma contraseña entre múltiples dispositivos:
device-001 → user: sensor_linea1 pass: abc123...xyz
device-002 → user: sensor_linea2 pass: def456...uvw
3. Autorización (ACL)
No todos los dispositivos deben poder publicar o suscribirse a todos los topics. Usa ACLs para restringir:
user sensor_linea1 → publish: proyecto/sensor/+/temperatura
user sensor_linea1 → subscribe: proyecto/sensor/+/comando
Buenas prácticas adicionales
- Rotación de credenciales: cambia las contraseñas MQTT periódicamente
- Monitoreo de tráfico: detecta patrones anómalos de publicación
- Rate limiting: limita cuántos mensajes por segundo puede publicar cada dispositivo
- Logs de acceso: mantén un registro de conexiones y desconexiones
- Firmware actualizado: mantén el ESP-IDF y librerías al día
Conclusión
La seguridad en MQTT se construye en capas: cifrado, autenticación y autorización. Implementar estas tres capas desde el día uno evita dolores de cabeza cuando escalas tu sistema IoT a decenas o cientos de dispositivos. Hazlo bien desde el principio.