Atak na mikrokontrolery!
Niedziela, 01 Luty 2009
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/
Zobacz więcej w kategorii Notatnik konstruktora