Вопыт прымянення тэхналогіі Рутокен для рэгістрацыі і аўтарызацыі карыстальнікаў у сістэме (частка 2)

Добры дзень! Працягнем разбірацца з дадзенай тэмай (з папярэдняй часткай можна азнаёміцца ​​па спасылцы).

Сёння пяройдзем да практычнай часткі. Пачнём з налады свайго які сведчыць цэнтра на аснове паўнавартаснай крыптаграфічнай бібліятэкі з адчыненым зыходным кодам openSSL. Дадзены алгарытм быў правераны з выкарыстаннем windows 7.

Усталяваўшы openSSL, мы можам выконваць розныя крыптаграфічныя аперацыі (напрыклад, стварэнне ключоў і сертыфікатаў) праз камандны радок.

Алгарытм дзеянняў наступны:

  1. Спампоўваем усталявальны дыстрыбутыў openssl-1.1.1g.
    У openSSL ёсць розныя версіі. У дакументацыі да Рутакена было сказанае, што неабходная версія openSSL версіі 1.1.0 ці навей. Я выкарыстоўваў версію openssl-1.1.1g. Можна спампаваць openSSL з афіцыйнага сайта, але для прасцейшай усталёўкі неабходна знайсці ўсталявальны файл для windows у сеткі. Я гэта зрабіў за вас: slproweb.com/products/Win32OpenSSL.html
    Неабходна прагартаць уніз старонкі і спампаваць Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Усталеўваны openssl-1.1.1g на кампутар.
    Усталяванне неабходна правесці па стандартным шляху, які паказваецца аўтаматычна ў тэчку C:Program Files. Праграма ўсталюецца ў тэчку OpenSSL-Win64.
  3. Для таго, каб наладзіць openSSL, так як вам трэба, існуе файл openssl.cfg. Гэты файл размешчаны ў шляху C:Program FilesOpenSSL-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..." не будуць працаваць.

    Таксама неабходна мець файл serial, каранёвы прыватны ключ (ca.key), каранёвы сертыфікат (ca.crt). Працэс атрымання гэтых файлаў будзе апісаны далей.

  6. Падлучальны алгарытмы шыфравання якія прадстаўляюцца Рутокеном.
    Гэта падлучэнне адбываецца ў файле openssl.cfg.

    • Першым чынам патрабуецца запампаваць неабходныя алгарытмы Рутакена. Гэта файлы rtengine.dll, rtpkcs11ecp.dll.
      Для гэтага спампоўваем Рутокен SDK: www.rutoken.ru/developers/sdk.

      Рутокен SDK - гэта ўсё, што ёсць для распрацоўшчыкаў, якія хочуць апрабаваць Рутокен. Там ёсць як асобныя прыклады для працы з Рутакенам на розных мовах праграмавання, так і прадстаўлены некаторыя бібліятэкі. Нашы бібліятэкі rtengine.dll і rtpkcs11ecp.dll знаходзяцца ў Рутокен sdk адпаведна па размяшчэнні:

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

      Вельмі важны момант. Бібліятэкі rtengine.dll, rtpkcs11ecp.dll не працуюць без устаноўленага драйвера для Рутокена. Таксама Рутакен абавязкова павінен быць падлучаны да кампутара. (пра ўстаноўку ўсяго неабходнага для Рутокен глядзі ў папярэдняй частцы артыкула habr.com/be/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. Першы важны файл без якога нічога не будзе працаваць - serial. Гэта файл без пашырэння, значэнне якога павінна быць 01. Можна стварыць гэты файл самастойна і прапісаць унутр 01. Таксама можна спампаваць яго з Рутокен SDK па шляху sdk/openssl/rtengine/samples/tool/demoCA/.
      У каталогу demoCA ляжыць файл serial, які нам як раз і патрэбен.
    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 пунктаў наш які сведчыць цэнтр цалкам наладжаны.

У наступнай частцы я раскажу, якім чынам мы будзем працаваць з які сведчыць цэнтрам, каб выканаць тое, што было апісана ў папярэдняй часткі артыкула.

Крыніца: habr.com

Дадаць каментар