Praktische Anwendung des Sun Java Card Development Kit



Ähnliche Dokumente
Lösung zu Praktikum 1 -Programmierung eines Java Card Applets-

Programmierung von Smart Cards mit Hilfe von Java

Applet Firewall und Freigabe der Objekte

RID = Registered application provider id. PIX = Proprietary application identifier extension

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Eclipse 3.0 (Windows)

Web Services Security

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Java: Vererbung. Teil 3: super()

Einführung zu den Übungen aus Softwareentwicklung 1

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Java für C++ Programmierer

Konvertierung von Smap3D Norm- und Wiederholteilen für SolidWorks 2015

Java Einführung Packages

Einführung in die Informatik Tools

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Systemvoraussetzungen

Version 0.3. Installation von MinGW und Eclipse CDT

SAP Business One Adapter

Praktikum: Einstieg: Arbeitsplatz, JCreator

R-BACKUP MANAGER v5.5. Installation

Vorkurs Informatik WiSe 15/16

Smartphone Entwicklung mit Android und Java

Kurzanleitung zu XML2DB

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

C++ mit Eclipse & GCC unter Windows

Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur. Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen

Internet Explorer Version 6

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Einstieg in die Informatik mit Java

Installationsanleitung

AVIRA ANTIVIR VSA FOR SAP NETWEAVER 2004 ABAP

Java Einführung Programmcode

License Management SDK

Smap3D PDM 10. Installation. Stand-Alone-Migration-Analyzer

C# im Vergleich zu Java

UC4 Rapid Automation HP Service Manager Agent Versionshinweise

Grundlagen der Programmierung APPLETS

Remotely Anywhere Verwendung von Zertifikaten Schritt für Schritt Anleitung zur Implementation von Zertifikaten in Remotely Anywhere

Erste Schritte zum lauffähigen Java Programm

Installationsanweisung JavaHelp

Applications Applets (eingeschränkte Rechte)

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Installation und Einrichtung egk-lesegeräte

Systemvoraussetzungen

GanttProject ein open source Projektmanagementtool

Daten fu r Navigator Mobile (ipad)

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Java im Informatikunterricht der gymnasialen Oberstufe

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Programmieren von Java Smartcards

Support-Tipp Mai Release Management in Altium Designer

Einführung in Javadoc

Systemanschluss Makler

Situationsanalyse.doc

USB in Embedded Systemen. Referat von Peter Voser Embedded Development GmbH

Java Web Services Metadata JSR-181

Perceptive Document Composition

OTX ODX. MVCI-Server. Hauptkomponenten - Grundlagen. Diagnoseabläufe. Diagnosedatenbank. Diagnoselaufzeitsystem. für Diagnoseabläufe

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand Copyright

eridea AG Installation Eclipse V 1.1

Installationsanleitung Laurus Projekte System (Aufgaben / Projekte mit Gantt Chart)

WebSphere Portal 8 Migrationen

DP-101P+ Verpackungsinhalt überprüfen Die folgenden Artikel gehören zum Lieferumfang des DP-101P+:

Installation der SAS Foundation Software auf Windows

Einführung in Eclipse und Java

4. AuD Tafelübung T-C3

Installation und Einrichtung egk-lesegeräte

GameGrid mit BlueJ Seite 1

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

OpenScape Office MX V2 Applikationen

SMART Newsletter Education Solutions April 2015

Algorithmen und Datenstrukturen

Installation und Einrichtung egk-lesegeräte

New Automation Technology. PC-basierte Steuerungstechnik

Einführung in die Programmierung

Autorisierung von ArcGIS 10.3 for Server mit Internetverbindung

Anzeige des Java Error Stack in Oracle Forms

Kurzanleitung. 29. Februar Oktober 2008 Update. APtool-Kurzanleitung-V1_2_DE Seite 1 von 8

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Die neue RA-Oberfläche der DFN-PKI. Jan Mönnich

Databear Software Installer

Anforderungen an die HIS

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Transkript:

Praktische Anwendung des Sun Java Card Development Kit Vortrag Oberseminar Java-Smartcards Michael Weiser 6.12.2002

. Einführung

