Einfach und sicher: So lassen sich Smartcards programmieren

"Java Card" heißt die kleinste Plattform in Java. Sie ist als offene, interoperable Plattform für eingebettete Komponenten wie Smartcards und Sicherheits-Chipkarten konzipiert. Der Artikel erklärt ihre Besonderheiten.

Java Card ermöglicht das Programmieren einer Komponente für eine bestimmte Anwendung. Daneben wird Smartcard-Entwicklern eine gemeinsame Kartenplattform zur Verfügung gestellt. Diese Technologie wir auch häufig bei Geldkarten und SIM-Karten für Handys verwendet. Im Unterschied zu Karten mit Magnetstreifen sind bei Smartcards alle notwendigen Funktionen und Informationen auf der Karte selbst untergebracht. Daher erfordern sie bei der Transaktion keinen Zugriff auf eine externe Datenbank.

Java Card 2.2.2 ist für die nächste Generation von Smartcard-Standards gerüstet und vollständig abwärtskompatibel mit früheren Versionen. Einige der wichtigsten Vorteile von Java Card 2.2.2 sind beispielsweise eine verbesserte Interoperabilität der Karten mit mehreren Kommunikationsschnittstellen, umfangreichere Kryptografie- und Sicherheitsfeatures sowie eine standardisierte Biometrie-Unterstützung. Außerdem werden eine Reihe neuer APIs für eine speichereffizientere Anwendungsentwicklung geboten.

Auch Java Card nutzt Applets

Alle Java-Card-Produkte basieren auf den Spezifikationen für die Java-Card-Plattform, wie sie von Sun Microsystems entwickelt wurden. Anwendungen, die für die Java-Card-Plattform geschrieben werden, heißen Applets, genau wie bei Internetanwendungen. Der Begriff „Applet“ wurde gewählt, weil es Ähnlichkeiten mit dem Ausführungsmodell der gängigen internetbasierten Applets gibt.

Java Card zielt darauf ab, einen verbindlichen Standard für Smartcard-Computing-Umgebungen zu setzen. Damit können dieselben Java-Card-Applets auf unterschiedlichen Smartcards laufen, also im Prinzip so, wie ein Java-Applet auf unterschiedlichen Computern laufen kann. Wie auch bei Java wird das mit Hilfe einer Kombination aus virtuellem Rechner, der Java-Card-Virtual-Machine, und einer Laufzeitbibliothek erreicht. Dadurch wird das Applet fast vollständig unabhängig von den Unterschieden zwischen den einzelnen Smartcards.

Portierbarkeit und Sicherheit

Die Hauptmerkmale der Java-Card-Technologie sind Portierbarkeit und Sicherheit. Die Portierbarkeit bleibt aber aufgrund von Fragen der Speichergröße, Performance und Laufzeitunterstützung, etwa für Kommunikationsprotokolle oder kryptografische Algorithmen, eingeschränkt.

Die Java-Card-Technologie wurde ursprünglich entwickelt, um vertrauliche Informationen zu sichern, die auf Smartcards gespeichert sind. Die Sicherheit wird von unterschiedlichen Funktionen dieser Technologie bestimmt. Folgende Aspekte zählen zu den wichtigsten:

  • Applet: Das Applet ist eine kartengebundene Anwendung, die nur eingehende Befehlsanfragen verarbeitet und mit dem Senden von Daten oder Statusrückmeldungen an das Schnittstellengerät reagiert.
  • Kryptografie: Die gängigsten Verschlüsselungsalgorithmen wie DES, 3DES, AES und RSA werden unterstützt. Kryptografische Dienste wie Signieren, Schlüsselerzeugung und Schlüsselaustausch sind ebenfalls möglich.
  • Applet-Firewall: Unterschiedliche Anwendungen werden durch eine Applet-Firewall voneinander getrennt. Diese überprüft und beschränkt den Zugriff auf Datenelemente zwischen den Applets.
  • Datenkapselung: Daten werden innerhalb der Anwendung gespeichert. Java-Card-Anwendungen laufen in einer isolierten Umgebung der Java-Card-Virtual-Machine, unabhängig vom zugrundeliegenden Betriebssystem und der Hardware.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Einfach und sicher: So lassen sich Smartcards programmieren

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *