Kokemus Rutoken-teknologian käytöstä käyttäjien rekisteröinnissä ja valtuutuksessa järjestelmään (osa 2)

Hyvää iltapäivää Jatketaan tämän aiheen käsittelyä (Edellinen osa löytyy linkistä).

Tänään siirrytään käytännön osaan. Aloitetaan määrittämällä varmenneviranomaisesi täysimittaisen avoimen lähdekoodin salauskirjaston openSSL perusteella. Tämä algoritmi on testattu Windows 7:llä.

OpenSSL:n ollessa asennettuna voimme suorittaa erilaisia ​​salaustoimintoja (kuten avainten ja sertifikaattien generointia) komentorivin kautta.

Toimintojen algoritmi on seuraava:

  1. Lataa asennusjakelu openssl-1.1.1g.
    openSSL:stä on erilaisia ​​versioita. Rutokenin dokumentaatiossa todettiin, että vaaditaan openSSL-versio 1.1.0 tai uudempi. Käytin openssl-1.1.1g versiota. Voit ladata openSSL:n viralliselta verkkosivustolta, mutta asennuksen helpottamiseksi sinun on löydettävä Windowsin asennustiedosto Internetistä. Tein sinulle tämän: slproweb.com/products/Win32OpenSSL.html
    Vieritä sivun alaosaan ja lataa Win64 OpenSSL v1.1.1g EXE 63MB Installer.
  2. Asenna openssl-1.1.1g tietokoneellesi.
    Asennus on suoritettava käyttämällä vakiopolkua, joka määritetään automaattisesti C:Program Files -kansiossa. Ohjelma asennetaan OpenSSL-Win64-kansioon.
  3. Jotta voit määrittää openSSL:n tarpeen mukaan, on olemassa tiedosto openssl.cfg. Tämä tiedosto sijaitsee polussa C:Program FilesOpenSSL-Win64bin, jos asensit openSSL:n edellisessä kappaleessa kuvatulla tavalla. Mene kansioon, johon openssl.cfg on tallennettu, ja avaa tämä tiedosto esimerkiksi Notepad++:lla.
  4. Luultavasti arvasit, että varmennekeskuksen konfigurointi tehdään jollakin tavalla muuttamalla openssl.cfg-tiedoston sisältöä, ja olet täysin oikeassa. Tätä varten sinun on määritettävä [ca]-komento. Openssl.cfg-tiedostossa tekstin alku, johon teemme muutoksia, löytyy seuraavasti: [ca].
  5. Annan nyt esimerkin asetuksesta sen kuvauksen kanssa:
    [ 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
    

    Nyt sinun on luotava demoCA-hakemisto ja alihakemistot yllä olevan esimerkin mukaisesti. Ja aseta se tähän hakemistoon dir:ssä määritettyä polkua pitkin (minulla on /Users/username/bin/openSSLca/demoCA).

    On erittäin tärkeää kirjoittaa dir oikein - tämä on polku hakemistoon, jossa varmenneviranomaisemme sijaitsee. Tämän hakemiston on sijaittava /Käyttäjät-kansiossa (eli käyttäjätilissä). Jos sijoitat tämän hakemiston esimerkiksi C:Program Files -kansioon, järjestelmä ei näe openssl.cfg-asetustiedostoa (ainakin minulla oli näin).

    $dir - dir:ssä määritetty polku korvataan tässä.

    Toinen tärkeä asia on luoda tyhjä index.txt-tiedosto, ilman tätä tiedostoa "openSSL ca ..." -komennot eivät toimi.

    Sinulla on myös oltava sarjatiedosto, yksityinen juuriavain (ca.key) ja juurivarmenne (ca.crt). Näiden tiedostojen hankintaprosessi kuvataan alla.

  6. Otamme käyttöön Rutokenin tarjoamat salausalgoritmit.
    Tämä yhteys tapahtuu openssl.cfg-tiedostossa.

    • Ensinnäkin sinun on ladattava tarvittavat Rutoken-algoritmit. Nämä ovat tiedostot rtengine.dll, rtpkcs11ecp.dll.
      Voit tehdä tämän lataamalla Rutoken SDK:n: www.rutoken.ru/developers/sdk.

      Rutoken SDK on kaikki mitä on tarjolla kehittäjille, jotka haluavat kokeilla Rutokenia. On olemassa yksittäisiä esimerkkejä työskentelystä Rutokenin kanssa eri ohjelmointikielillä, ja esitellään joitain kirjastoja. Kirjastomme rtengine.dll ja rtpkcs11ecp.dll sijaitsevat Rutoken sdk:ssä seuraavassa paikassa:

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

      Erittäin tärkeä kohta. Kirjastot rtengine.dll, rtpkcs11ecp.dll eivät toimi ilman asennettua Rutoken-ohjainta. Lisäksi Rutoken on liitettävä tietokoneeseen. (Kaiken Rutokenille tarvittavan asentamiseksi, katso artikkelin edellinen osa habr.com/en/post/506450)

    • Rtengine.dll- ja rtpkcs11ecp.dll-kirjastot voidaan säilyttää missä tahansa käyttäjätilin kohdassa.
    • Rekisteröimme polut näihin kirjastoihin openssl.cfg:ssä. Voit tehdä tämän avaamalla tiedoston openssl.cfg, tämän tiedoston alkuun on asetettava rivi:
      openssl_conf = openssl_def

      Tiedoston loppuun sinun on lisättävä:

      [ 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
      

      dynaaminen_polku – sinun on määritettävä polku rtengine.dll-kirjastoon.
      MODULE_PATH - sinun on määritettävä polku rtpkcs11ecp.dll-kirjastoon.

  7. Ympäristömuuttujien lisääminen.

    Sinun on lisättävä ympäristömuuttuja, joka määrittää polun openssl.cfg-määritystiedostoon. Minun tapauksessani OPENSSL_CONF-muuttuja luotiin polulla C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Polkumuuttujan tulee sisältää polku kansioon, jossa openssl.exe sijaitsee, minun tapauksessani se on: C:Program FilesOpenSSL-Win64bin.

  8. Nyt voit palata vaiheeseen 5 ja luoda puuttuvat tiedostot demoCA-hakemistoon.
    1. Ensimmäinen tärkeä tiedosto, jota ilman mikään ei toimi, on sarja. Tämä on tiedosto ilman päätettä, jonka arvon tulee olla 01. Voit luoda tämän tiedoston itse ja kirjoittaa sen sisään 01. Voit myös ladata sen Rutoken SDK:sta polkua sdk/openssl/rtengine/samples/tool/demoCA /.
      DemoCA-hakemistossa on sarjatiedosto, joka on juuri se, mitä tarvitsemme.
    2. Luo yksityinen juuriavain.
      Tätä varten käytämme openSSL-kirjastokomentoa, joka on suoritettava suoraan komentorivillä:

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

    3. Luo juurisertifikaatti.
      Tätä varten käytämme seuraavaa komentoa openSSL-kirjastosta:

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

      Huomaa, että juurivarmenteen luomiseen tarvitset yksityisen juuriavaimen, joka luotiin edellisessä vaiheessa. Siksi komentorivi on käynnistettävä samassa hakemistossa.

    Kaikki demoCA-hakemiston täydelliseen konfigurointiin puuttuvat tiedostot ovat nyt saatavilla. Sijoita luodut tiedostot vaiheessa 5 määritettyihin hakemistoihin.

Oletamme, että kun kaikki 8 pistettä on suoritettu, sertifiointikeskuksemme on täysin konfiguroitu.

Seuraavassa osassa kerron, kuinka teemme yhteistyötä varmenneviranomaisen kanssa saavuttaaksemme sen, mitä on kuvattu artikkelin edellinen osa.

Lähde: will.com

Lisää kommentti