Gliederung Java Card Development Kit [JCDK] Komponenten Verwendung Beispiel: G&D Sm@rtCafé 1.1 [SC] Wiederholung Besonderheiten der Ansteuerung Praxis: Java Card Development Kit und G&D Sm@rtCafé 1.1 unter Linux und Windows

mit CTAPI und OCF

. JCDK

Einführung Java Card Development Kit = Sammlung von Werkzeugen zum Entwickeln von Java Card applets Komponenten: Konvertieren von class- in converted applet (CAP) und Java Card assembly (JCA)-Dateien (converter) Vorbereiten von applets zur Installation (scriptgen) Senden und Empfangen von APDUs (apdutool) Überprüfen von package-konsistenz und Binärkompatibilität (verify{cap,exp,rev}) Kartenemulation (jcwde, cref) Erzeugen von ASCII-Repräsentationen von CAP-Dateien (capdump)

Pro/Kontra Vor-/Nachteile je nach Betrachtungsweise: kommandozeilenbasiert kein Zuschnitt auf spezielle Hardware - immer gleiche Verwendung / Features evtl. nicht nutzbar Vorteile: Erweiter- und Automatisierbarkeit (Test, Serien) wird stetig weiterentwickelt weitestgehend plattformunabhängig, da Java Nachteile:

teilweise kryptische Bedienung nur für Windows und Solaris unterstützt

Installation betrachtet: Version 2.2 Voraussetzungen: J2SDK >= 1.3 OCF >= 1.2 (für RMI-Beispiel) Umgebungsvariablen: JC_HOME=<Installationspfad> PATH=$JC_HOME/bin:$PATH JAVA_HOME=<J2SDK-Installationspfad> CLASS_PATH=$JC_HOME/lib/api.jar

Workflow javac compiliert in normale class-dateien converter erzeugt JCA- oder CAP- aus class-dateien JCA mittels capgen in CAP konvertierbar EXP zur Abhängigkeitsprüfung CAP werden von scriptgen in APDU script konvertiert apdutool sendet diese an Java Card Runtime Environment (JCRE)

