Эмуляция карты nfc android

Эмуляция карты nfc android

After reading a lot of questions, i decided to post this one. I read that stock version of android does not support API’s for card emulation. Also, we cannot write custom applications to secure element embedded in nfc controllers due to keys managed by google/samsung.

I need to emulate a card (mifare or desfire etc). The option i can see is doing it via software. I have a ACR122U reader and i’ve tested that NFC P2P mode works fine with the Nexus-S that i have.

1) I came across a site that said that nexus s’s NFC controller (pn532) can emulate a mifare 4k card. If this is true, can i write/read apdu commands to this emulated card? (Probably if i use a modded rom like cyanogenmod)

2) Can i write a android application that reads apdu commands sent from the reader and generate appropriate responses (if not fully, then upto some extent only). To do so, i searched that we need to patch nexus s with cynagenmod. Has someone tried emulating card via this method?

I see that this is possible since we have products from access control companies offering mobile applications via which one can open doors e.g. http://www.assaabloy.com/en/com/Products/seos-mobile-access/

3 Answers 3

Some facts that may be of help in your quest:

  • The NFC controller in the Nexus S (and Galaxy Nexus, Nexus 7 and quite a few other Android devices) is the PN544
  • Card emulation can be done either by the secure element connected to the NFC controller or by the host device (=Android device in this case). The Nexus S has a secure element that could be used for that (used in Google Wallet). Card emulation from the host device is not a feature of the PN544 NFC controller, although some claim that they have managed to get it working.
  • You can turn on card emulation by the secure element by rooting your device and following the instructions at https://stackoverflow.com/a/10506299/1202968 (haven’t tried this with 4.x JB, but I assume that it still works).
  • Emulating a MIFARE Classic card can be done by the secure element in the Nexus S, but not by the host device. Emulating a DESFire card is not supported by the secure element in the Nexus S.
  • I have investigated a similar doorlock product that used card emulation itself to communicate to an NFC mobile device, while using card reader/writer mode to communicate to access control cards.

IMO, the 2 simplest options are: use P2P communication (Android Beam) or use card emulation in a reader device (if it supports it). All the other options require things like rooted devices and custom ROMs, which are not future-proof and have no possibility to be translated to a real product.

Прочитав много вопросов, я решил опубликовать это. Я читал, что версия запаса Android не поддерживает API для эмуляции карты. Кроме того, мы не можем писать собственные приложения для защиты элементов, встроенных в контроллеры nfc, из-за ключей, управляемых Google / Самсунгом.

Мне нужно подражать карте (mifare или desfire и т. Д.). Опция, которую я вижу, выполняет с помощью программного обеспечения. У меня есть считыватель ACR122U, и я тестировал, что режим NFC P2P отлично работает с Nexus-S, который у меня есть.

1) Я наткнулся на сайт, в котором говорится, что NFC-контроллер nexus s (pn532) может эмулировать карточку mifare 4k. Если это правда, могу ли я написать / прочитать команды apdu для этой эмулируемой карты? (Возможно, если я использую модифицированный ром, как цианогенмод)

2) Могу ли я написать приложение для Android, которое считывает команды apdu, отправленные от читателя, и генерирует соответствующие ответы (если не полностью, то только в некоторой степени). Для этого я обыскал, что нам нужно исправлять связи с cynagenmod. Кто-то пробовал эмулировать карту с помощью этого метода?

Читайте также:  Как настроить видеокарту amd radeon под игры

Я вижу, что это возможно, поскольку у нас есть продукты от компаний контроля доступа, предлагающих мобильные приложения, через которые можно открывать двери, например http://www.assaabloy.com/en/com/Products/seos-mobile-access/

