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

Өдрийн мэнд Энэ сэдвээ үргэлжлүүльеӨмнөх хэсгийг линкээс үзэх боломжтой).

Өнөөдөр бид практик хэсэг рүү шилжиж байна. Бүрэн эрхт нээлттэй эхийн openSSL криптограф номын сан дээр тулгуурлан CA-г байгуулж эхэлцгээе. Энэ алгоритмыг Windows 7 ашиглан туршиж үзсэн.

OpenSSL суулгаснаар бид командын мөрөөр дамжуулан янз бүрийн криптографийн үйлдлүүдийг (түлхүүр, гэрчилгээ үүсгэх гэх мэт) гүйцэтгэх боломжтой.

Үйлдлийн алгоритм нь дараах байдалтай байна.

  1. Openssl-1.1.1g суулгацыг татаж аваарай.
    openSSL нь өөр өөр хувилбаруудтай. Rutoken-ийн баримт бичигт openSSL 1.1.0 буюу түүнээс дээш хувилбар шаардлагатай гэж хэлсэн. Би openssl-1.1.1g хувилбарыг ашигласан. Та openSSL-ийг албан ёсны сайтаас татаж авах боломжтой, гэхдээ суулгахад хялбар болгохын тулд та сүлжээнээс цонхны суулгалтын файлыг олох хэрэгтэй. Би та нарын төлөө үүнийг хийсэн: 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 Files\OpenSSL-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 байна).

    Dir-г зөв бичих нь маш чухал - энэ бол манай гэрчилгээжүүлэх төв байрлах лавлах руу очих зам юм. Энэ лавлах нь /Users (өөрөөр хэлбэл зарим хэрэглэгчийн дансанд) байх ёстой. Хэрэв та энэ лавлахыг жишээ нь C: Program Files дотор байрлуулбал систем openssl.cfg тохиргоотой файлыг харахгүй (ядаж л миний хувьд тийм байсан).

    $dir - dir-д заасан замыг энд орлуулсан болно.

    Өөр нэг чухал зүйл бол хоосон index.txt файл үүсгэх бөгөөд энэ файлгүйгээр "openSSL ca ..." командууд ажиллахгүй.

    Мөн та цуваа файл, root хувийн түлхүүр (ca.key), root гэрчилгээ (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

      Маш чухал цэг. Rutoken-д суулгасан драйвергүйгээр 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 номын сангийн командыг ашиглах болно.

      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

сэтгэгдэл нэмэх