Erfaring med at bruge Rutoken teknologi til registrering og autorisering af brugere i systemet (del 2)

God eftermiddag Lad os fortsætte med dette emneDen forrige del kan findes på linket).

I dag går vi videre til den praktiske del. Lad os starte med at opsætte vores CA baseret på det fuldgyldige open source kryptografiske bibliotek openSSL. Denne algoritme er blevet testet med Windows 7.

Med openSSL installeret kan vi udføre forskellige kryptografiske operationer (såsom oprettelse af nøgler og certifikater) via kommandolinjen.

Handlingsalgoritmen er som følger:

  1. Download installationsdistributionen openssl-1.1.1g.
    openSSL har forskellige versioner. Dokumentationen til Rutoken sagde, at openSSL version 1.1.0 eller nyere er påkrævet. Jeg brugte openssl-1.1.1g version. Du kan downloade openSSL fra det officielle websted, men for en lettere installation skal du finde installationsfilen til Windows på nettet. Jeg gjorde dette for dig: slproweb.com/products/Win32OpenSSL.html
    Rul ned på siden og download Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Installer openssl-1.1.1g på computeren.
    Installationen skal udføres i henhold til standardstien, som automatisk angives i mappen C: Program Files. Programmet vil blive installeret i mappen OpenSSL-Win64.
  3. For at opsætte openSSL, som du har brug for det, er der filen openssl.cfg. Denne fil er placeret i C:\Program Files\OpenSSL-Win64bin-stien, hvis du installerede openSSL som beskrevet i det foregående afsnit. Gå til mappen, hvor openssl.cfg er gemt, og åbn denne fil ved hjælp af for eksempel Notepad++.
  4. Du har sikkert gættet, at certificeringsmyndigheden på en eller anden måde vil blive konfigureret ved at ændre indholdet af openssl.cfg-filen, og du har fuldstændig ret. Dette kræver tilpasning af [ca]-kommandoen. I openssl.cfg-filen kan begyndelsen af ​​teksten, hvor vi vil foretage ændringer, findes som: [ ca ].
  5. Nu vil jeg give et eksempel på en indstilling med dens beskrivelse:
    [ 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
    

    Nu skal vi oprette demoCA-biblioteket og undermapper som vist i eksemplet ovenfor. Og placer den i denne mappe langs stien, der er angivet i dir (jeg har /Users/brugernavn/bin/openSSLca/demoCA).

    Det er meget vigtigt at stave dir korrekt - dette er stien til den mappe, hvor vores certificeringscenter vil være placeret. Denne mappe skal være placeret i /Users (det vil sige på en brugers konto). Hvis du f.eks. placerer denne mappe i C: Program Files, vil systemet ikke se filen med openssl.cfg-indstillingerne (det var i hvert fald sådan for mig).

    $dir - stien angivet i dir erstattes her.

    Et andet vigtigt punkt er at oprette en tom index.txt-fil, uden denne fil vil "openSSL ca ..." kommandoerne ikke fungere.

    Du skal også have en seriel fil, en privat rodnøgle (ca.key), et rodcertifikat (ca.crt). Processen med at få disse filer vil blive beskrevet nedenfor.

  6. Vi forbinder krypteringsalgoritmerne leveret af Rutoken.
    Denne forbindelse finder sted i filen openssl.cfg.

    • Først og fremmest skal du downloade de nødvendige Rutoken-algoritmer. Disse er filerne rtengine.dll, rtpkcs11ecp.dll.
      For at gøre dette skal du downloade Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK er alt hvad der er for udviklere, der ønsker at prøve Rutoken. Der er både separate eksempler på at arbejde med Rutoken i forskellige programmeringssprog, og nogle biblioteker er præsenteret. Vores biblioteker rtengine.dll og rtpkcs11ecp.dll er placeret i henholdsvis Rutoken sdk på lokationen:

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

      En meget vigtig pointe. Biblioteker rtengine.dll, rtpkcs11ecp.dll virker ikke uden den installerede driver til Rutoken. Rutoken skal også være tilsluttet computeren. (for at installere alt, hvad du har brug for til Rutoken, se den forrige del af artiklen habr.com/en/post/506450)

    • Bibliotekerne rtengine.dll og rtpkcs11ecp.dll kan opbevares hvor som helst på brugerkontoen.
    • Vi skriver stierne til disse biblioteker i openssl.cfg. For at gøre dette skal du åbne openssl.cfg filen, sætte linjen i begyndelsen af ​​denne fil:
      openssl_conf = openssl_def

      I slutningen af ​​filen skal du tilføje:

      [ 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 skal angive din sti til rtengine.dll-biblioteket.
      MODULE_PATH - du skal indstille din sti til rtpkcs11ecp.dll-biblioteket.

  7. Tilføjelse af miljøvariabler.

    Sørg for at tilføje en miljøvariabel, der angiver stien til openssl.cfg-konfigurationsfilen. I mit tilfælde blev OPENSSL_CONF-variablen oprettet med stien C:Program FilesOpenSSL-Win64binopenssl.cfg.

    I stivariablen skal du angive stien til mappen hvor openssl.exe er placeret, i mit tilfælde er det: C: Program FilesOpenSSL-Win64bin.

  8. Nu kan du gå tilbage til trin 5 og oprette de manglende filer til demoCA-mappen.
    1. Den første vigtige fil, uden hvilken intet fungerer, er seriel. Dette er en fil uden filtypenavn, hvis værdi skal være 01. Du kan selv oprette denne fil og skrive 01 i. Du kan også downloade den fra Rutoken SDK langs stien sdk/openssl/rtengine/samples/tool/demoCA /.
      DemoCA biblioteket indeholder den serielle fil, som er præcis, hvad vi har brug for.
    2. Opret en privat rodnøgle.
      For at gøre dette bruger vi openSSL-bibliotekskommandoen, som skal køres direkte på kommandolinjen:

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

    3. Vi opretter et rodcertifikat.
      For at gøre dette skal du bruge følgende openSSL-bibliotekskommando:

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

      Bemærk venligst, at den private rodnøgle, som blev genereret i det forrige trin, er påkrævet for at generere rodcertifikatet. Derfor skal kommandolinjen startes i samme mappe.

    Alt har nu alle de manglende filer til den komplette konfiguration af demoCA-biblioteket. Placer de oprettede filer i de mapper, der er angivet i punkt 5.

Vi vil antage, at efter at have gennemført alle 8 punkter, er vores certificeringscenter fuldt konfigureret.

I næste del vil jeg beskrive, hvordan vi vil arbejde sammen med certificeringsmyndigheden for at opnå det, der blev beskrevet i den forrige del af artiklen.

Kilde: www.habr.com

Tilføj en kommentar