ECDL.web - ECDL Tudástár

Elektronikus aláírás, titkosítás

A ECDL.web wikiből

Lásd még
Tanúsítvány beszerzése, telepítése és használata elektronikus aláírásra és titkosításhoz

Az Internetben rejlő óriási lehetőségek kiaknázásában a legnagyobb akadályt a biztonság kérdése jelenti. A vállalati kémkedéstől, a szabotázstól, a személyes adatok ellopásától, az abból eredő visszaélésektől való félelem, a levelezésben a személyesség hiánya és a titkos adatokhoz való esetleges hozzáférés együttesen az online műveletek szkeptikus megítéléséhez vezetett. Ezeknek a félelmeknek némelyike jogos, mások pedig már elveszítették jelentőségüket. Az adatátvitel közben biztonságot igénylő online tevékenységek három szintje a következő: általános kommunikáció, üzleti kommunikáció és pénzügyi tranzakciók. A legegyszerűbbek az általános kommunikációra szolgáló alkalmazások, mint pl. a magánjellegű elektromos levél (e-mail) vagy egy Web oldal adataihoz való korlátozott hozzáférés.

Fontos mindig észben tartanunk, hogy ha titkosítatlan csatornán kommunikálunk az Interneten, akkor bármely küldött vagy fogadott információ (személyes adatok, jelszavak, bankkártya-információk, stb.) elfogható, lehallgatható, és egy esetleges rosszindulatú harmadik fél által tudtunk nélkül felhasználható és/vagy módosítható.

Tehát példának okáért egy titkosítatlan e-mail körülbelül annyira biztonságos és bizalmas, mint egy képeslap.

[szerkesztés] Alapfogalmak

Titkosítás
A titkosítás olyan matematikai eljárás, melynek során egy üzenetet aképpen változtatunk meg felismerhetetlenül, hogy abból az eredeti üzenet csak valamilyen, kizárólag a küldő és a címzett által ismert eljárás segítségével fejthető vissza.

Image:m7titk1.gif

A titkosítás és visszafejtés során használt eljárás két részből áll: az egyik a titkostó/visszafejtő algoritmus (cipher), a másik pedig ennek az algoritmusnak egy vagy több paramétere, a kulcs (key). A művelet során a titkosító algoritmus bemenete a titkosítandó adat és a kulcs, kimenete pedig a titkosított információ. A visszafejtésnél ez utóbbi és a kulcs lesz a bemenet, a visszafejtett szöveg pedig a kimenet. Az algoritmus/kulcs jellege alapján két, alapvetően eltérő titkosító megoldást különböztetünk meg, ezek: a szimmetrikus kulcsú, illetve az aszimmetrikus, vagy másnéven nyilvános kulcsú (public key) eljárások.

Mind a szimmetrikus, mind az aszimmetrikus titkosítási eljárásokkal kapcsolatban fontos elöljáróban megjegyezni a következőket:

1. Ha a kulcsok tárolása saját számítógépünkön történik, e kulcsok csak annyira biztonságosak, amennyire maga a számítógép.
2. Minél hosszabb a titkosításhoz használt kulcs, illetve kifinomultabb a titkosítási algoritmus, és ebből kifolyólag hosszabb a visszafejtéshez szükséges idő, annál erősebbnek nevezhetjük a titkosítást. Az amerikai kormányzat egészen 2000-ig korlátozta egyes polgári célú titkosítási eljárások exportját, így az USÁ-ból származó szoftverek csak gyenge titkosítást használhattak. Az ilyen eljárásokról (pl. a 40 és 56 bit hosszúságú kulcsot alkalmazó DES algoritmusról) pedig tudjuk, hogy nagyteljesítményű gépeken már akkor is rövid (pár perctől egy-két napig terjedő) időn belül feltörhetőek voltak. A DES eljárás ugyanis a 70-es évek terméke, és csak az akkori számítási teljesítményhez képest számított erős titkosítási eljárásnak.
3. Ha aggódunk a küldött/fogadott/tárolt titkos információk visszafejthetetlenségéért, használjunk olyan erős titkosítási eljárást használó szoftvereket, melyek nyílt forrásúak, így ellenőrizhetően mentesek beépített hátsó kapuktól, és/vagy az USA határain kívül készültek, így nem esnek az amerikai exportkorlátozások hatálya alá.

Szimmetrikus titkosítás
Ennél az eljárásnál a titkosításhoz és a visszafejtéshez használt kulcs megegyezik, vagy egyik könnyen kiszámolható a másikból.

