Общий ответ, касающийся программирования смарт-карт, заключается в том, что вы должны быть готовы перемещаться по запутанному списку инструментов и технологий.Обычно разработчики смарт-карт начинают с конкретной аппаратной платформы: более конкретной, чем просто javacard .
Поскольку вы специально упомянули javacard, мы можем сосредоточиться на нескольких отправных точках.
Javacard SDK
Вы можете начать с комплекта разработчика javacard .Я не использовал самый последний - я все еще использую 2.0.2.Этот комплект разработчика очень ориентирован на командную строку, поэтому ожидайте, что большую часть своей работы вы будете выполнять за пределами IDE.Тем не менее, документация довольно полезна и должна помочь вам быстро освоиться.В любом случае, это хорошее место для начала, так как оно официально.
EclipseJCDE также выглядит интересно, но я им не пользовался.Кажется, я вспоминаю другой проект, направленный на создание инструментов Javacard Eclipse, но я, возможно, просто думаю об EclipseJCDE.
IBM Tools
Однажды IBM опубликовала и поддерживала набор инструментов JCOP, которые интегрировалис Eclipse IDE.Самое замечательное в этом то, что они отправят вам пакет, содержащий несколько инструментов разработчика и пару карт JCOP.Раздражает то, что код активации был необходим.Посмотрите здесь .Ссылка для скачивания все еще хороша, удачи с адресом электронной почты, указанным там.Также обратите внимание, что эти инструменты требуют более старой сборки Eclipse.Поддержка сборки / отладки очень хорошая, включая встроенный симулятор javacard.
Global Platform
Если вы планируете заниматься программированием на javacard, вам также следует познакомиться с Global Platform.Это стандарт смарт-карт, и в контексте javacard вам нужно знать о спецификации GP, когда вам нужно загружать и управлять апплетами javacard.Это необходимо для работы с картами JCOP.Чтобы узнать последние спецификации GP, найдите Характеристики карт GlobalPlatform .Вы должны быть очень хорошо знакомы с основными понятиями смарт-карт, например, с APDU.
Аппаратное обеспечение
Варианты аппаратного обеспечения слишком разнообразны, чтобы я мог давать полезные рекомендации, помимо описанных выше JCOP.Как я уже упоминал, если вы можете использовать комплект IBM, тогда вы получите хороший симулятор JCOP / javacard с инструментами Eclipse.Я уверен, что есть другие доступные симуляторы карт.
и т. Д.
Помимо этого, существует длинный список других технических спецификаций, используемых программистами смарт-карт, и, к сожалению, многие из них не свободнодоступны (ISO документы).Если вы будете заниматься программированием GSM, думаю, вы сможете найти все спецификации GSM, поискать ETSI GSM спецификации .GSM 11.11 особенно полезен для получения дополнительной информации о командах / ответах APDU без доступа к спецификациям ISO, например, ISO 7816-4.