Kriptográfia Krasznay Csaba
Kriptográfia Mi a kriptográfia? Alapfogalmak Történet Kriptográfiai módszerek Titkosítás Feltörés Elektronikus aláírás
A kriptográfia célja Olyan matematikai algoritmusok, amelyek a CIA hármasból elsősorban a C – bizalmasság és a I – integritás megvalósítására szolgál A titkosítás hagyományosan (ahogy neve is mutatja) az illetéktelen hozzáférés ellen szolgált
Alapfogalmak Nyílt szöveg (cleartext) – a titkosítatlan információ, nem csak az arra feljogosított számára értelmezhető Titkos szöveg (ciphertext) – a titkosított információ, ebben a formájában értelmezhetetlen Kulcs – olyan információ, amely segítségével a titkosítási műveletek elvégezhetők Algoritmus (módszer) - olyan eljárás, amely a nyílt és a titkos szöveg közötti konverziót (betitkosítás – encryption; kititkosítás, megfejtés - decryption) végzi a kulcs segítségével
Titkosítás általában
Szimmetrikus és aszimmetrikus Ha a két kulcs ugyanaz – szimmetrikus titkosítás titkos kulcsú titkosítás – a kulcsnak titokban kell maradnia általában egyszerű, gyors algoritmusok Ha a két kulcs nem ugyanaz – aszimmetrikus titkosítás nyílt kulcsú titkosítás – az egyik kulcsnak nem kell titokban maradnia (lásd később) lassabb, bonyolultabb algoritmusok
A Kerkhoff elv Auguste Kerckhoff (holland kriptográfus, 1835-1903): „A titkosítási rendszer megbízhatósága nem alapulhat az algoritmus titokban tartásán, csak a kulcsok titkosságán” Shannon: „Az ellenség ismeri a rendszert.” Schneier: „A titkosítási rendszerben azt kell titokban tartani, amit a legkönnyebben tudunk cserélni, ha ismertté válik.” A „security by obscurity” általában bukás
Már a régi rómaiak is… Caesar titkosítása: betűhelyettesítés 1600-as évekig: kódszavak, betűhelyettesítés, titkos írásjelek, mind triviálisan feltörhető Balise de Vigenère (1523-1596): nagy lépés, a Vigenère féle titkosítás: a nyílt szöveg is része a kulcsnak. 200 évig nem tudták feltörni. Gyorsulás 1900-tól Második világháború: kriptográfia és kriptoanalízis alapvető fontosságú (pl. Enigma és megfejtése) 1976: DES és a nyílt kulcsú titkosítás (Diffie-Hellman), RSA
Még történelem 1991: Phil Zimmermann – PGP 1994: RC5 2000: AES (Rijndael)
Titkosítás Cél: a tárolt vagy átvitt információt elrejteni az illetéktelenek elől Két alapvető eljárás: blokkos – a nyílt szöveget blokkonként (pl. 64 bit) titkosítjuk folyam (stream) – a nyílt szöveget bitenként (pl. XOR) titkosítjuk. Visszacsatolt shift-regiszterrel blokkosból is lehet speciális eset: a kulcs mérete megegyezik a nyílt szövegével, bitenként XOR – „one time pad” elvileg sem törhető
Titkosítás Blokktitkosító Folyamtitkosító
Alaptípusok Helyettesítéses titkosítás pl. Caesar: TITKOS -> ZOZLPD Keveréses TITKOS –> OTSKIT Illetve ennek kombinációi, karakter, blokk vagy bit szinten
Kulcsszétosztás problémája Szimmetrikus titkosítás: gyors, egyszerű, de hogyan cserélünk kulcsokat? A küldőnek és a fogadónak (és csak nekik!) is birtokában kell lennie a kulcsnak Megbízható csatorna kell a kulcs átvitelére: személyesen, futár, stb. Nehezen működik tetszőleges felek között Nem skálázható
A megoldás: nyíltkulcsú titkosítás Kulcspár: titkos (privát) és nyilvános (publikus) Speciális algoritmus: amit a titkos kulccsal titkosítunk, csak a nyilvánossal fejthetjük meg amit a nyilvános kulccsal titkosítunk, csak a titkossal fejthetjük meg a nyilvános kulcsból nem következtethető ki a titkos A nyilvános kulcs nyilvánosságra hozható
Titkos átvitel A küld B-nek: B nyilvánosságra hozza nyilvános kulcsát A ezzel a kulccsal titkosítja az üzenetet és elküldi B-nek B a saját titkos kulcsával megfejti E lehallgatja az üzenetet, de neki nincs meg a titkos kulcs, nem tudja megfejteni! Kulcsszétosztás problémája megoldva: a nyilvános kulcs kiadható, a titkosra pedig csak a fogadónak van szüksége Másik irányú átvitelhez A kulcsára van szükség
Nyilvános kulcsú titkosítás
Gyakorlati megvalósítások A teljes üzenet titkosítása nem praktikus nyilvános aszimmetrikus módszerrel Generálunk egy véletlen kulcsot szimmetrikus eljáráshoz (session key) A két kommunikáló fél nyílt kulcsú eljárást használva megosztja a véletlen kulcsot A további kommunikáció szimmetrikus módszerrel történik Ilyen módszert használ pl. az SSL algoritmus is.
Forrás hitelesítése B üzenetet küld A-nak, és A szeretne meggyőződni, hogy tényleg B-től jött B titkosít saját titkos kulcsával A (és bárki más) az üzenetet megfejti B nyilvános kulcsával Az üzenet biztosan B-től származik, csak a titkos kulccsal lehet olyan üzenetet készíteni, amit a nyilvánossal lehet megfejteni F-nek nincs birtokában B titkos kulcsa, nem tud B nyilvános kulcsával megfejthető üzenetet generálni
Forrás hitelesítése
Példák Szimmetrikus DES double, triple-DES IDEA RC5 AES (Rinjdael) Nyílt kulcsú RSA ElGamal Diffie-Hellman Elliptikus Görbék Hash SHA-1 MD5
Törés Kriptoanalízis: hogyan tudjuk a kriptográfiát a kulcs ismerete nélkül megfejteni? Triviális megoldás a törésre: kipróbálunk minden lehetséges kulcsot – nem számít igazi törésnek, kulcsméret kérdése Elemzési módok: csak a titkos szöveg ismert ismert a nyílt szöveg és a titkos szöveg tetszőleges nyílt szöveget kipróbálhatunk
Törés Régen tipikusan statisztikai alapon Caesar – valós szövegben előforduló betűk arányai Vigenere – minden n-edik betűre vizsgálva az arányt Man-in-the-middle támadás Születésnapi paradoxon: A születésnap-paradoxon azon a megállapításon alapszik, hogyha egy szobában 23-an vannak, akkor valamivel több, mint 50% az esélye annak, hogy legalább kettőjüknek ugyanarra a napra esik a születésnapja. Ha legalább 60 ember van a szobában (teremben), ugyanennek a valószínűsége több, mint 99%. van valószínűsége annak, hogy két különböző dokumentum létezik azonos hash értékkel Áramfelvétel, időzítés vizsgálata Schneier: „Mindenki tud olyan titkosítást készíteni, amit maga nem tud feltörni!”
Alkalmazások Tárolt adatok titkosítása, Azonosítás és hitelesítés (pl. TLS, Kerberos), Hálózati kommunikáció titkosítása (pl. SSL, VPN), Dokumentumok sértetlenségének biztosítása, Operációs rendszer sértetlenségének biztosítása, stb.
Mi is az elektronikus aláírás? Olyan elektronikus formában rendelkezésre álló adatot jelent, mely hozzá van csatolva vagy logikailag társítva van egy másik elektronikus adathoz és a hitelesítés funkcióját látja el. Ez jelentheti akár a digitalizált hagyományos aláírást is, de NEM ezt értjük alatta a gyakorlatban!!!
Mi is az elektronikus aláírás? Az elektronikus aláírás a gyakorlatban egy olyan digitális adat, mely: az aláírt dokumentum lenyomatát felhasználva, az aláíró titkos kulcsával kódolva jön létre, mely egy aláírás-létrehozó eszközön található, felhasználva az aláíró tanúsítványát, amiben a dekódoló nyilvános kulcs is megtalálható, melynek érvényessége a visszavonási listán található, valamint tartalmazhat egy időbélyegzőt, melyek a hitelesítés-szolgáltatótól szerezhetők be.
Mi a lenyomat? Lenyomat: olyan meghatározott hosszúságú, az elektronikus dokumentumhoz rendelt bitsorozat, amelynek képzése során a használt eljárás (lenyomatképző eljárás) a képzés időpontjában teljesíti a következő feltételeket: a képzett lenyomat egyértelműen származtatható az adott elektronikus dokumentumból; a képzett lenyomatból az elvárható biztonsági szinten belül nem lehetséges az elektronikus dokumentum tartalmának meghatározása vagy a tartalomra történő következtetés; a képzett lenyomat alapján az elvárható biztonsági szinten belül nem lehetséges olyan elektronikus dokumentum utólagos létrehozatala, amelyre alkalmazva a lenyomatképző eljárás eredményeképp az adott lenyomat keletkezik.
0011010100100011101000111110
Mi a titkos kulcs? Olyan egyedi adat (jellemzően kriptográfiai magánkulcs), melyet az aláíró az elektronikus aláírás létrehozásához használ. Ezt az egyedi adatot csak és kizárólag az aláíró ismeri. Valamilyen bonyolult matematikai eljárás segítségével végrehajtott kódoláshoz szükséges paraméter, szám.
0011010100100011101000111110 1101101111000011010111011101
Mi az aláírás-létrehozó eszköz? Olyan hardver, illetve szoftver eszköz, melynek segítségével az aláíró az aláírás-létrehozó adatok felhasználásával az elektronikus aláírást létrehozza. Tipikusan egy intelligens kártya, vagy egy számítógépen tárolt fájl.
0011010100100011101000111110 1101101111000011010111011101
Mi a tanúsítvány? A hitelesítés-szolgáltató által kibocsátott igazolás, amely az aláírás-ellenőrző adatot egy meghatározott személyhez kapcsolja, és igazolja e személy személyazonosságát vagy valamely más tény fennállását, ideértve a hatósági (hivatali) jelleget. Gyakorlatilag az aláíró elektronikus személyi igazolványa, melyben megtalálható a nyilvános kulcsa is.
0011010100100011101000111110 1101101111000011010111011101
Mi az időbélyegző? Elektronikus dokumentumhoz végérvényesen hozzárendelt vagy azzal logikailag összekapcsolt olyan adat, amely igazolja, hogy az elektronikus dokumentum az időbélyegző elhelyezésének időpontjában változatlan formában létezett. Az aláírás után egy megbízható szolgáltatótól kért pontos idő, ami mindenki számára bizonyítja az aláírás pontos dátumát és időpontját.
0011010100100011101000111110 1101101111000011010111011101
Mi a nyilvános kulcs? Olyan egyedi adat (jellemzően kriptográfiai nyilvános kulcs), melyet az elektronikusan aláírt elektronikus dokumentumot megismerő személy az elektronikus aláírás ellenőrzésére használ. Mindenki által megismerhető paraméter, tipikusan egy szám. Segítségével a titkos kulccsal kódolt digitális adat dekódolható.
0011010100100011101000111110 1101101111000011010111011101 0011010100100011101000111110 0011010100100011101000111110 1101101111000011010111011101
Mi a visszavonási lista? Olyan gép által értelmezhető lista, melyet a hitelesítés-szolgáltató tesz közzé. Tartalmazza azokat a tanúsítványokat, melyek idő előtt érvénytelenné váltak. Azokat az elektronikus aláírásokat, melyek az aláírás időpontja előtt visszavont tanúsítványok felhasználásával készültek, nem fogadhatók el.
0011010100100011101000111110 1101101111000011010111011101 0011010100100011101000111110 0011010100100011101000111110 1101101111000011010111011101
Ki az a hitelesítés-szolgáltató? Elektronikus aláírással kapcsolatos szolgáltatást nyújtó természetes személy, jogi személy vagy jogi személyiség nélküli szervezet. Olyan harmadik fél, akiben törvény adta kötelezettségei miatt mindenki megbízhat.
0011010100100011101000111110 1101101111000011010111011101 0011010100100011101000111110 0011010100100011101000111110 1101101111000011010111011101
Törvényi háttér 2001. évi XXXV. Törvény az elektronikus aláírásról és 2004. évi LV. törvény az elektronikus aláírásról szóló 2001. évi XXXV. törvény módosításáról 3. § (1) Elektronikus aláírás, illetve elektronikus dokumentum elfogadását - beleértve a bizonyítási eszközként történő alkalmazást - megtagadni, jognyilatkozat tételére, illetve joghatás kiváltására való alkalmasságát kétségbe vonni - a (2) bekezdés szerinti korlátozással - nem lehet kizárólag amiatt, hogy az aláírás, illetve az irat vagy dokumentum elektronikus formában létezik. (8) Minősített tanúsítványt bármely - a (3)-(4) bekezdés szerinti - bírósági vagy államigazgatási eljárásban el kell fogadni.
Törvényi háttér 4. § (1) Ha jogszabály a 3. § (2)-(4) bekezdésében foglaltakon kívüli jogviszonyban írásba foglalást ír elő, e követelménynek eleget tesz az elektronikus dokumentumba foglalás is, ha az elektronikus dokumentumot fokozott biztonságú elektronikus aláírással írják alá. (2) Ha az elektronikus dokumentumon kívüli elektronikus dokumentumon minősített elektronikus aláírás szerepel és az aláírás ellenőrzésének eredményéből más nem következik, vélelmezni kell, hogy a dokumentum tartalma az aláírás óta nem változott.
Hogy is kell ezt érteni? Az elektronikus aláírásnak két olyan típusa van, mely az előadást tekintve érdekes: fokozott biztonságú elektronikus aláírás, minősített elektronikus aláírás. A fokozott biztonságú aláírás teljes egészében kiválthatja papíralapú ügymenetet az üzleti életben. A minősített elektronikus aláírás az állammal való kapcsolattartást is át tudja helyezni digitális alapokra – amennyiben ezt a terültre vonatkozó jogszabály megengedi.
Mindenhol jelenlevő alkalmazások Törvény szerint hiteles levél írása a partnernek gyakorlatilag bármelyik levelezőkliensből Fokozott biztonságú aláírással Pl. Microsoft Outlook 2003
Mindenhol jelenlevő alkalmazások
Mindenhol jelenlevő alkalmazások Hiteles dokumentumok létrehozása Pl. jelentés készítése fokozott biztonságú elektronikus aláírás segítségével Pl.: Microsoft Word 2003
Mindenhol jelenlevő alkalmazások
Mindenhol jelenlevő alkalmazások Nyilvánosan publikálható, aláírt vagy aláírandó dokumentum létrehozása Pl. megrendelőlap az interneten fokozott biztonságú elektronikus aláírás segítségével Pl. Adobe LifeCycle Reader Extensions és Adobe Acrobat Reader 6.0
Mindenhol jelenlevő alkalmazások
Egyéb lehetőségek A minősített elektronikus aláírás használata minősített alkalmazások használatával javasolt Ezeknek a nyilvántartása megtalálható a Nemzeti Hírközlési Hatóság honlapján (www.nhh.hu) Képesek bármilyen digitális dokumentumot hiteles elektronikus aláírással ellátni
Egyéb lehetőségek Nyilvántartásba vett alkalmazások: Máv Informatika Kft.: DSign Grepton: MultiSigno E-Group Rt.: Signed Document eXpert (SDX) Noreg Kft.: e-Sealer 1.0 Microsec Kft.: E-szignó Polysys: CryptoSigno Argeon: Infosigno, MySigno PSZÁF: IngridSigno DSS: Secure Digital Sign SDA Stúdió Kft.: XadesMagic
Jelenlegi alkalmazások Magánnyugdíj pénztári bevallások Kormányzati portál Cégbírósági ügyintézés Közjegyzők, bíróságok ELEKTRONIKUS SZÁMLÁZÁS
Nehézségek Az összes dolgozónak el kell fogadnia, meg kell ismernie az új technológiát. Valahogy a fogadó félnek is kezelnie kell az elektronikusan aláírt dokumentumokat. Hogyan lehet hosszú ideig tárolni, archiválni az aláírt dokumentumokat? Elektronikus archiválási szolgáltatással
Javaslatok a bevezetésre A teljes munkafolyamatot fel kell térképezni (-> vagyonleltár!) Az elektronikus aláírást folyamatosan, apró lépésekben kell bevezetni. Először az olyan dokumentumokra kell használni, amiket nem kell tárolni, csak egyszer láttamozni. Utána azok a dokumentumok jönnek, amiknek a tárolási ideje nem hosszabb a tanúsítvány lejárati idejénél. Végül az évekig tárolandó dokumentumok kérdését kell megoldani.
Javaslatok a bevezetésre Minden dolgozót be kell vonni a bevezetési projektbe. Először kiválasztott partnerekkel kell ilyen módon kommunikálni. A bevezetés során érdemes tanácsadót bevonni a munkába (ld. elektronikus aláírás szakértők az NHH honlapján).
Olvasnivalók Menezes, Oorschot, Vanstone: Handbook of Applied Cryptography, http://www.cacr.math.uwaterloo.ca/hac/ Schneier: Applied Cryptography Buttyán Levente, Vajda István: Kriptográfia és alkalmazásai Crysys labor: www.crysys.hu
Összefoglalás
A témához tartozó kérdések Adjon javaslatot a kriptográfia alkalmazására a megadott környezetben! Legalább egy oldal terjedelemben kérjük leírni a forgatókönyvet!
Köszönöm szépen! krasznay.csaba@kancellar.hu Az előadás letölthető: www.krasznay.hu/presentation/elte_06.pdf