Metody obfuskacyjne w zabezpieczaniu własności intelektualnej do

Transkrypt

Metody obfuskacyjne w zabezpieczaniu własności intelektualnej do
Metody obfuskacyjne w zabezpieczaniu własności
intelektualnej do projektów sprzętowych
mgr inż. Maciej Brzozowski
Coroczne badania rynku prowadzone na zlecenie Business Software Alliance wskazują wzrost strat spowodowanych kradzieżą oprogramowania z 51,443 miliardów
dolarów w roku 2009 do 58,754 miliardów dolarów
25%
w roku 2010. Pomimo usilnych działań legislacyjnych
prowadzonych przez państwa objęte badaniami oraz pre42%
33%
sji lobbingowej na rządy tych państw BSA szacuje, że skala piractwa w roku 2013 wzrośnie do 53%. Oprogramowanie jest coraz częściej rozpowszechniane w postaci koOprogramowanie darmowe bądź Open-Source du źródłowego. Obecnie stanowi około 25% używanePiractwo
go oprogramowania (wzrost o 8 punktów procentowych
Oprogramowanie legalne
względem roku 2009). W niezabezpieczonym kodzie łatwo jest dokonać modyfikacji a następnie włączyć w „noRys. 1: Skala piractwa w 2010 roku
wej” formie w inny projekt (produkt). Powstało wiele
technik i narzędzi zabezpieczających przed kradzieżą oprogramowania takich jak znaki wodne lub odciski palca (Rysunek 2). Jedną z metod ochrony praw autorskich, zabezpieczającą
przeciwko nieautoryzowanemu wykorzystaniu kodu, jest obfuskacja. Zaciemnianie kodu (obfuskacja, z ang. obfuscation) jest metodą przekształcania kodu źródłowego oprogramowania,
która zachowuje jego działanie semantyczne, ale znacząco utrudnia analizę i zrozumienie
(Listing 1). Obfuskacja jest więc zamierzonym działaniem, mającym na celu ochronę własności intelektualnej przy zachowaniu pełnej funkcjonalności oprogramowania. Ujmując rzecz
bardziej ogólnie obfuskacja jest próbą ukrycia sposobu działania zabezpieczanego programu.
Listing 1: Zwyciężca 1st International Obfuscated C Code Contest - w kategorii Dishonorable
mention - 1984
i n t i ; main ( ) { f o r ( ; i [”] < i ;++ i ){−− i ; } ” ] ; r ead ( ’ − ’ − ’ − ’ , i+++”h e l l \
o , world ! \ n ” , ’ / ’ / ’ / ’ ) ) ; } r ead ( j , i , p ){ w r i t e ( j /p+p , i −−−j , i / i ) ; }
Listing 2: Hello World!
Ochrona własności intelektualnej
#i n c l u d e <s t d i o . h>
i n t main ( v o i d ){
p r i n t f (” H e l l o World ! \ n ” ) ;
return 0;
}
Ochrona prawna
Znaki wodne
Ochrona techniczna
Ochrona programowa
Ochrona sprzętowa
Metody kryptograficzne
Obfuskacja
Na Listingu 1 przedstawiono kod źródłowy programu anonimous.c. „ZaciemRys. 2: Metody ochrony własności intelektualnej.
niony” przykład pokazuje w jakim stopniu można utrudnić analizę krótkiego kodu. Osoba analizująca musi wykazać się dużą wiedzą
oraz cierpliwością w celu odtworzenia kodu z Listningu 2. Podczas prezentacji przedstawię
metody obfuskacyjne dla języka opisu sprzętu VHDL (Very High Speed Integrated Circuit
Hardware Description Language) wykorzystywanego w komputerowym projektowaniu układów cyfrowych oraz przykłady ich zastosowania w ochronie praw autorskich ze zwróceniem
szczególnej uwagi na optymalność zabezpieczonego kodu źródłowego.

Podobne dokumenty