Режим эмуляции карты: Эмуляция карты NFC Android — почему нет доступного элемента защиты
Эмуляция карты NFC Android — почему нет доступного элемента защиты
Когда я окунулся в километры описаний преобразования реальных банковских карт в виртуальный аналог, то понял, что просто перенести, даже в сжатом виде, в поле статьи эту информацию у меня не получится. Написано не для массового читателя, нашпиговано специальными терминами и имеет чересчур наукообразный вид. В статье пойдет речь об эмуляции карты NFC на Android. Поэтому — просто о сложном!
Что такое эмуляция карты
Имеется совершенно конкретная технология HCE (Host Card Emulation), которая позволяет воспроизвести дубликат NFC-карты, то есть бесконтактной по методу соединения с внешним миром. Естественно, понадобится некое программное обеспечение, с его помощью и произойдет второе рождение вашего «пластика». О чем речь?
Сюда попадают банковские карты, для оплаты проезда в общественном транспорте, пропуска на работу и еще целый отряд необходимых «электронных ключей» для повседневной жизни.
Есть два принципиальных подхода к процессу клонирования карт. Возможно хранить всю информацию о ней во встроенном элементе безопасности, файл данных в зашифрованном виде записывается в самом мобильном устройстве. Либо он переносится в облачное хранилище и защищен от постороннего доступа запароленным входом.
Во всей этой истории нас, в первую очередь, интересует банковская карта и связанное с ней понятие бесконтактного платежа.
Именно об этом пойдет речь в дальнейшем, остальные прикладные функции эмуляции носят эпизодический характер и применяются на практике пытливыми продвинутыми юзерами.
Нужно заметить, что работает связка NFC Android с помощью аккаунта от Google, предварительно заведенного вами, в случае установленной другой операционной системы (на ум приходит только продукция компании Apple) на мобильном устройстве, сделать из него двойник вашего платежного инструмента получится средствами самого телефона. Это значит, что в нем есть вмонтированный чип, в котором лежит буквально все, что касается вашего счета в банке и идентификационных данных.
Вообще, все устройства, имеющие собственный «банк данных», обладают одной очень привлекательной особенностью. Доступ к нему ограничен. Строго говоря, его нет даже у операционной системы девайса и извлечь что-либо, без вашей помощи, никому постороннему не удастся.
Кроме того, подобные устройства способны на проведение оплаты в бесконтактном режиме без помощи интернета. Все необходимое для транзакции уже есть под рукой.
Как это работает
До 2017 года был написан не один десяток статей на эту тему. С приходом новых приложений, таких как Google Pay, Samsung Pay и Apple Pay, страсти улеглись. Процесс виртуализации физического «пластика» заметно упростился и многие проблемы, связанные с этой процедурой, отпали сами собой. В марте прошлого года был запущен проект Android Pay (детище Google, впоследствии переработанное в современный вариант), детально описанный и донельзя конкретизированный. Изменения в алгоритме эмуляции с тех пор почти не произошли.
Вот как это работает сегодня.
- Прежде всего, предстоит выбрать и скачать нужное вам приложение, из числа предложенных.
- Установить на смартфон.
- Затем приступить к главному — эмулировать банковскую карту. Потребуется ее отсканировать, остальные необходимые данные ввести в ручном режиме. Ничего особенного, сведения о держателе счета в банке, домашний адрес, CVV-код с обратной стороны «пластика», номер телефона.
- Согласиться с пользовательским соглашением.
- Подтвердить СМС правильность ввода.
- Карта эмулирована, она у вас есть и хранится в приложении. В нужный момент просто активируйте NFC-модуль и саму программу. Платеж будет проведен моментально.
Отдельно остановлюсь на процедуре «внесения» дубликата пластикового пропуска куда-либо, в этот разряд можно отнести все другие носители информации, не связанные с банками.
Пытливые китайские умы сделали процедуру переноса физического объекта в память смартфона максимально комфортной и несложной. Вам предстоит скачать NFC Card Emulator с Play Маркета и установить на устройство. Затем активировать NFC-чип (без него никуда), запустить приложение и поднести к задней крышке телефона то, что хотите продублировать. «Пластик» предстанет в виртуальном образе в самой программе, в дальнейшем на него нужно будет нажать и поднести к объекту взаимодействия.
Как удивятся охранники с вашей работы, когда турникет на проходной откроется путем приложения смартфона к нему. Бывшие менты из охраны не любят неожиданностей, и вцепятся в вас мертвой хваткой. Правда, ненадолго.
Что требуется для эмуляции
Уже упомянутый NFC Card Emulator и Root-права в вашем устройстве. Все дело в том, что для изменения настроек в NFC (без этого не обойтись) придется кое-что изменить в системных файлах. Что под силу только суперпользователю.
Именно здесь кроется подвох, о чем нельзя не упомянуть. Предыдущее описание производства виртуальной платежной карты возможно только на совершенно «чистом» телефоне. Что я имею в виду. У вас должна стоять официальная прошивка, Root-права должны отсутствовать.
Только в этом случае получится провести платеж. А значит, если хотите иметь у себя в устройстве буквально все, что должно вас огорчить. Придется что-то выбрать. Либо платите в магазине, либо ходите в бассейн по эмулированному пропуску. Так обстоят дела сегодня, возможно в будущем произойдут перемены к лучшему.
Безопасность
Недавно заглянул в свой старый Xiaomi MI3 и был немало удивлен. Устройство имеет собственный элемент безопасности! В меню настроек предлагается на выбор места хранения: встроенный или на сим-карте. Что касается последнего места, то оно не прижилось на практике, ввиду сложности реализации. На сегодняшний день распространен вариант облачного хранилища Google, счастливчики могут похвастать собственным специальным чипом.
Возможные проблемы
Из возможных ошибок упомяну одну, но наиболее «тяжелую» для пользователей. Несколько лет назад боролись с сообщением из операционной системы: «нет доступных элементов защиты. Эмуляция NFC-карты будет отключена».
Эмуляция карты NFC Android в настоящее время не является утомительным или сложным занятием. По крайней мере, те, кто хочет воспользоваться бесконтактным способом оплаты покупок, без труда воспользуются максимально разжеванными, в картинках, этапами привязки карты в приложении, предварительно установленном на собственный телефон. Все это есть в интернете.
Понравилась статья? Поделиться с друзьями:
Эмуляция карты NFC Android — почему нет доступного элемента защиты
Что требуется для эмуляции
Имеется совершенно конкретная технология HCE (Host Card Emulation), которая позволяет воспроизвести дубликат NFC-карты, то есть бесконтактной по методу соединения с внешним миром. Естественно, понадобится некое программное обеспечение, с его помощью и произойдет второе рождение вашего «пластика».
О чем речь?Сюда попадают банковские карты, для оплаты проезда в общественном транспорте, пропуска на работу и еще целый отряд необходимых «электронных ключей» для повседневной жизни.
https://www.youtube.com/watch?v=ytaboutru
Есть два принципиальных подхода к процессу клонирования карт. Возможно хранить всю информацию о ней во встроенном элементе безопасности, файл данных в зашифрованном виде записывается в самом мобильном устройстве. Либо он переносится в облачное хранилище и защищен от постороннего доступа запароленным входом.
Во всей этой истории нас, в первую очередь, интересует банковская карта и связанное с ней понятие бесконтактного платежа.
Именно об этом пойдет речь в дальнейшем, остальные прикладные функции эмуляции носят эпизодический характер и применяются на практике пытливыми продвинутыми юзерами.
Нужно заметить, что работает связка NFC Android с помощью аккаунта от Google, предварительно заведенного вами, в случае установленной другой операционной системы (на ум приходит только продукция компании Apple) на мобильном устройстве, сделать из него двойник вашего платежного инструмента получится средствами самого телефона. Это значит, что в нем есть вмонтированный чип, в котором лежит буквально все, что касается вашего счета в банке и идентификационных данных.
Вообще, все устройства, имеющие собственный «банк данных», обладают одной очень привлекательной особенностью. Доступ к нему ограничен. Строго говоря, его нет даже у операционной системы девайса и извлечь что-либо, без вашей помощи, никому постороннему не удастся.
Кроме того, подобные устройства способны на проведение оплаты в бесконтактном режиме без помощи интернета. Все необходимое для транзакции уже есть под рукой.
Уже упомянутый NFC Card Emulator и Root-права в вашем устройстве. Все дело в том, что для изменения настроек в NFC (без этого не обойтись) придется кое-что изменить в системных файлах. Что под силу только суперпользователю.
Именно здесь кроется подвох, о чем нельзя не упомянуть. Предыдущее описание производства виртуальной платежной карты возможно только на совершенно «чистом» телефоне. Что я имею в виду. У вас должна стоять официальная прошивка, Root-права должны отсутствовать.
Только в этом случае получится провести платеж. А значит, если хотите иметь у себя в устройстве буквально все, что должно вас огорчить. Придется что-то выбрать. Либо платите в магазине, либо ходите в бассейн по эмулированному пропуску. Так обстоят дела сегодня, возможно в будущем произойдут перемены к лучшему.
Метим территорию
Итак, наш план действий: научить смарфтон реагировать определенным образом на определенную же метку NFC. У каждой метки есть идентификатор. Гаджет должен опознать его и выполнить «запрограммированные» действия. Чтобы привязать действия к ID метки нам понадобится одно из подходящих приложений – например, NFC ReTag Free.
ШАГ 1. Качаем из магазина, запускаем. Подносим нашу метку – в данном случае транспортную карту. Приложение опознает ее и сообщает нам идентификатор.
ШАГ 2. Даем метке более понятное обозначение. Жмем на зеленую кнопку «Действия» и видим список действий, которые можем привязать к этой метке.
Тут много всего интересного – запуск приложений, включение Wi-Fi, изменение громкости сигнала, звонок на определенный номер…
ШАГ 3. Выбираем для примера запуск Яндекс.Навигатора.
ШАГ 4. Ждем кнопку ОК – собственно, все готово. Проверяем результат. Подносим разблокированный смартфон к транспортной карте, и вуаля: навигатор запускается автоматически. Мы взяли самую «доступную» метку NFC, но можно купить и более практичную, в форме наклейки. Такую можно наклеить, например, на держатель для смартфона в автомобиле — установите в него гаджет, и навигатор загрузится автоматически.
Как это работает
https://www.youtube.com/watch?v=ytcreatorsru
До 2017 года был написан не один десяток статей на эту тему. С приходом новых приложений, таких как Google Pay, Samsung Pay и Apple Pay, страсти улеглись. Процесс виртуализации физического «пластика» заметно упростился и многие проблемы, связанные с этой процедурой, отпали сами собой.
Вот как это работает сегодня.
Можно программировать не одно событие, а целую цепочку. Экспериментируйте!
Возможные проблемы
Из возможных ошибок упомяну одну, но наиболее «тяжелую» для пользователей. Несколько лет назад боролись с сообщением из операционной системы: «нет доступных элементов защиты. Эмуляция NFC-карты будет отключена». С появлением реально работающих инструментов переноса платежной карты в виртуальную область, эти ошибки пропали. Что говорит об уровне новейших разработок.
https://www.youtube.com/watch?v=ytcopyrightru
Эмуляция карты NFC Android в настоящее время не является утомительным или сложным занятием. По крайней мере, те, кто хочет воспользоваться бесконтактным способом оплаты покупок, без труда воспользуются максимально разжеванными, в картинках, этапами привязки карты в приложении, предварительно установленном на собственный телефон. Все это есть в интернете.
Peer-to-peer и эмуляция хост-карты: в чем разница?
Сегодня мы собираемся объяснить вам шаг за шагом, в чем разница между NFC HCE и NFC P2P.
Это две схемы связи, основанные на одной и той же технологии NFC, но с очень разными вариантами использования.
HCE расшифровывается как эмуляция хост-карты. Это конкретная реализация режима эмуляции карты NFC.
Эмуляция карты означает, что у вас есть электронное устройство, обычно смартфон, которое ведет себя точно так же, как бесконтактная смарт-карта. Это основа виртуализации платежных или транспортных карт, бейджей контроля доступа, карт лояльности и других токенов на смартфоне.
Здесь есть две разные реализации, в зависимости от уровня безопасности, которого нужно достичь.
Конфиденциальные платежи и транспортные карты обычно виртуализируются в защищенном от несанкционированного доступа компоненте, где все криптографические ключи серьезно защищены от всех известных атак. В некоторых архитектурах безопасным компонентом является SIM-карта смартфона или UICC, поэтому она принадлежит и управляется оператором мобильной сети. В других архитектурах безопасный компонент представляет собой специальный чип на материнской плате смартфона, называемый безопасным элементом. Производитель смартфона сохраняет за собой полный контроль над другим этим защитным элементом. Теперь многие приложения для бесконтактных карт могут обеспечивать более низкий уровень безопасности, чем банковские системы. Более того, виртуализация карты в защищенном компоненте — это сложный и дорогостоящий процесс, при котором вам необходимо сотрудничать с оператором производителя, который контролирует SIM-карту или защищенный элемент.
Для всех этих приложений предпочтительнее использовать эмуляцию хост-карты. Логика смарт-карты работает не в защищенном компоненте, а в процессоре смартфона, как в любом классическом приложении для смартфона. Это значительно снижает сложность, сокращает время разработки и позволяет развертывать виртуализированные карты через магазины приложений.
Короче говоря, NFC HCE позволяет эмулировать бесконтактную смарт-карту, всего лишь добавив несколько строк в приложение для смартфона — при условии, что платформа это позволяет.
Android реализует эту технологию начиная с версии 4.4, но на данный момент iOS этого не позволяет.
Все считыватели SpringCard взаимодействуют с приложением HCE. точно так же, как они общались бы с реальной бесконтактной смарт-картой. Некоторые из наших устройств также могут инвертировать схему, и пусть ваш ПК с Windows или Linux станет хостом HCE!
С другой стороны, одноранговая связь NFC очень далека от транзакций со смарт-картами. На самом деле, NFC P2P — это не что иное, как канал связи на короткие расстояния, и, как любой канал связи, он подходит для передачи практически любого сетевого протокола и любых данных приложения между двумя устройствами.
Форум NFC определил сетевой протокол для NFC P2P, имя которого — LLCP.
Поверх этого стека протоколов находится служба NFC SNEP, приложение, предназначенное для передачи содержимого метки NFC от одного узла к другому.
Короче говоря, вместо того, чтобы эмулировать метку NFC, когда вы хотите поделиться контентом — URL-адресом, визитной карточкой, настройками Wi-Fi или Bluetooth, ваш смартфон может просто использовать SNEP для отправки того же контента на другой смартфон. Это основная технология Android Beam. Используя программное обеспечение LLCP плюс SNEP, работающее на хосте, большинство устройств SpringCard также могут передавать данные NFC на смартфон.
LLCP, стек сетевых протоколов NFC, был разработан, чтобы быть открытым и одноразовым. К сожалению, он кажется преувеличенно сложным, и, учитывая внутренние ограничения связи NFC — очень малый радиус действия, пропускная способность, ограниченная несколькими килобайтами в секунду, — его интерес исчезает по сравнению с Bluetooth Low Energy.
Сегодня мы можем считать, что одноранговая связь NFC более или менее ограничена SNEP, услугой push-уведомлений NDEF. Это удобный способ отправки короткой информации с одного устройства на другое, но он не использует преимущества двунаправленного аспекта этого канала связи.
Опубликовано 23.10.2018
Эмуляция карты и эмуляция на основе хоста
Учитесь на знаниях сообщества. Эксперты добавляют свои идеи в эту совместную статью на основе ИИ, и вы тоже можете.
Это новый тип статьи, которую мы начали с помощью ИИ, и эксперты продвигают ее вперед, делясь своими мыслями непосредственно в каждом разделе.
Если вы хотите внести свой вклад, запросите приглашение, поставив лайк или ответив на эту статью. Узнать больше
— Команда LinkedIn
Последнее обновление: 23 марта 2023 г.
NFC, или связь ближнего радиуса действия, — это технология, которая позволяет устройствам обмениваться данными по беспроводной связи на небольшом расстоянии. Приложения NFC могут использовать два различных режима для эмуляции смарт-карты: режим эмуляции карты и режим эмуляции карты на основе хоста. В этой статье вы узнаете, как тестировать и отлаживать ваше приложение NFC в обоих режимах, а также каковы преимущества и недостатки каждого из них.
Режим эмуляции карты
В режиме эмуляции карты ваше приложение NFC использует безопасный элемент (SE) для хранения и обработки данных, которые отправляются и принимаются считывателем NFC. SE может быть встроен в устройство, например, в SIM-карту или eSE, или может быть внешним аксессуаром, например, картой microSD или наклейкой. SE действует как смарт-карта и управляет протоколом связи и функциями безопасности. Для тестирования и отладки вашего приложения NFC в режиме эмуляции карты вам необходимо иметь доступ к SE и его апплетам, которые являются программными компонентами, работающими в SE. Вам также необходимо использовать инструмент, который может взаимодействовать с SE и отслеживать трафик NFC, например анализатор NFC или устройство чтения смарт-карт.
Режим эмуляции карты на хосте
В режиме эмуляции карты на хосте ваше приложение NFC обходит SE и использует операционную систему и оборудование устройства для эмуляции смарт-карты. Данные, которые отправляются и принимаются считывателем NFC, перенаправляются в ваше приложение, которое может их обрабатывать и реагировать соответствующим образом. Этот режим дает вам больше гибкости и контроля над данными и логикой вашего приложения, но также требует больше ресурсов и мер безопасности. Для тестирования и отладки вашего приложения NFC в режиме эмуляции карты на основе хоста вам необходимо использовать инструмент, который может имитировать считыватель NFC и отправлять и получать данные в ваше приложение и из него, например тестер NFC или виртуальный считыватель смарт-карт.
Инструменты тестирования
Для тестирования и отладки вашего приложения NFC в обоих режимах можно использовать различные инструменты, в зависимости от вашей платформы, функций и предпочтений. Android Studio — это официальная среда разработки для Android, которая имеет встроенные функции для тестирования и отладки приложений NFC. Эмулятор может имитировать устройство NFC и устройство чтения NFC, а Logcat и отладчик можно использовать для мониторинга и проверки данных и событий. NFC Tools — это кроссплатформенное приложение, которое превращает ваше устройство в считыватель или метку NFC, позволяя вам считывать и записывать данные в метки или отправлять и получать данные на другие устройства NFC. Кроме того, NFCProxy — это приложение с открытым исходным кодом, которое может перехватывать и изменять трафик между устройством NFC и считывателем. Он позволяет анализировать протокол, шифрование, аутентификацию и команды, а также проводить проверки безопасности и тесты на проникновение в ваше приложение NFC.
Советы по отладке
Тестирование и отладка приложения NFC могут быть сложными, поскольку необходимо учитывать различные факторы, такие как расстояние, ориентация, скорость, совместимость и помехи. Чтобы сделать отладку более эффективной, убедитесь, что у вас есть согласованная и надежная среда тестирования с минимальным уровнем шума. Кроме того, используйте четкие и описательные сообщения журнала с отметками времени, тегами и категориями для отслеживания данных и событий NFC. Используйте точки останова, точки наблюдения и условные выражения, чтобы приостанавливать и проверять выполнение вашего приложения в определенных точках. Вы также можете использовать фиктивные данные и ответы для имитации различных сценариев, с которыми может столкнуться ваше приложение. Наконец, используйте модульные тесты, интеграционные тесты и сквозные тесты, чтобы проверить функциональность, производительность и удобство использования вашего приложения.
Преимущества и недостатки
И режим эмуляции карты, и режим эмуляции карты на основе хоста имеют свои преимущества и недостатки, в зависимости от требований, целей и ограничений вашего приложения. Режим эмуляции карты обеспечивает большую безопасность, совместимость и надежность, поскольку SE обрабатывает шифрование, аутентификацию и протокол связи. Однако этот режим также имеет больше ограничений, таких как доступность, доступ и стоимость SE, сложность разработки и развертывания апплета, а также зависимость от поставщика и провайдера SE. Напротив, режим эмуляции карты на основе хоста предлагает больше гибкости, контроля и инноваций, поскольку вы можете использовать операционную систему и оборудование устройства для эмуляции смарт-карты. Тем не менее, этот режим также имеет больше проблем, таких как потребление ресурсов, риски безопасности, проблемы совместимости устройства, сложность обработки данных и время отклика, а также зависимость от производителя устройства и платформы.
Вот что еще нужно учитывать
Здесь можно поделиться примерами, историями или идеями, которые не вписываются ни в один из предыдущих разделов. Что бы вы еще хотели добавить?
Оцените эту статью
Мы создали эту статью с помощью ИИ. Что вы думаете об этом?
Спасибо за ваш отзыв
Ваш отзыв является частным. Поставьте лайк или отреагируйте, чтобы перенести разговор в свою сеть.
Как избежать помех и проблем с соединением с антеннами NFC?
5 апр. 2023 г.
Каковы основные факторы, влияющие на цену устройств чтения/записи NFC?
3 апр. 2023 г.
Как вы развиваете и поддерживаете навыки и компетенции в области платежей NFC?
2 апр. 2023 г.
Как вы разрабатываете безопасный и масштабируемый сетевой уровень NFC для приложений IoT?
2 апр.
2023 г.Как NFC и QR-код могут помочь предприятиям сократить расходы и повысить эффективность бесконтактных платежей?
2 апр. 2023 г.
Как NFC и Bluetooth могут сосуществовать, не мешая друг другу?
30 марта 2023 г.
Как беспроводная передача энергии на основе NFC может поддерживать экологически чистые и устойчивые энергетические решения?
30 марта 2023 г.