Programmierung von Smart Cards mit Hilfe von Java



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

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

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

Grundlagen und Anwendungsgebiete von Chipkarten

Applet Firewall und Freigabe der Objekte

Applets I. Grundlagen der g Applet-Programmierung

Praktische Anwendung des Sun Java Card Development Kit

Kapitel 3: Kommunikation mit der Karte

J.5 Die Java Virtual Machine

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Vergleich von RFID Systemen. EM 410x, 125kHz hitag, 125kHz mifare 13,56 MHz Legic 13,56 MHz. Allgemeine Funktionsweise:

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

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

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi

Applications Applets (eingeschränkte Rechte)

4D Server v12 64-bit Version BETA VERSION

Hinweise zur Inbetriebnahme der FMH-HPC auf Windows 7. Version 4,

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Systemvoraussetzungen des Zielsystems. Installationsarten MERKBLATT INSTALLATION JAVA

Java für C++ Programmierer

Smartphone Entwicklung mit Android und Java

17 Ein Beispiel aus der realen Welt: Google Wallet

Reservierungsfunktionen. Reservierung / Erstreservierung - Chip mit Unterschrift. Taste. Taste. Hpt. Taste. Kunde

Systemvoraussetzungen für ConSol*CM Version Architektur Überblick

Java Einführung Packages

Java Applet Alternativen

Deklarationen in C. Prof. Dr. Margarita Esponda

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

APEX und Workflows: Spaghetticode oder Integration. Sven Böttcher. Consultant, Apps Associates GmbH

Installation der SAS Foundation Software auf Windows

Zugriff auf die Modul-EEPROMs

Projekt MasterMind Systemspezifikation

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

Persona-SVS e-sync GUI/Client Installation

Der EWF verhindert Schreibzugriffe auf ein geschütztes Laufwerk durch Umleitung in ein Overlay

Kurzanleitung zu XML2DB

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Quick XMP Ü bertaktungseinstellungen

Modellierung und Programmierung 1

Vorkurs Informatik WiSe 15/16

DVB-T EuroMini100 Seite 1 von 10

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Programmierkurs Java

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Walkabout: Location Based Services mit Android und dem Google Phone

Bedienungsanleitung für den VM-1 MP-Dateibetrachter

Vom Smart Dust zum Smart Phone: Verfügbare SensingPlattformen. Adrian Friedli

TeleTrusT-Informationstag "IT-Sicherheit im Smart Grid"

Enterprise Mobility, Live! Pascal Kaufmann, Swisscom IT Services AG 12. Juni 2013

Anleitung Installation Microsoft SQL-Server 2008 (Express Edition)

Java Einführung Programmcode

Praktikum: Einstieg: Arbeitsplatz, JCreator

Verwenden von Fiery WebTools

Herzlich willkommen. Programmieren von Java-Smartcards

Die EnMAP-Box Ziele, Stand der Entwicklung und Ausblick

Transparente Kommunikation zwischen SPS / PC und TOSHIBA Frequenzumrichtern

Java Virtual Machine (JVM) Bytecode

Anleitung Installation Microsoft SQL-Server 2005 (Express Edition)

1. Übung zu "Numerik partieller Differentialgleichungen"

Android-Testautomatisierung mit Robotium

Protokollbeschreibung Modbus TCP für EMU TCP/IP Modul

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Einführung in die Programmierung

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player

IPETRONIK TESTdrive SDK V02.00

Programmieren in Java

DVB-T DA2 Hybrid Seite 1 von 10

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

Drei Fragen zum Datenschutz im. Nico Reiners

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

BitRecords FPGA Modul XC6SLX25_V2.0, Mai2013 1

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Key Recovery von Klasse C Enterprise Encryption Zertifikaten mit Certificate Lifecycle Manager

Einführung in Eclipse und Java

Java für Embedded Systems

Installationsvoraussetzungen

Erste Schritte mit

Installationsanleitung. Ab Version

Prof. Dr. Norbert Pohlmann, Institut für Internet Sicherheit - if(is), Fachhochschule Gelsenkirchen. Lage der IT-Sicherheit im Mittelstand

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Netzwerk Management Potentielle Systemausfälle bereiten Ihnen Sorgen?

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

Mikrocontroller Grundlagen. Markus Koch April 2011

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Computeranwendung und Programmierung (CuP)

Beschreibung EtherNet/IP Prozessschnittstelle

WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Grundlagen der Programmierung UE

SmartDispatch DMR-Dispatcher. Bestellablauf. SmartDispatch-Bestellablauf V1.0

Grundlagen der Programmierung UE

Allgemeine Anforderungen zum Einsatz von (gültig ab Version 45.xx.xx)

USB-Driver: Download-Link:

Transkript:

Java Card 2.1.2 Programmierung von Smart Cards mit Hilfe von Java Übersicht 1. Einführung Smart Cards 2. Java Card Spezifikationen 3. Java Card Development Kit 4. Java Card in der Praxis und Fazit

1. Einführung Smart Cards Smart Cards Mikroprozessorkarten Vorteile gegenüber Magnetstreifenkarten Verbreitung der Smart Cards Smart Cards Enthält Chip zur Speicherung, Verarbeitung und Übertragung von Daten Abmessungen der Karte nach ISO 7810 festgelegt Chiparchitektur nach ISO 7816,2 definiert Eight Contact Points Power Reset Check Ground Optional Contact Input/ Output Optional Contacts

