Համակարգում օգտվողների գրանցման և լիազորման համար Rutoken տեխնոլոգիայի օգտագործման փորձ (մաս 2)

Բարի օր Շարունակենք այս թեմայովՆախորդ մասը կարող եք գտնել հղումով).

Այսօր մենք անցնում ենք գործնական մասին։ Եկեք սկսենք ստեղծելով մեր CA-ն՝ հիմնվելով բաց կոդով բաց կոդով ծածկագրման ամբողջական openSSL գրադարանի վրա: Այս ալգորիթմը փորձարկվել է Windows 7-ի միջոցով:

Տեղադրված openSSL-ի դեպքում մենք կարող ենք կատարել տարբեր գաղտնագրային գործողություններ (օրինակ՝ բանալիների և վկայագրերի ստեղծում) հրամանի տողի միջոցով:

Գործողությունների ալգորիթմը հետևյալն է.

  1. Ներբեռնեք տեղադրման բաշխումը openssl-1.1.1g:
    openSSL-ն ունի տարբեր տարբերակներ։ Rutoken-ի փաստաթղթերում ասվում է, որ պահանջվում է openSSL 1.1.0 կամ ավելի նոր տարբերակ: Ես օգտագործել եմ openssl-1.1.1g տարբերակը։ Դուք կարող եք ներբեռնել openSSL-ը պաշտոնական կայքից, բայց ավելի հեշտ տեղադրման համար անհրաժեշտ է ցանցում գտնել Windows-ի տեղադրման ֆայլը: Ես արեցի սա ձեզ համար. slproweb.com/products/Win32OpenSSL.html
    Ոլորեք էջը ներքև և ներբեռնեք Win64 OpenSSL v1.1.1g EXE 63MB տեղադրիչը:
  2. Տեղադրեք openssl-1.1.1g համակարգչում:
    Տեղադրումը պետք է իրականացվի ստանդարտ ուղու համաձայն, որն ավտոմատ կերպով նշված է C: Program Files թղթապանակում: Ծրագիրը կտեղադրվի OpenSSL-Win64 թղթապանակում։
  3. Որպեսզի կարգավորեք openSSL-ը, ինչպես ձեզ անհրաժեշտ է, կա openssl.cfg ֆայլ: Այս ֆայլը գտնվում է C:\Program Files\OpenSSL-Win64bin ճանապարհում, եթե դուք տեղադրել եք openSSL-ը, ինչպես նկարագրված է նախորդ պարբերությունում: Գնացեք այն թղթապանակը, որտեղ պահվում է openssl.cfg-ը և բացեք այս ֆայլը՝ օգտագործելով, օրինակ, Notepad++:
  4. Դուք հավանաբար կռահեցիք, որ սերտիֆիկացման մարմինը ինչ-որ կերպ կկարգավորվի՝ փոխելով openssl.cfg ֆայլի բովանդակությունը, և միանգամայն իրավացի եք: Սա պահանջում է [ ca ] հրամանի հարմարեցում: Openssl.cfg ֆայլում տեքստի սկիզբը, որտեղ մենք փոփոխություններ ենք անելու, կարելի է գտնել հետևյալ կերպ՝ [ ca ]:
  5. Այժմ ես կտամ պարամետրի օրինակ իր նկարագրությամբ.
    [ 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
    

    Այժմ մենք պետք է ստեղծենք demoCA գրացուցակը և ենթատեղեկատուները, ինչպես ցույց է տրված վերևի օրինակում: Եվ տեղադրեք այն այս գրացուցակում dir-ում նշված ճանապարհի երկայնքով (ես ունեմ /Users/username/bin/openSSLca/demoCA):

    Շատ կարևոր է dir-ը ճիշտ գրել. սա այն գրացուցակի ուղին է, որտեղ կգտնվի մեր հավաստագրման կենտրոնը: Այս գրացուցակը պետք է գտնվի /Users-ում (այսինքն՝ որոշ օգտվողի հաշվում): Եթե ​​այս գրացուցակը տեղադրեք, օրինակ, C: Program Files-ում, ապա համակարգը չի տեսնի openssl.cfg կարգավորումներով ֆայլը (համենայնդեպս ինձ համար այդպես էր):

    $dir - dir-ում նշված ուղին փոխարինված է այստեղ:

    Մեկ այլ կարևոր կետ՝ ստեղծել դատարկ index.txt ֆայլ, առանց այս ֆայլի «openSSL ca…» հրամանները չեն աշխատի:

    Դուք նաև պետք է ունենաք սերիական ֆայլ, արմատային անձնական բանալի (ca.key), արմատային վկայագիր (ca.crt): Այս ֆայլերի ստացման գործընթացը կներկայացվի ստորև:

  6. Մենք միացնում ենք Rutoken-ի կողմից տրամադրված գաղտնագրման ալգորիթմները:
    Այս կապը տեղի է ունենում openssl.cfg ֆայլում:

    • Առաջին հերթին անհրաժեշտ է ներբեռնել Rutoken-ի անհրաժեշտ ալգորիթմները։ Սրանք rtengine.dll, rtpkcs11ecp.dll ֆայլերն են:
      Դա անելու համար ներբեռնեք Rutoken SDK-ն. www.rutoken.ru/developers/sdk.

      Rutoken SDK-ն այն ծրագրավորողների համար է, ովքեր ցանկանում են փորձել Rutoken-ը: Կան երկու առանձին օրինակներ Rutoken-ի հետ աշխատելու տարբեր ծրագրավորման լեզուներով, և ներկայացված են որոշ գրադարաններ։ Մեր գրադարանները rtengine.dll և rtpkcs11ecp.dll գտնվում են Rutoken sdk-ում, համապատասխանաբար, այն վայրում.

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

      Շատ կարևոր կետ. rtengine.dll, rtpkcs11ecp.dll գրադարանները չեն աշխատում առանց Rutoken-ի համար տեղադրված դրայվերի: Նաև Rutoken-ը պետք է միացված լինի համակարգչին։ (Rutoken-ի համար անհրաժեշտ ամեն ինչ տեղադրելու համար տե՛ս հոդվածի նախորդ մասը habr.com/en/post/506450)

    • rtengine.dll և rtpkcs11ecp.dll գրադարանները կարող են պահվել օգտատիրոջ հաշվի ցանկացած վայրում:
    • Մենք գրում ենք դեպի այս գրադարանների ուղիները openssl.cfg-ում: Դա անելու համար բացեք openssl.cfg ֆայլը, դրեք տողը այս ֆայլի սկզբում.
      openssl_conf = openssl_def

      Ֆայլի վերջում դուք պետք է ավելացնեք.

      [ 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 - դուք պետք է նշեք ձեր ուղին դեպի rtengine.dll գրադարան:
      MODULE_PATH - դուք պետք է սահմանեք ձեր ճանապարհը դեպի rtpkcs11ecp.dll գրադարան:

  7. Շրջակա միջավայրի փոփոխականների ավելացում:

    Համոզվեք, որ ավելացրեք շրջակա միջավայրի փոփոխական, որը սահմանում է դեպի openssl.cfg կազմաձևման ֆայլի ուղին: Իմ դեպքում, OPENSSL_CONF փոփոխականը ստեղծվել է C:Program FilesOpenSSL-Win64binopenssl.cfg ճանապարհով:

    Path փոփոխականում դուք պետք է նշեք ուղին դեպի այն թղթապանակը, որտեղ գտնվում է openssl.exe-ն, իմ դեպքում դա է՝ C: Program FilesOpenSSL-Win64bin:

  8. Այժմ կարող եք վերադառնալ քայլ 5 և ստեղծել բացակայող ֆայլերը demoCA գրացուցակի համար:
    1. Առաջին կարևոր ֆայլը, առանց որի ոչինչ չի աշխատի, սերիալն է: Սա ֆայլ է առանց ընդլայնման, որի արժեքը պետք է լինի 01: Դուք կարող եք ինքներդ ստեղծել այս ֆայլը և ներսում գրել 01: Կարող եք նաև ներբեռնել այն Rutoken SDK-ից sdk/openssl/rtengine/samples/tool/demoCA ճանապարհով: /.
      DemoCA գրացուցակը պարունակում է սերիական ֆայլ, որը հենց այն է, ինչ մեզ անհրաժեշտ է:
    2. Ստեղծեք արմատային անձնական բանալի:
      Դա անելու համար մենք կօգտագործենք openSSL գրադարանի հրամանը, որը պետք է գործարկվի անմիջապես հրամանի տողում.

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

    3. Մենք ստեղծում ենք արմատային վկայագիր:
      Դա անելու համար օգտագործեք հետևյալ openSSL գրադարանի հրամանը.

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

      Խնդրում ենք նկատի ունենալ, որ արմատային անձնական բանալին, որը ստեղծվել է նախորդ քայլում, անհրաժեշտ է արմատային վկայագրի ստեղծման համար: Հետևաբար, հրամանի տողը պետք է գործարկվի նույն գրացուցակում:

    Այժմ ամեն ինչ ունի բոլոր բացակայող ֆայլերը demoCA գրացուցակի ամբողջական կազմաձևման համար: Ստեղծված ֆայլերը տեղադրեք 5-րդ կետում նշված գրացուցակներում։

Մենք կենթադրենք, որ բոլոր 8 կետերն ավարտելուց հետո մեր սերտիֆիկացման կենտրոնը լիովին կազմաձևված է:

Հաջորդ մասում ես նկարագրելու եմ, թե ինչպես ենք մենք աշխատելու սերտիֆիկացման մարմնի հետ, որպեսզի իրականացնենք այն, ինչ նկարագրված է. հոդվածի նախորդ մասը.

Source: www.habr.com

Добавить комментарий