Creazione di un'autorità di certificazione
Quando crei i certificati dell'autorità di certificazione otterrai ca.crt
e ca.key
file . Il file .crt è la chiave pubblica autofirmata e il file .key è il file della chiave privata. Non è così semplice come questo. Entrambi i file sono codificati in base64 e i dati sottostanti sono codificati DER . Poiché è probabile che generi X.509 certificati.
In realtà tutto ciò che devi capire è che hai un certificato autofirmato la cui porzione pubblica è memorizzata in ca.crt
e la porzione privata è memorizzata in ca.key
. Ricorda che devi mantenere ca.key
secret tutti i primi grandi, le operazioni GCD e ciò che non è tutto a posto con qualsiasi cosa tu stia utilizzando per generare il certificato.
Il dh2048.pem
non è una chiave, sono i parametri Diffie Hellman per il server. Questi non hanno nulla a che fare con le tue chiavi RSA e sono usate solo quando Diffie Hellman è usato per connettersi al tuo server piuttosto che a RSA. La differenza tra i due può essere trovata nella sezione Scambio chiave di Come funziona SSL / TLS? Questi non dovrebbero avere nulla a che fare con PKI.
Viene generato crl.pem
come elenco di revoche di certificati. A questo file vengono aggiunti tutti i certificati revocati che sono stati firmati con la CA. Nella configurazione di OpenSSL (presumo che tu stia configurando OpenSSL, ma l'idea si applica a qualsiasi configurazione) questo file CRL verrà indirizzato. In questo modo saprà dove controllare i certificati revocati.
Firma dei certificati
Ora che hai un'Autorità di certificazione puoi iniziare a firmare certificati di utenti per il tuo sistema. Gli utenti lo fanno generando le proprie chiavi RSA client.crt
e client.key
. Queste chiavi dovrebbero essere generate ogni volta che un nuovo utente viene introdotto nel sistema. Ancora una volta, il .crt è la parte pubblica della chiave e il .key è la parte privata. Il client.key
deve essere tenuto segreto dal nuovo utente. .
Per firmare il certificato di un nuovo utente viene creata una richiesta di firma del certificato (CSR). C'è un comando in OpenSSL per farlo. La richiesta contiene la chiave pubblica dell'utente da aggiungere e alcune altre informazioni pubbliche necessarie alla richiesta. Il certificato del cliente verrà aggiunto agli elenchi autorizzati appropriati sul server e verrà prodotto un nuovo certificato firmato. Questo è ciò che l'utente dovrà importare nel proprio browser per visitare le pagine PKI abilitate.
C'è un ottimo tutorial sull'infrastruttura a chiave pubblica sul sito di OpenSSL per riferimento futuro.
Spero che questo chiarisca alcune cose. Ogni variabile che hai menzionato nell'algoritmo RSA viene generata quando crei un certificato. I certificati pubblici non li contengono tutti, ma generalmente le porzioni private lo fanno. Ai fini dell'implementazione non dovrai preoccuparti di loro. Ricorda solo che esiste una coppia di chiavi pubblica e privata.
Per rispondere alla tua st modifica
Lo scambio di CSR e il certificato risultante viene generalmente eseguito utilizzando un certo tipo di copia sicura (scp). Il server e il client devono essere in comunicazione tra loro. La dichiarazione che "il client e il server si autenticano a vicenda" non è propriamente corretta. Il cliente desidera essere parte dell'infrastruttura in modo che debba dimostrare la propria identità al server di firma. Come Autorità di certificazione, è sua responsabilità verificare l'identità del cliente prima di elaborare il CSR. La stessa CSR dovrebbe avere tutte le informazioni necessarie per verificare l'identità del cliente da aggiungere.
Per rispondere alla tua 2 nd modifica
RSA è solo l'algoritmo a chiave pubblica utilizzato per la generazione di chiavi, la crittografia / decrittografia e la firma. Public Key Infrastructure è una raccolta di standard e servizi necessari per implementare un'infrastruttura sicura. Un servizio di cronometraggio affidabile è probabilmente uno dei molti requisiti. Molto simile a un'autorità di certificazione è un requisito.