Il certificato X509 è costituito fondamentalmente da diversi tipi di informazioni:
- I dati dichiarativi del certificato che includono tutto ciò che i certificati rivendicano sul proprietario della chiave (principalmente ciò che si trova nei campi dell'oggetto del certificato ma anche comunemente OID mi piace)
- I dati dell'ambito del certificato (ad esempio: utilizzo delle chiavi, periodo di validità, ecc.)
- La metà pubblica della coppia di chiavi associata al certificato.
- Le informazioni sulla catena di attendibilità del certificato (che garantiscono che i dati dichiarativi e relativi all'ambito siano corretti) e i dati di revoca
- Alcuni campi tecnici (quale algoritmo viene utilizzato, qual è il numero di serie del certificato, ecc.)
Puoi mettere tutto ciò che vuoi sia nei dati dichiarativi che in quelli di scoping e puoi controllare cosa c'è nei campi tecnici (principalmente) finché la CA accetta di convalidare il tuo cert come lo invii (o finché sei utilizzando certificati autofirmati).
La parte chiave pubblica del certificato è dettata da qualunque algoritmo chiave tu abbia deciso di utilizzare. È possibile utilizzare la stessa chiave per tutti i certificati, anche se non suggerirei di farlo: non esiste un valido motivo per farlo in pratica e potrebbe minacciare la sicurezza dell'intero sistema a seconda di come vengono utilizzati i tasti.
Infine, le informazioni sulla fiducia includono principalmente il riferimento dell'emittente (che in genere puoi decidere o, almeno, sapere in anticipo nella maggior parte dei casi) e la firma digitale dell'intero certificato (che non hai modo di conoscere o controllare ). L'uso di un certificato autofirmato non ti aiuterà, in questo caso, dal momento che l'unico modo per le due firme di essere identiche al 100% sarebbe che ogni parte dei dati della firma fosse identica: potresti anche fare una copia del certificato originale invece di firmarlo due volte.
La buona notizia, tuttavia, è che mentre non si dovrebbe usare la stessa chiave per diversi certificati, non è necessario. È sufficiente creare la propria CA e fare in modo che l'applicazione verifichi tutti i certificati rispetto alla CA radice: ciò consentirà a tutti gli utenti di verificare le chiavi che si stanno distribuendo, comprese le chiavi future, senza che sia necessario indebolire l'infrastruttura riutilizzando una set fisso di chiavi.
Il blocco dell'autorità di certificazione, anziché il certificato foglia, è un po 'più complesso da implementare, ma è anche più flessibile e consente scenari di utilizzo più complessi.