ArticleslgStudy

computer science

Java Card OpenPlatform

Java Card OpenPlatform is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Java Card OpenPlatform rather than just read about it. In short: Java Card OpenPlatform (JCOP) is a smart card operating system for the Java Card platform developed by IBM Zürich Research Laboratory. On 31 January 2006 the development and support responsibilities transferred to the IBM Smart Card Technology team in Böblingen, Germany.

Key takeaways

  • Java Card OpenPlatform belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Java Card OpenPlatform to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Java Card OpenPlatform from memory before moving on to harder problems.

Reference excerpt

Java Card OpenPlatform (JCOP) is a smart card operating system for the Java Card platform developed by IBM Zürich Research Laboratory. On 31 January 2006 the development and support responsibilities transferred to the IBM Smart Card Technology team in Böblingen, Germany. Since July 2007 support and development activities for the JCOP operating system on NXP / Philips silicon are serviced by NXP Semiconductors. The title originates from the standards it complies with:

Java Card specifications GlobalPlatform (formerly known as Visa Inc OpenPlatform) specifications A Java Card JCOP has a Java Card Virtual Machine (JCVM) which allows it to run applications written in Java programming language.

History

First JC/OP Masks Mask 0 : 1998 (spring)

First prototype on Atmel 8-bit uC – Flash memory, slow Mask 1 : 1998

Siemens/Infineon SLE66 IC – Public key cryptography Mask 2 and 3 : 1999

Gemplus International (now Gemalto) licensed JC/OP Base mask for GemXpresso product line Public key generation Visa OpenPlatform Mask 4 : 1999

Contactless JC/OP on Philips Mifare Pro chip 256 bytes RAM, 20 KB ROM and 8 KB EEPROM Dual interface

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’s MULTOS Cooperation between IBM (OS), Visa (OpenPlatform) and Philips (IC) JCOP v1 owned by Visa JCOP v2

Owned by IBM, sold by Philips Philips SmartMX controller (SMX) JCOP v2.2

GlobalPlatform 2.1.1 Java Card 2.2.1 Elliptic Curve Cryptography (ECC) F2M support JCOP Tools Eclipse based

JCOP 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 projects

JCOP 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 and Secure Element JCOP v2.4.2

additional algorithms to support eGovernment use cases, i.e. AES CMAC CC 5+ NFC integration into PN65O

JCOP 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 PN66T

card 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 or MIFARE DESFIRE management NXP offers also MIFARE emulations for Classic and DESFIRE on the same chip as additional (native) operating systems. While JCOP is based on open standards, MIFARE technology is NXP specific. Java Card applets running in JCOP can then be used to manage the MIFARE memory through Java Card API. MIFARE Plus and MIFARE Ultralight are not (yet) supported.

GlobalPlatform 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 but FeliCa is supported additionally MIFARE Classic and DESFIRE is supported HCI notifications are supported Amendment D - Secure Channel Protocol 03 (AES)

only AES-128 all options are supported (random) Amendment E - Security Upgrade

SHA-256 and EC-256 C3M scenario #3 UICC configuration

scenarios #1, #2A and #2B SCP 80 and 81 is not supported (ETSI) Secure Element configuration

JCOP 3 is fully compliant

Java 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 for Windows, macOS and Linux platforms.

JCShell 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 (in Java). There is a standalone JCShell version without the need to install Eclipse and an Eclipse-based version embedded in form of a View in the Debug perspective of JCOP Tools plugin.11

References

External links Java Card technology page at Oracle Java Card Forum

Worked examples

Example 1 — a first encounter with Java Card OpenPlatform

Start with the simplest possible case. Write down what Java Card OpenPlatform claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Java Card OpenPlatform before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Java Card OpenPlatform ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Java Card OpenPlatform

In research
Java Card OpenPlatform appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Java Card OpenPlatform in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Java Card OpenPlatform is common in secondary-school and first-year university syllabi. It links to neighbouring topics Embedded operating systems, Java (software platform), Smart cards, so understanding it makes those chapters shorter.
In everyday life
Look for Java Card OpenPlatform outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Java Card OpenPlatform in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Java Card OpenPlatform means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Java Card OpenPlatform out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Java Card OpenPlatform in simple terms?

Java Card OpenPlatform (JCOP) is a smart card operating system for the Java Card platform developed by IBM Zürich Research Laboratory. On 31 January 2006 the development and support responsibilities transferred to the IBM Smart Card Technology team in Böblingen, Germany.

Why does Java Card OpenPlatform matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Java Card OpenPlatform?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Java Card OpenPlatform.

Tags

  • Embedded operating systems
  • Java (software platform)
  • Smart cards

Keep exploring