Das JavaCard-Betriebssystem

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

Designing Software for Ease of Extension and Contraction
Objektorientierte Datenbanken
Smart Identification Björn Piesker
1 Spezielle Packages des Java SDK (1.4) java.nio.
Neuerungen in PalmOS® 5 Florian Schulze (SS 2003).
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Komponentenbasierter Taschenrechner mit CORBA
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Introducing the .NET Framework
DVG Klassen und Objekte
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
JDBC: JAVA Database Connectivity
Typo3 Eine Einführung.
Java for Process Control P.Wüstner - Zentrallabor für Elektronik (ZEL) - JfPC: eine neue Technologie für den plattform- unabhängigen Zugriff auf Prozeßperipherie.
Eine Entwicklungsumgebung im Web IFC-Seminar WS98/ Holger Otte.
Jedes Programm verwendet Datenstrukturen und Algorithmen um seine Aufgabe zu erfüllen Diese müssen offenbar zunächst sorgfältig dem speziellen Problem.
Open Services Gateway Initiative
Entwicklung verteilter eingebetteter Systeme - Einführung
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Plattformunabhängige Programmiersprache
Michael Haverbeck System Engineer
DB-Zugriffstechnologien im Internet Ein Referat von Marc Reinecke.
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Performance-Optimierung in JAVA
Thats IT!. Titelmasterformat durch Klicken bearbeiten Über uns Mit uns bekommen Sie: Beratung – Doing - Betreuung langjährige Erfahrung umfassende Beratung.
Seminar aus Softwareentwicklung: Inside Java and .NET
Java und Eclipse.
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Service Computing   Prof. Dr. Ramin Yahyapour IT & Medien Centrum 19. Januar 2010.
Institut für Informatik III, Universität Bonn, c/o 2001, Präsentation Agenten, Objekte, Komponenten - Agenten, Objekte, Komponenten - ein Paradigma-Vergleich.
Eine Präsentation von Peter Rasser
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Gruppe „PIN & Authentication“
..:: MULTI – ABO – KARTE ::.. Projektstudium Chipkarten SS 2003 Vortragende: Katrin Kampfmann, Alexander Lamprati (PM)
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Management- und Web Services- Architekturen
EPROG Tutorium #3 Philipp Effenberger
Die Architektur der Java-VM
Systemsoftware und Betriebssysteme
Interprozess- kommunikation (IPC)
PI Burgenland Java und JavaScript 1. Teil
Mittwoch Informatik II, 1. Teil
JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.
Reinhold Rumberger Web Services.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Vortrag - Diplomarbeiten (HS I)
Objekte und Literale ODMG-Objektmodell kennt zwei Arten von Datenelementen: Literale: Identität ist ausschließlich durch Wert gegeben. Nur maximal eine.
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
Java-Kurs Übung Besprechung der Hausaufgabe
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
IBM® WebSphere Portal, IBM WebSphere Portal solutions, and SOA Composite Applications Overview TIMETOACT Software & Consulting GmbH, Hermann.
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
IT-Dienstleistungen E-Learning Systeme Content Management 1 Fallbeispiel ILIAS: Das Repository-Objekt-Plugin „Centra“
Forms 9i - New FeaturesSeite 1 Forms 9i New Features Gerd Volberg OPITZ CONSULTING GmbH.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Verteilte Anwendungen: J2EE
Hello World! Javakurs 2013 Arne Kappen
Lego Mindstorms Java mal anders
 Präsentation transkript:

Das JavaCard-Betriebssystem Raphael Karte & Bert Nitsche

Übersicht Anforderungen und Eigenschaften eines Chipkarten-Betriebssystems Aktuelle Systeme im Überblick Die JavaCard-Plattform „natives“ Chipkarten - Betriebssystem JCRE JCVM JCAPI Sicherheitsaspekte Ausblick

Chipkarten-Betriebssysteme: Anforderungen u. Eigenschaften Keine Benutzeroberfläche Kein Zugriff auf ext. Speicher Sehr geringer Speicherbedarf (3-30kB) hohe Sicherheit für Programme und Daten Schnelle Ausführung der Kommunikation und kryptograph. Algorithmen gefordert Keine Möglichkeit zur Änderung

Proprietäre Betriebssysteme Keine klare Trennung von Anwendung und OS API ist OS-spezifisch Applikationen oft in Assembler (Übergang zu Hochsprachen) Applikationen i.a. nicht nachladbar Geringe Hardwareanforderungen Hohe Performance Standard-konform (z.B. ISO 7816, EMV)

Offene Plattformen Nutzt VM-Technik In Hochsprache programmierbar Klare Trennung zw. Anwendung und OS plattformunabhängige API In Hochsprache programmierbar Anwendungen nachladbar Höhere Speicheranforderungen Geringere Performance Standard-konform, z.B. ISO 7816, EMV

JavaCard Plattform

Natives Betriebssystem Enthält zeitkritische und hardwarenahe Routinen I/O Manager Übertragungsprotokolle Fehlererkennung und -korrektur Kryptographie – Algorithmen Direkte Hardware und Speicherzugriffe Speichermanagement

JavaCard Runtime Environment Beschreibt Laufzeitverhalten der Plattform Enthält Systemklassen für bestimmte Dienste Applet-Management Auswahl des Applets, Firewall, Object Sharing, Installation Transaktions-Management Verwaltung transienter Objekte und von Channels Kann native methods enthalten Installer JavaCard Virtual Machine (JCVM) JavaCard Application Programming Interface (JCAPI) Sonstige Erweiterungen (z.B. VISA Open Platform API)

Die JavaCard VM Aufgaben: Aufbau: Bytecode ausführen Klassen und Objekte verwalten Verschiedene Anwendungen separieren Abgesicherte Nutzung gemeinsamer Datenbereiche Aufbau:

Möglichkeiten der JCVM Package-Konzept Vererbung Virtuelle Methoden Iterfaces Exceptions Atomare Operationen Datentypen boolean, byte, short Keine Threads Kein Security-Manager Keine Finalize-Methode Keine Datentypen String, char, double, float, long oder mehrdim. Arrays Keine Garbage Collection

Namen für Klassen und Packages JavaVM: Unicode-Strings, die wie Internet-Domainnamen strukturiert sind JCVM: ApplicationIdentifier (AID) RID : 5 Byte, von Registrierungsstelle vergeben PIX: 0-11 Byte, vom Anbieter gewählt

Token-Konzept CAB-File enthält Token als Referenz zu anderen Packages, bzw. für Klassen und Methoden

RuntimeExceptions

Objekttypen Persistente Objekte Transistente Objekte Inhalt bleibt bis zum Löschen des Cardlets erhalten Zugriff atomar Nicht referenzierte Objekte verbleiben im Speicher Transistente Objekte Verlieren bei Stromausfall ihren Inhalt Zugriff nicht atomar Bisher nur Typen boolean, byte, short und Object als TOs realisierbar JCSystem JCSystem.makeTransientShortArray (20, JCSystem JCSystem.CLEAR_ON_.CLEAR_ON_DESELECT);

JavaCard API Core-Packages (1) Object, Throwable, Exception-Klassen java.lang Object, Throwable, Exception-Klassen javacard.framework AID - kapselt den ApplicationIdentifier APDU - Kommunikation mit der Außenwelt Applet - Basisklasse aller Anwendungen JCSystem - Ressourcen-Management OwnerPIN - Authorisation Util - hilfreiche Zusatz-Funktionen

JavaCard API Core-Packages (2) Ein Subset des normalen java.io-Package java.rmi Ein Remote-Interface zur Realisierung von Klassen, deren Methoden durch das CAD aufgerufen werden Javacard.framework.service Ein Interface zur Realisierung von Sicherheits-Mechanismen und Diensten, welche direkt auf APDU-Daten zugreifen

JavaCard API Core-Packages (3) Extension-Package Hashing-Algorithmen javacard.security Hashing-Algorithmen Zufallsgenerator Methoden zum gesicherten Schlüsselaustausch Extension-Package javacardx.crypto Implementation des asymmetrischen RSA-Algorithmus und mehrerer symmetrischer Algorithmen Interface zur Realisierung eigener Krypto-Algorithmen

Sicherheitsaspekte Java JavaCard Keiner Pointer-Arithmetik Feldergrenzen zur Laufzeit überwacht Strikte Typprüfung Überwachte Objektzugriffe JavaCard Firewall Transaktions-Mechanismus Kein direkter Hardware-Zugriff durch Applet ...

Zukünftige Entwicklungen Chipkarte als aktives Element Superchipkarten (mit Display, Folientastatur, eigener Stromversorgung, etc.) Netzanschluss On-the-Fly-Installation von Software-Komponenten Karte als Kleinst-Computer