Java Card — версия (Java)-платформы для устройств с крайне ограниченными вычислительными ресурсами. По сравнению с другими версиями Java изменен байткод, требования к исполняющей платформе, состав стандартных библиотек.
Основное назначение продукта, как следует из названия, — применение в смарткартах. В связи с этим основной упор был сделан на поддержку стандартных криптоалгоритмов.
Java Card дает возможность безопасным образом устанавливать и исполнять небольшие Java-приложения (апплеты) на смарт-картах и других устройствах с весьма ограниченным объёмом памяти. Эта платформа позволяет поставщику программировать устройства и делать их адаптированными под конкретное применение. Java Card широко используется в SIM-картах и банкоматах. Разработана компанией Schlumberger, представлена публике 29 октября 1996 года несколькими компаниями, включая тогдашнее подразделение Schlumberger по производству смарт-карт (теперь компания Gemalto). Программная платформа Java Card описывается спецификациями, разрабатываемыми компанией Sun Microsystems. Кроме того, (организация по стандартизации) разрабатывает стандарты для безопасной установки апплетов Java Card на устройства.
Портируемость
Java Card описывает стандартную среду исполнения на смарт-картах с целью дать возможность одному и тому же приложению работать на различных устройствах, так же, как апплеты Java SE/Java EE исполняются на различных по программной и аппаратной части компьютерах, а мидлеты Java ME — на различных телефонах. Как и в более сложных платформах Java, это достигается комбинацией виртуальной машины (Java Card Virtual Machine, JCVM) и стандартизированной библиотеки классов, что позволяет апплету значительно абстрагироваться от особенностей конкретных моделей смарт-карт. Однако это все же не дает полной гарантии переносимости приложения на любую смарт-карту, поскольку остаются такие факторы, как объём памяти, производительность, или доступность особых интерфейсов (например, коммуникационных протоколов или криптографических алгоритмов).
Java Card OpenPlatform (JCOP)
JCOP — это комплекс мер для разработки единого стандарта операционной системы с виртуальной машиной Java Card для систем сильной идентификации личности и платежных систем. Разработана IBM с широкой интеграцией с организациями , ICAO. На сегодня является практически синонимом JCVM.
Безопасность
Безопасность данных на смарт-картах была одним из основных приоритетов при разработке Java Card. Она обеспечивается различными свойствами платформы:
- Сокрытие данных. Приложения запускаются в изолированной среде (виртуальная машина Java Card) и могут получать доступ к операционной системе и только через специализированные интерфейсы.
- Экран (экранирование) апплетов (англ. Application Firewall). Несколько апплетов может быть активно одновременно, однако они изолированы по модели «песочницы»: приложению выделяется контекст, к данным которого оно имеет доступ. Данные других приложений ограждены экраном. Для обеспечения совместной работы нескольких приложений есть механизм переключения контекстов, который выполняется через процесс, контролируемый виртуальной машиной .
- Криптография. Поддерживаются популярные алгоритмы шифрования, такие, как 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 Card обычно занимает меньше места, чем гипотетический апплет Java SE, полученный компилированием того же исходного кода. Такая экономия памяти смарт-карты имеет и обратную сторону: отсутствие поддержки некоторых свойств языка (как описано выше) и ограничение по размеру апплета. Существуют возможности обойти ограничение на размер: например, разделив код приложения на пакеты не более 64 кБ каждый.
Разработка
Приемы программирования, используемые в типичном приложении Java Card, значительно отличаются от применяемых в Java SE. Однако тот факт, что Java Card является строгим подмножеством языка Java, значительно ускоряет обучение этой технологии, а также позволяет использовать среду Java SE для разработки и отладки приложений. Более того, можно совместно запускать и отлаживать в одной среде и приложение для Java Card, и его серверную часть, которую предполагается выполнять на PC.
Однако при этом следует периодически проверять, что приложение соответствует ограничениям Java Card, компилируя его в соответствующий байткод, а также проверять его работу на настоящей смарткарте, чтобы получить представление о производительности реального устройства.
Ссылки
- Опубликована спецификация Java Card 3.0
- GlobalPlatform
См. также
Примечания
- 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
- Sun Microsystems Announces Java Card API , Business Wire, Oct. 29, 1996
- Обзор платформы Java Card на сайте компании Sun . Дата обращения: 2 августа 2008. Архивировано 20 июля 2008 года.
- Java Card Technology FAQs . Дата обращения: 8 августа 2008. Архивировано 29 мая 2008 года.
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер
Java Card versiya Java platformy dlya ustrojstv s krajne ogranichennymi vychislitelnymi resursami Po sravneniyu s drugimi versiyami Java izmenen bajtkod trebovaniya k ispolnyayushej platforme sostav standartnyh bibliotek Osnovnoe naznachenie produkta kak sleduet iz nazvaniya primenenie v smartkartah V svyazi s etim osnovnoj upor byl sdelan na podderzhku standartnyh kriptoalgoritmov Java Card daet vozmozhnost bezopasnym obrazom ustanavlivat i ispolnyat nebolshie Java prilozheniya applety na smart kartah i drugih ustrojstvah s vesma ogranichennym obyomom pamyati Eta platforma pozvolyaet postavshiku programmirovat ustrojstva i delat ih adaptirovannymi pod konkretnoe primenenie Java Card shiroko ispolzuetsya v SIM kartah i bankomatah Razrabotana kompaniej Schlumberger predstavlena publike 29 oktyabrya 1996 goda neskolkimi kompaniyami vklyuchaya togdashnee podrazdelenie Schlumberger po proizvodstvu smart kart teper kompaniya Gemalto Programmnaya platforma Java Card opisyvaetsya specifikaciyami razrabatyvaemymi kompaniej Sun Microsystems Krome togo organizaciya po standartizacii razrabatyvaet standarty dlya bezopasnoj ustanovki appletov Java Card na ustrojstva PortiruemostJava Card opisyvaet standartnuyu sredu ispolneniya na smart kartah s celyu dat vozmozhnost odnomu i tomu zhe prilozheniyu rabotat na razlichnyh ustrojstvah tak zhe kak applety Java SE Java EE ispolnyayutsya na razlichnyh po programmnoj i apparatnoj chasti kompyuterah a midlety Java ME na razlichnyh telefonah Kak i v bolee slozhnyh platformah Java eto dostigaetsya kombinaciej virtualnoj mashiny Java Card Virtual Machine JCVM i standartizirovannoj biblioteki klassov chto pozvolyaet appletu znachitelno abstragirovatsya ot osobennostej konkretnyh modelej smart kart Odnako eto vse zhe ne daet polnoj garantii perenosimosti prilozheniya na lyubuyu smart kartu poskolku ostayutsya takie faktory kak obyom pamyati proizvoditelnost ili dostupnost osobyh interfejsov naprimer kommunikacionnyh protokolov ili kriptograficheskih algoritmov Java Card OpenPlatform JCOP JCOP eto kompleks mer dlya razrabotki edinogo standarta operacionnoj sistemy s virtualnoj mashinoj Java Card dlya sistem silnoj identifikacii lichnosti i platezhnyh sistem Razrabotana IBM s shirokoj integraciej s organizaciyami ICAO Na segodnya yavlyaetsya prakticheski sinonimom JCVM BezopasnostBezopasnost dannyh na smart kartah byla odnim iz osnovnyh prioritetov pri razrabotke Java Card Ona obespechivaetsya razlichnymi svojstvami platformy Sokrytie dannyh Prilozheniya zapuskayutsya v izolirovannoj srede virtualnaya mashina Java Card i mogut poluchat dostup k operacionnoj sisteme i tolko cherez specializirovannye interfejsy Ekran ekranirovanie appletov angl Application Firewall Neskolko appletov mozhet byt aktivno odnovremenno odnako oni izolirovany po modeli pesochnicy prilozheniyu vydelyaetsya kontekst k dannym kotorogo ono imeet dostup Dannye drugih prilozhenij ograzhdeny ekranom Dlya obespecheniya sovmestnoj raboty neskolkih prilozhenij est mehanizm pereklyucheniya kontekstov kotoryj vypolnyaetsya cherez process kontroliruemyj virtualnoj mashinoj Kriptografiya Podderzhivayutsya populyarnye algoritmy shifrovaniya takie kak DES 3DES AES RSA Takzhe podderzhivayutsya drugie kriptograficheskie servisy cifrovye podpisi generirovanie elektronnyh klyuchej i obmen imi Mehanizm appletov Applet Java Card eto po suti konechnyj avtomat kotoryj obrabatyvaet vhodyashie komandy i otvechaet posylaya dannye ili vozvrashaya informaciyu o statuse Otlichiya Java Card ot JavaYazyk Na urovne yazyka Java Card eto podmnozhestvo bolee polnyh platform Java vse yazykovye konstrukcii Java Card prisutstvuyut v Java i vedut sebya v tochnosti tak zhe Bolee togo pri standartnoj posledovatelnosti kompilyacii ispolzuetsya obychnyj kompilyator Java javac bez kakih libo specialnyh opcij i lish potom rezultat obrabatyvaetsya specifichnoj dlya Java Card programmoj chtoby poluchit fajl kotoryj mozhno budet ustanovit na smart kartu Odnako mnogie vozmozhnosti yazyka Java ne podderzhivayutsya v Java Card naprimer tipy char double float i long klyuchevoe slovo transient perechislimye tipy enum mnogomernye massivy finalizatory klonirovanie obektov potoki Bajtkod Bajtkod vypolnyaemyj virtualnoj mashinoj Java Card funkcionalno yavlyaetsya podmnozhestvom odnako on kodiruetsya inym obrazom dlya minimizacii razmera prilozheniya Takim obrazom applet Java Card obychno zanimaet menshe mesta chem gipoteticheskij applet Java SE poluchennyj kompilirovaniem togo zhe ishodnogo koda Takaya ekonomiya pamyati smart karty imeet i obratnuyu storonu otsutstvie podderzhki nekotoryh svojstv yazyka kak opisano vyshe i ogranichenie po razmeru appleta Sushestvuyut vozmozhnosti obojti ogranichenie na razmer naprimer razdeliv kod prilozheniya na pakety ne bolee 64 kB kazhdyj Razrabotka Priemy programmirovaniya ispolzuemye v tipichnom prilozhenii Java Card znachitelno otlichayutsya ot primenyaemyh v Java SE Odnako tot fakt chto Java Card yavlyaetsya strogim podmnozhestvom yazyka Java znachitelno uskoryaet obuchenie etoj tehnologii a takzhe pozvolyaet ispolzovat sredu Java SE dlya razrabotki i otladki prilozhenij Bolee togo mozhno sovmestno zapuskat i otlazhivat v odnoj srede i prilozhenie dlya Java Card i ego servernuyu chast kotoruyu predpolagaetsya vypolnyat na PC Odnako pri etom sleduet periodicheski proveryat chto prilozhenie sootvetstvuet ogranicheniyam Java Card kompiliruya ego v sootvetstvuyushij bajtkod a takzhe proveryat ego rabotu na nastoyashej smartkarte chtoby poluchit predstavlenie o proizvoditelnosti realnogo ustrojstva Ssylki Opublikovana specifikaciya Java Card 3 0 GlobalPlatformSm takzheMULTOS ISO 7816PrimechaniyaU 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 Sun Microsystems Announces Java Card API Business Wire Oct 29 1996 Obzor platformy Java Card na sajte kompanii Sun neopr Data obrasheniya 2 avgusta 2008 Arhivirovano 20 iyulya 2008 goda Java Card Technology FAQs neopr Data obrasheniya 8 avgusta 2008 Arhivirovano 29 maya 2008 goda