Biztonság java web alkalmazásokban
Webalkalmazások fejlesztése tananyag Krizsán Zoltán1 [2012. május 9.] 1
Általános Informatikai Tanszék Miskolci Egyetem
2012. május 9.
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
1 / 34
Biztonság Java web alkalmazásban
Általános információk
Tartalom
1
Biztonság Java web alkalmazásban Általános információk servlet
Telepít® leíró alapú beállítás Annotációkkal Kód alapú biztonsági ellen®rzés
EJB
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
2 / 34
Biztonság Java web alkalmazásban
Általános információk
Bevezetés I
Authentikáció: Ki kéri az er®forrást? Authorizáció: hozzáférés szabályozás: Már tudjuk ki kéri, szabad neki? Adat integritás: Nem változott e meg az er®forrás (átvitel során)?
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
3 / 34
Biztonság Java web alkalmazásban
Általános információk
Authentikáció I
1
Névvel ellátott szerepek (role) vannak, amikben felhasználók.
2
* szerep = minden deniált szerepre illeszkedik.
3
A felhasználóknak legalább egy szerepben kell lenniük!
4
Jogokat a szerepekhez adjuk.
Ha nem talál illeszked® szabályt a kérésre, akkor engedélyezett!
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
4 / 34
Biztonság Java web alkalmazásban
Általános információk
Kérés kiszolgálásának menete I
1 2
A szervlet konténer egy kérést kap. Az URL minta alapján megkeresi az illeszked® szabályokat. Ha nincs engedélyezi a kérést. Ha van szabály, akkor tovább vizsgál.
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
5 / 34
Biztonság Java web alkalmazásban
Általános információk
Biztonsági ellenörzések koncepció I
Fejleszt®:
logikai
Rendszergazda: használ.
neveket használ
Tényleges
(zikai) felhasználó neveket, csoportokat
Rendszergazda/webapp üzemeltet®: összerendeli a logikai és zikai fogalmakat.
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
6 / 34
Biztonság Java web alkalmazásban
servlet
Tartalom
1
Biztonság Java web alkalmazásban Általános információk servlet
Telepít® leíró alapú beállítás Annotációkkal Kód alapú biztonsági ellen®rzés
EJB
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
7 / 34
Biztonság Java web alkalmazásban
servlet
Biztonsági beállítások I
A szervlet konténer feladata a megfelel® m¶velet elvégzése. Beállítása lehetséges: Deklaratív Annotációkkal Telepít® leíróban(web.xml) (deklaratív)
Imperatív Kód alapú
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
8 / 34
Biztonság Java web alkalmazásban
servlet
Authentikációs mechanizmusok I
HTTP Basic Authentication HTTP Digest Authentication HTTPS Client Authentication Form Based Authentication
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
9 / 34
Biztonság Java web alkalmazásban
servlet
Authentikáció kiválasztása I
login-cong elem a leíróban auth-method 1 2 3 4 5
NONE BASIC DIGEST FORM CLIENT-CERT
realm-name: BASIC esetén ezt küldi a szerver. form-login-cong: FORM esetén a hiba és login form oldal oldalak (relatív útvonal).
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
10 / 34
Biztonság Java web alkalmazásban
servlet
HTTP Basic Authentication I
usernév/jelszó alapú Web böngész®ben beépített form jelenik meg HTTP/1.0 Nem biztonságos base64 kódolt jelszó A szerver nem hitelesített.
de kiterjeszthet® (https, vpn) A server egy realm (string) szöveget küld a kliensnek, hogy hova kell bejelentkeznie. BASIC
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
11 / 34
Biztonság Java web alkalmazásban
servlet
HTTP Digest Authentication I
usernév/jelszó alapú Web böngész®ben beépített form jelenik meg Biztonságosabb a jelszó hash-ét küldi a kliens a szervernek A szerver nem hitelesített.
kiterjeszthet® (https, vpn) A server egy realm (string) szöveget küld a kliensnek, hogy hova kell bejelentkeznie. DIGEST
Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
12 / 34
Biztonság Java web alkalmazásban
servlet
Form Based Authentication I
usernév/jelszó alapú A bejelentkez® formot a web fejleszt® készíti (készítheti).
tartalmazni kell vezérl®ket j_username és j_password nevekkel. action="j_security_check" kell legyen
Telepít® leíró-ban bejelentkez® form, hiba oldal. Védett er®forrás igénylésekor a konténer átirányít ha az ügyfél nem authentikált. Nem biztonságos base64 kódolt jelszó A szerver nem hitelesített.
de kiterjeszthet® (https, vpn)
1 < form method = " POST " action =" j_security_check " > 2 < input type =" text " name =" j_username " > 3 < input type =" password " name =" j_password " > 4 form > Krizsán Zoltán [2012. május 9.] ()
2012. május 9.
13 / 34
Biztonság Java web alkalmazásban
servlet
Form alapú authentikáció beállítása I
1 < login - config > 2
FORM auth - method > 3 < realm - name > file realm - name > 4