Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Tóth Gergely, 2003. április 22. ELTE Security Speci JAVA Security Tóth Gergely"— Előadás másolata:

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

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

3 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ű

4 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

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

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

7 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)

8 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

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

10 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ő)

11 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 –...

12 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

13 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

14 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)

15 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)

16 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)

17 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,

18 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));

19 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 )

20 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 :(

21 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

22 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

23 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.

24 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

25 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

26 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

27 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ó

28 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

29 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?

30 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ó

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

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

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


Letölteni ppt "Tóth Gergely, 2003. április 22. ELTE Security Speci JAVA Security Tóth Gergely"

Hasonló előadás


Google Hirdetések