Sześć kroków, w których powstaje zaufanie
Od programowania chipu NTAG 424 DNA, przez wpis do blockchain, aż po weryfikację algorytmem AES-128 CMAC i prezentację certyfikatu klientowi.
Programowanie tagu
Inicjalizacja chipu NTAG 424 DNA
- Generowanie unikalnego identyfikatora UID dla każdego egzemplarza.
- Zapis klucza AES-128 w bezpiecznej, niewydobywalnej pamięci chipu.
- Inicjalizacja licznika CTR (Counter) na wartość 00000001.
- Obliczenie pierwszego MAC algorytmem CMAC zgodnym z NIST SP 800-38B.
Przykład danych tagu
- UID
- 0401020304050607
- Klucz AES
- 2b7e151628aed2a6abf7158809cf4f3c
- CTR
- 00000001
- MAC
- d6a0311fffec7ad91e1edfcd808c70d5
Zapis w bazie danych
Bezpieczne powiązanie tagu z produktem
- UID powiązany z konkretnym egzemplarzem produktu.
- Zaszyfrowany klucz kryptograficzny AES-128.
- Metadane produktu — nazwa, model, numer seryjny, partia.
- Data programowania i bieżący status (aktywny / nieaktywny).
Struktura rekordu
{
"uid": "0401020304050607",
"aes_key": "encrypted_key_here",
"product_info": {
"name": "Sneakers Model X",
"model": "SNK-2024",
"serial": "SN-245-2025-GD"
},
"created_at": "2025-06-15T10:30:00Z",
"status": "active"
}Wpis w blockchain
Niezmienne przypisanie tagu do produktu
- Hash danych tagu trafia do transakcji w łańcuchu bloków.
- Trwałe i niemodyfikowalne powiązanie UID z egzemplarzem produktu.
- Logowanie każdej weryfikacji oraz zmiany statusu.
- Niezależna weryfikowalność przez każdego uczestnika łańcucha dostaw.
Logowane zdarzenia
- Programowanie tagu
- Przypisanie do produktu
- Każda weryfikacja
- Zmiana statusu
- Próby nieautoryzowanego dostępu
Skanowanie przez klienta
Odczyt danych z chipu telefonem
- Klient przybliża telefon do oznaczonego miejsca na produkcie.
- Telefon odczytuje UID, CTR i MAC bezpośrednio z chipu.
- iOS i Android automatycznie otwierają URL z parametrami.
- Klient ląduje na stronie weryfikacji — bez aplikacji i bez logowania.
Adres po skanowaniu
https://dpp.com.pl/trust_tag/verify ?uid=0401020304050607 &ctr=00000001 &mac=d6a0311fffec7ad91e1edfcd808c70d5
Weryfikacja serwerowa
Kryptograficzne sprawdzenie autentyczności
- Serwer pobiera klucz AES powiązany z danym UID.
- Wylicza oczekiwany MAC algorytmem CMAC opartym na AES-128.
- Porównuje wartość wyliczoną z wartością odczytaną z tagu.
- Sprawdza status tagu w blockchain i loguje próbę weryfikacji.
Algorytm CMAC
MAC = CMAC(AES-128, UID || CTR)
if (MAC == received_MAC) {
return "AUTHENTIC"
} else {
return "COUNTERFEIT"
}Wynik + paszport
Jednoznaczna informacja zwrotna dla klienta
- Klient widzi jasny status: oryginał, podróbka, nieznany lub dezaktywowany.
- Wraz z wynikiem prezentowany jest Cyfrowy Paszport Produktu.
- Producent uzyskuje wiarygodne dane analityczne o skanowaniach.
- Negatywne weryfikacje stanowią sygnał wczesnego ostrzegania.
Możliwe wyniki
- Autentyczny — MAC się zgadza, tag jest oryginalny.
- Podróbka — MAC niezgodny — próba fałszerstwa.
- Nieznany — UID nie istnieje w bazie danych.
- Dezaktywowany — Tag został wyłączony.
Bezpieczeństwo całego łańcucha
Klucz AES nigdy nie opuszcza chipu ani środowiska serwera. Dane logowane w blockchain są niezmienne — niezależnie audytowalne przez każdego uczestnika łańcucha dostaw.
Klucz nie do wydobycia
Chip NTAG 424 DNA przechowuje klucz w pamięci niewyciągalnej. Nawet posiadanie fizycznego tagu nie umożliwia jego sklonowania.
Odporność na replay
Licznik CTR rośnie z każdym odczytem. Przechwycenie zapytania nie pozwala na powtórzenie weryfikacji innym tagiem.