Mówi się, że inteligentni ludzie nie zawsze kończą wyścig jako pierwsi. Na studiach pamiętam, jak niektórzy koledzy kopiowali moje zadania, tylko po to, by otrzymać lepsze oceny niż ja. Bycie inteligentnym nie gwarantowało mi najlepszych ocen na uczelni, a obserwowanie, jak inni odnoszą sukces na podstawie moich pomysłów, stało się demotywujące.
Świat biznesu jest podobny; nie jest rzadkością, że firmy kopiują koncepcje, które dobrze sprawdzają się u ich konkurentów i używają ich, aby zdominować rynek. Chociaż etycznie wątpliwe, podrabianie projektów jest właściwie dość powszechne. Jako inżynier projektant, moim zadaniem jest uczynienie podrabiania mojego projektu jak najtrudniejszym.
Abstrahując od pokrywania całej płytki PCB epoksydem, próbowałem każdego możliwego sposobu. Obejmuje to użycie unikalnego ID EEPROM (elektrycznie kasowalnej pamięci tylko do odczytu programowalnej), aby uniemożliwić dokładne skopiowanie mojego sprzętu i sprawienie, by był operacyjny. Włączając unikalne ID EEPROM do swojego systemu wbudowanego, również możesz przygotować się na najgorszy scenariusz i zapobiec podrabianiu projektu.
EEPROM to rodzaj pamięci nieulotnej, która jest użyteczna do przechowywania małych rozmiarów danych. Zazwyczaj jest podłączana do mikrokontrolera za pośrednictwem Inter-Integrated Circuit (I2C) lub Serial Peripheral Interface (SPI). EEPROM jest obecny na scenie elektroniki od dziesięcioleci i jest używany do przechowywania parametrów, takich jak wartości konfiguracyjne.
EEPROM z unikalnym identyfikatorem to EEPROM, który przenosi nieusuwalny identyfikator. Długość unikalnego identyfikatora waha się od 32-bitów do 128-bitów, w zależności od producenta. Teoretycznie, nie ma realistycznej możliwości, aby dwa EEPROMy miały ten sam identyfikator. Jest to podobne do koncepcji unikalnego adresu Media Access Control (MAC) dla urządzeń zdolnych do połączenia z internetem.
W całkowicie niezabezpieczonym systemie wbudowanym, modele podrabiane mogą być łatwo tworzone przez inżynierię wsteczną PCB i ekstrakcję firmware'u z mikrokontrolera. Oczywiście, nawet z włączonymi funkcjami ochrony kodu, duplikowanie firmware'u może być nadal możliwe, choć bardziej wymagające.
Włączenie do projektu EEPROM z unikalnym identyfikatorem i implementacja procedur weryfikacyjnych w firmware'u pomaga zapobiegać masowemu podrabianiu. Oto jak to implementuję w moich systemach wbudowanych:
Stwórz proste oprogramowanie układowe, które odczytuje unikalny identyfikator z EEPROM i zapisuje go do pliku na karcie SD. To oprogramowanie układowe jest programowane tylko do pobierania unikalnego identyfikatora i zostanie później nadpisane przez właściwe oprogramowanie aplikacji.
Weryfikuj na podstawie unikalnego identyfikatora, aby zapobiec ładowaniu podrabianych programów.
Następnie, utwórz specjalną funkcję w oprogramowaniu aplikacji, aby wydobyć unikalny identyfikator z pliku i zapisać wartość w wewnętrznej pamięci Flash mikrokontrolera. Mikrokontroler musi następnie usunąć zapisany plik na karcie SD, po jego bezpiecznym przechowaniu.
W właściwym oprogramowaniu aplikacji, utwórz funkcję, która weryfikuje unikalny identyfikator EEPROM na PCB z zapisanym na stałe identyfikatorem EEPROM w pamięci Flash mikrokontrolera. Pozwala to na działanie skompilowanego oprogramowania układowego tylko z prawidłowym zapisanym na stałe unikalnym identyfikatorem na określonym PCB.
Tak jak w przypadku każdego projektu, bezpieczeństwo i wygoda zawsze znajdują się na przeciwnych końcach spektrum. Żywotność metody ochrony przed podróbkami zależy od charakteru twoich aplikacji oraz przewidywanego wpływu podrabiania na twoje przedsiębiorstwo.
Oczywistą zaletą weryfikacji unikalnego ID jest to, że twój system wbudowany nie może zostać podrobiony hurtowo. Nawet jeśli firmware zostanie wyekstrahowany, jego wstrzyknięcie do wielu PCB nie spowoduje, że jakiekolwiek urządzenia staną się operacyjne. Nie licząc zmuszenia mikrokontrolera do samozniszczenia, jest to najbezpieczniejsza metoda ochrony, jaką kiedykolwiek zaimplementowałem.
Wadą tej metody jest znacznie wolniejszy proces produkcji, ponieważ wiąże się to z pobieraniem firmware do ekstrakcji unikalnego ID i używaniem karty SD. Po zapisaniu unikalnego ID, technik produkcji musiałby wstrzyknąć firmware aplikacji. Co więcej, EEPROMy z unikalnym ID są zazwyczaj droższe niż ich standardowe odpowiedniki.
Spodziewaj się długiego, ale bezpiecznego procesu wstrzykiwania firmware.
Jeśli konsekwencje podrabiania są poważnym zagrożeniem dla Twojego biznesu, umieszczenie unikalnego identyfikatora EEPROM jest najlepszym sposobem na ochronę Twojego projektu. Jest to proste do ustawienia przy użyciu wszechstronnego oprogramowania do projektowania PCB takiego jak Altium Designer®. Jeśli unikalny identyfikator EEPROM nie jest łatwo dostępny w zintegrowanych, możesz łatwo stworzyć jeden, używając standardowego footprintu.
Potrzebujesz więcej wskazówek, jak chronić swój projekt systemów wbudowanych przed podrabianiem?