Skúsenosti s používaním technológie Rutoken na registráciu a autorizáciu používateľov v systéme (časť 2)

Dobrý deň Pokračujme v tejto témePredchádzajúcu časť nájdete na odkaze).

Dnes prejdeme k praktickej časti. Začnime nastavením našej CA na základe plnohodnotnej open source kryptografickej knižnice openSSL. Tento algoritmus bol testovaný v systéme Windows 7.

S nainštalovaným openSSL môžeme cez príkazový riadok vykonávať rôzne kryptografické operácie (napríklad vytváranie kľúčov a certifikátov).

Algoritmus akcií je nasledovný:

  1. Stiahnite si inštalačnú distribúciu openssl-1.1.1g.
    openSSL má rôzne verzie. V dokumentácii pre Rutoken sa uvádzalo, že sa vyžaduje openSSL verzie 1.1.0 alebo novšej. Použil som verziu openssl-1.1.1g. OpenSSL si môžete stiahnuť z oficiálnej stránky, ale pre jednoduchšiu inštaláciu musíte nájsť inštalačný súbor pre windows na nete. Urobil som pre teba toto: slproweb.com/products/Win32OpenSSL.html
    Prejdite nadol po stránke a stiahnite si inštalátor Win64 OpenSSL v1.1.1g EXE 63 MB.
  2. Nainštalujte openssl-1.1.1g do počítača.
    Inštalácia musí byť vykonaná podľa štandardnej cesty, ktorá je automaticky uvedená v priečinku C: Program Files. Program sa nainštaluje do priečinka OpenSSL-Win64.
  3. Ak chcete nastaviť openSSL tak, ako potrebujete, existuje súbor openssl.cfg. Tento súbor sa nachádza v ceste C:\Program Files\OpenSSL-Win64bin, ak ste nainštalovali openSSL podľa popisu v predchádzajúcom odseku. Prejdite do priečinka, kde je uložený súbor openssl.cfg a otvorte tento súbor napríklad pomocou programu Notepad++.
  4. Pravdepodobne ste uhádli, že certifikačná autorita bude nejako nakonfigurovaná zmenou obsahu súboru openssl.cfg a máte úplnú pravdu. To si vyžaduje prispôsobenie príkazu [ ca ]. V súbore openssl.cfg nájdete začiatok textu, v ktorom vykonáme zmeny, ako: [ ca ].
  5. Teraz uvediem príklad nastavenia s jeho popisom:
    [ 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
    

    Teraz musíme vytvoriť adresár demoCA a podadresáre, ako je uvedené v príklade vyššie. A umiestnite ho do tohto adresára pozdĺž cesty, ktorá je zadaná v adresári (mám /Users/username/bin/openSSLca/demoCA).

    Je veľmi dôležité správne napísať dir – toto je cesta k adresáru, kde sa bude nachádzať naše certifikačné centrum. Tento adresár sa musí nachádzať v /Users (to znamená v účte nejakého používateľa). Ak tento adresár umiestnite napríklad do C: Program Files, systém neuvidí súbor s nastaveniami openssl.cfg (aspoň u mňa to tak bolo).

    $dir - tu je nahradená cesta špecifikovaná v dir.

    Ďalším dôležitým bodom je vytvorenie prázdneho súboru index.txt, bez tohto súboru príkazy „openSSL ca ...“ nebudú fungovať.

    Musíte mať aj sériový súbor, koreňový súkromný kľúč (ca.key), koreňový certifikát (ca.crt). Postup získania týchto súborov bude popísaný nižšie.

  6. Pripájame šifrovacie algoritmy poskytované spoločnosťou Rutoken.
    Toto pripojenie prebieha v súbore openssl.cfg.

    • Najprv si musíte stiahnuť potrebné algoritmy Rutoken. Sú to súbory rtengine.dll, rtpkcs11ecp.dll.
      Ak to chcete urobiť, stiahnite si Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK je všetko, čo existuje pre vývojárov, ktorí chcú vyskúšať Rutoken. Existujú samostatné príklady práce s Rutokenom v rôznych programovacích jazykoch a sú prezentované niektoré knižnice. Naše knižnice rtengine.dll a rtpkcs11ecp.dll sa nachádzajú v súprave Rutoken sdk na adrese:

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

      Veľmi dôležitý bod. Knižnice rtengine.dll, rtpkcs11ecp.dll nefungujú bez nainštalovaného ovládača pre Rutoken. Rutoken musí byť tiež pripojený k počítaču. (Inštaláciu všetkého, čo potrebujete pre Rutoken, nájdete v predchádzajúcej časti článku habr.com/en/post/506450)

    • Knižnice rtengine.dll a rtpkcs11ecp.dll môžu byť uložené kdekoľvek v používateľskom účte.
    • Cesty k týmto knižniciam zapíšeme do openssl.cfg. Ak to chcete urobiť, otvorte súbor openssl.cfg, vložte riadok na začiatok tohto súboru:
      openssl_conf = openssl_def

      Na koniec súboru je potrebné pridať:

      [ 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 - musíte zadať svoju cestu ku knižnici rtengine.dll.
      MODULE_PATH - musíte napísať svoju cestu ku knižnici rtpkcs11ecp.dll.

  7. Pridanie premenných prostredia.

    Nezabudnite pridať premennú prostredia, ktorá určuje cestu ku konfiguračnému súboru openssl.cfg. V mojom prípade bola premenná OPENSSL_CONF vytvorená s cestou C:Program FilesOpenSSL-Win64binopenssl.cfg.

    V premennej path musíte zadať cestu k priečinku, kde sa nachádza openssl.exe, v mojom prípade je to: C: Program FilesOpenSSL-Win64bin.

  8. Teraz sa môžete vrátiť na krok 5 a vytvoriť chýbajúce súbory pre adresár demoCA.
    1. Prvý dôležitý súbor, bez ktorého nebude nič fungovať, je sériový. Toto je súbor bez prípony, ktorého hodnota by mala byť 01. Tento súbor si môžete vytvoriť sami a doň napísať 01. Môžete si ho stiahnuť aj z Rutoken SDK po ceste sdk/openssl/rtengine/samples/tool/demoCA /.
      Adresár demoCA obsahuje sériový súbor, čo je presne to, čo potrebujeme.
    2. Vytvorte koreňový súkromný kľúč.
      Na to použijeme príkaz knižnice openSSL, ktorý je potrebné spustiť priamo na príkazovom riadku:

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

    3. Vytvoríme koreňový certifikát.
      Ak to chcete urobiť, použite nasledujúci príkaz knižnice openSSL:

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

      Upozorňujeme, že na vygenerovanie koreňového certifikátu je potrebný koreňový súkromný kľúč, ktorý bol vygenerovaný v predchádzajúcom kroku. Preto musí byť príkazový riadok spustený v rovnakom adresári.

    Všetko má teraz všetky chýbajúce súbory pre kompletnú konfiguráciu adresára demoCA. Umiestnite vytvorené súbory do adresárov uvedených v bode 5.

Budeme predpokladať, že po splnení všetkých 8 bodov je naše certifikačné centrum plne nakonfigurované.

V ďalšej časti popíšem, ako budeme spolupracovať s certifikačnou autoritou, aby sme dosiahli to, čo bolo popísané v predchádzajúca časť článku.

Zdroj: hab.com

Pridať komentár