Некоторые факты, которые могут помочь в ваших поисках:

  • Контроллер NFC в Nexus S (и Galaxy Nexus, Nexus 7 и многие другие устройства Android) – это PN544
  • Эмуляция карты может быть выполнена либо защищенным элементом, подключенным к контроллеру NFC, либо хост-устройством (в данном случае это устройство Android). Nexus S имеет безопасный элемент, который может быть использован для этого (используется в Google Кошельке). Эмуляция карты с главного устройства не является особенностью контроллера PN544 NFC, хотя некоторые утверждают, что им удалось заставить его работать.
  • Вы можете включить эмуляцию карты защищенным элементом, укоренив свое устройство и следуя инструкциям на https://stackoverflow.com/a/10506299/1202968 (не пробовал это с 4.x JB, но я предполагаю, что он все еще работает).
  • Эмуляция карты MIFARE Classic может быть выполнена защищенным элементом в Nexus S, но не хост-устройством. Эмуляция карты DESFire не поддерживается защищенным элементом в Nexus S.
  • Я исследовал аналогичный продукт дверного замка, который сам использовал эмуляцию карты для связи с мобильным устройством NFC, используя режим чтения / записи карт для связи с контрольными картами доступа.

IMO, двумя простейшими параметрами являются: использование P2P-связи (Android Beam) или использование эмуляции карты в устройстве считывателя (если оно поддерживается). Все остальные варианты требуют таких вещей, как укорененные устройства и пользовательские ПЗУ, которые не являются надежными для будущего и не могут быть переведены на реальный продукт.

Эмуляция карты с помощью программного обеспечения теперь доступна с Android 4.4. http://developer.android.com/guide/topics/connectivity/nfc/hce.html

2) Эмуляция карт с помощью программного обеспечения должна быть возможна, но не показана в текущих API Android. Вам придется углубиться в libnfc-nxp (и, возможно, ниже). Это может быть сложно. Эта функция предлагается на чипах Inside Secure, как показано в их справочной реализации OpenNFC. Вопрос только в том, требуется ли изменение прошивки CLF. Если нет, вы можете взломать его в программный образ.

Однако предостережения о том, что у вас не будет следующих функций: – безопасность (приложение для Android не так безопасно, как смарт-карта) – быстрое и предсказуемое время отклика (хорошо, зависит от того, как вы его кодируете) – эмуляция карты, когда телефон выключен

Я считаю, что SEOS основана на ISO14443-4, а не на Mifare. Это означает, что вам нужен безопасный элемент для его запуска.

