Pieredze Rutoken tehnoloģijas izmantošanā lietotāju reģistrēšanai un autorizācijai sistēmā (2. daļa)

Labdien Turpināsim šo tēmuIepriekšējo daļu var atrast saitē).

Šodien mēs pārejam uz praktisko daļu. Sāksim ar mūsu CA iestatīšanu, pamatojoties uz pilnvērtīgu atvērtā koda kriptogrāfijas bibliotēku openSSL. Šis algoritms ir pārbaudīts, izmantojot Windows 7.

Ja ir instalēts openSSL, mēs varam veikt dažādas kriptogrāfijas darbības (piemēram, izveidot atslēgas un sertifikātus), izmantojot komandrindu.

Darbību algoritms ir šāds:

  1. Lejupielādējiet instalācijas izplatīšanu openssl-1.1.1g.
    OpenSSL ir dažādas versijas. Rutoken dokumentācijā teikts, ka ir nepieciešama openSSL versija 1.1.0 vai jaunāka versija. Es izmantoju openssl-1.1.1g versiju. OpenSSL var lejupielādēt no oficiālās vietnes, taču, lai atvieglotu instalēšanu, tīklā jāatrod Windows instalācijas fails. Es to izdarīju jūsu labā: slproweb.com/products/Win32OpenSSL.html
    Ritiniet lapu uz leju un lejupielādējiet Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Instalējiet datorā openssl-1.1.1g.
    Instalēšana jāveic saskaņā ar standarta ceļu, kas automātiski tiek norādīts mapē C: Program Files. Programma tiks instalēta mapē OpenSSL-Win64.
  3. Lai iestatītu openSSL tā, kā tas jums nepieciešams, ir fails openssl.cfg. Šis fails atrodas ceļā C:\Program Files\OpenSSL-Win64bin, ja instalējāt openSSL, kā aprakstīts iepriekšējā punktā. Dodieties uz mapi, kurā ir saglabāts openssl.cfg, un atveriet šo failu, izmantojot, piemēram, Notepad++.
  4. Jūs droši vien uzminējāt, ka sertifikācijas iestāde tiks kaut kā konfigurēta, mainot faila openssl.cfg saturu, un jums ir pilnīga taisnība. Tam ir jāpielāgo komanda [ ca ]. Failā openssl.cfg teksta sākums, kurā veiksim izmaiņas, ir atrodams šādi: [ ca ].
  5. Tagad es sniegšu iestatījuma piemēru ar tā aprakstu:
    [ 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
    

    Tagad mums ir jāizveido demoCA direktorijs un apakšdirektoriji, kā parādīts iepriekš minētajā piemērā. Un ievietojiet to šajā direktorijā pa ceļu, kas norādīts dir (man ir /Users/username/bin/openSSLca/demoCA).

    Ir ļoti svarīgi pareizi uzrakstīt dir — tas ir ceļš uz direktoriju, kurā atradīsies mūsu sertifikācijas centrs. Šim direktorijam ir jāatrodas mapē /Users (tas ir, kāda lietotāja kontā). Ja ievietosi šo direktoriju, piemēram, C: Program Files, sistēma neredzēs failu ar openssl.cfg iestatījumiem (vismaz man tā bija).

    $dir - šeit tiek aizstāts dir norādītais ceļš.

    Vēl viens svarīgs punkts ir izveidot tukšu failu index.txt, bez šī faila komandas “openSSL ca…” nedarbosies.

    Jums ir jābūt arī sērijas failam, saknes privātajai atslēgai (ca.key), saknes sertifikātam (ca.crt). Šo failu iegūšanas process tiks aprakstīts tālāk.

  6. Mēs savienojam Rutoken nodrošinātos šifrēšanas algoritmus.
    Šis savienojums notiek failā openssl.cfg.

    • Pirmkārt, jums ir jālejupielādē nepieciešamie Rutoken algoritmi. Tie ir faili rtengine.dll, rtpkcs11ecp.dll.
      Lai to izdarītu, lejupielādējiet Rutoken SDK: www.rutoken.ru/developers/sdk.

      Rutoken SDK ir viss, kas ir paredzēts izstrādātājiem, kuri vēlas izmēģināt Rutoken. Ir gan atsevišķi piemēri darbam ar Rutoken dažādās programmēšanas valodās, gan dažas bibliotēkas. Mūsu bibliotēkas rtengine.dll un rtpkcs11ecp.dll atrodas attiecīgi Rutoken sdk šādā vietā:

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

      Ļoti svarīgs punkts. Bibliotēkas rtengine.dll, rtpkcs11ecp.dll nedarbojas bez instalētā Rutoken draivera. Arī Rutoken jābūt savienotam ar datoru. (lai instalētu visu nepieciešamo Rutoken, skatiet raksta iepriekšējo daļu habr.com/en/post/506450)

    • Bibliotēkas rtengine.dll un rtpkcs11ecp.dll var saglabāt jebkurā lietotāja konta vietā.
    • Mēs ierakstām ceļus uz šīm bibliotēkām vietnē openssl.cfg. Lai to izdarītu, atveriet failu openssl.cfg, ievietojiet rindiņu šī faila sākumā:
      openssl_conf = openssl_def

      Faila beigās jums jāpievieno:

      [ 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 — jānorāda ceļš uz bibliotēku rtengine.dll.
      MODULE_PATH — jums jāieraksta ceļš uz bibliotēku rtpkcs11ecp.dll.

  7. Vides mainīgo pievienošana.

    Noteikti pievienojiet vides mainīgo, kas norāda ceļu uz openssl.cfg konfigurācijas failu. Manā gadījumā mainīgais OPENSSL_CONF tika izveidots ar ceļu C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Ceļa mainīgajā ir jānorāda ceļš uz mapi, kurā atrodas openssl.exe, manā gadījumā tas ir: C: Program FilesOpenSSL-Win64bin.

  8. Tagad varat atgriezties pie 5. darbības un izveidot trūkstošos failus demoCA direktorijai.
    1. Pirmais svarīgais fails, bez kura nekas nedarbosies, ir seriāls. Šis ir fails bez paplašinājuma, kura vērtībai jābūt 01. Šo failu var izveidot pats un iekšā ierakstīt 01. To var arī lejupielādēt no Rutoken SDK pa ceļu sdk/openssl/rtengine/samples/tool/demoCA /.
      DemoCA direktorijā ir sērijas fails, kas ir tieši tas, kas mums nepieciešams.
    2. Izveidojiet saknes privāto atslēgu.
      Lai to izdarītu, mēs izmantosim openSSL bibliotēkas komandu, kas jāpalaiž tieši komandrindā:

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

    3. Mēs izveidojam saknes sertifikātu.
      Lai to izdarītu, izmantojiet šo openSSL bibliotēkas komandu:

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

      Lūdzu, ņemiet vērā, ka saknes sertifikāta ģenerēšanai ir nepieciešama saknes privātā atslēga, kas tika ģenerēta iepriekšējā darbībā. Tāpēc komandrinda ir jāpalaiž tajā pašā direktorijā.

    Tagad visam ir visi trūkstošie faili pilnīgai demoCA direktorija konfigurācijai. Novietojiet izveidotos failus 5. punktā norādītajos direktorijos.

Mēs pieņemsim, ka pēc visu 8 punktu aizpildīšanas mūsu sertifikācijas centrs ir pilnībā konfigurēts.

Nākamajā daļā es aprakstīšu, kā mēs sadarbosimies ar sertifikācijas iestādi, lai paveiktu to, kas aprakstīts raksta iepriekšējā daļa.

Avots: www.habr.com

Pievieno komentāru