Rutoken technológia használatában szerzett tapasztalat a felhasználók rendszerben való regisztrálásához és engedélyezéséhez (2. rész)

Jó napot Folytassuk ezt a témátAz előző rész a linken található).

Ma áttérünk a gyakorlati részre. Kezdjük azzal, hogy beállítjuk a CA-t a teljes értékű nyílt forráskódú kriptográfiai könyvtár openSSL alapján. Ezt az algoritmust Windows 7 rendszeren tesztelték.

Telepített openSSL esetén különféle kriptográfiai műveleteket (például kulcsok és tanúsítványok létrehozását) tudunk végrehajtani a parancssoron keresztül.

A műveletek algoritmusa a következő:

  1. Töltse le az openssl-1.1.1g telepítési disztribúciót.
    Az openSSL-nek különböző verziói vannak. A Rutoken dokumentációja szerint az openSSL 1.1.0-s vagy újabb verziója szükséges. Openssl-1.1.1g verziót használtam. Az openSSL-t letöltheti a hivatalos oldalról, de a könnyebb telepítés érdekében meg kell találnia a Windows telepítőfájlját a neten. Ezt tettem neked: slproweb.com/products/Win32OpenSSL.html
    Görgessen le az oldalon, és töltse le a Win64 OpenSSL v1.1.1g EXE 63 MB telepítőt.
  2. Telepítse az openssl-1.1.1g-t a számítógépére.
    A telepítést a szabványos elérési út szerint kell végrehajtani, amely automatikusan megjelenik a C: Program Files mappában. A program az OpenSSL-Win64 mappába kerül telepítésre.
  3. Az openSSL-t úgy állíthatja be, ahogyan szüksége van rá, az openssl.cfg fájl. Ez a fájl a C:\Program Files\OpenSSL-Win64bin útvonalon található, ha az előző bekezdésben leírtak szerint telepítette az openSSL-t. Nyissa meg az openssl.cfg fájlt tartalmazó mappát, és nyissa meg ezt a fájlt például a Notepad++ segítségével.
  4. Valószínűleg sejtette, hogy az openssl.cfg fájl tartalmának módosításával a hitelesítés-szolgáltató valahogy be lesz állítva, és teljesen igaza van. Ehhez a [ ca ] parancs testreszabása szükséges. Az openssl.cfg fájlban a szöveg eleje, ahol módosítani fogjuk, a következőképpen található: [ ca ].
  5. Most adok egy példát egy beállításra a leírásával együtt:
    [ 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 hoznunk a demoCA könyvtárat és az alkönyvtárakat a fenti példában látható módon. És helyezze el ebbe a könyvtárba a dir-ben megadott útvonal mentén (van /Users/username/bin/openSSLca/demoCA).

    Nagyon fontos a dir helyesírása – ez az útvonal ahhoz a könyvtárhoz, ahol a tanúsítási központunk található. Ennek a könyvtárnak a /Users könyvtárban kell lennie (vagyis valamelyik felhasználó fiókjában). Ha ezt a könyvtárat például a C: Program Files-ba helyezzük, akkor a rendszer nem fogja látni az openssl.cfg beállításokkal rendelkező fájlt (legalábbis nekem így volt).

    $dir - a könyvtárban megadott elérési út behelyettesítésre kerül.

    Egy másik fontos szempont, hogy hozzon létre egy üres index.txt fájlt, e nélkül az „openSSL ca…” parancsok nem működnek.

    Ezenkívül rendelkeznie kell egy soros fájllal, egy gyökér privát kulccsal (ca.key), egy gyökértanúsítvánnyal (ca.crt). A fájlok megszerzésének folyamatát az alábbiakban ismertetjük.

  6. Összekapcsoljuk a Rutoken által biztosított titkosítási algoritmusokat.
    Ez a kapcsolat az openssl.cfg fájlban történik.

    • Először is le kell töltenie a szükséges Rutoken algoritmusokat. Ezek az rtengine.dll, rtpkcs11ecp.dll fájlok.
      Ehhez töltse le a Rutoken SDK-t: www.rutoken.ru/developers/sdk.

      A Rutoken SDK minden, ami a fejlesztők rendelkezésére áll, akik szeretnék kipróbálni a Rutoken-t. Mindkettő külön példák találhatók a Rutokennel való munkavégzésre különböző programozási nyelveken, és bemutatunk néhány könyvtárat is. Az rtengine.dll és rtpkcs11ecp.dll könyvtáraink a Rutoken sdk-ben találhatók, a következő helyen:

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

      Nagyon fontos szempont. Az rtengine.dll, rtpkcs11ecp.dll könyvtárak nem működnek a Rutoken telepített illesztőprogramja nélkül. A Rutokent is csatlakoztatni kell a számítógéphez. (A Rutokenhez szükséges összes telepítéséhez lásd a cikk előző részét habr.com/en/post/506450)

    • Az rtengine.dll és rtpkcs11ecp.dll könyvtárak bárhol tárolhatók a felhasználói fiókban.
    • A könyvtárak elérési útját az openssl.cfg fájlba írjuk. Ehhez nyissa meg az openssl.cfg fájlt, és tegye a sort a fájl elejére:
      openssl_conf = openssl_def

      A fájl végéhez hozzá kell adni:

      [ 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 – meg kell adnia az rtengine.dll könyvtár elérési útját.
      MODULE_PATH – be kell állítania az rtpkcs11ecp.dll könyvtár elérési útját.

  7. Környezeti változók hozzáadása.

    Ügyeljen arra, hogy adjon hozzá 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ó a C:Program FilesOpenSSL-Win64binopenssl.cfg elérési úttal jött létre.

    Az elérési út változóban meg kell adni annak a mappának az elérési útját, ahol az openssl.exe található, esetemben ez: C: Program FilesOpenSSL-Win64bin.

  8. Most visszatérhet az 5. lépéshez, és létrehozhatja a hiányzó fájlokat a demoCA könyvtárhoz.
    1. Az első fontos fájl, amely nélkül semmi sem fog működni, a soros. Ez egy kiterjesztés nélküli fájl, melynek értéke 01. Ezt a fájlt saját kezűleg létrehozhatja, és beleírhatja a 01-et. A Rutoken SDK-ból is letöltheti az sdk/openssl/rtengine/samples/tool/demoCA elérési úton. /.
      A demoCA könyvtár tartalmazza a soros fájlt, amire pontosan szükségünk van.
    2. Hozzon létre egy gyökér privát kulcsot.
      Ehhez az openSSL könyvtár parancsot fogjuk használni, amelyet közvetlenül a parancssorban kell futtatni:

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

    3. Gyökértanúsítványt készítünk.
      Ehhez használja a következő openSSL könyvtár parancsot:

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

      Kérjük, vegye figyelembe, hogy a gyökértanúsítvány létrehozásához az előző lépésben előállított privát gyökérkulcsra van szükség. Ezért a parancssort ugyanabban a könyvtárban kell elindítani.

    Most már mindenben megtalálható az összes hiányzó fájl a demoCA könyvtár teljes konfigurációjához. Helyezze el a létrehozott fájlokat az 5. pontban jelzett könyvtárakba.

Feltételezzük, hogy mind a 8 pont teljesítése után a tanúsítási központunk teljesen be van állítva.

A következő részben leírom, hogyan fogunk együttműködni a tanúsító hatósággal a pontban leírtak megvalósítása érdekében. a cikk előző része.

Forrás: will.com

Hozzászólás