Buongiorno! Continuiamo a esaminare questo argomento ().
Oggi passeremo alla parte pratica. Iniziamo con la configurazione della nostra autorità di certificazione basata su una libreria crittografica open source completa, openSSL. Questo algoritmo è stato testato utilizzando Windows 7.
Dopo aver installato openSSL, possiamo eseguire varie operazioni crittografiche (ad esempio, creazione di chiavi e certificati) tramite il prompt dei comandi.
Ecco i passaggi da seguire:
- Scarichiamo l'installer openssl-1.1.1g.
openSSL ha diverse versioni. Nella documentazione di Rutoken è stato specificato che è necessaria la versione di openSSL 1.1.0 o superiore. Io ho utilizzato la versione openssl-1.1.1g. Puoi scaricare openSSL dal sito ufficiale, ma per una installazione più semplice bisogna cercare il file di installazione per Windows online. L'ho fatto per te:
Devi scorrere verso il basso nella pagina e scaricare l'installer Win64 OpenSSL v1.1.1g EXE 63MB. - Installiamo openssl-1.1.1g sul computer.
L'installazione deve essere eseguita seguendo il percorso standard, che viene specificato automaticamente nella cartella C:Program Files. Il programma verrà installato nella cartella OpenSSL-Win64. - Per configurare openSSL secondo le tue esigenze, esiste un file openssl.cfg. Questo file si trova nel percorso C:Program FilesOpenSSL-Win64bin se hai installato openSSL come indicato nel punto precedente. Naviga nella cartella dove si trova openssl.cfg e apri questo file usando, ad esempio, Notepad++.
- Probabilmente hai già capito che la configurazione dell'autorità di certificazione sarà effettuata modificando il contenuto del file openssl.cfg, e hai assolutamente ragione. Per questo è necessario configurare la sezione [ ca ]. Nel file openssl.cfg puoi trovare l'inizio del testo in cui apportare modifiche come: [ ca ].
- Ora ti fornirò un esempio di configurazione con la sua descrizione:
[ ca ] default_ca = CA_default [ CA_default ] dir = /Users/username/bin/openSSLca/demoCA certs = $dir/certs crl_dir = $dir/crl database = $dir/index.txt new_certs_dir = $dir/newcerts certificate = $dir/ca.crt serial = $dir/private/serial crlnumber = $dir/crlnumber crl = $dir/crl.pem private_key = $dir/private/ca.key x509_extensions = usr_certOra è necessario creare la cartella demoCA e le sottocartelle come mostrato nell'esempio sopra. E posizionarle nella cartella secondo il percorso indicato in dir (io ho /Users/username/bin/openSSLca/demoCA).
È molto importante specificare correttamente dir – questo è il percorso della directory dove si troverà la nostra autorità di certificazione. Questa directory deve trovarsi necessariamente in /Users (cioè nell'account di un utente). Se posizioni questa directory, ad esempio in C:Program Files, il sistema non vedrà il file di impostazioni openssl.cfg (perlomeno è successo a me).
$dir — qui si inserisce il percorso specificato in dir.
Un altro aspetto importante è creare un file vuoto index.txt, senza questo file i comandi «openSSL ca …» non funzioneranno.
È inoltre necessario avere un file serial, una chiave privata principale (ca.key), un certificato principale (ca.crt). Il processo di ottenimento di questi file sarà descritto in seguito.
- Collegare gli algoritmi di crittografia forniti da Rutoken.
Questa connessione avviene nel file openssl.cfg.- Prima di tutto, è necessario scaricare gli algoritmi necessari di Rutoken. Questi file sono rtengine.dll, rtpkcs11ecp.dll.
Per fare ciò, scarica il Rutoken SDK: .Il Rutoken SDK è tutto ciò che serve agli sviluppatori che vogliono provare Rutoken. Qui ci sono sia esempi separati per lavorare con Rutoken in vari linguaggi di programmazione, sia alcune biblioteche. Le nostre librerie rtengine.dll e rtpkcs11ecp.dll sono situate nel Rutoken sdk nei seguenti percorsi:
sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dllUn aspetto molto importante. Le librerie rtengine.dll, rtpkcs11ecp.dll non funzionano senza il driver installato per Rutoken. Inoltre, Rutoken deve essere necessariamente collegato al computer. (per ulteriori informazioni sull'installazione di tutto il necessario per Rutoken, consulta la parte precedente dell'articolo )
- Le librerie rtengine.dll e rtpkcs11ecp.dll possono essere collocate ovunque nell'account utente.
- Specifica i percorsi di queste librerie in openssl.cfg. Per fare ciò, apri il file openssl.cfg e inserisci all'inizio di questo file la riga:
openssl_conf = openssl_defAlla fine del file, aggiungi:
[ openssl_def ] engines = engine_section [ engine_section ] rtengine = gost_section [ gost_section ] dynamic_path = /Users/username/bin/sdk-rutoken/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll MODULE_PATH = /Users/username/bin/sdk-rutoken/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll RAND_TOKEN = pkcs11:manufacturer=AktivCo.;model=RutokenECP default_algorithms = CIPHERS, DIGEST, PKEY, RANDdynamic_path – è necessario specificare il proprio percorso alla libreria rtengine.dll.
MODULE_PATH – è necessario specificare il proprio percorso alla libreria rtpkcs11ecp.dll.
- Prima di tutto, è necessario scaricare gli algoritmi necessari di Rutoken. Questi file sono rtengine.dll, rtpkcs11ecp.dll.
- Aggiungi le variabili di ambiente.
Devi assolutamente aggiungere una variabile di ambiente che indica il percorso del file di configurazione openssl.cfg. Nel mio caso, è stata creata la variabile OPENSSL_CONF con il percorso C:Program FilesOpenSSL-Win64binopenssl.cfg.
Nella variabile path è necessario indicare il percorso della cartella in cui si trova openssl.exe, nel mio caso è: C:Program FilesOpenSSL-Win64bin.
- Ora possiamo tornare al punto 5 e creare i file mancanti per la directory demoCA.
- Il primo file importante senza il quale niente funzionerà è serial. Questo è un file senza estensione, il cui valore deve essere 01. Puoi creare questo file da solo e inserire dentro 01. Puoi anche scaricarlo dal Ruteloken SDK al percorso sdk/openssl/rtengine/samples/tool/demoCA/.
Nella directory demoCA si trova il file serial, che ci serve proprio. - Creiamo la chiave privata radice.
Per questo utilizzeremo il comando della libreria openSSL, che deve essere eseguito direttamente nel prompt dei comandi:openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key - Creiamo il certificato radice.
Per questo utilizzeremo il seguente comando della libreria openSSL:openssl req -utf8 -x509 -key ca.key -out ca.crtNota che per creare il certificato radice è necessaria la chiave privata radice, che è stata creata nel passo precedente. Pertanto, il prompt dei comandi deve essere avviato nella stessa directory.
Ora abbiamo tutti i file necessari per una configurazione completa della directory demoCA. Metti i file creati nelle cartelle indicate nel punto 5.
- Il primo file importante senza il quale niente funzionerà è serial. Questo è un file senza estensione, il cui valore deve essere 01. Puoi creare questo file da solo e inserire dentro 01. Puoi anche scaricarlo dal Ruteloken SDK al percorso sdk/openssl/rtengine/samples/tool/demoCA/.
Consideriamo che, dopo aver completato tutti e 8 i punti, il nostro'autorità di certificazione sia completamente configurata.
Nella prossima parte ti parlerò di come lavoreremo con l'autorità di certificazione per realizzare quanto descritto nella .
Fonte: habr.com
