Советы по аутентификации с использованием NTAG 424 DNA TT

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

Прошу прощения заранее за переписывание Библии, но я не мог обобщить это больше.

Существует много семейств тегов ( ICODE, MIFARE, NTAG...), но после проведения исследования я думаю, что ДНК NTAG 424 соответствует моим требованиям (мне нужны в основном функции аутентификации).

Он поставляется с шифрованием AES, протоколом CMAC и системой 3-проходной аутентификации, и вот тут я и начал нуждаться в помощи.

AES -> Как мне кажется, это блочный шифр для шифрования простых текстов с помощью перестановок и отображений. Является симметричным стандартом и не использует мастер-ключ, вместо этого используются сеансовые ключи, являющиеся их производными от мастер-ключа. (В01: Что я не знаю, так это где эти ключи хранятся в теге. Ключи должны храниться в специализированных HW, но никакие "спецификации" тега не отмечают этого, кроме меток MIFARE SAM.)

CMAC -> Это изменение CBC-MAC для обеспечения безопасности аутентификации для сообщений динамического размера. Если данные не являются конфиденциальными, то для проверки их подлинности можно использовать MAC-адреса, но для обеспечения конфиденциальности и проверки подлинности необходимо использовать "Encrypt-than-mac". Здесь также используются сеансовые ключи, но не те же ключи, которые используются на этапе шифрования.(Q02: Общее представление о CMAC может представлять собой протокол для осуществления проверки наряду с конфиденциальностью, это мое мнение и может быть ошибочным.)

3-проходной протокол -> норма ISO/IEC 9798-2, где тег и считыватель взаимно проверяются. Он также может использовать MAC вместе с ключами сеанса для выполнения этой задачи.(Q03: Я думаю, что это верхний уровень всей системы для проверки меток и считывателей. "Протокол 3 прохода" ретранслирует в MAC функциональность, и, если также необходимы функции конфиденциальности, тогда CMAC может использоваться вместо одного MAC CMAC требует, чтобы AES был функциональным, применяя сеансовые ключи на каждом шаге. Пожалуйста, исправьте меня, если я публикую ошибки дикарей)

/ ********* /

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

PSS: Я совершенно не знаю, где хранятся главные и сессионные ключи на стороне тегов. Должны ли они быть включены отдельным HW вместе с основной цепью NFC?

(Target)

Это делается для реализации процесса взаимной проверки тега и считывателя с использованием метки ДНК-тега NTAG 424. (Цель состоит в том, чтобы избежать копирования 3º сторон, поскольку аутентификация является преобладающей частью, а не конфиденциальностью сообщений)

Недостаток знаний в области криптографии и попытки понять, как AES, CMAC и взаимная аутентификация используются в этом NTAG.

(Дополнительная информация)

NTAG 424 DNA TT: https://www.nxp.com/products/identification-security/rfid/nfc-hf/ntag/ntag-for-tags-labels/ntag-424-dna-424-dna-tagtamper-advanced-security-and-privacy-for-trusted-iot-applications:NTAG424DNA

ISO 9798-2: http://bcc.portal.gov.bd/sites/default/files/files/bcc.portal.gov.bd/page/adeaf3e5_cc55_4222_8767_f26bcaec3f70/ISO_IEC_9798-2.pdf

3-проходная аутентификация: https://prezi.com/p/rk6rhd03jjo5/3-pass-mutual-authentication/

Хранение ключей HW: https://www.microchip.com/design-centers/security-ics/cryptoauthentication

2 ответа

Микросхемы NTAG424 не особенно просты в использовании, но они предлагают некоторые полезные функции, которые можно использовать для различных приложений безопасности. Однако следует отметить одну важную вещь: хотя он в значительной степени полагается на шифрование, со стороны реализации, это не главная проблема, потому что все шифрование aes, вычисления cmac и т. Д. Уже доступны в виде какого-то пакета или библиотеки. на большинстве языков программирования. Некоторые примеры даже приводятся nxp в своих заметках по применению. Например, в python вы сможете использоватьAES пакет from Crypto.Cipher import AESкак указано в одном из примеров примечания по применению.

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

Одно небольшое замечание: если вы работаете с python, на github есть код, который вы можете использовать повторно.

Для iOS я работаю над библиотекой для связи ДНК, NfcDnaKit:

https://github.com/johnnyb/nfc-ДНК-кит

Другие вопросы по тегам