Ho intenzione di mettere un server SSH su dispositivi micro-controller. Ci devono essere molti dispositivi distribuiti in una vasta gamma.
L'identità del server viene verificata con la chiave del server. Il server deve memorizzare la chiave privata per consentire l'autenticazione. Quando copio la chiave privata su tutti i microcontroller, devo generare la chiave privata altrove (ad esempio sul mio PC). Questa copia della chiave privata può essere ritenuta.
Sarebbe più sicuro quando il server genera una coppia di chiavi e la chiave privata non verrà mai copiata dal microcontrollore.
- Come posso verificare di essere connesso a un server e non a un uomo nel mezzo?
- Come dovrei distribuire queste informazioni a tutti i clienti?
Il server dovrebbe funzionare autonomamente senza un'infrastruttura di trust gerarchica.
Modifica: il microcontrollore dispone di una memoria programmabile una tantum per una chiave pubblica e routine integrate per verificare una firma. È possibile aggiungere un modulo di piattaforma attendibile per le chiavi private. Ma se i dispositivi condividono una chiave privata comune, sarebbe necessario sostituire la coppia di chiavi in tutti i dispositivi quando la chiave privata viene compromessa. Poiché non esiste un modo ovviamente visibile per aggiornare la chiave privata utilizzando una connessione "protetta" con una chiave privata compromessa, è necessario evitare di condividere la chiave privata.