Nyugat-magyarországi Egyetem Faipari Mérnöki Kar Informatikai és Gazdasági Intézet Java webalkalmazások felhasználó- és jogosultságkezelése Témavezető, konzulens: Dr. Takách Géza egyetemi docens Szakdolgozat készítője: Balázs Kanyó hallgató
Tartalomjegyzék 1. Bevezetés...1 1.1. Elmentem este OpenOffice...1 1.1.1. felsorolás 1 2. Feladat...3 2.1. Kiindulási helyzet...3 2.2. Jogosultságkezelés...3 2.2.1. Látható felület elemeinek levédése 4 2.2.2. Metódus levédése 4 2.2.3. URL alapján történő levédés 5 2.3. Webalkalmazások átjárhatósága...5
1. Fejezet 1. Bevezetés Teljes mértékben egyetértek azzal az állításával, hogy meg kellene tanulnia minden embernek rendesen írni 1.1. Elmentem este OpenOffice rőfolimpikonok játszanak, méghozzá oly módon, hogy egymással szemben versengenek, és aki a jobb, az nyer. 1.1.1. felsorolás 1. almát ettem ebédre olimpiát olimpikonok játszanak, méghozzá oly módon, hogy egymással szemben versengenek, és aki a jobb, az nyer. A) répát kajáltam tehénnel olimpikonok játszanak, méghozzá oly módon, hogy egymással szemben versengenek, és aki a jobb, az nyer. a) répát zabáltam verébbel olimpikonok játszanak, méghozzá oly módon, hogy egymással szemben versengenek, és aki a jobb, az nyer. 2. Józsi számozatlan én olimpikonok játszanak, méghozzá oly módon, hogy egymással szemben versengenek, és aki a jobb, az nyer. 1 1. Bevezetés
3. Józsival kajáltam Terézkeolimpikonok játszanak, méghozzá oly módon, hogy egymással szemben versengenek, és aki a jobb, az nyer 1. Felsorolás1:Józsival kajáltam Terézkeolimpikonok játszanak, méghozzá oly módon, hogy egymással szemben versengenek, és aki a jobb, az nyer. Felsorolás2:Józsival kajáltam Terézkeolimpikonok játszanak, méghozzá oly módon, hogy egymással szemben versengenek, és aki a jobb, az nyer. Ez kell ide idézőjelek a következően festenek. jó. public void datastream() { for(int i = 0; i < 12; i++) { System.out.println(i); } return; } Spring Security Legyen egy szép mondat tele árvíztűrő tükörfúrógéppel és egyebekközt nyalánkságokkal. Tel.: +36303762834 Az ECWINS projekt JEE alapú alkalmazásokből áll össze, melyek mindegyike adatbázisban tárol és webes felületen keresztül ad lehetőséget a felhasználónak a tárolt adatok módosítására, megtekintésére. Ezen alkalmazások mivel nagy mértékben összefüggőek kereszthivatkozásokat tartalmaznak egymásra, amelyeket a szakdolgozat egy későbbi szakaszában majd részletesebben 1. Kocsis Tivadar még nem nyert az EB-n semmilyen érmet, de csapatával már többször elérte a második helyezést 2 1. Bevezetés
kitárgyalásra kerül. 3 1. Bevezetés
2. Fejezet 2. Feladat Feladatom a korábbi féléveimben általam is fejlesztett ECWINS projekt webalkalmazásainak a felhasználókezelésének kiterjesztése volt a következő területekre kihegyezett hangsúllyal: Jogosultságkezelés Webalkalmazások közötti átjárhatóság 2.1. Kiindulási helyzet A fejlesztés megkezdése előtt adott volt 3 webalkalmazás különböző autentikációs forrásokkal 2.2. Jogosultságkezelés A jogosultságkezelés magában foglalja az autentikációt, autorizációt és a folyamatos esemény figyelést. Az autentikációs folyamatot a webes alkalmazásokban legtöbbször az egyéni felhasználónév és jelszó páros megadásával történik mint az ECWINS projekt esetén is de ez az azonosítási forma nyújtja a legalacsonyabb biztonságot, viszont a legköltséghatékonyabban ezt lehetséges megvalósítani. Ha egy biztonságosabb autentikációra van szükség, akkor az felhasználó és jelszó páros helyett van lehetőség alkalmazni biometrikus azonosítást, digitális aláírást, egyéb biztonságot növelő megoldásokat vagy az előbb felsorolt módszerekből többet együtt. [1] 4 2. Feladat
A autorizáció az úgynevezett házirendre 1 (Access Control) támaszkodik működése során. A folyamata két részre osztható: szabály definiálásra és szabály kikényszerítésre A szabály definiálásakor általában még az alkalmazás végleges üzembe helyezése előtt adjuk meg, hogy a hozzáférés mihez engedélyezett, míg a második részben amely az alkalmazás normál működése közben történik ellenőrzésre kerül, hogy az elérni kívánt erőforráshoz van-e jogosultságunk vagy sem. Ez az ellenőrzés a szabály definíciók alapján történik. Ennél a témakörnél meg kell említeni, hogy létezik egy olyan felhasználó is, amelynek nincs szüksége sem egyedi bejelentkezési azonosítóra, sem jelszóra. Ezt a felhasználót hívja a szakirodalom bizonyos témakörökben névtelen felhasználónak (anonymous user), más témakörökben vendégnek (guest).[2] 2.2.1. Látható felület elemeinek levédése Egy webalkalmazásnál elengedhetetlen dolog, hogy a felhasználó csak olyan elemeket láthasson a felületen, amelyek számára fontosak, elérhetőek, amely funkciókhoz van hozzáférése. Amely funkciók a felhasználó számára nem elérhetőek, azokat nem csak a használhatóság jegyében célszerű elrejteni, hanem biztonsági kockázatot is jelent egy esetleges támadáshoz, ugyanis egy rossz indulatú felhasználó láthatja a számára nem véletlenül letiltott funkciók meghívásának egy módját. Ez annyiban biztonsági kockázat, hogy a támadó tudomást szerez egy magasabb privilégiumot igénylő funkcióról, amelynek létezése adott esetben nem triviális. Ilyen lehet például egy tartalomkezelő oldalnál az összes szerző törlését megvalósító funkció, amelynek létezése egyáltalán nem triviális. 1. A jogosultságkezelés kétféleképpen történhet: képesség alapúan (Capabilitybased) vagy hozzáférés vezérlés alapon (Access control). 5 2. Feladat
2.2.2. Metódus levédése A metódusok levédése egy olyan mechanizmus, amely ellenőrzi, hogy a felhasználó rendelkezik-e olyan privilégium szinttel, amellyel meghívható az adott metódus. Egy webalkalmazás esetén, még ha az előző fejezetben leírtakat a fejlesztők be is tartják, akkor is marad még még egy biztonsági rés ahhoz, hogy egy esetleges támadás során nem a felületről, hanem akár egy JavaScript kód böngészőből való futtatásával a támadó elérjen bizonyos funkciókat egy metóduson keresztül. A metódusok levédésére is születtek különböző megoldások, mindegyiknek meg van a maga előnye, de sajnos a maga hátránya is: a legegyszerűbb megoldás általában csak EJB esetén működőképes. Erről részletesebb leírás található a fejezetben. 2.2.3. URL alapján történő levédés Az URL alapján történő levédés csak a weblapokra értendő, a háttérben működő Backing Bean-ekre nem, mivel a weboldalakat lehetséges elérni a böngészőből URL alapján. Ez a módszer alkalmas azon lapok elrejtésére a megfelelő privilégiumokkal nem rendelkező felhasználó elől, amelyek teljes egészében egy más vagy magasabb jogkörrel rendelkező csoport vagy felhasználó számára lettek létrehozva, és főként csak olyan műveletek hajthatók végre ilyen oldalakról, amelyek egy vagy több jogosultságkörrel rendelkező felhasználó hajthat végre. Ha ez utóbbi nem lenne igaz, akkor az esetek nagy részében célszerűbb választás a megvalósításkor a 2.2.1. fejezetben tárgyalt módszert választani. 2.3. Webalkalmazások átjárhatósága Általánosságban a webalkalmazások közötti átjárhatóságon azt értjük, hogy adott kettő vagy több alkalmazás, amelyekből az egyikre ha bejelentkezik a felhasználó, akkor onnan valamilyen módon például egy űrlapon vagy egy linken keresztül át léphet egy másik 6 2. Feladat
alkalmazásba anélkül, hogy újra azonosítania kellene magát. Az informatika szaknyelvén ezt hívják Single sign-on (SSO) megoldásnak. Ez az állapot mindaddig fent marad, amíg a bejelentkezési időkorlát le nem jár vagy a felhasználó ki nem lép a rendszerből (ezt a szakirodalomban Single sign-off-nak nevezik). A Java webalkalmazásoknál sincs ez másképp, ott is az SSO alkalmazásával lehet megoldani az ilyen jellegű felmerülő igényt. Az SSO előnyeiről általánosságban elmondható, hogy: csökkenti az adathalászat sikerességének esélyét, mivel a felhasználónak nem kell mindenhova gondolkodás nélkül begépelnie a bejelentkezési azonosítóját csökkenti a felhasználó frusztráltságát is azzal, hogy nem kell megjegyeznie minden egyes azonos szervezethez webalkalmazáshoz az egymástól különböző bejelentkezési adatait csökkenti a felhasználó időveszteségét is azzal, hogy nem kell ugyanahhoz a bejelentkezési azonosítóhoz tartozó jelszavát újra és újra begépelnie bizonyos SSO megoldásokban támogatják a hagyományos bejelentkezési formákat, mint például az operációs rendszer szintű bejelentkezést biztonsági hozzáférést nyújt minden egyes szinten, alkalmazásban anélkül, hogy a felhasználónak újra kéne magát azonosítania. Irodalomjegyzék 1: ismeretlen, Authentication, 2011, http://en.wikipedia.org/wiki/authentication 7 2. Feladat