Chipkarten-Programmierung: Oracle veröffentlicht Java Card 3.1

Dank Java Card führen sogenannte Secure Elements kleine Java-Programme aus. Die Version 3.1 des Standards erleichtert Entwicklern die Arbeit.

In Pocket speichern vorlesen Druckansicht 15 Kommentare lesen
Oracle veröffentlicht JavaCard 3.1
Lesezeit: 2 Min.
Von
  • Tam Hanna

Oracle hat die lang erwartete Version 3.1 des Java-Card-Standards veröffentlicht. Waren klassische Embedded-Versuche mit Java nur leidlich erfolgreich, muss Java Card nicht über mangelnde Aufmerksamkeit klagen. Laut Pressemitteilung verkaufen Oracles Partner pro Jahr fast sechs Milliarden Karten und andere Java-Card-Peripherie.

Die wichtigste Neuerung von Java Card – der Java-Variante, mir der es möglich ist, Java Applets auf Chipkarten auszuführen – ist vermutlich das I/O-Framework, das Smartcards den Zugriff auf diverse Hardwarekomponenten ermöglicht. Oracle hält sich aus der Spezifikation der eigentlichen APIs heraus und implementiert stattdessen das in der Abbildung gezeigte Framework zum Routing von Ereignissen. Leider bedeutet das auch, dass Entwickler künftig mit verschiedenen APIs zum Erreichen desselben Ziels zu tun bekommen.

Wer in JavaCard nach SPI, I2C- und sonstigen APIs sucht, ist am Holzweg.

(Bild: Oracle )

Die Weiterentwicklung der Hardware führte zu einer Anpassung des Dateiformats CAP, das bei der Auslieferung von Java-Card-Code zum Einsatz kommt. Es erlaubt nun bis zu 8 MByte große Dateien (bisher 64 KB), die zudem mehrere Applikationen gleichzeitig aufnehmen. Das führt zu feingranularer Zugriffskontrolle und erleichtert die Entwicklung komplexer Applets mit Bibliotheken. Zudem ist es erstmals erlaubt, statische Ressourcen "einfach so" in CAP-Dateien einzubinden.

Als interessant erweisen sich Array Views. Sie präsentieren eine "neue Sichtweise" auf einen Teil eines Arrays, der an andere auf der Karte laufende Applikationen weitergegeben werden kann. Eine in der Runtime enthaltene Firewall überwacht die Zugriffe "von außen" – sowohl unerlaubte Schreibzugriffe als auch Pufferüberläufe sind so nicht möglich.

Die Krypto-APIs haben ebenfalls Erweiterungen bekommen. Eine neue Programmierschnittstelle bietet sogenannte Monotonic Counters an. Das sind Zähler, die sich während der Programmausführung nur inkrementieren lassen. Ihre Verwendung schützt vor Replay-Attacken; die Timer-API realisiert derweil eine Art "Systemzeit", was laut Oracle beim Erkennen von Angriffen hilft. Im Bereich der Zertifikat-Handler gibt es ebenfalls Erweiterungen.

Zu guter Letzt lernt die Runtime den Umgang mit diversen Verschlüsselungsverfahren. Die Erweiterungen betreffen ECC-basierte Prozesse (Elliptic Curve Cryptography) und bringen direkte Unterstützung für diverse neue Verfahren.

Weitere Informationen zu den neuen APIs finden sich in der Ankündigung. Die Release Notes listen die neuen APIs detailliert auf und sind ebenfalls einen Blick wert. (ane)