Image:m7titk2.gif

A legegyszerűbb példa erre a Julius Caesar által egykor használt titkosítás, ahol a szöveg minden egyes betűjét az abc-ben tőle jobbra eső első, második, n-edik betűvel helyettesítjük:
Tehát az ábécé betűiből:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a példa kedvéért három hellyel eltolva a következőt kapjuk:
DEFGHIJKLMNOPQRSTUVWXYZABC,
ahol D=A, E=B, F=C, stb. Ha ezzel az eljárással a TITOK szót kódoljuk, a rejtjelezett üzenet WLWRN lesz. A titkosító algoritmus kulcsa pedig, amit a címzettel biztonságos módon tudatni kell, a 3-as szám.
A szimmetrikus kódolók előnye, hogy az algoritmusok gyorsak, megvalósítható a valós idejű titkosítás. Hátrányuk, hogy a kulcsot az adatátvitel előtt valahogy el kell juttatni egyik féltől a másikig. Mivel a két fél közötti csatorna nem biztonságos, ezért erre valamilyen speciális módszert kell találni. A kulcsot feltétlenül titokban kell tartani. Amennyiben valaki hozzáfér, úgy képes az összes korábbi üzenetet dekódolni, illetve bármelyik fél nevében üzenetet hamisítani. Másik komoly probléma, hogy minden kommunikációs partnerhez különböző kulcsot kell használni, hisz közös kulcs esetén el tudnák olvasni egymás üzeneteit.
Ismertebb algoritmusok: DES, TripleDES, AES (Rijndael), Blowfish, CAST, IDEA, Twofish, MARS.

Aszimmetrikus titkosítás
Mint láttuk, a szimmetrikus eljárás gyenge pontja a titkosítás kulcsa, amit valamilyen megbízható módon kell a címzettel tudatnunk. Ezt a problémát a nyilvános kulcsú titkosító algoritmusok oldják meg, melyek egy összetartozó kulcspárt használnak. Az egyik neve privát, vagy más néven titkos kulcs (private key), ezt - mint a neve is mutatja - titokban tartjuk. A másik, nyilvános kulcsot (public key) pedig szabadon elérhetővé tesszük bárki számára.

Image:m7titk3.gif

Fontos, hogy a privát kulcsból könnyen elő lehet állítani a nyilvános kulcsot, azonban ez fordítva már nem, vagy nagyon nehezen lehetséges. Ez magyarul azt jelenti, hogy a kellően biztonságosnak ítélt titkosítási eljárással létrehozott rejtjelezett szöveg visszafejtése a jelenleg elérhető komputeres számítási kapacitással legalább néhány emberöltőig eltartana.

A felhasználó szempontjából legfontosabb tulajdonság, hogy az egyik kulccsal kódolt információt kizárólag a másik kulccsal lehet visszafejteni. Ha titkos üzenetet akarunk küldeni valakinek, a következő lépések történnek:

1. Egy nyilvánosan elérhető, megbízható forrásból, pl. magától a címzettől, vagy kulcsszerverről megszerezzük a címzett nyilvános kulcsát.
2. Az üzenetet kódoljuk ezzel a kulccsal, majd elküldjük.
A kódolt üzenet csakis a címzett privát kulcsával nyitható, tehát ha az eredeti üzenetet elvesztettük, vagy töröltük, a titkosított üzenetből még mi sem tudjuk visszafejteni.
3. A megkapott üzenetet a címzett saját privát kulcsával visszafejti, a végeremény az eredeti, titkosítatlan szöveg lesz.

Mint látható, a módszer nagy előnye a szimmetrikus megoldással szemben, hogy itt nincs szükség védett csatornán történő előzetes kulcsegyeztetésre. Hátránya, hogy sebessége jóval lassabb mint a szimmetrikus megoldásé, így nagy mennyiségű adat védelmére egyelőre nem használják. Remekül hasznosítható azonban a kettő kombinációja: a szimmetrikus kulcs cseréjére használt csatornát aszimmetrikus titkosítással védik a kulcscsere idejéig, majd átválanak a jóval gyorsabb szimmetrikus módszerre. A legtöbb ma használt kommunikációs protokoll (pl. SSL, SSH) ezt a megoldást alkalmazza a biztonságos adatcseréhez.
Legismertebb algoritmusok: Diffie-Hellmann, RSA, DSA.

A leggyakrabban használt eszközkészlet a PKI (Public Key Infrastructure, nyilvános kulcsú infrastruktúra), mellyel digitális tartalmak eredetiségét, változatlanságát, forrásának azonosítását végezhetjük el. Ennek párja a fent leírt nyilvános kulcsú, aszimmetrikus titkosítás (PKE, Public Key Encryption), mely a rejtjelezéssel kapcsolatos feladatokat látja el. A kettő legtöbbször szoros kapcsolatban áll egymással, így sok termék mindkét komponenst tartalmazza, ilyen például a PGP vagy (részben) az OpenSSL csomag.

A digitális tartalmak védelmének egyik kulcseleme tehát a titkosítás, mellyel biztosíthatjuk, hogy illetéktelenek ne férhessenek hozzá a bizalmas információkhoz. Továbbra sem lehetünk azonban bizonyosak abban, hogy az adatok, üzenetek forrása valóban az állítólagos feladó, valamint, hogy a tartalom megegyezik-e az eredetileg elküldöttel.

[szerkesztés] Elektronikus aláírás

A nyilvános kulcsú titkosítás lehetővé teszi, hogy az információk titkosítása mellett elektronikus aláírásokat is használjunk. Az elektronikus aláírás az üzeneteket nem rejtjelezi, célja a titkosítással szemben mindössze az, hogy a címzett meggyőződhessen arról, hogy a neki küldött információ valóban a feladótól származik, és azt más nem módosíthatta.
Az elektronikus aláírás létrehozásához a küldő a saját privát kulcsát használja, hitelességét pedig a címzett ellenőrzi le a küldő nyilvános kulcsával.

Image:m7titk4.gif

[szerkesztés] Tanúsítványok

A nyilvános kulcsú titkosítási eljárások használatakor fontos, hogy a titkosított üzenet küldése előtt megbizonyosodjunk arról: valóban a címzett nyilvános kulcsát használjuk-e. Ha közvetlenül tőle kaptuk meg, ez nem okoz problémát, ha azonban nyilvános helyről jutunk hozzá, valamilyen módon meg kell győződnünk az eredetiségéről. Erre használható a digitális tanúsítvány (certificate).
Ez az elektronikus tanúsítvány a következő információkat kell tartalmazza:

1. Az adott személy/szervezet nyilvános kulcsa
2. Az adott személy/szervezet adatai: pl. neve, lakhelye, munkahelye, vagy más adatai;
3. Egy, vagy több digitális aláírás: azoknak a szervezeteknek és/vagy személyeknek az aláírása, akik igazolják a fentiek valódiságát.

Az információk valódiságát, helyességét, eredetiségét, sértetlenségét igazolhatják
(1) egymás között maguk a felhasználók (web of trust), vagy
(2) egy szervezet, melyben a tanúsítványt felhasználók közössége megbízik. Ez a szervezet a Hitelesítési Szolgáltató (vagy Megbízható Harmadik Fél, Hitelesítő Hatóság, Hitelesítő Szervezet; Certification Authority, CA.)

X.509
Az X.509 olyan kommunikációs szabvány, mely az elektronikus tanúsítványok szerkezetére, felépítésére, tartalmára ad előírásokat. Tartalmazza a tanúsítvány verziószámát, egyedi sorozatszámát, a Hitelesítő Hatóság által az aláíráshoz használt algoritmus azonosítóját, a kibocsátó Hitelesítő Hatóság azonosítóját, a tanúsítvány érvényességi idejét, a tulajdonos egyedi azonosítóját, a tanúsítványhoz tartozó nyilvános kulcsot és annak algoritmusát, valamint más, a szabványt kiegészítő ún. toldalékokat.

Image:m7cert1.png
e-mail tanúsítvány, Outlook Express

A személyes hitelesítés azt szavatolja, hogy azok vagyunk, akiknek mondjuk magunkat. Ez a hitelesítés olyan személyes adatokat igényel, mint például felhasználónevünk és jelszavunk. Ezekre az adatokra akkor van szükség, amikor az Interneten keresztül személyes információt küldünk egy olyan Web-helyre, amely kilétünket bizonyító hitelesítést igényel. Ezenkívül használhatjuk titkosított kommunikációhoz más formában is (elektronikus levelezés, biztonságos bejelentkezés helyi hálózatba, stb.). Az ilyen személyes hitelesítés kiadója lehet független hitelesítő hatóság (Verisign, Thawte, Netlock, Microsec e-Szignó, stb.) vagy saját cégünk, vagy szervezetünk. Az aláírás ellenőrzésére szolgáló, a levélhez csatolt, vagy a tanúsítványtárból letöltött tanúsítvány ellenőrzésekor össze kell hasonlítanunk az üzenet küldőjének és a tanúsítvány tulajdonosának e-mail címét.

