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

Goddag! Lad os fortsætte med at udforske dette emne (den forrige del kan ses via linket).

I dag går vi videre til den praktiske del. Vi starter med at konfigurere dit eget certifikatcenter baseret på det fulde kryptografiske bibliotek med open source, openSSL. Denne algoritme er blevet testet på Windows 7.

Når openSSL er installeret, kan vi udføre forskellige kryptografiske operationer (f.eks. oprettelse af nøgler og certifikater) via kommandoprompten.

Handlingsplanen er som følger:

  1. Download installationsprogrammet openssl-1.1.1g.
    openSSL har forskellige versioner. I dokumentationen til Ruttoken blev det nævnt, at versionen openSSL 1.1.0 eller nyere er nødvendig. Jeg brugte version openssl-1.1.1g. Du kan downloade openSSL fra den officielle hjemmeside, men for en lettere installation er det nødvendigt at finde installationsfilen til Windows online. Jeg har gjort det for dig: slproweb.com/products/Win32OpenSSL.html
    Du skal rulle ned ad siden og downloade Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Installer openssl-1.1.1g på din computer.
    Installationen skal foregå som standardvejen, som automatisk angives i mappen C:Program Files. Programmet vil blive installeret i mappen OpenSSL-Win64.
  3. For at konfigurere openSSL, som du ønsker, findes der en fil openssl.cfg. Denne fil er placeret i stien C:Program FilesOpenSSL-Win64bin, hvis du har installeret openSSL som nævnt i det foregående punkt. Gå til mappen, hvor openssl.cfg er gemt, og åbn denne fil med f.eks. Notepad++.
  4. Du har sikkert gættet, at konfigurationen af certifikatcentret vil blive udført ved at ændre indholdet af filen openssl.cfg, og det har du helt ret i. For dette kræves det at konfigurere kommandoen [ ca ]. I filen openssl.cfg kan du finde starten på teksten, hvor vi vil foretage ændringer, som: [ ca ].
  5. Nu vil jeg give et eksempel på konfiguration med en 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 er det nødvendigt at oprette kataloget demoCA og undermapperne, som vist i eksemplet ovenfor. Og placere dette i den katalog, der er angivet i dir (for mig /Users/username/bin/openSSLca/demoCA).

    Det er meget vigtigt at angive dir korrekt – det er stien til den mappe, hvor vores certifikatmyndighed vil befinde sig. Denne mappe skal absolut være placeret i /Users (eller rettere i en brugerkonto). Hvis du placerer denne mappe for eksempel i C:Program Files, vil systemet ikke kunne se filen med indstillingerne openssl.cfg (i det mindste var det sådan for mig).

    $dir – her indsættes stien, som er angivet i dir.

    En anden vigtig ting er at oprette en tom fil index.txt, uden denne fil vil kommandoerne 'openSSL ca …' ikke fungere.

    Det er også nødvendigt at have filen serial, den rodfæstede private nøgle (ca.key), og det rodfæstede certifikat (ca.crt). Processen til at opnå disse filer vil blive beskrevet senere.

  6. Vi aktiverer de krypteringsalgoritmer, der leveres af Rutoken.
    Denne tilslutning sker i filen openssl.cfg.
    • Først og fremmest kræves det at downloade de nødvendige algoritmer fra Rutoken. Det er filerne rtengine.dll, rtpkcs11ecp.dll.
      For at gøre dette downloader vi Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK – det er alt, hvad der findes for udviklere, der ønsker at afprøve Rutoken. Der er både separate eksempler på at arbejde med Rutoken i forskellige programmeringssprog og nogle biblioteker. Vore biblioteker rtengine.dll og rtpkcs11ecp.dll findes i Rutoken sdk henholdsvis på følgende placering:

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

      En meget vigtig detalje. Bibliotekerne rtengine.dll og rtpkcs11ecp.dll fungerer ikke uden den installerede driver til Rutoken. Rutoken skal også være tilsluttet computeren. (om installationen af alt nødvendigt til Rutoken, se i den forrige del af artiklen habr.com/ru/post/506450)

    • Bibliotekerne rtengine.dll og rtpkcs11ecp.dll kan placeres hvor som helst i brugerens konto.
    • Vi angiver stierne til disse biblioteker i openssl.cfg. For at gøre dette åbner vi filen openssl.cfg, og i starten af denne fil skal vi indsætte linjen:
      openssl_conf = openssl_def

      I slutningen af filen skal vi 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=AktivCo.;model=RutokenECP
      default_algorithms = CIPHERS, DIGEST, PKEY, RAND
      

      dynamic_path – du skal angive din egen sti til biblioteket rtengine.dll.
      MODULE_PATH – du skal angive din egen sti til biblioteket rtpkcs11ecp.dll.

  7. Tilføj miljøvariabler.

    Det er nødvendigt at tilføje en miljøvariabel, der angiver stien til konfigurationsfilen openssl.cfg. I mit tilfælde blev der oprettet en variabel OPENSSL_CONF med stien C:Program FilesOpenSSL-Win64binopenssl.cfg.

    I variablen path skal stien til mappen, hvor openssl.exe ligger, angives; i mit tilfælde er det: C:Program FilesOpenSSL-Win64bin.

  8. Nu kan vi gå tilbage til punkt 5 og oprette de manglende filer til kataloget demoCA.
    1. Den første vigtige fil, uden hvilken intet vil fungere, er serial. Det er en fil uden filtype, hvis værdi skal være 01. Du kan oprette denne fil selv og skrive 01 ind i den. Du kan også downloade den fra RUTOKEN SDK på stien sdk/openssl/rtengine/samples/tool/demoCA/.
      I kataloget demoCA ligger filen serial, som vi netop har brug for.
    2. Opretter den rod-private nøgle.
      Til dette vil vi benytte kommandoen fra openSSL-biblioteket, som skal køres direkte i kommandoprompten:
      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. Opretter det rod-certifikat.
      Til dette vil vi bruge følgende kommando fra openSSL-biblioteket:
      openssl req -utf8 -x509 -key ca.key -out ca.crt

      Bemærk, at der kræves den rod-private nøgle, som blev oprettet i det foregående trin, for at oprette rod-certifikatet. Derfor skal kommandoprompten være startet i den samme mappe.

    Nu er alle de manglende filer til den fulde konfiguration af kataloget demoCA til stede. Placer de oprettede filer i de mapper, der er angivet i punkt 5.

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

I næste del vil jeg fortælle, hvordan vi skal arbejde med certifikatmyndigheden for at udføre det, der blev beskrevet i den forrige del af artiklen.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster