1 / 19

Das JavaCard-Betriebssystem

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.

rory
Télécharger la présentation

Das JavaCard-Betriebssystem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Das JavaCard-Betriebssystem Raphael Karte & Bert Nitsche

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

  3. 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

  4. 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)

  5. Offene Plattformen • Nutzt VM-Technik • 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

  6. JavaCard Plattform

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

  8. 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)

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

  10. 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 Möglichkeiten der JCVM

  11. 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

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

  13. RuntimeExceptions

  14. Objekttypen • Persistente 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);

  15. JavaCard API • Core-Packages (1) • 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

  16. JavaCard API • Core-Packages (2) • java.io • 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

  17. JavaCard API • Core-Packages (3) • 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

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

  19. 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

More Related