11. fejezet - Nyilvános kulcs infrastruktúra, hitelesítő szervezetek

A fejezet a nyilvános kulcsú infrastruktúráról szól, amelyet angolul public key infrastructure-nak neveznek és általánosan használt rövidítése a PKI. Szó lesz arról, hogy hogyan épül fel a nyilvános kulcsú infrastruktúra, tárgyalásra kerülnek a különböző PKI modellek és persze az infrastruktúrát felépítő hitelesség szolgáltatók szerkezetéről, feladatairól és szervezeti egységeiről. Áttekintjük a jelenlegi jogi szabályozást, az elterjedtebb üzleti modelleket. Részletesen kifejtjük az egész infrastruktúra egyik legjellegzetesebb elemét, a tanúsítványokat szabályozó X509 szabványt. Az X509 tanúsítvány az az elem amivel a PKI kapcsolódik a nyilvános kulcsú kriptográfiához és gyakorlatilag tükröződik rajta a teljes infrastruktúra felépítése, lehetőségei, korlátai és fejlődése. Külön alfejezetet szentelünk a PKI gyakorlati alkalmazásainak, azoknak a környezeteknek ahol sikerrel alkalmazható a nyilvános kulcsú infrastruktúra. Ebben a bevezető részben mindazokról az általános tulajdonságokról lesz szó, amelyek a PKI-t jellemzik illetve azokról az információkról, amiket gazdasági döntéshozóként vagy akár végfelhasználóként tudni érdemes a nyilvános kulcsú infrastruktúráról. Habár a PKI fogalma és lehetőségei a publikus kulcsú kriptográfiával egy időben, több mint 20 évvel ezelőtt jelent meg, a gyakorlati megoldások csak napjainkban kezdenek széles körben elterjedni. A nyilvános kulcsú infrastruktúra erős azonosítást tesz lehetővé olyan feltételek mellett amely sok szervezet számára vonzóvá teszi az alkalmazását. Azonban a nyilvános kulcsú infrastruktúra üzembe helyezéséhez és üzemeltetéséhez a PKI-hez értő személyzetre is szükség van. Ez nem csak pár alapvető PKI tudással rendelkező adminisztrátort jelent, hanem magasan képzett szakembereket is, akik a rendszer megtervezését, a működési szabályzatot, az ezzel kapcsolatos dokumentumokat, a szabályzatok leképezését elkészítik, illetve elvégzik továbbá az esetleges kereszthitelesítéssel kapcsolatos döntéseket meghozzák és a folyamatot megtervezik illetve levezénylik.

A PKI gyors elterjedésének útjában áll, hogy nem áll rendelkezésre ezen munkakörök számára elegendő szakképzett munkaerő. A fejezet célja többek között, hogy a fent említett feladatokból ízelítőt adjon és a leendő PKI adminisztrátoroknak és tanácsadóknak egy alapos bevezetést jelentsen. A PKI terjedésének egy másik akadálya, hogy a PKI használatához nem elegendő egy nyilvános kulcsú infrastruktúrát üzemeltetni, természetesen szükség van a PKI-t használó alkalmazásokra is. A PKI képes alkalmazások száma egyre nő, de például az egyik mintapélda, a böngésző szerver architektúra is csupán részben tekinthető PKI képesnek, hiszen nem közvetlenül, hanem csupán egy alsóbb hálózati rétegben használják azt. Egy alkalmazás PKI képessé tételéhez szükség van az olyan alapvető műveletek implementációja mellett, mint például a digitális aláírás, az aláírás ellenőrzése, publikus kulcsú kódolás és dekódolás, a tanúsítványok kezelésére is. A fejezetben lévő anyag hasznos tudást jelent mindazon programozók és leendő programozók számára akik PKI képes alkalmazás fejlesztésével, vagy már meglévő alkalmazás PKI képessé tételével találkoznak pályájuk során. Szintén lassítja a PKI elterjedését a nyilvános kulcsú infrastruktúrát körülvevő vállalati szintű bizalmatlanság és értetlenség. A fejezet célja az is, hogy segítséget nyújtson mindazoknak az (aktív vagy leendő) döntéshozóknak illetve asszisztenseknek, akik munkájuk során kapcsolatba kerülnek a nyilvános kulcsú infrastruktúrával.

11.1. Bevezetés

A PKI szerepe, hogy egy nevet kössön valamely kulcspárhoz a nyilvános kulcsú kriptográfiában. A nyilvános kulcsú infrastruktúra, mint ahogy a neve is jelzi egy olyan kiépített rendszer amit a felhasználók igénybe vehetnek. Az infrastruktúra szolgáltatói, a hitelességszolgáltatók biztosítják ezt a lehetőséget a felhasználók, fogyasztók számára, mint ahogy az áramszolgáltatók elektromos energiát biztosítanak az ügyfeleik részére.

11.1.1. Nevek

A nyilvános kulcsú infrastruktúra neveket köt az aszimmetrikus kriptográfiában alkalmazott algoritmusok és protokollok kulcspárjaihoz, ezért először a nevek fogalmát tisztázzuk és az ezzel kapcsolatos fogalmakat definiáljuk.

A név tágabb értelemben valamilyen adat, vagy adatok együttese, amik az adott környezetben a többi szereplőtől megkülönböztetik, egyértelműen azonosítják név birtokosát. A név az adott szereplő azonosítója. Az hogy az adott környezetben az egyértelmű azonosításhoz mennyi és milyen jellegű információ (mekkora adatmennyiség) szükséges vagy áll rendelkezésre ilyen célra, nagyban függ az adott környezet jellegétől. Az alkalmazott név nagyban függ a környezet méretétől (például család, osztály, város) illetve annak jellegétől is (más formátumú elnevezéseket használnak például egy operációs rendszeren, mást egy kormányzati adminisztrációs rendszerben és az e-mailezésnél), és a méret növekedésével az elnevezések egyediségének biztosítása is egyre nagyobb problémákat vet fel.

Mint ahogy azt a későbbiekben látni fogjuk a fentiek alapján a név (nym) többféle dolgot takarhat a valós világbeli szereplőhöz való kapcsolatától függően. Lehet valamilyen azonosító, amelyet olyan szándékkal rendeltek az adott szereplőhöz, hogy a név és a valós világbeli tulajdonosa közötti kapcsolat ne legyen nyilvánvaló (pseudonym - álnév). Jelentheti továbbá az azonosító vagy név teljes hiányát (anonym - névtelen) illetve jelentheti a legkonvencionálisabb értelemben vett nevet, azaz olyan adatok összességét, amelyek alapján a tulajdonosa valós világbeli identitása egyértelműen meghatározható (veronym - igaz név). Nagyon gyakran a PKI-vel az a szándékunk, hogy az adott kulcsot valamely valós világbeli objektum identitásához, igaz nevéhez kössük, valójában azonban a PKI a kulcspárok bármilyen névhez való kötésére ad lehetőséget.

Ezek alapján megkülönböztethetjük az azonosítást (identification) a hitelesítéstől (authentication). A hitelesítés esetében a partner valamilyen tágabb értelemben vett nevéről, a környezetében lévő többi szereplőtől egyértelműen megkülönböztető azonosító információról van szó. Az azonosítás ezzel szemben valamilyen valós világbeli eszközhöz vagy személyhez köti a szereplőt, akivel kommunikálni szándékozunk. Például ha a hitelesítés lépése során a név szerepét igaz név játssza, akkor az egyben azonosítás is.

A nevek és azonosítók használata felveti az egyedi elnevezés illetve azonosító kiosztás problémáját. Ezt az alkalmazások különböző területein különféleképpen oldják meg, az egyediséget más és másféleképpen biztosítják. A domain nevek esetében az egyes domain név regisztrátorok felelnek a felügyeletük alá tartozó domaineken az egyediség biztosításáért. Az e-mail címek esetében a vonatkozó domain kezelője hivatott a nevek egyediségét biztosítani. A gépek ip címét az adott alhálózatot felügyelő rendszergazda vagy a címeket kiosztó szerver felügyeli. Az egyes környezetekben az azonosítók a legkülönfélébbek lehetnek. A tanúsítványokról szóló fejezetben említett X500 Directory szintén bevezetett egy egyedi elnevezési konvenciót ám ez nem terjedt el, csupán a tanúsítványok DN mezőiben láthatjuk nyomait. A PKIX szabvány pedig egyenesen lehetővé teszi ezeknek a mezőknek am kihagyását. Az egyedi azonosítók, nevek kiosztása nem a PKI feladata. A nyilvános kulcsú infrastruktúra csupán összeköti az adott nevet valamely kulcspárral.

11.1.2. Felhatalmazás

Az azonosítással kapcsolatban gyakorta felmerülő fogalom a felhatalmazás (authorisation). A rendszerben az egyes szereplőknek különböző hatásköreik lehetnek, és egy tevékenységet amit az egyik szereplő elvégezhet, nem feltétlenül megengedett egy másik szereplőnek. Az informatikai biztonsági rendszereknek az egyes szereplők jogköreire vonatkozó döntéseket is meg kell hozniuk és az ezzel kapcsolatosan felmerülő problémákat is kezelniük kell. Habár a PKI lehetővé teszi felhatalmazásra vonatkozó információk továbbítását ez a gyakorlat nem ajánlott. A nyilvános kulcsú infrastruktúra csupán összeköti az adott nevet valamely kulcspárral: a PKI önmagában nem ad választ a fenti kérdésre, a felhatalmazás jogosságára való vizsgálatokat a rendszernek más eszközökkel kell elvégeznie.

11.1.3. Bizalom

Mint ahogy arról majd a későbbi részfejezetekben is szó lesz, a PKI segítségével a bizalmat adhatjuk tovább és vezethetjük le a bizalmi horgonyoktól a végfelhasználókig. A bizalmat mint olyat szintén többféleképp értelmezhetjük. Tágabban vett értelemben a bizalom jelentheti magába a végfelhasználóba vetett bizalmat, valamiféle elvárást a protokoll során való viselkedésével kapcsolatban. A szűkebb értelemben vett bizalom egy adott kulcsba vetett bizalom, azaz annak az elfogadása, hogy az adott kulcs párja valóban annak a birtokában van akivel a tranzakciót végrehajtani szándékozzuk. A különbség a kétfajta bizalmi felfogás között nagyon fontos. A PKI csupán a szűkebb értelemben vett bizalom továbbítására szolgál, semmilyen biztosítékkal nem szolgál a tágabb értelemben vett bizalmat illetően. A nyilvános kulcsú infrastruktúra alkalmazása során a kezdetben egyetlen szereplőbe, a bizalmi horgonyba vetett bizalom vándorol a végfelhasználókig. (Ez egy leegyszerűsített szemléletmód, a bizalmi modellekről szóló részben ismertetésre kerülnek olyan modellek is ahol nem egyetlen pontból indul ki a bizalom) A nyilvános kulcsú infrastruktúra semmit nem mond a szereplők megbízhatóságáról, kizárólag az egyes kulcsokba vetett bizalmat hivatott megalapozni.

11.1.4. Biztonság

A PKI csupán az azonosítást segíti elő. Önmagában nem teszi varázslatos módon biztonságossá az egyes informatikai rendszereket, nem foltozza be a szoftverhibákat, biztonsági réseket, nem fogja megoldani a túlterheléses támadások problémáját és elfedni a rosszul konfigurált szoftverekből adódó gyengeségeket, nem véd meg a vírusoktól, trójaiaktól, férgektől. Továbbra is van a biztonsági rendszer körültekintő megtervezésére, tűzfalakra, behatolás észlelő rendszerekre, és úgy általában mindarra amiről a korábbi fejezetekben szó volt. Minden esetben egy a már ismertetett költség-hatékonyság elemzés illetve kockázatkezelés szükséges annak eldöntésére, hogy az azonosítást elősegítésére egy PKI rendszert állítanak üzembe, vagy inkább megpróbálkoznak a hagyományos, szimmetrikus kulcsú technikákkal. A nyilvános kulcsú infrastruktúra nem helyettesíti az egész biztonsági rendszert, csupán részét képezi annak.

11.1.5. Megbízhatóság

A PKI sem küszöböli ki a rendszeradminisztrátorok illetve a felhasználók gondatlanságát, nemtörődömségét, lustaságát vagy éppen hiányos képzettségét. A nyilvános kulcsú infrastruktúra nem küszöböli ki az emberi hibákat és tehetetlen a rosszindulat ellen is. A PKI által hitelesített egyén cselekedhet nem megfelelően, visszaélhet az azonosságához kapcsolt hatáskörrel. A nyilvános kulcsú infrastruktúra csupán a kulcsba vetett bizalmat alapozza meg, a kulcshoz tartozó név mögött lévő szereplő viselkedésével, gondosságával, szándékaival kapcsolatban semmilyen biztosítékot nem ad.

11.1.6. A PKI előnyei

A nyilvános kulcsú infrastruktúrának több előnye is van a hagyományos titkos kulcsú rendszerekkel szemben. Az első legszembeszökőbb előny, hogy lehetővé teszi az egyszeri bejelentkezést (Single Sign On). Nevezetesen, hogy a felhasználók a rendszer vagy éppen több rendszer használata során csupán egyetlen alkalommal jelentkezzenek be a biztonságos használat fenntartása mellett. Rendszerint ez azt jelenti, hogy a felhasználó PKI segítségével kerül azonosításra, az egyetlen jelszó amit meg kell jegyeznie a szimmetrikus titkosítással kódolt privát kulcs jelszava ahol rendszerint a jelszó egy hash értéke a tényleges titkos kulcs. (Emlékeztetőül: a privát kulcsot az aszimmetrikus kriptográfiában használjuk és a publikus kulcs párja, a titkos kulcs kifejezés pedig a szimmetrikus kriptográfiában használatos kulcsra vonatkozik) Ez jelentősen redukálja a rendszerben használatos jelszavak számát, megkönnyítve annak megjegyzését ezáltal könnyítve a felhasználók terhein illetve csökkentve annak a kockázatát, hogy a jelszavakat megjegyezni nem tudván papírlapokra jegyezzék fel amiket esetleg még a monitorra is kiragasztanak. A szervezet szempontjából ez a tulajdonság egy további előnyt is magában hordoz, hiszen a kevesebb jelszó nem csak a felhasználói oldalon csökkenti az adminisztratív terheket.

A másik nagy előny, hogy a PKI használata közben jóval kisebb mennyiségű adatot kell titokban tartani, mint a szimmetrikus megoldások esetében. A teljes rendszer biztonságának a szempontjából csupán két kritikus adat van és ezek a bizalmi horgony aláíró kulcs és a visszahívási listájának az aláíró kulcsa. Az egyes felhasználók és erőforrások a rendszeren belül felelősek a bizalmi horgony tanúsítványának tárolásáért, de ezeknek a kompromittálódása csupán az infrastruktúra érintett részére jelent veszélyt és nem az egész rendszerre nézve, másrészt ezeknek csupán az integritását kell biztosítani és nem a titkosságát, ami jóval könnyebb feladat.

A PKI lehetővé teszi, hogy a privát kulcsokat való világbeli entitásokhoz kössük, ezáltal lehetőséget biztosít a rendszer szereplőinek azonosítására, kizárva ezzel a rendszer elemeinek megszemélyesítését illetve a közbülső ember (man-in-the-middle) típusú támadások lehetőségét. Ez természetesen mindaddig érvényes, amíg a rendszer szereplői titokban tartják a privát kulcsukat. Ezt a feladatot megkönnyíti, hogy a privát kulcsok sohasem közlekednek a hálózaton keresztül a tranzakciók során, és mint ahogy a publikus kulcsú titkosításról szóló részben erről már szó volt, a publikus kulcsból a privát kulcs kiszámítása praktikusan lehetetlen.

Mindemellett, habár közvetlenül nem ajánlott a felhatalmazások (authorisation) kezelésére, megvalósítására használni (annak ellenére, hogy mint majd azt látni fogjuk, a szabványok lehetőséget nyújtanak rá), lehetőséget nyújt az aláírások révén a rendszer szereplőinek valamely felhatalmazásokat kezelő rendszerhez való kötésére. Íly módon megvalósítható például a végfelhasználók egy SAML szolgáltatóhoz való kötése, abban kiosztott attribútumaik igazolása.

11.1.7. Tanúsítványok a gyakorlatban

A nyilvános kulcsú infrastruktúra termékei és eszközei a tanúsítványok. A tanúsítványok kapcsolják össze a valós világbeli entitások igaz neveit az egyes kulcspárokkal. A tanúsítványok természetüknél fogva nem alkalmasak közvetlen emberi felhasználásra, nem is arra termezték őket, mégis elképzelhetőek olyan esetek, amikor a végfelhasználónak közvetlenül kell tanúsítványokkal kapcsolatos döntéseket hoznia. Az ilyen esetek több oknál fogva sem szerencsések: egyrészt, mint ahogy az már említésre került a tanúsítványok formátuma és az egyes adatok jellege kifejezetten nehézkessé teszi az emberi feldolgozást, másrészt a végfelhasználók előképzettsége kevés kivételtől eltekintve elégtelen az ilyen jellegű döntések meghozatalára.

Az egyik ilyen tipikus eset a nyilvános kulcsú titkosítással titkosított, esetleg digitális aláírással ellátott levelezés. Ebben az esetben, ha a szoftver nem tudja a PKI-n keresztül megalapozni a szóban forgó kulcsba vetett bizalmat, akkor a döntést a felhasználóra bízza. Szerencsésebb esetekben a levél megjelenítése után teszi fel a kérdést. Ez esetben a felhasználó a levél tartalma alapján esetleg tud következtetni az levélíró valódi identitására. Ez az eset természetesen teret nyit a social engineering típusú támadásoknak. Ha a szoftver a döntést a levél megjelenítése előtt várja, akkor a helyzet még rosszabb: a felhasználónak semmilyen plusz információja nincs ami alapján a döntést meghozhatná, ilyenkor az átlagos felhasználó az OK gombra klikkel és ezáltal véglegesen hozzáadja a potenciálisan hamis tanúsítványt a megbízható tanúsítványok listájához.

A másik eset ennél is gyakoribb és veszélyesebb. Az online fizetési tranzakciók és a személyes adatokat is érintő kérdőívek rendszerint PKI alapú technológiával közvetítik az adatokat (https). Ebből az átlagos felhasználó csak a böngésző sarkában található kis lakat ikont veszi észre. Ha nem ellenőrizhető tanúsítvánnyal találkozik, a böngésző szintén a felhasználóra hárítja a döntést, amit a felhasználó a megfelelő információk vagy képzés híján rendszerint az OK gomb lenyomásával elfogadja a potenciálisan rosszindulatú tanúsítványt. Minden olyan honlap, amely a böngészők által nem hitelesíthető tanúsítványt használ vagy csalás, vagy pedig potenciális veszélynek teszi ki a felhasználóit azzal, hogy a megbízhatatlan tanúsítványok elfogadására szokatja a látogatóit.

Röviden összefoglalva: PKI az azonosításban játszik szerepet, egy nevet köt egy kulcspárhoz. Ennyit biztosít. Nem többet, nem kevesebbet.