Лайфхак с транспортной картой: «программируем» смартфон на NFC метку |

Лайфхак с транспортной картой: «программируем» смартфон на NFC метку | NFC

Что такое эмуляция карты

Имеется совершенно конкретная технология HCE (Host Card Emulation), которая позволяет воспроизвести дубликат NFC-карты, то есть бесконтактной по методу соединения с внешним миром. Естественно, понадобится некое программное обеспечение, с его помощью и произойдет второе рождение вашего «пластика». О чем речь?

Сюда попадают банковские карты, для оплаты проезда в общественном транспорте, пропуска на работу и еще целый отряд необходимых «электронных ключей» для повседневной жизни.

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

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

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

Нужно заметить, что работает связка NFC Android с помощью аккаунта от Google, предварительно заведенного вами, в случае установленной другой операционной системы (на ум приходит только продукция компании Apple) на мобильном устройстве, сделать из него двойник вашего платежного инструмента получится средствами самого телефона.

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

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

Виды меток nfc

С самой технологией всё более менее понятно. Тогда зачем столько видов меток предлагается производителями? Почему одни стоят дешевле, а другие в 2-3 раза дороже? Давайте разберемся!

Стандартом ISO 14443A описывается 4 вида меток, ещё одна описывается стандартом ISO 18092:

ТипСтандартПамятьСкорость обменаЗаписьчтениеЗащита от коллизий
1ISO14443A96б-2кб106кб/сданет
2ISO14443A96б-2кб106кб/сдада
3ISO1809296б-2кб212кб/сдада
4ISO14443A2/4/8кбдо 424кб/сдада
5ISO14443Aдо 4кб106кб/сдада
  1. Тип 1 – ранняя разработка, слабо распространен из-за отсутствия защиты от коллизий.

Для справки: коллизии возникают при одновременной передаче данных двумя источниками.

  1. Тип 2 – уже поинтереснее, но всё еще не имеет шифрования.
  2. Тип 3 – интересен тем, что поддерживает шифрование данных, но сильно дороже.
  3. Тип 4 – имеет увеличенное количество памяти, что позволяет сохранить больше данных.

Фото 3Наиболее распространенным является тип 5 – Mifare Classic tag, компании NXP Semiconductors.

Он наиболее выгоден по балансу цена-качество.

Кроме отличий в технологии исполнения, метки имеют разные форму и размеры. Чаще всего они продаются в форме простых наклеек с тематическим рисунком.

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

В форме наклеек метку можно приклеить в любое удобное место:

  • книгу;
  • журнал;
  • крышку ноутбука;
  • wifi роутер;
  • торпеду авто;
  • мебель.

Метки в таком формате имеют защиту от влаги, а для улицы есть термостойкие метки с режимами -10oС 60oС.

Альтернативный формат – брелок в пластиковом корпусе. Этот вариант позволяет носить метку в кармане, не беспокоясь за ее целостность.

Зачем нужны nfc метки ?

Когда в 2004 году Philips, Sony и Nokia создали свой NFC forum, данная технология была известна разве что в среде увлеченных технарей. Три кита электронной индустрии ставили своей целью исследование, продвижение, ну и конечно, коммерческую прибыль от внедрения новой технологии бесконтактной передачи данных. Но большого прогресса они не достигли – все их достижения казались не более, чем игрушкой.

Для справки: NFC (от англ. Near Field Communication) – технология передачи данных на очень близком расстоянии, порядка 5-10 см. Является разновидностью технологии RFID – радиочастотной идентификации.

В 2021 к ним присоединяется Google и вот тогда начинается настоящий расцвет технологии, ведь NFC чипы стали поставляться с большинством смартфонов под Android. Пользователи сразу же оценили удобство и безопасность Google Pay – не нужно вводить всем надоевшие пароли; считывание карт происходило быстро и без ошибок. А самое главное пропала необходимость вообще доставать банковскую карту – все данные хранятся в памяти смартфона.

Но это было только начало, ведь новая технология позволяет обмениваться генерируемыми на лету данными, в отличие от RFID, где данные прошиваются один раз и навсегда.

“NFC – это просто приветственное рукопожатие”, – говорит Рэй Хартьен из компании Sony – “Потоковая передача данных идет уже через Bluetooth”. А NFC технологии позволяют обойтись без необходимой проверки безопасности соединения. Сама технология полностью безопасна для человека, так как использует безопасную частоту 13.56 МГц. А из-за небольшой дальности действия, уровень магнитного излучения очень мал.

Как интегрировать пропуск на работу в телефон

Для подключения пропуска к смартфону есть один вариант – взять чип из карточки пропуска и вставить его в смартфон. Так, телефон с NFC будет возможно использовать в качестве пропуска в систему – со всеми данными работника.

Встроенный в смартфон NFC модуль работает с другой частотой – 13.56 МГц. Это говорит о том, что придётся выбирать между бесконтактной оплатой, возможностью расплачиваться банковскими картами или пропуском. Если заменить чипы – NFC будет доступен только в качестве пропускной карточки на место работы, учёбы.

После принятия решения о замене чипа, нужно действовать. Шаги для интеграции пропуска:

  1. Чип вынимается из специальной карточки. Для этого понадобится ацетон – карточка помещается в ёмкость, наполненную им. Накрыть пластиком, подождать 4 часа, пока карта не потеряет свою форму. Снять пластик, изъять катушку и микрочип;
  2. Изъятую катушку залепить с двух сторон скотчем или клейкой лентой, чтобы не повредить провод;
  3. Прикрепить чип в удобное место – под аккумулятор или на заднюю крышку;
  4. Если чип встраивался внутрь – собрать смартфон, проверить чип на дееспособность.

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

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

Как использовать?

Пора применить полученные знания на практике! Ниже вы найдете несколько идей, как можно применить эту современную технологию.

  1. Поделится своими контактами – например так: прикрепить метку на лобовое стекло, теперь, если машина мешает выезду, можно отправить смс или позвонить.
  2. Цифровая визитка своими руками – к обычной визитке клеим нашу метку, теперь наши деловые партнеры могут перенести наш контакт в записную книжку телефона одним касанием.
  3. Пароль от домашнего Wi-Fi. Клеим метку на роутер и записываем в него пароль с помощью приложения InstaWifi. Теперь ваши гости смогут подключится к вашему Wifi роутеру просто прикоснувшись к метке.
  4. Запуск синхронизации смартфона с домашним компьютером. Метку можно приклеить на ноутбук или системный блок и прописать в него запуск приложения для синхронизации данных.
  5. Передать адрес встречи в Гугл Картах – нет нужды записывать, переносить текст в смс, просто создаем место в Гугл Картах у себя на телефоне и записываем на специальную метку в офисе. Каждый сотрудник считывает ее в удобное для себя время.
  6. Включение точки доступа. Клеим рядом с ноутбуком метку, далее устанавливаем приложение Trigger. Добавим новое задание, в качестве триггера выбираем NFC, выбор ограничений оставляем по умолчанию, в качестве действия выбираем “Беспроводные и локальные сети -> Wifi-зона”,а на последнем экране подносим к NFC-метке. В результате, если вы выходите с ноутбуком за пределы работы вашего Wifi роутера, то прикоснитесь к метке и ваш смартфон переключится в режим точки доступа, а ноутбук продолжит получать доступ к интернету.
  7. Включение ночного режима. TagWriter настраиваем на включение бесшумного режима. Теперь, как только вы поднесёте смартфон к этой метке, звуки уведомлений отключатся и ничто не потревожит ваш сон. А ещё одну метку сделайте для отключения бесшумного режима, чтобы утром ваш смартфон вернулся в исходное состояние.
  8. Автоматизируйте свой авто. Используйте метку в автомобиле для включения Bluetooth, 3G, запуска плеера или GPS навигатора. Теперь вы
  9. На рынке постепенно появляются устройства, поддерживающие NFC, — стереосистемы, телевизоры, которые позволяют создавать пару с телефоном или планшетом для удалённого управления.
  10. В сфере управления материально-техническими ресурсами можно использовать NDEF записи для хранения информации о месте отправления товаров, об их прохождении различных промежуточных пунктов и тому подобном.
  11. Управление освещением. Производитель чипов NXP объединился со специалистами по созданию умного дома EnOcean. На выставке CES 2021 они показали продукт, который использует NFC для настройки и добавления элементов освещения в домашнюю сеть.
  12. Замки, использующие NFC-карты вместо ключа, довольно часто встречаются на Западе, но если в вашем офисе есть электронные пропуска, то можно записать информацию с них в Google Pay и пользоваться смартфоном. Цена таких замков в магазинах не превышает 200 долларов, а комбинированные замки и того дешевле. Метки можно записывать в телефон, в специальное NFC-кольцо, в брелок – в общем, тиражировать для кого надо.
  13. В домашней библиотеке. Создать подробное описание каждой книги, а на корешок прикрепить аккуратную метку NFC. Теперь можно получить информацию о книге не вынимая ее из полки и не листая описание.
Проблемы NFC:  Как оплатить жку без комиссии

Как считать данные вашей карты любым смартфоном

Мы привыкли использовать телефон с NFC как банковскую карту. А можно ли используя эту технологию прочитать данные физической карточки? Оказывается, можно. И вот вам бесплатное приложение для Андроид, которое поможет вам это сделать.

alt

Приложение «Считыватель банковских карт» можно скачать по этой ссылке из официального магазина Google Play. Работать программа будет только на телефонах с NFC.

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

alt

Отобразится базовая информация о карточке следующего вида.

alt

Чтобы увидеть номер целиком, нажмите на изображение карты на экране и введите 4 последовательные цифры из номера. Например, четыре последних.

alt

Теперь карточка показывается целиком.

alt

Я замазал цифры, но они отображаются корректно — проверено. Ниже виден срок действия, тоже правильно.

Также вы можете посмотреть последние транзакции, которые были проведены с авторизацией этой картой.

alt

# # #

Резонный вопрос: а не сольет ли эта программа ваш номер карты в сеть? У приложения нет доступа в интернет, так как отсутствует соответствующее разрешение. Потому ничего и никуда отправить оно не способно.

alt

В чем практический смысл такой программы? Вы и сами способны прочитать номер карточки. Разве что в вашем распоряжении оказалась половинка карты с чипом.

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

Еще один отличный способ защитить карты — использовать специальный кошелек или чехол с сеткой Фарадея внутри. Данная сетка блокирует все сигналы, включая NFC/RFID, Wi-Fi, сотовые и радио. Так что злоумышленники могут бесконечно долго и безуспешно пытаться считать данных ваших карт. Стоят такие чехлы не сильно дорого, а польза будет внушительной, если вы часто бываете в людных местах.

Копирование ключа от домофона на смартфон. возможно ли?

В общем дают мне листочек с текстом, весь день пытаюсь что-то нашаманить, вроде получилось норм, скидываю макет, и с чистой совестью иду домой. На следующий день генеральный был в ярости. Плакаты развезли по точкам, повесили. Вот только за место слова «Фейерверки» огромными буквами было написано «Фервеки». То ли у меня на клавиатуре буквы запали, то ли я наебался было непонятно.
Ну и вишенкой на торте было то, что генеральный начал звонить и разъебывать рекламное агентство:
-Вы охренели? Вы чего нам напечатали?
-Мы напечатали, то что прислал ваш дизайнер.
-Какой нахуй наш дизайнер? Мы вам полностью работу оплатили!!!
Тут то все и вскрылось)

Метим территорию

Итак, наш план действий: научить смарфтон реагировать определенным образом на определенную же метку NFC. У каждой метки есть идентификатор. Гаджет должен опознать его и выполнить «запрограммированные» действия. Чтобы привязать действия к ID метки нам понадобится одно из подходящих приложений — например, NFC ReTag Free.

ШАГ 1. Качаем из магазина, запускаем. Подносим нашу метку — в данном случае транспортную карту. Приложение опознает ее и сообщает нам идентификатор.

Лайфхак с транспортной картой: "программируем" смартфон на NFC меткуШАГ 2. Даем метке более понятное обозначение. Жмем на зеленую кнопку «Действия» и видим список действий, которые можем привязать к этой метке.

Тут много всего интересного — запуск приложений, включение Wi-Fi, изменение громкости сигнала, звонок на определенный номер…

