Erfaring med å bruke Rutoken-teknologi for registrering og autorisering av brukere i systemet (del 2)

God ettermiddag La oss fortsette med dette emnetDen forrige delen finner du på lenken).

I dag går vi over til den praktiske delen. La oss starte med å sette opp vår CA basert på det fullverdige åpen kildekode kryptografiske biblioteket openSSL. Denne algoritmen er testet med Windows 7.

Med openSSL installert kan vi utføre ulike kryptografiske operasjoner (som å lage nøkler og sertifikater) via kommandolinjen.

Handlingsalgoritmen er som følger:

  1. Last ned installasjonsdistribusjonen openssl-1.1.1g.
    openSSL har forskjellige versjoner. Dokumentasjonen for Rutoken sa at openSSL versjon 1.1.0 eller nyere kreves. Jeg brukte openssl-1.1.1g versjon. Du kan laste ned openSSL fra det offisielle nettstedet, men for en enklere installasjon må du finne installasjonsfilen for Windows på nettet. Jeg gjorde dette for deg: slproweb.com/products/Win32OpenSSL.html
    Rull ned på siden og last ned Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Installer openssl-1.1.1g på datamaskinen.
    Installasjonen må utføres i henhold til standardbanen, som automatisk vises i mappen C: Program Files. Programmet vil bli installert i mappen OpenSSL-Win64.
  3. For å sette opp openSSL slik du trenger det, er det openssl.cfg-filen. Denne filen ligger i C:\Program Files\OpenSSL-Win64bin-banen hvis du installerte openSSL som beskrevet i forrige avsnitt. Gå til mappen der openssl.cfg er lagret og åpne denne filen ved å bruke for eksempel Notepad++.
  4. Du har sikkert gjettet at sertifiseringsmyndigheten vil bli konfigurert på en eller annen måte ved å endre innholdet i openssl.cfg-filen, og du har helt rett. Dette krever tilpasning av [ca]-kommandoen. I openssl.cfg-filen finner du begynnelsen av teksten der vi skal gjøre endringer som: [ ca ].
  5. Nå vil jeg gi et eksempel på en innstilling med beskrivelsen:
    [ 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
    

    Nå må vi lage demoCA-katalogen og underkatalogene som vist i eksempelet ovenfor. Og plasser den i denne katalogen langs banen som er spesifisert i dir (jeg har /Users/brukernavn/bin/openSSLca/demoCA).

    Det er veldig viktig å stave dir riktig - dette er banen til katalogen der sertifiseringssenteret vårt vil ligge. Denne katalogen må være plassert i /Users (det vil si på kontoen til en bruker). Hvis du plasserer denne katalogen, for eksempel i C: Program Files, vil ikke systemet se filen med openssl.cfg-innstillingene (det var i alle fall slik for meg).

    $dir - banen spesifisert i dir erstattes her.

    Et annet viktig poeng er å lage en tom index.txt-fil, uten denne filen vil ikke "openSSL ca ..."-kommandoene fungere.

    Du må også ha en seriell fil, en privat rotnøkkel (ca.key), et rotsertifikat (ca.crt). Prosessen med å skaffe disse filene vil bli beskrevet nedenfor.

  6. Vi kobler sammen krypteringsalgoritmene levert av Rutoken.
    Denne tilkoblingen finner sted i openssl.cfg-filen.

    • Først av alt må du laste ned de nødvendige Rutoken-algoritmene. Dette er filene rtengine.dll, rtpkcs11ecp.dll.
      For å gjøre dette, last ned Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK er alt som finnes for utviklere som vil prøve ut Rutoken. Det finnes både separate eksempler for arbeid med Rutoken i ulike programmeringsspråk, og noen biblioteker er presentert. Bibliotekene våre rtengine.dll og rtpkcs11ecp.dll er plassert i henholdsvis Rutoken sdk på stedet:

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

      Et veldig viktig poeng. Biblioteker rtengine.dll, rtpkcs11ecp.dll fungerer ikke uten den installerte driveren for Rutoken. Også Rutoken må være koblet til datamaskinen. (for å installere alt du trenger for Rutoken, se forrige del av artikkelen habr.com/en/post/506450)

    • Bibliotekene rtengine.dll og rtpkcs11ecp.dll kan oppbevares hvor som helst i brukerkontoen.
    • Vi skriver stiene til disse bibliotekene i openssl.cfg. For å gjøre dette, åpne openssl.cfg-filen, sett linjen i begynnelsen av denne filen:
      openssl_conf = openssl_def

      På slutten av filen må du legge til:

      [ 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 - du må spesifisere banen til rtengine.dll-biblioteket.
      MODULE_PATH - du må angi banen til rtpkcs11ecp.dll-biblioteket.

  7. Legge til miljøvariabler.

    Sørg for å legge til en miljøvariabel som spesifiserer banen til openssl.cfg-konfigurasjonsfilen. I mitt tilfelle ble OPENSSL_CONF-variabelen opprettet med banen C:Program FilesOpenSSL-Win64binopenssl.cfg.

    I stivariabelen må du spesifisere banen til mappen der openssl.exe ligger, i mitt tilfelle er det: C: Program FilesOpenSSL-Win64bin.

  8. Nå kan du gå tilbake til trinn 5 og lage de manglende filene for demoCA-katalogen.
    1. Den første viktige filen som ingenting vil fungere uten er seriell. Dette er en fil uten filtype, hvis verdi skal være 01. Du kan lage denne filen selv og skrive 01 i. Du kan også laste den ned fra Rutoken SDK langs stien sdk/openssl/rtengine/samples/tool/demoCA /.
      DemoCA-katalogen inneholder seriefilen, som er akkurat det vi trenger.
    2. Opprett en privat rotnøkkel.
      For å gjøre dette bruker vi kommandoen openSSL bibliotek, som må kjøres direkte på kommandolinjen:

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

    3. Vi lager et rotsertifikat.
      For å gjøre dette, bruk følgende openSSL-bibliotekkommando:

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

      Vær oppmerksom på at den private rotnøkkelen, som ble generert i forrige trinn, kreves for å generere rotsertifikatet. Derfor må kommandolinjen startes i samme katalog.

    Alt har nå alle de manglende filene for fullstendig konfigurasjon av demoCA-katalogen. Plasser de opprettede filene i katalogene som er angitt i punkt 5.

Vi vil anta at etter å ha fullført alle 8 punktene, er sertifiseringssenteret vårt fullt konfigurert.

I neste del vil jeg beskrive hvordan vi vil samarbeide med sertifiseringsmyndigheten for å oppnå det som er beskrevet i forrige del av artikkelen.

Kilde: www.habr.com

Legg til en kommentar