History
First JC/OP Masks
Mask 0 : 1998 (spring) * First prototype on Atmel 8-bit uC – Flash memory, slow Mask 1 : 1998 * Siemens/JCOP01 and Cooperation with Philips
Mask 5 : 2000 * Philips P8WE smartcard microcontroller * ‘JCOP01’ is the foundation for all later versions * JCOP licensed by IBM * JCOP Tools for development Visa breakthrough program * To counter MasterCard’sJCOP Transfer
JCOP v2.2.1 – JCOP v2.3.1 * Owned by IBM, sold by Philips/NXP * Development transferred to IBM in Böblingen, Germany * USB interface JCOP v2.3.2 * JCOP technology owned by IBM * Policy change at IBM * Source code license acquired by NXP Semiconductors * To serve customer requests and projectsJCOP by NXP
JCOP v2.4 * first NXP developed JCOP version * ECC GF(p) support * Java Card 2.2.2 JCOP v2.4.1 * ECC primitive calculation support (point addition and multiplication) * Common Criteria 5+ certification (CC) * EMV, Visa and MasterCard approved * NFC integration into PN65N combo chip: NFC andJCOP 3
mobile
Smartcard controller SmartMX2, P61, flash based persistent memory JCOP 3.0 * NFC integration into PN65T * Java Card 3.0.1 classic edition * GlobalPlatform 2.2.1 * EMV platform certification JCOP 3.1 * NFC integration into PN66Tcard
SMX2, P60, EEPROM based persistent memory JCOP 3.x (not released as of Dec 26, 2014)Technical Overview
JCOP is an operating system for a security sensitive embedded system environment, smartcard or secure element controllers in particular. The functional architecture can be partitioned into three parts: * Java Card, for development of applications, i.e. API and structure of card applets similar to class files * GlobalPlatform, for administration of applications and operating system, i.e. loading and access control * JCOP proprietary features, mainly Java Card API extensions, i.e. ECC primitive calculation orGlobalPlatform
GP is a high-level standard with many options. As of JCOP 3, support for GP 2.2.1 was added, in particular to support mobile use cases JCOP 3 is fully Secure Element configuration compliant. GP 2.2.1 card specification, core * issuer centric or simple model * delegated management * authorized management * verification authority (GP 2.1.1 controlling authority) * Data Authentication Pattern (DAP) * Secure Channel Protocol 02 (SCP), pseudo random, C-MAC, C-ENC, R-MAC, R-ENC * all the privileges are supported Amendment A - Confidential Card Content Management (C3M) * see implementation details in UICC configuration and Amendment E Amendment C - Contactless Services * every protocol butJava Card
From the optional packages JCOP 3 does not support the javacardx.framework. From the crypto and signature classes, some algorithms are not supported, i.e. MD5 and EC F2M. The key lengths (amongst others) supported are AES-128, DES, 2DES3, 3DES3, EC up to 521 bit, RSA up to 2048 bit.Communication Protocols
JCOP 3 supports ISO-7816, ISO-14443 type A and B (through SWP - NFC controller) and SWP/HCI. USB low speed was supported only on JCOP v2.3.1.Extensions
JCOP 3 supports various extensions, i.e. MIFARE DESFIRE management support for MIFARE4Mobile. It is important to know that usage of extensions used in applets (not part of Java Card and GlobalPlatform specifications) makes this applications not portable to other Java Card and GlobalPlatform compliant operating systems.JCOP Tools
JCOP Tools were initially developed by IBM. The first module was a command line tool called JCOP Shell or JCShell. The development tools is a plugin to Eclipse IDE. NXP has maintained JCOP Tools and extended it with a CryptoPlugin and new JCOP simulations. The tools are offered forJCShell
JCShell is a Java program, command line tool which also supports scripting. The JCShell scripting language is sophisticated to create test and verification scripts. JCShell has a plugin structure where existing base plugin (similar to Eclipse plugins) which supports the most basic on-card APDU commands such as raw send is extended with GlobalPlatform and crypto functionality. All the plugins are extendable by own functionality (inExternal links