Бесконтакт: что такое NFC и как программисту с ним работать

Tnf_well_known с rtd_text (mime-тип с записью простого текста)

Создать NDEF-запись TNF_WELL_KNOWN можно следующим образом:

Kotlin

fun createTextRecord(payload: String, locale: Locale, encodeInUtf8: Boolean): NdefRecord {
    val langBytes = locale.language.toByteArray(Charset.forName("US-ASCII"))
    val utfEncoding = if (encodeInUtf8) Charset.forName("UTF-8") else Charset.forName("UTF-16")
    val textBytes = payload.toByteArray(utfEncoding)
    val utfBit: Int = if (encodeInUtf8) 0 else 1 shl 7
    val status = (utfBit   langBytes.size).toChar()
    val data = ByteArray(1   langBytes.size   textBytes.size)
    data[0] = status.toByte()
    System.arraycopy(langBytes, 0, data, 1, langBytes.size)
    System.arraycopy(textBytes, 0, data, 1   langBytes.size, textBytes.size)
    return NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, ByteArray(0), data)
}

Java

public NdefRecord createTextRecord(String payload, Locale locale, boolean encodeInUtf8) {
    byte[] langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII"));
    Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16");
    byte[] textBytes = payload.getBytes(utfEncoding);
    int utfBit = encodeInUtf8 ? 0 : (1 << 7);
    char status = (char) (utfBit   langBytes.length);
    byte[] data = new byte[1   langBytes.length   textBytes.length];
    data[0] = (byte) status;
    System.arraycopy(langBytes, 0, data, 1, langBytes.length);
    System.arraycopy(textBytes, 0, data, 1   langBytes.length, textBytes.length);
    NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN,
    NdefRecord.RTD_TEXT, new byte[0], data);
    return record;
}

Intent-фильтр для такой NDEF-записи будет таким:

Банковские карты

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

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

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

Что же происходит в случае эмулирования карты мобильным телефоном. Чтобы не записывать на чип SE в мобильном устройстве платежные приложения всех банковских карт, которыми пользуется владелец устройства, которые к тому же надо персонализировать, т.е. передать данные о выпущенных картах и хранить их в защищенном виде, была сформулирована роль TSM (Trusted Service Manager), который объединяет с одной стороны поставщиков услуг (Service Provider TSM), а с другой стороны чипы Secure Element (Secure Element Issuer TSM).

TSM — Trusted Service Manager — уникальный посредник, который владеет ключами. Это аппаратно-программный комплекс, предоставляющий технологические отношения между операторами связи и поставщиками услуг.
Бесконтакт: что такое NFC и как программисту с ним работать
Рис. 16. Trusted Service Manager или TSM – доверенный поставщик услуг. Выполняет защищенную загрузку и менеджмент контента защищенного элемента (SE) для транспортных приложений, магазинов, мобильных операторов, банковских приложений, конфиденциальные данные держателя карты.Ключевые услуги доверенной третьей стороны включают защищенную загрузку и менеджмент контента элемента безопасности, выполняемый при взаимодействии с провайдерами мобильных сервисов. Это могут быть банки, транспортные компании, поставщики и агрегаторы услуг. Удаленное управление приложениями, обычно выполняемое с использованием технологий беспроводной сотовой связи (over-the-air, OTA), включает установку и персонализацию приложений в элементе безопасности мобильного телефона, а также дальнейшее обслуживание установленных приложений на всем протяжении их жизненного цикла, равно как и сервисную поддержку. Подробнее о TSM здесь. Однако эта технология платежей все равно требовала присутствия физического защищенного элемента на мобильном устройстве. Что давало определенные ограничения, например, если производитель мобильного устройства не включил SE в свою платформу, в этом случае, требовалось менять SIM-карту на карту с поддержкой SE у мобильного оператора.

