Napjainkban a titkosítás egyik legnépszerűbb formája a nyilvános kulcsú titkosítás. A nyilvános kulcsú titkosítás egy nyilvános kulcsot és egy személyes kulcsot használ. A rendszer működésének alapja az információk titkosítása a nyilvános kulccsal. Az információk ezután csak a személyes kulccsal fejthetők vissza.
A nyilvános kulcsú titkosítás általánosan elterjedt alkalmazások forgalmának titkosítására SSL vagy TLS kapcsolat segítségével. Az Apache beállítható például a HTTPS, az SSL feletti HTTP biztosítására. Ez lehetővé teszi az olyan protokollon folyó forgalom titkosítását, amely maga nem biztosít titkosítást.
A tanúsítvány egy nyilvános kulcs és a kiszolgálóval, valamint az azért felelős szervezettel kapcsolatos egyéb információk terjesztésére használt módszer. A tanúsítványokat digitálisan aláírhatják a hitelesítésszolgáltatók (CA). A CA egy megbízható harmadik fél, aki meggyőződött a tanúsítványban szereplő információk pontosságáról.
Biztonságos kiszolgáló nyilvános kulcsú titkosítás használatára való beállításához a legtöbb esetben el kell küldenie a hitelesítési kérést (a nyilvános kulccsal együtt), a cég azonosságának bizonyítékát, valamint a CA díjazását. A CA ellenőrzi a hitelesítési kérést és az azonosságot, majd visszaküldi a biztonságos kiszolgálóhoz használható tanúsítványt. Ennek alternatívájaként létrehozhat önaláírású tanúsítványt is.
Ne feledje, hogy az önaláírású tanúsítványokat nem szabad éles környezetben használni. |
A HTTPS példát folytatva a CA által aláírt tanúsítvány két fontos képességet biztosít az önaláírású tanúsítványokkal szemben:
-
A böngészők (általában) automatikusan felismerik a tanúsítványt, és lehetővé teszik a biztonságos kapcsolat létrehozását a felhasználó megkérdezése nélkül.
-
Amikor egy CA aláírt tanúsítványt ad ki, garantálja a böngésző számára weboldalakat biztosító szervezet azonosságát.
A legtöbb SSL-t támogató webböngésző és számítógép rendelkezik a CA-k listájával, amelyek tanúsítványait automatikusan elfogadja. Ha a böngésző olyan tanúsítványt észlelt, amely jóváhagyó CA-ja nincs a listában, akkor a böngésző megkérdezi a felhasználót a kapcsolat elfogadásáról vagy visszautasításáról. Más alkalmazások hibaüzenetet adhatnak önaláírású tanúsítvány használatakor.
A CA-tól tanúsítvány beszerzésének folyamata viszonylag egyszerű. A teendők listája röviden:
-
Hozzon létre egy személyes és nyilvános titkosításikulcs-párt.
-
Hozzon létre egy tanúsítványigénylést a nyilvános kulcs alapján. A tanúsítványigénylés a kiszolgálóról és az azt működtető cégről tartalmaz információkat.
-
Küldje el a tanúsítványigénylést a személyazonosságát igazoló dokumentumokkal egy CA-nak. Nem tehetünk javaslatokat, hogy melyiket válassza. Döntését korábbi tapasztalataira, vagy barátai és kollégái tapasztalataira, vagy pusztán pénzügyi tényezőkre is alapozhatja.
Miután kiválasztotta a CA-t, kövesse az általuk adott utasításokat a tanúsítvány megszerzéséhez.
-
Miután a CA meggyőződött arról, hogy Ön valóban az, akinek mondja magát, elküldi a digitális tanúsítványt.
-
Telepítse a tanúsítványt a biztonságos kiszolgálóra, és állítsa be a megfelelő alkalmazásokat annak használatára.
Akár egy CA-tól szerzi be a tanúsítványt, akár önaláírt tanúsítványt akar használni, az első lépés a kulcs előállítása.
Ha a tanúsítványt szolgáltatásdémonok fogják használni, mint például az Apache, Postfix, Dovecot stb., akkor a jelmondat nélküli kulcs sok esetben megfelelő. A jelmondat hiánya lehetővé teszi a szolgáltatások emberi beavatkozás nélküli elindítását, ez általában a démonok elvárt indítási módja.
Ez a szakasz ismerteti egy jelmondattal rendelkező, és egy azzal nem rendelkező kulcs előállítását. A jelmondat nélküli kulcs ezután szolgáltatásdémonok által használt tanúsítvány előállításához lesz felhasználva.
A biztonságos szolgáltatás jelmondat nélküli futtatása kényelmes, mert nem igényli a jelmondat megadását a szolgáltatás minden egyes elindításakor. Ugyanakkor nem biztonságos, és a kulcs veszélybe kerülése a kiszolgáló veszélybe kerülését is jelenti. |
A tanúsítvány-aláírási kéréshez használandó kulcsok előállításához adja ki a következő parancsot:
openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus .....................++++++ .................++++++ unable to write 'random state' e is 65537 (0x10001) Enter pass phrase for server.key:
Ezután adja meg a jelmondatot. A nagyobb biztonság érdekében legalább nyolc karakterből kell állnia. A -des3 megadásakor a minimális hossz négy karakter. Tartalmaznia kell számokat és/vagy írásjeleket, és nem lehet szótári szó. Ne feledje, hogy a jelmondat megkülönbözteti a kis- és nagybetűket.
Ellenőrzési célból írja be újra a jelmondatot. A sikeres ismételt megadás után elkészül a kiszolgálókulcs, és a server.key
fájlba kerül mentésre.
Hozza létre a nem biztonságos, jelmondat nélküli kulcsot, és keverje meg a kulcsneveket:
openssl rsa -in server.key -out server.key.insecure mv server.key server.key.secure mv server.key.insecure server.key
A nem biztonságos kulcs neve most server.key
, és segítségével előállíthatja a jelmondat nélküli CSR-t.
A CSR előállításához adja ki a következő parancsot:
openssl req -new -key server.key -out server.csr
A parancs bekéri a jelmondatot. A helyes jelmondat megadása után bekéri a cégnevet, az oldal címét, e-mail azonosítót stb. A részletes adatok megadása után elkészül a CSR, és a server.csr
fájlba kerül mentésre.
Ezután ezt a CSR fájlt elküldheti feldolgozásra egy CA-nak. A CA a CSR fájlt fogja használni, és kiadja a tanúsítványt. Másrészt, ezen CSR segítségével létrehozhat önaláírású tanúsítványt is.
Az önaláírású tanúsítvány létrehozásához adja ki a következő parancsot:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
A fenti parancs bekéri a jelmondatot. A helyes jelmondat megadása után létrejön a tanúsítvány, és a server.crt
fájlba kerül mentésre.
Ha kiszolgálóját éles környezetben szeretné használni, akkor egy CA által aláírt tanúsítványra lesz szüksége. Az önaláírású tanúsítványok használata nem javasolt. |
A következő parancsok kiadásával telepítheti a server.key
kulcsfájlt és a server.crt
tanúsítványfájlt, vagy a CA által kiadott tanúsítványfájlt:
sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private
Ezután egyszerűen állítsa be a nyilvános kulcsú titkosítást használni képes alkalmazásokat a tanúsítvány és kulcs fájlok használatára. Segítségükkel az Apache például a HTTPS, a Dovecot IMAPS és POP3S szolgáltatásokat nyújthatja.
Ha hálózatán a szolgáltatások néhány önaláírású tanúsítványnál többet igényelnek, érdemes lehet saját belső hitelesítésszolgáltatót (CA) készíteni. A saját CA által aláírt tanúsítványok használata lehetővé teszi, hogy a tanúsítványokat használó különböző szolgáltatások megbízzanak az azonos CA által kibocsátott tanúsítványokat használó szolgáltatásokban.
-
Első lépésként hozza létre a CA tanúsítványát tartalmazó könyvtárakat és a kapcsolódó fájlokat:
sudo mkdir /etc/ssl/CA sudo mkdir /etc/ssl/newcerts
-
A CA működéséhez néhány további fájl is szükséges, egy a CA által utoljára használt sorozatszám tárolására, mivel minden tanúsítványnak egyedi sorozatszámot kell használnia, és egy másik a kibocsátott tanúsítványok rögzítésére:
sudo sh -c "echo '01' > /etc/ssl/CA/serial" sudo touch /etc/ssl/CA/index.txt
-
A harmadik fájl a CA beállítófájlja. Noha nem feltétlenül szükséges, több tanúsítvány kibocsátásakor nagyon kényelmes. Szerkessze az
/etc/ssl/openssl.cnf
fájlt, és a [ CA_default ] szakaszban módosítsa a következőket:dir = /etc/ssl/ # Where everything is kept database = $dir/CA/index.txt # database index file. certificate = $dir/certs/cacert.pem # The CA certificate serial = $dir/CA/serial # The current serial number private_key = $dir/private/cakey.pem# The private key
-
Ezután hozza létre az önaláírt gyökértanúsítványt:
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
A program bekéri a tanúsítvány részleteit.
-
Ezután telepítse a gyökértanúsítványt és a kulcsot:
sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/
-
Most már készen áll tanúsítványok aláírására. Első lépésként egy tanúsítvány-aláírási kérésre (CSR) lesz szükség, a részletekért lásd: „Tanúsítvány-aláírási kérés (CSR) előállítása”. A CSR beszerzése után adja ki a következő parancsot a CA által aláírt tanúsítvány kiadásához:
sudo openssl ca -in server.csr -config /etc/ssl/openssl.cnf
A CA kulcs jelszavának megadása után a program megkéri a tanúsítvány aláírására, majd az új tanúsítvány véglegesítésére. Ezután nagyobb mennyiségű információ jelenik meg a tanúsítvány létrehozásával kapcsolatban.
-
Létrejön egy új,
/etc/ssl/newcerts/01.pem
nevű fájl, amely ugyanezeket az információkat tartalmazza. Másoljon át mindent a -----BEGIN CERTIFICATE----- és ----END CERTIFICATE----- sorok közül egy új fájlba. Ezt arról a kiszolgálóról nevezze el, amelyen a tanúsítványt használni tervezi. Alevelezes.pelda.hu.crt
például egy szép beszédes név.Az ezt követő tanúsítványok neve
02.pem
,03.pem
stb. lesz.A
levelezes.pelda.hu.crt
helyett használjon saját beszédes nevet. -
Végül másolja át az új tanúsítványt az azt igénylő gépre, és állítsa be a megfelelő alkalmazásokat annak használatára. A tanúsítványok telepítésének alapértelmezett helye az
/etc/ssl/certs
. Ez túlbonyolított fájljogosultságok használata nélkül több szolgáltatás számára is lehetővé teszi ugyanazon tanúsítvány használatát.A CA tanúsítvány használatára beállítható alkalmazásokhoz át kell másolnia az
/etc/ssl/certs/cacert.pem
fájlt az egyes kiszolgálók/etc/ssl/certs/
könyvtárába.
-
A titkosítás használatával kapcsolatos részletesebb utasításokért lásd a tlpd.org SSL Certificates HOWTO leírását.
-
A PKI oldal tartalmazza a hitelesítésszolgáltatók listáját.
-
A Wikipédia HTTPS oldala további információkat tartalmaz a HTTPS-ről.
-
Az OpenSSL-lel kapcsolatos további információkért lásd az OpenSSL honlapját.
-
Az O'Reilly Network Security with OpenSSL könyve is remek referencia.