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

Java ME – Java EE, Bouncy Castle csomagot használó esettanulmány Bátfai Norbert Debreceni Egyetem.

Hasonló előadás


Az előadások a következő témára: "Java ME – Java EE, Bouncy Castle csomagot használó esettanulmány Bátfai Norbert Debreceni Egyetem."— Előadás másolata:

1 Java ME – Java EE, Bouncy Castle csomagot használó esettanulmány Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia Tanszék egyetemi tanársegéd Dokumentum verzió: , Debrecen, dec. 18. TARIPAR 2008 (Lokális és regionális tartalomipar fejlesztése, innovatív értéknövelt szolgáltatások keretrendszerének kialakítása adatvagyonok hasznosítására című) pályázat

2 TARIPAR előadás Bátfai, Norbert Debreceni Egyetem, Informatikai Kar, Információ Technológia Tanszék Copyright © 2009 Bátfai Norbert E közlemény felhatalmazást ad önnek jelen dokumentum sokszorosítására, terjesztésére és/vagy módosítására a Szabad Szoftver Alapítvány által kiadott GNU Szabad Dokumentációs Licenc 1.2-es, vagy bármely azt követő verziójának feltételei alapján. Nem változtatható szakaszok nincsenek. Címlap szövegek nincsenek. Hátlap szövegek nincsenek. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front- Cover Texts and with no Back-Cover Texts being. Felhasználási engedély A GNU Free Documentation License nem hivatalos magyar fordítása:

3 Az előadás vázlata Elmélet ● A példa tervezése, fejlesztése, üzemeltetése ● Felhasznált szoftverek, API programozás ● Nyílt forráskód, Licenc ● Java, MIDP, Mobil mérések ● SSL, TLS, WTLS, HTTPS, PKI, PKCS stb. Példák ● ArgoUML: használati esetek, aktivitás diagramok ● Bouncy Castle kriptográfiai csomag ● Glassfish alkalmazásszerver, Apache Tomcat ● Sun Wireless Toolkit, Java ME SDK, készülék specifikus (Nokia, Motorola, Sony Ericsson) szimulátorok ● GNU FDL, MIT X11 ● „Benchmarkok” Gyakorlat ● Az esettanulmány demózása ● Java ME telefonról httpS példa demózása

4 Tervezés, alkalmazás architektúra

5

6 Kliens-szerver modell A szimmetrikus kulcs szétosztása

7 Egy HTTP kérés-válaszban minden

8 Felhasznált szoftverek JDK 6 Update 16 ● keytool NetBeans IDE ● Java ME kliens ● Java EE szerver, Servlet webalkalmazás (Maven) Bouncy Castle ● Crypto-j2me-143 a klienshez ● ccprov-jdk central Maven repo Apache Tomcat ● https://sgu:8443/HttpsDemoSzerver/ https://sgu:8443/HttpsDemoSzerver/ Sun GlassFish Enterprise Server v3 Prelude ●

9 Felhasznált szoftverek Java™ ME SDK 3.0 ● Java ME kliens Sun Java™ Wireless Toolkit for CLDC 2.5.2_01 ● HttpS-es Java ME kliens Sony Ericsson SDK for the Java™ ME Platform Motorola Java ME SDK 6.4 (regisztrált fejlesztők) Series 40 Nokia 6212 NFC SDK (regisztrált fejlesztők) ● Java ME kliens Továbbiak: ArgoUML, Maven, Wireshark, Subversion (SVN).

10 Fejlesztés - felhasznált szoftverek NetBeans ● Java ME kliens ● Java EE szerver, Servlet webalkalmazás (Maven) Bouncy Castle ● Crypto-j2me-143 a klienshez ● ccprov-jdk central Maven repo Eredmény ● TariparMobilKliens.jad, TariparMobilKliens.jar ● TariparSzerver.war

11 ● 495 fejlesztő vett részt eddig a projektben: ● MIT X11-hez hasonló licenc (az GPL-kompatibilis), fejlesztés Ausztráliához köthető ● Szimmetrikus blokk titkosítók: AES, Blowfish, Blowfish, Camellia, CAST5, DED, DESede, GOST28147, IDEA, Noekeon, RC2, RC532, RC564, RC6, Rijndael, SEEDWrap, Serpent, Skipjack, TEA, Twofish, XTEA; stream titkosítók: RC4, HC128, HC256, Salsa20, ISAAC, VMPC, Grainv1, Grainv128 (lásd még köv. fóliákat) ● Asszimetrikus titkosítók: RSA, ElGama ● Lenyomat készítés: MD2, MD4, MD5, RipeMD128, RipeMD160, RipeMD256, RipeMD320, SHA1, SHA224, SHA256, SHA384, SHA512, Tiger, GOST, GOST3411, Whirlpool (lásd még köv. fólia) ● ASN.1 támogatás ● X.509 (PEM, DER), PKI (lásd még köv. fólia) ● S/MIME, OpenPGP (lásd még köv. fólia) ● Több, mint fél mega, Jávás mobilra obfuszkálni kell! Felhasznált szoftverek, Bouncy Castle Camellia CAST5 GOST RC2 SEED

12 Felhasznált szoftverek, API programozás

13 API programozás - SSL, TLS, WTLS, HTTPS, PKI, PKCS stb. ● RSA, PKCS #1: RFC 2437, 2. Notation (n, e) RSA public key c ciphertext representative, an integer between 0 and n-1 C ciphertext, an octet string d private exponent... e public exponent … n modulus p,q prime factors of the modulus...

14 API programozás - SSL, TLS, WTLS, HTTPS, PKI, PKCS stb. ● RSA, PKCS #1: RFC 2437, 2. Notation (n, e) RSA public key c ciphertext representative, an integer between 0 and n-1 C ciphertext, an octet string d private exponent... e public exponent … n modulus p,q prime factors of the modulus...

15 Java platform Forrás: Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged! DEENK Linux PC Windows PC Solaris szerver Nokia mobil Motorola mobil JVM LEGO robot Java nyelv Java SE Java ME Java EE leJOS Se rvl et A pp let MI Dl et november, a Sun megnyitja a Java-t Nincs Java csapda, GNU GPL v2 ● Java ME – phoneME (Mobile & Embedded) ● Java SE – OpenJDK ● Java EE – GlassFish https://glassfish.dev.java.net/https://glassfish.dev.java.net/

16 MIDP programozás - SSL, TLS, WTLS, HTTPS, PKI, PKCS stb. ● CLDC ● MIDP javax.microedition.pki (MIDP 2.0) javax.microedition.pki.Certificate javax.microedition.pki.CertificateException java.io java.lang java.util javax.microedition.io javax.microedition.lcdui javax.microedition.lcdui.game javax.microedition.media javax.microedition.media.control javax.microedition.midlet javax.microedition.pki javax.microedition.rms javax.microedition.io.SecurityInfo javax.microedition.io.HttpsConnection.getSecurityInfo() throws IOException javax.microedition.pki.Certificate javax.microedition.io.SecurityInfo.getServerCert ificate()

17 Tesztelés Kliens oldal ● Sony Ericsson SDK for the Java™ ME Platform ● Motorola Java ME SDK ● Series 40 Nokia 6212 NFC SDK Szerver oldal ● Sun GlassFish Enterprise Server v3 Prelude https://glassfish.dev.java.net/downloads/v3-preview.html https://glassfish.dev.java.net/ https://glassfish.dev.java.net/downloads/v3-preview.html https://glassfish.dev.java.net/ ● Apache Tomcat

18 Kliens oldal ● Sony Ericsson SDK for the Java™ ME Platform ● Motorola Java ME SDK ● Series 40 Nokia 6212 NFC SDK Szerver oldal ● Sun GlassFish Enterprise Server v3 Prelude https://glassfish.dev.java.net/downloads/v3-preview.html https://glassfish.dev.java.net/ https://glassfish.dev.java.net/downloads/v3-preview.html https://glassfish.dev.java.net/ ● Apache Tomcat Tesztelés

19 Kliens oldal ● Webes kliens: csak diagnosztika Firefox 3.5.3,

20 Demó

21

