Java Card OpenPlatform ( JCOP ) ist ein Smartcard -Betriebssystem für die Java-Card -Plattform, entwickelt vom IBM Forschungslabor Zürich. [ 1 ] Am 31. Januar 2006 wurden die Entwicklungs- und Supportverantwortung an das IBM Smart Card Technology Team in Böblingen übertragen . Seit Juli 2007 werden Support und Weiterentwicklung des JCOP-Betriebssystems auf NXP / Philips -Chips von NXP Semiconductors durchgeführt .

Der Titel leitet sich von den Normen ab, denen er entspricht:

Eine Java Card JCOP verfügt über eine Java Card Virtual Machine (JCVM), die es ihr ermöglicht, in der Programmiersprache Java geschriebene Anwendungen auszuführen .

Geschichte

Erste JC/OP-Masken

Maske 0 : 1998 (Frühling)

  • Erster Prototyp auf Atmel 8-Bit-Mikrocontroller – Flash-Speicher, langsam

Maske 1 : 1998

Maske 2 und 3: 1999

  • Gemplus International (jetzt Gemalto ) lizenzierte JC/OP
  • Basismaske für die GemXpresso -Produktlinie
  • Generierung öffentlicher Schlüssel
  • Visa OpenPlatform

Maske 4: 1999

  • Kontaktloses JC/OP auf dem Philips Mifare Pro Chip
  • 256 Byte RAM, 20 KB ROM und 8 KB EEPROM
  • Duale Schnittstelle

JCOP01 und Zusammenarbeit mit Philips

Maske 5 : 2000

  • Philips P8WE Smartcard-Mikrocontroller
  • 'JCOP01' ist die Grundlage für alle späteren Versionen
  • JCOP lizenziert von IBM
  • JCOP-Tools für die Entwicklung

Visa-Durchbruchprogramm

  • Um MasterCards MULTOS entgegenzuwirken
  • Zusammenarbeit zwischen IBM (OS), Visa (OpenPlatform) und Philips (IC)
  • JCOP v1 ist Eigentum von Visa.

JCOP v2

  • Im Besitz von IBM, vertrieben von Philips
  • Philips SmartMX Controller (SMX)

JCOP v2.2

JCOP-Transfer

JCOP v2.2.1 – JCOP v2.3.1

  • Im Besitz von IBM, vertrieben von Philips/NXP
  • Die Entwicklung wurde an IBM in Böblingen, Deutschland, übertragen.
  • USB-Schnittstelle

JCOP v2.3.2

  • Die JCOP-Technologie gehört IBM.
  • Richtlinienänderung bei IBM
  • NXP Semiconductors hat die Quellcodelizenz erworben.
  • Um Kundenanfragen und Projekte zu bearbeiten

JCOP von NXP

JCOP v2.4

  • erste von NXP entwickelte JCOP-Version
  • ECC GF(p)-Unterstützung
  • Java Card 2.2.2

JCOP v2.4.1

  • Unterstützung primitiver ECC-Berechnungen (Punktaddition und -multiplikation)
  • Common Criteria 5+ Zertifizierung (CC)
  • EMV-, Visa- und MasterCard-Zulassung
  • NFC- Integration in den PN65N-Kombichip: NFC und Secure Element

JCOP v2.4.2

  • zusätzliche Algorithmen zur Unterstützung von E-Government-Anwendungsfällen, z. B. AES CMAC
  • CC 5+
  • NFC-Integration in PN65O

JCOP 3

Mobile

Smartcard-Controller SmartMX2, P61, Flash-basierter persistenter Speicher

JCOP 3.0

  • NFC-Integration in PN65T
  • Java Card 3.0.1 Classic Edition
  • GlobalPlatform 2.2.1
  • EMV-Plattformzertifizierung

JCOP 3.1

  • NFC-Integration in PN66T

Karte

SMX2, P60, EEPROM-basierter persistenter Speicher

JCOP 3.x (Stand: 26. Dezember 2014)

Technischer Überblick

JCOP ist ein Betriebssystem für sicherheitskritische eingebettete Systemumgebungen, insbesondere für Smartcard- oder Secure-Element-Controller. Die funktionale Architektur lässt sich in drei Teile gliedern:

  • Java Card dient der Entwicklung von Anwendungen, d. h. die API und die Struktur von Karten-Applets ähneln Klassendateien.
  • GlobalPlatform, für die Verwaltung von Anwendungen und Betriebssystemen, d. h. Lade- und Zugriffskontrolle
  • JCOP-eigene Funktionen, hauptsächlich Java Card API-Erweiterungen, z. B. ECC-Primitivberechnungen oder MIFARE DESFIRE-Management

