Esperienza nell'uso della tecnologia RUTOKEN per la registrazione e l'autenticazione degli utenti nel sistema (parte 2)

Buongiorno! Continuiamo a esaminare questo argomento (puoi consultare la parte precedente tramite il link).

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:

  1. 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: slproweb.com/products/Win32OpenSSL.html
    Devi scorrere verso il basso nella pagina e scaricare l'installer Win64 OpenSSL v1.1.1g EXE 63MB.
  2. 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.
  3. 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++.
  4. 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 ].
  5. 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_cert
    

    Ora è 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.

  6. 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: www.rutoken.ru/developers/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.dll

      Un 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 habr.com/ru/post/506450)

    • 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_def

      Alla 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, RAND
      

      dynamic_path – è necessario specificare il proprio percorso alla libreria rtengine.dll.
      MODULE_PATH – è necessario specificare il proprio percorso alla libreria rtpkcs11ecp.dll.

  7. 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.

  8. Ora possiamo tornare al punto 5 e creare i file mancanti per la directory demoCA.
    1. 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.
    2. 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

    3. Creiamo il certificato radice.
      Per questo utilizzeremo il seguente comando della libreria openSSL:
      openssl req -utf8 -x509 -key ca.key -out ca.crt

      Nota 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.

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 parte precedente dell'articolo.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster