Karanasan sa paggamit ng teknolohiya ng Rutoken para sa pagpaparehistro at pagpapahintulot sa mga user sa system (bahagi 2)

Magandang hapon Ipagpatuloy natin ang paksang itoAng nakaraang bahagi ay matatagpuan sa link).

Ngayon ay lumipat tayo sa praktikal na bahagi. Magsimula tayo sa pamamagitan ng pag-set up ng ating CA batay sa ganap na open source na cryptographic library na openSSL. Ang algorithm na ito ay nasubok gamit ang windows 7.

Sa naka-install na openSSL, maaari kaming magsagawa ng iba't ibang mga cryptographic na operasyon (tulad ng paggawa ng mga key at certificate) sa pamamagitan ng command line.

Ang algorithm ng mga aksyon ay ang mga sumusunod:

  1. I-download ang pamamahagi ng pag-install openssl-1.1.1g.
    Ang openSSL ay may iba't ibang bersyon. Ang dokumentasyon para sa Rutoken ay nagsabi na ang openSSL na bersyon 1.1.0 o mas bago ay kinakailangan. Gumamit ako ng openssl-1.1.1g na bersyon. Maaari mong i-download ang openSSL mula sa opisyal na site, ngunit para sa isang mas madaling pag-install, kailangan mong hanapin ang file ng pag-install para sa mga bintana sa net. Ginawa ko ito para sa iyo: slproweb.com/products/Win32OpenSSL.html
    Mag-scroll pababa sa pahina at i-download ang Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. I-install ang openssl-1.1.1g sa computer.
    Ang pag-install ay dapat isagawa ayon sa karaniwang landas, na awtomatikong ipinahiwatig sa C: Program Files folder. Ang programa ay mai-install sa OpenSSL-Win64 folder.
  3. Upang i-set up ang openSSL sa paraang kailangan mo, nariyan ang openssl.cfg file. Ang file na ito ay matatagpuan sa C:\Program Files\OpenSSL-Win64bin path kung nag-install ka ng openSSL gaya ng inilarawan sa nakaraang talata. Pumunta sa folder kung saan nakaimbak ang openssl.cfg at buksan ang file na ito gamit ang, halimbawa, Notepad++.
  4. Marahil ay nahulaan mo na ang awtoridad sa sertipikasyon ay mai-configure kahit papaano sa pamamagitan ng pagbabago ng mga nilalaman ng openssl.cfg file, at ikaw ay ganap na tama. Nangangailangan ito ng pagpapasadya ng [ ca ] command. Sa openssl.cfg file, ang simula ng teksto kung saan tayo gagawa ng mga pagbabago ay makikita bilang: [ ca ].
  5. Ngayon ay magbibigay ako ng isang halimbawa ng isang setting na may paglalarawan nito:
    [ 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
    

    Ngayon kailangan nating lumikha ng demoCA na direktoryo at mga subdirectory tulad ng ipinapakita sa halimbawa sa itaas. At ilagay ito sa direktoryo na ito kasama ang landas na tinukoy sa dir (mayroon akong /Users/username/bin/openSSLca/demoCA).

    Napakahalaga na baybayin nang tama ang dir - ito ang landas patungo sa direktoryo kung saan matatagpuan ang aming certification center. Ang direktoryo na ito ay dapat na matatagpuan sa /Users (iyon ay, sa account ng ilang user). Kung ilalagay mo ang direktoryo na ito, halimbawa, sa C: Program Files, hindi makikita ng system ang file na may mga setting ng openssl.cfg (kahit ganoon para sa akin).

    $dir - ang path na tinukoy sa dir ay pinapalitan dito.

    Ang isa pang mahalagang punto ay ang lumikha ng isang walang laman na index.txt file, kung wala ang file na ito, ang mga command na "openSSL ca ..." ay hindi gagana.

    Kailangan mo ring magkaroon ng serial file, root private key (ca.key), root certificate (ca.crt). Ang proseso ng pagkuha ng mga file na ito ay ilalarawan sa ibaba.

  6. Ikinonekta namin ang mga algorithm ng pag-encrypt na ibinigay ng Rutoken.
    Nagaganap ang koneksyon na ito sa openssl.cfg file.

    • Una sa lahat, kailangan mong i-download ang mga kinakailangang Rutoken algorithm. Ito ang mga file rtengine.dll, rtpkcs11ecp.dll.
      Upang gawin ito, i-download ang Rutoken SDK: www.rutoken.ru/developers/sdk.

      Ang Rutoken SDK ay mayroon lamang para sa mga developer na gustong subukan ang Rutoken. Mayroong parehong magkahiwalay na mga halimbawa para sa pagtatrabaho sa Rutoken sa iba't ibang mga programming language, at ang ilang mga aklatan ay ipinakita. Ang aming mga library rtengine.dll at rtpkcs11ecp.dll ay matatagpuan sa Rutoken sdk, ayon sa pagkakabanggit, sa lokasyon:

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

      Isang napakahalagang punto. Ang mga aklatan rtengine.dll, rtpkcs11ecp.dll ay hindi gumagana nang walang naka-install na driver para sa Rutoken. Gayundin ang Rutoken ay dapat na konektado sa computer. (para sa pag-install ng lahat ng kailangan mo para sa Rutoken, tingnan ang nakaraang bahagi ng artikulo habr.com/en/post/506450)

    • Ang rtengine.dll at rtpkcs11ecp.dll library ay maaaring itago saanman sa user account.
    • Sinusulat namin ang mga landas patungo sa mga aklatang ito sa openssl.cfg. Upang gawin ito, buksan ang openssl.cfg file, ilagay ang linya sa simula ng file na ito:
      openssl_conf = openssl_def

      Sa dulo ng file kailangan mong idagdag:

      [ 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 - dapat mong tukuyin ang iyong path sa rtengine.dll library.
      MODULE_PATH - kailangan mong itakda ang iyong landas sa rtpkcs11ecp.dll library.

  7. Pagdaragdag ng mga variable ng kapaligiran.

    Tiyaking magdagdag ng environment variable na tumutukoy sa path sa openssl.cfg configuration file. Sa aking kaso, ang OPENSSL_CONF variable ay nilikha gamit ang landas na C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Sa variable ng path, dapat mong tukuyin ang path sa folder kung saan matatagpuan ang openssl.exe, sa aking kaso ito ay: C: Program FilesOpenSSL-Win64bin.

  8. Ngayon ay maaari kang bumalik sa hakbang 5 at gawin ang mga nawawalang file para sa direktoryo ng demoCA.
    1. Ang unang mahalagang file kung wala ang walang gagana ay serial. Ito ay isang file na walang extension, ang halaga nito ay dapat na 01. Maaari mong likhain ang file na ito sa iyong sarili at isulat ang 01 sa loob. Maaari mo ring i-download ito mula sa Rutoken SDK kasama ang landas na sdk/openssl/rtengine/samples/tool/demoCA /.
      Ang direktoryo ng demoCA ay naglalaman ng serial file, na kung ano mismo ang kailangan namin.
    2. Gumawa ng root private key.
      Upang gawin ito, gagamitin namin ang openSSL library command, na dapat na direktang tumakbo sa command line:

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

    3. Gumawa kami ng root certificate.
      Upang gawin ito, gamitin ang sumusunod na openSSL library command:

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

      Pakitandaan na ang root private key, na nabuo sa nakaraang hakbang, ay kinakailangan upang makabuo ng root certificate. Samakatuwid, ang command line ay dapat na ilunsad sa parehong direktoryo.

    Ang lahat ay mayroon na ngayong lahat ng nawawalang file para sa kumpletong configuration ng demoCA directory. Ilagay ang mga nilikhang file sa mga direktoryo na ipinahiwatig sa punto 5.

Ipagpalagay namin na pagkatapos makumpleto ang lahat ng 8 puntos, ang aming certification center ay ganap na na-configure.

Sa susunod na bahagi, ilalarawan ko kung paano tayo makikipagtulungan sa awtoridad sa sertipikasyon upang maisakatuparan ang inilarawan sa ang naunang bahagi ng artikulo.

Pinagmulan: www.habr.com

Magdagdag ng komento