В 2022 году Дугом Йегером и Тедом Фифельски, основателями SimplyTapp, Inc. был придуман термин «эмуляция хост-карты» (Host Card Emulation ), который описывал возможность открытия канала связи между терминалом бесконтактных платежей и удаленным размещенным защищенным элементом, содержащим финансовые данные, данные платежной карты, позволяющие проводить финансовые операции в терминале торговой точки. Они внедрили эту новую технологию в операционной системе Android, начиная с версии 4.4. HCE требует, чтобы протокол NFC направлялся в основную операционную систему мобильного устройства, а не в локальную микросхему защищенного аппаратного элемента (SE). Итак, начиная с версии Android 4.4 KitKat управление платежными операциями взял на себя не физический элемент, а API, точнее Google Pay API. Эмуляция карты неотделима от понятия «токенизация», потому что это следующая ступень защиты платежных данных в виртуальном мире после TSM, который выдавал ключи. Токен — это ссылка (то есть идентификатор), которая сопоставляется с конфиденциальными данными через систему токенизации. Сопоставление исходных данных с токеном использует методы, которые делают невозможным обратное преобразование токенов в исходные данные вне системы токенизации, например, с использованием токенов, созданных при помощи случайных чисел. Т.е. вместо номера вашей карты API хранит токен, полученный от банка-эмитента, который бесполезен в том виде, в котором он хранится. Даже если его узнают третьи лица, воспользоваться им будет невозможно.
Бесконтакт: что такое NFC и как программисту с ним работать

Рис. 17. Токенизация.Когда вы вводите номер карты в мобильное приложение, обеспечивающее возможность мобльных платежей, например, номер карты 4111 1111 1111 1234, удаленный поставщик токенов (remote token service server) возвращает вместо номера карты токен вида 4281 **** **** 2819, который хранится в мобильном устройстве.

Токенизация при использовании Google Pay:

  1. Когда пользователь добавляет в Google Pay свою кредитную или дебетовую карту, приложение запрашивает у банка-эмитента токен. Затем Google Pay шифрует токенизированную карту, и она становится доступна для оплаты.
  2. При оплате клиент прикладывает свое мобильное устройство к терминалу или нажимает соответствующую кнопку в приложении. Google Pay отправляет токен и криптограмму, которая действует как одноразовый код. Платежная система проверяет криптограмму и соотносит токен с номером карты клиента.
  3. Для завершения транзакции ваш банк-эквайер и банк-эмитент покупателя используют данные клиента и расшифрованную информацию о его платеже

При этом:

Безопасное хранение данных

Использование защищенного элементаКонечно, об этом уже упоминалось в предыдущих разделах. Одним из вариантов хранения учетных данных карты и конфиденциальной информации на смартфоне является Security Element. Мы помним, что SE это физический чип, на который установлены каких-то приложений с конфиденциальными данными, например, апплет платежного приложения, транспортного и т.д. Этот чип может быть частью аппаратной платформы мобильного устройства, или SIM-карты, или даже SD-карты.Также мы помним, что апплетами и данными на SE управляет TSM, доверенный менеджер услуг.Бесконтакт: что такое NFC и как программисту с ним работать
Рис. 21. Апплеты в защищенном элементе.Любые конфиденциальные данные, например, данные, связанные с виртуальной картой, которые хранятся в SE, защищены так же, как и на физической бесконтактной карте. Однако есть одно важное отличие. SE постоянно подключен к смартфону и через смартфон к Интернету. Потенциал для атак намного выше, чем для реальной карты. К данным на обычной карте можно получить доступ, только если она оказывается рядом с бесконтактным считывателем, и только в том случае если бесконтактный считыватель был взломан. Из этого следует необходимость ограничить доступ к апплетам на SE.

И вот, еще одна некоммерческая организация, которая занимается разработкой спецификаций для безопасных цифровых экосистем в США, Global Platform выпустили спецификацию доверенной среды исполнения, или TEE. Эта среда, такой слой между ОС мобильного устройства и SE, в котором обмен данными и командами защищен. Вот тут спецификации Global Platform по криптографическим алгоритмам, системной архитектуре TEE и т.д.

Бесконтакт: что такое NFC и как программисту с ним работать
Рис. 22 Trusted Execution Environment – доверенная среда исполнения.
GlobalPlatform TEE Internal API – внутренний API доверенной среды исполнения. Trusted Core Environment – доверенная среда ядра. Trusted Functions – доверенные функции. TEE Kernel – ядро доверенной среды исполнения. HardWare secure resources – аппаратные ресурсы безопасности. Hardware Platform – аппаратная платформа. Rich OS – операционная система. GlobalPlatform TEE client API – клиентские API доверенной среды исполнения. Rich OS application environment – основная среда исполнения приложений в операционной системе.