22 A táblázat színkódjai: ● sárga – másodperces nagyságrend, ● zöld – perces nagyságrend, ● piros – órás nagyságrend. ● Valódi telefonos adatok a táblázatban! Kriptográfiai mérések mobiltelefonon

23 Demó

24

25

26

27 A szerver küldte tiszta szöveg a klienstől kapott szöveg minden betűjének megduplázása.

28 #| T12:21: |INFO|glassfish|null|_ThreadID=15;_ThreadName=Thread- 4;|Kapott üzenet:Ś9?آ‚šßcď“Ę\J|#] [#| T12:21: |INFO|glassfish|null|_ThreadID=15;_ThreadName=Thread- 4;|Kapott tiszta:Helló, Világ! |#] [#| T12:21: |INFO|glassfish|null|_ThreadID=15;_ThreadName=Thread- 4;|Kliensnek vissza tiszta: HHeellllóó,, VViilláágg!! |#] [#| T12:21: |INFO|glassfish|null|_ThreadID=15;_ThreadName=Thread- 4;|Kliensnek vissza titkos: á!v“5SÜó>K?M/rż¬şĂYÎmÇíÉĘć˛ĆÄ^¸´ŰÔ˛v׫‡?q.|#] Demó

29 Wireshark

30 SSL, TLS, WTLS, HTTPS, PKI, PKCS stb. ● RSA, PKCS #1: RFC 2437, ● PKI tanúsítvány formátum, X.509: RFC 2459, ● SSL, TLS, WTLS, HTTPS: RFC 2246, ● HTTP Over TLS: RFC 2818, ● ● SSL v3 ● WTLS (Wireless Transport Layer Security), a.pdf a.pdf

31 Egy példa SSL fölötti HTTP kommunikációra HTTPS Java ME mobilról Saját magunk által aláírt a teszteléshez.

32 HTTPS Java ME mobilról

33

34 Client Hello

35

36 Server Hello

37 Client Key Exchange Előzetes főkulcs: a kliens generál egy 48 bájtos véletlen blokkot, amit a szerver nyilvános RSA kulcsával titkosítva elküld a szerverre.

38 Client Key Exchange

39 Főkulcs

40 Change Cipher Spec

41 Wireshark

42 SSL, WTLS WWW Szerve r Rádiós alhálózat Átjáró

43 HTTPS Java ME mobilról

44

45

46 https://www.java.com/en/

47 HTTPS Java ME mobilról https://www.inf.unideb.hu

48

49 Irodalomjegyzék - Bátfai Norbert: Kriptográfiai mérések mobiltelefonon (a közös munkaterületen elérhető) - MOTOVDEV: USING CRYPTO APIS FOR SECURE COMMUNICATIONS - How to setup SSL Connection in Motorola Linux phones - Ray Rischpater: Beginning Java™ ME Platform, Apress; 1 edition (October 23, 2008) - David Hook: Beginning Cryptography with Java, Wrox (August 19, 2005) - Carol Hamer: Creating Mobile Games: Using Java ME Platform to Put the Fun into Your Mobile Device and Cell Phone, Apress (August 13, 2007)

50 Kérdés Az olyan példákban, dokumentumokban, amikben nem áramlik ki információ a pályázat felől, lehet-e nyílt a licenc, például GNU FDL, hogy a hallgatókat be tudjam kapcsolni a mérésekbe? (Lásd még ugyanezt a kérdést a közös munkaterületen a Bátfai Norbert: Kriptográfiai mérések mobiltelefonon dokumkentum kapcsán.) Válasz A projekt vezetése az előadás során megadta a választ: igen, lehet. Ennek megfelelően jelen dokumentum itt elérhető:

51 További tervek ● További mérések megvalósítása valódi telefonokon. ● Hálózati tesztelés és mérések valódi telefonokkal.

52 Köszönöm a figyelmet Skype: batfai.norbert MSN: Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia Tanszék egyetemi tanársegéd


Letölteni ppt "Java ME – Java EE, Bouncy Castle csomagot használó esettanulmány Bátfai Norbert Debreceni Egyetem."

Hasonló előadás


Google Hirdetések