Atak na mikrokontrolery!

Atak na mikrokontrolery!
Pobierz PDF Download icon
Już kiedyś na łamach Elektroniki Praktycznej (EP 8?10/2003) zajmowaliśmy się zagadnieniami bezpieczeństwa danych zapisanych w pamięci mikrokontrolera. Wówczas opisywaliśmy metody i techniki dostępne praktycznie tylko osobom dysponującym odpowiednim kapitałem niezbędnym na wynajęcie potrzebnego osprzętu. A jak jest dziś? Czy postęp technologiczny, który teoretycznie powinien poprawić poziom zabezpieczeń danych naprawdę poszedł w parze z technologią? Opowiada o tym niniejszy artykuł napisany na podstawie materiałów dostępnych z badań przeprowadzonych na uniwersytecie Cambridge.
70 ELEKTRONIKA PRAKTYCZNA 2/2009 NOTATNIK KONSTRUKTORA Bezpieczne mikrokontrolery i karty smart- card opracowano w celu ochrony poufności i integralności ważnych informacji. W związku z tym, że częstokroć są to dane ściśle poufne, związane z dostępem do pilnie strzeżonych zasobów (np. konta bankowe klientów, klucze kodujące transmisję GSM), to wielokroć różne osoby próbują je odczytać i powielić z rozma- itych, niekoniecznie uczciwych, pobudek. Za- bezpieczenie nie pozwalające włamywaczowi na znalezienie wartości zapisanego klucza kryp- togra?cznego nie jest wystarczające. Nie wolno mu również pozwolić na ustalenie wartości któ- rejkolwiek części klucza, albo spowodować ta- kiego uszkodzenia, które pozwoli na odczytanie poufnej informacji (przypomnijmy, że większość kluczy szyfrowania składa się z co najmniej dwóch części: prywatnej i publicznej). Dotyczy to zarówno pamięci danych, jak również kodu programu. W dzisiejszych czasach najpow- szechniej używaną metodą powodowania tego typu uszkodzeń i błędów jest glitching. Jest to metoda polegająca na powodowaniu krótko- trwałych zmian napięcia na liniach zasilania lub zegarowych. Tak naprawdę skutki wywoływane przez stosowanie tej metody są trudne do prze- widzenia i często zależą od przypadku. Znane są jednak ?recepty? na odczytanie zawartości Atak na mikrokontrolery! Już kiedyś na łamach Elektroniki Praktycznej (EP 8?10/2003) zajmowaliśmy się zagadnieniami bezpieczeństwa danych zapisanych w pamięci mikrokontrolera. Wówczas opisywaliśmy metody i techniki dostępne praktycznie tylko osobom dysponującym odpowiednim kapitałem niezbędnym na wynajęcie potrzebnego osprzętu. A jak jest dziś? Czy postęp technologiczny, który teoretycznie powinien poprawić poziom zabezpieczeń danych naprawdę poszedł w parze z technologią? Opowiada o tym niniejszy artykuł napisany na podstawie materiałów dostępnych z badań przeprowadzonych na uniwersytecie Cambridge [1]. pamięci mikrokontrolera po zwarciu bitów bez- pieczników, wykorzystujące rozmaite formy glit- chingu. Częstokroć bezpieczniki są wykonywane w technologii Flash, po to aby układ można było wielokrotnie przeprogramowywać. Jest to cecha większości popularnych mikrokontrolerów. Metody używane do odczytania zawartości smartcard lub mikrokontrolera dzielą się na dwie grupy: inwazyjne ? przeprowadzane z wykorzy- staniem wyposażenia służącego normalnie do testowania układów (stacja z mikrosondami) oraz aparatury umożliwiającej operowanie sku- pioną wiązką jonów i ich implantację w struk- turze układu, lub nieinwazyjne ? wykorzystujące emisję elektromagnetyczną układu, protokół komunikacyjny, lub inne możliwości (np. do- stęp przez zewnętrzne interfejsy układu, błędy w oprogramowaniu ?rmowym). Atak może być wykonywany metodą aktywną lub pasywną. Ogólnie mówiąc, atak pasywny polega na ?pod- słuchiwaniu? komunikacji z układem podczas realizacji procedury komunikacyjnej lub progra- mu. Atak aktywny to już próba przejęcia kontroli nad układem przez wymuszenie stanów sygna- łów zewnętrznych. Klasycznym przykładem jest dołączenie do linii sygnału zegarowego licznika rozkazów mikrosondy połączonej z masą tak, aby zabronić realizacji instrukcji skoku. Aż do teraz przeprowadzenie ataku inwa- zyjnego wymagało zaangażowania sporego kapitału w zakup wyposażenia laboratoryjnego plus bliżej nieokreślonego w wysiłek poświę- cony każdemu z układów. Ataki nieinwazyjne takie, jak analiza pola elektromagnetycznego w najbliższym sąsiedztwie układu, wymagają raczej niewielkiego kapitału niezbędnego na za- kup i konstrukcję sprzętu, i jak w poprzednim przypadku ? nieokreślonego na analizę każdego z układów. W związku z takimi cechami, ta metoda ataku jest bardzo atrakcyjna i bardzo często wykonywana przez osoby, które owszem, potrzebują kupić i skonstruować niezbędny osprzęt, ale nie liczą własnego czasu spędzone- go na opracowywaniu metod włamania ocze- kując przyszłych zysków. Z tego też powodu metoda nieinwazyjnej analizy promieniowania elektromagnetycznego jest często stosowana. Na nieszczęście włamywaczy, producenci układów scalonych już zabezpieczają je przed oczywistymi metodami ataku, wprowadzając na przykład losowy jitter do zegara systemowego układu, co sprawia, że analiza realizowanych sekwencji poleceń jest bardzo trudna. Z drugiej strony układ reaguje na szybkie zmiany napięcia restartem, przerywając realizację realizowanego kodu. W międzyczasie wykonywanie ataków inwazyjnych również staje się coraz trudniejsze, ponieważ wzrasta po pierwsze skala integracji, a po drugie struktury układów zaczynają być budowane w postaci wielowarstwowej i przez to dostęp do ich ważnych elementów staje się coraz trudniejszy. Jako odpowiedź na tego typu zabezpieczenia pojawiła się nowa metoda od- czytu zawartości pamięci łącząca w sobie obie metody i przez to nazywana semi-inwazyjną. W tej metodzie struktura układu musi zostać wyeksponowana, ale nie ma potrzeby zdejmowania warstwy pasywacyjnej chroniącej strukturę, ponieważ nie jest wymagany kontakt elektryczny ze strukturą układu. Atak semi-inwazyjny nie jest metodą całko- wicie nową. Owszem, rozwój elektroniki umoż- liwił wykorzystanie pewnych nowych technik ataku, jednak od lat znana jest metoda odczytu danych z pamięci EPROM polegająca na na- świetleniu bitu write protect światłem ultra?o- letowym. Wymaga ona co prawda wyekspono- wania struktury układu, ale nie jest potrzebny 71ELEKTRONIKA PRAKTYCZNA 2/2009 Atak na mikrokontrolery! żaden kontakt elektryczny, jak również nie jest ona w żaden sposób uszkadzana, czy narusza- na. Oczywiście taki ?atak? pokazuje tylko pewne teoretyczne możliwości selektywnego oddzia- ływania na strukturę układu, ponieważ pamięć EPROM w żaden sposób nie była zabezpieczo- na przed odczytem i można było bez problemu skopiować jej zawartość. Bit miał jedynie zabez- pieczać przed przypadkowym zaprogramowa- niem pamięci przez nieuwagę, a funkcję swoją pełnił tylko do najbliższego kasowania zawarto- ści pamięci światłem ultra?oletowym. Teoretycznie, atak semi-inwazyjny może być przeprowadzany z wykorzystaniem narzę- dzi, takich jak: odczynniki chemiczne i światło ultra?oletowe, promieniowanie rentgenowskie, światło laserowe, pole elektromagnetyczne i lo- kalne podgrzewania struktury układu. Wszystkie wymienione czynniki mogą być użyte indywidu- alnie, lub w pewnych kombinacjach wzmagają- cych skutki ich działania. Niestety, ostatnie lata pokazały, jak niebezpieczna i łatwa w użyciu stała się ta metoda. Złącze półprzewodnikowe jest bardziej wraż- liwe na promieniowanie jonizujące, niż stosowa- ne w początkach elektroniki lampy. W latach sześćdziesiątych, podczas eksperymentów prze- prowadzanych z laserem pulsacyjnym stwier- dzono, że intensywne światło jest w stanie po- wodować w strukturze półprzewodnika zjawisko podobne do wywoływanego przez promieniowa- nie jonizujące. I wówczas zaczęto używać świat- ła laserowego zamiast promieniowania, jako znacznie tańszego i wygodniejszego w użyciu. Z biegiem czasu lasery gazowe zostały zastąpio- ne przez znacznie tańsze lasery półprzewodniko- we i w rezultacie technologię zaczęto stosować również poza laboratoriami naukowymi. Światło może zjonizować obszar półprze- wodnika, jeśli energia jego fotonów przekracza energię bariery potencjału w półprzewodniku. Światło laserowe o długości fali 1060 nm, o energii fotonów 1,17 eV, penetruje krzem na głębokość około 700 mm i zapewnia do- brą, jednorodną, przestrzenną jonizację obsza- ru. Światło laserowe o kolorze czerwonym lub zielonym jest bardziej absorbowane przez pół- przewodnik i nie jest w stanie jonizować go na tak dużą głębokość, ale trzeba mieć na uwadze, że współcześnie wykonywane układy scalone są coraz cieńsze. W praktyce więc światło wi- dzialne jest zupełnie wystarczające, a co za tym idzie, tego typu laser można nabyć w praktycz- nie każdym sklepie elektronicznym lub sklepie z zabawkami czy materiałami biurowymi. Moż- liwości tej technologii są ograniczone, ponieważ skupienie światła jest ograniczone przez dysper- sję praktycznie do obszaru kilku mikrometrów i nie jest odpowiednie do nowoczesnych ukła- dów scalonych. Oczywiście każdy może użyć opisanej tech- niki, ale nie każdy ma wystarczającą wiedzę. Mimo, że w Internecie umieszczonych jest wiele publikacji na temat jonizującego wpływu światła lasera na półprzewodnik i możliwych zastosowań, to jednak brak jest konkretnych i sprawdzonych informacji. Nikt nie podaje w jaki sposób światło lasera mogłoby prowa- dzić interakcję z funkcjonującym układem. Czy można na przykład zmienić zawartość komórki pamięci CMOS i jak łatwe, bądź trudne jest wy- konanie tej czynności. Na uniwersytecie w Cambridge, w labora- torium kierowanym przez Sergeia Skoroboga- tova i Rossa Andersona, zdecydowano się na wykonanie próby z użyciem światła laserowego i układu ?rmy Microchip typu PIC16F84. Układ ten to mikrokontroler wyposażony w 68 bajtów statycznej pamięci RAM. W sposób standardo- wy, (patrz EP 8?10/2003 artykuł pt. ?Atak na mikrokontrolery?), zdjęto obudowę struktury układu. Przy pomocy mikroskopu zlokalizowano obszar pamięci RAM w środkowej części struk- tury układu. Ze względu na ograniczenia budże- towe oraz założenia projektu, który miał wyka- zać ogólną, niebezpieczną dostępność metody, zdecydowano się na użycie taniej lampy błysko- wej typu Vivitar 550FD, używanej przez fotogra- fów. Aczkolwiek natężenie światła uzyskanego z lampy jest znacznie mniejsze niż to możliwe do uzyskania za pomocą lasera, to jednak przy właściwym skupieniu wiązki można osiągnąć pożądany stopień jonizacji półprzewodnika. Lampa błyskowa została zamocowana na obu- dowie mikroskopu Wentworth Labs MP-901 w miejscu, w którym normalnie mocowana jest kamera ?lmująca obraz. Wybrano powiększenie 1500×. Mikrokontroler został zaprogramowany w taki sposób, że pamięć mogła być zapisywa- na i odczytywana z użyciem interfejsu szerego- wego. Jak łatwo się domyślić, pamięć była zapi- sywana pewną znaną wartością, wystawiana na działanie światła lampy błyskowej, a następnie jej zawartość była odczytywana i porównywana ze wzorcem przez oprogramowanie sterujące na komputerze PC. Dodatkowo komputer zmieniał czas trwania błysku tak, aby wybrać optymalną jego energię. Moc wyjściową lampy ustawiono na maksymalną. Eksperyment (niestety) zakończył się peł- nym sukcesem. Używając bardzo prostych ?sza- blonów? wykonanych z folii aluminiowej udało się zmieniać zawartości pojedynczych komórek pamięci statycznej RAM. Stan komórki pamięci był zależny od obszaru wystawionego na dzia- łanie światła. W praktyce oznaczało to, że stan pojedynczego bitu mógł być logicznym 0 lub 1 w zależności od tego, który obszar komórki pa- mięci był oświetlany. Metoda była żmudna, nie- mniej jednak po rozpoznaniu struktury pamięci można było ustawiać dowolną wartość bajtu w jej obszarze! Potwierdzono w ten sposób, że przy pomocy ogólnie dostępnego wyposażenia możliwa jest zmiana zawartości komórek pamię- ci. Dodatkowo, mając dostęp do danych odczy- tywanych z pamięci, można bez większych pro- blemów wykonać jej mapę. Oczywiście kwestią dyskusyjną jest użyteczność i wykorzystanie tej wiedzy, to jednak nie stanowi już przedmiotu niniejszych rozważań. Światło emitowane przez lampę błyskową nie jest światłem monochromatycznym i dlatego bardzo trudno było kontrolować oświetlany ob- szar. Niedogodność tę eliminuje zastosowanie światła laserowego mającego znacznie lepsze skupienie. W kolejnym kroku w eksperymencie wykorzystano wskaźnik laserowy, który moż- na nabyć w sklepie za około 30 zł. Osiągnięto identyczne rezultaty, jednak z kilkoma praktycz- nymi różnicami. Po pierwsze, nie było konieczne użycie mikroskopu i szablonów, ponieważ laser mógł precyzyjnie oświetlać punkt na powierzchni struktury układu, który mógł być odczytywany/ oświetlany z częstotliwością około 100 cykli na sekundę. Z drugiej strony, pozycjonowanie lase- ra musiało być bardzo dokładne ze względu na mniejszy punkt i znacznie mniejszą aperturę oraz oczywiście wymiary elementów w strukturze układu. Wskaźnik był laserem klasy II o mocy mniejszej, niż 1 mW, ale zasilany był podwyższo- nym napięciem pozwalającym na uzyskanie mocy 10 mW. Długość fali światła wynosiła 650 nm. Wykonane eksperymenty były wstępem do różnego rodzaju ?zabaw? z mikrokontrolerami. Najlepsze z klasy tzw. mikrokontrolerów bez- piecznych nie były podatne na światło laserowe, jako że bardzo często klucz dostępu jest zmien- ny i częstokroć zależy od przechowywanej in- formacji (rozmiar bloku danych, suma kontrolna itp.). Z drugiej strony, popularne mikrokontro- lery były zupełnie nieodporne na światło lasera: pozwalało ono na dowolne ustawienie stanu bezpieczników blokujących i przerzutników ?ip-?op, a po tym swobodny odczyt zawar- tości. Niewiele z układów jest bowiem opra- cowywanych w taki sposób, że uszkodzenie pojedynczego tranzystora nie zmienia stopnia zabezpieczenia układu. W praktyce okazało się, że standardowe układy CMOS praktycznie nie są w żaden sposób zabezpieczone przed opisywa- nymi wyżej atakami. Na koniec w laboratorium wykonano te- sty z użyciem smartcard używanych chociażby jako popularne karty płatnicze, karty SIM, czy w systemach kontroli dostępu. Bez wnikania w szczegóły badań dość jest stwierdzić, że w 1997 roku trójka badaczy o nazwiskach Bo- neh, Demillo i Lipton wykazała, że błąd w cza- sie obliczeń klucza RSA może spowodować, że karta zwróci uszkodzoną sygnaturę, która może posłużyć do obliczenia sekretnej formuły szyfrującej i w rezultacie umożliwić dostęp do danych. W rezultacie badacze wykazali (niestety w dokumentach niedostępnych dla szerszego grona użytkowników), w jaki sposób można szybko i łatwo, używając opisanych wyżej me- tod, klonować telefoniczne karty SIM. Na klono- wanie kart nie są już dziś potrzebne tygodnie, czy miesiące, ale dysponując odpowiednią wie- dzą można to zrobić w przeciągu kilku minut. Jacek Bogusz, EP jacek.bogusz@ep.com.pl Literatura 1. http://www.cl.cam.ac.uk/~sps32/
Artykuł ukazał się w
Luty 2009
DO POBRANIA
Pobierz PDF Download icon
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik wrzesień 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio październik 2020

Świat Radio

Magazyn użytkowników eteru

Automatyka Podzespoły Aplikacje wrzesień 2020

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna wrzesień 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich wrzesień 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów