Buongiorno!
abbiamo creato con successo il nostro centro di certificazione. In che modo può essere utile per i nostri obiettivi?
Con un centro di certificazione locale possiamo emettere certificati e verificare le firme di questi certificati.
Quando emettiamo un certificato all'utente, il centro di certificazione utilizza una richiesta speciale di emissione certificato Pkcs#10, che ha il formato di file â.csrâ. Questa richiesta contiene una sequenza codificata che il centro di certificazione sa come analizzare correttamente. La richiesta include sia la chiave pubblica dell'utente che i dati per la creazione del certificato (un array associativo con i dati dell'utente).
Come ottenere la richiesta di emissione del certificato, lo vedremo nel prossimo articolo, mentre in questo voglio presentare i comandi principali del centro di certificazione che ci aiuteranno a svolgere il nostro compito sul lato backend.
Quindi, prima di tutto, dobbiamo creare un certificato. Per questo utilizziamo il comando:
openssl ca -batch -in user.csr -out user.crt ca â comando di openSSL, che si riferisce al centro di certificazione,
-batch â disabilita le richieste di conferma durante la generazione del certificato.
user.csr â richiesta di creazione di un certificato (file in formato .csr).
user.crt â certificato (risultato ottenuto dal comando).
AffinchĂŠ questo comando funzioni, l'autoritĂ di certificazione deve essere configurata esattamente come descritto . In caso contrario, sarĂ necessario specificare ulteriormente il percorso del certificato radice dell'autoritĂ di certificazione.
Comando di verifica del certificato:
openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/âŚâŚ/demoCA/ca.crt -out data.filecms â comando openSSL utilizzato per firmare, verificare, crittografare dati e altre operazioni crittografiche con openSSL.
-verify â in questo caso stiamo eseguendo la verifica del certificato.
authenticate.cms â file contenente i dati firmati dal certificato rilasciato dal comando precedente.
-inform PEM â viene utilizzato il formato PEM.
-CAfile /Users/âŚâŚ/demoCA/ca.crt â percorso del certificato radice. (senza questo il comando non ha funzionato, anche se i percorsi al ca.crt sono specificati nel file openssl.cfg)
-out data.file â invio i dati decifrati nel file data.file.
L'algoritmo di applicazione dell'autorità di certificazione sul lato backend è il seguente:
- Registrazione utente:
- Riceviamo la richiesta per la creazione del certificato e la salviamo nel file user.csr.
- Salviamo il primo comando di questo articolo in un file con estensione .bat o .cmd. Eseguiamo questo file dal codice, avendo precedentemente salvato la richiesta di creazione del certificato nel file user.csr. Otteniamo il file con il certificato user.crt.
- Leggiamo il file user.crt e lo inviamo al client.
- Autenticazione dell'utente:
- Riceviamo i dati firmati dal client e li salviamo nel file authenticate.cms.
- Salviamo il secondo comando di questo articolo in un file con estensione .bat o .cmd. Eseguiamo questo file dal codice, avendo precedentemente salvato i dati firmati dal server in authenticate.cms. Otteniamo il file con i dati decriptati data.file.
- Leggiamo data.file e verifichiamo la validità di questi dati. Cosa verificare è descritto . Se i dati sono validi, l'autenticazione dell'utente è considerata riuscita.
Per implementare questi algoritmi, si può utilizzare qualsiasi linguaggio di programmazione impiegato per scrivere il backend.
Nell'articolo successivo esamineremo come lavorare con il plugin Retoken.
Grazie per l'attenzione!
Fonte: habr.com
