Java Card: технологии создания и перспективы использования

Стандартизация

Внедрение Java Card открывает еще больше возможностей перед технологией смарт-карт в области электронной коммерции, связи, медицины и др. Технология Java Card постоянно развивается.

Первая спецификация Java Card 1.0 была выпущена в ноябре 1996 года и представляла собой попытку перенести все преимущества разработки программ на языке Java в индустрию смарт-карт. Для практического применения спецификация Java Card 1.0 была недостаточно проработана, так как целью Java Card 1.0 была разработка концепции применения Java-языка в смарт-картах. Через год JavaSoft выпустила спецификацию Java Card 2.0, также было разработано первое приложение на Java для смарт-карты. В начале 1999 года была принята концепция Java Card 2.1.

Над процессом стандартизации работает несколько организаций:

  • Java Card Forum (JCF). Java Card Forum работает от лица Sun Microsystems для определения спецификаций Java Card;

  • ETSI (European Telecom Standards Industry). Целью работы данной организации является создание стандартов для GSM-сетей и внедрение интерфейса Open OS для SIM-карт;

  • Visa International. Одна из самых крупных процессинговых компаний в мире. Определяет Visa Open Platform (VOP) — для выработки стандартов средств безопасности при проведении платежных операций.

Java Card Forum (www.javacardforum.org) был создан в 1997 году. Основная цель – разработка стандартов для основных компонентов Java Card: исполняемой среды Java Card (JCRE), виртуальной машины Java (JVM) и интерфейса прикладных программ Java Card (Java Card API). Любая смарт-карта от любого производителя, поддерживающая данные стандарты, будет полностью совместима с приложением, написанным с учетом данных стандартов. Текущей версией всех этих компонентов является 2.1. Вместе они образуют единый стандарт Java Card 2.1.

Целью работы Visa International и ETSI является определение Java Card-расширений для использования Java Card в платежных системах и в GSM-сетях.

После написания приложения он может исполняться на любой Java Card от любого производителя. Концепция «Написано однажды, работает везде (TM)» достигается путем поддержки производителем карты стандарта Java Card API 2.1.

Существует два уровня совместимости для Java Card-приложений:

  • на уровне исходных кодов;

  • на уровне байт-кода.

Когда Java Card обеспечивает совместимость на уровне исходных кодов, это означает, что поддерживается только стандарт Java Card API 2.1. Виртуальная машина Java (JVM), которая используется в Java Card, может не поддерживать стандарт Java Virtual Machine 2.1 и исполнять байт-код иначе, чем виртуальная машина Java, используемая в Java Card от другого производителя. Для переноса приложения с одной карты на другую программист должен использовать уникальный конвертор для генерации байт-кода (файла с расширением cap) для каждого типа смарт-карт.

Под обеспечением Java Card совместимостью на уровне байт-кода подразумевается полная поддержка стандарта Java Card 2.1 (Java Card API 2.1 и JVM 2.1). Поддержка данного стандарта означает полную стандартизацию всего цикла разработки приложения. Байт-код может без каких-либо изменений исполняться на Java Card, поддерживающих стандарт Java Card 2.1, от разных производителей.

ETSI вырабатывает стандарты для SIM API для SIM-карт.

SIM API обеспечивает:

1) легкий доступ к функциям и данным, описанным в GSM 11.11 и GSM 11.14;

2) ускорение разработки приложений для стандарта STK (SIM ToolKit). SIM ToolKit предоставляет возможность оператору GSM-сети добавлять дополнительные услуги, которые абонент может использовать через специальные сервис-меню;

3) переносимость приложений для стандарта STK;

4) загрузку приложений после выпуска карты.

Реализацию SIM API 1.0 для Java Card ETSI поручил специальной GSM-комиссии из Java Card Forum. Результатом работы комиссии стали следующие стандарты:

  • STK API – обеспечивает единый набор функций для любой Java Card, которая будет совместима c SIM API;

  • GSM-загрузчик – позволяет унифицировать процесс загрузки приложения в Java Card через сеть GSM. GSM-загрузчик выполняет следующие операции:

- загрузку приложения во время персонализации SIM-карты (под персонализацией подразумевается занесение личной информации о владельце карты перед ее выдачей);

- загрузку приложений после выдачи SIM-карты владельцу через сеть GSM (over the air), используя службу коротких сообщений (SMS);

- загрузку приложений после выдачи SIM-карты владельцу через устройство чтения карт, например терминал;

- возможность передачи права загрузки приложений оператором сети GSM третьей стороне с возможностью наложения ограничений на использование ресурсов SIM-карты (ограничение максимального количества используемой памяти или на функциональные возможности приложения).

В начало В начало

Visa International

Visa International выработала спецификации для общего модуля безопасности, который логически расположен над операционной системой смарт-карт, используемых в платежных приложениях. Данный модуль называется «Visa Open Platform (VOP)». Visa International открыла часть своей спецификации VOP для обеспечения унифицированного протокола загрузки приложений в смарт-карты (в том числе и Java Card). Данный протокол обеспечивает безопасный механизм для управления приложениями на смарт-карте, позволяя удалять или добавлять приложения в любое время. В настоящий момент текущей является вторая версия протокола.

В начало В начало

Средства разработки GemXpresso (TM)

Изначально язык программирования Java был разработан для работы с данными, имеющими разрядность 32 бита. Выполнение даже такой простой операции, как 1+1, требует хранения в памяти двух 32-битных чисел. Большинство смарт-карт сегодня имеют простой 8-битный микропроцессор, а доступная для приложений память смарт-карт ограничена. В результате реализация Java-языка с его 32-битной семантикой при использовании 8-битных регистров микропроцессора карты требует дополнительных операций. Это означает, что выполнение 32-битных операций на 8-битной смарт-карте ведет к увеличению времени выполнения и требует большего количества и без того ограниченных ресурсов смарт-карты. Смарт-карты с микропроцессором с разрядностью 32 бита могут выполнять операции с 32-битной семантикой напрямую без предварительных преобразований, так как все его регистры имеют разрядность в 32 бита. Приложение, работающее на 32-битном микропроцессоре, более компактное и выполняется быстрее. Смарт-карты с 32-битным микропроцессором, как правило, имеют больший объем памяти, чем их 8-битные предшественники, что позволяет им хранить в памяти большее количество приложений. Кроме того, большее количество памяти означает более полную реализацию спецификаций Java Card плюс реализацию дополнительных возможностей, которые не вошли в стандарт, например механизма сборки «мусора» и механизма взаимодействия Java Card c Java-терминалом.

В то время как на рынке существует множество средств разработки для приложений Java Card от разных компаний, таких как: Sun, Microsoft, Symantec и др., программисты нуждаются в средстве, которое позволило бы им протестировать и отладить их приложения для Java Card. В отличие от Java-приложений, написанных для работы с PC, приложения для Java Card выполняются внутри карты «невидимо» для разработчика, и неправильно написанное приложение может заблокировать карту. Из-за невозможности отследить этапы выполнения приложения внутри Java Card наиболее разумным решением для отладки приложений является эмулятор Java Card на PC, который позволил бы отследить возможные ошибки в приложении без его загрузки в память карты. Эмулятор обеспечит интерактивную среду, которая поможет программистам проследить все этапы выполнения приложения и исключить возможность блокировки карт, что значительно уменьшит время отладки приложения.

На рынке уже появилось средство, позволяющее эффективно отлаживать приложения для Java Card. Это — GemXpresso RAD (rapid applet development) от компании Gemplus, бесспорного лидера в области производства смарт-карт и программного обеспечения для них. Gemplus был одной из первых компаний индустрии смарт-карт, которая активно поддержала использование объектно-ориентированного языка Java в смарт-картах. Являясь одним из основателей Java Card Forum, Gemplus все эти годы тесно сотрудничал с Sun Microsystems над процессом выработки спецификаций для Java Card.

GemXpresso RAD состоит из следующих компонентов:

  • двух GemXpresso Java Card 2.1 для загрузки приложений;

  • одной смарт-карты GemXpresso для доступа к системе поддержки, предлагаемой Gemplus;

  • одного устройства чтения смарт-карт;

  • CD-ROM со средой разработки.

Карты GemXpresso имеют 32-битный RISC-микропроцессор, который полностью поддерживает 32-битную семантику языка Java. Мощь данного процессора в сочетании с полной поддержкой спецификаций Java Card 2.1 позволяет разработчикам создавать платежные, телекоммуникационные и др. приложения, которые физически размещены на одной карте.

Среда разработки состоит из трех компонентов:

  • GemXpresso-конвертор, который проверяет Java Card 2.1-код и транслирует его в байт-код для виртуальной машины. Конвертор также позволяет подписывать приложение специальным электронным ключом для проверки его на целостность перед загрузкой карты;

  • GemXpresso-загрузчик позволяет загрузить приложение в карту, используя устройство чтения карт;

  • GemXpresso-отладчик, который обеспечивает графический интерфейс для тестирования аплета на PC без его загрузки в карту.

GemXpresso RAD совместим со всеми основными средствами разработки для Java.

В настоящий момент ведется разработка приложений, расширяющих функциональные возможности Java Card.

Так, компания ISOL, которая специализируется в разработке программного обеспечения для устройств с ограниченными ресурсами, объявила о создании сервера базы данных SQLMachine для Java Card. SQLMachine разработан с использованием GemXpresso RAD и занимает менее 10 Кбайт. SQLMachine полностью совместим со спецификацией Java Card SQL, разработанной Java Card Forum в 1999 году. SQLMachine позволяет разработчикам Java Card использовать широко распространенные стандарты средства, например SQL, для доступа к данным на Java Card. Используя SQLMachine, разработчик может полностью сконцентрироваться на бизнес-логике приложения и не думать о том, как организовать хранение информации в файлах Java Card. Также SQLMachine поддерживает транзакционные механизмы обработки данных и стандарты доступа к данным ODBC и JDBC. Например, пользователь может получить доступ к данным на Java Card, работая с приложением на PC, оснащенным устройством чтения смарт-карт, через ODBC-драйвер для SQLMachine (архитектура «клиент-сервер»).

Для Java Card уже существует целый ряд платежных приложений: VisaCash 1.6,Visa Easy Entry, VSDC/UKIS — EMV.

Также для JavaCard было разработано приложение GemSAFE – PKCS11, которое используется для обеспечения безопасности при работе в компьютерных сетях.

В начало В начало

Производимые Java Card

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

Заинтересованность в дальнейшем развитии Java Card со стороны таких компании, как Visa International, Sun Microsystems, Gemplus, IBM и целого ряда телекоммуникационных компаний, а также примеры практического внедрения этой технологии, количество которых постоянно растет, является надежной гарантией успеха Java Card.