Вот тут серия семинаров SmartCardAlliance по основам безопасности NFC.

Использование технологии HCEПоследние версии операционной системы Android поддерживают Host Card Emulation или HCE. Использование HCE означает, что команды NFC можно направлять прямо в API, работающее в операционной системе мобильного устройства.

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

Это делает варианты реализации виртуальной карты практически безграничными – от полностью облачной карты до хранения (части) виртуальной карты в SE. Поскольку HCE не обеспечивает безопасность, эта технология используется совместно с уже известными TEE и токенизацией.

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

Безопасный автомобиль

Раньше у вас был автомобиль и физический железный ключ от него на брелоке, все. Если ваш автомобиль хотели угнать, то разбивали стекло, вскрывали приборную панель, заводили машину двумя проводами, все, прощай автомобиль. Потом стали появляться бортовые компьютеры, электроника, иммобилайзеры.
Современный же автомобиль это технологичное пространство и инфраструктура для взаимодействия различных технологий. Автомобили оснащаются модулями Bluetooth, GPS, Wi-Fi, NFC, кроме тех, которые работают с внутренними протоколами и портами, типа OBD.
Если раньше максимальный риск для автомобиля представляло физическое проникновение и угон, то сейчас атаки стали удаленными. Вот и статьи о том, как хакеры воспользовались уязвимостями Jeep и Tesla S, а после этих случаев Fiat Chrysler автомобилей с подозрениями на те же уязвимости. Теперь максимальный риск это не угон автомобиля, а возможность перехвата управления удаленно и причинение вреда здоровью тех, кто находится в автомобиле.  Бесконтакт: что такое NFC и как программисту с ним работатьРис. 18. Современный автомобиль использует различные протоколы связи.Защита современного автомобиля строится на 5 элементах: безопасный интерфейс, безопасный шлюз, безопасная сеть, безопасная обработка данных, безопасный доступ.
Бесконтакт: что такое NFC и как программисту с ним работать

Рис. 19. Безопасность автомобиля.Secure interfaces – безопасный интерфейс. Secure Gateway – безопасный шлюз. Secure Network – безопасная сеть. Secure Processing – безопасная обработка данных. Secure Car Acces – безопасный доступ в машину.

Полный текст статьи NXP тут, там подробно рассматриваются защиты на уровнях с 1 по 4. Но нас интересует безопасность применения технологии NFC, раз уж статья об этом.

Технология цифрового ключа или SmartKey (или Digital Key) разработана таким образом, что ключ не хранится и не передается в открытом виде. Цифровой ключ, это какой-то оригинальный набор данных, которые производитель автомобиля зашивает в прошивку автомобиля вместе с набором функций, которые доступны по этому ключу. Он же (производитель автомобиля) является TSM (Trusted Service Manager) для пользователей ключа, т.е. пользователь не получает ключ от автомобиля, он получает набор зашифрованных данных, которые являются ключом к расшифровке оригинального ключа, и хранятся они в SE мобильного устройства, соответственно. NFC используется только для передачи этих зашифрованных данных автомобилю. Учитывая, что NFC работает на расстоянии около 10 см., практически невозможно просканировать и узнать эти данные. Еще важной частью архитектуры безопасности является TEE, это так называемая Trusted Execution Environment или безопасная среда исполнения,  является безопасной площадью основного процессора и гарантирует защиту кода и данных, загруженных внутри, в отношении конфиденциальности и целостности.

Бесконтакт: что такое NFC и как программисту с ним работать
Рис. 20. Безопасный доступ в автомобиль по NFC.  Car OEM – производитель автомобиля. TSM – доверенный менеджер услуг (поставщик ключей). Mobile UI – мобильный интерфейс. TUI – доверенный интерфейс. TEE – доверенная среда исполнения. Secure Element – защищенный элемент. SE provider – провайдер защищенного элемента. SE provider agent – исполняемое приложение провайдера защищенного элемента.  NFC – чип NFC.

Гостиничный бизнес

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

Решение для гостиничного бизнеса предлагает гостям абсолютно новый опыт. В зависимости от выбранного решения гости могут сами предварительно резервировать и бронировать номера с помощью своих мобильных устройств. По прибытии они могут использовать свой смартфон для заселения или расчета.

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

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

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

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

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

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

