Modifica: sembra di essere stato abbastanza sbrigativo quando ho scritto la mia domanda all'inizio, quindi ecco una versione aggiornata di esso.
Sto sviluppando un'applicazione che funziona su PC che si trovano sulla stessa LAN di altri dispositivi. Voglio connettermi a questi dispositivi. Poiché i dati comunicati tra il PC e i dispositivi sono sensibili, voglio proteggerli con crittografia, autenticazione e integrità. Pertanto sto usando TLS.
L'idea è che se qualcuno riesce a ottenere l'accesso alla LAN dall'esterno (in qualche modo) non dovrebbe essere in grado di utilizzare i dati inviati tra un PC e un dispositivo (a causa della crittografia). Inoltre, se qualcuno accede alla LAN dall'interno, non dovrebbe essere in grado di connettersi a nessuno dei dispositivi. Attualmente non esiste una vera protezione utente / password sui dispositivi, quindi ho bisogno di un altro tipo di autenticazione. Stavo pensando ai certificati qui. L'idea è la seguente:
La società che esegue la LAN rappresenta l'autorità di certificazione. Esiste un certificato server generale che è memorizzato sui dispositivi. C'è anche un certificato client che è tenuto privato sul PC che dovrebbe essere permesso di connettersi ai dispositivi (come i notebook di servizio, per esempio). La società firma entrambi i certificati.
Ora, se qualcuno è in grado di accedere alla LAN, potrebbe essere in grado di individuare il traffico, ma è crittografato in modo che non possa utilizzare i dati. Inoltre, se desidera connettersi a qualsiasi dispositivo, la connessione verrà rifiutata poiché non è in possesso del certificato client appropriato. Tuttavia, i clienti possono verificare se i dispositivi a cui si connettono siano realmente tali dispositivi e non alcuni intrusi.
La mia domanda è: è questa la giusta infrastruttura di certificazione? È efficace? I certificati vengono inviati tramite crittografia o verranno inviati in chiaro? Se vengono inviati non criptati, questo ha qualche utilità? Immagino che un intruso possa semplicemente registrare il certificato inviato dal client e poi tenerlo sul proprio computer.