Эмулировать карты Mifare с Android 4.4

Я исследовал Mifare и другие эмуляции карты у меня есть очень хорошие знания в программировании (не андроид, но с/с++). У меня proxmark и я сделал несколько кодов эмуляции для proxmark, поэтому я знаю, как карты взаимодействуют.

Я не'т в настоящее время понял, андроид включить полную эмуляцию карты. Я исследовал это в течение 3 дней теперь, и в заключение-нет одной постоянной схеме. Некоторые люди говорят, что это возможно, некоторые говорят, что это не так. Я посмотрел через API Android и хост-эмуляции карты, кажется, быть в состоянии сделать трюк, но как я понял это новая фишка в 4.4 КитКат, у кого-нибудь есть опыт с этим?

Чтобы сделать вещи простыми, в настоящее время я'м исследуя основные наиболее простой эмуляции Mifare сверхлегкий. Эта карта-это кошмар безопасности, нет шифрования и только около 10 функций, которые она делает. Поэтому я'м заинтересованы в начале исследования с этой картой, потому что его легче всего воспроизвести.

Так у кого-нибудь есть знания в эмуляции карты на Android. Может быть, не через акции ОС. Любая вещь, которую стоит знать, буду очень признателен.

Спасибо.

Комментарии к вопросу (4)
Решение

С хост-эмуляции карты (HCE) в Android 4.4 вы можете только эмуляция протокола ИСО/МЭК 14443-4. Более конкретно можно только эмулировать структуры приложения в соответствии с ИСО/МЭК 7816-4 (таким образом приложения эмуляции карты должны быть выбраны хотя помощь). Кроме того, этот API не'т дать вам какой-либо способ определить, если эмуляция карты должна быть сделано, используя тип А или тип в протокол.

