Iskustvo u korištenju Rutoken tehnologije za registraciju i autorizaciju korisnika u sustavu (2. dio)

Dobar dan Nastavimo s ovom temomPrethodni dio nalazi se na poveznici).

Danas prelazimo na praktični dio. Započnimo s postavljanjem našeg CA na temelju potpune kriptografske biblioteke otvorenog koda openSSL. Ovaj algoritam je testiran u sustavu Windows 7.

S instaliranim openSSL-om možemo izvoditi razne kriptografske operacije (kao što je kreiranje ključeva i certifikata) putem naredbenog retka.

Algoritam radnji je sljedeći:

  1. Preuzmite instalacijsku distribuciju openssl-1.1.1g.
    openSSL ima različite verzije. U dokumentaciji za Rutoken stoji da je potrebna openSSL verzija 1.1.0 ili novija. Koristio sam verziju openssl-1.1.1g. OpenSSL možete preuzeti sa službene stranice, ali za lakšu instalaciju potrebno je pronaći instalacijsku datoteku za windows na netu. Napravio sam ovo za tebe: slproweb.com/products/Win32OpenSSL.html
    Pomaknite se prema dolje na stranici i preuzmite Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Instalirajte openssl-1.1.1g na računalo.
    Instalacija se mora provesti prema standardnoj stazi, koja je automatski navedena u mapi C: Program Files. Program će biti instaliran u mapu OpenSSL-Win64.
  3. Kako biste postavili openSSL onako kako vam treba, postoji datoteka openssl.cfg. Ova se datoteka nalazi u putanji C:\Program Files\OpenSSL-Win64bin ako ste instalirali openSSL kao što je opisano u prethodnom paragrafu. Idite u mapu u kojoj je pohranjen openssl.cfg i otvorite ovu datoteku koristeći, na primjer, Notepad++.
  4. Vjerojatno ste pogodili da će se certifikacijsko tijelo nekako konfigurirati promjenom sadržaja datoteke openssl.cfg i potpuno ste u pravu. To zahtijeva prilagodbu naredbe [ ca ]. U datoteci openssl.cfg, početak teksta u koji ćemo unijeti izmjene nalazi se kao: [ ca ].
  5. Sada ću dati primjer postavke s njenim opisom:
    [ 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
    

    Sada moramo stvoriti demoCA direktorij i poddirektorije kao što je prikazano u gornjem primjeru. I smjestite ga u ovaj direktorij duž staze navedene u direktoriju (imam /Users/username/bin/openSSLca/demoCA).

    Vrlo je važno pravilno napisati dir - ovo je put do imenika u kojem će se nalaziti naš certifikacijski centar. Ovaj direktorij se mora nalaziti u /Users (to jest, u računu nekog korisnika). Ako ovaj direktorij stavite npr. u C: Program Files, sustav neće vidjeti datoteku s postavkama openssl.cfg (barem je kod mene tako bilo).

    $dir - ovdje se zamjenjuje staza navedena u dir.

    Još jedna važna točka je stvaranje prazne datoteke index.txt, bez te datoteke naredbe "openSSL ca..." neće raditi.

    Također morate imati serijsku datoteku, korijenski privatni ključ (ca.key), korijenski certifikat (ca.crt). Postupak dobivanja ovih datoteka bit će opisan u nastavku.

  6. Povezujemo algoritme šifriranja koje pruža Rutoken.
    Ova se veza odvija u datoteci openssl.cfg.

    • Prije svega, morate preuzeti potrebne Rutoken algoritme. To su datoteke rtengine.dll, rtpkcs11ecp.dll.
      Da biste to učinili, preuzmite Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK je sve što postoji za programere koji žele isprobati Rutoken. Postoje odvojeni primjeri za rad s Rutokenom u različitim programskim jezicima, a predstavljene su i neke biblioteke. Naše biblioteke rtengine.dll i rtpkcs11ecp.dll nalaze se u Rutoken sdk, redom, na lokaciji:

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

      Vrlo važna točka. Knjižnice rtengine.dll, rtpkcs11ecp.dll ne rade bez instaliranog upravljačkog programa za Rutoken. Također Rutoken mora biti povezan s računalom. (za instalaciju svega što vam je potrebno za Rutoken pogledajte prethodni dio članka habr.com/en/post/506450)

    • Biblioteke rtengine.dll i rtpkcs11ecp.dll mogu se držati bilo gdje na korisničkom računu.
    • Staze do ovih biblioteka pišemo u openssl.cfg. Da biste to učinili, otvorite datoteku openssl.cfg, stavite redak na početak ove datoteke:
      openssl_conf = openssl_def

      Na kraju datoteke potrebno je dodati:

      [ 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 - morate navesti svoj put do biblioteke rtengine.dll.
      MODULE_PATH - trebate napisati svoj put do biblioteke rtpkcs11ecp.dll.

  7. Dodavanje varijabli okruženja.

    Obavezno dodajte varijablu okruženja koja navodi stazu do konfiguracijske datoteke openssl.cfg. U mom slučaju, varijabla OPENSSL_CONF stvorena je putem C:Program FilesOpenSSL-Win64binopenssl.cfg.

    U varijabli puta morate navesti put do mape u kojoj se nalazi openssl.exe, u mom slučaju je to: C: Program FilesOpenSSL-Win64bin.

  8. Sada se možete vratiti na korak 5 i stvoriti datoteke koje nedostaju za demoCA direktorij.
    1. Prva važna datoteka bez koje ništa neće raditi je serijska. Ovo je datoteka bez ekstenzije, čija bi vrijednost trebala biti 01. Ovu datoteku možete sami kreirati i unijeti 01. Također je možete preuzeti s Rutoken SDK putem sdk/openssl/rtengine/samples/tool/demoCA /.
      Direktorij demoCA sadrži serijsku datoteku, što je upravo ono što nam treba.
    2. Stvorite korijenski privatni ključ.
      Da bismo to učinili, koristit ćemo naredbu biblioteke openSSL, koja se mora pokrenuti izravno u naredbenom retku:

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

    3. Izrađujemo korijenski certifikat.
      Da biste to učinili, koristite sljedeću naredbu openSSL knjižnice:

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

      Imajte na umu da je korijenski privatni ključ, koji je generiran u prethodnom koraku, potreban za generiranje korijenskog certifikata. Stoga se naredbeni redak mora pokrenuti u istom direktoriju.

    Sve sada ima sve datoteke koje nedostaju za kompletnu konfiguraciju demoCA direktorija. Stvorene datoteke smjestite u direktorije navedene u točki 5.

Pretpostavit ćemo da je nakon ispunjavanja svih 8 točaka naš certifikacijski centar potpuno konfiguriran.

U sljedećem ću dijelu opisati kako ćemo surađivati ​​s certifikacijskim tijelom kako bismo postigli ono što je opisano u prethodni dio članka.

Izvor: www.habr.com

Dodajte komentar