Есть ли способ заставить наш апплет получать все команды SELECT APDU?

Насколько вам известно, Card Manager (~ Security Domain) — это объект, отвечающий за обработку команд SELECT APDU. Мне нужен апплет для получения всех команд APDU (включая команды SELECT APDU). Другими словами, мне нужно, чтобы мой апплет был ВЫБРАН по умолчанию и всегда выбран.

Я знаю, что могу сделать свой апплет «выбранным по умолчанию» апплетом, но есть ли способ сделать его «всегда выбранным», чтобы он получал все команды APDU?

Я думаю, единственный способ сделать это — воспользоваться преимуществами делегированного управления или сделать мой апплет доменом безопасности. Я прав?


person Ebrahim Ghasemi    schedule 01.03.2018    source источник


Ответы (1)


это, вероятно, невозможно. вы никогда не сможете отменить команду select, так как это поведение является основной частью спецификации JCRE, и всегда будет менеджер карт, выбираемый его AID. У некоторых производителей карт есть возможность отключить диспетчер карт, но это проприетарно.

изменить: команду выбора невозможно отменить:

  • класс 0x00 (или любой логический канал)
  • 0xA4
  • p1 0x04
  • переменная p2
  • lc+data со ссылкой на AID или частичный выбор AID, если это разрешено производителем чипа
person Paul Bastian    schedule 02.03.2018
comment
У меня есть апплет, реализующий команду Select (P1=04). Если апплет выбран, апплет получает все команды выбора, кроме тех, которые включают AID DF, соответствующий AID апплета. В этом случае CardManager обрабатывает это и отменяет выбор моего апплета и выбирает новый. Таким образом, можно обрабатывать выбор, но имейте в виду, что ваши данные выбора не совпадают ни с одним апплетом AID, установленным в вашей карте. - person jlanza; 02.03.2018
comment
ну, это противоречит вопросу, потому что, как он заявил, он хочет, чтобы каждый выбранный apdu обрабатывался апплетом. совершенно очевидно, что вы можете ответить на некоторые команды выбора, хотя - person Paul Bastian; 02.03.2018
comment
Является ли команда SELECT APDU единственной командой, которую я не могу отменить? Или команда MANAGE CHANNEL APDU тоже похожа? - person Ebrahim Ghasemi; 06.03.2018