VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 11.

Slides:



Advertisements
Podobné prezentace
Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
Advertisements

jak to funguje ? MUDr.Zdeněk Hřib
Elektronický podpis.
Úvod do klasických a moderních metod šifrování Jaro 2008, 7. přednáška.
Přednáška č. 5 Proces návrhu databáze
Programování v jazyku C# II.
Návrh architektury moderních informačních systémů
Analýza síťového provozu
Informační systém základních registrů. Obsah Úvod Komunikace se základními registry Autentizace a autorizace Práce s údaji Funkcionalita v rámci Portálu.
Adresářová služba Active directory
Šifrovaná elektronická pošta Petr Hruška
PHP – Základy programování
8. dubna 2013ISSS - Portál interních identit, Z. Motl1 Portál interních identit jako nadstavba identity managementu Mgr. Boleslav Bobčík, T-Systems Czech.
JIP a KAAS Co umí. A co nabízí ve vztahu k základním registrům.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
JEDINÉ ŘEŠENÍ – OD HESEL K ČIPOVÝM KARTÁM! T-Soft s.r.o. Mgr.Pavel Hejl, CSc.
Dokumentace objektů a zveřejnění funkcí
Advanced Technologies 05 Jak zabezpečit váš Web Server Martin Pavlis (MCSE, MCT) Konzultant.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
BIS Firewall Roman Danel VŠB – TU Ostrava.
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
2 Petr Žitný znalosti.vema.cz 3 Báze znalostí Nová služba zákazníkům ▸Báze naplněná informacemi, ke které mají uživatelé přímý přístup Základní cíl ▸Poskytovat.
Jednotná informační brána Cyklus školení Elektronické informační zdroje a databáze Národní knihovna ČR , , , ,
IBM Global Services Ing. Stanislav Bíža, Senior IT Architect, CISA © 2005 IBM Corporation Rizika napadení webových aplikací Konference ISSS 2005 Title.
CZ.1.07/1.4.00/ VY_32_INOVACE_166_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
2005 Adobe Systems Incorporated. All Rights Reserved. 1 Adobe Řešení pro veřejnou správu Transformace služeb veřejné správy a PDF Inteligentními Dokumenty.
2005 Adobe Systems Incorporated. All Rights Reserved. 1 Inteligentní PDF formuláře Vladimír Střálka Territory Account Manager Adobe Řešení pro.
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.
Úvod do klasických a moderních metod šifrování Jaro 2008, 9. přednáška.
Správní a dopravně správní evidence - IISSDE RNDr. Jiří Malátek Zástupce ředitele OIVS MV
1 Elektronický podpis v ČR Bezpečnost IS/IT Jaroslav Malý.
Internetové protokoly Autor: Milan Bílek. Internet Internet je celosvětová systém propojených počítačových sítí. Počítače mezi sebou komunikují pomocí.
Webové služby pro komunikaci s informačním systémem eQuip Martin Širajch.
Bezpečnost podnikové sítě EI4. Firewall 1 Firewall 2 Ochranná zeď Chrání síť před útoky zvenku Neovlivňuje samotný provoz uvnitř sítě Veškerá komunikace.
Šifrovací algoritmy EI4. DES – Data Encryption Standard  Soukromý klíč  56 bitů  Cca 7,2 x klíčů  Rozluštěn v roce 1997.
BIS Elektronický podpis Roman Danel VŠB – TU Ostrava.
Internetové technologie Informatika pro ekonomy přednáška 7.
Elektronický podpis Ochrana Dat Jan Renner
2 Karla Halenková Setkání uživatelů 2001 Báze znalostí produkt pro naplnění uživatelem.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt 1 Část 12.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 7.
Feistlovy kryptosystémy Posuvné registry Lucifer DES, AES Horst Feistel Německo, USA IBM.
Hybridní kryptosystémy
1. 2 Zabezpečená mobilní komunikace 3 Private Circle chrání Vaši komunikaci před odposlechem či narušením. Jedná se o komplexní řešení pro zabezpečení.
Josef Petr Obor vzdělání: M/01 Informační technologie INSPIROMAT PRO TECHNICKÉ OBORY 1. ČÁST – VÝUKOVÉ MATERIÁLY URČENÉ PRO SKUPINU OBORŮ 18 INFORMAČNÍ.
Bezpečnost systémů 2. RSA šifra *1977 Ronald Rivest *1947 Adi Shamir *1952 Leonard Adelman *1945 University of Southern California, Los Angeles Protokol.
Podnikání na Internetu letní semestr 2004 Jana Holá IX.
Tabulkový procesor Zabezpečení a ochrana osobních údajů – ochrana konečné verze před změnami Autorem materiálu a všech jeho částí, není-li uvedeno jinak,
Aktivní prvky ochrany sítí ● Filtrace, proxy, firewall ● Filtrace přenosu, zakázané adresy, aplikační protokoly ● Proxy, socks, winsocks ● Překlad adres.
B2B Systémová integrace Jiří Macháček. Osnova ► Úvod ► Terminologie ► Parametry – požadavky ► Způsoby integrace ► Web-Services ► Příklady.
Informační bezpečnost VY_32_INOVACE _BEZP_16. SYMETRICKÉ ŠIFRY  Používající stejný šifrovací klíč jak pro zašifrování, tak pro dešifrování.  Výhoda.
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
© 2016 InterSystems Corporation. All rights reserved. Integrace OAuth 2.0 a OpenID Connect.
Bezpečnostní technologie I IPSec Josef Kaderka Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg.
Informační bezpečnost VY_32_INOVACE _BEZP_17.  obdoba klasického podpisu, jež má zaručit jednoznačnou identifikaci osoby v prostředí digitálního světa.
Kerberos ● Bezpečnost zaručená třetí stranou ● Autentikátory, KDC ● Lístky relace ● Lístky na vydávání lístků ● Autentizace mezi doménami ● Dílčí protokoly.
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
Bezpečnostní technologie I
3. Ochrana dynamických dat
Prezentace – X33BMI Petr PROCHÁZKA
Aplikace zákonů č. 101/2000 Sb. č. 227/2000 Sb.
Virtuální privátní sítě
Feistlovy kryptosystémy
Úvod do klasických a moderních metod šifrování
Zabezpečení www stránek
Úvod do klasických a moderních metod šifrování
Web Application Scanning
Elektronický (digitální) podpis
HASH.
Transkript prezentace:

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 11.

Hrozby v enterprise aplikacích  Podnikové aplikace musí čelit různým bezpečnostním hrozbám  Předstírání identity uživatele  Prozrazení důvěrných informací Vyzrazení lékařských informací o pacientovi  Zlovolná úprava dat Virus na serveru "upraví" zůstatek na bankovním účtu  Zneužití služeb aplikace Uživateli se podaří vytvořit vyhrávající los  Výpadky v důsledku napadení Hackerské útoky (DoS), viry 2

Bezpečnostní mechanismy  Ověření pravosti (authentication)  Proces ověření identity uživatele, který se pokouší přistupovat k prostředkům aplikace  Autorizace (authorization)  Následuje po ověření pravosti uživatele  Ověřuje se, zda uživatel smí přistupovat k danému prostředku  Ochrana důvěrných dat a jejich integrity  Přenášená data je třeba ochránit před neoprávněným "odposlechem" – důvěrnost - či neoprávněnými úpravami - integrita 3

Autentizace ve webovém kontejneru  Při přístupu k chráněným prostředkům (statické a dynamické stránky, obrázky, soubory) je třeba zjistit identitu uživatele  Po zjištění identity se ověří, zda daný uživatel má právo k požadované operaci s prostředkem  Webový kontejner podporuje tyto mechanismy  HTTP Basic  HTTP Digest  HTTPS Mutual  FORM Based 4

HTTP Basic 5 GET /album 401 Unauthorized WWW-Authenticate: Basic realm="album"

HTTP Basic 6 GET /album Authorization: Basic c87fba User: pepa PSW:**** User: pepa PSW:**** jméno a heslo zakódované BASE64 jméno a heslo zakódované BASE64

HTTP Basic 1. Klient odešle požadavek na stránku /album 2. Server odvětí chybovým kódem 401 Unauthorized a nabídne BASIC autentizaci 3. Prohlížeč otevře dialogové okno, kam uživatel zadá své jméno a heslo. Tyto informace se spojí a zakódují v BASE64. Kód se odešle na server. 4. Pokud je uživatelské jméno a heslo platné, webový kontejner vrátí obsah požadované stránky 7

Nevýhody HTTP Basic  Jelikož HTTP protokol je bez-stavový, autentizační údaje se musí odesílat s každým dotazem  Velmi zranitelný mechanismus. Autentizační údaje putují na server zakódované v BASE64. Dekódovaní je velmi snadné.  Nedoporučuje se bez dodatečného zabezpečení  Obvykle v kombinaci s HTTPS (SSL) ISIS 8

HTTP Digest  Řeší "viditelnost" přihlašovacích údajů HTTP Basic  Na server se místo hesla odesílá hash z řetězce sestaveného z dat v dotazu (heslo, URL, nonce atd.)  Server v první odpovědi posílá dodatečné parametry, které se použijí pro sestavení hashe  hodnota parametru nonce (number used once) je jedinečná a je použita při výpočtu hash kódu  to učiní hash kód neopakovatelným, tudíž případný jeho odposlech je nepoužitelný  Tato metoda není specifikací vyžadována 9

HTTPS Mutual (CLIENT-CERT)  Klient a server si vymění cerifikáty (X.509)  Certifikáty obsahují veřejný klíč a slouží jako osvědčení pravosti identity certifikační autoritou (CA)  Přenos dat probíhá po zabezpečeném kanálu a významně redukuje riziko odposlechu a neoprávněné zásahu do přenášených dat.  Nevýhoda: klient musí mít certifikát 10

Symetrické šifrování  Strany účastnící se komunikace se domluví na šifrovacím klíči  Tento klíč se použije pro zašifrování předávaných zpráv  AES, Blowfish, DES, RC4, FISH...  Výhoda: nízká výpočetní náročnost, RC4 a FISH dokáží šifrovat proudy (ostatní po blocích)  Nevýhoda: náchylné k prolomení 11

Asymetrické šifrování  Každá strana v komunikaci vlastní pár klíčů  veřejný a soukromý  Data zakódovaná jedním klíčem lze dekódovat druhým  Diskrétní doručení Odesílatel zašifruje zprávu veřejným klíčem příjemce. Ten ji pak dešifruje použitím svého soukromého klíče.  Elektronický podpis (pečeť) Odesílatel podepíše hash zprávy svým soukromým klíčem a pošle jej se zprávou. Příjemce si ověří autenticitu dešifrováním hashe pomocí veřejného klíče odesílatele a porovnáním s aktuálním hashem doručené zprávy 12

Vlastnosti asymetrické šifry  Výhody  Nevyžaduje počáteční výměnu klíče  Oproti symetrickým šifrám bezpečnější  Nevýhody  Výpočetně náročné (až x než symetrické)  Prolomitelné brutální silou  Šifrování po malých blocích (max. cca 120 bytů pro 1024 bitovou šifru)  Zástupci: RSA, Diffie-Hellman... 13

Digitální certifikáty  Řeší problém: Jakou cestou příjemce získá veřejný klíč odesílatele?  Pokud osobně, není problém.  Pokud jinak, hrozí, že je klíč podvržený  Řešení: veřejný klíč si jeho vlastník drží v "obálce" zvané bezpečnostní certifikát.  Tato "obálka" je podepsána soukromým klíčem nějaké důvěryhodné instituce – cert. autority (CA)  Pravost veřejného klíče odesílatele se ověří přes veřejný klíč certifikační autority  obvykle je součástí webových prohlížečů 14

Secure Socket Layer  Bezpečnostní protokol zaručující důvěrnost a integritu přenosů po Internetu (Netscape)  Obě strany se dohodnou na klíči pro symetrické šifrování přenášených dat – handshake  K dohodě se použije veřejný klíč serveru, kterým klient zašifruje náhodně vygenerované číslo, které odešle na server  Dva mody výměny certifikátů  server – ověřuje se pouze identita serveru  mutual – ověrují se identity server i klienta 15

SSL – Handshake (server-only mod) 16 Předá seznam podporovaných symetrických šifer Zvolená šifra a certifikát serveru Výběr šifry a.ověření přes CA b.gen. náhod. čísla (základ pro společný klíč vybrané sym. šifry) c.zašifrování čísla veřejným klíčem serveru Zašifrované náhodné číslo Generování klíče pro komunikaci z náhodného čísla

Činnosti webového kontejneru  Vyhledání poptávaného prostředku  kontejner musí zjistit, zda se nejedná o chráněný prostředek  Ověření identity žadatele (autentizace)  pokud se jedná o chráněný prostředek, musí zajistit autentizaci žadatele  Autorizace  Podařilo-li se ověřit identitu, musí kontejner zjistit, může- li klient přistupovat k požadovanému prostředku 17

Deklarativní řízení bezpečnosti  Usnadňuje vývoj tím, že se vývojář nemusí zabývat bezpečnostními hledisky aplikace  Konfigurace je možná bez zásahu do zdrojového kódu  Podporuje komponentové programování – znovu- použitelnost  Jeden servlet lze použít v různých bezpečnostních scénářích 18

Aktivace autentizace  Ve WEB-INF/web.xml  auth-method může nabývat těchto hodnot  BASIC  DIGEST  FORM  CLIENT-CERT  specifický kód výrobce kontejneru 19 BASIC

Security Realm  Termínem realm se označuje místo (registr), kde jsou uloženy informace o uživatelích (jména, hesla, skupiny atd.)  Při autentizaci webový kontejner spolupracuje s realm  Na serveru lze definovat více realm, aplikace však pracuje právě s jedním  Lze určit prvkem v  Glassfish nabízí např. tyto typy realm File – jednoduché, vhodné pro vývoj LDAP – napojení na LDAP JDBC – informace jsou uloženy v databázi 20

File realm na Glassfish 21

Správa uživatelů ve File realm 22

Definice rolí  V chráněné aplikaci vystupují uživatelé v tzv. rolích  Aplikace udržuje jejich seznam ve web.xml  V případě Glassfish se musí role namapovat v sun- web.xml na skupiny v realm 23 Administrátor bankovní aplikace bankAdmin bankAdmin

Určení chráněných prostředků  Při konfiguraci autorizace se neuvažují pouze URL prostředků, ale i HTTP metody, pomocí kterých klient k prostředkům přistupuje (dotazuje se)  Omezují se HTTP dotazy, nikoliv prostředky samotné 24 POST /addAccount GET /index.jsp GET /accounts/*

Příklad určení chráněných URL 25 Povinný údaj pro potřeby deployment nástrojů Povinný údaj pro potřeby deployment nástrojů Seznam URL chráněných prostředků. Může obsahovat vzor (*) Seznam URL chráněných prostředků. Může obsahovat vzor (*) Seznam HTTP metod, na které se vztahuje omezení přístupu k uvedeným zdrojům Seznam HTTP metod, na které se vztahuje omezení přístupu k uvedeným zdrojům Seznam rolí, které mohou přistupovat k prostředkům pomocí uvedených HTTP metod Seznam rolí, které mohou přistupovat k prostředkům pomocí uvedených HTTP metod Viz

 Sdružuje prostředky a metody přístupu k nim. K této kolekci se pak přiřazují role.  - používá stejná pravidla jako servlet-mapping pro mapování servletů  musí být specifikován aspoň jeden vzor  - pokud není uvedena žádná HTTP metoda, je to jakoby byly uvedeny všechny  Pozor: pokud jsou uvedeny nějaké HTTP metody, tak zbývající jsou povoleny!  Lze uvést více v rámci jednoho 26

1. Specifikuje role, kterým je povoleno dotazovat se na prostředky 2. Pokud NENÍ uvedeno, přístup je POVOLEN VŠEM rolím 3. Pokud JE uvedeno, ale je prázdné, přístup je ZAKÁZÁN VŠEM rolím 4. uvnitř POVOLUJE přístup uvedené roli 5. může obsahovat *. Pak je přístup POVOLEN VŠEM rolím. Stejné jako 2. 27

Překryv  Jak kontejner řeší situaci, kdy dva bloky obsahují stejné URL vzory a metody? 28 Role1 Role2 Role1 * Role2 NEUVEDENO Role2 Role1, Role2 Všechny role Žádná role Všechny role

Příklad překrývání omezení přístupu 29 Vzor /* identifikuje všechny prostředky, tedy i ty, podchycené v horním bloku. V průniku dochází ke kupení rolí. Vzor /* identifikuje všechny prostředky, tedy i ty, podchycené v horním bloku. V průniku dochází ke kupení rolí.

Autentizace pomocí formuláře  Umožňuje připravit si vlastní formulář pro přihlašování do aplikace včetně stránky, která se zobrazí po neśpěšném přihlášení. 30 FORM /loginPage.jsp /loginError.jsp

Formulář pro přihlášení 31 akce formuláře musí být j_security_check uživatelské jméno je přenášeno v parametru j_username heslo je přenášeno v parametru j_password Přihlašovací údaje putují na server nechráněná! Podobně jako v případě BASIC. Řešení: přenos údajů musí probíhat po chráněné transportní vrstvě, např. HTTPS, neboli HTTP nad SSL. Pozn.:Při použití FORM autentizace musí být aktivní sledování session (např. cookies, SSL)!

Chráněná transportní vrstva  Deklarace chráněných prostředků může také obsahovat příkaz, aby kontejner zajistil komunikaci po chráněném kanálu při přenosu dotazu na prostředek serveru i při předávání odpovědi (vlastní data prostředku) zpět na klienta.  Specifikace nevnucuje konkrétní technologii, ale prakticky vždy se jedná o HTTPS (HTTP nad SSL). 32

Aktivace chráněného přenosu  Provádí se v vepsáním tagu  Má tento obsah  Při přístupu k prostředku „vnutí“ kontejner klientovi HTTPS protokol.  Možné hodnoty: CONFIDENTIAL – zamezí odposlechu dat INTEGRAL – zajistí integritu dat, tj. zamezí změně dat cestou NONE – bez chráněného protokolu 33 CONFIDENTIAL

Příklad konfigurace HTTPS 34

Poznámky k chráněnému přenosu  Protokol SSL řeší integritu i důvěrnost  Volba INTEGRAL i CONFIDENTIAL vede prakticky vždy k použití protokolu HTTPS, efekt obou je stejný 35

Automatické přepnutí protokolů GET /addAccount HTTP Zjistí, že v se nachází s CONFIDENTIAL Redirect Location: GET /addAccount HTTPS Zjistí, že GET /addAccount je chráněné. Vyžádá si proto autentizaci Unauthorized WWW-Authenticate: Basic: realm=“bank-app“ GET /addAccount HTTPS Authorization: g67va

Poznámky k důvěrné autentizaci  Klient se nikdy nedotazuje na přihlašovací okno  Zobrazení přihlašovacího okna je až důsledek dotázání se na chráněný prostředek  V případě, že přihlašovací údaje mají na server putovat po zabezpečeném spojení, je třeba každý chráněný prostředek opatřit CONFIDENTIAL 37

Odhlašování  Informace o přihlášení je uložena v session  Voláním HttpSession::invalidate() má za následek odhlášení uživatele  Od verze Servlet API 3.0 metoda HttpRequest::logout()  resetování security kontextu (principal a jeho role)  metody getUserPrincipal, getRemoteUser, getAuthType vrací null 38

Programové zabezpečení  V případech, kdy si nevystačíme s deklarativním zabezpečení aplikace, můžeme použít programové zabezpečení.  Metody v HttpServletRequest  login(user, password) – ověří uživatele, vyhazuje výjimku  authenticate(response) – vynutí si autentizaci na kontejneru  logout() – vymaže údaje o uživateli z dotazu  getRemoteUser() – jméno přihlášeného uživatele  isUserInRole(role) – vrací true, pokud má uživatel danou roli  getUserPrincipal() – vrací java.security.Principal objekt odpovídající vzdálenému uživateli 39

JAAS  Java Authentication and Authorization Service  Implementace: LDAP, MS Active Directory,...  Používáno kontejnerem pro autentizaci a autorizaci 40 Web Container/ ACC Web Container/ ACC EJB Container JAAS Authentication System Authentication System Přenos ověřeného uživatele Autentizace Autorizace

Podpora bezpečnosti v EJB  Cílem je řídit přístup k business logice  Autentizace je řízena webovým kontejnerem nebo ACC (application client container, stand-alone app)  Předpokládá se, že do EJB kontejneru přistupuje již ověřený uživatel  Provádí se pouze autorizace  Deklarativní  Programová 41

Deklarativní bezpečnost v EJB  Jako obvykle: anotace nebo ejb-jar.xml  Zahrnuje:  Deklarace rolí  Přiřazení povolenek metodám nebo celým beanům  Dočasná změna identity 42

Bezpečnostní anotace 43 metodě nebo beanu může přistupovat kterákoliv metodě nebo beanu nemůže přistupovat žádná metodě nebo beanu mohou přistupovat pouze vyjmenované role pro celou přiřadí specifikovanou roli volajícímu.

Bezpečnostní anotace - příklad K beanu ATMServiceBean mohou přistupovat role admin a banker 2.Při zavolání metody se dočasně změní role volajícího na admin 3.Metoda withdraw povoluje navíc přístup roli client 4.Metoda log na beanu Logger je volána v převlečení za roli admin (viz 2.)

Kombinování nesmí být použity současně na metodě či třídě  V případě kombinování anotací mají přednost anotace na metodě před anotacemi na třídě na na metodě na na metodě na na metodě 45

Programová bezpečnost  Používá se v případech, kdy nepostačuje deklarativní zabezpečení  Rozhraní SessionContext  isCallerInRole(String role) vrací true, pokud volající je v uvedené roli  Principal getCallerPrincipal() vrací objekt java.security.Principal, který reprezentuje volajícího 46

Programová bezpečnost - příklad 47

Zdroje  Allen, Paul R. – Bambara, Joseph L.; SCEA Study Guide; McGraw Hill  Head First Servlets/JSP  Burke, Bill – Monson-Haefel, Richard; Enterprise Java Beans 3.0; O'Reilly  Goncalves, Antonio; Beginning Java EE 6 Platform With GlassFish 3; APRESS  /jw-0927-logout.html /jw-0927-logout.html  21/servsecr004.htm 21/servsecr004.htm 48