А слабо написать код для смарт-карты?

Совершенно неожиданно для Java-программистов открылся новый ёмкий рынок.
30 декабря 2015308247Вадим Ференец2899011

Каждый из нас держал в руках SIM-карты для телефонов, смарт-карты для прохода через турникет в офисах и банковские пластиковые карты Visa или MasterCard. Но вот далеко не каждый знает, что внутри всех этих девайсов находится мобильный микропроцессор, операционная система Java Card OpenPlatform (JCOP) и приложения, написанные на Java.

Приложения для работы в среде JCOP пишут и отечественные программисты. Об одной такой разработке — U2F-токене для двухфакторной аутентификации от компании «Аладдин Р.Д.» мы уже упоминали в статье «U2F для диванного тролля».

Yubico расшевелила самых ленивых

Но бум здесь только начинается. Кто следит за новостями производителей микросхем «Микрон» и «Ангстрем», знают, что уже начато производство чипов для карты «Мир» российской платежной системы, электронных удостоверений личности и жетонов военнослужащих, а также для меток, которые будут ставиться на выпускаемые в России и импортируемые в страну лекарства.

А кто будет писать софт для этих чипов? Сейчас в РФ днём с огнем не найти специалистов под JCOP. Особенность этих программистов — способность писать код на Java Card (диалекте Java) для устройств с крайне ограниченными вычислительными ресурсами. По сравнению с другими версиями Java здесь изменен байткод, требования к платформе и состав стандартных библиотек.

Почему будем писать сами, а не покупать за границей? Во-первых, из-за использования отечественной криптографии, а, во-вторых, уже накоплен печальный опыт проблем с Visa, MasterCard и со шведской компанией Yubico — одним из мировых лидеров в производстве программно-аппаратных средств для аутентификации пользователей. Yubico из-за санкций решила не поставлять нам свою продукцию, чем вызвала невиданный в современной России рост производства собственных средств безопасности в этом сегменте.

На базе микроконтроллеров производства NXP Semiconductors N. V. с использованием операционной системы Java Card Open Platform, в серию были запущены отечественные токены и смарт-карты. Единственной серьезной трудностью было найти подходящих разработчиков.

Это и сдерживает такое направление современного бизнеса, как расширение функционала стандартных SIM-карт. Именно этот носитель всё чаще выбирается в качестве NFC и RFID модулей для мобильных устройств в РФ, и прямо сейчас в соответствующих органах проходят сертификацию эти технологии.

JCOP — операционная система для смарт-карт

Первоначально JCOP была разработана корпорацией IBM, затем получила широкую поддержку альянса Global Platform и международной организации гражданской авиации ICAO. Благодаря открытой архитектуре сторонние разработчики пишут свои приложения (апплеты) в соответствии с национальными стандартами.

На уровне языка Java Card — подмножество более полных платформ Java: все языковые конструкции Java Card присутствуют в Java и ведут себя в точности так же. Для компиляции используется обычный компилятор Java (javac) без каких-либо специальных опций. И лишь потом результат обрабатывается специфичной для Java Card программой, чтобы получить файл, который можно будет установить на смарт-карту. Однако многие возможности языка Java не поддерживаются в Java Card.

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

Возможно, это кому-то сегодня покажется скучным, но что будет завтра — время покажет!

Хотите писать на Java и использовать все возможности, предоставляемые языком? Тогда выбирайте профессию «Программист Java».

java cardjcopnxp
Нашли ошибку в тексте? Напишите нам.