Adatbázis kezelő szoftverek biztonsága Vasi Sándor
[email protected] G-3S8 2006.
Egy kis ismétlés... Adatbázis(DB): • integrált adatrendszer • több különböző egyed előfordulásainak adatait adatmodell szerinti struktúrában, (...) tárolja a kapcsolat leíró elemek mellett
Ember
Autó
DB
Egy kis ismétlés... Adatbázis Kezelő (DBMS): Feladata: • az adatbázishoz történő szabályozott hozzáférés biztosítása • az adatbázis belső karbantartási műveleteinek végrehajtása
Védelem Naplózás Integritás ellenőrzés Optimalizálás Párhuzamos hozzáférés ellenőrzés
DBMS
DB
és amiről ma szó lesz ... DBMS
A felhasználói szoftver, ami mindezeket használja
DB
és amiről ma szó lesz ...
És a felhasználó, ( aki ezekben megpróbál kárt tenni ... :)
DBMS
DB
A rendszerkomponensek viszonya I.
A rendszerkomponensek viszonya I. A DBMS, a Felhasználó, és a Program 1 helyen vannak (pl. Pascal cipőnyilvántartó program) 5 5 4 4 4
Nincs hálózati forgalom, nem lehet feltörni Gyors az adatkapcsolat Egy felhasználós progam Másolható a szoftver, és az adatbázis is A forrás „kéznél van”, bárki átírhatja, visszafejtheti
A rendszerkomponensek viszonya II.
A rendszerkomponensek viszonya II. A DBMS és a Program egy szerveren fut, a felhasználó egy terminál előtt ül SZERVER (DBMS + app.) VS felhasználó (pl. Webmail, vagy a Neptun) 5 Több felhasználós 5 Nem kell telepíteni (ezért plattform független) 5 A kapcsolat WEB-en lehet titkosított (HTTPS) vagy RDP protokollon keresztül (szintén titkosított) 5 A rendszerhez nem lehet közvetlenül hozzáférni 4 Lassú (Neptun, iwiw, ... ) 4 Nem túl interaktív a web miatt
A rendszerkomponensek viszonya III.
A rendszerkomponensek viszonya III. A DBMS egy szerveren fut, A Program egy kliensen fut A Felhasználó a kliens előtt ül SZERVER (DBMS) VS Felhasználó + App. 5 5 5 4 4 4
A kapcsolat gyors Az adatbázishoz nem lehet közvetlenül hozzáférni Több felhasználós A kliensprogram visszafejthető Az adatkapcsolat nem biztonságos A rendszergazdák nem szeretik, ha a DBMS-re localhost - on kívül mást is be kell engedni ...
A rendszerkomponensek viszonya IV.
SSL Tunnel
A rendszerkomponensek viszonya IV. A DBMS egy szerveren fut, A Program egy kliensen fut A Felhasználó a klienseket használja SZERVER (DBMS) VS Felhasználó + App. 5 5 5 5 4
Titkosított adatkapcsolat A kapcsolat még gyors (ugyan a titkosítás időt vesz el) Az adatbázishoz nem lehet közvetlenül hozzáférni Több felhasználós A kliensprogram visszafejthető
A visszafejtés veszélye mennyire reális? • Bármely futtatható program visszaalakítható assembly kóddá. – ennek a visszafejtése nagy szakértelmet kíván, és sokszor nem éri meg a fáradtságot!
Mi a helyzet a
alkalmazásokkal?
• A .NET programok kódja visszafejthető, ezzel minden .NET programozónak tisztában kell lennie! • Hogyan lehet visszafejteni a kódot? • Ingyenes .NET visszafejtő programok a Microsoft –tól: • Reflector for .NET ( visual basic-re, C# -re visszafordít bármit ) • Anakrino
( Bővebben lásd: www.goddotnet.com ) Itt kell megjegyeznem, hogy nem csak a .NET, hanem a JAVA alkalmazások is ugyanilyen veszélynek vannak kitéve!
Reflector for .NET működés közben
Hogyan lehet védekezni ellene? • A Microsoft javaslata: .NET Obfuscator A változókat olyan szavakra cseréli, melyek emberek számára érthetetlenek A program ugyanazt csinálja, mint eddig, csak a forrás megértghetetlen lesz • Én inkább ezt csinálnám: - Tegyük ki a jelszavakat olyan DLL fájlokba, amik nem .NET nyelveiben készültek. - Még jobb: használjuk a két módszert egyszerre
SSL Tunnel • AZ SSL Tunnel egy olyan alkalmazás, amely lehetővé teszi, hogy tetszés szerinti TCP kapcsoaltot SSL (Secure Sockets Layer) rétegen keresztül létesítsünk. • Az SSL Tunnel segítségével nem SSL képes protokollokat is (pl. POP, IMAP, LDAP ) titkosítani lehet anélkül, hogy a daemon program kódján változtatni kellene. • Kiválló megvalósítása a GNU licensz alá tartozó STunnel (www.stunnel.org)
Egy példa az SSL Tunnel működésére
SSL – a biztonságos csatlakozó réteg - 1995 – Netscape Communication Corp. Mit is nyújt valójában? 1. 2. 3. 4.
Paraméterek egyeztetése az ügyfél és kiszolgáló között Kölcsönös hitelesítés az ügyfél és a kiszolgáló között Titkos kommunikáció Az adatok sértetlenségének a biztosítása
SSL – a biztonságos csatlakozó réteg Az SSL segítségével böngésző otthoni felhaasználó által használt rétegek, és protokollok
Alkalmazási Réteg (HTTP) Bitonsági réteg (SSL) Szállítási réteg (TCP) Hálózati réteg (IP) Adatkapcsolati réteg (PPP) Fizikai réteg (modem, ADSL, kábeltv)
Még többet az SSL protokollról! Az SSL protokoll két alprotokollból áll: 1. Biztonságos összeköttetésért felelős alprotokoll 2. Az összeköttetés használatát megvalósító alprotokoll
1.- AZ SSL összeköttetés kiépítő alprotokollja 1.- SSL verzió, előnyben részesített beállítások, RA 2.- SSL verzió, választások, RB 3.- X.509 tanusítványlánc
5.- EB (előzetes kulcs) 6.-Válts kódot 7.-Kész 8.- Válts kódot 9.- Kész
Bob
Aliz
4.- Kiszolgáló rész
2.- Az összeköttetést használó alprotokoll 1. legfeljebb 16 KB-os egységekre darabolás 2. (ha engedélyezett) akkor minden egységet külön tömörítenek 3. titkos kulcs: RA & RB & EB titkos kulcs + tömörített szöveg konkatenációja 4. Az eredméyből hash-t készítenek (pl. MD5) ez a MAC (message authentication code) 5. A MAC-et minden részhez hozzáfűzik 6. Szimmetrikus titkosítás 7. Végül fejrészt az egyes részekhez -> TCP
Adatátvitel SSL segítségével Üzenet a böngészőből Darabolás Tömörítés MAC hozzáadva Titkosítás Fejléchez hozzáadva
1. rész
2. rész
Köszönöm a figyelmet!