Как предотвратить клонирование метки NFC?

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


person codeRider    schedule 05.04.2014    source источник
comment
Вам нужен тег с секретным ключом. Это в аппаратной части.   -  person Bex    schedule 05.04.2014
comment
@ Бекс: я новичок в NFC, не могли бы вы рассказать немного подробнее.   -  person codeRider    schedule 05.04.2014
comment
Desfire EV1 для вас   -  person ThomasRS    schedule 10.04.2014


Ответы (4)


Это зависит от того, какой тип тега вы используете и какой уровень защиты от клонирования вы хотите.

  1. Теги NFC (как определено на форуме NFC) не защищены от клонирования. Такие теги предназначены в качестве контейнеров для свободно читаемых данных (так называемых сообщений NDEF). Любой мог прочитать сообщение NDEF из одного тега и скопировать его в другой тег.

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

  3. Вы можете использовать бесконтактную смарт-карту/метку, которая обеспечивает шифрование связи и управление доступом на основе общего ключа (например, MIFARE DESFire). При таком подходе вы можете хранить данные, которые вы не хотите, чтобы злоумышленник мог клонировать, в области памяти, защищенной ключом. Однако, если вы хотите иметь возможность считывать эти данные из своего приложения (т. е. без онлайн-сервера, который напрямую взаимодействует с картой), вам нужно будет сохранить ключ для доступа к области памяти в вашем приложении. Следовательно, в автономном режиме (т. е. ключ хранится в приложении) злоумышленник может извлечь этот ключ и использовать его для клонирования тега.

  4. Вы можете использовать тег/смарт-карту, содержащую секретный асимметричный ключ и предоставляющую команду для подписания криптографического запроса с помощью этого ключа. В этом случае, чтобы проверить, является ли тег подлинным, вы можете запросить такую ​​подпись у тега для случайного запроса и проверить подпись по тегам, соответствующим открытому ключу. Это, безусловно, будет самым безопасным решением, поскольку вам не нужно хранить какой-либо общий секрет в вашем приложении. Единственным готовым решением для тегов NFC (о котором я знаю в настоящее время), которое обеспечивает такую ​​​​функциональность, кажется, VaultIC от Inside Secure. Хотя вы можете создать его самостоятельно на основе асимметричной криптографической функциональности бесконтактной смарт-карты (например, карты Java).

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

person Michael Roland    schedule 08.04.2014
comment
Очень полезный ответ, он помог мне понять аналогичную реализацию системы, с которой я столкнулся +1 . Знаете ли вы о внешнем ресурсе, описывающем сценарий JavaCard? - person pelican_george; 20.03.2015
comment
Для тех, кто плохо знаком с криптографией, вот полезное краткое описание симметричного и асимметричного шифрования: support. microsoft.com/en-us/kb/246071 . - person ban-geoengineering; 16.02.2016
comment
Не могли бы вы рассказать больше о тегах password protected, например, о любом руководстве по разработке приложения password protected card/tag reading/writing для Android? - person Shawn; 30.06.2019

Да, тем временем можно предотвратить клонирование тега.

Существует новый тег под названием NTAG 413, который может генерировать новое сообщение NDEF каждый раз, когда вы нажимаете на него. (используя криптографию AES) Таким образом, нет необходимости устанавливать отдельное приложение на свой смартфон. Например, вы можете включить шифрование в URL-адрес NDEF, и хост-сервер сможет зашифровать его с помощью того же ключа. В случае копирования сервер распознает его.

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

https://www.variuscard.com/plastikkarten/chipkarten/nfc-ntag-413-dna/

person Michael    schedule 10.10.2017
comment
Это популярно используется в производстве? Я не могу найти эту карту на Taobao.com, самом популярном интернет-магазине Китая. - person Shawn; 30.06.2019

Хотя исходный ответ был правильным, он немного устарел. Добавление Майкла (10, 17 октября) добавило NTAG413. Теперь есть еще один дополнительный чип NFC для аутентификации ДНК NTAG424, который работает таким же образом. Точно так же работает доверенный тег HID и все больше других.

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

person Harry    schedule 23.10.2018
comment
Совместима ли эта метка со смартфоном? - person IAmJulianAcosta; 29.08.2020
comment
да. NTAG424 работает как с Android, так и с iPhone. - person Harry; 08.11.2020

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

person Akshay Abhyankar    schedule 05.04.2014
comment
Неправда, Desfire EV1 не взломали - person ThomasRS; 10.04.2014