Detalles de cifrado en MeshCore
AES-128, validacion MAC, secretos compartidos y el modelo practico de seguridad en MeshCore
Como MeshCore protege tus datos
Segun el codigo fuente y la documentacion actual de MeshCore, la implementacion vigente usa cifrado por bloques AES-128 junto con una MAC HMAC-SHA256 truncada. No es lo mismo que AES-256.
El modelo de seguridad en MeshCore se basa en cifrado simetrico: cualquiera que tenga la PSK puede cifrar y descifrar. Es simple y efectivo para redes mesh con grupos definidos.
Esta guia tecnica explica como funciona el cifrado, como gestionar las claves, que medidas existen y cuales son sus limites. Conviene entender bien esos compromisos antes de montar una red cifrada.
Capas de seguridad en MeshCore
Cifrado de payload (AES-128)
Los payloads privados se cifran antes de transmitirse. En la implementacion actual eso se hace con AES-128. Solo los nodos con el secreto compartido correcto pueden leer el contenido.
Claves a nivel dispositivo
Cada dispositivo tiene una clave unica para funciones administrativas. Evita que cualquiera reconfigure tu nodo, incluso en un canal publico.
Seguridad del canal admin
Canales admin siempre usan una PSK separada. La configuracion remota solo es posible para nodos autorizados con la clave.
Diseno actual del cifrado
Segun la implementacion actual, el payload se cifra con AES-128 por bloques. La documentacion oficial tambien menciona zero padding y una HMAC-SHA256 truncada para integridad.
Proceso de cifrado: 1. PSK (256-bit) + Packet Counter (IV) -> AES-CTR 2. Payload en claro XOR stream cifrado -> Ciphertext 3. Ciphertext + Counter se transmite por radio 4. Receptor: AES-CTR con la misma PSK + Counter -> texto en claro
La ventaja de CTR es que cifrar/descifrar es la misma operacion (XOR). Es rapido en ESP32 por aceleracion AES en hardware. Una clave de 256-bit es extremadamente dificil de forzar por fuerza bruta.
Gestion de claves PSK
Generacion de clave
Las PSK son claves aleatorias de 256-bit (32 bytes). Suelen verse como base64 o hex. Genera con un RNG criptografico, no con claves tipo "password123".
Distribucion
Comparte PSK de forma segura con tu grupo: QR, USB o un canal seguro. No envies claves por radio sin cifrar ni por canales publicos.
Rotacion
Cambia la PSK periodicamente, especialmente si alguien sale del grupo. MeshCore puede soportar multiples claves a la vez para transicion suave.
Claves por defecto
El canal principal suele ser publico (sin PSK). Canales secundarios suelen usar PSK propias. Existe una clave estandar "AQ==" pero no es segura porque es conocida.
Especificaciones tecnicas
| Parametro | Valor | Descripcion |
|---|---|---|
| Algoritmo | AES-128 por bloques | La implementacion actual usa AES128 sobre bloques de 16 bytes |
| Longitud de clave | 128 bits (16 bytes) | La funcion de cifrado de paquetes usa una clave de 16 bytes |
| IV (Initialization Vector) | Contador de paquete | Valor unico por paquete; ayuda contra replay |
| Aceleracion en hardware | Si (ESP32) | ESP32 tiene AES en hardware para cifrar rapido |
| Impacto de rendimiento | <1 ms por paquete | Overhead minimo por AES en hardware |
| Forward Secrecy | No | Clave simetrica; no PFS como TLS |
Beneficios del cifrado MeshCore
Seguridad fuerte
El trafico privado de MeshCore queda mejor protegido que la radio en claro, pero conviene describir la implementacion actual con precision y sin exagerar.
Eficiente en hardware embedded
AES en hardware (ESP32) lo hace muy rapido (<1 ms). Impacto casi nulo en bateria o latencia.
Claves por canal
Cada canal tiene su PSK. Puedes mezclar canal publico y canales privados segun el caso.
Facil de configurar
Configurar la PSK es relativamente simple: una clave de 32 bytes y listo. Sin certificados ni la complejidad tipica de TLS/HTTPS.
Transparente para el usuario
El cifrado pasa en automatico. El usuario solo ve mensajes legibles en la app.
Proteccion admin
Funciones admin van cifradas. Reduce riesgo de toma de control por radio.
Preguntas frecuentes
Todos los mensajes van cifrados?
No. Solo mensajes en canales con PSK se cifran. El canal principal suele ser publico (sin PSK). Canales secundarios pueden ser privados. Tu decides por canal.
Alguien puede interceptar y leer mis mensajes?
En canales publicos sin PSK: si, cualquiera con un nodo puede escuchar. En canales cifrados: solo quien tenga la PSK puede descifrar. LoRa es broadcast, por eso el cifrado importa.
Que tan util es el cifrado actual de MeshCore?
Es claramente mejor que enviar todo en claro por radio, pero no conviene presentarlo como si fuera un modelo moderno de cifrado autenticado de ultima generacion. La implementacion actual usa AES-128 por bloques con validacion MAC y tiene limitaciones conocidas.
Que pasa si alguien obtiene mi PSK?
Esa persona podria leer y enviar mensajes en ese canal. Es una desventaja del cifrado simetrico. Cambia la PSK si sospechas compromiso y comparte claves solo por canales seguros.
MeshCore tiene cifrado clasico end-to-end entre individuos?
MeshCore tiene cifrado a nivel canal, no E2E por usuario. Todos los nodos en un canal cifrado pueden leer. Para E2E real se necesita una capa extra arriba (posible via plugins).
El cifrado afecta alcance o bateria?
No, impacto minimo. Con AES en hardware el cifrado es muy rapido. No deberias notar diferencia en alcance, velocidad o bateria.
Asegura tu comunicacion MeshCore
Listo para una red cifrada? Elige un dispositivo y configura trafico privado con expectativas realistas sobre el cifrado actual de MeshCore.