Eksperienca e përdorimit të teknologjisë Rutoken për regjistrimin dhe autorizimin e përdoruesve në sistem (pjesa 2)

Mirëmëngjes! Do të vazhdojmë të shqyrtojmë këtë temë (pjesa e mëparshme mund të shqyrtohet në lidhje).

Sot do të kalojmë në pjesën praktike. Të fillojmë me konfigurimin e qendrës tonë të certifikimit të bazuar në një bibliotekë kriptografike me kod burimi të hapur openSSL. Ky algoritëm ka funksionuar në sistemin Windows 7.

Pasi të instalojmë openSSL, mund të kryejmë operacione të ndryshme kriptografike (për shembull, krijimin e çelësave dhe certifikatave) përmes komandës në terminal.

Procedura është si më poshtë:

  1. Shkarkoni paketën instalueset openssl-1.1.1g.
    OpenSSL ka versione të ndryshme. Në dokumentacionin për RUT token është thënë se nevojitet versioni 1.1.0 apo më i ri i openSSL. Unë përdora versionin openssl-1.1.1g. Mund të shkarkoni openSSL nga faqja zyrtare, por për një instalim më të lehtë duhet të gjeni skedarin instalues për Windows në internet. Unë e kam bërë këtë për ju: slproweb.com/products/Win32OpenSSL.html
    Duhet të rrokni poshtë faqes dhe të shkarkoni Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Instaloni openssl-1.1.1g në kompjuter.
    Instalimi duhet të kryhet në rrugën standarde, e cila tregohet automatikisht në dosjen C:Program Files. Programi do të instalohet në dosjen OpenSSL-Win64.
  3. Për të konfigurimin openSSL sipas nevojave tuaja, ekziston skedari openssl.cfg. Ky skedar ndodhet në rrugën C:Program FilesOpenSSL-Win64bin nëse e keni instaluar openSSL siç është thënë në pikën e mëparshme. Shkoni në dosjen ku ndodhet openssl.cfg dhe hapni këtë skedar duke përdorur, për shembull, Notepad++.
  4. Ka të ngjarë se keni kuptuar që konfigurimi i qendrës së certifikimit do të bëhet duke ndryshuar përmbajtjen e skedarit openssl.cfg, dhe jeni plotësisht të saktë. Për këtë, duhet të konfigurojmë komandën [ ca ]. Në skedarin openssl.cfg, fillimi i tekstit ku do të bëjmë ndryshimet mund të gjendet si: [ ca ].
  5. Tani do të jap një shembull të konfigurimit me përshkrimin e tij:
    [ 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
    

    Tani është e nevojshme të krijoni katalogun demoCA dhe nënkatalogët, siç është treguar në shembullin e mësipërm. Dhe të vendosni këtë katalog në rrugën që është e përcaktuar në dir (në rastin tim /Users/username/bin/openSSLca/demoCA).

    ËshtĂ« shumĂ« e rĂ«ndĂ«sishme tĂ« shkruani saktĂ« dir – kjo Ă«shtĂ« rruga drejt direktorisĂ«, nĂ« tĂ« cilĂ«n do tĂ« ndodhet qendra jonĂ« e certifikimit. Kjo direktori duhet patjetĂ«r tĂ« jetĂ« nĂ« /Users (pra, nĂ« llogarinĂ« e ndonjĂ« pĂ«rdoruesi). NĂ«se e vendosni kĂ«tĂ« direktori pĂ«r shembull nĂ« C:Program Files, sistemi nuk do ta shohĂ« skedarin me konfigurimet openssl.cfg (tĂ« paktĂ«n kĂ«shtu mĂ« ndodhi mua).

    $dir — kĂ«tu do tĂ« vendoset rruga qĂ« Ă«shtĂ« e pĂ«rcaktuar nĂ« dir.

    Një pikë tjetër e rëndësishme është krijimi i një skedari bosh index.txt, pa këtë skedar komandat "openSSL ca ..." nuk do të funksionojnë.

    Po potrzebë për të pasur një skedar serial, çelësin privat rrënor (ca.key), dhe certifikatën rrënore (ca.crt). Procesi i marrjes së këtyre skedareve do të përshkruhet më vonë.

  6. Lidhim algoritmet e enkriptimit që ofrohen nga Rutoken.
    Kjo lidhje ndodh në skedarin openssl.cfg.
    • SĂ« pari, duhet tĂ« shkarkojmĂ« algoritmet e nevojshme tĂ« Rutoken. KĂ«to janĂ« skedarĂ«t rtengine.dll, rtpkcs11ecp.dll.
      Për këtë, shkarkojmë SDK e Rutoken: www.rutoken.ru/developers/sdk.

      SDK e Rutoken është gjithçka që ekziston për zhvilluesit që duan të provojnë Rutoken. Aty ka si shembuj të veçantë për punën me Rutoken në gjuhë të ndryshme programimi, ashtu si dhe disa biblioteka. Bibliotekat tona rtengine.dll dhe rtpkcs11ecp.dll ndodhen në SDK e Rutoken përkatësisht në vendndodhjen:

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

      Një moment shumë i rëndësishëm. Bibliotekat rtengine.dll, rtpkcs11ecp.dll nuk funksionojnë pa instaluar drejtuesin për Rutokenin. Po ashtu, Rutokeni duhet të jetë i lidhur me kompjuterin. (për instalimin e gjithçkaje të nevojshme për Rutoken, shiko në pjesën e mëparshme të artikullit habr.com/ru/post/506450)

    • Bibliotekat rtengine.dll dhe rtpkcs11ecp.dll mund tĂ« mbahen nĂ« çdo vend nĂ« llogarinĂ« e pĂ«rdoruesit.
    • ShkruajmĂ« rrugĂ«t pĂ«r kĂ«to biblioteka nĂ« openssl.cfg. PĂ«r kĂ«tĂ«, hapim skedarin openssl.cfg, nĂ« fillim tĂ« kĂ«tij skedari duhet tĂ« vendosim rreshtin:
      openssl_conf = openssl_def

      Në fund të skedarit duhet të shtojmë:

      [ 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=AktivCo.;model=RutokenECP
      default_algorithms = CIPHERS, DIGEST, PKEY, RAND
      

      dynamic_path – duhet tĂ« shĂ«noni rrugĂ«n tuaj pĂ«r bibliotekĂ«n rtengine.dll.
      MODULE_PATH — duhet tĂ« shĂ«noni rrugĂ«n tuaj pĂ«r bibliotekĂ«n rtpkcs11ecp.dll.

  7. Shtojmë variabla ambienti.

    Patjetër duhet të shtoni një variabël ambienti që tregon rrugën për skedarin e konfigurimit openssl.cfg. Në rastin tim u krijua variabla OPENSSL_CONF me rrugën C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Në variablën path duhet të tregoni rrugën deri në dosjen ku ndodhet openssl.exe, në rastin tim kjo është: C:Program FilesOpenSSL-Win64bin.

  8. Tani mund të kthehemi në pikën 5 dhe të krijojmë skedaret e munguara për katalogun demoCA.
    1. Skedari i parĂ« i rĂ«ndĂ«sishĂ«m pa tĂ« cilin asgjĂ« nuk do tĂ« funksionojĂ« — serial. Ky Ă«shtĂ« njĂ« skedar pa zgjerim, vlere e tĂ« cilit duhet tĂ« jetĂ« 01. Mund ta krijoni kĂ«tĂ« skedar vetĂ« dhe tĂ« shkruani brenda 01. Po ashtu mund ta shkarkoni atĂ« nga SDK e Rutoken nĂ« rrugĂ«n sdk/openssl/rtengine/samples/tool/demoCA/.
      NĂ« katalogun demoCA ndodhet skedari serial, i cili na nevojitet.
    2. Krijojmë çelësin privat rrënor.
      Për këtë do të përdorim komandën e bibliotekës openSSL, e cila duhet të ekzekutohet direkt në komandën:
      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. Krijojmë certifikatën rrënore.
      Për këtë do të përdorim komandën e mëposhtme të bibliotekës openSSL:
      openssl req -utf8 -x509 -key ca.key -out ca.crt

      Vini re bënë se krijimi i një certifikate rrënjësore kërkon çelësin privat rrënjor, i cili u krijua në hapin e mëparshëm. Prandaj, lini komandën në të njëjtën direktori.

    Tani të gjitha skedarët e nevojshëm për konfigurimin e plotë të katalogut demoCA janë të disponueshëm. Vendosni skedarët e krijuar në katalogët e specifikuar në pikën 5.

Të supozojmë se pas përfundimit të 8 pikave, autoriteti ynë i certifikimit është plotësisht i konfiguruar.

Në pjesën tjetër, do të flas për mënyrën se si do të punojmë me autoritetin e certifikimit për të realizuar atë që u përmend në pjesën e kaluar të artikullit.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster