Ervaring in die gebruik van Rutoken-tegnologie vir die registrasie en magtiging van gebruikers in die stelsel (deel 2)

Goeie middag Kom ons gaan voort om hierdie onderwerp te hanteer (Die vorige deel kan by die skakel gevind word).

Kom ons gaan vandag oor na die praktiese deel. Kom ons begin deur u sertifikaatowerheid op te stel gebaseer op die volwaardige oopbron kriptografiese biblioteek openSSL. Hierdie algoritme is getoets met Windows 7.

Met openSSL geïnstalleer, kan ons verskeie kriptografiese bewerkings uitvoer (soos om sleutels en sertifikate te genereer) via die opdragreël.

Die algoritme van aksies is soos volg:

  1. Laai die installasieverspreiding openssl-1.1.1g af.
    openSSL het verskillende weergawes. Die dokumentasie vir Rutoken het gesê dat openSSL weergawe 1.1.0 of later vereis word. Ek het openssl-1.1.1g weergawe gebruik. U kan openSSL van die amptelike webwerf aflaai, maar vir 'n makliker installasie moet u die installasielêer vir Windows op die internet vind. Ek het dit vir jou gedoen: slproweb.com/products/Win32OpenSSL.html
    Jy moet na die onderkant van die bladsy blaai en Win64 OpenSSL v1.1.1g EXE 63MB Installer aflaai.
  2. Installeer openssl-1.1.1g op jou rekenaar.
    Die installasie moet uitgevoer word deur die standaardpad te gebruik, wat outomaties in die C:Program Files-lêergids gespesifiseer word. Die program sal in die OpenSSL-Win64-lêergids geïnstalleer word.
  3. Om openSSL te konfigureer soos jy nodig het, is daar 'n lêer openssl.cfg. Hierdie lêer is geleë in die pad C:Program FilesOpenSSL-Win64bin as jy openSSL geïnstalleer het soos beskryf in die vorige paragraaf. Gaan na die gids waar openssl.cfg gestoor is en maak hierdie lêer oop deur byvoorbeeld Notepad++ te gebruik.
  4. Jy het waarskynlik geraai dat die konfigurasie van die sertifiseringsentrum gedoen sal word deur die inhoud van die openssl.cfg-lêer op een of ander manier te verander, en jy is heeltemal reg. Om dit te doen, moet jy die [ca] opdrag instel. In die openssl.cfg-lêer kan die begin van die teks waar ons veranderinge sal aanbring gevind word as: [ca].
  5. Nou sal ek 'n voorbeeld van 'n opstelling gee met sy beskrywing:
    [ 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
    

    Nou moet jy die demoCA-gids en subgidse skep, soos in die voorbeeld hierbo getoon. En plaas dit in hierdie gids langs die pad gespesifiseer in dir (ek het /Users/gebruikersnaam/bin/openSSLca/demoCA).

    Dit is baie belangrik om dir korrek in te voer - dit is die pad na die gids waar ons sertifiseringsowerheid geleë sal wees. Hierdie gids moet in /Users geleë wees (dit wil sê in 'n gebruikersrekening). As jy hierdie gids byvoorbeeld in C:Program Files plaas, sal die stelsel nie die openssl.cfg instellingslêer sien nie (ten minste is dit hoe dit vir my was).

    $dir - die pad gespesifiseer in dir word hier vervang.

    Nog 'n belangrike punt is om 'n leë index.txt-lêer te skep; sonder hierdie lêer sal die "openSSL ca ..."-opdragte nie werk nie.

    Jy moet ook 'n reekslêer, 'n wortel privaat sleutel (ca.key) en 'n wortelsertifikaat (ca.crt) hê. Die proses om hierdie lêers te bekom sal hieronder beskryf word.

  6. Ons aktiveer enkripsiealgoritmes wat deur Rutoken verskaf word.
    Hierdie verbinding vind plaas in die openssl.cfg-lêer.

    • Eerstens moet u die nodige Rutoken-algoritmes aflaai. Dit is die lêers rtengine.dll, rtpkcs11ecp.dll.
      Om dit te doen, laai die Rutoken SDK af: www.rutoken.ru/developers/sdk.

      Rutoken SDK is al wat daar is vir ontwikkelaars wat Rutoken wil probeer. Daar is beide individuele voorbeelde om met Rutoken in verskillende programmeertale te werk, en sommige biblioteke word aangebied. Ons biblioteke rtengine.dll en rtpkcs11ecp.dll is onderskeidelik in Rutoken sdk geleë op die plek:

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

      'n Baie belangrike punt. Die biblioteke rtengine.dll, rtpkcs11ecp.dll werk nie sonder die geïnstalleerde drywer vir Rutoken nie. Rutoken moet ook aan die rekenaar gekoppel wees. (vir die installering van alles wat nodig is vir Rutoken, sien die vorige deel van die artikel habr.com/en/post/506450)

    • Die rtengine.dll en rtpkcs11ecp.dll biblioteke kan enige plek in die gebruikersrekening gehou word.
    • Ons registreer die paaie na hierdie biblioteke in openssl.cfg. Om dit te doen, maak die lêer openssl.cfg oop, aan die begin van hierdie lêer moet jy die reël plaas:
      openssl_conf = openssl_def

      Aan die einde van die lêer moet jy byvoeg:

      [ 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 – jy moet jou pad na die rtengine.dll-biblioteek spesifiseer.
      MODULE_PATH - jy moet jou pad na die rtpkcs11ecp.dll-biblioteek spesifiseer.

  7. Voeg omgewingsveranderlikes by.

    Jy moet 'n omgewingsveranderlike byvoeg wat die pad na die openssl.cfg-konfigurasielêer spesifiseer. In my geval is die OPENSSL_CONF veranderlike geskep met die pad C: Program FilesOpenSSL-Win64binopenssl.cfg.

    Die padveranderlike moet die pad bevat na die gids waar openssl.exe geleë is, in my geval is dit: C:Program FilesOpenSSL-Win64bin.

  8. Nou kan jy terugkeer na stap 5 en die ontbrekende lêers vir die demoCA-gids skep.
    1. Die eerste belangrike lêer waarsonder niks sal werk nie, is serieel. Dit is 'n lêer sonder 'n uitbreiding, waarvan die waarde 01 moet wees. Jy kan hierdie lêer self skep en 01 binne skryf. Jy kan dit ook aflaai vanaf die Rutoken SDK langs die pad sdk/openssl/rtengine/samples/tool/demoCA /.
      In die demoCA-gids is daar 'n reekslêer, wat presies is wat ons nodig het.
    2. Skep 'n wortel privaat sleutel.
      Om dit te doen, sal ons die openSSL-biblioteekopdrag gebruik, wat direk op die opdragreël uitgevoer moet word:

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

    3. Skep 'n wortelsertifikaat.
      Om dit te doen, sal ons die volgende opdrag van die openSSL-biblioteek gebruik:

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

      Neem asseblief kennis dat om 'n wortelsertifikaat te skep, jy die wortel privaat sleutel benodig, wat in die vorige stap geskep is. Daarom moet die opdragreël in dieselfde gids geloods word.

    Al die ontbrekende lêers vir die volledige konfigurasie van die demoCA-gids is nou beskikbaar. Plaas die geskepde lêers in die dopgehou wat in stap 5 gespesifiseer is.

Ons sal aanvaar dat ons sertifiseringsentrum ten volle gekonfigureer is nadat ons al 8 punte voltooi het.

In die volgende deel sal ek jou vertel hoe ons met die sertifiseringsowerheid sal werk om te bereik wat in beskryf is vorige deel van die artikel.

Bron: will.com

Voeg 'n opmerking