Mi viene chiesto di progettare il sistema crittografico a chiave pubblica per dispositivi simili a IoT. Questi dispositivi parleranno l'un l'altro su TCP / IP e comunicano con un server API basato su cloud. Il firmware per questi dispositivi è sviluppato internamente.
I requisiti sono:
- I dispositivi dovrebbero essere in grado di autenticarsi reciprocamente e parlare attraverso canali sicuri.
- Il server API deve anche autenticare l'identità di tutti i dispositivi.
- Firma digitale: tutti gli aggiornamenti firmware avranno una firma digitale e i dispositivi dovrebbero aggiornarsi solo se la firma è valida.
La mia soluzione finora per i primi due requisiti è:
- Genera una chiave RSA per la società (mantieniti privata nell'azienda) e usala per generare una CA autofirmata
- Utilizza la CA autofirmata per generare un certificato X509 per i server API.
- Utilizza la CA autofirmata per generare un certificato X509 per ogni dispositivo.
- Aggiungi la CA autofirmata all'archivio CA attendibile di ogni dispositivo.
Sono nuovo in questo, quindi ho ancora alcune domande.
- È valido sopra?
- Per la firma digitale, per quanto posso dire posso usare la chiave privata dal primo passaggio per firmare i binari del firmware. Quindi sui dispositivi, possiamo semplicemente estrarre la chiave pubblica dal certificato CA aziendale e utilizzarla per verificare la firma?
Grazie.