A Rutcoken technológia felhasználói regisztrációra és azonosításra vonatkozó tapasztalata (2. rész)

Jó napot! Folytassuk ennek a témának a megértését (az előző részhez a linken lehet hozzáférni).

Ma áttérünk a gyakorlati részre. Kezdjük el a saját hitelesítő központunk beállítását egy nyílt forráskódú, teljes értékű kriptográfiai könyvtár, az openSSL segítségével. Ezt az algoritmust Windows 7-en teszteltük.

Az openSSL telepítésével különféle kriptográfiai műveleteket végezhetünk (például kulcsok és tanúsítványok létrehozását) a parancssoron keresztül.

A teendők a következők:

  1. Töltse le az openssl-1.1.1g telepítőcsomagot.
    Az openSSL-nek különböző verziói vannak. A RutuToken dokumentációjában szerepelt, hogy az openSSL 1.1.0 vagy újabb verzió szükséges. Én az openssl-1.1.1g verziót használtam. Az openSSL-t a hivatalos weboldalról letöltheti, de egyszerűbb telepítés érdekében érdemes keresni a Windows telepítőfájlt az interneten. Én ezt már megtettem ön helyett: slproweb.com/products/Win32OpenSSL.html
    Le kell görgetnie az oldal aljára, és le kell töltenie a Win64 OpenSSL v1.1.1g EXE 63MB telepítőt.
  2. Telepítse az openssl-1.1.1g-t a számítógépére.
    A telepítést a szokásos módon kell végezni, ami automatikusan a C:Program Files mappába mutat. A program az OpenSSL-Win64 mappában fog települni.
  3. Ahhoz, hogy az openSSL-t a saját igényei szerint állíthassa be, szüksége van az openssl.cfg fájlra. Ez a fájl a C:Program FilesOpenSSL-Win64bin útvonalon található, ha az openSSL-t a fenti utasítások szerint telepítette. Lépjen a mappába, ahol az openssl.cfg található, és nyissa meg ezt a fájlt például a Notepad++-val.
  4. Valószínűleg kitalálta, hogy a hitelesítő központ beállítása a openssl.cfg fájl tartalmának módosításával történik, és teljesen igaza van. Ehhez konfigurálni kell a [ ca ] parancsot. Az openssl.cfg fájlban a szöveg eleje, ahol a módosításokat elhelyezzük, a következőképpen található: [ ca ].
  5. Most bemutatok egy beállítást a leírásával:
    [ 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
    

    Most létre kell hoznia a demoCA mappát és az almappákat, ahogyan azt a fenti példában látja. Ezeket a mappákat a dir-ben megadott útvonal szerint kell elhelyeznie (nálam /Users/username/bin/openSSLca/demoCA).

    Nagyon fontos, hogy helyesen állítsuk be a dir-t – ez az útvonal az adott könyvtárhoz, ahol a tanúsítványkezelő központunk található. Ennek a könyvtárnak feltétlenül a /Users könyvtárban kell lennie (tehát egy felhasználói fiók alatt). Ha például a C:Program Files könyvtárban található, a rendszer nem fogja észlelni az openssl.cfg beállítási fájlt (legalábbis nálam így volt).

    $dir – ide kerül az az útvonal, amelyet a dir-nél megadtunk.

    Egy másik fontos pont, hogy egy üres index.txt fájlt kell létrehozni, enélkül az 'openSSL ca …' parancsok nem fognak működni.

    Emellett szükség van a serial fájlra, a gyökér privát kulcsra (ca.key) és a gyökér tanúsítványra (ca.crt). Ezeknek a fájloknak az előállítási folyamata később lesz leírva.

  6. Kapcsoljuk be a Rutoken által biztosított titkosítási algoritmusokat.
    Ez a csatlakozás az openssl.cfg fájlban történik.
    • Elsődlegesen le kell tölteni a szükséges Rutoken algoritmusokat. Ezek a rtengine.dll és rtpkcs11ecp.dll fájlok.
      Ehhez töltsük le a Rutoken SDK-t: www.rutoken.ru/developers/sdk.

      A Rutoken SDK az összes szükséges információt tartalmaz a Rutokent tesztelni kívánó fejlesztők számára. Találhatók benne különböző nyelveken íródott példák a Rutoken használatára, valamint néhány könyvtár is. A mi rtengine.dll és rtpkcs11ecp.dll könyvtáraink a Rutoken SDK-ban az alábbi elérhetőségek alatt találhatóak:

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

      Nagyon fontos pont. A rtengine.dll és rtpkcs11ecp.dll könyvtárak nem működnek a Rutoken számára telepített illesztőprogram nélkül. Emellett a Rutokennek szükségszerűen csatlakoztatva kell lennie a számítógéphez. (A Rutokenhez szükséges összes telepítésről lásd a cikk korábbi részét) habr.com/ru/post/506450)

    • A rtengine.dll és rtpkcs11ecp.dll könyvtárakat bármely helyen tarthatjuk a felhasználói fiókban.
    • Meg kell adnunk a könyvtárak elérési útvonalait az openssl.cfg fájlban. Ehhez nyissuk meg az openssl.cfg fájlt, és a fájl elejére írd be a következőt:
      openssl_conf = openssl_def

      A fájl végére pedig szükséges hozzátenni:

      [ 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=AktivCo.;model=RutokenECP
      default_algorithms = CIPHERS, DIGEST, PKEY, RAND
      

      A dynamic_path-nál meg kell adni a saját elérési útvonalunkat a rtengine.dll-hez.
      A MODULE_PATH-nál szükséges megadni a saját elérési útvonalunkat az rtpkcs11ecp.dll-hez.

  7. Adjunk hozzá környezeti változókat.

    Kötelező hozzáadni egy környezeti változót, amely megadja az openssl.cfg konfigurációs fájl elérési útját. Az én esetemben az OPENSSL_CONF változót a C:Program FilesOpenSSL-Win64binopenssl.cfg útra hoztam létre.

    A path változóban meg kell adni az openssl.exe fájlt tartalmazó mappa elérési útját, az én esetemben ez a: C:Program FilesOpenSSL-Win64bin.

  8. Most visszatérhetünk az 5. pontra, és létrehozhatjuk a hiányzó fájlokat a demoCA mappában.
    1. Az első fontos fájl, amely nélkül semmi sem működik, a serial. Ez egy kiterjesztés nélküli fájl, amelynek értéke 01 kell, hogy legyen. Ezt a fájlt magunk is létrehozhatjuk, és beírhatjuk az 01-et. Letölthetjük a Rútokén SDK-ból is a következő útvonalon: sdk/openssl/rtengine/samples/tool/demoCA/.
      A demoCA mappában megtalálható a serial fájl, amelyre szükségünk van.
    2. Létrehozzuk a gyökérprivát kulcsot.
      Ehhez használjuk az openSSL könyvtár parancsát, amelyet közvetlenül a parancssorban kell futtatni:
      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. Létrehozzuk a gyökértanúsítványt.
      Ehhez az openSSL könyvtár következő parancsát használjuk:
      openssl req -utf8 -x509 -key ca.key -out ca.crt

      Ne feledje, hogy a gyökértanúsítvány létrehozásához szükség van a gyökérprivát kulcsra, amelyet az előző lépésben hoztunk létre. Ezért a parancssort ugyanabba a könyvtárba kell indítani.

    Most már minden hiányzó fájl rendelkezésre áll a demoCA mappa teljes konfigurálásához. Helyezze el a létrehozott fájlokat azokba a mappákba, amelyeket az 5. pontban megadtunk.

Feltételezzük, hogy az összes 8 pont végrehajtása után az igazoló központunk teljesen be van állítva.

A következő részben elmondom, hogyan fogunk dolgozni az igazoló központtal, hogy végrehajtsuk a korábban leírtakat. a cikk előző részében.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster