Seguridad y cifrado

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.