Nyilvános kulcsú
titkosítás
Hálózat biztonság• Legyen Alice és Bob két ember aki
“biztonságosan” szeretne kommunikálni.• Hálózati nyelven Alice és Bob lehet:
– Két router– Két host– Két e-mail applikáció
• Alice és Bob “bizonytalan” környezetben kommunikálnak, ahol a betolakodók elolvashatják és módosíthatják egymásnak küldött üzeneteiket
• A biztonságos kommunikáció jellemzői:– Titoktartás: csak Alice és Bob értheti az üzenet
tartalmát– Azonisítás (hitelesség): mindenki az-e akinek vallja
magát?– Sértetlenség (épség)
Hálózat biztonságInternetes hálózat-biztonság• Tényleg léteznek ilyen “betolakodók”
amelyek lehallgatják a hálózaton közlekedõ üzeneteket? A válasz: IGEN.– A "szaglászó" (packet sniffer) olyan
program, mely a hálózat egy egységén fut és lehetővé teszi a hálózaton áthaladó valamennyi adatcsomag elolvasását. Az Ethernet LAN környezet esetén ez azt jelenti, hogy a szaglászó megkapja mind azokat a frame-eket ameyleket bármely LAN- host küldi vagy kapja.
Hálózat biztonságInternetes hálózat-biztonság
– Bármely internethez csatlakozó egység adatgrammokat küld a hálózatba. Ezek a küldő IP címét is tartalmazzák, amit viszont a küldő nek lehetősége van megváltoztatni. Ezt a technikát IP spoofing-nak nevezzük.
Kriptográfia
• Kriptográfiai technikák segítségével a küldő kódolhatja az üzenetet úgy, hogy a betolakodók ne értsék a lehallgatott adatokat. Viszont a címzett képes kell legyen ezt megfejteni, hogy megértse.
Szimmetrikus (titkos) kulcsú titkosítás elve– a P nyílt szövegből egy C titkosított szöveget állítunk elő
egy E titkosító függvénnyel és a kulccsal az alábbi módon:
– hasonlóan, a titkosított szövegből, a kulcs és egy D megfejtő függvénnyel az eredeti nyílt szöveget megkapjuk, mint:
• Megjegyzés:
)(PEK
(P)EC K
(C)D P K
(P))(DEP (P))(ED KKKK
KriptográfiaNyilvános kulcsú titkosítás elve
– Mindkét fél (Alice és Bob) két kulccsal rendelkezik: • nyilvános (K): mindenki ismeri • privát (K*): csak a tulajdonos ismeri
– A kódoló algoritmus mindenki rendelkezésére áll
– Ahhoz, hogy Alice titkosított üzenetet küldhessen Bobnak, Bob nyilvános kulcsát kell ismernie => ennek segítségével kódolja az üzenetet=>az így titkosított szöveget csak a Bob titkos kulcsával lehet megfejteni
KriptográfiaNyilvános kulcsú titkosítás elve
– Problémák:• A betolakodók nem értik ugyan az Alice által
küldött üzenetet, viszont módosíthatják, hozzáfûzhetnek hiszen ismerik Bob nyilvános kulcsát és a kódoló algoritmust is.
• A betolakodók Alice nevében üzenetet küldhetnek Bobnak
Ezek megoldásáról szó lesz a továbbiakban.
– A leg ismertebb nyilvános kulcsú kódoló algoritmus az RSA
Hitelesítés• Gyakran előfordul, hogy a hálózat elemeinek
(pl. routerek vagy kliens/szerver folyamatok) azonosítani kell egymást. Hálózaton át ez csak üzenetek segítségével lehetséges, egy authentication(hitelesítési) protocol részeként.
• Általában egy hitelesítési protokoll bármely más protokoll futtatása előtt fut. (pl. Megbízható adatátvitel protokoll vagy email protocol).
• A hitelesítési protokoll előbb megállapítja a felek identitását (egymás számára) és csak utána mûködhetnek együtt.
Hitelesítés• A továbbiakban a hitelesítési protokoll
különböző verzióit követjük végig. Tételezzük fel, hogy Alice azonosulni akar Bob előtt.
Ap1.0– Alice egyszerûen az “Alice vagyok” üzenetet
küldi Bobnak– Bob nincs honnan tudja, hogy azt tényleg Alice
küldiAp2.0
– Ha Alice mindig ugyanarról a hálózati címről (IP címről) kommunikál, akkor Bob ezt leellenőrizheti az üzenet adatgrammjában
– IP spoofing történhet=> az így kapott adatgrammokat az első router elutasíthatja, ha úgy konfigurálják de ez nem biztos
HitelesítésAp3.0
– Legyen egy jelszó amit csak Alice és Bob ismer és ennek alapján azonosítsa Bob Alicet
– Packet sniffing történhet => a betolakodók megtudhatják a jelszót
Ap3.1– Alice szimmetrikus kulcsú titkosítással kódolja a
jelszót, így a betolakodók nem tudják meg => Alice elküldi Bobnak az üzenetet (“Alice vagyok”) és a kódolt jelszót => Bob dekódolja
– Packet sniffing történhet: bár a betolakodók nem tudhatják meg a jelszót, viszont megtudják kódját és a továbbiakban ezt elküldhetik Bobnak az Alice nevében
HitelesítésAp4.0
– Alice minden alkalommal más-más jelszót használ. Erre több mód is van:• Előre megegyeznek Bobbal egy jelszó-
sorozatban• Megegyeznek egy jelszó-generáló
algoritmusban
– A 3.0 verzióval csak az volt a gond, hogy Bob nem tudott különbséget tenni az erededeti azonosítás és a playback között.
HitelesítésAp4.0
– Hogyan bizonyíthatja be Alice, hogy “élőben” küldte a jelszót? • Alice elküldi Bobnak az “Alice vagyok ” üzenetet• Bob elküld Alicenek egy olyan számot, amelyet
nagyon hosszú idő alatt csak egyszer használ (“nonce”)
• Ezt Alice a mindkettőjük által ismert titkos kulcs segítségével kódolja és visszaküldi Bobnak
• Bob dekódolja a visszakapott (kódolt) üzenetet és ha ugyanazt kapja mint amit elküldött, akkor Alice “élő”.
HitelesítésAp5.0• Használhatunk-e nyilvános kulcsú kriptográfiát
az azonosítás megoldására?• Hogyan?
– Alice elküldi az "Alice vagyok" üzenetet Bobnak– Bob kiválaszt egy “nonce” számot (R) és elküldi
Alicenek.– Alice alkalmazza a dekódoló algoritmust saját titkos
kulcsával ( ) a kapott számra:
majd az eredményt elküldi Bobnak.– Bob alkalmazza Alice nyilvános kulcsát és kódoló
algoritmusát ( ) a kapott értékre:
Ha ez az érték megegyezik az eredetileg küldött számmal (R), akkor azonosítja Alicet.
(R)dA
Ad
Ae (R))(ed AA
HitelesítésAp5.0 annyira biztonságos, mint Ap4.0?• Tekintsük a következő példákat (legyen
Trudy a betolakodó): • I. példa
HitelesítésAp5.0 annyira biztonságos, mint Ap4.0?I. Példa, magyarázat:• Trudy elküldi Bobnak az “Alice vagyok ” üzenetet• Bob elküldi a kiválasztott “nonce” számot
Alicenek, viszont Trudy elfogja ezt a számot, majd saját dekódoló algoritmusát és titkos kulcsát és alkalmazza rá:
• és a kapott értéket küldi Bobnak.• Bob elküldi Alicenek az üzenetet, amelyben Alice
nyilvános kulcsát ( )kéri. Trudy elfogja ezt az üzenetet is és saját nyilvános kulcsát ( ) küldi el. Bob kiszámolja a
értéket és azonosítja Alicet…
(R)dT
Ae
Te
(R))(ed TT
HitelesítésAp5.0 annyira biztonságos, mint Ap4.0?• II. Példa
Sértetlenség
Előfordulhat, hogy Alice és Bob nem élőben kommunikálnak, hanem levélben.
• Kérdés: Hogyan lehet biztos Bob, hogy egy levél valóban Alicetól érkezett és út közben nem módosult?
• Megoldás: Alice digitális aláírása alapján mely a következő tulajdonságokkal rendelkezik:– lehetővé teszi az aláíró személyének egyértelmű
meghatározását– egyértelműen megállapítható az aláírt
elektronikus irat az aláírást követő módosulása
Sértetlenség
Digitális aláírás megvalósítása I.• Alice saját titkos kulcsát alkalmazza az
üzenetre, majd elküldi Bobnak• Bob Alice dekódoló algoritmusát és
nyilvános kulcsát alkalmazza a kapott üzenetre és visszakapja az eredeti szöveget, hiszen
m(m))(de AA
Sértetlenség
Digitális aláírás megvalósítása II.Elég csak az üzenet egy részét kódolni
mivel ez is biztosítja az integritást• Alice a H hash-függvénnyel meghatározza
az üzenetkivonatot (message digest)– Megjegyzés: A H hash-függvény ugyanahhoz
az üzenethez mindig ugyanazt a kivonatot rendeli, de két különböző üzenethez sosem rendeli ugyanazt
Sértetlenség
Digitális aláírás megvalósítása II.• helyett elég kiszámolni a
értéket és ezt elküldeni Bobnak az üzenettel együtt
• Bob Alice nyilvános kulcsával dekódolja a kapott digitális aláírást és kiszámolja a H(m) értéket. Ha a kettő megegyezik akkor a Bobhoz ért üzenet sértetlen és hiteles.
(m)dA (H(m))dA
Kulcs kiosztás és igazolás
• A hitelesítés keretén belül az utolsú példa arra hívta fel a figyelmet, hogy a nyilvános kulcs nem biztos, hogy elér a címzetthez hiszen a betolakodók hamisíthatják. Hogyan kerülhetjük ezt el?
• Szükség van egy megbízható közvetítőre. A szimmetrikus kriptográfia közvetítője a Key Distribution Center (KDC)
• A nyilvános kulcsú kriptográfia a Certification Authority (CA)-t használja
Kulcs kiosztás és igazolás - KDC
Hogyan használható a KDC?Minden KDC-felhasználó rendelkezik egy-egy titkos kulccsal,
amelyet a KDC is ismer.Pl.
Kulcs kiosztás és igazolás - CA
• A CA célja egy nyilvános kulcs egy entitással való összekötése. – Hitelesség-vizsgálat: egy entitás valóban az,
akinek vallja magát? => identitás ellenőrzés (azonosítás)
– Olyan tanúsítvány (certificate) létrehozása, amely tartalmazza a nyilvános kulcsot és a kulcs tulajdonosára vonatkozó azonosító információt
– A tanúsítványt CA digitálisan aláírja
Kulcs kiosztás és igazolás - CA
Miért szükséges a CA?
Kulcs kiosztás és igazolás - CA
Hogyan használja Bob a tanúsítványt?• Az üzenettel együtt Bob elküldi a
tanúsítványt is Alicenak• Alice a CA nyilvános kulcsával ellenőrzi,
hogy a tanúsítvány a Bob tanúsítványa-e• Megjegyzés: feltételezzük hogy a CA
publikus kulcsát mindenki ismeri és hogy megbízható körülmények között tették ismertté
Internetes biztonságAz Internet Protokoll Verem (IP Stack)
felső 4 rétegét biztonsággal láthatjuk el.
Miért nem elég csak a hálózai réteget biztonságba helyezni?
• A hálózati szint biztonsága nem vonja maga után a felhasználói szintû biztonságot (egy IP cím alapján nem azonosíthatjuk a felhasználót)
• Az internetet által nyújtott szolgáltatásokat könnyebb a protokoll verem felső rétegein fejleszteni, így a biztonsági szolgáltatásokat is
application
transport
network
link
physical
Biztonságos e-mail
Megjegyzés: ebben a fejezetben az alkalamazási réteg biztonságáról lesz szó, az e-mail egy sajátos alkalmazás réteg protokoll (case of study).
• Ha egy specifikus applikáció réteg protokollnak biztoságot nyújtunk, akkor az összes applikáció amely ezt a réteget használja, biztonságot fog élvezni
• Az e-mail esetén fontos a biztonság mindhárom részét betartani (titoktartás, hitelesség, sértetlenség) => gondoljunk arra, hogy Alice és Bob e-maileznek
Biztonságos e-mailTörődjünk előbb a titoktartással• A szimmetrikus kriptográfia használata esetén
a közös titkos kulcs megállapítása nehézkés• A nyilvános kulcsú kriptográfia nagyon lassú
lenneA megoldás: a két kriptográfia kombinált
használata• Alice kiválaszt egy szimmetrikus kulcsot és kódolja
az üzenetet, a szimmetrikus kulcsot pedig kódolja Bob nyilvános kulcsával és mindkettőt elküldi Bobnak
• Bob saját titkos kulcsával megfejti a titkos szimmetrikus kulcsot, majd a szimmetrikus kulccsal megfejti az üzenetet
Biztonságos e-mail
Titoktartása két kriptográfia kombinált használata
Biztonságos e-mailA következőkben olyan rendszert tervezünk,
amely hitelességet és sértetlenséget nyújt, a titoktartás most nem érdekel
• Alice a H hash-függvénnyel megkapja az üzenetkivonatot, majd ezt saját titkos kulcsával kódolja és a sima üzenettel együtt elküldi Bobnak
• Bob Alice nyilvános kulcsával megfejti az elektronikus aláírást és összehasonlítja az üzenetkivonattal,amit ő is megkapott a H függvénnyel=> ha a kettő megegyezik, akkor tudja hogy Alicetól kapta a levelet és út közben nem módosult
Biztonságos e-mail
Most tervezzünk olyan rendszert, amely titoktartást, hitelességet és sértetlenséget nyújt => kombináljuk az előzőleg megtervezett két rendszert
Biztonságos e-mailPGP (Pretty Good Privacy)• A leg elterjedtebb e-mail titkosító módszer,
standarddá vált• Szerkezete megegyezik a leg utóbbi ábrán látható
szerkezettel• Hogyan mûködik?
– Amikor installáljuk, létrehoz egy titkos és egy nyilvános kulcsot
– A nyilvános kulcs feladható egy web-oldalra vagy nyilvános kulcs-szerverre, tanúsítvány is készíthető hozzá
– A titkos kulcs jelszóval védett, minden hozzáférés csak jelszóval lehetséges
– Lehetőséget ad kódolni és digitálisan aláírni az üzeneteket
Elektronikus kereskedelem• Nem más, mint az interneten át történő vásárlás• A ’90es években sok terv készült az e-
kereskedelem megvalósítására, ezek közül azonban csak keveset implemetáltak
• A mai internetes tranzakciók nagyrésze az SSL-t (Secure Socket Layer) használja, de az SET (Secure Electronic Transactions ) komoly konkurenciát jelent neki a jövőre nézve
• Az e-kereskedelem 3 “főszereplője”:– Kliens– Eladó– Az eladó “bankja”
Elektronikus kereskedelem
Legyen Bob a vevő,aki az Alice site-járól akar vásárolni => ki is tölti az “ûrlapot”
• Milyen meglepetések érhetik Bobot, ha a biztonságról nem gondoskodunk? Pl.:– A betolakodók leolvassák a Bob hitelkártyájáról szóló
információt (titoktartás sértés)– A Trudy oldalán megjelenhet Alice cégének reklámja, aki
viszont elzsebeli a pénzt és Bob nem jut a megrendelt termékhez(hitelesség sértés)
• Az SSL egy protokoll réteg, amely a hálózati (Network layer) és az alkalmazási rétegek (Application layer) között van. Mindenféle forgalom titkosítására használható.
Elektronikus kereskedelemMit nyújt az SSL?• SSL-szerverazonosítás: a kliens meggyőzödhet egy
szerver azonosságáról. Egy SSL-felhatalmazott böngésző megbízható CA-listát tart fenn a nyilvános kulcsokkal együtt. Ha a Web-böngésző “üzletelni” akar egy SSL-felhatalmazott szerverrel, akkor kéri tanúsítványát és nyilvános kulcsát
• Titoktartás: a böngésző és a szerver között küldött adatok titkosítása, sőt a betolakodókat is leleplezi
• SSL-kliensazonosítás: a szerver lekérheti a kliens CA-tanúsítványát, hogy azonosítsa (opcionális)
Elektronikus kereskedelem SET• Kimondottan a bankkártyás fizetések Internetes
tranzakciójának biztonságos lebonyolítására tervezett protokoll.
• 1997-ben a MasterCard, a VISA, az IBM és más informatikai vállalatok együttesen fejlesztették ki
Fő jelemvonásai:• Fizetéssel kapcsolatos üzenetek titkosításának
céljából tervezték, így nem alkalmas szöveg vagy képek titkosítására
• A 3 “főszereplő” között közlekedő üzeneteket mind kódolja, midhárom CA-tanusítvánnyal kell rendelkezzen
• A kliens hitelkártya-száma úgy jut az eladó bankjához, hogy az eladó nem is látja. Ez megelőzi azt, hogy a tisztességtelen eladók ellopják a kártyaszámot
Hálózati réteg biztonsága: IPsec
Mit jelent a titoktartás, hálózati szinten?• Az összes IP adatgramm titkosítása, amely
a hálózaton áthaladMit jelent az azonosítás, hálózati szinten?• Ha egy adatgramm bizonyos IP címmel
érkezik, meg kell bizonyosodni arról, hogy valóban az az IP címû host generálta => IP spoofing megelőzése
Hálózati réteg biztonsága: IPsec
Az IPsec protokoll-készletnek két fő protokollja van, minden host ezek egyikét használja:
• Authentication Header (AH) protokoll: hitelesítés, integritás
• Encapsulation Security Payload (ESP) protokoll: integritás, titkosítás
Mindkét protokoll (AH, ESP) esetén még az adatgramm elküldése előtt a két host között
• kézszorítás történik • megteremtődik a logikai kapcsolat (hálózati réteg
szintjén), a Security Agreement (SA)
Hálózati réteg biztonsága: IPsec
Az AH protokollt alkalmazo adatgrammAz AH fejlécének mezői: • Next Header: az adatszegmens típusát adja meg• Security Parameter Index (SPI): 32-bites érték,
amely hozzájárul az SA-kapcsolat azonosításához.
Hálózati réteg biztonsága: IPsec
Az AH fejlécének mezői: • Sequence Number: 32-bites érték, az
adatgramm sorszáma• Authentication Data: változó
hosszúságú mező, digitális aláírást tartalmaz a csomaghoz– Az üzenetkivonat az eredeti IP adatgrammból
származik, a küldő hostot azonosítja és sértetlenséget biztosít.
– A digitális aláírás algoritmusát az SA adja meg, ez lehet DES, MD5 vagy SHA.
Hálózati réteg biztonsága: IPsec
Az ESP protokollt alkalmazó adatgramm• ESP Trailer: a Next Header mezőt is
tartalmazza, így azt is kódoljuk az adatokkal együtt => a betolakodó nem tudja meghatározni a használt szállítási protokoll típusát
Top Related