Beispiel package hw; import javacard.framework.*; public class hw extends Applet { protected hw() { register(); } public static void install(byte[] barray, short boffset, byte blength) { new hw(); } public void process(apdu apdu) { byte[] hw = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!'}; apdu.setoutgoing(); apdu.setoutgoinglength((short)hw.length); } } apdu.sendbyteslong(hw, (short)0, (short)hw.length);

javac Aufruf: javac <java source> Beispiel: # javac hw/hw.java api.jar muß in CLASSPATH sein

converter: CAP Aufruf: converter [-out [CAP] [JCA] [EXP]] -applet <applet AID> \ -exportpath <API export path> <class> <AID> <version> Beispiel: # converter -applet 0xF0:0x0:0x0:0x0:0x0:0x0:0x1 hw.hw \ \ -exportpath $JC_HOME/api_export_files \ \ hw 0xF0:0x0:0x0:0x0:0x0:0x00 1.0 Java Card 2.2 Class File Converter (version 1.3) Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

conversion completed with 0 errors and 0 warnings.

converter: AIDs AID = Application ID eindeutige Identifikation der Anwendung auf der Karte Vergabe durch registration authority 5-16 Bytes 5 Byte RID (Registered application provider IDentifier) 4 Bit Kategorie, 12 Bit Land, 24 Bit Organisation Kategorie: 0-9 = ISO/IEC 7812, A = international, D = national, F = unregistriert Beispiel: 0xD276xxxxxx = national registriert, Deutschland 11 Byte PIX (Proprietary Identifier extension)

converter: JCA Beispiel: # converter -out JCA \ \ -applet 0xF0:0x0:0x0:0x0:0x0:0x0:0x1 hw.hw \ \ -exportpath $JC_HOME/api_export_files \ \ hw 0xF0:0x0:0x0:0x0:0x0:0x00 1.0 Ausgabe:....method public process(ljavacard/framework/apdu;)v 7 {.stack 4;.locals 1;.descriptor Ljavacard/framework/APDU; 0.10; L0: bspush 12; newarray 11; dup; sconst_0; bspush 72; bastore; dup;

...

capgen Aufruf: capgen [-o <output file>] <jca> Beispiel: # capgen -o hw/javacard/hw.cap hw/javacard/hw.jca Java Card 2.2 CAP File Builder (version 0.55) Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. default output ist a.jar

capdump Aufruf: capdump <cap> Beispiel: # capdump hw/javacard/hw.cap Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. hw/javacard/header.cap : 01 00 10 de ca ff ed 01 02 04 00 01 06 f0 00 00 00 00 00 hw/javacard/directory.cap : 02 00 1f 00 10 00 1f 00 0b 00 0b 00 1e 00 0c 00 74 00 0a 00 0b 00 00 00 4e 00 00 00 00 00 00 01 01 00 hw/javacard/applet.cap : 03 00 0b 01 07 f0 00 00 00 00 00 01 00 0c

...

verifycap Aufruf: verifycap <package export files> <cap> Beispiel: # verifycap hw/javacard/hw.exp \ \ $JC_HOME/api_export_files/javacard/framework/javacard/framework.exp \ hw/javacard/hw.cap Java Card 2.2 Off-Card CAP File Verifier (version 2.21) Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Verifying CAP file hw/javacard/hw.cap Error: No export file provided for package java/lang

Verification completed with 0 warnings and 1 error.

verifyexp Aufruf: verifycap <package export files> <cap> Beispiel: # verifyexp hw/javacard/hw.exp Java Card 2.2 Off-Card Export File Verifier (version 2.21) Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Verifying export file hw/javacard/hw.exp Verification completed with 0 warnings and 0 errors.

scriptgen Aufruf: scriptgen [-o <output file>] <cap> Beispiel: # scriptgen -o hw/javacard/hw.scr hw/javacard/hw.cap Java Card 2.2 APDU Script File Builder (version 0.11) Copyright 2002 Sun Microsystems, Inc. All rights reserved. APDU script file for CAP file download generated. default output ist stdout: 0x80 0xB0 0x00 0x00 0x00 0x7F; // hw/javacard/header.cap 0x80 0xB2 0x01 0x00 0x00 0x7F;

0x80 0xB4 0x01 0x00 0x13 0x01 0x00 0x10 0xDE 0xCA \ 0xFF 0xED 0x01 0x02 0x04 0x00 0x01 0x06 0xF0 0x00 \ 0x00 0x00 0x00 0x00 0x7F;...

jcwde, cref

apdutool

. SmartC@fe

Wiederholung

. Praxis

Patch Linux! Einführung

. Zusammenfassung

Überblick

Fragen?

Referenzen Resourcen zu Java Card Development Kit, Sm@rtCafé und OCF Java Card Development Kit, G&D Sm@rtCafé und OCF [JCDK] Sun Microsystems, Inc.. Java Card(TM) Technology. Spezifikationen und Java Card Development Kit-Download. 30. Oktober 2002. http://java.sun.com/products/javacard/ (besucht 3.12.2002). [SC] Giesecke & Devrient. Sm@rtCafé - The Java Card. 2002. http://www.gdm.de/ger/products/03/index.php4?product_id=168 (besucht 4.12.2002). [OCF] OpenCard. Welcome to OpenCard. http://www.opencard.org/ (besucht 3.12.2002). [AID] Technical Specification Group Terminals (3G TS). Meeting #6: Numbering system for telecommunication IC card applications. 13.-15. Dezember 1999. http://www.3gpp.org/ftp/tsg_t/tsg_t/tsgt_06/docs/pdfs/tp-99230.pdf (besucht 4.12.2002).

JavaCards unter Linux Juha Yrjölä, Timo Teräs, Antti Tapaninen, and Olaf Kirch. OpenSC. Smart- Card library and Applications. http://www.opensc.org/ (besucht 3.12.2002). Matthias Brüstle. SCEZ - Smart Card Library. 15. September 2001. http://www.franken.de/crypt/scez.html (besucht 3.12.2002). Movement for the Use of SmartCards in a Linux Environment (M.U.S.C.L.E). LinuxNet.com - MUSCLE - Linux SmartCard Development. http://www.linuxnet.com/ (besucht 3.12.2002).