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:
- Java Card- Spezifikationen
- GlobalPlatform (ehemals Visa Inc OpenPlatform) Spezifikationen
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
- Siemens / Infineon SLE66 IC – Public-Key -Kryptographie
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
- GlobalPlatform 2.1.1
- Java Card 2.2.1
- F2M-Unterstützung für elliptische Kurvenkryptographie (ECC)
- JCOP Tools Eclipse -basiert
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
- ^ „IBM WebSphere Everyplace Chip Operating System — JavaCard OpenPlatform“ (PDF) . IBM . Abgerufen am 11. September 2024 .