Tizimda foydalanuvchilarni ro'yxatdan o'tkazish va avtorizatsiya qilish uchun Rutoken texnologiyasidan foydalanish tajribasi (2-qism)

Hayrli kun! Keling, ushbu mavzuni davom ettiramizOldingi qismni havolada topishingiz mumkin).

Bugun biz amaliy qismga o'tamiz. Keling, to'liq huquqli ochiq kodli openSSL kriptografik kutubxonasi asosida CAni o'rnatishdan boshlaylik. Ushbu algoritm Windows 7 yordamida sinovdan o'tgan.

OpenSSL o'rnatilgan bo'lsa, biz buyruq qatori orqali turli kriptografik operatsiyalarni (masalan, kalitlar va sertifikatlar yaratish) amalga oshirishimiz mumkin.

Amallar algoritmi quyidagicha:

  1. Openssl-1.1.1g o'rnatish taqsimotini yuklab oling.
    openSSL turli versiyalarga ega. Rutoken uchun hujjatlarda aytilishicha, openSSL 1.1.0 yoki undan yangiroq versiyasi talab qilinadi. Men openssl-1.1.1g versiyasidan foydalandim. OpenSSL-ni rasmiy saytdan yuklab olishingiz mumkin, ammo o'rnatish osonroq bo'lishi uchun tarmoqdagi Windows uchun o'rnatish faylini topishingiz kerak. Men buni siz uchun qildim: slproweb.com/products/Win32OpenSSL.html
    Sahifani pastga aylantiring va Win64 OpenSSL v1.1.1g EXE 63MB Installer dasturini yuklab oling.
  2. Openssl-1.1.1g ni kompyuterga o'rnating.
    O'rnatish C: Program Files papkasida avtomatik ravishda ko'rsatilgan standart yo'lga muvofiq amalga oshirilishi kerak. Dastur OpenSSL-Win64 jildiga o'rnatiladi.
  3. OpenSSLni kerakli tarzda sozlash uchun openssl.cfg fayli mavjud. Agar oldingi xatboshida ta'riflanganidek openSSL o'rnatgan bo'lsangiz, ushbu fayl C:\Program Files\OpenSSL-Win64bin yo'lida joylashgan. openssl.cfg saqlanadigan papkaga o'ting va ushbu faylni, masalan, Notepad++ yordamida oching.
  4. Ehtimol, siz sertifikatlashtirish organi openssl.cfg faylining mazmunini o'zgartirish orqali qandaydir tarzda sozlanishini taxmin qilgandirsiz va siz mutlaqo haqsiz. Bu [ ca ] buyrug'ini moslashtirishni talab qiladi. Openssl.cfg faylida biz o'zgartirishlar kiritadigan matnning boshini quyidagicha topish mumkin: [ ca ].
  5. Endi men uning tavsifi bilan sozlamaga misol keltiraman:
    [ 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
    

    Endi biz yuqoridagi misolda ko'rsatilganidek, demoCA katalogini va pastki kataloglarini yaratishimiz kerak. Va uni ushbu katalogga dir-da ko'rsatilgan yo'l bo'ylab joylashtiring (menda /Users/username/bin/openSSLca/demoCA bor).

    Dirni to'g'ri yozish juda muhim - bu bizning sertifikatlashtirish markazimiz joylashgan katalogga yo'l. Ushbu katalog /Users (ya'ni, ba'zi foydalanuvchining hisob qaydnomasida) joylashgan bo'lishi kerak. Agar siz ushbu katalogni, masalan, C: Program Files-ga joylashtirsangiz, tizim openssl.cfg sozlamalari bilan faylni ko'rmaydi (hech bo'lmaganda men uchun shunday edi).

    $dir - bu erda dir-da ko'rsatilgan yo'l almashtiriladi.

    Yana bir muhim nuqta - bo'sh index.txt faylini yaratish, bu faylsiz "openSSL ca ..." buyruqlari ishlamaydi.

    Shuningdek, sizda ketma-ket fayl, ildiz shaxsiy kaliti (ca.key), ildiz sertifikati (ca.crt) bo'lishi kerak. Ushbu fayllarni olish jarayoni quyida tavsiflanadi.

  6. Biz Rutoken tomonidan taqdim etilgan shifrlash algoritmlarini bog'laymiz.
    Bu ulanish openssl.cfg faylida amalga oshiriladi.

    • Avvalo, kerakli Rutoken algoritmlarini yuklab olishingiz kerak. Bu rtengine.dll, rtpkcs11ecp.dll fayllari.
      Buning uchun Rutoken SDK-ni yuklab oling: www.rutoken.ru/developers/sdk.

      Rutoken SDK - bu Rutokenni sinab ko'rmoqchi bo'lgan ishlab chiquvchilar uchun hamma narsa. Turli xil dasturlash tillarida Rutoken bilan ishlash uchun alohida misollar mavjud va ba'zi kutubxonalar taqdim etiladi. Bizning rtengine.dll va rtpkcs11ecp.dll kutubxonalarimiz mos ravishda Rutoken sdk da joylashgan:

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

      Juda muhim nuqta. Rtengine.dll, rtpkcs11ecp.dll kutubxonalari Rutoken uchun o'rnatilgan drayversiz ishlamaydi. Shuningdek, Rutoken kompyuterga ulangan bo'lishi kerak. (Rutoken uchun kerak bo'lgan hamma narsani o'rnatish uchun maqolaning oldingi qismiga qarang habr.com/ru/post/506450)

    • Rtengine.dll va rtpkcs11ecp.dll kutubxonalari foydalanuvchi hisobining istalgan joyida saqlanishi mumkin.
    • Biz bu kutubxonalarga yo'llarni openssl.cfg da yozamiz. Buning uchun openssl.cfg faylini oching, ushbu faylning boshiga qatorni qo'ying:
      openssl_conf = openssl_def

      Fayl oxirida siz quyidagilarni qo'shishingiz kerak:

      [ 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 kutubxonasiga yo'lingizni ko'rsatishingiz kerak.
      MODULE_PATH - rtpkcs11ecp.dll kutubxonasiga yo'lingizni belgilashingiz kerak.

  7. Atrof-muhit o'zgaruvchilarini qo'shish.

    openssl.cfg konfiguratsiya fayliga yo'lni belgilaydigan muhit o'zgaruvchisini qo'shganingizga ishonch hosil qiling. Mening holimda OPENSSL_CONF o'zgaruvchisi C:Program FilesOpenSSL-Win64binopenssl.cfg yo'li bilan yaratilgan.

    Yo'l o'zgaruvchisida siz openssl.exe joylashgan papkaga yo'lni ko'rsatishingiz kerak, mening holimda bu: C: Program FilesOpenSSL-Win64bin.

  8. Endi siz 5-bosqichga qaytishingiz va demoCA katalogi uchun etishmayotgan fayllarni yaratishingiz mumkin.
    1. Birinchi muhim fayl, ularsiz hech narsa ishlamaydi. Bu kengaytmasiz fayl, uning qiymati 01 bo'lishi kerak. Bu faylni o'zingiz yaratib, ichiga 01 yozishingiz mumkin.Sdk/openssl/rtengine/samples/tool/demoCA yo'li bo'ylab Rutoken SDK dan ham yuklab olishingiz mumkin. /.
      DemoCA katalogi ketma-ket faylni o'z ichiga oladi, bu bizga kerak bo'lgan narsadir.
    2. Ildiz shaxsiy kalitini yarating.
      Buning uchun biz to'g'ridan-to'g'ri buyruq satrida bajarilishi kerak bo'lgan openSSL kutubxonasi buyrug'idan foydalanamiz:

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

    3. Biz ildiz sertifikatini yaratamiz.
      Buning uchun quyidagi openSSL library buyrug'idan foydalaning:

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

      Iltimos, esda tutingki, ildiz sertifikatini yaratish uchun avvalgi bosqichda yaratilgan asosiy shaxsiy kalit talab qilinadi. Shuning uchun, buyruq qatori bir xil katalogda ishga tushirilishi kerak.

    Endi hamma narsa demoCA katalogining to'liq konfiguratsiyasi uchun etishmayotgan fayllarga ega. Yaratilgan fayllarni 5-bandda ko'rsatilgan kataloglarga joylashtiring.

Barcha 8 punktni to'ldirgandan so'ng, sertifikatlashtirish markazimiz to'liq sozlangan deb taxmin qilamiz.

Keyingi qismda men ushbu maqolada tasvirlangan narsalarni bajarish uchun sertifikatlashtirish organi bilan qanday ishlashimizni tasvirlab beraman. maqolaning oldingi qismi.

Manba: www.habr.com

a Izoh qo'shish