Skip to content

NFC Seals ru

Andrei Chernikov edited this page Sep 1, 2026 · 6 revisions

NFC-пломбы

🇬🇧 English · 🇷🇺 Русский

Физическая пломба связывает паспорт с физическим объектом. ODP поддерживает номерные защитные пломбы (проверяются глазами) и NFC-крипточипы — сейчас это NXP NTAG 424 DNA и вариант TagTamper (фиксирует, отклеивали ли пломбу).

С v0.6 пломба опциональна. Обязательное опознание физического объекта — это минимум якорей: фото + размеры + материалы + отличительные особенности (см. Профиль Object ID). Пломба — дополнительный якорь (nfc или numbered_seal) поверх этого минимума, рекомендуемый для ценных объектов. Её данные живут в блоке anchors[] паспорта и защищены on-chain через dataHash / anchorsHash — отдельных on-chain полей пломбы больше нет.

Что на самом деле доказывает NFC-проверка (будьте честны с собой)

Модель проверки v0.6 — симметричный challenge-response с опубликованным ключом: 16-байтовый EV2-ключ приложения чипа опубликован внутри целостно-заякоренного якоря nfc, и телефон проверяющего выполняет родную взаимную аутентификацию NTAG 424 DNA (EV2) этим ключом.

PASS означает PASS не означает
Физически присутствует живой чип с заякоренным ключом — а не просто скопированный URL или QR Что чип уникален: ключ публичен, и целеустремлённый подделыватель может записать его на другой NTAG 424
Чип ответил на свежий вызов (не воспроизведённую запись) Что подлинный сам объект — для этого есть якоря опознания и человеческая экспертиза
С TagTamper: петля пломбы ни разу не вскрывалась (иначе постоянный флаг TAMPERED) Что вора с оригинальным объектом и пломбой можно распознать

Что проверка действительно блокирует: фальшивые теги «только с URL», чужие чипы с другим ключом и физически вскрытые пломбы TagTamper. Эталонный Android-компаньон дополнительно требует аутентифицированного совпадения UID и статуса TagTamper INTACT, прежде чем пометить скан как high assurance.

Правило: считайте NFC PASS одним сильным якорем среди нескольких, но никогда — «подлинностью» самой по себе; верификатор, объявляющий подлинность только по проверке чипа, преувеличивает. Полная модель и её честные пределы: SPEC §6 — Physical Seal.

Поддержка телефонов

⚠️ Криптографическую проверку чипа сегодня не делает ни одно приложение ODP — ни на одной платформе. Из всех типов якорей, которые определяет ODP, nfc — единственный, для которого нечего поставить. Если вы решаете, закупать ли метки NTAG 424 DNA под тираж, взвесьте это до заказа.

Что работает прямо сейчас, вообще без приложения: чип несёт обычный URL, поэтому прикосновение к объекту открывает страницу Verify с записью паспорта из цепи. iPhone XS и новее читают метки фоном, Android так же. Это даёт проверку уровня документа — хэши, карточка, якоря, — а это большая часть того, что нужно покупателю, и уже больше, чем несёт на себе почти любой объект.

Что пока не работает: EV2 challenge-response, статус TagTamper и запись ключей в чип. Всем трём нужно нативное приложение с низкоуровневым доступом к чипу.

Как обстоит дело на каждой платформе

  • iPhone — эталонная реализация разрабатывается как приложение ODP для iOS. Платформа это позволяет: Core NFC даёт приложениям доступ к APDU по ISO 7816 с iOS 13. В Safari нет Web NFC, поэтому браузерный сценарий невозможен и приложение — единственный путь.
  • Android — платформа умеет ровно столько же, а Chrome вдобавок поддерживает Web NFC для простого чтения. Android-верификатор ODP начинали и не доделали; он не опубликован и не является эталонной реализацией чего-либо.
  • Mac — NFC-считывателя не было ни в одном Mac за всю историю, так что Mac не может просканировать пломбу в принципе. В устройстве iOS-приложения сканирует телефон, а Mac принимает проверенный результат локальной передачей.

Прошивка чипа

Инструмента ODP для этого пока нет ни на одной платформе. Приложения самой NXP покрывают часть пути — TagWriter пишет URL-носитель, Tag TrustLink умеет аутентифицировать чип, — но ни одно не связывает чип с паспортом ODP, а это и есть тот шаг, который решает, и тот, которого не хватает.

Издателям: обязательный порядок

  1. Прошейте чип до минта (загрузите EV2-ключ, включите TagTamper, если используется).
  2. Отсканируйте живой чип и импортируйте его данные в форму паспорта — это защищает от публикации неверного UID или ключа в блокчейне.
  3. Минтите; затем запишите на чип URL проверки.

Полный сценарий: ISSUER_NFC_FLOW.md.

Clone this wiki locally