На видео представлено сравнение классического пути регистрации и удаленной регистрации и доступа в гостиницу с помощью смартфонаА что касается использования технологии NFC в гостиничном бизнесе, и возможности регистрации гостя через его смартфон, то одними из первых эти решения стали внедрять у себя Hilton Hotels. Или по внедрению этой технологии в отеле Clarion в 2022 году.

Проблемы

Игровая индустрия

NFC это легкий способ сделать игру интерактивной. В 2022 году Mcdonald’s воплотили идею детского интерактивного игрового стола, на основе NFC меток. Метки крепились к обычному столу под столешницей, они имитировали трассу для игрового приложения. В игре на смартфоне ребенок управлял машиной, которая должна проехать по этой трассе.
У компании Activision есть две серии игр, которые стабильно кормят их из года в год. Это, конечно же, серия игр Call of Duty, бьющая все возможные рекорды, а также серия детских продуктов под названием Skylanders. Родившийся как ответвление серии Spyro the Dragon, проект Skylanders превратился в самостоятельную серию, вышедшую на множестве платформ. Серия является настолько успешной, что глядя на неё, компания Disney потратила огромные деньги, чтобы сделать свою игру Disney Infinity, с аналогичным смыслом. А смысл в том, что герои в игре связаны с реальными физическими статуэтками этих героев. Статуэтка оснащена NFC меткой, эту фигурку надо купить и разместить на специальном портале, чтобы герой появился в игре. Это гениально. Доход от Skylanders  приносят далеко не продажи самой игры, а всех этих фигурок героев к ней.Последователями этой идеи стали Disney Infinity и Nintendo Amiibo для консолей Nintendo.

РеализацияИз сказанного выше ясно, в игровой индустрии технологию NFC используют в виде меток, на которые записаны данные, которые импортируются в игровое приложение в виде героя или игрового поля.Немного NFC-магии от NXP:А вот тут решения NXP для NFC игр.Еще фишки с программируемыми метками NFC используются в казино.

Проблемы

Карты лояльности

Сейчас распространены приложения, так называемые «электронные кошельки» для скидочных карт, . Туда можно сохранять образы (фото) карт лояльности с номером карты или со штрих-кодом, что, конечно, упрощает значительно жизнь, исключая необходимость носить с собой кучу карт. Прекрасное решение из 90-х.

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

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

Бесконтакт: что такое NFC и как программисту с ним работать
Рис. 8. Приложение Google Pay.

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

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

Сами сканеры штрих кодов, тоже бывают разные по качеству и скорости считывания.

И далеко не все сканеры штрих-кодов могут считывать штрих-код с экрана смартфона
Внедрение карт лояльности и бонусов на основе NFC выгодно всем потребителям, продавцам и брендам:  
РеализацияКарты лояльности сохраняются в платежном приложении вместе с привязанной банковской картой и используются в режиме эмуляции карты NFC. Эти данные хранятся в защищенном элементе ( или SE) в телефоне. Вкратце, SE – это защищенная от взлома платформа, как правило, это чип с памятью, которая позволяет безопасно хранить конфиденциальные данные, защищенные криптографическими ключами. SE может быть интегрирован в SIM-карту, выпущенную мобильной сетью пользователя, или чипом, встроенным в телефон производителем устройства. Эта реализация хранит учетные карт лояльности в том же домене безопасности, что и данные платежной карты, привязанные к платежному приложению.

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

Проблемы

Контроль качества

С приходом интернета границы рынка (внешнего или внутреннего) для конечного пользователя стерлись. Нет сейчас дефицитных товаров типа американские джинсы или польские сапоги, которые папа из командировки привез. Можно купить какие угодно джинсы на любой кошелек. А с выходом на мировой рынок китайских народных умельцев появилось много такого, которое как Луи Витон, только в 10 раз дешевле или как Адидас, только Абибас. В России ежегодный объем контрафактной торговли оценивается в $4 миллиарда долларов. Согласно , опубликованной на сайте Таможенного информационного сервера, чаще всего объектами контрафакта являются лекарства, алкоголь, табачная продукция, одежда, обувь, минеральные воды и соки, автозапчасти. При этом доля незаконного оборота таких товаров в некоторых секторах доходит до 40%.Производители пользуются разными методами защиты своего продукта, например, голографические наклейки, QR-коды, штрих-коды. Защиту на основе графического элемента все-таки легко подделать, производители пошли дальше и стали использовать NFC метки.
Бесконтакт: что такое NFC и как программисту с ним работать
Рис. 10. Использование меток для контроля качества товаров. Customer CMS – клиентское приложение. Product with NFC – продукт с меткой NFC. NDEF – формат данных в метке. Customer URL – ссылка для проверки оригинальности, подлинности. NTAG 2GO Secure Services – сервисы проверки безопасности.