Лайфхак с транспортной картой: "программируем" смартфон на NFC меткуШАГ 3. Выбираем для примера запуск Яндекс.Навигатора.Лайфхак с транспортной картой: "программируем" смартфон на NFC меткуШАГ 3. Выбираем для примера запуск Яндекс.Навигатора.Лайфхак с транспортной картой: «программируем» смартфон на NFC метку |ШАГ 4. Ждем кнопку ОК — собственно, все готово. Проверяем результат. Подносим разблокированный смартфон к транспортной карте, и вуаля: навигатор запускается автоматически. Мы взяли самую «доступную» метку NFC, но можно купить и более практичную, в форме наклейки. Такую можно наклеить, например, на держатель для смартфона в автомобиле — установите в него гаджет, и навигатор загрузится автоматически.

Обмен данными через nfc

С активированным NFC Вы уже используете его для передачи данных. Для успешного обмена данными обратите внимание на следующее:

  • На передающих и принимающих устройствах должны быть активированы NFC и Android Beam.
  • Ни одно из устройств не должно находиться в спящем режиме или быть заблокировано.
  • Вы получите как звуковую, так и тактильную обратную связь, когда два устройства обнаружат друг друга.
  • Не разделяйте Ваши устройства, пока не начнется передача.
  • Вы услышите звуковой отклик, когда файл или контент будут успешно переданы.

Независимо от того, каким контентом или данными Вы хотите поделиться через NFC (например, фотографиями, контактной информацией, веб-страницами, видео, приложениями и т. д.), независимо от того, отправляете ли Вы сигнал на планшет или на телефон с телефона или с планшета — общий способ передачи контента остается прежним:

  • Убедитесь, что на обоих устройствах включен NFC.
  • Откройте контент, которым хотите поделиться.
  • Приложите оба устройства задними частями друг к другу.
  • Дождитесь звукового и тактильного подтверждения того, что оба устройства обнаружили друг друга.
  • Обратите внимание, что экран отправителя превращается в миниатюру, а вверху отображается надпись «Коснитесь, чтобы передать».
  • Коснитесь экрана отправителя, чтобы начать передачу. Когда начнется передача, Вы услышите звук.
  • Когда передача завершится, Вы услышите звуковое подтверждение. Вы также получите уведомление о том, что передача завершена, или соответствующее приложение-обработчик запустит и откроет переданный контент.

Обходные пути

Первое, что приходит в голову — а можно ли добавить в info.plist не AID платежного апплета, а AID Card Manager’а (Card Manager — это группа сервисов внутри операционной системы чипа, управляющих картой, которые отвечают за администрирование и безопасность), чтобы потом вручную послать ему команду SELECT с AID нужного апплета?

Здесь мы споткнулись о первый подводный камень — Core NFC не позволяет отправлять команду SELECT, содержащую AID, который не прописан в info.plist.

Хорошо, добавили A0000000041010, но и тут неудача — Core NFC не позволяет отправлять команду SELECT, содержащую платежный AID, вне зависимости от того, есть он в info.plist или нет.

Разберемся, как именно работает ограничение по идентификаторам.

В info.plist мы указали следующие AID’ы:

1. A000000001510000	- GlobalPlatform Card Manager AID
2. 325041592E5359532E444446303101 - Proximity Payment System Environment (PPSE)
3. A0000000041010	- Mastercard Credit/Debit (Global)
4. A00000000401	- Mastercard PayPass
5. A00000000410101213	- Mastercard Credit
6. A00000000410101215	- Mastercard Credit
7. A00000000410101214	- Придуманный платежный AID
8. A00000000410101216	- Придуманный платежный AID
9. A0000000041010121F	- Придуманный платежный AID
10. A0000000041010BB5445535401 - Придуманный платежный Long AID
11. A0000000041010BB5445535405 - Придуманный платежный Long AID
12. A000000004101FBB5445535401 - Придуманный не платежный AID
13. A000000004101F1213	- Придуманный не платежный AID
14. A00000000F1010	- Придуманный не платежный AID
15. A0000000040F - Придуманный не платежный AID

Мы установили 14 платежных апплетов с разными AID (пп. 2-11 — платежные AID-ы), и попробовали отправить Card Manager команды SELECT с каждым из этих AID.

Проблемы NFC:  ООО НФЦ, Краснодар

Ответили номера 12-15.  

Получается, что ограничение накладывается именно на некий префикс AID, наличие которого и определяет, платежный это идентификатор или нет.

Жаль, но этот способ отпадает.

Второй способ персонализации, предусмотренный GlobalPlatform, это команда INSTALL [for personalization].

Она отправляется в Card Manager и содержит AID апплета, который нужно персонализировать.

После этого можно отправлять команды STORE DATA в Card Manager, а он будет пересылать их в целевое приложение.

Но есть одно ограничение. Для того, чтобы апплет поддерживал такой способ персонализации, он должен реализовывать интерфейс org.globalplatform.Application.

Card Manager, на команду INSTALL [for personalization] с Mastercard Credit/Debit (Global) AID, который был присвоен апплету M/Chip Advance от NXP, отвечал ошибкой «6985» (Conditions of use not satisfied),

а значит надо проверить, реализует ли он интерфейс Application.

Для этого мы написали простое приложение-пустышку, реализующее этот интерфейс. Как и ожидалось, на INSTALL [for personalization] оно ответило «9000».

Но когда Application был убран из интерфейсов, реализуемых приложением, оно стало отвечать на эту команду «6985», как и в случае с апплетом M/Chip Advance.

Следовательно, проблема именно в том, что приложение NXP не реализует необходимый для такого способа персонализации интерфейс. Этот способ тоже отпадает.

Персонализация апплетов

На самом деле, персонализация апплета — очень простая штука; всё, что требуется, это загрузить в него необходимые платежные данные. Для этого нужно выбрать апплет командой SELECT по его AID, установить защищенное соединение и отправить выбранному апплету команды STORE DATA с данными внутри.

Теперь вернемся к списку AID’ов в файле info.plist — зачем он нужен, и как конкретно Core NFC выбирает, с каким апплетом взаимодействовать?

Выглядит это примерно так:

  1. Программа идет по списку сверху вниз;
  2. Для каждого AID она формирует и отправляет команду SELECT;
  3. AID первого апплета, ответившего «9000» (статус успешного ответа, здесь список всех возможных ответов) записывается в поле initialSelectedAID объекта типа NFCISO7816Tag, который кладется в массив обнаруженных чипов
@available(iOS 13.0, *)
public protocol NFCISO7816Tag : NFCNDEFTag, __NFCTag {
   /**
    * @property initialSelectedAID The Hex string of the application identifier (DF name) selected by the reader when the tag is discovered.
    *                              This will match one of the entries in the «com.apple.developer.nfc.readersession.iso7816.select-identifiers»
    *                              in the Info.plist.
    */
   @available(iOS 13.0, *)
   var initialSelectedAID: String { get }

Дальше из массива можно выбрать любой такой объект, и с помощью метода

отправлять

выбранному апплету.

А теперь поговорим об этом ограничении:

Core NFC doesn't support payment-related Application IDs.

То есть

не поддерживает платежные AID’ы, а именно боевые, с которыми работают платежные терминалы.

Конечно, платежный AID в список info.plist добавить можно, вот только Core NFC его проигнорирует и не будет отправлять для него SELECT (кстати, здесь список всех использующихся AID’ов). Apple таким образом защищают свою технологию Apple Pay, закрывая сторонним разработчикам доступ к любым платежным функциям iPhone (и всему, что с этим связано).

Платформа iot

На данный момент мы с командой работаем над запуском платформы интернета вещей, которая сможет дополнить и расширить существующий опыт использования сервиса Pay и внедрить оплату (и другие сервисы идентификации) в те вещи, которые мы обычно носим с собой — так называемые носимые устройства.

Интернет вещей — это концепция привычных физических предметов, оснащенных технологиями для взаимодействия с внешней средой или друг с другом. 

В этой концепции привычные сценарии использования вещей перестраиваются благодаря автоматизации.

Пример носимых устройств — умные часы, фитнес-браслеты, кольца, брелоки.

Если раньше человек носил кольцо из-за красоты или символизма, то теперь, в концепции интернета вещей, кольцо выполняет функцию платежного инструмента, пропуска СКУД, пульта управления другими умными устройствами и т.д. Таким образом, для привычной вещи появляются новые удобные сценарии использования.

Умные вещи сейчас — мировой тренд. Об этом свидетельствуют собранные различными мировыми агентствами статистические данные (см. ссылки в конце статьи). 

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

Для начала я кратко и простыми словами опишу технологии, на которых базируется наша платформа. Если интересно почитать про эти технологии подробнее — в конце статьи будут ссылки. 

  1. Элемент безопасности, или Secure Element — это полноценный компьютер, выполненный в цельном кристалле кремния размером около 5-20 квадратных миллиметров. Он имеет свою операционную систему, систему ввода-вывода, центральный процессор, несколько крипто-процессоров для реализации криптографических операций, оперативную и постоянную память. Элементы безопасности используют при производстве банковских карт, SIM-карт, а также встраивают в смартфоны и другие устройства. Элемент безопасности практически невозможно взломать и получить оттуда данные (отсюда и название).

    Как и на любой компьютер, в элемент безопасности можно установить приложения — так называемые апплеты. Мы в нашей статье будем работать с платежным апплетом, благодаря установке и персонализации которого носимое устройство с элементом безопасности и имеет сервис бесконтактной оплаты.

  2. Стандарт GlobalPlatform Card Specification — он описывает работу операционной системы элемента безопасности в целом, а также сценарии и протоколы безопасного управления содержимым элемента безопасности.
  3. TSM  (Trusted Service Manager) — сервис для управления содержимым в элементе безопасности. Он управляет жизненным циклом апплетов и их персонализацией под конкретного пользователя на конкретном элементе безопасности.
  4. Для превращения носимого устройства в платежный инструмент платежными системами применяется технология токенизации по стандарту EMV — это процесс получения от платежной системы токена (суррогатного номера), связанного с номером реальной банковской карты. Для каждой банковской карты, в связке с форм-фактором устройства оплаты, токен всегда уникален, что обеспечивает дополнительную безопасность при оплате токеном.


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

Первый сценарий — это взаимодействие с активными носимыми устройствами. Активными называют носимые устройства, в которых есть свой элемент питания (например, аккумулятор). Как правило, внутри вещи работает своя операционная система и имеется модуль BLE для связи со смартфоном. Производитель устройства предоставляет SDK и ключи доступа для взаимодействия с элементом безопасности.

Именно так работают все умные часы и фитнес-браслеты с функцией бесконтактной оплаты.Тут всё просто и понятно — берем и делаем. 

Второй сценарий интереснее — это взаимодействие с пассивными носимыми устройствами. Пассивными называют носимые устройства, в которых нет своего элемента питания. Эти устройства питаются от внешнего магнитного поля, в которое их необходимо поместить.

Проблема заключается в том, что нужно загрузить в пассивное носимое устройство свою банковскую карту из приложения на смартфоне.

Этот сценарий мы (условно) разбиваем уже по типу смартфонов:

  1. Любые смартфоны без NFC
  2. Смартфон Android c NFC
  3. iPhone c NFC

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

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

Для второго типа (Android c NFC) реализация понятна. Смартфон в этом случае можно использовать в качестве терминала, запитать пассивное устройство от NFC-антенны и загрузить в него токен банковской карты.

В нашем исследовании я подробно распишу, как мы прорабатывали третий тип смартфонов (iPhone с NFC). В качестве носимых устройств мы использовали брелки от компании ISBC — партнера, с которым мы запускаем пилот.

Плюсы и минусы технологии

*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,svg{position:absolute;width:100%;top:0;bottom:0;margin:auto}svg{left:calc(50% — 34px)}Лайфхак с транспортной картой: «программируем» смартфон на NFC метку |» frameborder=»0″ allow=»accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture» allowfullscreen>

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

Плюсы

Минусы

  • Экономия времени и места — кошелек, данные и ключи находятся в одном смартфоне, который всегда под рукой
  • Маленький радиус действия
  • Практически моментальное сопряжение устройств
  • Низкая скорость обмена данными
  • Высокая безопасность платежей
  • При краже устройства можно лишиться и средств в мобильном банке
  • Огромное количество сценариев использования меток
 
  • Низкое энергопотребление, а в случаях с метками — и вовсе отсутствие собственного питания
 
 

Технология NFC — яркий пример того, как современные идеи могут облегчить каждодневную рутину. Больше не нужно беспокоиться о том, что вы забыли дома кошелек с деньгами, пропуск, бонусную карту или проездной билет — они всегда под рукой и находятся в вашем смартфоне. А задав нужные команды, с помощью NFC можно автоматизировать бытовые и рабочие процессы.

Проблемы NFC:  FAQ

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

Принцип работы

Если кратко, то, как и в пассивных RFID-чипах, NFC использует:

  • антенну;
  • блок безопасности.

Антенна передает информацию между меткой и считывающим устройством.

Также при помощи антенны происходит питание микрочипов внутри NFC-метки.

Для справки: Используется принцип электромагнитной индукции – при считывании информации в специальной антенне смартфона генерируется магнитное поле. Такое же поле возникает в антенне самой метки, а от него возникает электрический ток, силы которого достаточно для питания микрочипов.

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

Фото 2Блок безопасности может быть, как физическим устройством – конкретными чипами на NFC-метке, так и эмулироваться программными средствами, как в случае с PDA – смартфонами, КПК, смарт часами и другими портативными устройствами.

В целом устройство напоминает микрокомпьютер – тут даже есть свой процессор и оперативная память.

Благодаря своей конструкции NFC-метка не требует питания, стоит дешево и позволяет перепрограммировать себя под разные задачи. Но есть и ограничение – для организации обмена данными нужен хотя бы один активный контроллер NFC.

Программирование nfc-меток

Теперь когда мы обзавелись метками и расклеили их по дому, пора добавить немного магии – запрограммировать NFC метки на какие-либо действия. Для этого нам не понадобится специальный программатор или тестовый стенд.

Вся операция по прошивке метки выполняется с помощью своего смартфона и небольшой программы.

Начнем:

  1. Фото 4Установите из Play Market программу TagWriter – официальное приложение от компании-производителя NXP. Она полностью бесплатна.
  2. Выбираем пункт: Create, write and store.
  3. Дальше пункт: New.
  4. Теперь выбираем тип записи. Это может быть простой текст, телефонный номер, ссылка в интернет, запуск приложения или данные для Bluetooth-соединения. Есть и другие, но перечисленные выше самые употребляемые. Для пробы нам подойдет просто текст.
  5. Набираем любой текст.
  6. Нажимаем Next.
  7. Теперь мы попали на экран дополнительных опций. Тут можно выбрать приложение, для запуска после прочтения этой метки; установить защиту на перезапись этой метки другим устройством. Также здесь будет информация о моделях чипа, которые смогут вместить наше сообщение.
  8. Нажимаем Next.
  9. Теперь поднесем смартфон к метке.
  10. Поздравления! Вы только, что прошили свою первую NFC-метку.

Сценарии применения nfc-меток

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

  • Передача доступа к интернету. Если на компьютере или ноутбуке часто заканчивается трафик, то пользоваться NFC наклейкой полезно для быстрой организации режима «модема» на смартфоне или планшете. Уже через секунду с ПК появится шанс подключиться к подготовленной на основе мобильного трафика Wi-Fi сети.
  • Активация специальных режимов работы. Способы применения NFC-меток в повседневной жизни за пределами стандартной оплаты, во многом зависит от фантазии. Прикрепленная наклейка на спинке кровати может стать сигналом для активации ночного режима, бесшумного или же – расслабляющего (фоновая музыка, любимая книга). А еще схожим образом может включаться будильник и полностью отключаться push-уведомления.
  • Таймеры, секундомеры и часы. Спортивные тренировки, кулинарные эксперименты, ежедневные гигиенические процедуры – следить за временем в некоторых ситуациях особенно важно. Программирование NFC-меток на кухне, в ванной комнате или в импровизированном домашнем спортивном зале поможет автоматизировать процессы наблюдения за потраченными часами и минутами.
  • Запуск медиаплееров. Беспроводные колонки, музыкальные плееры, Bluetooth-наушники – заранее расставленные метки помогают быстрее разбираться с сопряжением мобильной техники и выбранной акустики, а заодно – еще и включать подходящую радиостанцию или альбом для воспроизведения.
  • Визитки с полезной информацией. Поделиться контактом через NFC Tag проще, чем через тот же QR-код. Номера телефонов, имена и прочая статистика сразу заносится в адресную книгу и «распаковывается» для последующего использования.

Установление соединения

Именно здесь речь пойдет о фичах фреймворка

, добавленных в iOS 13.


Кстати, в iOS 14 никаких существенных изменений относительно предмета статьи не случилось, поэтому все описанное актуально и для нее.

Итак, в тринадцатой версии яблочной ОС стало возможным не только считывать данные с NFC меток, как это было в iOS 12 (но не раньше iOS 11, до нее взаимодействие по NFC было возможно только в рамках Apple Pay), но и записывать их, а также общаться  на языке APDU-команд с любым чипом, который соответствует одному из следующих стандартов:

Для этого в

были добавлены два новых класса:

Первый используется для взаимодействия с NDEF метками, а второй — для всего остального, соответственно.

В нашем случае это чип, поддерживающий спецификацию GlobalPlatform Card Specification 2.2.1 и стандарт ISO/IEC 7816, значит, будем использовать второй класс.

В документации написано, что нужно сделать (помимо написания кода, конечно), чтобы начать общение с чипом по ISO 7816:

Но ниже есть вот такое интересное ограничение:

ImportantCore NFC doesn’t support payment-related Application IDs.Как раз его мы и хотим «пощупать», узнав, что конкретно оно означает.

Добавляем строку, например «Allow NFC connection» для ключа NFCReaderUsageDescription в файле info.plist. С любым другим значением этого ключа тоже работает. 

[Здесь в колонке слева не сам ключ, а его описание, XCode прячет формальные названия]

Дальше, если мы хотим взаимодействовать с чипом, как с устройством стандарта ISO/IEC 7816, то в значении ключа com.apple.developer.nfc.readersession.iso7816.select-identifiers укажем список ID всех апплетов (Application Identifier или AID), с которым будет взаимодействовать приложение.

Здесь стоит пояснить, что эти идентификаторы — не просто случайный набор символов.


Это шестнадцатеричные (hex) строки, содержащие информацию о приложении, которому они присвоены.

AID’ы могут быть длиной от 5 до 16 байт (два символа в строке = один байт). Они состоят из двух частей, первая определяет провайдера приложения (для Mastercard это «A000000004»), вторая говорит, какой именно это продукт данного провайдера (для продукта с именем «Mastercard» это «1010», а, например, для Maestro это «3060»).

Кроме того, иногда в AID требуется поместить дополнительную информацию, например, если на чипе находятся два одинаковых приложения от одного провайдера, но для разных банков. Для этого существует поддержка Long AID (или Extended AID). До тех пор, пока длина AID не превышает 16 байт, в него можно записывать все, что угодно. Например, мы взяли Mastercard AID и в конце дописали к нему «TEST», итог: «A0000000041010BB5445535401».

Единственный AID, который выбивается из списка — «325041592E5359532E444446303101». На самом деле это обычная (только в hex-формате), что называется, plain-text строка «2PAY.SYS.DDF01». Это AID PPSE, который платежным апплетом, как таковым, не является. Он лишь содержит данные окружения, необходимые платежным приложениям.

Эмуляция пропусков и других бск через nfc

1. Далеко не все пропуска работают на 13.56 МГц и подпадают под стандарты NFC. Даже хуже, подавляющее большинство сейчас — низкочастотные (125 килогерц и т.д.). ключевые слова: HID proxcard clamshell.

Да, именно БСК это 13.56 МГц и ISO-14443, но там проприетарная реализация от NXP (Mifare), и взломаны только старые поколения карт Mifare.

Соответственно, если хотите эмулировать БСК — то Вам надо стать партнером самого Метрополитена и интегрироваться в их систему. Иначе — никак.

Есть, правда, тупые read-only Mifare Ultralight карты в Москве, в принципе, их можно эмулировать с телефона, но их все равно надо сначала купить удобным образом.

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

3. Раработчики и интеграторы об этом уже подумали. Да, смартфон с NFC может эмулировать несколько бесконтактных банковских карт, но есть одна проблема — как NFC SE SIM, так и встроенные в железо NFC SE требуют секретных ключей для установления защищенного канала с SE. В случае с NFC SE SIM — это сложная процедура, договора и геморрой с ОПСОСом, чья SIM, а в случае со встроенным NFC SE — то же самое, но уже c производителем телефона. Понятно, что MasterCard может сделать это для работы своего PayPass Wallet на популярных марках Android-смартфонов, но частное лицо или небольшая фирма — едва ли: как минимум, слишком долго и дорого.

Оцените статью
NFC в смартфонах