Primavistan Java-koodin obfuskointiprosessi
Herranen, Vesa (2008-02-20)
Herranen, Vesa
Helsingin ammattikorkeakoulu Stadia Helsinki Polytechnic Stadia
20.02.2008
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa
henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:stadia-1197638164-8
https://urn.fi/URN:NBN:fi:stadia-1197638164-8
Tiivistelmä
Tässä insinöörityössä suunniteltiin ja toteutettiin Gordion-talousohjaus Oy:n Primavista-ohjelmiston koodin suojaaminen. Yrityksellä oli jo pitkään ollut tarve Java-kielisen ohjelmakoodinsa suojaamiselle, etenkin Primavistan käytön tullessa laajentumaan useisiin eri maihin. Koodin suojaamisella hankaloitetaan mahdollista takaisinkääntämistä, jossa valmiin ohjelman ajettavat tiedostot käännetään takaisin niiden lähdekoodiksi. Tällöin lähdekoodia pystytään tarkastelemaan tai jopa muokkaamaan. Suomen tekijänoikeuslain mukaan takaisinkääntäminen ei ole sallittua. Työ aloitettiin tutkimalla erilaisia Java-koodin suojausmenetelmiä. Primavistan koodin suo-jausmenetelmäksi valittiin obfuskointi, joka on suosituin Java-koodin suojausmenetelmä. Erilaisia tekniikoita käyttäen tämä menetelmä sotkee Javan tavukoodia tehden takaisinkäännetystä koodista erittäin vaikeasti ymmärrettävää. Työssä vertailtiin nykyisiä obfuskointityökaluja itse tehdyn testisovelluksen avulla. Vertai-un parhaaksi työkaluksi osoittautui kaupallinen tuote Zelix KlassMaster. Ohjelma todettiin toimivaksi myös Primavistan suhteen, minkä jälkeen se päätettiin hankkia yritykselle. Koko Primavistan koodin obfuskointi toteutettiin Zelix KlassMasteria ja sen useita eri ob-fuskointitekniikoita käyttäen. Tämän jälkeen obfuskointi liitettiin Primavistan Ant-buildiin kiinteäksi osaksi koodin rakennusprosessia. Koska obfuskointi tekee huomattavia muu-toksia tavukoodiin, obfuskoidun Primavistan toiminta oli testattava huolellisesti. Testauk-sessa huomattiin pieniä virhetilanteita, jotka korjaamalla ohjelman toiminta lopulta todettiin normaaliksi. Viimeisessä työvaiheessa kaikki obfuskoinnissa tarvittavat tiedostot siirrettiin versionhallintaan kaikkien yrityksen kehitystiimin jäsenten käytettäviksi. Työn tuloksena saatiin onnistuneesti obfuskoiduksi koko Primavistan koodi. Obfuskointi-prosessista kehitettiin pysyvä käytäntö, jonka mukaisesti obfuskointi tehdään aina Prima-vistan rakennusvaiheessa. Jatkossa kaikki asiakkaille toimitettavat Primavistan versiot tulevat olemaan obfuskoituja sovelluksia.
Kokoelmat
- Tietotekniikka [51]