Tengo que resolver un problemilla para un proyecto, asi que no vales soluciones ya hechas tipo ssh o IPSec, lo que interesa en este post es encontrar un algoritmo seguro.
Situemonos: Básicamente, y por no exponerlo todo, tenemos una LAN, en la que queremos "securizar" las comunicaciones de ciertos ordenadores (el resto de máquinas de la LAN no deben enterarse de lo que hablan éstos).
La gracia está en que ciframos las comunicaciones, en principio, con cifrado simétrico, con claves por cada par de equipos, tras previa negociación y autenticación mediante claves asimétricas.
Es decir, si la maquina A quiere comunicarse con la maquina B, utiliza la clave simetrica {A-B} que previamente han negociado. Si es C quien quiere comunicarse con D, utilizará la clave {C-D}.
Ahora bien, surge el problema de los broadcast: Si A manda un paquete de broadcast (que va para B, C, y D), ¿Cómo debería hacerse para asegurar autenticidad de origen y seguridad en la comunicación?
Posibles soluciones (por ahora todas con pequeñas o grandes pegas):
1) Hacer los broadcast en claro. Desde luego que no es lo que se busca.
2) Un clave de cifrado común para los broadcast. Alguna máquina podría hacerse pasar por otra, ya que no hay autenticación.
3) Version de la anterior, metiendo en mi protocolo la firma del paquete de la maquina origen. La firma debería ser (lógicamente) con criptografía asimétrica, lo cual es lento.
4) Envío de un paquete cifrado con destino cada máqina, en vez de uno solo con broadcast. Demasiados paquetes en la red.
5) Estación central a la que se le hace una petición de broadcast mediante un canal único, ésta retransmite el paquete cifrandolo con destino cada máquina. (Es una modificación de 4, se basa en las LAN Emuladas de ATM). Sigue existiendo el problema de cantidad de paquetes enorme.
.....
Se han pensado algunas más, pero ya se complican más (metiendo Xor y cosillas como firmas). Básicamente son modificaciones del 5), teniendo la necesidad de una estación central, pero haciendo modificaciones para enviar solo un paquete a todos e intentar la autenticidad y la seguridad.
Sería bastante más flexible si no existiera la estación central, por lo que yo tiro más por la solución 3), pero tampoco me convence por la lentitud...
Bueno, yo seguiré pensando, si por alguna casualidad se os ocurre algo, o ya pasateis por algo parecido, hala! a postear las ideas que tengais.
A ver si se os ocurre algo y se empieza a "mover" este foro...
:P
P.D: He estado mirando en Google y parece ser que hay algoritmos para la autenticación tipo TESLA o BIBA (este ultimo, algo como firmas rápidas). ME lo miaré a ver si me vale y si es suficientemente seguro. De todas formas agradecería cualquier aportacion, que además le vendría bien al foro.