1) Не слишком уверен в этом, я полагаю, что это все равно будет аппаратно (например, зависит от встроенного защищенного элемента, такого как SmartMX от NXP.

Другая альтернатива – начать разработку на безопасном элементе. Самый простой способ – получить некоторые тестовые SIM-карты с поддержкой SWP / HCI. Существует бесплатный набор разработчика под названием IzyNFC, который вы можете использовать для javacard, а также технические документы GSMA и AFSCM для стороннего приложения Android.

Смартфон как инструмент бесконтактной оплаты

Как это работает?

У меня есть карта «Билайн» — обычная дебетовая MasterCard, которую можно получить бесплатно в любом салоне «Билайн». Ежегодная абонентская плата за обслуживание моей карты не взимается. Карта работает как обычный MC по всему миру, только при совершении покупок возвращается от 1,5% потраченной суммы на счет в виде бонусов. Накопленные бонусы могут быть использованы при оплате услуг мобильной связи, моего проводного интернета, разных товаров в партнёрских магазинах.

Эмуляция карты на смартфоне

По сути, технология HCE дает возможность эмулировать в телефоне бесконтактные smart-карты. В нашем случае виртуальная карта является дополнительной функцией физического носителя – пластиковой карты «Билайн». Владелец такой карты, являющийся одновременно владельцем смартфона на ОС Android KitKat, оснащенного NFC-модулем, устанавливает на него мобильное приложение карты «Билайн». При входе в мобильное приложение для активации функции бесконтактных платежей достаточно ввести ЕАN карты и свой пароль. Приложение проверяет наличие/доступность HCE на устройстве, и если все в порядке, пользователю предлагается подключить функционал.
Если пользователь подтверждает свое согласие на подключение сервиса, ответив на полученную sms вводом одноразового пароля, то производится эмиссия виртуальной карты – в мобильное приложение из процессингового центра загружаются данные, необходимые для совершения NFC-платежей. Собственно, на этом всё – телефон стал инструментом бесконтактной оплаты.

Читайте также:  Как подключить мув к ps3

HCE (Host-based Card Emulation) – это технология, которая дает возможность писать софт, не требующий для исполнения выделенного криптопроцессора, чтобы обеспечить сеанс связи с платежным терминалом. Приложение исполняется на основном процессоре мобильного устройства, в окружении операционной системы телефона.

Что нужно для использования сервиса в России

Для того чтобы пользоваться сервисом бесконтактной оплаты, необходимо в любом офисе «Билайн» бесплатно получить предоплаченную карту «Билайн». Далее – скачать на Google Play мобильное приложение карты «Билайн» и активировать функцию бесконтактной оплаты. Аппаратные и программные ограничения: операционная система Android, версия не ниже 4.4, наличие в телефоне NFC-модуля.

Какие еще есть особенности?

Например, если у пользователя не один, а несколько телефонов на Android 4.4, то сервис бесконтактной оплаты, привязанный к его основной карте, может быть установлен на все устройства владельца этой карты. Это удобно, например, для использования сервиса семьей. При этом на одном телефоне может существовать только одна виртуальная карточка.

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

В чем профит?

Итак, что нам дает сервис бесконтактной оплаты с помощью мобильного телефона? Можно забыть дома кошелек, оставить в квартире паспорт или даже водительское удостоверение, но почти со 100% вероятностью смартфон будет при вас. А если на этом телефоне установлено приложение для бесконтактной оплаты, значит, вы всегда с «баблом».

NFC-транзакция – это мгновенная оплата. Даже для того чтобы расплатиться пластиковой картой, её для начала нужно извлечь из бумажника, а перед этим – бумажник из кармана или сумки. При расчете наличными добавляется момент пересчета, передачи денег, получения и проверки сдачи и т.д. Транзакции до 1000 рублей, совершенные при помощи NFC и HCE, даже не требуют ввода ПИН-кода, и расчет без всякого преувеличения происходит в один момент и в одно касание.

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

Кстати, интересная деталь – в приложении карты «Билайн» реализована технология единого ПИНа для нескольких карт, в данном случае – для основной карты «Билайн» и карты, эмулированной мобильным приложением. То есть и при расчете по пластиковой картой, и используя сервис бесконтактных платежей, вы вводите один и тот же пароль.

Сервис бесплатный, никаких комиссий за NFC-транзакции не взимаются.

Где можно платить?

Конечно, развитость инфраструктуры приема бесконтактных платежей зависит от конкретного региона, однако сегодня уже порядка 5% платежных терминалов уже оснащены функцией NFC. В масштабах всей России это, по экспертным оценкам, около 30 тысяч устройств. Лидеры рынка производства POS-терминалов – VenFone и Ingenico – уже не первый год оснащают свои устройства поддержкой NFC в качестве базовой стандартной функции.

При оплате следует ориентироваться на наличие на POS-терминале значка, обозначающего, что аппарат оснащен бесконтактным функционалом.

Если говорить о конкретных точках, то это сети, крупные магазины, фаст-фуды, заправки. McDonald’s, Starbucks, Subway, гипермаркеты «Ашан», О’КЕЙ, «Магнит», «Аэроэкспресс», крупные сети сотового ритиейла, магазины глобальных производителей косметики и парфюмерии, модные места проведения досуга.

Читайте также:  Когда появился первый айфон в мире

Безопасность

Наиболее очевидное на сегодняшний день тонкое место технологии HCE – безопасность. Данные, необходимые и достаточные для осуществления NFC-платежей, хранятся непосредственно в памяти смартфона. Однако для мобильного приложения карты «Билайн» используется комплекс мер, которые сводят к минимуму вероятность взлома. Мы делали внутренний конкурс на взлом системы, с очень хорошим вознаграждением, анализ кода.

Разберем некоторые аспекты информационной безопасности технологии HCE, реализованные для мобильного приложения карты «Билайн».

Операции по заблокированному телефону невозможны. В этом смысле HCE-решение защищено лучше, чем обычная пластиковая карта с бесконтактным интерфейсом – чтобы совершить платежную операцию злоумышленник должен разблокировать телефон. В случае обычной карты – достаточно получить саму карту. При использовании мобильного приложения карты «Билайн» невозможен, например, сценарий, когда в метро в плотном потоке людей с виртуальной карты незаметно списывают деньги, прикладывая к карману ридер.

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

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

При утере телефона порядок действий практически ничем не отличается от стандартных мероприятий, выполняемых при утере обычной банковской карты: звонок в контакт-центр, блокировка карты «Билайн» по EAN, получение в салоне связи новой карты. На новую карту будут перенесены все остатки денежных средств, бонусы и так далее. При этом, естественно, номер карты поменяется, а у злоумышленника будет на руках телефон, в котором будет эмулирована старая карта, операции по которой совершить уже невозможно, поскольку она заблокирована.
Кстати, следует обратить еще на один нюанс, связанный с безопасностью технологии NFC в целом. Существует представление, что уязвимым является сам сеанс передачи данных от смартфона к POS-терминалу. На самом деле каждая транзакция защищена уникальной криптограммой, без которой авторизация невозможна. Из тех данных, которые передаются по радиоканалу, практически невозможно извлечь никакой информации, которая помогла бы злоумышленникам похитить средства со счета, подписав другие транзакции.

Будет ли работать этот сервис на платформе iOS?

Apple пошли по пути phone-based и используют встроенный Secure Element, куда никто, кроме Apple, карточные ключи загрузить не может. Поэтому единственный реалистичный в настоящее время вариант – это интеграция с новой технологией Visa Token Service (генерация временных ключей для оплаты), на основе которой Apple Pay, собственно, и работает.

Прогнозы

Можно прогнозировать, что рынок NFC-платежей в России переходит из стадии становления в фазу активного роста. Растет число телефонов, поддерживающих технологию NFC, появляются интеграционные проекты, реализуемые совместно вендорами, платежными системами и ритейлерами.

В I полугодии 2014 г. в России было реализовано 1,2 млн. смартфонов, поддерживающих технологию NFC. Это на 21% больше, чем за аналогичный период прошлого года. NFC-смартфоны составили 14% от всех продаж смартфонов в стране. Понятно, что бурный рост может быть обусловлен только удобством применения бесконтактных технологий, а массовость сервису может придать мощный драйвер. Такой, например, как бесконтактная оплата проезда в общественном транспорте, прежде всего в метрополитене.

Если же говорить о емкости рынка NFC-платежей в России, то эксперты называют цифру порядка 15 млрд. рублей (оценка агентства J’son & Partners).

Ссылка на основную публикацию
Шум в радиаторах отопления как устранить
Отопительная система конструктивно очень сложна, а от ее функционирования зависит уровень комфорта всех жильцов дома. Когда монтажом отопления занимаются профессионалы,...
Что значит код ошибки 805а8011
Многие владельцы смартфонов с операционной системой Windows Phone не могут войти в учетную запись магазина Marketplace. На экране появляется код...
Что значит интегрированный процессор
Здравствуйте, уважаемые пользователи и любители компьютерного железа. Сегодня порассуждаем на тему, что такое интегрированная графика в процессоре, зачем она вообще...
Шутеры по локальной сети на андроид
Перемещайтесь по многочисленным картам игры и уничтожайте врагов с помощью различного оружия. v4.2 + Мод: много денег Великолепная аркада с...
Adblock detector