Чтобы быть немного более практичным и не только теоретическим, я опубликовал некоторые патчи для xda-developers до , включающего режим эмуляции карт на уникальном на данный момент телефоне Android поддержка NFC (Nexus S). Вам и другим может быть интересно самим поиграть в режиме эмуляции карт. Учтите, что это только для экспериментальных целей.
Они применяются к версии пряников 2.3.4_r1 из источников AOSP. Они позволяют:
- Включение режима эмуляции карты NFC на Nexus S. Этот режим всегда включен.
- Отключение режима считывателя, позволяющего работать только эмуляции карты.
- Выбор внешнего защищенного элемента (в UICC) вместо встроенного (в чипе SmartMX).
- Хотя это и не связано, снятие ограничения на время обнаружения Bluetooth.
Что я узнал об эмуляции карты NFC на Android до сих пор:
- Эмуляция карты по умолчанию отключена на стандартных изображениях и требует модификации прошивки. Изменения системного приложения Nfc и системной библиотеки libnfc-nxp - это то, на что стоит обратить внимание.
- Встроенный чип SmartMX внутри Nexus S представляет собой двойную смарт-карту. Программируемый (с возможностью установки на него карточек) и 4K Mifare.
- Карта 4K Mifare имеет ключи по умолчанию, поэтому ее можно записывать / читать с внешнего устройства чтения.
- Предполагается, что программируемая карта совместима с GP , но никто, кроме Google, не может возиться с ней, поскольку ключи доступа не являются открытыми.
- Nexus S поддерживает SWP и позволяет работать с защищенным элементом, расположенным внутри UICC.
- Приложения не могут напрямую получить доступ к содержимому защищенных элементов . С одной стороны, встроенный SE недоступен, потому что мы не знаем ключей. С другой стороны, внешний элемент доступен снаружи с помощью SWP (который подключается к контроллеру NFC), но не внутри, потому что AFAIK слот SIM-карты не подключен другими средствами к контроллеру NFC. Это оставляет нам только один путь, процессор основной полосы частот. Тем не менее, прошивка BB является пролиферативной и контролируется производителями. Компания Samsung не реализовала техническую спецификацию 3GPP TS 27.007 для взаимодействия с ней в прошивке BB.
- OTA доступ к внешнему SE должен быть возможен, это находится в руках MNO. Некоторые из них могут предлагать услуги TSM, чтобы разрешить сторонний доступ к SE внутри UICC.
Кстати, упомянутая вами технология (NFC-WI) уже используется в Nexus S для соединения контроллера NFC со встроенным защищенным элементом.
Upate
Подводя итог, я отвечаю на вопросы Стена:
Поскольку область Mifare 4K имеет ключи по умолчанию, любой, у кого есть внешний
Читатель NFC может изменить ключи и безопасно хранить значения там - есть
это правильно? Вы пробовали это? Это с какими-то трудностями?
Краткий ответ да , я получил доступ к Mifare 4K с внешнего ридера. Я был в состоянии изменить ключи по умолчанию тоже. Трудности возникают из-за модификации системных источников и самостоятельной сборки прошивки.
Является ли использование внешнего считывателя NFC единственным способом доступа к
Mifare пространство?
Теоретически нет. Другой альтернативой будет отправка APDU на SIM-карту, содержащая команды Mifare для выполнения на карте Mifare.
Может, например, приложение установлено на телефоне Android чтение / запись некоторые
данные в Mifare 4K с использованием некоторого API (через контроллер NFC и NFC-WI
дорожка)? Можно, например, искать помощь для андроида там?
Пока нет. Хотя вы модифицируете исходники AOSP с помощью патчей для поиска Android (я сделал это сам), ваше приложение будет просто зависать на стандартных телефонах. Причина в том, что они не реализовали техническую спецификацию 3GPP TS 27.007 , которая позволяет процессору приложений отправлять APDU непосредственно на SIM-карту (UICC).
Однако перед туннелем может быть немного света, поскольку проект Citizy во Франции уже использует режим защищенных элементов технологии NFC с телефонами Android, применяя подход UICC с безопасными элементами. На самом деле используется модифицированная модель Samsung Galaxy SII , и скоро будет доступна новая модель Acer Liquid Express для интеграции в гражданскую среду. Эти телефоны обязательно должны иметь требуемую спецификацию TS 27.007, реализованную в микропрограмме их процессора основной полосы частот. Когда дело доходит до процессора приложений, я не знаю, взяли ли они SEEK-for-android с пути G & D или OpenNFC от Insecure. Будучи французами, я бы поставил олл-ин на последний.