NFC метки устанавливаются на упаковку или на саму продукцию для подтверждения оригинальности товара. При наличии в телефоне приложения, которое может считать эту метку и показать информацию (NDEF или NFC Data Exchange Format формат данных, в котором информация хранится в метке), как правило это линк на сайт производителя, можно проверить оригинальность товара, каталожный номер, историю, и так далее.

Медицина

В  , выпущенном технологическими аналитиками Transparency Market Research (TMR), здравоохранение является одним из самых быстрорастущих сегментов рынка для NFC, с коэффициентом CAGR (среднегодовой темп роста) 20,4%.

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

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

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

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

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

Еще один случай применения меток NFC в медицине (и не только) это контроль подлинности, лекарств в конкретном случае. Метка NFC добавляется на упаковку или в маркировку лекарства, используя мобильное устройство можно проверить подлинность лекарства, просмотреть подробную информацию о дозировках или прочитать о побочных эффектах и ​​взаимодействиях лекарства.

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

Проблемы

Ограничение доступа к двигателю автомобиля

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

РеализацияВнедрение технологии NFC внутрь автомобиля началось примерно с 2022 года, когда первые автомобили с бесключевым доступом через мобильное устройство были представлены на автосалоне в Детройте. Сначала это были автомобили премиум-класса, Mersedes-Benz и Audi.

Но на сегодняшний день многие автомобильные концерны взяли NFC на вооружение. В 2022 году организация Car Connectivity Consortium, которая занималась разработкой протокола «цифрового ключа» для использования в автомобильных системах объявила о выпуске спецификации Digital Key Release 1.

В этом протоколе обещают поддержку следующих функций:

Бесконтакт: что такое NFC и как программисту с ним работатьРис. 9. Взаимодействие устройства NFC и автомобиля. Car OEM – производитель автомобиля. TSM – доверенный менеджер услуг (поставщик ключей). Mobile UI – мобильный интерфейс. TUI – доверенный интерфейс. TEE – доверенная среда исполнения. Secure Element – защищенный элемент. SE issuer – эмитент защищенного элемента. SE issuer agent – исполняемое приложение эмитента защищенного элемента.  NFC – чип NFC.

По схеме видно, что стандартизированный интерфейс позволяет обращаться к SE, где хранится цифровой ключ, и через NFC мобильного устройства передавать его автомобилю. Датчик NFC в автомобиле устанавливают в ручке двери водителя и на передней панели, под специальной площадкой.Вот тут разработки NXP в области безопасного бесключевого доступа к автомобилю.А тут про безопасную автомобильную архитектуру.

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

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

Посадочные талоны

В 2022 году Международная ассоциация воздушного транспорта (IATA) объединилась с GSMA, организацией, которая представляет интересы операторов мобильной связи по всему миру для публикации «Преимущества NFC для авиаперевозок», в котором обсуждалось потенциальное использование и преимущества NFC в авиационной отрасли. Позднее, в 2022 году, IATA и NFC Forum совместно опубликовали «».

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

Потенциальные приложения должно было включать в себя:  регистрацию багажа, автоматическую проверку документов, выписку нового посадочного талона на отмененные или задержанные рейсы. Т.е. это практически исключало необходимость обращаться на стойку регистрации для получения бумажного посадочного талона и сдачи багажа.РеализацияСейчас технология, принятая авиакомпаниями во всем мире и внедренная в аэропортах по всему миру это штрих-код или ​​QR-код на посадочном талоне и соответствующие оптические считыватели на пунктах досмотра и посадки.Переходя от штрих-кодов к NFC, GSMA предлагает хранить учетные данные посадочных талонов в SE или защищенных элементах, которые имеют уникальные ключи шифрования, обеспечивая таким образом безопасность и целостность.

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

