Planeo poner un servidor SSH en dispositivos con microcontrolador. Habrá muchos dispositivos distribuidos en una amplia gama.
La identidad del servidor se verifica con la clave del servidor. El servidor necesita almacenar la clave privada para permitir la autenticación. Cuando copio la clave privada a todos los microcontroladores, debo generar la clave privada en otro lugar (por ejemplo, en mi PC). Esta copia de la clave privada puede ser eliminada.
Sería más seguro si el servidor genera un par de claves y la clave privada nunca se copiará desde el microcontrolador.
- ¿Cómo puedo verificar que estoy conectado a un servidor y no a un hombre en el medio?
- ¿Cómo debo distribuir esta información a todos los clientes?
El servidor debería funcionar de manera independiente sin una infraestructura de confianza jerárquica.
Editar: El microcontrolador tiene un almacenamiento programable de una sola vez para una clave pública y rutinas integradas para verificar una firma. Podría agregarse un módulo de plataforma confiable para las claves privadas. Pero si los dispositivos comparten una clave privada común, sería necesario reemplazar el par de claves en todos los dispositivos cuando la clave privada se vea comprometida. Como no hay una forma visible de actualizar la clave privada mediante una conexión "segura" con una clave privada comprometida, debe evitarse compartir la clave privada.