Вопросы и ответы по разработке мобильных приложений для Android и Symbian NFC (FAQ) - PullRequest
8 голосов
/ 09 августа 2011

Давайте в общих чертах поделимся идеями о разработке NFC, технологиях… Я горячо приветствую любые ваши комментарии - либо об Android или Symbian SDK, либо о NFC в целом.

С моей точки зрения, общий вопрос в том, что мы можем разработать, то есть какие приложения мы можем вывести на рынок с технологией NFC?И как мы, разработчики, можем зарабатывать деньги и получать выгоду от NFC?

Я думаю, что есть ожидание, что NFC откроет двери для многочисленных сервисов и возможностей для разработчиков - но так ли это?Разница между NFC и другими беспроводными технологиями (BT, WiFi) заключается в том, что он уже поставляется с основными вариантами использования - оплата, транспортные билеты и ключи (доступ в здание).Но для всех этих случаев использования вам нужен защищенный элемент, который

  • контролируется производителем телефона, например, Google - см. Google Wallet, который использует исключительно встроенный встроенный NXP SecureMX на Nexus S (и это то, что очень трудно изменить, если мы не хотим ставить под угрозу безопасность),
  • или доступ через UICC на SIM-карте (на Android и Symbian/ и MeeGO / телефон);здесь необходимо заключить сделку с операторами.

Но имея в стране 3 или 4 оператора, насколько вероятно для компании среднего размера, что они позволят запускать свои апплеты на SIM-картах?А как насчет других мировых решений?Все вышеперечисленные услуги / варианты использования требуют значительной координации всех игроков и хорошо зарекомендовавшей себя экосистемы (банки, MNO, производители чипов NFC, производители телефонов, TSM…).

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

Я думаю, что шансы могут быть больше, если в телефоне будет установлен NFC-WI(S2C) - имея этоИнтерфейс (заданный ECMA) и карты micro SD с поддержкой NFC-WI (уже определенная ассоциацией SD-карт), возможно, позволят приобрести SD-карты с защищенными элементами для произвольной компании ... Но это не на рынке, и это делаетничего не скоро появится.

Каково ваше видение и опыт разработки NFC и мобильных телефонов?

Ответы [ 2 ]

14 голосов
/ 29 сентября 2011

Чтобы быть немного более практичным и не только теоретическим, я опубликовал некоторые патчи для 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. Будучи французами, я бы поставил олл-ин на последний.

2 голосов
/ 06 октября 2011

Итак, чтобы продолжить обсуждение, я просто подведу итоги: микроконтроллер NXP SmartMX состоит из двух отдельных защищенных элементов.Первый из них программируемый, работает под управлением некоторой операционной системы (например, MULTOS или Sm @ rtCafe или другой) и виртуальной машины JavaCard, но он заблокирован, и рабочие ключи доступа есть только в руках Google или TSM.Здесь невозможно установить приложение JavaCard для целей тестирования, поскольку невозможно разблокировать защищенный элемент для целей тестирования.

Также нет способа использовать SIM-карту, поскольку даже если это можеттехнически возможно, для коммерческого применения необходима сделка с MNO.Остановимся на некоторое время на Mifare 4K, который представляется наиболее перспективным:

Поскольку в области Mifare 4K есть ключи по умолчанию, любой, у кого есть внешний считыватель NFC, может изменить ключи и безопасно хранить там значения -это правильно?Вы пробовали это?Возникает ли это с какими-либо трудностями?

Является ли использование внешнего считывателя NFC единственным способом доступа к пространству Mifare?Может ли приложение, установленное на телефоне Android, считывать / записывать некоторые данные в Mifare 4K с использованием некоторого API (через контроллер NFC и путь NFC-WI)?Может, например, поиск помощи для Android там?

Спасибо STeN

...