Odpady przy flashowaniu w terenie
Zespoły, które programują firmware dopiero po opuszczeniu linii PCBA, zwykle zaniżają wskaźnik odpadów. Sztuka, która nie przyjmuje firmware'u na stole integratora, trafia do naprawy, zwrotu lub na złom, a koszt księgowany jest w innym miejscu niż koszt PCBA.
Gdy odpady mierzy się od początku do końca, ich poziom przy flashowaniu pozaprodukcyjnym wynosi zwykle od 1 do 4 procent. Na partii 1000 sztuk to 10 do 40 sztuk do uniknięcia w naprawach lub stratach. Flashowanie po stronie produkcji obniża ten wskaźnik na większości linii poniżej 0,5 procenta, ponieważ tryb awarii wychwytuje stanowisko testowe, a nie integrator.
Dryf konfiguracji
Sztuki programowane w różnych sesjach, z różnymi rewizjami firmware'u, przez różnych operatorów, dryfują w swojej konfiguracji. Wartości kalibracji, ustawienia sieciowe, flagi debugowania. Dryf jest niewidoczny przy odbiorze i kosztowny na etapie integracji, gdy jedna sztuka zachowuje się inaczej niż kolejna.
Flashowanie po stronie produkcji prowadzi każdą sztukę przez tę samą sekwencję, z tym samym hashem firmware'u, tym samym szablonem provisioningu i tym samym podpisanym bootloaderem. Dryf konfiguracji spada do zera.
Wymuszanie podpisanego firmware'u
Dołożenie wymuszania podpisanego bootloadera do produktu, który już jest w produkcji, jest uciążliwe. Wypalanie fuse'ów, przekazanie kluczy, cykl weryfikacji, wszystko to trzeba dorobić do procesu, który nie został pod to zaprojektowany.
Gdy linia produkcyjna od początku jest projektowana wokół podpisanego firmware'u, sprawa jest prosta. Najpierw zapisywany jest bootloader z odniesieniem do klucza podpisującego, następnie aplikacja z weryfikacją hasha, a na końcu wypalany jest eFuse, który blokuje cały łańcuch.
Gotowość pod CRA
Cyber Resilience Act zakłada traceability firmware'u dla każdej sztuki. Egzemplarz wysłany dziś może wymagać aktualizacji bezpieczeństwa za trzy lata, a producent musi wiedzieć, z jaką wersją firmware'u opuścił fabrykę.
Flashowanie po stronie produkcji rejestruje hash firmware'u razem z numerem seryjnym w bazie danych. Flashowanie w terenie takiego logu nie tworzy, chyba że integrator zbuduje go osobno, czego zwykle nie robi.
Kiedy flashowanie po stronie produkcji się opłaca
W uproszczeniu: w każdym produkcie, w którym wersje firmware'u są na tyle stabilne, by zatwierdzić je dla partii produkcyjnej, i w którym koszt jednostkowy flashowania w terenie lub dryfu konfiguracji daje się zmierzyć. W większości urządzeń sieciowych z obszaru przemysłu, automatyki budynkowej, energetyki i kontroli dostępu próg ten zostaje przekroczony wcześnie w NPI.
Dla produktów, w których firmware zmienia się co tydzień w trakcie NPI, proszę wstrzymać się z flashowaniem po stronie produkcji, dopóki bootloader i klucze podpisujące się nie ustabilizują, i dopiero wtedy przenieść ten krok inline.
Źródła
- Raporty branżowe IPC dotyczące testów produkcyjnych i wskaźników flashowania
- Espressif, dokumentacja produkcyjna "Secure Boot v2"
- NXP, przewodniki produkcyjne "Secure boot and trust provisioning"