Wybór właściwej architektury pamięci dla bezpieczeństwa oprogramowania sprzętowego

June 2, 2026
najnowsze wiadomości o firmie Wybór właściwej architektury pamięci dla bezpieczeństwa oprogramowania sprzętowego

Pomimo rosnącej liczby ataków sieciowych na urządzenia IoT, bezpieczeństwo oprogramowania sprzętowego często schodzi na drugi plan. Ponieważ napastnicy penetrują stos systemowy i celują w proces rozruchu oraz podstawową konfigurację sprzętową, wybór architektury pamięci stał się kluczową decyzją przy ustanawianiu weryfikowalnego łańcucha zaufania.

Dlatego zapewnienie bezpieczeństwa oprogramowania sprzętowego wymaga, aby każdy komponent przeszedł weryfikację szyfrowania przed wykonaniem. Ta ścieżka zaczyna się od niezmiennego modułu ładującego, który jest odpowiedzialny za ładowanie i weryfikację głównego oprogramowania sprzętowego. Jednakże technologia pamięci zastosowana na każdym etapie może powodować podatność oprogramowania sprzętowego na nieautoryzowane modyfikacje.

Wewnętrzna i zewnętrzna pamięć flash
Fizyczna lokalizacja pamięci nieulotnej używanej do przechowywania oprogramowania sprzętowego jest jednym z najważniejszych czynników w modelach zagrożeń urządzeń. Inżynierowie oprogramowania sprzętowego muszą dokonać wyboru pomiędzy wbudowaną w chip pamięcią flash (eFlash) a zewnętrznymi modułami flash podłączonymi za pośrednictwem interfejsów szeregowych, takich jak SPI lub QSPI.

Wbudowana pamięć flash jest zwykle integrowana bezpośrednio z mikrokontrolerami lub układami SoC. Architektura ta zapewnia najwyższy poziom bezpieczeństwa fizycznego, ponieważ nie ma zewnętrznych magistrali, którymi atakujący mogliby manipulować. Nawet dostęp do wewnętrznej pamięci flash jest kontrolowany przez dedykowane rejestry i bity blokujące.

Ponadto wbudowana pamięć flash zapewnia stałą ochronę przed odczytem. Zwierając specjalistyczne bezpieczniki bezpieczeństwa, programiści mogą wyłączyć interfejsy debugowania JTAG lub SWD, aby uniemożliwić hakerom modyfikowanie obrazów oprogramowania sprzętowego. Jednakże w miarę przesuwania się układów SoC w stronę mniejszych węzłów technologia ta staje przed poważnymi wyzwaniami związanymi ze skalowalnością.

Natomiast zewnętrzna pamięć flash jest umieszczona na zewnątrz głównego procesora i komunikuje się poprzez szybki interfejs szeregowy. Ten wybór architektury ułatwia skalowanie pojemności pamięci, ale także zwiększa powierzchnię ataku systemu. Wszelkie dane przesyłane pomiędzy procesorem a zewnętrzną pamięcią flash są z natury podatne na zagrożenia, takie jak podsłuch, ataki typu man-the-middle i fizyczna manipulacja.

Aby zaradzić tym zagrożeniom, inżynierowie oprogramowania sprzętowego muszą wdrożyć solidne środki ochrony sprzętu i oprogramowania. Wiele zewnętrznych urządzeń pamięci flash NOR jest wyposażonych w fizyczny styk zabezpieczający przed zapisem. Kiedy pin zostanie umieszczony pod określonym napięciem, wewnętrzna logika chipa zapobiegnie wykonaniu jakichkolwiek poleceń kasowania lub zapisu.


Rysunek 1: Bezpieczna pamięć szeregowa NOR flash W77Q32JWSSIR TR firmy Winbond Electronics ma złożone możliwości szyfrowania kanałów komunikacyjnych. (Źródło obrazu: Winbond Electronics)

