Жүйедегі пайдаланушыларды тіркеу және авторизациялау үшін Rutoken технологиясын пайдалану тәжірибесі (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 орнатушысын жүктеп алуыңыз керек.
  2. Компьютерге openssl-1.1.1g орнатыңыз.
    Орнату C: Program Files қалтасында автоматты түрде көрсетілген стандартты жолды пайдаланып жүзеге асырылуы керек. Бағдарлама OpenSSL-Win64 қалтасында орнатылады.
  3. OpenSSL параметрін қажетінше конфигурациялау үшін openssl.cfg файлы бар. Алдыңғы абзацта сипатталғандай openSSL орнатқан болсаңыз, бұл файл C:Program FilesOpenSSL-Win64bin жолында орналасқан. 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 компьютерге қосылған болуы керек. (Рутокенге қажеттінің барлығын орнату үшін мақаланың алдыңғы бөлігін қараңыз 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 library пәрменін қолданамыз:

      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 тармақты толтырғаннан кейін біздің сертификаттау орталығымыз толық конфигурацияланды деп есептейміз.

Келесі бөлімде мен сізге осы құжатта сипатталған нәрсені орындау үшін сертификаттау орталығымен қалай жұмыс істейтінімізді айтамын. мақаланың алдыңғы бөлігі.

Ақпарат көзі: www.habr.com

пікір қалдыру