Programmieren von Java Smartcards

Ähnliche Dokumente
Kurzanleitung Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse

Übung: Verwendung von Java-Threads

1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich

Leitfaden für die Erstellung von Javacard Programmen für das Praktikum

Praktische Anwendung des Sun Java Card Development Kit

Version 0.3. Installation von MinGW und Eclipse CDT

Anwenderdokumentation PersoSim

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

How to Public key authentication with freesshd

AuD-Tafelübung T-B5b

Im Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl

SCHRITT 0 ( Nur falls Java noch nicht installiert ist! )

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

Kapitel 3: Kommunikation mit der Karte

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Versionsverwaltung mit SVN

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube Konstanz

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Einführung in das Programmieren

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Hauptseminar. Nachweis von Sicherheitseigenschaften für Java Card durch Approximative Programmauswertung. Veranstalter Pr. T. Nipkow Dr. M.

: Einführung in die Programmierung I Übungsblatt 1

HTML5 HOCKEYSTICK EXPANDABLE BANNER v1.0

Apps-Entwicklung mit Eclipse

Software-Engineering Grundlagen des Software-Engineering

Software- und Systemsicherheit. Kurt Stenzel

Ablaufbeschreibung

PayPalPlus Magento 2 Benutzerhandbuch

Hex Datei mit Atmel Studio 6 erstellen

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Wegleitung Installation, Einstellung und Nutzung der Trader Workstation und dem NinjaTrader für PC

How to install freesshd

LEHRSTUHL FÜR DATENBANKEN

Programmieren II. Exkurs: Apache Maven. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmierung von Smart Cards mit Hilfe von Java

AVR-Programmierung unter Mac OSX

Herzlich willkommen. Programmieren von Java-Smartcards

Richard Bubel & Martin Hentschel

JDroidLib mit Eclipse (Mac/Linux/Windows)

Erste Schritte mit Eclipse

Pascal-Compiler für den Attiny

Informationen zur Installation und Nutzung von Subversion (SVN)

Die Scala Entwicklungsumgebung. L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung

Programmierumgebung. Thema: Programmierumgebungen auf eigenem Rechner installieren 1

Vorkurs Informatik WiSe 17/18

Java Wireless Toolkit (JWT) Bei der Programmierung von Anwendungsprogrammen für mobile Endgeräte eignet sich die Verwendung des Java Wireless Toolkit.

Typo 3 installieren. Schritt 1: Download von Typo3

Anleitung zur S3 Anbindung im pcvisit Private Server

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

Möge das Abenteuer beginnen!

Einführung in die Programmierung 1

Installationsanleitung

Änderungen an der libfreefare-api um mit PC/SC Lite kompatibel zu werden

1 Zugang zum GIT Repository

BOLB - Installation Homebanking Kontakte

Enigma2 Plugin Entwicklung mit Eclipse

Erweiterte Diagrammdarstellungen im BI Publisher

Direct Access Suite. Dokumentation

Multivariate Tests mit Google Analytics

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Probeklausur: Programmierung WS04/05

Merkblatt System-C Installation Linux

ADT: Java Collections und ArrayList

Einfu hrung in Subversion mit TortoiseSVN

MÖGLICHE FEHLER BEI DER ANMELDUNG

8. Dokumentenverwaltung mit CVS eine Einführung

25 Import der Beispiele

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)

2. Aufgabenblatt

S-BUSINESS SIGN. Installationsanleitung Windows 7 / 8.1 / 10 macos ab Version 10.12

Getting Started

Programmieren in Java

JUnit 4 Tutorial. Wolfgang Stöttinger

Arbeiten mit der Software STEP 7 und den Laborarbeitsplätzen SIMATIC S7-313C

Prof. Dr. Pollakowski

Stefan Draeger Gartenstr Schöningen. Velleman K8055 Experimentier Board C# Programmieranleitung

Testen mit JUnit. Motivation

Literatur und Links. Webtechnologien SS 2017 Teil 1/Entwicklung

Einfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).

Übernahme von DXF-Daten in AutoCAD. Erläuterungen

Apache JMeter

ECLIPSE PLUG-IN. Redwood Anwendertage 2015

Anmeldung bei DynDNS.org

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Software-Engineering Grundlagen des Software-Engineering

SQLcl Quo vadis SQL*Plus? Das neue SQL*Plus in der Praxis. Gunther Pippèrr GPI Consult München

(6) Verknüpfen der GUI mit dem Spiel

Eclipse Tutorial.doc

Das Build Tool Ant. Sebastian Mancke,

AristaFlow BPM Suit Installation

(1)Einführung in Eclipse

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

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

Transkript:

Programmieren von Java Smartcards Aufgabe 0: Zur Einführung in die Programmierung von Giesecke und Devrient Java Smartcards soll ein neues Kartenapplet erstellt, im Simulator getestet sowie anschließend auf die Karte gespielt und getestet werden. Dieses Projekt soll anschließend in das SVN Repository, welches für die Vorlesung erstellt wurde, eingecheckt werden, das auch zur Abgabe der weiteren Projekte dient. 1. Erstellen eines neuen Applets Starten Sie das SmartC@fe Professional Toolkit (Programme / Giesecke&Devrient) und legen Sie ein neues Projekt (z.b. TestProject) an. Wählen Sie SmartCa@fe Express 3.X als Zielplattform für das Projekt aus.

Anschließend wird der Simulator gestartet und man kann eine neue JavaCard Applet Klasse anlegen. 2. Erstellen eines Applets Ein neues Package kann man über Project / Create New Package erstellen. Dazu wird mit dem OPT Wizard eine neue.opt Datei angelegt. Anschließend muss ein Name für das zu erstellende Package angegeben werden sowie eine Package AID gewählt werden.

Anschließend müssen Zielverzeichnis und Name der.opt Datei eingegeben werden. Bei der Eingabe der Optionen für den Compiler ist es wichtig die Option 32-Bit Integer zu deaktivieren, da die Karten nur 16 Bit Arithmetik unterstützen. Abschließend muss ein Name für die Applet Klasse vergeben werden zusammen mit einer Applet AID und mittels Add New Object To List hinzugefügt werden. Mittels Fertig Stellen wird nun ein neues Applet in OffCard angelegt, welches einen Konstruktor, eine statische Methode install und die process Methode enthält. 3. Programmierung des Applets Das Applet soll jetzt zwei neue APDUS unterstützen, einmal RETURN_ARRAY sowie NEW_ARRAY. RETURN_ARRAY soll dabei den Inhalt eines 4 byte Arrays auslesen und zurücksenden. NEW_ARRAY soll dieses 4 byte Array mit zufälligen byte Werten zwischen 0 und 10 initialisieren. Für alle Konstanten sollen bei der Programmierung immer final static byte Werte verwendet werden. Diese APDUs sollen nun implementiert werden, die Funktionsaufrufe aus der process Methode heraus funktionieren wie auf den Folien beschrieben. 4. Testen des Applets Um das Applet zu testen muss dieses mittels Load to Simulation in die Simulation geladen werden, die Security Domain AID soll dabei leer bleiben.

Anschließend erscheint das Applet unter OnCard und kann in der Simulation getestet werden. Damit APDUs an das Applet geschickt werden können muss das Applet nach dem laden auf die Karte installiert werden und mittels eines speziellen SELECT APDUs ausgewählt werden. Diese Protokollschritte müssen dazu unter Script / New Script in einem Skript hinterlegt werden. Dabei muss beachtet werden, bei Install und Select die richtige Applet AID zu verwenden. Das genaue Format des Install APDUs kann der Dokumentation zum SmartC@fe Toolkit nachgelesen werden. Werden nun alle Kommandos von Init_Update bis Select erfolgreich durchgeführt, können die Applet APDUs RETURN_ARRAY und NEW_ARRAY getestet werden. Zu beachten ist dabei, dass ein mehrmaliges Aufrufen von Init_Update dazu führt, dass jedes mal eine neue Challenge generiert wird, so dass die Daten des Ext_Auth APDU neu berechnet werden müssten. Um das zu vermeiden, muss ein reset der Karte per Clear Card ausgeführt werden bevor ein neues Ext_Auth ausgeführt werden kann.

5. Testen auf der Karte Zum Abschluss soll das Applet noch auf der Karte getestet werden. Dazu müssen unter Project / Options / Download der richtige Kartenleser ausgewählt werden, die richtige Schlüsseldatei eingetragen werden (GD_V_CDK (CPG 2.04).key) sowie das Secure Channel Protocol 2 (SCP2) aktiviert werden. Falls hier die falschen Parameter gewählt werden, kann die Karte unbrauchbar gemacht werden!

Die eingetragene Applet AID ist die des Kartenmanagers und darf nicht verändert werden. Anschließend kann per Download Selected Package To Card das Applet auf die Karte geladen und dort benutzt werden. Dabei soll Single Command for INSTALL & MAKE SELECTABLE aktiviert sein. Danach ist das Applet auf die Karte geladen, installiert und als auswählbar markiert,

kann also mittels des SELECT APDUs angewählt werden und anschließend können APDUs an das Applet geschickt werden. Zum Testen des Applets auf der Karte muß ein neues Projekt angelegt werden wie im Getting Started zum Smartc@fe Toolkit beschrieben. 6. Einchecken in SVN Die Abgabe aller Übungen des Praktikums zu Programmierung von Java Smartcards wird über ein SVN Repository erfolgen. Desweiteren sollen die Repositories auch bei der Entwicklung der Programme benutzt werden, da die Rechner in regelmäßigen Abständen gesäubert werden. Zum Einchecken der Kartenprojekte steht Tortoise SVN zur Verfügung (Dokumentation: http://tortoisesvn.tigris.org/). Bei der Entwicklung der Terminalprogramme sollte am besten das SVN PlugIn von Eclipse verwendet werden. Die SVN Repositories befinden sich unter: https://swt.informatik.uni-augsburg.de/javacardsvn/gruppexx In dieses Repository sollen alle Quelldateien und notwendige Bibliotheken eingecheckt werden, bei der Abgabe auch eine lauffähige Version als jar Datei.