Jeśli jednak dane można odczytać, samo zablokowanie pamięci flash nie wystarczy. Podczas wykonywania atakujący nadal mogą uzyskać dostęp do magistrali adresowej i danych. Luka ta skłoniła do opracowania wyspecjalizowanych, bezpiecznych urządzeń flash, w tym sprzętowych mechanizmów zaufania, szyfrowanych kanałów komunikacji i monotonicznych liczników zapobiegających atakom typu rollback.

Jeśli jednak zostanie wybrana niewłaściwa architektura pamięci masowej, urządzenie pozostawi podstawowe defekty, których nie da się całkowicie naprawić za pomocą poprawek oprogramowania. Na przykład projekty przechowujące oprogramowanie sprzętowe na zewnętrznej pamięci EEPROM bez szyfrowania i weryfikacji są zawsze podatne na ataki sprzętowe. Wręcz przeciwnie, wybranie pamięci z nadmiernymi ograniczeniami może mieć wpływ na jej funkcjonalność.

Dlatego inżynierowie muszą rozumieć najlepsze praktyki i techniki projektowania, aby zmaksymalizować bezpieczeństwo oprogramowania sprzętowego poprzez architekturę pamięci.

Najlepsze praktyki w zakresie projektowania bezpiecznego przechowywania oprogramowania sprzętowego
Projektując bezpieczną ścieżkę przechowywania oprogramowania sprzętowego od uruchomienia do czasu działania, inżynierowie oprogramowania sprzętowego muszą przestrzegać następujących zasad:

1. Sprzętowy katalog zaufania

Wykonywanie musi zawsze rozpoczynać się od niezmiennych obszarów pamięci. Na przykład rozruchowa pamięć ROM lub trwale zabezpieczony sektor flash powinien zawierać kod umożliwiający weryfikację wszystkich pozostałych oprogramowania sprzętowego. Dzięki temu osoby atakujące nie będą mogły ominąć weryfikacji poprzez zmianę początkowego hasła.

2. Używaj zaszyfrowanych podpisów

Skonfiguruj bezpieczny moduł ładujący, aby uruchamiał tylko obrazy oprogramowania sprzętowego podpisane zaufanymi kluczami prywatnymi. W ten sposób, nawet jeśli atakujący będą mogli uzyskać dostęp do pamięci i zmodyfikować bity, mogą zapobiec nieautoryzowanemu kodowi. Jeśli wymagana jest poufność, zapisane oprogramowanie sprzętowe można zaszyfrować.

3. Wykorzystaj funkcje zabezpieczeń sprzętu

Jeśli architektura systemu wykorzystuje pamięć zewnętrzną, inżynierowie powinni wybrać urządzenia obsługujące zabezpieczenia sprzętowe, takie jak wbudowana ochrona hasłem lub proste szyfrowanie. Chociaż urządzenia te mogą nie być tak solidne, jak kompletne komponenty zabezpieczające, zapewniają kolejną warstwę ochrony.


Rysunek 2: Macronix obsługuje szeregową pamięć flash NOR MX25L3233FM2I-08Q 32 Mb z szeregowym interfejsem urządzeń peryferyjnych. (Źródło obrazu: Macronix)

4. Odizoluj oprogramowanie sprzętowe i dane

Uporządkuj obszar pamięci i oddziel najbardziej wrażliwy kod. W MCU umieść krytyczne rutynowe instrukcje w bezpiecznym obszarze pamięci. Nawet oprogramowanie sprzętowe, jeśli jest obsługiwane przez sprzęt, może oznaczyć niektóre banki pamięci flash jako tylko wykonywalne lub tylko do odczytu.

5. Plan aktualizacji oprogramowania sprzętowego zabezpieczeń

Upewnij się, że sam proces aktualizacji został zweryfikowany (np. wymaga podpisania pakietu aktualizacji). Jeśli projekt wykorzystuje pamięć zewnętrzną do tymczasowych aktualizacji, należy zastosować te same środki bezpieczeństwa, co główna pamięć oprogramowania sprzętowego.