Итак, что касается эмуляции различных протоколов стандарта Mifare:

  • Mifare сверхлегкий (и производные) протокол работает поверх ИСО/МЭК 14443-3. Это не возможно, чтобы эмулировать карты с использованием таких протоколов низкого слоя с использованием HCE с Андроид.
  • Mifare классический протокол частично работает на верхней части ИСО/МЭК 14443-3 (с разных кадрирование). Таким образом, ее также не удалось эмулировать Mifare классический ЖКХ через Андроид.
  • Технологии Mifare desfire и протоколы работают поверх ИСО/МЭК 14443-4. Есть три варианта протокола с desfire:
  1. нативный протокол: как этот протокол не пользуется поддержкой в соответствии с ИСО/МЭК 7816-4 его не возможно эмулировать ее с помощью ЖКХ Андроида.
  2. завернул собственный протокол: этот протокол использует поддержкой в соответствии с ИСО/МЭК 7816-4, однако, читателей обычно не выдает команду select с использованием прочитайте и помощь, когда начинаю общаться с карточки, завернутые в родной командный режим. (Примечание: в новых реализациях считывателя более правоподобны для того чтобы оформить выберите команду, которая совместима с ЖКХ Android, как это также требуется для некоторых из компании NXP'ы новые продукты смарт-карты с эмуляцией протокола сильн.)
  3. ИСО протоколом: этот протокол основан на стандарте ISO/МЭК 7816-4 и использует выбор приложения с помощью. Таким образом, это может быть возможным, чтобы смоделировать этот протокол через Андроид ЖКХ.

<б></б>

Некоторые читатели могут требовать определенных значениях параметров в нижние слои протокола (например, конкретного теплоносителя каскад-уровня, определенное значение ATQA, определенное значение Сак, или в некоторых САР). ЖКХ андроид не имеет никаких средств, чтобы установить эти значения. См. редактирование функциональных возможностей эмуляции карты в Android для возможного изменения этих значений на определенных укоренившихся устройств и мой ответ на размещенное эмуляция карты с фиксированным карты ID для стратегии программно изменять эти значения в пользовательские ROM.

Обратите внимание на особенность ЖКХ доступны в CyanogenMod начиная с версии 9.1 до версии 10.2: это позволит эмулировать любой ИСО/МЭК 14443-4 протокол без требования для структуры приложения в соответствии с ИСО/МЭК 7816-4. Вы даже можете выбрать, если вы хотите эмулировать Тип A или тип B протокол. Так что это должно быть возможно (хотя я не'т тестирование), чтобы эмулировать любой из трех протоколов сильн. Однако, даже с функцией ЖКХ из CyanogenMod невозможно эмуляцию Mifare Ultralight или классические протоколы. Кроме того, он's также не позволяет влиять на низком уровне параметров протоколов, таких как жидкости, ATQA, Сак и САР.

Комментарии (5)

Я провел несколько недель, исследуя эту тему год назад и мой вывод на основе текущей реализации: Эмуляция Mifare классицистическая можно, но только через встроенный защищенный элемент, этот элемент встраивается в компании NXP'чип с поддержкой NFC (чип PN65 причине, например, на Samsung I9300 с складным дизайном).

Я был в состоянии полностью имитировать классический Mifare карты, используя скрытые функции в android_external_libnfc-компания NXP библиотека. Хотя я только мог прочитать карту и для того, чтобы быть полезным вам нужен доступ к защищенному элементу, где существует в большинстве случаев апплет компанией NXP, это сервера апплет как фронтенд для управления эмулируемой карты.

Хороший способ, чтобы продолжать этот поиск будет путем обратного проектирования от Google's применение бумажник.

Комментарии (1)

В технологии Mifare сверхлегких чип MF0ICU1 (16 страниц х 4 байта каждый) - это действительно кошмар, но не может быть воспроизведена на любой компании NXP интерфейсов, включая PN53x, потому что они жестко первый УИД байт (UID0) в бит 0x08, а это означает, что тег имеет случайную жидкость (по данным компании NXP стандартам). Вам нужны UID0 = 0х04 на эмуляцию Mifare сверхлегких.

Существует отдельное Mifare сверхлегкий эмулятор, которая позволяет любое значение для UID0, имеет сбрасываемый ОТП, замок и блок-замок битов. Смотрите руководство для получения дополнительной информации.

Комментарии (0)

Короткий ответ: да. Однако зависит от многих факторов, таких как версия Android, телефон'чип с NFC и др.

Чтобы знать, если ваша поддержка устройства это просто скачать некоторые приложения, такие как " на&quotРегистрация ЯТЦ; по Tapkey, и он будет информировать вас, если классический &амп карточка; карточка Mifare сверхлегких поддерживаются. Существует также список вверх-к-дата, но, видимо, там могут быть некоторые несоответствия: https://www.shopnfc.com/en/content/7-nfc-compatibility

Теперь вопрос "как и". Я не нашел приложение, чтобы использовать новый Android'ы размещенное карты эмуляции (ЖКХ) для этой цели (см. здесь): https://stackoverflow.com/questions/11523765/how-well-does-the-android-nfc-api-support-mifare-desfire/26775311

На самом деле это недавно было предложено формата Mifare, которые вы должны использовать "по надежности элемент" и вместо способ: https://www.mifare.net/support/forum/topic/emulate-mifare-classic-1k/

Возвращаясь к вашему вопросу из сверхлегкого, основная трудность заключается в том, что API Android определяет как сегодня отправить случайный uid на каждое нажатие, как это предлагали предыдущие nCypher пользователей: https://developer.android.com/guide/topics/connectivity/nfc/hce

В качестве альтернативы root доступ (или изготовленный на заказ ЦИАН дисков) может помочь изменить идентификатор, такой как в этом примере: http://osgt7405i.bkt.clouddn.com/help/en/index.html?t=1536931682474

Однако новейшие API Android относится непосредственно к сверхлегкий объекта: https://developer.android.com/reference/android/nfc/tech/MifareUltralight

Я знаю некоторые компании, которые подражают этим хранилищем сим. Для использования телефона в качестве RFID карт этих типов формата Mifare, Mifare имеет уже принято одно решение, где бизнес может загрузить карты в облаке https://www.mifare4mobile.org/ связанные с их перевозчика SIM-карты. Есть список официально сертифицированных и NFC чипы, которые работают, большинство из них справку по NPX, которые широко вошли в смартфонах.

Однако их решение представляет собой API и SDK (а именно TapLinx). Нет чистого программного продукта от компании NXP доступен, как любой телефон программного обеспечения эмуляции или базу облачных решений.

Что's больше, форум карточка говорит об этом: https://www.mifare.net/support/forum/topic/creating-nfc-android-app-to-act-as-mifare-card-to-interact-with-mifare-readers/

Комментарии (0)