HCE или Host Card Emulation это технология эмуляции карты при которой SE находится в облаке. В сочетании с подключенными к сети считывателями NFC на пункте регистрации на рейс учетные данные пользователя можно получить из облака для получения посадочного талона. Однако, в этом случае обязательное условие бесперебойной работы такой системы это подключение к сети.

Проблемы

Спецификации nfc forum

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

Например, в спецификации NFC Analog Technical Specification рассматриваются аналоговые радиочастотные характеристики устройства с поддержкой NFC. Эта спецификация включает в себя требования к мощности антенны, требования к передаче, требования к приемнику и формы сигналов (время /частота /характеристики модуляции).

Спецификация NFC Analog 2.0 ввела активный режим связи для обмена данными P2P и технологию NFC-V в режиме опроса. Версия 2.0 обеспечивает полную совместимость с устройствами, соответствующими ISO/IEC 14443 или ISO/IEC 18092.

По этим спецификациям существует следующие способы связи для устройств NFC: NFC-A, NFC-B, NFC-F, и пять типов NFC-меток. Устройства NFC могут быть активной или пассивной коммуникации и поддерживать один (или несколько) из 3 режимов работы.

NFC-AТип связи NFC-A основан на стандарте ISO/IEC 14443A для бесконтактных карт. Типы связи отличаются используемыми режимами кодирования сигнала и модуляции. NFC-A использует код Миллера и амплитудную модуляцию. Двоичные данные передаются со скоростью около 106 Кбит/с, сигнал должен изменяться от 0% до 100%, чтобы различать двоичную 1 и двоичный 0.

NFC-BТип связи NFC-B основан на стандарте ISO/IEC 14443B для бесконтактных карт. NFC-B использует метод манчестерского кодирования. Двоичные данные также передаются со скоростью около 106 Кбит/с. Здесь вместо 100% используется 10% -ое изменение амплитуды для двоичного 0 (то есть низкого уровня)

NFC-FТип связи NFC-F основан на стандарте FeliCA JIS X6319-4, также известный как просто FeliCa. Стандарт регулируется японской JICSAP. Там эта технология, и наиболее популярна. Скорость передачи данных 212 / 424 Кбит/с, используется манчестерское кодирование и амплитудная модуляция.

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

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

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

Типы nfc-меток

Существует четыре типа меток, описанных NFC-форумом, все они базируются на RFID-протоколах. Это делает NFC метки частично совместимыми со многими уже существующими RFID системами (например, Mifare и FeliCa). Хотя эти более старые системы не поддерживают NDEF, они, однако, могут опознавать NFC метки, которые совместимы с ними.

Например, считыватель RFID, который предназначен для работы с метками Mifare Ultralight, может считать идентификационный номер метки NFC 2 типа, хоть и не может прочитать закодированную NDEF информацию. Есть также пятый тип, который совместим с технологией, но при этом не является частью NFC-спецификации.

Типы 1, 2 и 4 основаны на ГОСТ Р ИСО/МЭК 14443A (состоит из четырёх частей: 1, 2, 3, 4), тип 3 — на ГОСТ Р ИСО/МЭК 18092. Более подробно про каждый из типов можно прочитать под спойлером.

Тип 1

:

  • Основан на ГОСТ Р ИСО/МЭК 14443A;
  • Может быть как только для чтения, так и для чтения/записи;
  • Содержит от 96 байт до 2 кбайт памяти;
  • Нет защиты данных от коллизий (прим. — коллизии могут возникнуть; когда два активных источника передают данные одновременно);
  • Примеры: Innovision Topaz, Broadcom BCM20203.

Тип 2:

  • Аналогично типу 1 основан на NXP/PhilipsMifareUltralight метках (ГОСТ Р ИСО/МЭК 14443A);
  • Может быть как только для чтения, так и для чтения/записи;
  • Содержит от 96 байт до 2 кбайт памяти;
  • Скорость взаимодействия 106 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: NXP Mifare Ultralight.

