Iskustvo u korišćenju Rutoken tehnologije za registraciju i autorizaciju korisnika u sistemu (2. deo)

Dobar dan Nastavimo s ovom temomPrethodni dio možete pronaći na linku).

Danas prelazimo na praktični dio. Počnimo postavljanjem našeg CA baziranog na punopravnoj open source kriptografskoj biblioteci openSSL. Ovaj algoritam je testiran koristeći Windows 7.

Sa instaliranim openSSL-om, možemo izvoditi različite kriptografske operacije (kao što je kreiranje ključeva i certifikata) putem komandne linije.

Algoritam radnji je sljedeći:

  1. Preuzmite instalacijsku distribuciju openssl-1.1.1g.
    openSSL ima različite verzije. U dokumentaciji za Rutoken piše da je potrebna openSSL verzija 1.1.0 ili novija. Koristio sam openssl-1.1.1g verziju. OpenSSL možete preuzeti sa službene stranice, ali za lakšu instalaciju morate pronaći instalacionu datoteku za windows na mreži. uradio sam ovo za tebe: slproweb.com/products/Win32OpenSSL.html
    Pomaknite se prema dolje po stranici i preuzmite Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Instalirajte openssl-1.1.1g na računar.
    Instalacija se mora izvršiti prema standardnoj putanji, koja je automatski naznačena u mapi C: Program Files. Program će biti instaliran u OpenSSL-Win64 folder.
  3. Da biste podesili openSSL onako kako vam je potrebno, postoji datoteka openssl.cfg. Ova datoteka se nalazi na putu 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. Vjerovatno ste pogodili da će se certifikacijsko tijelo nekako konfigurirati promjenom sadržaja datoteke openssl.cfg i potpuno ste u pravu. Ovo zahtijeva prilagođavanje naredbe [ ca ] . U datoteci openssl.cfg, početak teksta u kojem ćemo izvršiti promjene može se naći 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 trebamo kreirati demoCA direktorij i poddirektorije kao što je prikazano u primjeru iznad. I postavite ga u ovaj direktorij duž putanje koja je navedena u dir (imam /Users/username/bin/openSSLca/demoCA).

    Veoma je važno da pravilno napišete dir - ovo je put do direktorijuma u kojem će se nalaziti naš centar za sertifikaciju. Ovaj direktorij se mora nalaziti u /Users (tj. na računu nekog korisnika). Ako stavite ovaj direktorij, na primjer, u C: Program Files, sistem neće vidjeti datoteku sa postavkama openssl.cfg (barem je meni tako bilo).

    $dir - putanja navedena u dir se ovdje zamjenjuje.

    Još jedna važna stvar je kreiranje prazne datoteke index.txt, bez ove datoteke naredbe “openSSL ca…” neće raditi.

    Također morate imati serijski fajl, root privatni ključ (ca.key), root certifikat (ca.crt). Proces dobijanja ovih datoteka biće opisan u nastavku.

  6. Povezujemo algoritme za šifrovanje koje obezbeđuje Rutoken.
    Ova veza se odvija u datoteci openssl.cfg.

    • Prije svega, morate preuzeti potrebne Rutoken algoritme. Ovo 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 oba odvojena primjera za rad sa 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-u, na lokaciji:

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

      Veoma važna tačka. Biblioteke rtengine.dll, rtpkcs11ecp.dll ne rade bez instaliranog drajvera za Rutoken. Takođe Rutoken mora biti povezan sa računarom. (za instaliranje svega što vam je potrebno za Rutoken pogledajte prethodni dio članka habr.com/en/post/506450)

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

      Na kraju fajla morate 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 svoju putanju do biblioteke rtengine.dll.
      MODULE_PATH - trebate postaviti svoju putanju do biblioteke rtpkcs11ecp.dll.

  7. Dodavanje varijabli okruženja.

    Obavezno dodajte varijablu okruženja koja specificira putanju do openssl.cfg konfiguracijske datoteke. U mom slučaju, varijabla OPENSSL_CONF je kreirana sa putanjom C:Program FilesOpenSSL-Win64binopenssl.cfg.

    U varijabli putanje morate navesti putanju do fascikle 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 kreirati datoteke koje nedostaju za demoCA direktorij.
    1. Prva važna datoteka bez koje ništa neće raditi je serijski. Ovo je fajl bez ekstenzije čija bi vrijednost trebala biti 01. Ovu datoteku možete sami kreirati i unutra napisati 01. Možete je preuzeti i sa Rutoken SDK-a putem sdk/openssl/rtengine/samples/tool/demoCA /.
      DemoCA direktorij sadrži serijski fajl, što je upravo ono što nam treba.
    2. Kreirajte root privatni ključ.
      Da bismo to uradili, koristićemo naredbu biblioteke openSSL, koja se mora pokrenuti direktno na komandnoj liniji:

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

    3. Kreiramo root certifikat.
      Da biste to učinili, koristite sljedeću naredbu openSSL biblioteke:

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

      Imajte na umu da je root privatni ključ, koji je generiran u prethodnom koraku, potreban za generiranje root certifikata. Stoga se komandna linija mora pokrenuti u istom direktoriju.

    Sve sada ima sve datoteke koje nedostaju za kompletnu konfiguraciju demoCA direktorija. Smjestite kreirane datoteke u direktorije navedene u tački 5.

Pretpostavljamo da je nakon ispunjavanja svih 8 tačaka naš certifikacijski centar u potpunosti konfiguriran.

U sljedećem dijelu ću opisati kako ćemo raditi sa sertifikacionim tijelom kako bismo postigli ono što je opisano u prethodni deo članka.

izvor: www.habr.com

Dodajte komentar