Erfarenhet av att använda Rutoken-teknik för att registrera och auktorisera användare i systemet (del 2)

God eftermiddag Låt oss fortsätta med detta ämneFöregående del finns på länken).

Idag går vi vidare till den praktiska delen. Låt oss börja med att ställa in vår CA baserat på det fullfjädrade kryptografiska biblioteket med öppen källkod openSSL. Denna algoritm har testats med Windows 7.

Med openSSL installerat kan vi utföra olika kryptografiska operationer (som att skapa nycklar och certifikat) via kommandoraden.

Handlingsalgoritmen är som följer:

  1. Ladda ner installationsdistributionen openssl-1.1.1g.
    openSSL har olika versioner. Dokumentationen för Rutoken sa att openSSL version 1.1.0 eller senare krävs. Jag använde openssl-1.1.1g version. Du kan ladda ner openSSL från den officiella webbplatsen, men för en enklare installation måste du hitta installationsfilen för Windows på nätet. Jag gjorde det här för dig: slproweb.com/products/Win32OpenSSL.html
    Scrolla ner på sidan och ladda ner Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Installera openssl-1.1.1g på datorn.
    Installationen måste utföras enligt standardsökvägen, som automatiskt anges i mappen C: Program Files. Programmet kommer att installeras i mappen OpenSSL-Win64.
  3. För att ställa in openSSL som du behöver det finns filen openssl.cfg. Den här filen finns i sökvägen C:\Program Files\OpenSSL-Win64bin om du installerade openSSL enligt beskrivningen i föregående stycke. Gå till mappen där openssl.cfg är lagrad och öppna den här filen med till exempel Notepad++.
  4. Du gissade förmodligen att certifieringsmyndigheten kommer att konfigureras på något sätt genom att ändra innehållet i filen openssl.cfg, och du har helt rätt. Detta kräver anpassning av kommandot [ ca ]. I filen openssl.cfg kan början av texten där vi gör ändringar hittas som: [ ca ].
  5. Nu ska jag ge ett exempel på en inställning med dess beskrivning:
    [ 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 måste vi skapa demoCA-katalogen och underkatalogerna som visas i exemplet ovan. Och placera den i den här katalogen längs sökvägen som anges i dir (jag har /Users/username/bin/openSSLca/demoCA).

    Det är mycket viktigt att stava dir korrekt - det här är sökvägen till katalogen där vårt certifieringscenter kommer att finnas. Denna katalog måste finnas i /Users (det vill säga på kontot för någon användare). Om du placerar den här katalogen, till exempel, i C: Program Files, kommer systemet inte att se filen med openssl.cfg-inställningarna (åtminstone var det så för mig).

    $dir - sökvägen som anges i dir ersätts här.

    En annan viktig punkt är att skapa en tom index.txt-fil, utan denna fil fungerar inte "openSSL ca ..."-kommandona.

    Du behöver också ha en seriell fil, en privat rotnyckel (ca.key), ett rotcertifikat (ca.crt). Processen för att erhålla dessa filer kommer att beskrivas nedan.

  6. Vi kopplar ihop krypteringsalgoritmerna som tillhandahålls av Rutoken.
    Denna anslutning sker i filen openssl.cfg.

    • Först och främst måste du ladda ner de nödvändiga Rutoken-algoritmerna. Dessa är filerna rtengine.dll, rtpkcs11ecp.dll.
      För att göra detta, ladda ner Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK är allt som finns för utvecklare som vill prova Rutoken. Det finns både separata exempel för att arbeta med Rutoken i olika programmeringsspråk, och några bibliotek presenteras. Våra bibliotek rtengine.dll och rtpkcs11ecp.dll finns i Rutoken sdk, respektive på platsen:

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

      En mycket viktig punkt. Bibliotek rtengine.dll, rtpkcs11ecp.dll fungerar inte utan den installerade drivrutinen för Rutoken. Dessutom måste Rutoken vara ansluten till datorn. (för att installera allt du behöver för Rutoken, se föregående del av artikeln habr.com/en/post/506450)

    • Biblioteken rtengine.dll och rtpkcs11ecp.dll kan förvaras var som helst i användarkontot.
    • Vi skriver sökvägarna till dessa bibliotek i openssl.cfg. För att göra detta, öppna filen openssl.cfg, sätt raden i början av denna fil:
      openssl_conf = openssl_def

      I slutet av filen måste du lägga till:

      [ 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åste ange din sökväg till rtengine.dll-biblioteket.
      MODULE_PATH - du måste ange din sökväg till rtpkcs11ecp.dll-biblioteket.

  7. Lägga till miljövariabler.

    Var noga med att lägga till en miljövariabel som anger sökvägen till openssl.cfg-konfigurationsfilen. I mitt fall skapades variabeln OPENSSL_CONF med sökvägen C:Program FilesOpenSSL-Win64binopenssl.cfg.

    I sökvägsvariabeln måste du ange sökvägen till mappen där openssl.exe finns, i mitt fall är det: C: Program FilesOpenSSL-Win64bin.

  8. Nu kan du gå tillbaka till steg 5 och skapa de saknade filerna för demoCA-katalogen.
    1. Den första viktiga filen utan vilken inget fungerar är seriell. Det här är en fil utan filändelse, vars värde ska vara 01. Du kan skapa den här filen själv och skriva 01 inuti. Du kan också ladda ner den från Rutoken SDK längs sökvägen sdk/openssl/rtengine/samples/tool/demoCA /.
      DemoCA-katalogen innehåller seriefilen, vilket är precis vad vi behöver.
    2. Skapa en privat rotnyckel.
      För att göra detta kommer vi att använda kommandot openSSL bibliotek, som måste köras direkt på kommandoraden:

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

    3. Vi skapar ett rotcertifikat.
      För att göra detta, använd följande openSSL-bibliotekskommando:

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

      Observera att den privata rotnyckeln, som genererades i föregående steg, krävs för att generera rotcertifikatet. Därför måste kommandoraden startas i samma katalog.

    Allt har nu alla saknade filer för den fullständiga konfigurationen av demoCA-katalogen. Placera de skapade filerna i de kataloger som anges i punkt 5.

Vi antar att vårt certifieringscenter är fullt konfigurerat efter att ha slutfört alla 8 punkter.

I nästa del kommer jag att beskriva hur vi kommer att samarbeta med certifieringsmyndigheten för att åstadkomma det som beskrivits i föregående del av artikeln.

Källa: will.com

Lägg en kommentar