Может ли сервлет смарт-карт Java 3.0 взаимодействовать с веб-сервером?

Согласно этому документу Oracle, на смарт-картах Java 3.0 могут быть установлены сервлеты вместо обычных java-апплетов. Вот соответствующий Oracle Doc.

http://www.oracle.com/technetwork/articles/java/javacard-servlets-136657.html

«Разработчикам больше не нужно создавать отдельные клиентские приложения для доступа к данным и ресурсам на смарт-карте. Единственный необходимый клиентский интерфейс — это обычный веб-браузер. Приложения для смарт-карт теперь представляют собой полностью функционирующие серверы на основе TCP. Эти серверные приложения представляют собой сервлеты Java. , и у них есть полный стек HTTP, позволяющий обрабатывать запросы GET, запросы POST, заголовки, файлы cookie, сеансы и т. д. Вы можете защитить данные между клиентом (браузером) и сервером (смарт-картой) с помощью с использованием стандартного отраслевого протокола SSL (уровень защищенных сокетов)».

Моя ситуация заключается в том, что я хочу взаимодействовать со смарт-картой пользователя с моего сайта. Обычные методы, использующие Java-апплеты в HTML на моем веб-сайте, больше не поддерживаются, Java Web Start неэффективен и неудобен для пользователя.

Простой пример — проверка PIN-кода. На смарт-карте хранится 4-значный PIN-код. Мой веб-сайт предложит пользователю ввести свой PIN-код, вставить смарт-карту в считывающее устройство. Мой веб-сайт сможет отправить необходимую команду APDU с введенным PIN-кодом на карту и сможет получить ответные команды APDU, которые сообщат веб-серверу, был ли PIN-код правильным или нет.

Мой вопрос: возможно ли, чтобы мой веб-сайт взаимодействовал со смарт-картой пользователя, учитывая возможности сервлета, выполняемого на смарт-карте?

Если да, то может ли кто-нибудь предоставить мне какой-нибудь простой псевдо или направление для выполнения этого? Я не работал с сервлетами, но я могу научиться.


person Benji Weiss    schedule 28.04.2017    source источник
comment
Извините - нет ответа, но мне любопытно. Есть ли у ваших пользователей доступ к JavaCards? Я помню, когда вышли спецификации, но я ничего не слышал об этом в течение многих лет. Но быстрый поиск в Google показывает, что они все еще живы.   -  person stdunbar    schedule 28.04.2017
comment
@stdunbar Да, теоретически, если я куплю 1000 смарт-карт Java и инициализирую их все своим приложением ... я могу раздать 1000 смарт-карт своим пользователям, и они смогут использовать их соответствующим образом. Сейчас у меня есть 4 смарт-карты Java, которые мне предоставила компания из Гонконга, что позволяет мне разрабатывать и тестировать. Я могу успешно запускать Java-апплеты на смарт-карте, но моя проблема сохраняется при взаимодействии со смарт-картами из веб-браузера.   -  person Benji Weiss    schedule 28.04.2017


Ответы (1)


То, что вы описываете, является частью API, называемого версией Java Card Connected. Большинство, если не все, реализаций Java Card на рынке являются версиями Java Card Classic. Основная техническая проблема подключенной версии заключается в том, что для нее требуются смарт-карты с объемом памяти от 24 до 32 КиБ. Это может звучать немного, но SRAM на кристалле очень дорогая. «Классические» карты высокого класса имеют от 8 до 12 КБ ОЗУ.

Чтобы иметь какое-то взаимодействие с веб-сайтом, вам нужно какое-то соединение. Каким-то образом вам нужно преобразовать этот запрос HTTP (S) в пакеты, отправляемые на карту и обратно. Пока для этого не установлено программное обеспечение, вы не сможете подключить браузер к смарт-карте.


Конечно, существуют различные решения для подключения браузеров к смарт-картам. Собственные плагины для браузера, модули PKCS#11, апплеты. Вы уже назвали webstart и сокращающиеся апплеты Java (Standard Edition). У всех есть свои плюсы и минусы. К сожалению, в большинстве ситуаций Java Card Connected не применяется напрямую.

person Maarten Bodewes    schedule 30.04.2017
comment
Спасибо за отзыв. Я хотел отметить, что многие смарт-карты Java на рынке смещаются в сторону версии Connected, и поскольку закон Мура продолжает действовать (несмотря на массовые комментарии о том, что его действие подходит к концу), размер EEPROM смарт-карт увеличился. увеличивается. Тот, который я использую, имеет размер 32 КБ, однако та же компания разрабатывает несколько моделей большего размера, самый большой из которых составляет 256 КБ. Поскольку я планирую развертывание своей смарт-карты в качестве продукта, клиентам неизбежно придется устанавливать драйверы для считывателя и самой карты. Учитывая это, я мог бы просто развернуть настольное приложение. - person Benji Weiss; 03.05.2017
comment
Я говорил об оперативной памяти, а не о EEPROM или флэш-памяти. Есть способы обойти слишком мало оперативной памяти, но только за счет эффективности. - person Maarten Bodewes; 03.05.2017