CA autofirmato e firme digitali

0

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:

  1. I dispositivi dovrebbero essere in grado di autenticarsi reciprocamente e parlare attraverso canali sicuri.
  2. Il server API deve anche autenticare l'identità di tutti i dispositivi.
  3. 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 è:

  1. Genera una chiave RSA per la società (mantieniti privata nell'azienda) e usala per generare una CA autofirmata
  2. Utilizza la CA autofirmata per generare un certificato X509 per i server API.
  3. Utilizza la CA autofirmata per generare un certificato X509 per ogni dispositivo.
  4. Aggiungi la CA autofirmata all'archivio CA attendibile di ogni dispositivo.

Sono nuovo in questo, quindi ho ancora alcune domande.

  1. È valido sopra?
  2. 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.

    
posta srd 26.04.2018 - 14:25
fonte

2 risposte

2

1 - Quello che stai facendo è valido, stai andando bene.

2 - Non dovresti usare la chiave al passaggio 1 per firmare, ma la chiave del passaggio 2. La chiave del passaggio 1 è per la CA e dovresti usarla solo per firmare altri certificati. È possibile creare un certificato dedicato per la firma del firmware o utilizzare il certificato dell'endpoint API per firmarlo. Funziona allo stesso modo.

La chiave del passaggio 1 è la parte più sensibile della tua infrastruttura. L'ossequio è come la chiave principale. Usalo solo per firmare altri certificati.

    
risposta data 26.04.2018 - 15:14
fonte
1

Solo un risalto sulla risposta di ThoriumBR.

I certificati autofirmati possono essere utilizzati su uno di questi approcci:

  • certificati di test semplici con un minimo di scarso valore
  • root di un PKI

Per quest'ultimo caso d'uso, è il punto centrale dell'intero PKI: tutto perde fiducia se viene compromesso. Per questo motivo, pochissime persone possono utilizzarlo e solo (raramente) viene utilizzato per firmare i certificati di intermediazione.

Il numero di livelli nei certificati intermedi è dato dalla complessità dell'organizzazione: ogni persona autorizzata a consegnare (firmare) i certificati dovrebbe possedere un certificato (privato) per ragioni di controllo. In questo modo è possibile identificare chi è responsabile per una violazione del certificato.

Nulla lo impone, eccetto le migliori pratiche: la fiducia di un certificato non può essere più elevata della fiducia che puoi avere su tutto il processo che lo ha consegnato ...

Detto in modo diffuso, un'infrastruttura di certificati X509 non è così difficile da costruire, xca è uno strumento grafico ben documentato che dovrebbe soddisfare le tue esigenze. La parte difficile è definire procedure sicure per la consegna, il rinnovo e (eventualmente) la revoca dei certificati.

    
risposta data 26.04.2018 - 16:32
fonte