Очень полезная информация !: NFC: эмуляция банковской карты на смартфоне

Проверка поддержки NFC и HCECheck for NFC and HCE support

Для разработки приложений эмуляции карты на основе HCE для Windows 10 Mobile, необходимо будет получить настройки среды разработки.To develop an HCE-based card emulation app for Windows 10 Mobile, you will need to get your development environment setup.Получить настройкой, установив Visual Studio 2015 Microsoft, включая средства для разработчиков Windows и эмулятор Windows 10 Mobile с поддержкой NFC эмуляции.

При необходимости Если вы хотите протестировать с помощью реального устройства Windows 10 Mobile вместо включен эмулятор Windows 10 Mobile, необходимо также следующие элементы.Optionally, if you want to test with a real Windows 10 Mobile device instead of the included Windows 10 Mobile emulator, you will also need the following items.

  • Устройство Windows 10 Mobile с поддержкой NFC HCE.A Windows 10 Mobile device with NFC HCE support.В настоящее время приложения для NFC на основе HCE поддерживаются на телефонах Lumia 730, 830, 640 и 640 XL.Currently, the Lumia 730, 830, 640, and the 640 XL have the hardware to support NFC HCE apps.
  • Терминал устройства считывания, поддерживающий протоколы ISO/IEC 14443-4 и ISO/IEC 7816-4A reader terminal that supports protocols ISO/IEC 14443-4 and ISO/IEC 7816-4

https://www.youtube.com/watch?v=https:accounts.google.comServiceLogin

Windows 10 Mobile реализует это HCE служба, которая предоставляет следующие функциональные возможности.Windows 10 Mobile implements an HCE service that provides the following functionalities.

Пожалуйста, не нужно больше карт!

Сейчас каждый хочет всучить вам свою карту: магазины, фитнес-клубы, парковки, бизнес-центры, VIP-скидки-баллы-накопления. Предлагать человеку носить с собой еще одну карту просто унизительно. А учитывая, что карты стандарта EM-Marine (125kHz), которые популярны в системах контроля доступа на территории СНГ, имеют толщину в три раза больше обычных ISO 7810 — это втройне унизительно.Поэтому первое требование к нашей системе — никаких дополнительных карт.

Помимо физических размеров, карты EM-Marine технологически отсталые. Такую карту можно легко клонировать с расстояния полуметра прямо из кармана прохожего.

Все СКУД неудобные

Очень полезная информация !: NFC: эмуляция банковской карты на смартфоне

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

В некоторых случаях сложные СКУД необходимы: в крупных зданиях с множеством зон доступа, турникетами, охраной, временными пропусками.

В случаях, когда контролировать доступ нужно к одной или двум дверям, такие усложнения не оправданы. Даже содержание отдельного компьютера с программой под СКУД — перебор для нас.

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

Карта «Тройка» как идентификатор

Карта «Тройка» — пополняемая карта для оплаты проезда на всех видах общественного транспорта Москвы. Это наиболее выгодный и удобный способ оплаты общественного транспорта и некоторых городских услуг: планетарий, каток, зоопарки, Третьяковская галерея, парковка. Поэтому «Тройка» есть у каждого москвича, который регулярно пользуется общественным транспортом. Приобрести карту можно в кассах метрополитена за ≈1$.

Очень полезная информация !: NFC: эмуляция банковской карты на смартфоне

Технически карта выполнена на базе чипа Mifare Plus, работающего в режиме SL1 — режим эмуляции Mifare Classic 1K. На обратной стороне карты находится 10-значный номер, который используется для удаленного пополнения баланса карты. Этот номер удобно использовать в качестве идентификатора в СКУД.

Номер карты «Тройка» (не путать c UID чипа) хранится в защищенной памяти в блоке 32 со второго байта по младшие четыре бита седьмого байта. Для чтения этой области памяти необходим А-ключ от сектора 8. Эти ключи давно не являются секретом и легко находятся в интернете вместе с подробным описанием формата хранения данных. Так как мы не собираемся записывать никакие данные на карту, нам достаточно ключа А для чтения нужного сектора.

Таким образом, для занесения нового пропуска в базу данных достаточно визуально считать номер карты и сообщить его администратору. Это можно сделать даже удаленно.

В Санкт-Петербурге существует похожая карта «Подорожник». При необходимости её можно также использовать в качестве идентификатора, одновременно с картой «Тройка».

Создание и регистрация фоновой задачиCreate and register your background task

Вам необходимо создать фоновую задачу в своем приложении с HCE для обработки и ответа на объекты APDU, направленные системой.You need to create a background task in your HCE app for processing and responding to APDUs routed to it by the system.При первом запуске приложения передний план регистрирует фоновую задачу HCE, в которой реализован интерфейс IBackgroundTaskRegistration, как показано в следующем коде.

var taskBuilder = new BackgroundTaskBuilder();
taskBuilder.Name = bgTaskName;
taskBuilder.TaskEntryPoint = taskEntryPoint;
taskBuilder.SetTrigger(new SmartCardTrigger(SmartCardTriggerType.EmulatorHostApplicationActivated));
bgTask = taskBuilder.Register();

Обратите внимание, что для триггера задачи устанавливается значение SmartCardTriggerType.Notice that the task trigger is set to SmartCardTriggerType.EmulatorHostApplicationActivated.EmulatorHostApplicationActivated.Это означает, что при получении команды SELECT AID объекта APDU операционной системой, разрешаемой в ваше приложение, будет запущена ваша фоновая задача.This means that whenever a SELECT AID command APDU is received by the OS resolving to your app, your background task will be launched.

Первый прототип

Очень полезная информация !: NFC: эмуляция банковской карты на смартфоне

Было решено использовать в качестве идентификатора пользователя 10-значный номер, который будет формироваться либо из десяти последних цифр PAN-номера платежной карты, либо из номера карты «Тройка». Идентификатор должен передаваться контроллеру, который будет сверять его с хранящимися в базе данных номерами и решать, открывать дверь, или нет.

Всю работу по распознаванию карты должен выполнять считыватель, и на выходе отдавать 10-значный номер. В базе данных достаточно хранить только сами номера, без необходимости отмечать тип карты.

Контроллер БОРЕЙ

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

Часто контроллеры СКУД состоят из нескольких блоков управления и компьютера с базой данных. Мы принципиально не хотели держать отдельный компьютер и искали компактное решение в виде одного устройства, которым можно управлять через API для интеграции с Telegram-ботом.

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

Так мы нашли контроллер БОРЕЙ от компании ИТРИУМ.

Архитектура для эмуляции карты на основе SIM-карты и HCE

Плата контроллера БОРЕЙ в настенном корпусе

Устройство работает под управлением Linux на базе ARM-процессора.

https://www.youtube.com/watch?v=ytcopyrightru

Основные достоинства устройства, которые редко можно встретить у других контроллеров:

  • Полностью автономный — все функции выполняет одно устройство. Для управления не нужно дополнительных программ или отдельного компьютера. База данных хранится на SD-карте. При отключении интернета контроллер продолжит работать.
  • Web интерфейс и REST API — возможность управлять контроллером через браузер и интегрировать с Telegram-ботом через API. Позволяет управлять пропусками удаленно.
  • Подключение по Ethernet — устройство подключается в IP-сеть. Имеет встроенный коммутатор на 2 порта.
  • Идентификаторы произвольной длины до 64 бит — возможность интегрировать контроллер с нестандартными идентификаторами разной длины. Позволяет иметь гибридную систему с идентификаторами разной длины.

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

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

Если доступ запрещен, контроллер посылает сигнал индикации на считыватель, и тот горит красным цветом и пищит о том, что доступ не разрешен.

Снимок экрана со страницей параметров NFC

Контроллер подключается в сеть c помощью Ethernet-кабеля. Начальная настройка требует только задать IP-адрес устройства. Никакого программного обеспечения, помимо браузера, не требуется.

Учетные записи заводятся в меню «Бюро пропусков». Чтобы не вводить идентификатор карты вручную, его можно поднести к считывателю в момент создания учетной записи.

Создание нового пропуска в веб-интерфейсе контроллера БОРЕЙ

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

Экран блокировки и выключение экранаLock screen and screen off behavior

Windows 10 Mobile имеет параметры эмуляции карты на уровне устройств, которые задаются с помощью оператора мобильной связи или изготовителя устройства.Windows 10 Mobile has device-level card emulation settings, which can be set by the mobile operator or the manufacturer of the device.По умолчанию переключатель оплаты касанием отключен, а для параметра “политика включения на уровне устройства” устанавливается значение “Всегда”, если оператор мобильной связи или изготовитель оборудования не перезапишут эти значения.

Используем Apple Pay, Android Pay, Mastercard Paypass, Visa PayWave и карту Тройка в качестве пропуска на работу

Приложение может запросить значение EnablementPolicy на уровне устройства и предпринять действие для каждого случая в зависимости от требуемого поведения приложения в каждом состоянии.Your application can query the value of the EnablementPolicy at device level and take action for each case depending on the desired behavior of your app in each state.

Регистрация AID и другие обновления для приложений на основе SIM-картыAID registration and other updates for SIM based apps

Приложения эмуляции карты, использующие SIM-карту в качестве защищенного элемента, могут регистрироваться в службе Windows для декларирования AID, поддерживаемых на SIM-карте.Card emulation apps that use the SIM as the secure element can register with the Windows service to declare the AIDs supported on the SIM.

https://www.youtube.com/watch?v=ytdevru

Эта регистрация очень похожа на регистрацию приложения на основе HCE.This registration is very similar to an HCE-based app registration.Единственным различием является параметр SmartCardEmulationType, для которого необходимо задать значение UICC для приложений на основе SIM-карты.The only difference is the SmartCardEmulationType, which should be set to Uicc for SIM-based apps.

var appletIdGroup = new SmartCardAppletIdGroup(
                        "Example DisplayName",
                                new List{amp}lt;IBuffer{amp}gt; {AID_PPSE.AsBuffer()},
                                SmartCardEmulationCategory.Payment,
                                SmartCardEmulationType.Uicc);

Важные    поддержку предыдущих версий двоичных SMS отсекаемый отрезок в Windows Phone 8.1 удален и заменен новой более широкую поддержку SMS в Windows 10 Mobile, но любые устаревшие приложения Windows Phone 8.1, полагаясь на, необходимо обновить для использования нового API-интерфейсы Windows 10 Mobile SMS.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *