Përvojë në përdorimin e teknologjisë Rutoken për regjistrimin dhe autorizimin e përdoruesve në sistem (pjesa 2)

Mirembrema Le të vazhdojmë të merremi me këtë temë (Pjesën e mëparshme mund ta gjeni në link).

Sot le të kalojmë në pjesën praktike. Le të fillojmë duke vendosur autoritetin tuaj të certifikatës bazuar në bibliotekën e plotë kriptografike me burim të hapur openSSL. Ky algoritëm u testua duke përdorur Windows 7.

Me openSSL të instaluar, ne mund të kryejmë operacione të ndryshme kriptografike (të tilla si gjenerimi i çelësave dhe certifikatave) nëpërmjet linjës së komandës.

Algoritmi i veprimeve është si më poshtë:

  1. Shkarkoni shpërndarjen e instalimit openssl-1.1.1g.
    openSSL ka versione të ndryshme. Dokumentacioni për Rutoken deklaroi se kërkohet versioni openSSL 1.1.0 ose më i ri. Kam përdorur versionin openssl-1.1.1g. Mund të shkarkoni openSSL nga faqja zyrtare, por për një instalim më të lehtë duhet të gjeni skedarin e instalimit për Windows në internet. Unë bëra këtë për ju: slproweb.com/products/Win32OpenSSL.html
    Duhet të lëvizni në fund të faqes dhe të shkarkoni instaluesin Win64 OpenSSL v1.1.1g EXE 63MB.
  2. Instaloni openssl-1.1.1g në kompjuterin tuaj.
    Instalimi duhet të kryhet duke përdorur shtegun standard, i cili specifikohet automatikisht në dosjen C: Program Files. Programi do të instalohet në dosjen OpenSSL-Win64.
  3. Për të konfiguruar openSSL siç ju nevojitet, ekziston një skedar openssl.cfg. Ky skedar ndodhet në shtegun C:Program FilesOpenSSL-Win64bin nëse keni instaluar openSSL siç përshkruhet në paragrafin e mëparshëm. Shkoni te dosja ku ruhet openssl.cfg dhe hapeni këtë skedar duke përdorur, për shembull, Notepad++.
  4. Me siguri keni marrë me mend se konfigurimi i qendrës së certifikimit do të bëhet duke ndryshuar disi përmbajtjen e skedarit openssl.cfg, dhe keni absolutisht të drejtë. Për ta bërë këtë, duhet të konfiguroni komandën [ca]. Në skedarin openssl.cfg, fillimi i tekstit ku do të bëjmë ndryshime mund të gjendet si: [ca].
  5. Tani do të jap një shembull të një konfigurimi 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 ju duhet të krijoni drejtorinë dhe nëndrejtoritë demoCA, siç tregohet në shembullin e mësipërm. Dhe vendoseni në këtë direktori përgjatë shtegut të specifikuar në dir (kam /Users/username/bin/openSSLca/demoCA).

    Është shumë e rëndësishme të futni saktë dir - kjo është rruga drejt drejtorisë ku do të vendoset autoriteti ynë i certifikimit. Kjo direktori duhet të jetë e vendosur në /Users (domethënë në një llogari përdoruesi). Nëse e vendosni këtë drejtori, për shembull, në C: Program Files, sistemi nuk do ta shohë skedarin e cilësimeve openssl.cfg (të paktën kështu ishte për mua).

    $dir - shtegu i specifikuar në dir zëvendësohet këtu.

    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ë.

    Ju gjithashtu duhet të keni një skedar serial, një çelës privat rrënjësor (ca.key) dhe një certifikatë rrënjësore (ca.crt). Procesi i marrjes së këtyre skedarëve do të përshkruhet më poshtë.

  6. Ne aktivizojmë algoritmet e enkriptimit të ofruara nga Rutoken.
    Kjo lidhje ndodh në skedarin openssl.cfg.

    • Para së gjithash, duhet të shkarkoni algoritmet e nevojshme Rutoken. Këto janë skedarët rtengine.dll, rtpkcs11ecp.dll.
      Për ta bërë këtë, shkarkoni Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK është gjithçka që ekziston për zhvilluesit që duan të provojnë Rutoken. Ka shembuj individualë për të punuar me Rutoken në gjuhë të ndryshme programimi dhe janë paraqitur disa biblioteka. Bibliotekat tona rtengine.dll dhe rtpkcs11ecp.dll ndodhen në Rutoken sdk, përkatësisht në vendndodhjen:

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

      Një pikë shumë e rëndësishme. Bibliotekat rtengine.dll, rtpkcs11ecp.dll nuk funksionojnë pa drejtuesin e instaluar për Rutoken. Gjithashtu, Rutoken duhet të jetë i lidhur me kompjuterin. (për instalimin e gjithçkaje të nevojshme për Rutoken, shihni pjesën e mëparshme të artikullit habr.com/en/post/506450)

    • Bibliotekat rtengine.dll dhe rtpkcs11ecp.dll mund të mbahen kudo në llogarinë e përdoruesit.
    • Ne i regjistrojmë shtigjet drejt këtyre bibliotekave në openssl.cfg. Për ta bërë këtë, hapni skedarin openssl.cfg, në fillim të këtij skedari duhet të vendosni rreshtin:
      openssl_conf = openssl_def

      Në fund të skedarit duhet të shtoni:

      [ 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 – ju duhet të specifikoni rrugën tuaj për në bibliotekën rtengine.dll.
      MODULE_PATH - duhet të specifikoni rrugën tuaj për në bibliotekën rtpkcs11ecp.dll.

  7. Shtimi i variablave të mjedisit.

    Duhet të shtoni një variabël mjedisi që specifikon shtegun për në skedarin e konfigurimit openssl.cfg. Në rastin tim, ndryshorja OPENSSL_CONF u krijua me shtegun C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Variabla e rrugës duhet të përmbajë shtegun për në dosjen ku ndodhet openssl.exe, në rastin tim është: C:Program FilesOpenSSL-Win64bin.

  8. Tani mund të ktheheni në hapin 5 dhe të krijoni skedarët që mungojnë për direktorinë demoCA.
    1. Skedari i parë i rëndësishëm pa të cilin asgjë nuk do të funksionojë është serial. Ky është një skedar pa shtesë, vlera e të cilit duhet të jetë 01. Këtë skedar mund ta krijoni vetë dhe të shkruani 01 brenda. Mund ta shkarkoni gjithashtu nga Rutoken SDK përgjatë rrugës sdk/openssl/rtengine/samples/tool/demoCA /.
      Në drejtorinë demoCA ka një skedar serial, i cili është pikërisht ajo që na nevojitet.
    2. Krijo një çelës privat rrënjë.
      Për ta bërë këtë, ne do të përdorim komandën e bibliotekës openSSL, e cila duhet të ekzekutohet drejtpërdrejt në vijën e komandës:

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

    3. Krijoni një certifikatë rrënjësore.
      Për ta bërë këtë, ne do të përdorim komandën e mëposhtme nga biblioteka openSSL:

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

      Ju lutemi vini re se për të krijuar një certifikatë rrënjësore, ju nevojitet çelësi privat rrënjë, i cili u krijua në hapin e mëparshëm. Prandaj, linja e komandës duhet të hapet në të njëjtën direktori.

    Të gjithë skedarët që mungojnë për konfigurimin e plotë të drejtorisë demoCA janë tani në dispozicion. Vendosni skedarët e krijuar në drejtoritë e specifikuara në hapin 5.

Do të supozojmë se pas plotësimit të të 8 pikave, qendra jonë e certifikimit është plotësisht e konfiguruar.

Në pjesën tjetër do t'ju tregoj se si do të punojmë me autoritetin e certifikimit për të realizuar atë që u përshkrua në pjesa e mëparshme e artikullit.

Burimi: www.habr.com

Shto një koment