Patirtis naudojant Rutoken technologiją, registruojant ir suteikiant vartotojus sistemoje (2 dalis)

Laba diena Ir toliau nagrinėkime šią temą (Ankstesnę dalį rasite nuorodoje).

Šiandien pereikime prie praktinės dalies. Pradėkime nustatydami sertifikatų įstaigą, pagrįstą visaverte atvirojo kodo kriptografine biblioteka openSSL. Šis algoritmas buvo išbandytas naudojant „Windows 7“.

Įdiegę openSSL, per komandinę eilutę galime atlikti įvairias kriptografines operacijas (pvz., generuoti raktus ir sertifikatus).

Veiksmų algoritmas yra toks:

  1. Atsisiųskite diegimo platinimą openssl-1.1.1g.
    openSSL turi skirtingas versijas. Rutoken dokumentacijoje nurodyta, kad reikalinga openSSL 1.1.0 arba naujesnė versija. Naudojau openssl-1.1.1g versiją. Galite atsisiųsti „openSSL“ iš oficialios svetainės, tačiau norėdami lengviau įdiegti, turite internete rasti „Windows“ diegimo failą. Aš padariau tai dėl tavęs: slproweb.com/products/Win32OpenSSL.html
    Turite slinkti į puslapio apačią ir atsisiųsti Win64 OpenSSL v1.1.1g EXE 63MB diegimo programą.
  2. Įdiekite openssl-1.1.1g savo kompiuteryje.
    Diegimas turi būti atliktas naudojant standartinį kelią, kuris automatiškai nurodomas aplanke C:Program Files. Programa bus įdiegta aplanke OpenSSL-Win64.
  3. Norėdami sukonfigūruoti openSSL, kaip jums reikia, yra failas openssl.cfg. Šis failas yra kelyje C:Program FilesOpenSSL-Win64bin, jei įdiegėte openSSL, kaip aprašyta ankstesnėje pastraipoje. Eikite į aplanką, kuriame saugomas openssl.cfg, ir atidarykite šį failą naudodami, pavyzdžiui, Notepad++.
  4. Tikriausiai atspėjote, kad sertifikavimo centro konfigūracija bus atlikta kažkaip pakeitus openssl.cfg failo turinį, ir esate visiškai teisus. Norėdami tai padaryti, turite sukonfigūruoti komandą [ca]. Openssl.cfg faile teksto, kuriame atliksime pakeitimus, pradžią galima rasti taip: [ca].
  5. Dabar pateiksiu sąrankos pavyzdį su jo aprašymu:
    [ 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
    

    Dabar reikia sukurti demoCA katalogą ir pakatalogius, kaip parodyta aukščiau esančiame pavyzdyje. Ir įdėkite jį į šį katalogą kelyje, nurodytu dir (turiu /Users/username/bin/openSSLca/demoCA).

    Labai svarbu teisingai įvesti dir – tai yra kelias į katalogą, kuriame bus mūsų sertifikavimo institucija. Šis katalogas turi būti / Vartotojai (ty vartotojo abonemente). Jei įdėsite šį katalogą, pavyzdžiui, į C:Program Files, sistema nematys openssl.cfg nustatymų failo (bent jau man taip buvo).

    $dir – čia pakeičiamas dir nurodytas kelias.

    Kitas svarbus dalykas – sukurti tuščią failą index.txt; be šio failo „openSSL ca…“ komandos neveiks.

    Taip pat turite turėti serijinį failą, pagrindinį privatų raktą (ca.key) ir šakninį sertifikatą (ca.crt). Šių failų gavimo procesas bus aprašytas toliau.

  6. Mes įjungiame Rutoken pateiktus šifravimo algoritmus.
    Šis ryšys atsiranda faile openssl.cfg.

    • Pirmiausia turite atsisiųsti reikiamus Rutoken algoritmus. Tai failai rtengine.dll, rtpkcs11ecp.dll.
      Norėdami tai padaryti, atsisiųskite Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK yra viskas, kas yra kūrėjams, norintiems išbandyti Rutoken. Pateikiami ir atskiri pavyzdžiai, kaip dirbti su Rutoken skirtingomis programavimo kalbomis, ir pateikiamos kai kurios bibliotekos. Mūsų bibliotekos rtengine.dll ir rtpkcs11ecp.dll yra Rutoken sdk, atitinkamai:

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

      Labai svarbus momentas. Bibliotekos rtengine.dll, rtpkcs11ecp.dll neveikia be įdiegtos Rutoken tvarkyklės. Be to, Rutoken turi būti prijungtas prie kompiuterio. (Dėl visko, ko reikia Rutoken, įdiegimui žr. ankstesnę straipsnio dalį habr.com/en/post/506450)

    • Rtengine.dll ir rtpkcs11ecp.dll bibliotekos gali būti saugomos bet kurioje vartotojo abonemento vietoje.
    • Užregistruojame šių bibliotekų kelius openssl.cfg. Norėdami tai padaryti, atidarykite failą openssl.cfg, šio failo pradžioje turite įdėti eilutę:
      openssl_conf = openssl_def

      Failo pabaigoje turite pridėti:

      [ 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 – turite nurodyti kelią į rtengine.dll biblioteką.
      MODULE_PATH – turite nurodyti kelią į rtpkcs11ecp.dll biblioteką.

  7. Aplinkos kintamųjų pridėjimas.

    Turite pridėti aplinkos kintamąjį, kuris nurodo kelią į openssl.cfg konfigūracijos failą. Mano atveju OPENSSL_CONF kintamasis buvo sukurtas keliu C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Kelio kintamajame turi būti kelias į aplanką, kuriame yra openssl.exe, mano atveju tai yra: C:Program FilesOpenSSL-Win64bin.

  8. Dabar galite grįžti į 5 veiksmą ir sukurti trūkstamus demoCA katalogo failus.
    1. Pirmas svarbus failas, be kurio niekas neveiks, yra serijinis. Tai failas be plėtinio, kurio reikšmė turėtų būti 01. Šį failą galite susikurti patys ir viduje įrašyti 01. Taip pat galite atsisiųsti iš Rutoken SDK pakeliui sdk/openssl/rtengine/samples/tool/demoCA /.
      DemoCA kataloge yra serijinis failas, kurio mums reikia.
    2. Sukurkite šakninį privatų raktą.
      Norėdami tai padaryti, naudosime openSSL bibliotekos komandą, kuri turi būti paleista tiesiai komandinėje eilutėje:

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

    3. Sukurkite šakninį sertifikatą.
      Norėdami tai padaryti, naudosime šią komandą iš openSSL bibliotekos:

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

      Atminkite, kad norint sukurti šakninį sertifikatą, jums reikia pagrindinio privataus rakto, kuris buvo sukurtas ankstesniame žingsnyje. Todėl komandų eilutė turi būti paleista tame pačiame kataloge.

    Dabar yra visi trūkstami failai visai demoCA katalogo konfigūracijai. Įdėkite sukurtus failus į katalogus, nurodytus 5 veiksme.

Laikysime, kad atlikus visus 8 taškus mūsų sertifikavimo centras bus pilnai sukonfigūruotas.

Kitoje dalyje papasakosiu, kaip dirbsime su sertifikavimo institucija, kad įvykdytume tai, kas aprašyta ankstesnė straipsnio dalis.

Šaltinis: www.habr.com

Добавить комментарий