Experiència en l'ús de la tecnologia Rutoken per registrar i autoritzar usuaris al sistema (part 2)

Bona tarda Continuem amb aquest temaLa part anterior es pot trobar a l'enllaç).

Avui passem a la part pràctica. Comencem configurant la nostra CA basada en la biblioteca criptogràfica de codi obert openSSL. Aquest algorisme s'ha provat amb Windows 7.

Amb openSSL instal·lat, podem realitzar diverses operacions criptogràfiques (com la creació de claus i certificats) mitjançant la línia d'ordres.

L'algoritme d'accions és el següent:

  1. Baixeu la distribució d'instal·lació openssl-1.1.1g.
    openSSL té diferents versions. La documentació de Rutoken deia que calia la versió 1.1.0 o posterior d'openSSL. Vaig utilitzar la versió openssl-1.1.1g. Podeu descarregar openSSL des del lloc oficial, però per a una instal·lació més fàcil, heu de trobar el fitxer d'instal·lació de Windows a la xarxa. He fet això per tu: slproweb.com/products/Win32OpenSSL.html
    Desplaceu-vos cap avall per la pàgina i descarregueu Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Instal·leu openssl-1.1.1g a l'ordinador.
    La instal·lació s'ha de fer segons la ruta estàndard, que s'indica automàticament a la carpeta C: Fitxers de programa. El programa s'instal·larà a la carpeta OpenSSL-Win64.
  3. Per configurar openSSL de la manera que ho necessiteu, hi ha el fitxer openssl.cfg. Aquest fitxer es troba a la ruta C:\Program Files\OpenSSL-Win64bin si heu instal·lat openSSL tal com es descriu al paràgraf anterior. Aneu a la carpeta on s'emmagatzema openssl.cfg i obriu aquest fitxer utilitzant, per exemple, Notepad++.
  4. Probablement heu endevinat que l'autoritat de certificació es configurarà d'alguna manera canviant el contingut del fitxer openssl.cfg, i teniu tota la raó. Això requereix la personalització de l'ordre [ca]. Al fitxer openssl.cfg, l'inici del text on farem els canvis es pot trobar com: [ ca ].
  5. Ara donaré un exemple d'una configuració amb la seva descripció:
    [ 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
    

    Ara hem de crear el directori i subdirectoris demoCA tal com es mostra a l'exemple anterior. I col·loqueu-lo en aquest directori al llarg del camí que s'especifica a dir (tinc /Users/username/bin/openSSLca/demoCA).

    És molt important escriure correctament dir: aquest és el camí al directori on es troba el nostre centre de certificació. Aquest directori s'ha d'ubicar a /Usuaris (és a dir, al compte d'algun usuari). Si col·loqueu aquest directori, per exemple, a C: Fitxers de programa, el sistema no veurà el fitxer amb la configuració openssl.cfg (almenys va ser així per a mi).

    $dir: aquí se substitueix el camí especificat a dir.

    Un altre punt important és crear un fitxer index.txt buit, sense aquest fitxer les ordres “openSSL ca…” no funcionaran.

    També necessiteu un fitxer de sèrie, una clau privada arrel (ca.key), un certificat arrel (ca.crt). A continuació es descriu el procés d'obtenció d'aquests fitxers.

  6. Connectem els algorismes de xifratge proporcionats per Rutoken.
    Aquesta connexió té lloc al fitxer openssl.cfg.

    • En primer lloc, heu de descarregar els algorismes Rutoken necessaris. Aquests són els fitxers rtengine.dll, rtpkcs11ecp.dll.
      Per fer-ho, descarregueu l'SDK de Rutoken: www.rutoken.ru/developers/sdk.

      El Rutoken SDK és tot el que hi ha per als desenvolupadors que volen provar Rutoken. Hi ha dos exemples separats per treballar amb Rutoken en diferents llenguatges de programació i es presenten algunes biblioteques. Les nostres biblioteques rtengine.dll i rtpkcs11ecp.dll es troben a l'sdk de Rutoken, respectivament, a la ubicació:

      sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
      sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll

      Un punt molt important. Les biblioteques rtengine.dll, rtpkcs11ecp.dll no funcionen sense el controlador instal·lat per a Rutoken. També Rutoken ha d'estar connectat a l'ordinador. (per instal·lar tot el que necessiteu per a Rutoken, consulteu la part anterior de l'article habr.com/en/post/506450)

    • Les biblioteques rtengine.dll i rtpkcs11ecp.dll es poden desar a qualsevol lloc del compte d'usuari.
    • Escrivim els camins a aquestes biblioteques a openssl.cfg. Per fer-ho, obriu el fitxer openssl.cfg, poseu la línia al principi d'aquest fitxer:
      openssl_conf = openssl_def

      Al final del fitxer cal afegir:

      [ 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=Aktiv%20Co.;model=Rutoken%20ECP
      default_algorithms = CIPHERS, DIGEST, PKEY, RAND
      

      dynamic_path: heu d'especificar el vostre camí a la biblioteca rtengine.dll.
      MODULE_PATH: heu d'establir el vostre camí a la biblioteca rtpkcs11ecp.dll.

  7. Afegir variables d'entorn.

    Assegureu-vos d'afegir una variable d'entorn que especifiqui la ruta al fitxer de configuració openssl.cfg. En el meu cas, la variable OPENSSL_CONF es va crear amb el camí C:Program FilesOpenSSL-Win64binopenssl.cfg.

    A la variable path, heu d'especificar el camí a la carpeta on es troba openssl.exe, en el meu cas és: C: Program FilesOpenSSL-Win64bin.

  8. Ara podeu tornar al pas 5 i crear els fitxers que falten per al directori demoCA.
    1. El primer fitxer important sense el qual res funcionarà és la sèrie. Aquest és un fitxer sense extensió, el valor del qual hauria de ser 01. Podeu crear aquest fitxer vosaltres mateixos i escriure-hi 01. També podeu descarregar-lo des del Rutoken SDK al camí sdk/openssl/rtengine/samples/tool/demoCA. /.
      El directori demoCA conté el fitxer de sèrie, que és exactament el que necessitem.
    2. Creeu una clau privada arrel.
      Per fer-ho, utilitzarem l'ordre de la biblioteca openSSL, que s'ha d'executar directament a la línia d'ordres:

      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. Creem un certificat arrel.
      Per fer-ho, utilitzeu la següent comanda de la biblioteca openSSL:

      openssl req -utf8 -x509 -key ca.key -out ca.crt

      Tingueu en compte que la clau privada arrel, que es va generar al pas anterior, és necessària per generar el certificat arrel. Per tant, la línia d'ordres s'ha de llançar al mateix directori.

    Ara tot té tots els fitxers que falten per a la configuració completa del directori demoCA. Col·loqueu els fitxers creats als directoris indicats al punt 5.

Suposarem que després de completar els 8 punts, el nostre centre de certificació està totalment configurat.

A la següent part, descriuré com treballarem amb l'autoritat de certificació per tal d'aconseguir el que es descriu a la part anterior de l'article.

Font: www.habr.com

Afegeix comentari