Тип 3:

  • Основан на метках SonyFeliCa (ГОСТ Р ИСО/МЭК 18092 и JIS-X-6319-4) без поддержки шифрования и аутентификации, которая предоставлена спецификацией FeliCa;
  • Может быть либо только для чтения, либо для чтения/записи;
  • Скорость взаимодействия 212 или 424 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: Sony FeliCa.

Тип 4:

  • Аналогично типу 1, тип 4 основан на ГОСТ Р ИСО/МЭК 14443A;
  • Может быть либо только для чтения, либо для чтения/записи;
  • 2, 4 или 8 кбайт памяти;
  • Скорость взаимодействия 106, 212 или 424 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: NXP DESFire, SmartMX-JCOP.

Пятый тип является собственностью NXPSemiconductors и, вероятно, самым распространённым на сегодняшний день MifareClassictag (ГОСТ Р ИСО/МЭК 14443A):

  • Память: 192, 768 или 3584 байта;
  • Скорость взаимодействия 106 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: NXP Mifare Classic 1K, Mifare Classic 4K, Mifare Classic Mini.

Транспортная инфраструктура

Бесконтакт: что такое NFC и как программисту с ним работатьРис. 11. Эволюция транспортных билетов.Legacy media – устаревшие билеты. New media – новые билеты (технологии). Paper tickets – бумажные билеты. Light interface – оптический интерфейс. Contactless cards – бесконтактные карты. Contactless interface – бесконтактный интерфейс. Mobile tickets – мобильные билеты. NFC interface – интерфейс NFC.

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

Вот тут NFC Forum white paper о применении NFC на транспорте. Очевидные преимущества от внедрения: простота использования, мультикарта, которая действует на несколько видов транспорта, можно пополнить баланс через приложение, а не стоять в очереди, экологичность и прочее.

Сейчас бесконтактные транспортные карты на базе меток NFC прочно вошли в транспортную инфраструктуру. Причем, такие карты работают не только в транспортной инфраструктуре городов, на горнолыжных курортах система подъемников тоже использует карты на базе NFC меток.

РеализацияМосметро анонсировали  услугу «Мобильный билет», в процессе предоставления сервиса участвуют операторы сотовой связи (ОАО «МТС», ПАО «Мегафон», ОАО «ВымпелКом») ООО «Бриз Технологии», ГУП «Московский метрополитен» (Метрополитен)

, ГУП «Мосгортранс». Операторы сотовой связи предоставляют потребителю SIM-карту со встроенным чипом NFC, SE и подключаемой услугой мобильного билета. В этом случае оплата за транспортный тариф происходит через NFC SIM-карты со счета мобильного номера в транспортное приложение.

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

Во вторую очередь, платежное приложение должно напрямую работать с приложением транспортного оператора. Иными словами, если транспортную карту можно будет интегрировать в Google Pay. И Google Pay добавили такую возможность, но она пока что в каком-то полуживом режиме, по крайней мере транспортные карты действующие в России Google не понимает. Поэтому, нет.А вот для Apple есть такая услуга.

Apple Pay с Mastercard: простой и удобный способ оплаты. Оплатить проезд в метро и на МЦК с помощью Apple Pay можно в кассах, автоматах по продаже билетов, а также прямо на турникетах. Опять же, если у вас не мастеркард, то не забывайте транспортную карту.Есть приложения для мобильных устройств, которые позволяют оплачивать проездной электронным платежом, инициализируя карту через NFC, например, «мой проездной». Подробности о работе тут.

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

Физический контроль доступа

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

В течение последних нескольких лет индустрией были предприняты серьезные усилия по обновлению этой инфраструктуры и переходу от поддержки только RFID оборудования низкочастотного диапазона к более функциональным высокочастотным устройствам, совместимым с ISO / IEC 14443.

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

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

Современные облачные сервисы позволяют поставщикам продуктов и услуг доступа просто и безопасно портировать свои приложения для смарт-карт на смартфоны. Все права и функции, связанные с бесконтактной картой контроля доступа, могут обрабатываться смартфоном.Смартфоны, поддерживающие NFC, могут хранить и предоставлять учетные данные доступа считывателям, которые поддерживают карты бесконтактного доступа, соответствующие ISO / IEC 14443. Учетные данные могут быть сгенерированы в режиме реального времени  и храниться в SE или в приложении с поддержкой HCE.Смартфон, среди прочих функций, становится устройством открывания дверей, электронным билетом или системой отслеживания пользователей и посещаемости.Контроль доступа на основе NFC катастрофически удобен для управления физическим доступом для большого количества территориально распределенных объектов.

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

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

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

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

Поэтому технология NFC используется в связке с Bluetooth в качестве бесконтактного протокола. Bluetooth доступен практически на всех смартфонах, у этого протокола больший радиус действия. И производители оборудования систем контроля доступа включают поддержку Bluetooth в дополнение к стандарту ISO / IEC 14443 и NFC.

Читаем ndef-сообщение

Когда телефон на Android считывает NFC-метку, он сначала её обрабатывает и распознает, а затем передаёт данные о ней в соответствующее приложение для последующего создания intent. Если с NFC может работать больше одного приложения, то появится меню выбора приложения. Система распознавания определяется тремя intent, которые перечислены в порядке важности от самой высокой до низкой:

  1. ACTION_NDEF_DISCOVERED: Этот intent используется для запуска аctivity, если в метке содержится NDEF-сообщение. Он имеет самый высокий приоритет, и система будет запускать его в первую очередь.
  2. ACTION_TECH_DISCOVERED: Если никаких activity для intent ACTION_NDEF_DISCOVERED не зарегистрировано, то система распознавания попробует запустить приложение с этим intent. Также этот intent будет сразу запущен, если найденное NDEF-сообщение не подходит под MIME-тип или URI, или метка совсем не содержит сообщения.
  3. ACTION_TAG_DISCOVERED: Этот intent будет запущен, если два предыдущих intent не сработали.

В общем случае система распознавания работает, как представлено на рисунке ниже.

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

Если activity запускается из-за NFC intent, то можно получить информацию с отсканированной NFC-метки из этого intent. Intent может содержать следующие дополнительные поля (зависит от типа отсканированной метки):

  • EXTRA_TAG (обязательное): объект Tag, описывающий отсканированную метку.
  • EXTRA_NDEF_MESSAGES (опциональное): Массив NDEF-сообщений, просчитанный с метки. Это дополнительное поле присуще только intent ACTION_NDEF_DISCOVERED.
  • EXTRA_ID (опциональное): Низкоуровневый идентификатор метки.

Ниже представлен пример, проверяющий intent ACTION_NDEF_DISCOVERED и получающий NDEF-сообщения из дополнительного поля.

Kotlin

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    ...
    if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action) {
        intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)?.also { rawMessages ->
            val messages: List = rawMessages.map { it as NdefMessage }
            // Обработка массива сообщений.
            ...
        }
    }
}

Java

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    ...
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Parcelable[] rawMessages =
            intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
        if (rawMessages != null) {
            NdefMessage[] messages = new NdefMessage[rawMessages.length];
            for (int i = 0; i < rawMessages.length; i  ) {
                messages[i] = (NdefMessage) rawMessages[i];
            }
            // Обработка массива сообщений.
            ...
        }
    }
}

Также объект Tag можно получить из intent, который будет содержать полезную информацию и позволит перечислить технологии метки:

Kotlin

val tag: Tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)

Java

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

Nfc frontends

Микрочипы CLRC663 plus, MFRC630 и SLRC610 в основном предназначены для использования в приложениях для работы с бесконтактными смарт-картами и метками, в то время как PN5180 предназначен для широкого применения в приложениях, работающих со всем, от смарт-карт до мобильных телефонов.Библиотеки для встроенных систем, полностью совместимые со стандартами ISO / IEC, EMV и спецификациями NFC Forum, обеспечивают надежную работу и более простую сертификацию. Режим энергосбережения и такие функции, как обнаружение карты с низким энергопотреблением, продлевают срок службы батареи.  Бесконтакт: что такое NFC и как программисту с ним работать
Рис. 5. Начинка NFC Frontends (микрочипа NFC).

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

Ко всему выше сказанному, микрочип PN5180 предлагает самые передовые функции передатчика и приемника. Функции динамического контроля питания (DPC), адаптивного управления формированием волны (AWC), адаптивного управление приемником (ARC) и автоматическая обработка ошибок EMD, в соответствии с последними спецификациями ISO / IEC14443 и EMVCo, выполняются самим микрочипом без взаимодействия с другим микроконтроллером.

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

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

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

Adblock
detector