Искуство во користење на технологијата Рутокен за регистрирање и овластување корисници во системот (дел 2)

Добар ден Ајде да продолжиме да се занимаваме со оваа тема (Претходниот дел може да се најде на линкот).

Денеска да преминеме на практичниот дел. Да почнеме со поставување на вашиот авторитет за сертификати врз основа на полноправната криптографска библиотека со отворен код 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 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…“ нема да работат.

    Исто така, треба да имате сериска датотека, приватен клуч за root (ca.key) и root сертификат (ca.crt). Процесот на добивање на овие датотеки ќе биде опишан подолу.

  6. Овозможуваме алгоритми за шифрирање обезбедени од Rutoken.
    Оваа врска се јавува во датотеката openssl.cfg.
    • Пред сè, треба да ги преземете потребните алгоритми на Рутокен. Тоа се датотеките 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. Исто така, Рутокен мора да биде поврзан со компјутерот. (за инсталација на сè што е потребно за Рутокен, видете го претходниот дел од статијата habr.com/ru/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 внатре. /.
      Во директориумот demoCA има сериска датотека, што е токму она што ни треба.
    2. Создадете приватен клуч за root.
      За да го направите ова, ќе ја користиме командата openSSL библиотека, која мора да се изврши директно на командната линија:
      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. Направете root сертификат.
      За да го направите ова, ќе ја користиме следнава команда од библиотеката openSSL:
      openssl req -utf8 -x509 -key ca.key -out ca.crt

      Забележете дека за да креирате root сертификат, потребен ви е приватен клуч за root, кој беше креиран во претходниот чекор. Затоа, командната линија мора да биде лансирана во истиот директориум.

    Сите датотеки што недостасуваат за целосна конфигурација на директориумот demoCA сега се достапни. Поставете ги креираните датотеки во директориумите наведени во чекор 5.

Ќе претпоставиме дека по завршувањето на сите 8 точки, нашиот центар за сертификација е целосно конфигуриран.

Во следниот дел ќе ви кажам како ќе работиме со органот за сертификација за да го постигнеме она што беше опишано во претходниот дел од статијата.

Извор: www.habr.com

Купете доверлив хостинг за сајтови со DDoS заштита, VPS VDS сервери 🔥 Купете сигурен веб-хостинг со DDoS заштита, VPS VDS сервери | ProHoster