Jó napot! Folytassuk ennek a témának a megértését ().
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:
- 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:
Le kell görgetnie az oldal aljára, és le kell töltenie a Win64 OpenSSL v1.1.1g EXE 63MB telepítőt. - 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. - 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.
- 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 ].
- 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_certMost 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.
- 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: .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.dllNagyon 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) )
- 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_defA 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, RANDA 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.
- Elsődlegesen le kell tölteni a szükséges Rutoken algoritmusokat. Ezek a rtengine.dll és rtpkcs11ecp.dll fájlok.
- 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.
- Most visszatérhetünk az 5. pontra, és létrehozhatjuk a hiányzó fájlokat a demoCA mappában.
- 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. - 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 - 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.crtNe 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.
- 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/.
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. .
Forrás: habr.com
