Tóth Gergely, 2003. április 22. ELTE Security Speci JAVA Security Tóth Gergely

Slides:



Advertisements
Hasonló előadás
7. előadás.  Zend_Auth komponens  Authentikációs típusok  Az authentikáció menete  Zend_Acl_Resource  Zend_Acl_Role  Jogosultságkezelés ZF-ben.
Advertisements

Tamás Kincső, OSZK, Analitikus Feldolgozó Osztály, osztályvezető A részdokumentumok szolgáltatása az ELDORADO-ban ELDORADO konferencia a partnerkönyvtárakkal.
4. alkalom – Hálózat Kezelés
Kamarai prezentáció sablon
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
1 Számítógépek felépítése 9. előadás I/O rendszerek.
Hálózati és Internet ismeretek
Flex: csak rugalmasan! Kiss-Tóth Marcell Magyarországi Web Konferencia március 18.
IPSec.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Vezetékjogi nyilvántartás
Titkosítás Digitális aláírás Szabványosított tanúsítványok
Bevezetés a Java programozásba
Fájlkezelés, IO Kivételkezelés Belső osztályok
Mérés és adatgyűjtés laboratóriumi gyakorlat Makan Gergely, Mingesz Róbert, Nagy Tamás 2. óra szeptember 9., 10. v
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Fejlett Programozási Technológiák II. Világos Zsolt 7. gyakorlat.
Az Informatikai biztonság alapjai
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
Készítette: Keszthelyi Zsolt
Kliensoldali Programozás
Programozási technológia 1
6. Előadás Merevítő rendszerek típusok, szerepük a tervezésben
WEB MES (webes gyártásirányító rendszer)
V 1.0 ÓE-NIK, Programozás I. A Microsoft Visual Studio 2010 használata.
Appletek és Servletek Demeter Lehel 641-es csoport.
szakmérnök hallgatók számára
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Publikációs portál Platform Specific Model UML bázisú modellezés és analízis Csapat: UML7 (Percze Dániel, Rajnai Zoltán, Ráth István, Tóth Dániel, Vágó.
Tóth Gergely, május 5. ELTE JAVA Speci JAVA Security Tóth Gergely Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Mobil informatika gyakorlat 3. óra: NDEF üzenet írása.
Operációs Rendszerek 1 Felhasználókezelés Windisch Gergely
Léczfalvy Ádám A J2ME architektúrája.
Léczfalvy Ádám MIDlet-ek.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
2006. Peer-to-Peer (P2P) hálózatok Távközlési és Médiainformatikai Tanszék.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
Verhás & Verhás Szoftver Manufaktúra Mi is az a Maven? build és deployment eszköz mint az ANT dependencia manager mint az IVY riport készítő.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
A szoftver, szoftvertípusok
A gyakorlatok munkakörnyezete
{ PKI } Active Directory Certificate Services
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Automatizálási folyamatok az SQL 2012-ben
Webszolgáltatás szabványok Simon Balázs
AAA AAA Ki, mikor, mivel, hogyan? Mit csinált, mit csinálhat, (mit fog csinálni)? Ki mihez hogyan férhet hozzá? Authentication Authorization Accounting/Audit.
Programozás III CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van.
A Windows Server 2003 termékcsalád A Windows Server 2003 termékcsaládnak 4 tagja van: Windows Server 2003, Standard Edition Windows Server 2003, Enterprise.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Java web programozás 5..
2. Operációs rendszerek.
A PKI project célja Digitális kulccsal elérhető szerver Hamisíthatatlan naplózás Új kulcsok dinamikus létrehozása Felhasználók letiltása.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
DLL használata és készítése Feladat
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Adatstruktúrák Algoritmusok Objektumok
Az Informatikai biztonság alapjai
IT hálózat biztonság Összeállította: Huszár István
Előadás másolata:

Tóth Gergely, április 22. ELTE Security Speci JAVA Security Tóth Gergely

Tóth Gergely, április 22.(2) ELTE Security Speci Tartalom Gyors JAVA ismertető JAVA security alapok J2SE security J2ME security Saját projektem

Tóth Gergely, április 22.(3) ELTE Security Speci JAVA-ról általánosságban JAVA nem JavaScript viszonylag egyszerű teljesen objektum-orientált virtuális gépen fut –lassabb mint a gépi kód –platformfüggetlen magasszintű

Tóth Gergely, április 22.(4) ELTE Security Speci JAVA történet JAVA 1.1 –az első viszonylag használható verzió JAVA 1.2 JAVA 1.3 –a legelterjedtebb verzió (1.3.1) JAVA 1.4 –jelenlegi verzió –rengeteg új csomagot integráltak

Tóth Gergely, április 22.(5) ELTE Security Speci JAVA felépítése

Tóth Gergely, április 22.(6) ELTE Security Speci JAVA editions J2EE J2SE J2ME

Tóth Gergely, április 22.(7) ELTE Security Speci JAVA életciklus.JAVA  forráskód.CLASS  „futtatható osztály” (bytecode).JAR  az applikáció (gyakorlatilag ZIP- pelt.CLASS -ok és egyéb szükséges fájlok, valamint manifest)

Tóth Gergely, április 22.(8) ELTE Security Speci JAVA security alapkövek nyelvi szinten –beépített kriptográfiai csomagok (J2SE és J2EE) –security architektúra –buffer overflow elleni védelem SDK szinten –applikáció authentikációs utilityk kulcskészítés biztonságos kulcstárolás applikáció aláírás aláírás ellenőrzés

Tóth Gergely, április 22.(9) ELTE Security Speci Buffer Overflow buffer overflow: magasan a leggyakoribb kihasznált biztonsági lyuk

Tóth Gergely, április 22.(10) ELTE Security Speci Buffer Overflow – JAVA-ban VM szinten valószinűtlen –nagyon kemény buffer-overflow elleni projekt a SUN-on belül nyelvi szinten lehetetlen –nincs pointer művelet –tömböt nem lehet túlcímezni a tömb tudja a hosszát (length mező)

Tóth Gergely, április 22.(11) ELTE Security Speci JAVA 1.2 security architektúra I. java.security.Permission –jogosultságok leírására –FilePermission FilePermission(„/tmp/*”, „read”) –SocketPermission SocketPermission(„localhost:1024-”, „listen”) –RuntimePermission –AWTPermission –...

Tóth Gergely, április 22.(12) ELTE Security Speci JAVA 1.2 security architektúra II. java.security.ProtectionDomain osztályok halmazához rendel jogosultságokat minden osztály pontosan egy domain-hez tartorzik minden új objektum példány az osztálya domainjének jogosultságait kapja

Tóth Gergely, április 22.(13) ELTE Security Speci JAVA 1.2 security architektúra III. java.security.Policy leképezés: a futó kód bizonyos jellemzőihez ( CodeSource ) jogosultságok halmazát rendeli –jelenleg a futó kódot jellemzi:.CLASS fájljának URL-je ÉS a hozzá tartozó certificate-ek bár több Policy objektum is létezhet, egyszerre csak egy lehet aktív

Tóth Gergely, április 22.(14) ELTE Security Speci JAVA 1.2 security architektúra IV. amellett, hogy melyik osztály objektuma hajtja végre az utasítást, azt is figyelembe kell venni, hogy melyik szálon ki hívta meg őt –user domainbeli objektum ki akar írni valamit, meghívja a system domainbeli objektum metódusát (privilege gain) –a system domain frissíti a képernyőt és meghívja egy user domainbeli objektum paint metódusát (privilege loss)

Tóth Gergely, április 22.(15) ELTE Security Speci JAVA 1.2 security architektúra V. az aktuális szál jogosultsága: az általa bejárt összes domain által biztonsított jogosultságok metszete java.security.AccessController –annak eldöntésére, hogy van-e jogunk valamire AccessController.checkPermission( Permission permission) –privilegizált művelet végrehajtására (a hívó domainjének összes jogosultságával) AccessController.doPrivileged( PrivilegedAction action)

Tóth Gergely, április 22.(16) ELTE Security Speci J2SE – JAVA 2 Standard Edition „a JAVA programok” programok készítésére (J2SDK) –javac, a JAVA fordítóprogram programok futtatására (JRE) –java, a JAVA virtual machine (pl. Hotspot) utilityk –jar (.JAR fájlok készítésére) –keytool (kulcskezelésre –jarsigner (.JAR fájlok aláírására)

Tóth Gergely, április 22.(17) ELTE Security Speci JCE – JAVA Cryptography Extension javax.crypto és java.security csomagok –titkosító algoritmusok szimmetrikus: RC2, IDEA, blowfish, DES, 3DES aszimmetrikus: RSA –hash algoritmusok MD5, SHA1 –biztonsági véleltenszám-generálás –aláíró algoritmusok DSS, SHA1RSA, MD5RSA,

Tóth Gergely, április 22.(18) ELTE Security Speci JCE példa SHA1 hash érték kiszámolása futtatás: > java sha1 abc A9993E ABA3E C26C9CD0D89D MessageDigest sha = MessageDigest. getInstance("SHA-1"); sha.update(toHash); byte[] hash=sha.digest(); System.out.println(toHex(hash));

Tóth Gergely, április 22.(19) ELTE Security Speci J2SE – applikáció authentikáció I. aszimmetrikus kulcsok (RSA) –generálása ( keytool ) –biztonságos tárolása (keystore-ban) szoftverfejlesztőnél:.JAR fájl aláírása ( jarsigner ) –aszimmetrikus kulcsú digitális aláírás (pl. SHA1RSA) szoftver felhasználónál:.JAR fájl aláírásának ellenőrzése ( jarsigner )

Tóth Gergely, április 22.(20) ELTE Security Speci J2SE – applikáció authentikáció II. a program gyártója aláírja a futtatható kódot –igazolja, hogy ő írta a programot –de tulajdonképpen mit is csinál a program? ez már csak így fog maradni :( a tendencia –nem a program jogosultságait állítják be –hanem megbízol a gyártójában :(

Tóth Gergely, április 22.(21) ELTE Security Speci Applikáció authentikáció példa I. Kulcsgenerálás >keytool -genkey -alias tgm -keystore keystore.jks Enter keystore password: password What is your first and last name? [Unknown]: Gergely Toth What is the name of your organizational unit? [Unknown]: MIS What is the name of your organization? [Unknown]: BUTE What is the name of your City or Locality? [Unknown]: Budapest What is the name of your State or Province? [Unknown]: Budapest What is the two-letter country code for this unit? [Unknown]: HU Is CN=Gergely Toth, OU=MIS, O=BUTE, L=Budapest, ST=Budapest, C=HU correct? [no]: yes

Tóth Gergely, április 22.(22) ELTE Security Speci Applikáció authentikáció példa II. Applikáció készítés Applikáció aláírás >jarsigner -keystore keystore.jks sha1.jar tgm Enter Passphrase for keystore: password Enter key password for tgm: tgmpassword >jar cvf sha1.jar sha1.class

Tóth Gergely, április 22.(23) ELTE Security Speci Applikáció authentikáció példa III. Appliákció ellenőrzés – OK >jarsigner -verify -verbose -certs sha1.jar 134 Thu Mar 27 18:21:00 CET 2003 META-INF/MANIFEST.MF 187 Thu Mar 27 18:21:02 CET 2003 META-INF/TGM.SF 1026 Thu Mar 27 18:21:02 CET 2003 META-INF/TGM.DSA 0 Thu Mar 27 18:20:12 CET 2003 META-INF/ sm 1009 Thu Mar 27 18:06:06 CET 2003 sha1.class X.509, CN=Gergely Toth, OU=MIS, O=BUTE, L=Budapest, ST=Budapest, C=HU s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore i = at least one certificate was found in identity scope jar verified.

Tóth Gergely, április 22.(24) ELTE Security Speci Applikáció authentikáció példa IV. Applikáció ellenőrzés – HIBA –ha módosul a tartalom anélkül, hogy az aláírásokat újragenerálnánk >jarsigner -verify -verbose -certs sha1.jar jarsigner: java.lang.SecurityException: SHA1 digest error for sha1.class

Tóth Gergely, április 22.(25) ELTE Security Speci Appletek I. Applet –alapvetően browserben futó JAVA program JAVA 1.1 és előtte –nincs fájlrendszer-hozzáférés –csak ahhoz a hosthoz tud socketet nyitni, ahonnan le lett töltve –nincs natív hívás –nem indíthat más programot –nem tölthet be libraryt  nehézkes

Tóth Gergely, április 22.(26) ELTE Security Speci Appletek II. JAVA 1.2 óta –aláírt applet „trusted” ha megfelelő/elfogadjuk az alírást fájlrendszer-hozzáférés socket-nyitás –futtatáskor a VM rákérdez, hogy belegyezünk-e a jogosultságok megszerzéséhez (ha nem tudta ellenőrizni az aláírást)  kényelmesebb

Tóth Gergely, április 22.(27) ELTE Security Speci J2ME - JAVA 2 Micro Edition limitált kapacitású (memória, CPU) eszközökre –mobiltelefonok –kézi számítógépek lecsupaszított nyelvi környezet nincs fájlkezelés (csak persistent storage) kommunikációs csatornák absztrakció

Tóth Gergely, április 22.(28) ELTE Security Speci MIDP 1.0 jelenlegi állapot „homokozó” elv –nincs fájlrendszer-hozzáférés –limitált erőforrások (~100k memória, ~100k bytecode) és kevés beépített osztály –kommunikációs csatorna absztrakció ( Connection osztály) nincs applikáció authentikáció! –az aláírást figyelmen kívül hagyja

Tóth Gergely, április 22.(29) ELTE Security Speci MIDP 2.0 hamarosan megjelenik (~idén nyáron) security++ –permissions bizonyos fukciók letiltása/engedélyezése –protection domains Permission templates (untrusted, trusted,...) –applikáció authentikáció aláírás ellenőrzése –crypto csomagok (pl. SSL, HTTPS, WTLS) push architecture: security?

Tóth Gergely, április 22.(30) ELTE Security Speci Rákfenék natív hívás –JAVA kiegészítése: a VM-et futtató környezetre írt gépi kódú library is használható –nem platform-független –nem biztosítja a JAVA által nyújtott biztonsági megoldásokat és megbízhatóságot MIDP 1.0 –nincs applikáció authentikáció

Tóth Gergely, április 22.(31) ELTE Security Speci Saját magamról – MONICA projekt I. JAVA alapú open-source SSH2 –

Tóth Gergely, április 22.(32) ELTE Security Speci Saját magamról – MONICA projekt II. JAVA alapú SCP2 (fejlesztés alatt)

Tóth Gergely, április 22.(33) ELTE Security Speci Kérdések ?