Személyes adatok korszerű informatikai védelmének elmélete
A titkosítás a szöveg módosítása úgy, hogy azt csak egy titkos módszerrel lehet visszaállítani az eredeti, olvasható állapotra.
Ma olyan a korszakban élünk, amelyben az információ nagyon értékes lehet. Az ilyen értékes információ megvédésére mindenkinek és minden szervezetnek szüksége van.
Tárolt adataink valamint kommunikációink védelmére számos megoldás létezik az informatikában. Erre használhatunk tűzfalakat, mac address szűrést, titkosítást, adatrejtést, fizikai elválasztást és még számos eljárást. Jelen cikk ezen megoldások közül a titkosításokat, azon belül a korszerű, informatikában alkalmazott eljárásokat tárgyalja.
A titkosítás alapvető célja, hogy titkos adatokat juttassunk el a feladótól a címzettig egy nem biztonságos csatornán keresztül. A titkosítás másik célja, hogy a tárolt adatokhoz csak bizonyos személyek férhessenek hozzá.
A titkosítások lehetnek
- szimmetrikusak – amikor a kódoláshoz és a dekódoláshoz ugyanazt a kulcsot használjuk) és
- aszimmetrikusak – amikor a kódoláshoz és a dekódoláshoz más kulcsot használunk.
Szimmetrikus titkosítás
A szimmetrikus titkosítás előnye, hogy jóval gyorsabb, mint az aszimmetrikus titkosítás. Hátránya, hogy a feladónak és a címzettnek is ismernie kell a kulcsot, amit csak biztonságos csatornán javasolt elküldeni a feladótól a címzettnek, hiszen a kulcs megszerzésével bárki olvashatja az üzenetet.
Szimmetrikus kulcs alkalmazása esetén a kódolás és a dekódolás ugyanazzal a kulccsal történik. A kulcs lehet jelszó vagy kulcsfájl, esetleg ezek kombinációja.
Folyam (stream) titkosító algoritmus esetén a szöveget és a kulcsot bitenként XOR (kizáró vagy) művelettel összerendeljük. Ebben az esetben a kulcsnak és a szövegnek hasonló hosszúságúnak kell lennie, hogy ne lehessen felismerni az ismétlődést.
Az XOR művelet alkalmazása titkosításhoz
Szimmetrikus titkosítás például a DES, azonban ezt már nem szokták alkalmazni, mivel ez a titkosítás rövid időn belül visszafejthető.
Napjaink vezető szimmetrikus titkosító algoritmusainak az alábbiak mondhatóak:
- AES (Rijndael [‘reinda:l], az AES pályázat nyertese)
- Serpent (AES pályázatra készült)
- Twofish (AES pályázatra készült)
A fent listázott titkosító algoritmusok kombinálhatók is, így például, ha AES-el titkosítottunk egy adatot, azt még titkosíthatjuk Serpent algoritmussal is és a végeredményt tovább titkosíthatjuk Twofish-el. Akkor a legnagyobb a biztonság, ha ezeknél egymástól teljesen különböző kulcsot választunk.
Szimmetrikus titkosítást legtöbbször a tárolt adatok titkosítására alkalmazunk. A következő táblázat az néhány titkosítási algoritmus kódolási és dekódolási sebességét mutatja. A táblázat tartalmazza továbbá az egyes algoritmusok összefűzésével történő titkosítások sebességének mérését is. A táblázat az egyes algoritmusokat illetve algoritmusláncokat azok sebessége szerint csökkenő sorrendben ábrázolja.
Algoritmus |
Kódolás (MB/s) |
Dekódolás (MB/s) |
AES |
139 |
137 |
Twofish |
106 |
126 |
AES-Twofish |
58,0 |
60,8 |
Serpent |
58,2 |
58,8 |
Serpent -AES |
40,9 |
41,3 |
Twofish-Serpent |
39,4 |
40,3 |
AES-Twofish-Serpent |
30,4 |
29,8 |
Serpent-Twofish-AES |
29,4 |
30,8 |
A szimmetrikus algoritmusok kódolási és dekódolási sebességének összehasonlítása, a méréseket a szerző végezte
Aszimmetrikus titkosítás
Az aszimmetrikus titkosítás alkalmazása esetén a kódolási és dekódolási folyamat lassabb, mint a szimmetrikus módszereket alkalmazva. Emiatt ezt az eljárást nem szívesen alkalmazzák nagyméretű adatok titkosítására.
Az aszimmetrikus titkosítás esetén a kódolás egy nyilvános kulcs segítségével, még a dekódolás egy másik, úgynevezett titkos kulcs segítségével történik.
A legismertebb ilyen eljárás az RSA, amely a nevét a három megalkotójáról kapta:
Rivest, Shamir, Adleman
A gyakorlatban a működése úgy néz ki, hogy a kommunikáció résztvevői rendelkeznek saját nyilvános és titkos kulccsal.
A nyilvános kulcs segítségével titkosítható az adat, amely ezután már csak a hozzá tartozó – kizárólag a címzett birtokában lévő – titkos kulcs segítségével fejthető vissza. A nyilvános kulcsról tudni kell, hogy nem állítható elő belőle a titkos kulcs, és a nyilvános kulcs segítségével nem dekódolható az üzenet.
A folyamat tehát a következő a küldő és a címzett között:
- a címzett megosztja az ő nyilvános kulcsát
- a küldő a kapott nyilvános kulcs alapján kódolja az üzenetet
- a küldő elküldi az így titkosított üzenetet a címzettnek
- a címzett csak nála meglévő titkos kulcs segítségével visszafejti az üzenetet
PGP-módszer
A PGP-módszer alkalmazása egyesíti a szimmetrikus titkosítás gyorsaságát és az aszimmetrikus titkosítás biztonságát. Lényege, hogy az adat szimmetrikus titkosítással kódolt és e mellé elküldi a feladó a hozzá tartozó kulcsot aszimmetrikus titkosítással kódolva. A szimmetrikus titkosításhoz használt kulcsot véletlenszám-generátorral állítják elő, és jellemzően csak egyszer használják fel. Ezt a kulcsot session key-nek is nevezik. A session key kis mérete miatt a titkosítása relatív gyorsan történik.
A folyamat a következőképpen zajlik le a feladó és a címzett között:
- előállítják a szimmetrikus kulcsot
- ezen szimmetrikus kulcs segítségével titkosítják az adatot
- a címzett nyilvános kulcsa segítségével titkosítják a szimmetrikus kulcsot
- a titkosított adatot és titkosított szimmetrikus kulcsot elküldik a címzetthez
- a címzett saját titkos kulcsa segítségével dekódolja a szimmetrikus kulcsot
- a szimmetrikus kulcs segítségével dekódolja az adatot
Őszi Arnold
Óbudai Egyetem Bánki Donát Gépész és Biztonságtechnikai Mérnöki Kar
oszi.arnold@bgk.uni-obuda.hu
Kapcsolódó írásunk
Személyes adatok korszerű informatikai védelme a gyakorlatban