Почему Android HCE не поддерживает тип Mifare Classic?

Mifare Classic - это наиболее используемые карты, и я не могу понять, почему HCE (Host-based Card Emulation) поддерживает только ISO 14443-4, но не тип Mifare Classic.

Потому что NXP не дает им использовать их собственные протоколы и алгоритмы? Или потому, что они не реализовали Mifare Classic на уровне ОС Android?

Будем очень признательны за любые комментарии.


person Yongkil Kwon    schedule 10.12.2014    source источник


Ответы (1)


Краткий ответ: потому, что Google решил поддерживать только ISO / IEC 7816-4 вместо ISO-DEP (ISO / IEC 14443-4).

Размышления о том, почему они так решили:

  • Прежде всего, ISO / IEC 7816-4 поверх ISO-DEP - это более высокий уровень протокола, который можно использовать для маршрутизации обмена данными с процессором приложений через NCI (интерфейс контроллера NFC). Возможна маршрутизация более низких уровней протокола (читай: «протокол NCI поддерживает это»), хотя нет необходимости, чтобы контроллер NFC даже поддерживал маршрутизацию связи нижнего уровня.

  • ISO / IEC 7816-4 через ISO-DEP разрешает маршрутизацию для каждого приложения. Т.е. считыватель выбирает конкретное приложение, и только после этого контроллер NFC решает, будет ли сообщение передано защищенному элементу или процессору приложения. Процессор приложения может выполнять аналогичный механизм маршрутизации для маршрутизации связи к определенному приложению (это то, что сейчас делается на Android).

  • Используя более низкие уровни протокола (например, ISO / IEC 14443-3), нет возможности выполнять маршрутизацию для каждого приложения. Вместо этого вся связь на этом уровне будет направляться либо к защищенному элементу, либо к процессору приложения. Если направлено на процессор приложений, операционная система не имеет возможности выбирать между несколькими приложениями. Вместо этого для этого типа связи можно было зарегистрировать только одно приложение. Однако, учитывая множество разработчиков приложений для такой платформы, как Android, разрешение использовать только одно приложение будет скорее тормозить развитие.

  • MIFARE Classic - это запатентованная технология от NXP. Я не ожидаю, что они лицензируют чисто программную реализацию (на процессоре приложений / системе Android) платформы протокола / тегов MIFARE Classic.

  • MIFARE Classic использует нестандартное кадрирование для команд аутентификации, поэтому может быть трудно эмулировать через интерфейс NCI Frame RF (хотя я недостаточно знаком с этим протоколом, чтобы подтвердить, есть ли фактическое ограничение, препятствующее эмуляции MF Classic).

person Michael Roland    schedule 11.12.2014