Tóth Gergely, 2003. május 5. ELTE JAVA Speci JAVA Security Tóth Gergely Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és.

Slides:



Advertisements
Hasonló előadás
© Kozsik Tamás Különböző nyelvekhez igazítás Internationalization - i18n.
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
Készítette: Boros Erzsi
IPSec.
Erőállóképesség mérése Találjanak teszteket az irodalomban
Mellár János 5. óra Március 12. v
Bemutatkozás Barta Csaba Deloitte Zrt. Manager CHFI
Titkosítás Digitális aláírás Szabványosított tanúsítványok
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
A tételek eljuttatása az iskolákba
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
Fájlkezelés, IO Kivételkezelés Belső osztályok
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Mérés és adatgyűjtés laboratóriumi gyakorlat Makan Gergely, Mingesz Róbert, Nagy Tamás 2. óra szeptember 9., 10. v
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Tömbök ismétlés Osztályok Java-ban Garbage collection
Informatikai biztonság alapjai 4. Algoritmikus adatvédelem
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
Védőgázas hegesztések
Digitális Aláírás ● A rejtjelező algoritmusokon alapuló protokollok közé tartozik a digitális aláírás is. ● Itt is rejtjelezés történik, de nem az üzenet.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Kliensoldali Programozás
Szerkezeti elemek teherbírásvizsgálata összetett terhelés esetén:
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
szakmérnök hallgatók számára
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Tóth Gergely, április 22. ELTE Security Speci JAVA Security Tóth Gergely
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
Mobil informatika gyakorlat 3. óra: NDEF üzenet írása.
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.
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 Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Csurik Magda Országos Tisztifőorvosi Hivatal
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
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.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java programozási nyelv Adatbekérés konzolról
Webszolgáltatás szabványok Simon Balázs
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
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 KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
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.
Kulcs, kulcspár, hash… titkosítási (hangos) kisszótár Harsán Péter szervező mérnök alapító tag Hétpecsét Információbiztonsági Egyesület.
Nyilvános kulcsú titkosítás Digitális aláírás Üzenet pecsétek.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
Az Informatikai biztonság alapjai
Miért biztonságos az Internet? 40 éves a nyílt kulcsú kriptográfia
IT hálózat biztonság Összeállította: Huszár István
IT hálózat biztonság Összeállította: Huszár István
Előadás másolata:

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 Információs Rendszerek Tanszék

Tóth Gergely, május 5.(2) ELTE JAVA Speci Tartalom JAVA security alapkövek Buffer overflow JAVA security architektúra Bytecode security JAVA cryptography Applikáció authentikáció Appletek J2ME Saját projektem

Tóth Gergely, május 5.(3) ELTE JAVA Speci JAVA security alapkövek nyelvi szintennyelvi szinten buffer overflow elleni védelem osztályok szintjénosztályok szintjén security architektúra beépített kriptográfiai csomagok (JCE) SDK szintenSDK 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, május 5.(4) ELTE JAVA Speci Buffer overflow – az elmélet leggyakoribb kihasznált biztonsági lyukbuffer overflow: magasan a leggyakoribb kihasznált biztonsági lyuk

Tóth Gergely, május 5.(5) ELTE JAVA Speci Buffer overflow – például C-ben #define BUF_SIZE 16 void ExploitableFunction(char* param) { // do something... char localBufferOnStack[BUF_SIZE]; strcpy(localBufferOnStack, param); // do something... printf("%s", localBufferOnStack); } void ExploiterFunction() { // nothing serious ExploitableFunction(" "); // what will happen? ExploitableFunction(" "); }

Tóth Gergely, május 5.(6) ELTE JAVA Speci Buffer overflow – JAVA-ban VM szinten valószinűtlenVM szinten valószinűtlen –nagyon kemény buffer-overflow elleni projekt a SUN-on belül nyelvi szinten lehetetlennyelvi szinten lehetetlen –nincs pointer művelet –tömböt nem lehet túlcímezni a tömb tudja a hosszát (length mező) elhanyagolható a valószínűségeösszességében: JAVA-ban elhanyagolható a valószínűsége

