Введение

Java Card OpenPlatform (JCOP) – это операционная система для смарт-карт, предназначенная для платформы Java Card и разработанная Исследовательской лабораторией IBM в Цюрихе. 31 января 2006 года ответственность за разработку и поддержку была передана команде IBM Smart Card Technology в Бёблингене, Германия. С июля 2007 года поддержка и разработка операционной системы JCOP для чипов NXP / Philips осуществляется компанией NXP Semiconductors. Название происходит от стандартов, которым она соответствует: спецификации Java Card и спецификации GlobalPlatform (ранее известной как Visa Inc OpenPlatform).

Java Card JCOP содержит виртуальную машину Java Card (JCVM), позволяющую запускать приложения, написанные на языке программирования Java.

Технический обзор

JCOP – это операционная система для встраиваемых систем, критичных к безопасности, в частности для контроллеров смарт-карт и защищенных элементов. Функциональная архитектура состоит из трех частей: Java Card, предназначенная для разработки приложений, то есть API и структура апплетов карт, аналогичных файлам классов; GlobalPlatform, предназначенная для администрирования приложений и операционной системы, то есть загрузки и контроля доступа; и собственные функции JCOP, главным образом расширения API Java Card, например, вычисление примитивов ECC или управление MIFARE DESFIRE.

NXP также предлагает эмуляции MIFARE для Classic и DESFIRE на том же чипе в качестве дополнительных (нативных) операционных систем. В то время как JCOP основан на открытых стандартах, технология MIFARE является запатентованной разработкой NXP. Java Card апплеты, работающие в JCOP, могут использоваться для управления памятью MIFARE через API Java Card. Поддержка MIFARE Plus и MIFARE Ultralight пока отсутствует.

Карта Java

Из дополнительных пакетов JCOP 3 не поддерживает фреймворк javacardx. Из криптографических и классов для подписи, некоторые алгоритмы не поддерживаются, например, MD5 и EC F2M. Поддерживаемые длины ключей (в частности) включают AES 128, DES, 2DES3, 3DES3, EC до 521 бит и RSA до 2048 бит.

Протоколы связи

JCOP 3 поддерживает ISO 7816, ISO 14443 типа A и B (через контроллер SWP NFC) и SWP/HCI. Поддержка USB на низкой скорости была реализована только в JCOP v2.3.1.

Расширения

JCOP 3 поддерживает различные расширения, в том числе поддержку управления MIFARE DESFIRE для MIFARE4Mobile. Важно понимать, что использование расширений, применяемых в апплетах (не входящих в спецификации Java Card и GlobalPlatform), делает эти приложения непереносимыми на другие операционные системы, соответствующие стандартам Java Card и GlobalPlatform.

Инструменты JCOP

JCOP Tools были первоначально разработаны компанией IBM. Первым модулем был инструмент командной строки под названием JCOP Shell или JCShell. Инструменты разработки представляют собой плагин для среды разработки Eclipse IDE. Компания NXP поддерживает JCOP Tools и расширяет их функциональность с помощью CryptoPlugin и новых симуляций JCOP. Инструменты доступны для платформ Windows, macOS и Linux.

JCShell

JCShell — это программа на Java, инструмент командной строки, который также поддерживает работу со скриптами. Язык скриптов JCShell достаточно сложен для создания скриптов тестирования и верификации. JCShell имеет модульную структуру плагинов, где существующий базовый плагин (аналогичный плагинам Eclipse), поддерживающий самые основные команды APDU для работы с картой, такие как отправка необработанных данных, расширяется функциональностью GlobalPlatform и криптографическими возможностями. Все плагины можно расширить собственной функциональностью (на Java). Существует автономная версия JCShell, не требующая установки Eclipse, а также версия, интегрированная в Eclipse в виде представления в перспективе отладки плагина JCOP Tools.11