Системада колдонуучуларды каттоо жана авторизациялоо үчүн Rutoken технологиясын колдонуу тажрыйбасы (2-бөлүк)

Кутмандуу күнүң менен! Бул теманы уланталыМурунку бөлүгүн шилтемеден тапса болот).

Бүгүн биз практикалык бөлүгүнө өтөбүз. Келгиле, толук кандуу ачык булактуу криптографиялык китепкана openSSL негизинде биздин CA орнотуудан баштайлы. Бул алгоритм 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).

    Дирди туура жазуу абдан маанилүү - бул биздин сертификация борбору жайгашкан каталогдун жолу. Бул каталог /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 жолу менен түзүлгөн.

    Жол өзгөрмөсүндө 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

Комментарий кошуу