A helyhitelesítés, szervertanúsítvány azt igazolja, hogy az adott Web-hely biztonságos és valódi. Garantálja, hogy más webhely nem élhet vissza az eredeti webhely azonosítóival. A helyhitelesítéseket kiállításukkor dátummal is ellátják. Ha megpróbáljuk megnyitni egy szervezet Web-helyét, a böngészőprogram ellenőrzi, hogy a hitelesítésben tárolt Internet-cím helyes-e, azonos-e az éppen megtekintett oldal címével, és hogy az aktuális dátum nem lépte-e túl a lejárat dátumát.

Image:m7cert2.png
helyhitelesítés Mozilla böngészőben

Ha az adatok nem aktuálisak vagy nem érvényesek, a böngészőprogram figyelmeztetést jeleníthet meg. A böngészőben a hiteles Web-helyeket nem az egyszerű HTTP protokollon keresztül, hanem az SSL titkosítást használó HTTPS protokollon nyitunk meg. A helyhitelesítésekkel általában olyan Web-helyeken találkozhatunk, ahol fontos, hogy a szerver és a számítógépünk között az adatforgalom titkosított csatornán történjen: például Internetes banki ügyintézés, tőzsdei megbízások, hitelkártya-tranzakciók, stb.

A programkészítői hitelesítés, szoftvertanúsítvány pedig azt igazolja, hogy egy az éppen gépünkre telepítendő programhoz gyártója a nevét adja, és az ő személyazonosságát, a program eredetiségét és sértetlenségét egy megbízható harmadik fél tanusítja.

Image:m7cert3.png
szoftvertanúsítvány Internet Explorer böngészőben

Tanúsítvány osztályok (class)
Tanúsítvány és tanúsítvány között nagy különbségek lehetnek: míg vannak tanúsítványok, amelyek gyakorlatilag semmit sem érnek, mert a kibocsátó egyáltalán nem kezeskedik azért, hogy a tulajdonos valóban az, aki fel van benne tüntetve, vannak olyanok is, amelyekhez nagyon komoly garanciák kapcsolódnak. A tanúsítványok ugyanazon Hitelesítő Hatóságon belül is különböző osztályokba szerveződnek, mely osztályokat általában betűjelek (A, B, C), vagy számok (1, 2, 3) különböztetik meg. Az osztályba sorolásra sajnos nincs általánosan elfogadott rendszer; a Netlock magyar hitelesítő szolgáltató például (a bizonytalanságot elkerülendő) néven is nevezi az Expressz (C, leggyengébb), Üzleti (B), illetve Közjegyzői (A) tanúsítványait.

Visszavonási lista (CRL)
Bár a tanúsítványoknak létezik érvényességi ideje, szükség lehet arra, hogy a lejárat előtt visszavonásra, felfüggesztésre kerüljenek a kibocsátó által, hasonlatos módon egy bankkártyához. A visszavonás okai közt megemlíthetjük a titkos kulcs kompromittálódását (a kompromittálódás gyanúját), vagy például a tulajdonos nevének megváltozását. A visszavont tanúsítványok egy ún. tanúsítvány-visszavonási listára kerülnek, melyet a kibocsátó nyilvánosan elérhetővé tesz. (Példa: GlobalSign visszavonási lista.)

Valósidejű tanúsítványállapot-közzététel (OCSP)
Az Online Certificate Status Protocol (OCSP) a visszavonási listák alternatívája, egy olyan, HTTP-n alapuló protokoll (RFC 2560), amivel egy tanúsítvány státusza (érvényes, érvénytelen vagy ismeretlen) ellenőrizhető. A visszavonási listákkal szembeni előnyei:

  • egy tanúsítvány visszavonása azonnal érvényre jut, szemben a CRL-ek általában napi frissítási gyakoriságával;
  • egy tanúsítvány állapotának ellenőrzésekor nem szükséges a teljes (olykor nagyméretű) lista letöltése, csökken a hálózaton bonyolított forgalom;
  • a visszavonás ellenőrzését végző alkalmazásnak nem kell a lista értelmezését és feldolgozását elvégeznie (egyszerűsödik a programozási feladat, erőforrás-takarékosabb).
Nézetek
Személyes eszközök