Режим эмуляции карты: Эмуляция карты 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, впоследствии переработанное в современный вариант), детально описанный и донельзя конкретизированный. Изменения в алгоритме эмуляции с тех пор почти не произошли.

Вот как это работает сегодня.

  1. Прежде всего, предстоит выбрать и скачать нужное вам приложение, из числа предложенных.
  2. Установить на смартфон.
  3. Затем приступить к главному — эмулировать банковскую карту. Потребуется ее отсканировать, остальные необходимые данные ввести в ручном режиме. Ничего особенного, сведения о держателе счета в банке, домашний адрес, CVV-код с обратной стороны «пластика», номер телефона.
  4. Согласиться с пользовательским соглашением.
  5. Подтвердить СМС правильность ввода.
  6. Карта эмулирована, она у вас есть и хранится в приложении. В нужный момент просто активируйте NFC-модуль и саму программу. Платеж будет проведен моментально.

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

Пытливые китайские умы сделали процедуру переноса физического объекта в память смартфона максимально комфортной и несложной. Вам предстоит скачать NFC Card Emulator с Play Маркета и установить на устройство. Затем активировать NFC-чип (без него никуда), запустить приложение и поднести к задней крышке телефона то, что хотите продублировать. «Пластик» предстанет в виртуальном образе в самой программе, в дальнейшем на него нужно будет нажать и поднести к объекту взаимодействия.

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

Что требуется для эмуляции

Уже упомянутый NFC Card Emulator и Root-права в вашем устройстве. Все дело в том, что для изменения настроек в NFC (без этого не обойтись) придется кое-что изменить в системных файлах. Что под силу только суперпользователю.

Именно здесь кроется подвох, о чем нельзя не упомянуть. Предыдущее описание производства виртуальной платежной карты возможно только на совершенно «чистом» телефоне. Что я имею в виду. У вас должна стоять официальная прошивка, Root-права должны отсутствовать.

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

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

Недавно заглянул в свой старый Xiaomi MI3 и был немало удивлен. Устройство имеет собственный элемент безопасности! В меню настроек предлагается на выбор места хранения: встроенный или на сим-карте. Что касается последнего места, то оно не прижилось на практике, ввиду сложности реализации. На сегодняшний день распространен вариант облачного хранилища Google, счастливчики могут похвастать собственным специальным чипом.

Возможные проблемы

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

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

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

Понравилась статья? Поделиться с друзьями:

Эмуляция карты NFC Android — почему нет доступного элемента защиты — NFC Эксперт

Что требуется для эмуляции

Имеется совершенно конкретная технология 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, страсти улеглись. Процесс виртуализации физического «пластика» заметно упростился и многие проблемы, связанные с этой процедурой, отпали сами собой. В марте прошлого года был запущен проект Android Pay (детище Google, впоследствии переработанное в современный вариант), детально описанный и донельзя конкретизированный. Изменения в алгоритме эмуляции с тех пор почти не произошли.

Вот как это работает сегодня.

Можно программировать не одно событие, а целую цепочку. Экспериментируйте!

Возможные проблемы

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

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

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

NFC: все, что вам нужно знать о технологии (полное руководство)

Вы, вероятно, уже слышали о технологии NFC, но не знаете точно, что это такое и для чего она используется? Или, может быть, вы уже пользуетесь им, но вам просто интересно узнать больше об этом процессе радиопередачи? В любом случае, вы пришли в нужное место! Мы предлагаем вам практическое руководство по NFC. Что именно представляет собой NFC? Каковы различные способы работы NFC? Каковы наиболее популярные области ее применения? Как узнать, совместим ли ваш телефон Android с этой технологией и как активировать или деактивировать связь NFC? Как отправлять данные через NFC на Android? Каковы различия между NFC, QR-кодом, RIFID и iBeacon? И, наконец, каковы риски и ограничения этой технологии?

Что такое технология NFC?

Фото: Pixabay

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

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

Различные режимы работы этой технологии

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

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

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

В случае последнего режима, т.е. «peer-to-peer», эта технология работает в обоих направлениях. Если говорить конкретно, то она обеспечивает обмен информацией между двумя мобильными терминалами.

Наиболее известные виды использования NFC

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

Когда NFC находится в «режиме чтения», метка NFC выполняет функцию, аналогичную QR-коду. Поэтому ее можно использовать для запуска маркетинговой кампании «офлайн — онлайн». Наконец, помните, что в «одноранговом режиме» NFC можно использовать для отправки визитных карточек. Она также может использоваться для обмена видео, фотографиями и другими файлами. Технология может использоваться даже для пересылки денег в режиме peer-to-peer.

Как узнать, поддерживает ли мой смартфон Android технологию NFC?

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

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

Как активировать и деактивировать связь NFC на смартфоне?

Активация и деактивация связи NFC на смартфоне очень проста. Прежде всего, необходимо зайти в настройки вашего устройства. Затем, если у вас телефон Android, нажмите на «Беспроводная подключение и сети». Все, что вам нужно сделать, это выбрать вкладку «NFC», а затем включить NFC.

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

Как отправлять данные с помощью NFC на Android

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

Изначально NFC использовался почти исключительно для передачи данных по принципу «равный равному». Поэтому она использовалась для отправки фотографий, музыкальных файлов, видео или контактов между двумя смартфонами, оснащенными этой технологией. Сейчас в смартфонах используется Android Beam, который был представлен с выходом Android 4. 0. Если вы хотите передавать файлы или приложения между двумя устройствами Android, вам необходимо связать Android Beam с NFC. Сначала необходимо активировать эту функцию на обоих смартфонах или планшетах. Во-вторых, вам нужно будет вставить два устройства друг в друга после открытия файла для совместного использования. Вы можете быть уверены, что операция прошла успешно, как только почувствуете вибрацию или услышите небольшой шум.

Следует отметить, что Samsung также сделал доступной для пользователей своих устройств функцию S-Beam, которая является расширением Android Beam. Эта функция позволяла использовать прямой Wi-Fi для отправки файлов, что, в свою очередь, ускоряло передачу данных между телефонами Samsung. Хотя S-Beam больше не существует, на устройствах Samsung по-прежнему можно обмениваться файлами с помощью прямого Wi-Fi.

Как работает NFC на iPhone?

С 16 сентября 2020 года доступна iOS 14, и все функции NFC теперь работают. Главное преимущество iOS 14 связано, в частности, с наличием считывателя меток NFC. Этот ридер напрямую интегрирован в последние модели iPhone (iPhone XR, Xs, Xs Max, iPhone 11, 11 Pro, 11 Pro Max, iPhone 12, iPhone 12 Pro, iPhone 13 Pro Max и другие). Тем, кто владеет более старыми моделями, для ее активации необходимо перейти в Центр управления.

Если у вас более новый iPhone, вам не придется беспокоиться. Он автоматически обнаружит метку или этикетку NFC и одновременно выполнит действие NFC.

Однако если у вас старый iPhone (iPhone 7, 7 Plus, iPhone 8, 8 Pus, iPhone X), NFC неактивен. Поэтому вы должны активировать его вручную, зайдя в Настройки телефона, чтобы получить доступ к Центру управления. Выберите опцию «Другие команды» и «Добавить метку NFC».

Каковы различия между NFC и QR-кодом?

Хотя QR-код и NFC — две технологии бесконтактной связи, между ними есть заметные различия. Эти различия можно увидеть в четырех основных моментах: скорости оборудования, доступе к контенту, настройке и цене.

Что касается стоимости оборудования, то следует отметить, что все телефоны способны считывать QR-код. Действительно, чтобы скачать и установить программу для чтения QR-кодов на мобильный телефон, не требуется много времени. Однако не все смартфоны оснащены технологией NFC.

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

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

Наконец, чипы NFC — это физические продукты. Из этого следует, что любая метка NFC, вставленная в средство связи, имеет цену. Это не относится к QR-кодам, которые не имеют цены за единицу товара. Поэтому их стоимость остается неизменной, независимо от количества раз, которое они воспроизводятся.

Каковы различия между NFC и iBeacon?

Функция NFC уже доступна на большом количестве телефонов и становится все более популярной среди населения. К сожалению, за исключением оплаты через сервис Apple Pay, в айфонах пока нет NFC. Компания Apple, которая никогда не стремится быть похожей на других, вместо этого разработала собственную технологию под названием iBeacon. Она доступна на всех последних моделях устройств Apple, начиная с iPhone 5.

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

Другое основное различие между iBeacon и NFC заключается в минимальном расстоянии передачи данных. Для NFC это всего около десяти сантиметров, в то время как для iBeacon этот показатель может достигать нескольких метров.

Каковы различия между NFC и RFID?

EPC RFID-метка, используемая в торговой сети Wal-Mart

RFID (Radio Frequency Identification) — это технология, используемая для идентификации и определения характеристик объекта с помощью метки, излучающей радиоволны. Этот процесс, который классифицируется как RTLS или технология определения местоположения в реальном времени, особенно полезен для обеспечения прослеживаемости товаров. Поэтому она очень полезна в здравоохранении, автомобилестроении, транспорте и логистике, а также в военном секторе. Однако между ними есть существенная разница. В то время как RFID обеспечивает передачу больших объемов данных, NFC используется для передачи ограниченной информации. Кроме того, RFID работает на расстоянии нескольких метров, в то время как NFC — на расстоянии всего нескольких сантиметров.

Риски и ограничения NFC

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

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

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

Обзор эмуляции карт на базе хоста

| Разработчики Android

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

. Многие SIM-карты, предоставляемые операторами беспроводной связи также содержат элемент безопасности.

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

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

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


Рис. 1. Эмуляция карты NFC с защитным элементом.

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

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

Когда карта NFC эмулируется с помощью эмуляции карты на основе хоста, данные направляются напрямую к центральному процессору, а не к защищенному элементу. фигура 2 иллюстрирует, как работает эмуляция карты на основе хоста:


Рисунок 2. Эмуляция карты NFC без защитного элемента.

Поддерживаемые карты и протоколы NFC

Рисунок 3. Протокол Android HCE куча.

Стандарты NFC поддерживают множество различных протоколов, и различные типы карт, которые вы можете эмулировать.

Android 4.4 и более поздние версии поддерживают несколько протоколов, распространенных на рынке Cегодня. Многие существующие бесконтактные карты уже основаны на этих протоколах. Например, бесконтактные платежные карты. Эти протоколы также поддерживаются многими Считыватели NFC на рынке сегодня, включая устройства Android NFC, работающие как сами читатели (см.

ИзоДеп учебный класс). Это позволяет создавать и развертывать сквозное решение NFC вокруг HCE с использованием только устройств на базе Android.

В частности, Android 4.4 и более поздние версии поддерживают эмуляцию карт, основанных на спецификации NFC-Forum ISO-DEP (на основе ISO/IEC 14443-4) и процесс Блоки данных прикладного протокола (APDU), как определено в ISO/IEC 7816-4. Технические характеристики. Android требует эмуляции ISO-DEP только поверх Nfc-A. (ISO/IEC 14443-3, тип A). Поддержка Nfc-B (ISO/IEC 14443-4, тип B) технология необязательна. Рисунок 3 иллюстрирует наслоение всех этих технические характеристики.

Службы HCE

Архитектура HCE в Android основана на Android Компоненты Service (известные как HCE услуги ).

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

Выбор службы

Когда пользователь подносит устройство к считывателю NFC, система Android должна знать с какой службой HCE хочет связаться считыватель NFC. ИСО/МЭК 7816-4 Спецификация определяет способ выбора приложений, сосредоточенный вокруг Идентификатор приложения (AID). AID состоит из 16 байтов. Если вы подражаете карты для существующей инфраструктуры считывателей NFC, AID, которые эти считыватели искать, как правило, хорошо известны и публично зарегистрированы (например, AID платежных сетей, таких как Visa и MasterCard).

Если вы хотите развернуть новую инфраструктуру чтения для вашего собственного приложения, вам должны зарегистрировать свои собственные AID. Процедура регистрации ИДС определена в спецификации ISO/IEC 7816-5. Мы рекомендуем зарегистрировать AID согласно 7816-5. если вы развертываете приложение HCE для Android, потому что оно позволяет избежать коллизий с другими приложениями.

Группы AID

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

Список AID, которые хранятся вместе, называется группой AID. Для всех СПИД в Группа AID, Android гарантирует одно из следующих условий:

  • Все AID в группе направляются в эту службу HCE.
  • В эту службу HCE не направляются никакие AID в группе (например, потому что пользователь предпочел другую службу, которая запросила один или несколько AID в вашей группе также).

Другими словами, нет промежуточного состояния, в котором некоторые AID в группе могут направляться на один сервис HCE, а некоторые — на другой.

Группы и категории AID

Каждую группу AID можно связать с категорией. Это позволяет Android группировать Услуги HCE вместе по категориям, что, в свою очередь, позволяет пользователю устанавливать значения по умолчанию на уровне категории, а не на уровне AID. Избегайте упоминания СПИДа в любых частях вашего приложения, обращенных к пользователю, потому что они ничего не значат среднему пользователю.

Android 4.4 и более поздние версии поддерживают две категории:

  • CATEGORY_PAYMENT (охватывает стандартные платежные приложения)
  • КАТЕГОРИЯ_ДРУГАЯ (для всех других приложений HCE)
Примечание: Только одна группа AID в категории CATEGORY_PAYMENT может быть включена в системы в любой момент времени. Как правило, это приложение, которое понимает основные протоколы платежей по кредитным картам и может работать в любой торговец.

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

Внедрение службы HCE

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

Проверить наличие поддержки HCE

Ваше приложение может проверить, поддерживает ли устройство HCE, проверив наличие FEATURE_NFC_HOST_CARD_EMULATION особенность. Используйте тег в манифесте вашего приложения, чтобы объявить, что ваше приложение использует HCE функция, и требуется ли она для работы приложения или нет.

Реализация службы

Android 4.4 и более поздние версии предоставляют удобный класс службы , который вы можете использовать в качестве основы для реализации услуги HCE: Класс HostApduService .

Первым шагом является расширение HostApduService , как показано в следующем коде. образец:

Котлин

класс MyHostApduService : HostApduService() {
    переопределить fun processCommandApdu(commandApdu: ByteArray, extras: Bundle?): ByteArray {
       ...
    }
    переопределить удовольствие onDeactivated (причина: Int) {
       ...
    }
} 

Ява

открытый класс MyHostApduService расширяет HostApduService {
    @Override
    public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
       . ..
    }
    @Override
    public void onDeactivated (целая причина) {
       ...
    }
}
 

HostApduService объявляет два абстрактных метода, которые вы должны переопределить и осуществлять. Один из тех, процессКоммандАпду() , вызывается всякий раз, когда считыватель NFC отправляет блок данных прикладного протокола (APDU) к вашей службе. APDU определены в спецификации ISO/IEC 7816-4. APDU это пакеты прикладного уровня, которыми обмениваются считыватель NFC и ваша служба HCE. Этот протокол прикладного уровня является полудуплексным: считыватель NFC отправляет вам командный APDU и ждет, пока вы отправите ответный APDU в возвращаться.

Примечание: Спецификация ISO/IEC 7816-4 также определяет концепцию множественных логические каналы, что позволяет вам иметь несколько параллельных APDU обмены по отдельным логическим каналам. реализация Android HCE, однако поддерживает только один логический канал, поэтому однопоточный обмен APDU.

Как упоминалось ранее, Android использует AID, чтобы определить, какая служба HCE читатель хочет поговорить. Как правило, первый APDU, который считыватель NFC отправляет на ваш устройство ВЫБЕРИТЕ ПОМОЩЬ APDU; этот APDU содержит AID, который хочет читатель говорить с. Android извлекает этот AID из APDU, преобразует его в HCE. сервис, а затем перенаправляет этот APDU разрешенному сервису.

Вы можете отправить ответный APDU, вернув байты ответного APDU из процессКоммандАпду() . Обратите внимание, что этот метод вызывается в основном потоке. вашего приложения, которое вы не должны блокировать. Если вы не можете вычислить и вернуть ответный APDU немедленно, возвращает ноль. Затем вы можете выполнить необходимую работу над другой поток и использовать sendResponseApdu() метод, определенный в классе HostApduService , для отправки ответа, когда вы Выполнено.

Android продолжает пересылать новые APDU от считывателя к вашей службе до тех пор, пока происходит следующее:

  • Считыватель NFC отправляет еще один SELECT AID APDU, который ОС разрешает в другой сервис.
  • Связь NFC между считывателем NFC и вашим устройством разорвана.

В обоих этих случаях ваш класс onDeactivated() реализация вызывается с аргументом, указывающим, какое из двух событий произошло.

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

Если вы развертываете новую инфраструктуру считывателей, которой вы также управляете, вы можете определить свой собственный протокол и последовательность APDU. Попробуйте ограничить количество APDU и размер данных для обмена: это гарантирует, что ваши пользователи имеют только держать свое устройство над считывателем NFC в течение короткого промежутка времени. А разумная верхняя граница составляет около 1 КБ данных, что обычно обменивается в течение 300 мс.

Декларация манифеста службы и регистрация AID

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

  1. Чтобы сообщить платформе, что это служба HCE, реализующая HostApduService , добавьте фильтр намерений для СЕРВИС_ИНТЕРФЕЙС действие с вашей служебной декларацией.

  2. Чтобы сообщить платформе, какие группы AID запрашиваются этой службой, включите а СЕРВИС_МЕТА_ДАННЫЕ Тег в объявлении службы, указывающий на XML ресурс с дополнительной информацией о сервисе HCE.

  3. Установите для атрибута android:exported значение true и потребуйте Разрешение android. permission.BIND_NFC_SERVICE в декларации службы. Первый гарантирует, что служба может быть привязана к внешним приложениям. Последний затем обеспечивает, чтобы только внешние приложения, которые содержат Разрешение android.permission.BIND_NFC_SERVICE может быть привязано к вашему сервису. Поскольку android.permission.BIND_NFC_SERVICE является системным разрешением, это эффективно обеспечивает привязку к вашему сервису только ОС Android.

Ниже приведен пример объявления манифеста HostApduService :


    <намерение-фильтр>
        
    
     host_apdu_service"
               android:resource="@xml/apduservice"/>

 

Этот тег метаданных указывает на файл apduservice.xml . Ниже приводится пример такого файла с одним объявлением группы AID, содержащим два проприетарные AID:


    
        <помощь-фильтр android:name="F0010203040506"/>
        <помощь-фильтр android:name="F0394148148100"/>
    

 

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

должен содержать один или несколько <группа помощи> тегов. Каждый Тег требуется для следующих действий:

  • Содержит атрибут android:description , который содержит удобный для пользователя описание группы AID, пригодное для отображения в пользовательском интерфейсе.
  • Установите атрибут android:category , чтобы указать категорию AID группа принадлежит, например строковые константы, определенные CATEGORY_PAYMENT или CATEGORY_OTHER .
  • Содержит один или несколько тегов , каждый из которых содержит один AID. Укажите AID в шестнадцатеричном формате и убедитесь, что он содержит четные количество символов.

Ваше приложение также должно содержать NFC разрешение на регистрацию в качестве сервис ВЧЭ.

Разрешение конфликтов AID

Несколько компонентов HostApduService могут быть установлены на одном устройстве, и один и тот же AID может быть зарегистрирован более чем одной службой. Android разрешает AID конфликтует по-разному в зависимости от того, к какой категории принадлежит AID. Каждый категория может иметь другую политику разрешения конфликтов.

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

Проверьте, является ли ваша служба службой по умолчанию

Приложения могут проверить, является ли их служба HCE службой по умолчанию для определенной категории с помощью isDefaultServiceForCategory() API.

Если ваша служба не является службой по умолчанию, вы можете запросить, чтобы она стала службой по умолчанию с использованием ACTION_CHANGE_DEFAULT .

Платежные приложения

Android считает службы HCE, объявившие группу AID с платеж категории платежных приложений. Android 4.4 и выше содержит пункт меню верхнего уровня Settings под названием tap & pay , который перечисляет все такие платежные приложения. В этом меню настроек пользователь может выбрать платежное приложение по умолчанию, которое вызывается при касании платежного терминала.

Требуемые активы для платежных приложений

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

Android 13 и выше

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

Android 12 и ниже

Установите размер служебного баннера на 260×96 dp, затем установите размер служебного баннера в XML-файл метаданных, добавив атрибут android:apduServiceBanner в тег , указывающий на доступный для рисования ресурс. следующий пример:


    
        <помощь-фильтр android:name="F0010203040506"/>
        <помощь-фильтр android:name="F0394148148100"/>
    

 

Отключение экрана и поведение при блокировке экрана

Поведение служб HCE зависит от версии Android, на которой Устройство.

Android 12 и выше

В приложениях, предназначенных для Android 12 (уровень API 31) и выше, вы можете включить NFC платежи без включения экрана устройства, установив requireDeviceScreenOn для ложь .

Android 10 и выше

Устройства под управлением Android 10 (уровень API 29) или более высокая поддержка Безопасный NFC. Пока безопасно NFC включен, все эмуляторы карт (хост-приложения и сторонние приложения) включены. недоступен, когда экран устройства выключен. Пока функция Secure NFC отключена, вне хоста приложения доступны, когда экран устройства выключен. Вы можете проверить Безопасная поддержка NFC с помощью isSecureNfcSupported() .

На устройствах под управлением Android 10 и выше тот же функционал для настройки android:requireDeviceUnlock От до true применяется как к устройствам под управлением андроид 9и ниже, но только при отключенном Secure NFC. То есть, если Защищенный NFC включен, службы HCE не могут работать с экрана блокировки независимо от настройки android:requireDeviceUnlock .

Android 9 и ниже

На устройствах под управлением Android 9 (уровень API 28) и ниже контроллер NFC и процессор приложений полностью отключается, когда экран устройство выключено. Поэтому службы HCE не работают, когда экран выключен.

Также на Android 9и ниже службы HCE могут работать с экрана блокировки. Однако это контролируется атрибутом android:requireDeviceUnlock в тег вашей службы HCE. По умолчанию разблокировка устройства не требуется, и ваша служба вызывается, даже если устройство заблокировано.

Если для атрибута android:requireDeviceUnlock установлено значение true для HCE сервис, Android предлагает пользователю разблокировать устройство при следующем случиться:

  • пользователь прикасается к считывателю NFC.
  • считыватель NFC выбирает AID, разрешенный для вашей службы.

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

Сосуществование с картами Secure Element

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

Примечание. Android не предлагает API для прямой связи с безопасным сам элемент.

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

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

Примечание: В то время как ISO/IEC 7816-4 также определяет концепцию частичных совпадений , это не поддерживается устройствами Android HCE.

Рисунок 4 иллюстрирует эту архитектуру:


Рисунок 4. Android, работающий с эмуляцией защищенного элемента и хост-карты.

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

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

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

Регистрация AID безопасного элемента

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

  • Действие, используемое в фильтре намерений, должно быть установлено на СЕРВИС_ИНТЕРФЕЙС .
  • Для атрибута имени метаданных должно быть задано значение СЕРВИС_МЕТА_ДАННЫЕ .
  • XML-файл метаданных должен использовать корневой тег .

    
      <намерение-фильтр>
          
      
      
    
     

Ниже приведен пример соответствующего файла apduservice. xml . регистрация двух AID:


    
        <помощь-фильтр android:name="F0010203040506"/>
        <помощь-фильтр android:name="F0394148148100"/>
    

 

Атрибут android:requireDeviceUnlock не применяется к внешним службам, потому что центральный процессор не участвует в транзакции и, следовательно, не может предотвратить выполнение транзакций безопасным элементом, когда устройство заблокирован.

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

Вызов службы вне хоста

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

HCE и безопасность

Архитектура HCE обеспечивает один из основных элементов безопасности: поскольку услуга защищена BIND_NFC_SERVICE системное разрешение, только ОС может связываться с вашей службой и взаимодействовать с ней. Это гарантирует, что любой APDU, который вы получаете, на самом деле является APDU, полученным ОС от контроллера NFC, и что любой APDU, который вы отправляете обратно, отправляется только ОС, которая, в свою очередь, напрямую перенаправляет APDU на контроллер NFC.

Последняя оставшаяся проблема заключается в том, где вы получаете данные, которые отправляет ваше приложение. к считывателю NFC. Это намеренно отделено в дизайне HCE; оно делает не важно, откуда берутся данные, он просто следит за тем, чтобы они были в безопасности передаются на контроллер NFC и выводятся на считыватель NFC.

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

Параметры и детали протокола

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

Защита от конфликтов и активация протокола Nfc-A (ISO/IEC 14443 тип A)

В рамках активации протокола Nfc-A происходит обмен несколькими кадрами.

В первой части обмена устройство HCE представляет свой UID; Устройства HCE предполагается, что он имеет случайный UID. Это означает, что при каждом касании UID который представляется читателю, представляет собой случайно сгенерированный UID. Из-за этого, Считыватели NFC не должны зависеть от UID устройств HCE как формы аутентификация или идентификация.

Считыватель NFC может впоследствии выбрать устройство HCE, отправив SEL_REQ команда. Ответ SEL_RES устройства HCE имеет как минимум 6-й бит (0x20), указывающий, что устройство поддерживает ISO-DEP. Обратите внимание, что другие биты в также может быть установлен SEL_RES , указывающий, например, на поддержку NFC-DEP. (p2p) протокол. Поскольку могут быть установлены другие биты, читатели, желающие взаимодействовать с Устройства HCE должны явно проверять только 6-й бит, а не сравнить полный SEL_RES со значением 0x20.

Активация ISO-DEP

После активации протокола NFC-A считыватель NFC инициирует ISO-DEP активация протокола. Он отправляет RATS (запрос ответа на выбор) команда. Контроллер NFC генерирует ответ RATS, ATS; АТС не настраивается службами HCE. Однако реализации HCE должны соответствовать NFC Forum. требования к ответу АТС, поэтому считыватели NFC могут рассчитывать на эти параметры устанавливается в соответствии с требованиями NFC Forum для любого устройства HCE.

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

  • TL: длина ответа ATS. Не должен указывать длину больше 20 байт.
  • T0: биты 5, 6 и 7 должны быть установлены на всех устройствах HCE, указывая TA(1), TB(1) и TC(1) включены в ответ ATS. Биты с 1 по 4 указывают FSCI, кодирование максимального размера кадра. На устройствах HCE значение FSCI должно быть между 0ч и 8ч.
  • T(A)1: определяет битрейт между ридером и эмулятором и может ли он быть асимметричный. Для устройств HCE нет требований или гарантий битрейта.
  • T(B)1: биты с 1 по 4 указывают целое число времени защиты кадра при запуске (SFGI). На Устройства HCE, SFGI должны быть <= 8h. Биты с 5 по 8 указывают на ожидание кадра. целое число времени (FWI) и кодирует время ожидания кадра (FWT). На устройствах HCE FWI должно быть <= 8ч.
  • T(C)1: бит 5 указывает на поддержку «расширенных функций протокола». Устройства HCE может поддерживать или не поддерживать «расширенные функции протокола». Бит 2 указывает на поддержку для ДИД. Устройства HCE могут поддерживать или не поддерживать DID. Бит 1 указывает на поддержку НАД. Устройства HCE не должны поддерживать NAD и устанавливать бит 1 равным нулю.
  • Исторические байты: устройства HCE могут возвращать до 15 исторических байтов. NFC читатели, желающие взаимодействовать со службами HCE, не должны делать никаких предположений о содержимое исторических байтов или их наличие.

Обратите внимание, что многие устройства HCE, скорее всего, соответствуют требованиям протокола что платежные сети, объединенные в EMVCo, указали в своих «Бесконтактных Протокол связи». В частности:

  • FSCI в T0 должен быть между 2h и 8h.
  • T(A)1 должен быть установлен на 0x80, что указывает на то, что разрешен только битрейт 106 кбит/с. поддерживается, а асимметричный битрейт между ридером и эмулятором не поддерживается.
  • FWI в T(B)1 должен быть <= 7h.

Обмен данными APDU

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

[PDF] Эмуляция программной карты в мобильных телефонах с поддержкой NFC: большое преимущество или кошмар безопасности?

  • Идентификатор корпуса: 17353628
 @inproceedings{Roland2012SoftwareCE,
  title={Эмуляция программной карты в мобильных телефонах с поддержкой NFC: большое преимущество или кошмар безопасности?},
  автор={Майкл Роланд},
  год = {2012}
} 
  • Michael Roland
  • Опубликовано в 2012 г.
  • Информатика

Программная эмуляция карт — это новый подход к улучшению взаимодействия NFC с устаревшими системами бесконтактных смарт-карт. Впервые он был представлен в мобильных телефонах с поддержкой NFC компанией Research In Motion (RIM) на их платформе BlackBerry. Программная эмуляция карты направлена ​​на открытие и упрощение сложных и строго контролируемых функций эмуляции карты. Хотя эта форма эмуляции карты, избавляющая от элемента безопасности (устройство, жестко контролируемое «крупными игроками»), является отличным… 

medien.ifi.lmu.de

Эмуляция карты на основе доверенного хоста

В этом документе предлагается новый подход к эмуляции карты, называемый эмуляцией карты на основе доверенного хоста (THCE), который опирается на доверенную среду выполнения, которая в настоящее время ЦП для мобильных устройств и реализует безопасную и удобную структуру эмуляции карты.

Эффективная эмуляция карты на основе доверенного хоста на устройствах Android с поддержкой TEE

TEA (т. е. ThcE для Android) обсуждается перенос платформы THCE на устройства Android с поддержкой TEE, что показывает, что подход является многообещающим.

Разница в производительности при эмуляции карты на хосте по сравнению с аппаратным элементом безопасности

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

Практические аппаратные и программные надстройки для повышения безопасности операций с мобильными устройствами

  • D. A. Yepes
  • Информатика

  • 2016

В этой главе описываются и сравниваются четыре основных подхода к хранению платежных ключей и выполнению платежных приложений на мобильных телефонах во время платежей с использованием технологии Near Field Communication (NFC) в точках продаж (POS), а также рассматриваются основы того, как любой из них — даже новый одни — работают с технической точки зрения.

Билетная система NFC с новым подходом обратного режима считывания

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

Мобильная продажа билетов с управлением NFC для транспортных компаний. Проблемы и решения

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

На пути к безопасному облаку защищенных элементов Концепции и эксперименты с мобильными устройствами NFC

Анализируются такие свойства, как безопасность, именование, локализация и кэширование, необходимые для протоколов ретрансляции, используемых для связи между мобильными мобильными устройствами и Grid of Secure Elements (GoSE).

Технология цифровой подписи для системы контроля доступа для мобильных устройств

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

(Ab) с использованием чужих виртуальных машин: запуск апплетов Java Card на виртуальных машинах, отличных от Java Card

  • Michael Roland, J. Langer, R. Mayrhofer
  • Информатика

    MoMM ’13

  • 2013

На основе конкретных сценариев для эмуляторов защищенных элементов для платформы Android оцениваются различия в принципе работы виртуальной машины Java Card и их влияние на Java на основе VM Java. Эмуляция карты оценивается.

Краткое изложение NFC и предоставление метода повышения безопасности в NFC

  • Omid movaghar Islamic
  • Информатика

  • 2017

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

ПОКАЗАНЫ 1–10 ИЗ 26 ССЫЛОК

СОРТИРОВАТЬ ПОРелевантности Наиболее влиятельные документыНедавность

Практические сценарии атак на мобильные устройства с поддержкой Secure Element

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

РЕЧЕТНЫЕ Атаки на мобильные устройства с использованием безопасных элементов — виртуальная карманная пересмотр где злоумышленнику больше не нужна физическая близость к телефону, а простое программное обеспечение ретрансляции необходимо распространить на мобильные устройства жертв и оценить его осуществимость на основе результатов измерений.

Практическая атака NFC-одноранговая эстафета с использованием мобильных телефонов

  • L. Francis, G. Hancke, K. Mayes, K. Markantonakis
  • Компьютерная наука

    RFIDSEC

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

    Практическая ретрансляционная атака на бесконтактные транзакции с использованием мобильных телефонов NFC

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

    Практическая ретрансляционная атака на бесконтактные карты ISO 14443

    • G. Hancke
    • Информатика

    • 2005

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

    Заявление о позиции в области RFID S&P Panel: RFID и посредник

    Разработка протоколов безопасности для смягчения атак «человек посередине» в платежных системах с использованием банковских карт будет включать большинство актуальных тем ИТ-политики за последние десять лет. как подзадачи.

    Взлом виртуальных карманов с использованием ретрансляционных атак на бесконтактные смарт-карты

    • З. Кфир, А. Вул
    • Информатика

      Первая международная конференция по безопасности и конфиденциальности для развивающихся областей в сетях связи (SECURECOMM’05)

    • 2005

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

    Текущие преимущества и будущие направления услуг NFC

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

    Уверенность в близости смарт-токенов: новый взгляд на релейные атаки Безопасность

  • 2009

Ответ на тему «UID для эмуляции тега NFC Mifare» на форумах сообщества службы поддержки BlackBerry

  • -Tagemulation/m-p/1575809,

  • 2012

Эмуляция карты NFC и Android 4.4 (часть I) — Random Oracle

[Полное раскрытие: этот блоггер работал над Google Wallet в 2011–2013 гг.]

Версия Android 4.4, получившая название Kitkat, недавно представила новую (как минимум « new» для официального дистрибутива Android) Функция NFC называется host-based card emulation или сокращенно HCE. HCE является основой для другого подхода к бесконтактным платежам, отхода от исходной стратегии, основанной на встроенном элементе безопасности. Первые признаки этого сдвига появились ранее этим летом с любопытным изменением аппаратных характеристик Nexus 7. Предыдущие устройства Nexus, начиная с Nexus S, содержали встроенный элемент безопасности, критически важную функцию, используемую Google Wallet для платежей NFC. Хотя форм-фактор планшета, возможно, менее удобен для подключения к терминалу в торговой точке — а Wallet работал даже на более крупном планшете Nexus 10 — SE также присутствовал в оригинальном Nexus 7 в 2012 году. Перенесемся на год вперед, его явно не было в обновлении, выпущенном в июле. Точно так же флагманский Nexus 5 был выпущен без встроенного элемента безопасности, став первым продуктом Google 9, полностью совместимым с Google.0003 телефон на сарай SE.

Это плохо для безопасности мобильных устройств в целом; встроенный элемент безопасности имеет множество применений помимо платежей NFC. Здесь есть увлекательный урок динамики рынка: как консорциум американских операторов беспроводной связи, инвестировавший в конкурирующий платежный проект под названием ISIS, успешно помешал развертыванию важной технологии безопасности. Но это обсуждение для другого времени. Этот пост будет посвящен механике HCE и тонкому взаимодействию при попытке сосуществовать со встроенными приложениями SE или SIM на одном устройстве.

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

В режиме эмуляции карты контроллер NFC имитирует поведение смарт-карты ISO-14443. Это позволяет мобильным устройствам заменить отдельные пластиковые карты и ключи, используемые в традиционных приложениях безопасности, таких как платежи EMV, карта PIV правительства США, общественный транспорт, физический доступ с помощью считывателей пропусков и вход в персональный компьютер. Грубо говоря, это включает туннелирование команд ISO7816 через NFC в какое-то приложение, находящееся за контроллером. Здесь в игру вступают различные аппаратные опции. Контроллер NFC — это просто шлюз; это не универсальная вычислительная среда, в которой устанавливаются приложения. Фактическое «карточное приложение» живет на каком-то другом оборудовании, подключенном к контроллеру. Например:

  1. Встроенный безопасный элемент или сокращенно eSE, обычно являющийся частью того же оборудования, что и контроллер NFC. Это был оригинальный подход, примененный к устройствам Android. Например, Nexus S и Galaxy Nexus оснащены чипом PN65N от NXP Semiconductors, объединяющим контроллер PN544, соединенный с защищенной средой выполнения SmartMX.
  2. UICC
  3. или прославленная SIM-карта с дополнительными функциями. Протокол Single Wire Protocol (SWP) – это стандарт для подключения контроллеров Connect UICC и NFC. Именно такой подход использует ISIS для своего мобильного платежного приложения.
  4. Специальные карты micro-SD с защитным элементом. Ни одно серийное Android-устройство не работает в этой конфигурации, но карты µSD, такие как Tyfone SideTap, имеют определенные преимущества. Они легко перемещаются между устройствами и не привязаны к оператору мобильной связи или производителю телефона.
  5. Эмуляция карты на основе хоста. Первоначально реализованный SimplyTapp как патч поверх Cyanogenmod 9, а теперь независимо реализованный Google для Android 4.4. Входящий трафик NFC от внешнего считывателя доставляется в операционную систему хоста, которая генерирует ответ.

Прямое подключение и влияние на безопасность

Одна важная деталь первых трех опций резко контрастирует с эмуляцией карты на хосте. В этих режимах данные, отправленные/полученные, не проходят через операционную систему хоста. Другими словами, это не тот случай, когда eSE выводит данные на Android, который, в свою очередь, перенаправляет этот пакет на контроллер NFC для передачи по радиоканалу. Ссылки на eSE/UICC/µSD и из них прямые. Android никогда не видит этот трафик. Это важная функция безопасности. Рассмотрим платежное приложение, реализованное на eSE. Такое приложение передает конфиденциальную финансовую информацию на терминал торговой точки во время платежных транзакций, включая номера кредитных карт. Если эти данные перенаправляются через хост-ОС, вредоносное ПО, работающее на хосте, может их увидеть. Это свойство обеспечивается прошивкой самого контроллера NFC; это не зависит от какого-либо поведения на стороне Android. Этого не может изменить даже вредоносное ПО, работающее с привилегиями ядра Android.

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

Еще одна тонкость: есть еще подключение от хоста встроенного защищенного элемента, который позволяет хостовой ОС говорить на ISO7816 и обмениваться APDU с SE напрямую. Сначала кажется, что это делает возможной атаку «человек посередине», выполняемую хост-приложениями: вредоносное ПО получает трафик от внешнего считывателя в режиме HCE, обращается к SE напрямую через хост-интерфейс и пересылает ту же команду, как если бы она была получена напрямую через NFC-радио. Между прочим, этот гипотетический пример предполагает, что вредоносное ПО уже взломало систему безопасности Android и выполняется с привилегиями root. Обычные приложения на устройстве без рута ограничены подмножеством операций, предоставляемых стеком NFC. Не определено разрешение, разрешающее привилегированные операции, такие как переключение состояния контроллера. Даже при таких щедрых предположениях атака не удалась по другой причине. Приложения, работающие на SE, могут определить, получена ли данная команда через «проводной» интерфейс, подключенный к хосту, или «бесконтактный» интерфейс, подключенный к антенне NFC. Так называемая логика обнаружения интерфейса является неотъемлемой частью многих стандартов, включая EMV. Это критически важно для того, чтобы операционная система хоста не попала в модель угроз. (Существует также случайный факт, что изменение режима контроллера NFC на PN65N/O приведет к сбросу защитного элемента, потере состояния приложения и дальнейшему срыву попыток ретрансляции команд. Но неразумно полагаться на такие аппаратные особенности.)

[продолжение]

CP

Нравится:

Нравится Загрузка…

Джем Пайя

Мнения и взгляды, выраженные здесь, являются моими собственными и не отражают точку зрения моего работодателя.

Декабрь 2013 г.
М Т Вт Т Ф С С
  1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31  

Ищи:
  • CVV1, CVV2, CVV3: Демистификация данных кредитных карт (1/2)
  • Filecoin, StorJ и проблема с децентрализованным хранилищем (часть I) Authy
  • Чтение паспорта США с помощью Android — обзор
  • Filecoin, StorJ и проблема с децентрализованным хранилищем (часть II)
  • Торговля криптовалютой без доверенных третьих лиц (часть I)
  • HCE против встроенного элемента безопасности: обнаружение интерфейса (часть VI)
  • Обход без паролей: LUKS со смарт-картами (часть II)
  • Мгновенные кредиты и демократизация манипулирования рынком
  • Периодическое напоминание: «Аппаратный кошелек» не означает, что это единственная существующая копия ключа. На самом деле большинство минусов… twitter.com/i/web/status/1… 12 часов назад
  • Недостаток в этом аргументе о деле Uber: Uber не может «вернуть свои данные» Как только злоумышленники получат данные о клиентах, скажем… twitter.com/i/web/status/1… 12 часов назад
  • RT @BLaw: Kirkland & Ellis признала в судебном иске, что некоторые из ее юристов являются клиентами крипто-брокера Voyager Digital Holdings.… 16 часов назад
  • Две возможности: 1. Intel невежественна и жестко запрограммировала ценные закрытые ключи в исходный код 🤦‍♂️ (Кстати: это ке… twitter.com/i/web/status/1… 16 часов назад
  • RT @lcamtuf: Если вы хотите узнать немного больше о «печально известном упражнении Google с плазменным глобусом в 2012 году», я записал несколько технических п… 17 часов назад.
  • RT @DataDrivenMD: 👀 Обзоры Yankee Candle показывают, что COVID снова приближается к всплеску https://t.co/b6j7qhaFob 1 день назад 
  • Для доверия к безопасности поставщика отчеты SOC-2: 2 дня назад
  • TL;DR: Французская прачечная по-прежнему № 1, чтобы запятнать вашу политическую карьеру и начать кампанию по отзыву twitter.

alexxlab

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

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