В настоящий момент производится широкий спектр смарт-карт, которые поддерживают самые последние спецификации Java Card. Рассмотрим некоторые из Java Card, производимые компанией Gemplus:

  • GemXplore ‘Xpresso представляет собой Java Card для использования в мобильных телефонах для GSM-сетей (SIM-карту), которая обеспечивает всю функциональность SIM-карты плюс возможность добавления приложений, написанных на Java. Принимая во внимание популярность языка Java при создании приложений для таких отраслей, как телекоммуникации, финансы, транспорт, медицина, торговля, будет намного проще разрабатывать приложения для данных отраслей, размещая их по мере необходимости на одной карте. Как и все карты серии GemXpresso, GemXplore ‘Xpresso поддерживает механизм размещения нескольких приложений на одной карте, исключая возможность взаимного влияния приложений друг на друга.

    Особенностью карты GemXplore ‘Xpresso является наличие механизма удаленной загрузки приложений по сети GSM через протокол удаленного администрирования и загрузки приложений и данных OTA (over-the-air). Использование OTA позволяет значительно расширить функциональность мобильного телефона абонента, добавляя к ней возможности информационного киоска или мобильного терминала для заказа и оплаты товаров и услуг. GemXplore ‘Xpresso полностью поддерживает разработку Java-приложений для работы со стандартом SIM ToolKit, позволяя расширять меню телефона специальными стандартными сервис-меню для работы с добавленными на карту приложениями. В настоящий момент существует две версии карты GemXplore ‘Xpresso. Рассмотрим их характеристики более подробно:

  • GemXpresso 210 разработана для использования в различных устройствах, таких как PC, портативные компьютеры, терминалы в пунктах продажи товаров и услуг. Серия смарт-карт GemXpresso 210 является результатом совместной работы групп разработчиков из IBM и Gemplus.

    Полностью поддерживая Java Card API 2.1, смарт-карты серии GemXpresso 210 позволяют размещать в своей памяти несколько приложений от различных поставщиков. Кроме того, GemXpresso 210 поддерживают бизнес-расширение, которое не было включено в стандарт Java Card 2.1. Основным предназначением данного бизнес-расширения, разработанного компанией Visa International, является создание безопасного и универсального механизма управления приложениями (удаление, добавление) на смарт-карте. Данное расширение получило название VOP (Visa Open Platform). GemXpresso 210 полностью поддерживает VOP-расширение, обеспечивая необходимую безопасность при загрузке приложений на смарт-карты данной серии. Это позволяет использовать смарт-карты серии GemXpresso 210 для хранения приложений, предназначенных для работы в банковской сфере, где существуют одни из самых жестких стандартов безопасности. После выпуска карты приложения на нее могут быть загружены динамически при проведении платежной операции в банкомате или при работе в сети Internet через подключенное к компьютеру устройство чтения смарт-карт. Рассмотрим типы карт серии GemXpresso 210:

  • GemXpresso 211, полностью поддерживает спецификации Java Card 2.1 (API и виртуальной машины). В остальном обеспечивает поддержку тех же стандартов и возможностей, что и GemXpresso 210.

Рассмотрим типы карт серии GemXpresso 211:

Для данной серии карт GemXpresso 211 Gemplus доработал среду разработки GemXpresso RAD. Теперь GemXpresso RAD предлагает возможность наряду с отладкой приложения для Java Card отлаживать приложения для терминала, используя эмулятор терминалa и обеспечивая полную поддержку спецификаций VOP 2.0 и Java Card 2.1. GemXpresso RAD был разработан на языке Java и способен работать под управлением следующих операционных систем: Solaris, Windows и Linux.

В начало В начало

Заключение

Очевидно, что c введением Java Card в более широкое использование многие компании будут объединяться в консорциумы для разработки и распространения приложений, обеспечивающих целый ряд услуг. Данные приложения будут загружаться пользователем через сеть Internet, сеть GSM или банковский терминал по мере необходимости.

Например, на Java Card, эмитированную каким-либо банком, первоначально могут быть записаны приложения:

  • для выполнения операций дебета — кредита;

  • осуществления покупок через Internet с поддержкой протокола SET, обеспечивающего безопасность платежей через сеть Internet.

Позднее держатель карты может добавить или удалить приложения для обеспечения следующих операций:

  • получения скидок при постоянной покупке товаров в определенной сети супермаркетов;

  • получения доступа в свой рабочий офис;

  • хранения на карте ключей шифрования и паролей, необходимых при работе в локальной сети офиса.

В настоящее время о применении Java Card при построении своих приложений заявили такие компании, как Standard Chartered bank, CitiBank, Swisscom и др. Принимая во внимание все возможности, которые обеспечивают Java Card, можно с уверенностью сказать о том, что в ближайшее время мы станем свидетелями широкого внедрения этой технологии.

Предыдущая страница

КомпьютерПресс 7'2000

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует