Java Card

Java Card
Wave.svg
Java Card
Micro Edition (ME)
Standard Edition (SE)
Enterprise Edition (EE)
PersonalJava (не поддерживается)

Java Card — версия Java-платформы для устройств с крайне ограниченными вычислительными ресурсами. По сравнению с другими версиями Java изменен байткод, требования к исполняющей платформе, состав стандартных библиотек.

Основное назначение продукта, как следует из названия — применение в смарткартах. В связи с этим основной упор был сделан на поддержку стандартных криптоалгоритмов.

Java Card дает возможность безопасным образом устанавливать и исполнять небольшие Java приложения (апплеты) на смарт-картах и других устройствах с весьма ограниченным объемом памяти. Эта платформа позволяет поставщику программировать устройства и делать их адаптированными под конкретное применение. Java Card широко используется в SIM-картах и банкоматах. Разработана компанией Шлюмберже[1], представлена публике 29 октября 1996 года[2] несколькими компаниями, включая тогдашнее подразделение Шлюмберже по производству смарт-карт (теперь компания Gemalto). Программная платформа Java Card описывается спецификациями, разрабатываемыми компанией Sun Microsystems[3]. Кроме того, GlobalPlatform (организация по стандартизации) разрабатывает стандарты для безопасной установки апплетов Java Card на устройства.

Содержание

Портируемость

Java Card описывает стандартную среду исполнения на смарт-картах с целью дать возможность одному и тому же приложению работать на различных устройствах, так же как апплеты Java SE/Java EE исполняются на различных по программной и аппаратной части компьютерах, а мидлеты Java ME — на различных телефонах. Как и в более сложных платформах Java, это достигается комбинацией виртуальной машины (Java Card Virtual Machine, JCVM), и стандартизированной библиотеки классов, что позволяет апплету значительно абстрагироваться от особенностей конкретных моделей смарт-карт. Однако, это все же не дает полной гарантии переносимости приложения на любую смарт-карту, поскольку остаются такие факторы, как объем памяти, производительность, или доступность особых интерфейсов (например, коммуникационных протоколов или криптографических алгоритмов).

Java Card OpenPlatform (JCOP)

JCOP это комплекс мер для разработки единого стандарта операционной системы с виртуальной машиной Java Card для систем сильной идентификации личности и платежных систем. Разработана IBM с широкой интеграцией с организациями GlobalPlatform, ICAO. На сегодня является практически синонимом JCVM.

Безопасность

Безопасность данных на смарт-картах была одним из основных приоритетов при разработке Java Card. Она обеспечивается различными свойствами платформы:

  • Cокрытие данных. Приложения запускаются в изолированной среде (виртуальная машина Java Card) и могут получать доступ к операционной системе и аппаратному обеспечению только через специализированные интерфейсы.
  • Экран апплетов (англ. Application Firewall). Несколько апплетов может быть активно одновременно, однако они изолированы по модели «песочницы»: приложению выделяется контекст, к данным которого оно имеет доступ. Данные других приложений ограждены экраном. Для обеспечения совместной работы нескольких приложений есть механизм переключения контекстов, который выполняется через процесс, контролируемый виртуальной машиной [4].
  • Криптография. Поддерживаются популярные алгоритмы шифрования, такие как DES, 3DES, AES, RSA. Также поддерживаются другие криптографические сервисы: цифровые подписи, генерирование электронных ключей и обмен ими.
  • Механизм апплетов. Апплет Java Card — это по сути конечный автомат, который обрабатывает входящие команды и отвечает, посылая данные или возвращая информацию о статусе.

Отличия Java Card от Java

Язык

На уровне языка Java Card — это подмножество более полных платформ Java: все языковые конструкции Java Card присутствуют в Java и ведут себя в точности так же. Более того, что при стандартной последовательности компиляции используется обычный компилятор Java (javac) без каких-либо специальных опций, и лишь потом результат обрабатывается специфичной для Java Card программой, чтобы получить файл, который можно будет установить на смарт-карту. Однако, многие возможности языка Java не поддерживаются в Java Card, например, типы char, double, float и long, ключевое слово transient, перечислимые типы (enum), многомерные массивы, финализаторы, клонирование объектов, потоки.

Байткод

Байткод, выполняемый виртуальной машиной Java Card, функционально является подмножеством байткода Java, однако он кодируется иным образом для минимизации размера приложения. Таким образом, апплет Java Card обычно занимает меньше места, чем гипотетический апплет Java SE, полученный компилированием того же исходного кода. Такая экономия памяти смарт-карты имеет и обратную сторону: отсутствие поддержки некоторых свойств языка (как описано выше) и ограничение по размеру апплета. Существуют возможности обойти ограничение на размер: например, разделив код приложения на пакеты не более 64 кБ каждый

Разработка

Приемы программирования, используемые в типичном приложении Java Card, значительно отличаются от применяемых в Java SE. Однако, тот факт, что Java Card является строгим подмножеством языка Java, значительно ускоряет обучение этой технологии, а также позволяет использовать среду Java SE для разработки и отладки приложений. Более того, можно совместно запускать и отлаживать в одной среде и приложение для Java Card, и его серверную часть, которую предполагается выполнять на PC.

Однако, при этом следует периодически проверять, что приложение соответствует ограничениям Java Card, компилируя его в соответствующий байткод, а также проверять его работу на настоящей смарткарте, чтобы получить представление о производительности реального устройства.

Ссылки

См. также

Примечания

  1. U.S. provisional application Serial No. 60/029,057, filed Oct. 25, 1996, non-provisional application No. 957512 filed on 10/24/1997, issued as patent
  2. Sun Microsystems Announces Java Card API , Business Wire, Oct. 29, 1996
  3. Обзор платформы Java Card на сайте компании Sun
  4. Java Card Technology FAQs

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Java Card" в других словарях:

  • Java Card — (JC) refers to a technology that allows small Java based applications (applets) to be run securely on smart cards and similar small memory footprint devices. Java Card is the tiniest of Java targeted for embedded devices. Java Card gives the user …   Wikipedia

  • Java Card — est un environnement d exécution Java destiné aux applications pour Carte à puce. Cette technologie fournit un environnement sécurisé pour les applications qui fonctionnent sur ce support de capacité mémoire et de traitement limitées. De… …   Wikipédia en Français

  • Java Card — es una tecnología que permite ejecutar de forma segura pequeñas aplicaciones Java (applets) en tarjetas inteligentes y similares dispositivos empotrados. Java Card da al usuario la capacidad de programar aplicaciones que se ejecutan en la tarjeta …   Wikipedia Español

  • Java Card — ist eine Variante der Programmiersprache Java, die es erlaubt, Java Card Applets, einem reduzierten Java Standard folgende Java Applets, auf Chipkarten auszuführen. Java Card Applets werden nur ausgeführt, wenn eine Chipkarte an eine externe… …   Deutsch Wikipedia

  • Java Card OpenPlatform — Infobox OS name = Java Card OpenPlatform caption = developer = IBM source model = kernel type = supported platforms = Java Card ui = family = Embedded operating systems released = latest release version = latest release date = latest test version …   Wikipedia

  • Java-Plattform — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java (Plattform) — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java (Technik) — Java Logo Die Java Technik (englisch Java Technology) ist eine ursprünglich von Sun entwickelte Sammlung von Spezifikationen, die einerseits die Programmiersprache Java und andererseits verschiedene Laufzeitumgebungen für Computerprogramme… …   Deutsch Wikipedia

  • Java Platform, Standard Edition 6 — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java Plattform — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»