NXP bietet neben zusätzlichen (nativen) Betriebssystemen auch MIFARE-Emulationen für Classic und DESFIRE auf demselben Chip an. Während JCOP auf offenen Standards basiert, ist die MIFARE-Technologie NXP-spezifisch. Java-Card-Applets, die in JCOP ausgeführt werden, können dann über die Java-Card-API zur Verwaltung des MIFARE-Speichers verwendet werden. MIFARE Plus und MIFARE Ultralight werden (noch) nicht unterstützt.

GlobalPlatform

GP ist ein hoher Standard mit vielen Optionen. Ab JCOP 3 wird GP 2.2.1 unterstützt, insbesondere für mobile Anwendungsfälle. JCOP 3 ist vollständig mit der Secure Element-Konfiguration kompatibel.

GP 2.2.1 Kartenspezifikation, Kern

  • Emittentenzentriertes oder einfaches Modell
  • delegiertes Management
  • autorisierte Verwaltung
  • Prüfstelle (GP 2.1.1 Kontrollstelle)
  • Datenauthentifizierungsmuster (DAP)
  • Secure Channel Protocol 02 (SCP), pseudozufällig, C-MAC, C-ENC, R-MAC, R-ENC
  • Alle Privilegien werden unterstützt.

Änderung A – Verwaltung vertraulicher Karteninhalte (C3M)

  • Details zur Implementierung finden Sie in der UICC-Konfiguration und im Amendment E.

Änderung C – Kontaktlose Dienstleistungen

  • Alle Protokolle außer FeliCa werden unterstützt.
  • Zusätzlich werden MIFARE Classic und DESFIRE unterstützt.
  • HCI-Benachrichtigungen werden unterstützt

Änderung D - Secure Channel Protocol 03 (AES)

  • nur AES-128
  • Alle Optionen werden unterstützt (Zufallsauswahl).

Änderung E – Sicherheitsverbesserung

  • SHA-256 und EC-256
  • C3M-Szenario Nr. 3

UICC-Konfiguration

  • Szenarien Nr. 1, Nr. 2A und Nr. 2B
  • SCP 80 und 81 werden nicht unterstützt (ETSI).

Secure Element-Konfiguration

  • JCOP 3 ist vollständig konform

Java Card

JCOP 3 unterstützt das javacardx.framework nicht. Einige Algorithmen der Klassen für Kryptografie und Signaturen werden nicht unterstützt, z. B. MD5 und EC F2M. Unterstützte Schlüssellängen sind unter anderem AES-128, DES, 2DES3, 3DES3, EC bis zu 521 Bit und RSA bis zu 2048 Bit.

Kommunikationsprotokolle

JCOP 3 unterstützt ISO-7816, ISO-14443 Typ A und B (über SWP – NFC-Controller) sowie SWP/HCI. USB Low Speed ​​wurde nur von JCOP v2.3.1 unterstützt.

Erweiterungen

JCOP 3 unterstützt verschiedene Erweiterungen, z. B. die MIFARE DESFIRE-Verwaltung für MIFARE4Mobile . Wichtig ist, dass die Verwendung von Erweiterungen in Applets (die nicht Teil der Java Card- und GlobalPlatform-Spezifikationen sind) die Portabilität dieser Anwendungen auf andere Java Card- und GlobalPlatform-kompatible Betriebssysteme einschränkt.

JCOP-Tools

Die JCOP Tools wurden ursprünglich von IBM entwickelt. Das erste Modul war ein Kommandozeilenprogramm namens JCOP Shell oder JCShell. Die Entwicklungswerkzeuge sind ein Plugin für die Eclipse IDE . NXP pflegt die JCOP Tools und hat sie um ein CryptoPlugin und neue JCOP-Simulationen erweitert. Die Tools werden für Windows , macOS und Linux angeboten .

JCShell

JCShell ist ein Java-Programm und ein Kommandozeilen-Tool mit Skripting-Unterstützung. Die JCShell-Skriptsprache ist hochentwickelt und eignet sich zur Erstellung von Test- und Verifizierungsskripten. JCShell verfügt über eine Plugin-Struktur: Ein bestehendes Basis-Plugin (ähnlich den Eclipse-Plugins), das die grundlegendsten On-Card-APDU-Befehle wie Raw Send unterstützt, wird um GlobalPlatform- und Kryptofunktionen erweitert. Alle Plugins sind durch eigene Funktionen (in Java ) erweiterbar. Es gibt eine eigenständige JCShell-Version, die ohne Eclipse-Installation auskommt, sowie eine Eclipse-basierte Version, die als Ansicht in der Debug-Perspektive des JCOP Tools-Plugins eingebettet ist.<sup>11</sup>

Referenzen