Odbiorcy: Ten artykuł jest skierowany do inżynierów bezpieczeństwa sprzętu, specjalistów ds. ochrony marki OEM/ODM, osób odpowiedzialnych za zgodność z przepisami oraz zespołów zakupowych oceniających, czy interfejsy debugowania JTAG, SWD, UART i inne w piórze czytającym SmartReadingPen są prawidłowo wyłączone w produkcji — oraz jakie nieodwracalne procedury przepalania bezpieczników muszą zostać wykonane, zanim jakiekolwiek urządzenie dla dzieci trafi do szkoły lub gospodarstwa domowego.
Pióro czytające, które jest dostarczane z włączonym portem JTAG, to pióro czytające, które każdy atakujący z kablem za 20 USD może przejąć. Podłącz cztery piny do sondy JTAG, zatrzymaj Cortex-A53, zrzuć cały obraz firmware z NAND, wyciągnij klucze AES z interfejsu testowego bezpiecznego elementu i wynieś klucz podpisywania firmware, hash kodu PIN rodzica oraz klucz deszyfrujący model klonowania głosu. Wszystko w niecałe 10 minut. Algorytm kryptograficzny jest niezłamny; tylne drzwi zostały szeroko otwarte.
To jest notatka inżynieryjna dotycząca naszego blokowania interfejsów debugowania: wyłączenie JTAG, wyłączenie SWD, blokada UART, przepalanie bezpieczników, provisioning OTP oraz protokół audytu fabrycznego, którego należy wymagać od każdego dostawcy piór czytających OEM przed przyjęciem partii produkcyjnej.
1. Powierzchnia ataku interfejsu debugowania
Nowoczesny SoC pióra czytającego udostępnia wiele interfejsów debugowania, z których każdy jest potencjalnymi tylnymi drzwiami:
| Interfejs | Piny | Funkcja | Ryzyko, jeśli włączony |
|---|---|---|---|
| JTAG (IEEE 1149.1) | 5 pinów (TCK, TMS, TDI, TDO, TRST) | Pełne zatrzymanie CPU, odczyt/zapis pamięci, odczyt bezpieczników | Krytyczne |
| SWD (ARM Serial Wire Debug) | 2 piny (SWDIO, SWCLK) | Takie samo jak JTAG, ale mniejsza liczba pinów | Krytyczne |
| UART (konsola szeregowa) | 2 piny (TX, RX) | Logi bootowania, czasem powłoka root | Wysokie |
| Pady testowe SPI / I2C | 2–4 piny | Odczyt NAND, czasem tryb testowy SoC | Wysokie |
| Tryb urządzenia USB | Para różnicowa | Może ujawnić DFU (Device Firmware Update) | Średnie |
| HCI Wi-Fi / BT | Antena | Może ujawnić logi firmware, czasem komendy AT | Średnie |
Produkcyjne pióro czytające musi mieć wszystkie sześć interfejsów wyłączonych lub zabezpieczonych kryptograficznym uwierzytelnianiem. Cokolwiek mniej to tylne drzwi.
2. Trzy warstwy blokady
Nasze blokowanie interfejsów debugowania składa się z trzech niezależnych warstw:
- Bezpiecznik sprzętowy — bezpiecznik OTP, który fizycznie wyłącza dostęp JTAG/SWD do logiki debugowania CPU. Po przepaleniu nie może zostać przywrócony; bit bezpiecznika jest odczytywany przez SoC przy resecie i bramkuje logikę debugowania.
- Wyłączenie programowe — firmware, który jawnie wyłącza konsolę UART, tryb testowy SPI i tryb USB DFU. Oprogramowanie może zostać pokonane przez atakującego, który może reflashować, dlatego jest warstwowane na szczycie bezpiecznika sprzętowego.
- Uwierzytelnianie kryptograficzne — nawet przy przepalonym bezpieczniku sprzętowym i wyłączonym oprogramowaniu, niektóre interfejsy (USB, Wi-Fi) pozostają fizycznie dostępne dla swojej głównej funkcji. Są one zabezpieczone uwierzytelnionym certyfikatem debugowania, który OEM podpisuje wyłącznie do użytku fabrycznego.
3. Procedura przepalania bezpiecznika JTAG/SWD
SoC udostępnia bit bezpiecznika wyłączającego JTAG/SWD w swoim bloku pamięci OTP. Procedura przepalania bezpiecznika jest wykonywana na każdym egzemplarzu w fabryce, na stacji testów końcowych:
- Konfiguracja stacji testowej. Pióro jest podłączane do fabrycznego urządzenia testowego przez port USB-C. Urządzenie testowe podaje zasilanie i uruchamia produkcyjny obraz testowy.
- Sprawdzenie włączenia JTAG. Urządzenie testowe najpierw próbuje podłączenia JTAG. Udane podłączenie loguje pióro jako wadliwe; linia zostaje zatrzymana, a egzemplarz odrzucony.
- Polecenie programowe. Urządzenie testowe wydaje polecenie programowe przez obraz testowy:
fuse_blow(jtag_disable). Polecenie zapisuje bit fuse OTP. - Weryfikacja. Fixture ponownie próbuje JTAG. Sonda powinna teraz zgłosić "0x0" na wszystkich rejestrach. Pomyślny odczyt zer jest rejestrowany w bazie danych fabryki.
- Blokada trwała. Po przepaleniu fuse nie można przywrócić, nawet przez OEM. Jedynym sposobem ponownego włączenia JTAG jest wymiana SoC.
Przepalanie fuse OTP wykorzystuje wewnętrzną pompę ładunkową SoC; nie jest przykładane napięcie zewnętrzne. Komórka fuse ma strukturę antifuse, która fizycznie przepala metalowe połączenie — widoczne pod mikroskopem jako niewielka pustka.
4. Blokada konsoli UART
UART jest najczęściej pozostawianym otwartym interfejsem w urządzeniach dla dzieci, ponieważ jest przydatny do diagnostyki fabrycznej. Nasza blokada:
- Fuse wyłączający konsolę — drugi fuse OTP wyłącza logikę wyświetlania konsoli w bootloaderze ROM.
- Niestandardowa kompilacja firmware z flagą
-print0(bez wyjścia UART) — produkcyjny firmware aplikacji jest budowany z flagą usuwającą wszystkie instrukcje print na UART. - Fizyczne usunięcie padów — w SKU Q8 i T2 pady TX/RX UART są fizycznie odcinane laserem fabrycznym po stacji testowej. Cięcie laserowe jest weryfikowane testem ciągłości.
- Ponowna autoryzacja UART — jeśli wymagany jest debug UART do legalnej naprawy fabrycznej, OEM musi podpisać jednorazowy certyfikat debugowania, który odblokuje UART na dokładnie 4 godziny, a następnie automatycznie się ponownie zablokuje.
4-godzinny certyfikat debugowania wymaga HSM (Hardware Security Module) OEM i jest rejestrowany w naszej fabrycznej bazie audytowej. Naprawy poza tym oknem wymagają odesłania pena przez klienta do fabryki.
5. Blokada USB DFU
USB Device Firmware Update (DFU) to przydatny interfejs fabryczny, ale niebezpieczna powierzchnia ataku. Nasza blokada:
- Fuse wyłączający DFU — trzeci fuse OTP wyłącza tryb DFU w ROM SoC.
- Autoryzacja DFU na poziomie aplikacji — jedyną ścieżką aktualizacji firmware jest mechanizm OTA, który wymaga podpisu ECDSA z klucza podpisującego OEM.
- Blokada deskryptorów USB — deskryptory USB zgłaszają urządzenie tylko do odczytu typu mass storage lub HID, a nie urządzenie DFU.
Połączenie to uniemożliwia atakującemu wykorzystanie hosta USB do ponownego flashowania pena firmware'em atakującego, nawet jeśli ma fizyczny dostęp do portu USB-C.
6. Blokada HCI Wi-Fi/Bluetooth
Radio Wi-Fi i Bluetooth są interfejsami produkcyjnymi, które muszą pozostać funkcjonalne, ale ich interfejsy Host Controller Interface (HCI) mogą ujawniać logi firmware i komendy AT. Nasza blokada:
- Autoryzacja komend HCI — tylko podpisane komendy HCI z procesora aplikacyjnego są akceptowane przez chipset Wi-Fi/BT.
- Blokada firmware produkcyjnego — firmware chipsetu Wi-Fi/BT jest zablokowany do konkretnej wersji podpisanej przez OEM; ponowne flashowanie wymaga obrazu podpisanego przez OEM.
- Usuwanie logów — produkcyjny firmware usuwa wszystkie instrukcje logów debugowania ze sterownika Wi-Fi/BT.
Jest to część szerszego briefu bezpieczeństwa BLUE/ Wi-Fi , ale blokada debugowania dotyczy konkretnie bramkowania HCI.
7. Certyfikat debugowania do legalnego dostępu fabrycznego
OEM zachowuje certyfikat debugowania , który może odblokować interfejsy debugowania do legalnego użytku fabrycznego. Certyfikat jest certyfikatem X.509 podpisanym przez HSM OEM, o następujących właściwościach:
| Właściwość | Wartość |
|---|---|
| Okres ważności | 4 godziny od wydania |
| Dozwolone interfejsy | Tylko UART; JTAG/SWD trwale zablokowane |
| Dozwolone operacje | Odczyt pamięci; brak zapisu pamięci |
| Powiązanie z numerem seryjnym pena | Certyfikat jest ważny dokładnie dla jednego numeru seryjnego pena |
| Rejestrowanie audytu | Każde zdarzenie odblokowania jest rejestrowane w HSM OEM |
Certyfikat jest dostarczany do pena przez fabryczny fixture testowy i jest jednorazowy (single-use). Drugie odblokowanie wymaga nowego certyfikatu z HSM, co wymaga zatwierdzenia multi-signature 2-of-3 przez inżynierów OEM.
8. Audyt fabryczny 100%
Każdy produkcyjny pen jest testowany na stacji końcowej QC w celu weryfikacji blokady debugowania:
- Test sondy JTAG — próba podłączenia JTAG; oczekiwany odczyt "0x0"; rejestracja pass/fail.
- Test sondy SWD — próba dołączenia SWD; oczekiwany odczyt "0x0"; logowanie pass/fail.
- Test konsoli UART — ustawienie 115200 baud na padach UART; oczekiwany brak wyjścia; logowanie pass/fail.
- Test USB DFU — wysłanie polecenia USB DFU; oczekiwana odpowiedź "unauthorized"; logowanie pass/fail.
- Test Wi-Fi HCI — wysłanie surowego polecenia HCI; oczekiwane "unsupported"; logowanie pass/fail.
Awaria w którymkolwiek z 5 testów powoduje odrzucenie pióra i skierowanie go do stacji rework. Wskaźnik odrzuceń w produkcji wynosi 0.4% (typowe przyczyny: wada komórki fuse, nieczyste cięcie pada UART, błędnie skonfigurowany deskryptor USB). Wszystkie zdarzenia odrzuceń są rejestrowane w fabrycznym MES i przeglądane co tydzień przez zespół QA.
Wskazówka dla kupującego: Zawsze wymagaj kopii dziennika audytu fabrycznego dla swojej partii produkcyjnej. Dostawca, który nie może okazać dziennika, albo nie przeprowadza audytu, albo ukrywa awarie. W obu przypadkach nie przyjmuj partii.
9. Scenariusz odzyskiwania w terenie
Pióro zwrócone przez klienta z podejrzeniem usterki oprogramowania nie może być debugowane w terenie, ponieważ interfejsy debugowania są zablokowane. Procedura odzyskiwania:
- Klient zwraca pióro do centrum serwisowego OEM z opisem usterki.
- Centrum serwisowe weryfikuje usterkę jedynie testem włączenia i przycisku.
- Jeśli usterka jest odtwarzalna, centrum serwisowe wydaje certyfikat debugowania podpisany przez OEM z HSM, odblokuje UART na 4 godziny i uruchamia diagnostykę.
- Jeśli usterka dotyczy firmware, centrum serwisowe ponownie flashuje ścieżką OTA (która działa niezależnie od stanu blokady debugowania) i zwraca pióro.
- Jeśli usterka dotyczy sprzętu, centrum serwisowe wymienia moduł PCB w ramach RMA i utylizuje oryginał w bezpiecznym strumieniu e-odpadów.
4-godzinne okno zmusza centrum serwisowe do wykonania diagnostyki w jednej zmianie, zapobiegając nadużywaniu okna w weekendy lub podczas urlopów.
10. Personalizacja OEM i plan rozwoju
Dla klientów hurtowych piór czytających z niestandardowym firmware oferujemy trzy poziomy blokady:
| Poziom | Co jest zablokowane | Zastosowanie | NRE |
|---|---|---|---|
| Standard | Wszystkie 5 interfejsów trwale zablokowanych | Sprzedaż konsumencka | $0 |
| Premium | Tak samo jak Standard + siatka antytamperowa + zalew ochronny | Flota szkolna K-12 | $1,20/szt. |
| Obrona | Wszystko powyżej + lista unieważniania certyfikatów debugowania + dziennik audytu przez cały cykl życia | Zastosowania rządowe / wrażliwe | $4,50/szt. |
Roadmapa na rok 2027 dodaje bezpieczniki reagujące na sabotaż: antifuse wykrywający próby fizycznego odsłonięcia układu, który sam się przepala, zerując klucze. Jest to część szerszego strumienia prac dotyczącego bezpiecznego elementu i ochrony przed sabotażem.
Powiązane lektury
- Kryptografia i TrustZone w długopisie czytającym
- Bezpieczny element i ochrona przed sabotażem w długopisie czytającym
- Bezpieczny rozruch i ochrona przed cofaniem wersji w długopisie czytającym
- Hartowanie przed wstrzykiwaniem błędów i atakami glitch w długopisie czytającym
- Ataki kanałem bocznym i kryptografia w stałym czasie w długopisie czytającym
- Opakowanie z widocznymi śladami sabotażu i plomba antytamperowa w długopisie czytającym
11. Pokrycie SKU i przepustowość fabryki dla 11-modelowej oferty
Tryb blokady debugowania jest obowiązkowy we wszystkich 11 SKU. Modele z poziomu podstawowego B1, B2, P2 i KF1 są dostarczane ze standardowym poziomem zabezpieczeń ($0 NRE) i wykorzystują tę samą komórkę antifuse, która w ciągu 12 ms rozładowuje ładunek 1,8 V przez metalowe połączenie; współczynnik braków fabrycznych na poziomie standardowym wynosi 0,4%. Modele ze średniego poziomu F8, K7, Q6 i L5 posiadają poziom standardowy oraz dodatkową stację cięcia laserowego UART za dodatkowe $0,06 za sztukę. Modele premium Q8, T2 i Y6 posiadają pełny poziom obronny za $4,50 za sztukę, co dodaje siatkę reagującą na manipulację, która automatycznie zeruje klucze, jeśli obudowa zostanie otwarta o więcej niż 1,2 mm. Oprogramowanie sprzętowe T2 to 2.6.4 z ogniwem Li-ion 18650 o pojemności 2,500 mAh zapewniającym 14 godzin pracy; oprogramowanie sprzętowe Q8 to 3.3.1; oprogramowanie sprzętowe Y6 to 2.6.4 z awaryjnym połączeniem komórkowym 4G do weryfikacji sygnatur oprogramowania OTA. Każda seria produkcyjna posiada unikalny certyfikat na sztukę wypalony w zabezpieczonym elemencie NXP SE050 podczas wytwarzania. Przepustowość na stacji blokady wynosi 320 sztuk na zmianę na linii Q8, 240 sztuk na zmianę na linii T2 oraz 280 sztuk na zmianę na linii Y6. Wszystkie trzy SKU premium są dostarczane z 18 aktywnymi certyfikatami, w tym CE w ramach RED/EMC/LVD, FCC Part 15B, UKCA, EN 71-1/2/3, ASTM F963-17, CPSIA/CPC, RoHS, REACH, PSE, KC, GCC/SFDA, SNI, NOM, INMETRO, RCM, ISED, UN38.3 oraz IEC 62133-2.
12. Warunki handlowe, kody HS oraz warunki płatności dla programów OEM
Długopisy czytające są klasyfikowane kodem HS 8543.70 przy wwoźle jako samodzielne urządzenia elektroniczne lub 9503.00 przy sprzedaży w zestawie prezentowym z dołączoną zabawką. Warunki handlowe to EXW, FOB, CIF, DDP oraz DAP; nabywcy OEM zazwyczaj wybierają FOB Shenzhen dla konsolidacji frachtu lotniczego lub DDP dla dostawy bezpośrednio do magazynu w UE, USA, krajach Zatoki Perskiej oraz rynkach ASEAN. Płatność to T/T 30/70 z 2,4% rabatem za wczesną płatność, gdy saldo jest przelewane w ciągu 14 dni od faktury, L/C za okazaniem dla nowych nabywców powyżej $50,000, OA dla kont ustabilizowanych z dobrą historią kredytową oraz PayPal lub karta kredytowa dla próbek poniżej $1,000. MOQ wynosi 500 sztuk dla neutralnego stanu magazynowego B1/B2/P2/KF1, 1,000 dla niestandardowego koloru oraz od 3,000 do 5,000 dla programów z prywatną formą i private label. Ceny jednostkowe EXW Shenzhen mieszczą się w przedziale od $3,80 do $14,50 w całej linii: Q8 w $14,20 MOQ 1,000, T2 w $14,50 MOQ 500, Y6 w $13,80 MOQ 500, K7 w $9,40, F8 w $8,90, KF1 w $7,20, Q6 w $7,80, L5 w $10,50, B1 w $4,20, B2 w $4,80 oraz P2 w $3,80. Od 2023 roku wysłaliśmy ponad 47,000 sztuk do 47 krajów dla ponad 230 dystrybutorów.