Insights on Advanced Security Techniques for 80C2051: Reverse Engineering and Safeguards

Re: zabezpieczenia w 80C2051





Poprzedni Następny
Wiadomość
Spis treści
From: "Marek" <neticus_at_nospam_wp.pl>
Subject: Re: zabezpieczenia w 80C2051
Date: Mon, 16 Apr 2001 07:31:19 +0200


W nawiazaniu do poprzedniej dyskusji jeszcze kilka ciekawych,
mam nadzieje, informacji. Akurat w trakcie porzadkow
przedswiatecznych wpadl mi w rece numer 10/2000 EDN Europe
a w nim artykul o zabezpieczeniach. Jest tam i opis jak odczytac
program mikrokontrolera FLASH lub strukture PLD:

1) usunac obudowe, zeby dostac sie do chipa, (chyba trawienie ?)

1a) czasami trzeba jeszcze usunac wierzchnia wartswe pasywacyjna,
warstwe metalizacji i inne warstwy powyzej poziomu tranzystorow.

2) umiescic chip w prozniowej komorze i zasilic (to chyba stosunkowo
najlatwiej :-))) )

3) ustalic stan ladunkow w plywajacych bramkach tranzystorow:
3a) submikronowa sonda dotknac kazdy z tysiecy/milionow tranzystorow

lub

3b) mikroskopem czulym na wtorna emisje elektronow sprawdzic jak
w punkcie 3a)

lub

3c) pokryc chip niobianem litu (??? lithium niobate w oryginale, ale ostatni
raz mialem chemie w szkole jeszcze przed wojna polsko-jaruzelska),
oswietlic ultrafioletem i, jak to dla wyswietlacza LCD, ktory wlasnie
zrobilismy z chipa, zanotowac, nad ktorym tranzystorem zmienila sie barwa.

UWAGA: to nie sa zarty, tak dziala przemysl reverse-engineering, ale chyba
juz widac jakie to sa koszty. Widac wiec, ze zalecana wczesniej w dyskusji
metoda: w leb programiste, dysk twardy pod pache i w nogi, jest w warunkach
krajowych najbardziej korzystna pod wzgledem stosunku cena/efektywnosc :-)

A na koniec, zeby nie bylo, ze sie tylko wymadrzam, kilka rad bardziej
praktycznych w kwestii zabezpieczen, licze ze i inni koledzy cos dorzuca:

1) pliki zrodlowe, ale i gotowe binaria projektow, ktore nie moga sie dostac
w niepowolane rece trzymac wylacznie w postaci skompresowanej i rzecz
jasna zabezpieczonej dlugim haslem,

2) dyski twarde z projektami najlepiej trzymac w obudowie typu kieszen
i po skonczeniu pracy chowac do kasy pancernej,

3) skutecznie usuwac oznaczenia typow ukladow scalonych, jesli przekazujemy
cos do testowania, badan lub prob u klienta,

4) do kodu programu wprowadzac martwe petle, skomplikowane manipulacje
na nieistotnych zmiennych itp. co skutecznie przedluzy analize
zdekompilowanego
programu,

5) wprowadzac do kodu programu lub struktur programowalnych swoje
indywidualne, zakodowane jakos tam sygnatury, co ulatwi w sadzie
udowodnienie, ze software lub struktura PLD jest kradziona. Tu oczywiscie
sobie zartuje: w sadzie w naszym kochanym kraju, ha, ha, ha, to sobie mozna
kupic sedziego lub prokuratora (oczywiscie nie kazdego, bez przesady, ale
tak z 50% to chyba mozna), ale udowodnic kradziez wlasnosci intelektualnej,
no nie, tu mnie ponioslo, przyznaje :-)

6) pracowac wylacznie z ludzmi, do ktorych mamy zaufanie i rownie
odpowiedzialnych w tej kwestii

7) przestac wreszcie uzywac pamieci EPROM w podstawkach, i przejsc na
pamieci FLASH wlutowane na stale i programowalne w ukladzie. To odstreczy
wiekszosc przygodnych podgladaczy (CHIP BROTHER),

8) machnac reka na punkty 1-7 i uciekac konkurencji postepem technologicznym
i zaawansowaniem stosowanych algorytmow.

Ale sie rozpisalem ... uuufff ... czekam na reakcje i pozdrawiam,

Marek



Poprzedni Następny
Wiadomość
Spis treści
From: "Martin Walter" <usrpwalt_at_nospam_kki.net.pl>
Subject: Re: zabezpieczenia w 80C2051
Date: Mon, 16 Apr 2001 11:12:24 +0200


Ale sie rozpisalem ... uuufff ... czekam na reakcje i pozdrawiam,

Są (dużo) prostsze sposoby wypruwania kodu z procków niż opisany powyżej
ale temat jest inny.
Dla małych krótkoseryjnych projektów w zasadzie wystarczą procki z flashem.
Dla dużych warto użyć nietypowych rozwiązań:
Przy średnich projektach dobre jest użycie PAL'i czy lepiej GAL'i z
wykorzystaniem rejestrów i sprzężeń zwrotnych na nich oraz zawansowanych
układów peryferyjnych.
Era projektów na TTL'ach i im podobnych które mają być niepodrabialne to już
przeszłość.
Sporo można również zrobić z kodem jak np. pętle krytyczne czasowo itp.

Pole do popisu dla pomysłowych

Martin