Sperto pri uzado de Rutoken-teknologio por registri kaj rajtigi uzantojn en la sistemo (parto 2)

Bonan posttagmezon Ni daŭrigu kun ĉi tiu temoLa antaŭa parto troveblas ĉe la ligilo).

Hodiaŭ ni transiras al la praktika parto. Ni komencu agordante nian CA bazitan sur la plenrajta malfermfonta kripta biblioteko openSSL. Ĉi tiu algoritmo estis provita per Windows 7.

Kun openSSL instalita, ni povas fari diversajn kriptografajn operaciojn (kiel ekzemple kreado de ŝlosiloj kaj atestiloj) per la komandlinio.

La algoritmo de agoj estas jene:

  1. Elŝutu la instalan distribuon openssl-1.1.1g.
    openSSL havas malsamajn versiojn. La dokumentaro por Rutoken diris, ke openSSL-versio 1.1.0 aŭ pli nova estas postulata. Mi uzis openssl-1.1.1g-version. Vi povas elŝuti openSSL de la oficiala retejo, sed por pli facila instalado, vi devas trovi la instalan dosieron por fenestroj en la reto. Mi faris ĉi tion por vi: slproweb.com/products/Win32OpenSSL.html
    Rulumu malsupren la paĝon kaj elŝutu Win64 OpenSSL v1.1.1g EXE 63MB Instalilon.
  2. Instalu openssl-1.1.1g sur la komputilo.
    Instalado devas esti farita laŭ la norma vojo, kiu estas aŭtomate indikita en la dosierujo C: Program Files. La programo estos instalita en la dosierujo OpenSSL-Win64.
  3. Por agordi openSSL kiel vi bezonas ĝin, ekzistas la openssl.cfg dosiero. Ĉi tiu dosiero troviĝas en la vojo C:\Program Files\OpenSSL-Win64bin se vi instalis openSSL kiel priskribite en la antaŭa alineo. Iru al la dosierujo kie openssl.cfg estas konservita kaj malfermu ĉi tiun dosieron uzante, ekzemple, Notepad++.
  4. Vi verŝajne divenis, ke la atestadaŭtoritato estos agordita iel ŝanĝante la enhavon de la openssl.cfg dosiero, kaj vi tute pravas. Ĉi tio postulas personigon de la [ ca ] komando. En la openssl.cfg dosiero, la komenco de la teksto, kie ni faros ŝanĝojn, troviĝas kiel: [ ca ].
  5. Nun mi donos ekzemplon de agordo kun ĝia priskribo:
    [ 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
    

    Nun ni devas krei la demoCA-dosierujon kaj subdosierujojn kiel montrite en la supra ekzemplo. Kaj metu ĝin en ĉi tiun dosierujon laŭ la vojo kiu estas specifita en dir (mi havas /Users/username/bin/openSSLca/demoCA).

    Estas tre grave literumi dir-korekte - ĉi tiu estas la vojo al la dosierujo, kie troviĝos nia atesta centro. Ĉi tiu dosierujo devas troviĝi en /Uzantoj (tio estas, en la konto de iu uzanto). Se vi metas ĉi tiun dosierujon, ekzemple, en C: Program Files, la sistemo ne vidos la dosieron kun la agordoj openssl.cfg (almenaŭ tiel estis por mi).

    $dir - la vojo specifita en dir estas anstataŭigita ĉi tie.

    Alia grava punkto estas krei malplenan index.txt-dosieron, sen ĉi tiu dosiero la "openSSL ca..." komandoj ne funkcios.

    Vi ankaŭ devas havi serian dosieron, radikan privatan ŝlosilon (ca.key), radikan atestilon (ca.crt). La procezo por akiri ĉi tiujn dosierojn estos priskribita sube.

  6. Ni konektas la ĉifrajn algoritmojn provizitajn de Rutoken.
    Ĉi tiu konekto okazas en la dosiero openssl.cfg.

    • Antaŭ ĉio, vi devas elŝuti la necesajn Rutoken-algoritmojn. Ĉi tiuj estas la dosieroj rtengine.dll, rtpkcs11ecp.dll.
      Por fari tion, elŝutu la Rutoken SDK: www.rutoken.ru/developers/sdk.

      La Rutoken SDK estas ĉio, kio estas por programistoj, kiuj volas provi Rutoken. Estas ambaŭ apartaj ekzemploj por labori kun Rutoken en malsamaj programlingvoj, kaj kelkaj bibliotekoj estas prezentitaj. Niaj bibliotekoj rtengine.dll kaj rtpkcs11ecp.dll situas en la Rutoken sdk, respektive, ĉe la loko:

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

      Tre grava punkto. Bibliotekoj rtengine.dll, rtpkcs11ecp.dll ne funkcias sen la instalita pelilo por Rutoken. Ankaŭ Rutoken devas esti konektita al la komputilo. (por instali ĉion, kion vi bezonas por Rutoken, vidu la antaŭan parton de la artikolo habr.com/en/post/506450)

    • La bibliotekoj rtengine.dll kaj rtpkcs11ecp.dll povas esti konservitaj ie ajn en la uzantkonto.
    • Ni skribas la vojojn al ĉi tiuj bibliotekoj en openssl.cfg. Por fari tion, malfermu la openssl.cfg dosieron, metu la linion komence de ĉi tiu dosiero:
      openssl_conf = openssl_def

      Ĉe la fino de la dosiero vi devas aldoni:

      [ 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 - vi devas specifi vian vojon al la biblioteko rtengine.dll.
      MODULE_PATH - vi devas skribi vian vojon al la biblioteko rtpkcs11ecp.dll.

  7. Aldonante mediajn variablojn.

    Nepre aldonu mediovariablon, kiu specifas la vojon al la agorda dosiero openssl.cfg. En mia kazo, la variablo OPENSSL_CONF estis kreita kun la vojo C:Program FilesOpenSSL-Win64binopenssl.cfg.

    En la vojo variablo, vi devas specifi la vojon al la dosierujo kie openssl.exe situas, en mia kazo ĝi estas: C: Program FilesOpenSSL-Win64bin.

  8. Nun vi povas reiri al paŝo 5 kaj krei la mankantajn dosierojn por la dosierujo demoCA.
    1. La unua grava dosiero sen kiu nenio funkcios estas seria. Ĉi tio estas dosiero sen etendo, kies valoro devus esti 01. Vi povas mem krei ĉi tiun dosieron kaj skribi interne 01. Vi ankaŭ povas elŝuti ĝin de la Rutoken SDK laŭ la vojo sdk/openssl/rtengine/samples/tool/demoCA. /.
      La dosierujo demoCA enhavas la serian dosieron, kiu estas ĝuste tio, kion ni bezonas.
    2. Kreu radikan privatan ŝlosilon.
      Por fari tion, ni uzos la openSSL-bibliotekan komandon, kiu devas esti rulita rekte sur la komandlinio:

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

    3. Ni kreas radikan atestilon.
      Por fari tion, uzu la jenan openSSL-bibliotekan komandon:

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

      Bonvolu noti, ke la radika privata ŝlosilo, kiu estis generita en la antaŭa paŝo, estas bezonata por generi la radikan atestilon. Tial, la komandlinio devas esti lanĉita en la sama dosierujo.

    Ĉio nun havas ĉiujn mankantajn dosierojn por la kompleta agordo de la dosierujo demoCA. Metu la kreitajn dosierojn en la dosierujojn indikitajn en la punkto 5.

Ni supozos, ke post kompletigado de ĉiuj 8 poentoj, nia atestadcentro estas plene agordita.

En la sekva parto, mi priskribos kiel ni laboros kun la atestadaŭtoritato por plenumi tion, kio estis priskribita en la antaŭa parto de la artikolo.

fonto: www.habr.com

Aldoni komenton