Как общаться с памятью / смарт-картами Felica?

У меня есть карточка Фелики. Первый вопрос: что это за карта? Это смарт-карта или простая карта памяти? Это своего рода карта Java и могу ли я загрузить .cap файлы внутри или это имеет свое собственное фиксированное содержимое, и я не могу загрузить апплет? Это стандартная жалоба GlobalPlatform?

Я прочитал здесь, что:

Фирменная Sony FeliCa - это технология смарт-карт, аналогичная ISO/IEC 14443. FeliCa имеет файловую систему, аналогичную той, которая определена в ISO/IEC 7816-4. Файловая система и команды для доступа к файловой системе стандартизированы в JIS X 6319-4 [28]. Кроме того, система FeliCa имеет собственные функции криптографии и безопасности.

После этого я попытался отправить ему несколько команд APDU. Первым шагом было сделать некоторые изменения конфигурации с помощью ридера. Потому что мой ридер настроен на чтение карт типа A и типа B ISO14443, а не карт Felica.

Поскольку обе карты Felica и ISO / IEC 14443 используют частоту 13,56 МГц для несущей, я думаю, что разница между этими типами заключается только в уровне протокола. Я прав? Если да, то как называется протокол передачи карт Felica? (Для карт ISO / IEC 14443 у нас есть протоколы T=1 и T=CL).

После настройки ридера я попытался отправить команды на карту:

Connect successful.
Send: 00 A4 04 00 00
Recv: 6A 81
Time used: 31.000 ms

Send: 00 C0 00 00 00
Recv: 6A 81
Time used: 28.000 ms

Send: 00 CA 00 00 00
Recv: 6A 81
Time used: 35.000 ms

Как вы видите выше, я получаю 0x6A81 только статусные слова.

Я также искал множество таблиц ACS Reader, некоторые заметки по применению NXP и, конечно, стандарт JIS X 6319-4 для списка команд для карт такого типа. Но я не нашел ничего подходящего.

Итак, вопросы:

  1. Что на самом деле Фелика? (Смарт? Память?)
  2. В чем разница между картами Felica и картами ISO / IEC14443? Это связано с NFC?
  3. Как общаться с этой картой и передавать данные?

Обновить:

ATR моей карты: 3b 8f 80 01 80 4f 0c a0 00 00 03 06 11 00 3b 00 00 00 00 42

1 ответ

Решение

Что на самом деле Фелика? (Смарт? Память?)

По функциональности это больше похоже на карту памяти, чем на смарт-карту. Чтение данных в блоках типично для карты памяти, и карта имеет очень ограниченные функциональные возможности, кроме базовой аутентификации, основанной на симметричной криптографии.

Вы можете утверждать, что это смарт-карта в том смысле, что реализация, по-видимому, имеет многоцелевой процессор (см. Приложение B).

Однако кажется невозможным изменить поведение смарт-карты так же, как вы сделали бы, например, в Java-карте Global Platform. Поэтому я бы классифицировал его как карту памяти с проприетарным протоколом.

В чем разница между картами Felica и картами ISO/IEC14443? Это связано с NFC?

Он использует собственный протокол связи, который включает в себя как уровень канала передачи данных (о котором вы спрашиваете здесь), так и уровень команд / ответов.

Как общаться с этой картой и передавать данные?

Тот факт, что вы отправляете APDU вместо проприетарных пар команд / ответов FeliCa, указывает на то, что вы используете уровень перевода. Этот слой перевода, вероятно, находится в драйвере читателя / читателя. API этого уровня перевода, вероятно, будет указан в спецификациях PCSC 2.01 (раздел 3.2.2.1 Поддержка функциональности карты памяти с использованием байта CLA 0xFF).

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

Другие вопросы по тегам