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.