Tóth Gergely, május 5.(7) ELTE JAVA Speci JAVA security architektúra I. beépített security funkciók –standard osztályok szintjén jogosultságok (Permission) jogosultság hozzárendelések (Policy) jogosultsági csoportok (ProtectionDomain) –kezelése egyszerű integrált a legtöbbe esetben mind a felhasználó, mint a programozó számára transzparens

Tóth Gergely, május 5.(8) ELTE JAVA Speci JAVA security architektúra II. Permissionjava.security.Permission –jogosultságok leírására –FilePermission FilePermission(„/tmp/*”, „read”) –SocketPermission SocketPermission(„localhost:1024-”, „listen”) –RuntimePermission –AWTPermission –...

Tóth Gergely, május 5.(9) ELTE JAVA Speci JAVA security architektúra III. ProtectionDomainjava.security.ProtectionDomain osztályok halmazához rendel jogosultságokat minden osztály pontosan egy domainhez tartozik minden új objektum példány az osztálya domainjének jogosultságait kapja

Tóth Gergely, május 5.(10) ELTE JAVA Speci JAVA security architektúra IV. Policyjava.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, május 5.(11) ELTE JAVA Speci JAVA security architektúra V. Policy beállításaPolicy beállítása –van rá JDK tool ( policytool ) –policy fájl grant { permission java.lang.RuntimePermission "stopThread"; permission java.net.SocketPermission "localhost:1024-", "listen"; permission java.util.PropertyPermission "java.version", "read";... };

Tóth Gergely, május 5.(12) ELTE JAVA Speci JAVA security architektúra VI. 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 privilege gain –user domainbeli objektum ki akar írni valamit, meghívja a system domainbeli objektum metódusát (privilege gain) privilege loss –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, május 5.(13) ELTE JAVA Speci JAVA security architektúra VII. jogosultságok metszeteaz aktuális szál jogosultsága: az általa bejárt összes domain által biztosí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, május 5.(14) ELTE JAVA Speci JAVA security architektúra – példa cursor = (Cursor) java.security.AccessController.doPrivileged( new java.security.PrivilegedExceptionAction() { public Object run() throws Exception { Toolkit toolkit = Toolkit.getDefaultToolkit(); Image image = toolkit.getImage( systemCustomCursorDirPrefix + fileName); return toolkit.createCustomCursor( image, new Point(fx,fy), flocalized); } ); java.awt.Cursor –getSystemCustomCursor the system specific custom Cursor named

Tóth Gergely, május 5.(15) ELTE JAVA Speci Bytecode security I. futtatása közben dinamikusan tölti bea JAVA virtuális gép az alkalmazás futtatása közben dinamikusan tölti be az osztályokat (bytecode-ot) –fájlból –hálózaton keresztül –elképzelhető run-time generált bytecode betöltése is a betöltés során ellenőrizni kellezeket a bytecode-okat a betöltés során ellenőrizni kell

Tóth Gergely, május 5.(16) ELTE JAVA Speci Bytecode security II.

Tóth Gergely, május 5.(17) ELTE JAVA Speci Bytecode security III. Ellenőrzésre kerülnek: szintakszisa –a bytecode szintakszisa legális-e; paraméter stack over/underflow –nincs-e paraméter stack over/underflow; minden paramétere megfelelő típusú-e –minden bytecode parancs minden paramétere megfelelő típusú-e; hozzáférések jogosultságai –konstruktor, metódus és mező hozzáférések jogosultságai megfelelőek-e ( private, public, protected ); –objektumokat annak használ-e amik –objektumokat annak használ-e amik ( InputStream -et nem OutputStream -nek).

Tóth Gergely, május 5.(18) ELTE JAVA Speci JAVA cryptography javax.crypto és java.security csomagok –interface-ek kriptográfiai algoritmusoknak továbbfejlesztési és kiegészítési lehetőség –beépített kriptográfiai algoritmus implementációk szabványoknak megfelel (RFC, IETF, PKCS) garantáltan biztonságos maximális teljesítmény

Tóth Gergely, május 5.(19) ELTE JAVA Speci Titkosítás titkosító algoritmusok –szimmetrikus kulcsú –szimmetrikus kulcsú algoritmusok blokk-kódolók (pl. DES, 3DES, Blowfish, AES) folyam-kódolók (pl. RC4) működési módok (ECB, CBC, OFB, CFB) –aszimmetrikus kulcsú –aszimmetrikus kulcsú algoritmusok (pl. RSA, ECC) nyilvános kulcs titkos kulcs

Tóth Gergely, május 5.(20) ELTE JAVA Speci Titkosítás II. szimmetrikus kulcsúszimmetrikus kulcsú –kódolásnál és dekódolásnál ugyanaz a kulcs nem letagadhatatlan aszimmetrikus kulcsúaszimmetrikus kulcsú –A a B-nek küldött üzenetet B nyilvános kulcsával kódolja –kézbesítéskor B titkos kulcsával dekódolja –mivel csak B ismeri titkos kulcsát, csak ő tudja a nyilvános kulcsával kódolt üzenetet dekódolni ha küldéskor B nyilvános, A titkos kulcsával kódolunk, akkor letagadhatatlan is

Tóth Gergely, május 5.(21) ELTE JAVA Speci Kriptográfiai példa I. – titkosítás import java.security.*; import javax.crypto.*; import javax.crypto.spec.*; public class BlowfishKey { public static void main(String[] args) throws Exception { KeyGenerator kgen = KeyGenerator.getInstance("Blowfish"); SecretKey skey = kgen.generateKey(); byte[] raw = skey.getEncoded(); SecretKeySpec skeySpec = new SecretKeySpec(raw, "Blowfish"); Cipher cipher = Cipher.getInstance("Blowfish"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); System.out.println(new String( cipher.doFinal("This is just an example".getBytes())); }

Tóth Gergely, május 5.(22) ELTE JAVA Speci Kriptográfiai hash generálás hashelés (pl. SHA1 vagy MD5) –tetszőleges sztringhez konstans hosszú egyértelmű hash sztringet rendel sztringből hashet generálni egyszerű adott hashből eredeti sztringet visszaállítani elméletileg lehetetlen adott hashhez olyan sztringet generálni, aminek az adott hash a hash sztringje, gyakorlatilag lehetetlen –önmagában ritkán használják

Tóth Gergely, május 5.(23) ELTE JAVA Speci Kriptográfiai példa II. – hash generálás SHA-1 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, május 5.(24) ELTE JAVA Speci MAC generálás MAC (Message Authentication Code) rejtjel kulccsal elvégzett hash művelet –„rejtjel kulccsal elvégzett hash művelet” –csak a rejtjelkulccsal rendelkező entitások képesek a MAC generálására –integritásvédelemre –pl. HMAC HMAC-SHA1 HMAC-MD5

Tóth Gergely, május 5.(25) ELTE JAVA Speci Kriptográfiai példa III. – MAC import java.security.*; import javax.crypto.*; public class initMac { public static void main(String[] args) throws Exception { // Generate secret key for HMAC-MD5 KeyGenerator kg = KeyGenerator.getInstance("HmacMD5"); SecretKey sk = kg.generateKey(); // Get instance of Mac object and // initialize it with the above secret key Mac mac = Mac.getInstance("HmacMD5"); mac.init(sk); System.out.println(new String(mac.doFinal( "Hi There".getBytes())); }

Tóth Gergely, május 5.(26) ELTE JAVA Speci Digitális aláírás I. titkos kulcs birtokosa írta alácélja annak biztosítása, az aláírt dokumentumot a titkos kulcs birtokosa írta alá –direkt aláíró algoritmus (pl. DSA) –hash érték titkos kulccsal történő aszimmetrikus titkosítása (pl. SHA1withRSA)

Tóth Gergely, május 5.(27) ELTE JAVA Speci Digitális aláírás II. – generálás

Tóth Gergely, május 5.(28) ELTE JAVA Speci Digitális aláírás III. – ellenőrzés

Tóth Gergely, május 5.(29) ELTE JAVA Speci Kriptográfiai példa IV. – digitális aláírás byte[] toSign="Text to sign...".getBytes(); SecureRandom ran = new SecureRandom(); KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(1024, ran); KeyPair pair = keyGen.generateKeyPair(); // sign Signature sig = Signature.getInstance("SHA1withRSA"); sig.initSign(pair.getPrivate()); sig.update(toSign); byte[] signature=sig.sign(); // verify Signature ver = Signature.getInstance("SHA1withRSA"); ver.initVerify(pair.getPublic()); ver.update(toSign); System.out.println("Verification: "+ver.verify(signature));

Tóth Gergely, május 5.(30) ELTE JAVA Speci Egyéb kriptográfiai osztályok biztonságos véletlen szám generálásbiztonságos véletlen szám generálás –kulcsgenerálás biztonságosságának növelésére kulcsgeneráláskulcsgenerálás kulcstároláskulcstárolás (keystore) –jelszóval védett, titkosított fájl certificate kezeléscertificate kezelés (X.509) –nyilvános kulcs tárolására

Tóth Gergely, május 5.(31) ELTE JAVA Speci Applikáció authentikáció I. aszimmetrikus kulcsokaszimmetrikus kulcsok (RSA) –generálása ( keytool ) –biztonságos tárolása (keystore-ban) szoftverfejlesztőnélszoftverfejlesztőnél:.JAR fájl aláírása ( jarsigner ) –aszimmetrikus kulcsú digitális aláírás (pl. SHA1withRSA) szoftver felhasználónálszoftver felhasználónál:.JAR fájl aláírásának ellenőrzése ( jarsigner )

Tóth Gergely, május 5.(32) ELTE JAVA Speci Applikáció authentikáció II. a program gyártója aláírja a futtatható kódota 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, május 5.(33) ELTE JAVA Speci Keystore KulcsfájlKulcsfájl –egy keystore-ban több kulcspár is tárolható (azonosításuk aliasszal) –titkos kulcsok tárolására fájlszinten kódolt jelszóval védett (fájlszinten és aliasokként is) –nyilvános kulcsok tárolására certificate-ek formájában

Tóth Gergely, május 5.(34) ELTE JAVA Speci JAR aláírás ( jarsigner ) I. normálisnormális.JAR fájl –.CLASS fájlok –manifest aláírtaláírt.JAR fájl –.CLASS fájlok –módosított manifest –ALIAS.SF (pl. TG.SF ) –ALIAS.DSA (pl. TG.DSA )

Tóth Gergely, május 5.(35) ELTE JAVA Speci JAR aláírás ( jarsigner ) II. ALIAS.SFALIAS.SF –minden aláírt fájlra hash (pl. SHA-1) BASE-64-ben kódolva Name: com/monica/javacom/streams/MJCWriteableIsAIS.class SHA1-Digest: lcNRm/q+QZnxygf9Ubf3PJWgND8= ALIAS.DSAALIAS.DSA –aláírók nyilvános kulcsa (certificate-ek) –aláírások

Tóth Gergely, május 5.(36) ELTE JAVA Speci Applikáció authentikáció – példa I. kulcsgeneráláskulcsgenerá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, május 5.(37) ELTE JAVA Speci Applikáció authentikáció – példa II. applikáció készítésapplikáció készítés applikáció aláírásappliká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, május 5.(38) ELTE JAVA Speci Applikáció authentikáció – példa III. applikáció ellenőrzés – OKapplikáció 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, május 5.(39) ELTE JAVA Speci Applikáció authentikáció – példa IV. applikáció ellenőrzés – HIBAappliká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, május 5.(40) ELTE JAVA Speci Appletek I. Applet –alapvetően browserben futó JAVA program –ha az Applet nincs aláírva: nincs fájlrendszer-hozzáférésnincs fájlrendszer-hozzáférés csak ahhoz a hosthoz tud socketet nyitni, ahonnan le lett töltvecsak 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, május 5.(41) ELTE JAVA Speci Appletek II. aláírt Applet: –„trusted” ha megfelelő az aláírás ismert certificatehez tartozó titkos kulccsal írták alá az aláírás érvényes –ugyanúgy tud futni, mintha nem is Applet lenne  kényelmesebb

Tóth Gergely, május 5.(42) ELTE JAVA Speci Aláírt Applet példa I. – készítés KulcskészítésKulcskészítés –keytool -genkey... Certificate exportálásCertificate exportálás –keytool -export... JAR fájl készítés és aláírásJAR fájl készítés és aláírás –jar cvf... –jarsigner...

Tóth Gergely, május 5.(43) ELTE JAVA Speci Aláírt Applet példa II. – használat Certificate importCertificate import –JAVA plug-in control panelből

Tóth Gergely, május 5.(44) ELTE JAVA Speci J2ME - JAVA 2 Micro Edition limitált kapacitású eszközökrelimitált kapacitású (memória, CPU) eszközökre –mobiltelefonok –kézi számítógépek lecsupaszított nyelvi környezetlecsupaszított nyelvi környezet –kevesebb standard osztály –bizonyos nyelvi tulajdonságok is hiányoznak (pl. nincs float)

Tóth Gergely, május 5.(45) ELTE JAVA Speci MIDP 1.0 jelenlegi állapot homokozó„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, május 5.(46) ELTE JAVA Speci MIDP 2.0 hamarosan megjelenik (~idén nyáron) security++ –permissions bizonyos funkció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 architecturepush architecture: security?

Tóth Gergely, május 5.(47) ELTE JAVA Speci JAVA rákfenék natív hívásnatí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.0MIDP 1.0 –nincs applikáció authentikáció

Tóth Gergely, május 5.(48) ELTE JAVA Speci Saját magamról – MONICA projekt I. JAVA alapú open-source SSH2 –

Tóth Gergely, május 5.(49) ELTE JAVA Speci Saját magamról – MONICA projekt II. JAVA alapú SCP2 (fejlesztés alatt)

Tóth Gergely, május 5.(50) ELTE JAVA Speci Kriptográfiai műveletek az SSH2-ben digitális aláíráscertificatedigitális aláírás és certificate kezelés a kulcscseréhez szimmetrikus kulcsú titkosításszimmetrikus kulcsú titkosítás a csatorna bizalmasságának védelmére MACMAC a csatorna integritásának biztosításához

Tóth Gergely, május 5.(51) ELTE JAVA Speci SSH2 csomag képzése

Tóth Gergely, május 5.(52) ELTE JAVA Speci SSH2 csomag képzése – MONICA payload=compressionAlg.compress(payload); len_without_mac=16; padding_len=len_without_mac-5-payload.length(); if (padding_len<4) padding_len=4; len_without_mac=padding_len+payload.length()+5; while ((len_without_mac%minLen)!=0) len_without_mac++; padding_len=len_without_mac-5-payload.length(); result=io.wUint32(len_without_mac-4); result=result.concat(io.wByte(padding_len)); result=result.concat(payload); padding=new char[padding_len]; for (int i=0; i<padding_len; i++) padding[i]=(char)(Math.random()*255.0); result=result.concat(new String(padding)); mac=macAlg.createMAC(io.wUint32(seqNo)).concat(result),IK); result=cipherAlg.encode(result); result=result.concat(mac);

Tóth Gergely, május 5.(53) ELTE JAVA Speci Kérdések ?