Mikroprozessorkarten RAM 256-512 bytes CPU 5MHz ROM 12-30 K EEPROM 12-32 K Mikroprozessorkarten sind richtige Computer Vorteile gegenüber Magnetstreifenkarten Weniger anfällig Viel mehr Speicherplatz Mehrere Applikationen auf einer Karte Nachträgliches Löschen und Installieren von Applikationen Kommunikation mit Kartenlesegerät Kryptographie

Verbreitung der Smart Cards Weltweit 1.5 Milliarden Smart Cards verkauft (Stand 99) Unter anderem von Visa, American Express, Florida State University etc. 2. Java Card Spezifikationen Herkömmliche Smart Cards vs. Java Smart Cards (2) Java Card API (2) Java Card Runtime Environment JCRE (2) APDU: das Verbindungsprotokoll zwischen Smart Card und Kartenlesegerät (3) Ein Beispielprogramm

Smart Cards vs. Java Smart Cards(1/2) Architektur einer konventionellen Smart Card: Applikation Betriebssystem Prozessor Keine klare Trennung zwischen OS und Applikationen Viele proprietäre, untereinander nicht kompatible Betriebssysteme Applikation läuft nur auf einem Betriebssystem und gewissen Karten Entwicklung zeitaufwendig und teuer Smart Cards vs. Java Smart Cards(2/2) Architektur einer Java Smart Card: Applet Applet Applet Applet Applet Java Card API Java Card Virtual Machine Betriebssystem Prozessor Klare Trennung von Betriebssystem und Applikationen Applikationen sind kartenunabhängig

Java Card API (1/2) Nur Teilmenge von Java unterstützt In Java Card nicht implementiert Dynamisches Laden von Klassen Security Manager Garbage Collection Threads Cloning char, double, float, long Mehrdimensionale Arrays... Java Card API (2/2) API besteht aus Teilen von java.lang javacard.framework javacard.security, javacardx.crypto

Java Card Runtime Environment JCRE (1/2) Lebensdauer der Java Card VM = Lebensdauer der Smart Card jedes Applet ist von javacard.framework.applet abgeleitet JCRE interagiert mit dem Applet über folgende Methoden: install() select() process() deselect() Java Card Runtime Environment JCRE (2/2) Bei Änderung an Speicherresistenten Daten: atomares Prinzip Applet Isolation

Das APDU Protokoll (1/3) Application Protocol Data Units Halbduplex Kommunikationsprotokoll zwischen Smart Card und CAD (Card Acceptance Device) nach ISO 7816,4 spezifiziert Smart Card ist passiver Kommunikationspartner Command APDU, Response APDU Das APDU Protokoll (2/3) Command APDU Mandatory Header Command APDU Conditional Body CLA INS P1 P2 Lc Datafield Le CLA: Identifikation einer Applikation INS: Auszuführende Instruktion P1,P2: Parameter Lc: Anzahl der Bytes im Datafield Datafield: kann Daten enthalten Le: Max. Anzahl Bytes im Datafield der Antwort

Das APDU Protokoll (3/3) Response APDU Conditional Body Response APDU Mandatory Trailer Datafield SW1 SW2 Datafield: kann Daten enthalten SW1, SW2: Statusworte Bsp: Status 90 00 heisst: alles in Ordnung Beispielprogramm (1/2) import javacard.framework.*; public class Wallet extends Applet {... private void getbalance(apdu apdu) { byte[] buffer = apdu.getbuffer(); short le = apdu.setoutgoing(); if(le<2) ISOException.throwIt(ISO7816.SW_WRONG_LENGTH); apdu.setoutgoinglength((byte)2); buffer[0] = (byte)(balance >> 8); buffer[1] = (byte)(balance & 0xFF); apdu.sendbytes((short)0, (short)2); }

Beispielprogramm (2/2) Wallet_CLA =0xB0, VERIFY = 0x20; CREDIT = 0x30; GET_BALANCE = 0x50; Applet sei mit PIN 12345 und Kontostand 0 initialisiert Typische Kommunikation: 0xB0 0x20 0x00 0x00 0x05 0x01 0x02 0x03 0x04 0x05 0x7F; 0x90 0x00; 0xB0 0x30 0x00 0x00 0x01 0x64 0x7F; 0x90 0x00; 0xB0 0x50 0x00 0x00 0x00 0x02; 0x00 0x64 0x90 0x00; 3. Java Card Development Kit Java Card API Klassen Converter: Testet ob Code von Java Card unterstützt wird Capgen: erzeugt.cap Dateien JCWDE (Java Card Workstation Development Environment): simuliert Java Card Umgebung APDU Tool: damit können dem JCWDE APDU s gesendet werden.

Ein Applet schreiben myapplet.java myapplet.cap javac capgen myapplet.class converter myapplet.jca JCWDE>... 4.Java Card in der Praxis und Fazit Verbreitung 100 Mio. Java Cards in Umlauf (2000) Visa, American Express,... Hauptvorteile von Java Card Kartenunabhängigkeit Einfachheit Fazit:Java auf dem Weg zum Standart in Sachen Smart Card Programmierung

Quellen Java Card Hauptseite: www.java.sun.com/products/javacard HowtowriteaJavaCardApplet: www.javaworld.com/javaworld/jw-07-1999/jw-07-javacard_p.html www.javaworld.com/javaworld/jw-12-1997/jw-12-javadev_p.html Smart Card Hersteller: www.slb.com www.gemplus.com Exkurs: Open Card