UNIVERSITAS BINA NUSANTARA
Program Ganda Teknik Informatika – Statistika Skripsi Sarjana Program Ganda Semester Ganjil 2005/2006
PERANCANGAN PROGRAM APLIKASI OBFUSKATOR SOURCECODE ACTIONSCRIPT UNTUK MINIMALISASI TINDAKAN PLAGIARISME MENGGUNAKAN ALGORITMA ENKRIPSI BLOWFISH Jeffrey Wangsawidjaja NIM : 0500600750
Abstrak Small Web Format atau yang lebih dikenal dengan SWF saat ini sangat banyak sekali digunakan dalam dunia teknologi informasi khususnya internet. Format SWF ini dapat digunakan untuk membuat animasi, situs web dan juga aplikasi yang powerful berkat adanya bahasa pemrograman ActionScript yang digunakan dalam file SWF. Sayangnya, SWF ini memiliki kelemahan yaitu bentuknya yang berupa open format yang mengakibatkan informasi atau elemen-elemen termasuk ActionScript didalamnya dapat dengan mudah dibongkar dan diplagiat dengan menggunakan program decompiler. Tujuan dari skripsi ini adalah untuk merancang sebuah program aplikasi obfuskator ActionScript yang dapat lebih meningkatkan keamanan publikasi file SWF di internet dengan cara mengacak nama-nama variabel serta objek yang ada didalam ActionScript sehingga sulit dibaca dan dimengerti oleh pihak-pihak yang bermaksud melakukan plagiat sehingga ini akan meminimalisasi tindakan plagiarisme terhadap file SWF. Teknik yang digunakan untuk melakukan obfuskasi / pengacakan ini adalah dengan mengenkripsi nama-nama variabel dan objek didalam ActionScript dengan algoritma enkripsi Blowfish. Dari perancangan ini menghasilkan file SWF baru yang berjalan dengan normal, dan juga source code-nya menjadi tidak mudah dibaca atau dimengerti walaupun sudah di-decompile atau di-reverse-engineer.
Kata Kunci : obfuscate, SWF, plagiarism, security, Blowfish Encryption, ActionScript, decompile, reverse-engineer.
v
PRAKATA Puji dan syukur kepada Tuhan Yang Maha Esa karena atas karunia dan penyertaan – Nya sehingga penulis dapat menyusun dan menyelesaikan tugas yang berjudul “PERANCANGAN PROGRAM APLIKASI OBFUSKATOR
SOURCE-CODE ACTIONSCRIPT UNTUK MINIMALISASI TINDAKAN PLAGIARISME MENGGUNAKAN ALGORITMA ENKRIPSI BLOWFISH” sebagai syarat untuk memperoleh gelar kesarjanaan pada Program Studi Ganda, Jurusan Teknik Informatika - Statistika Bina Nusantara, Jenjang Pendidikan Strata 1. Pada kesempatan ini, penulis ingin menyampaikan ucapan terima kasih yang sebesar-besarnya kepada: 1. Bapak Prof. Dr. Drs. Gerardus Polla, M.App.Sc., selaku Rektor Universitas Bina Nusantara yang telah memberikan semangat kepada setiap mahasiswanya dan selaku Dosen Pembimbing pertama yang telah meluangkan waktunya untuk memberikan dorongan dan dukungan moral sehubungan dengan penulisan skripsi ini dari awal hingga akhir; 2. Bapak Ir. Syaeful Karim, M.Comp., selaku Koordinator Bidang Ilmu Teknik Informatika (KBI-TI) Bina Nusantara yang telah meluangkan waktu membimbing penulis dan selaku Dosen Pembimbing kedua yang telah memberikan berbagai saran dan metode pembuatan program kepada penulis sehingga dapat menyelesaikan skripsi ini dengan baik; 3. Bapak Wikaria Gazali, S.Si., M.T., selaku Dekan Fakultas MIPA, yang telah menunjuk para pembimbing terbaik bagi penulis, dan memberikan persetujuan terhadap topik skripsi yang diajukan; 4. Bapak Ngarap Imanuel Manik. Drs., M.Kom., selaku Ketua Jurusan Fakultas MIPA, yang telah memberikan kesempatan kepada penulis untuk membuat perancangan ini serta memberikan persetujuan terhadap topik skripsi yang diajukan penulis. 5. Kedua orang tua yang selalu memberikan semangat juang dan pengertian cukup sehingga penulis dapat menyelesaikan skripsi ini dengan baik; 6. Seluruh civitas akademika Universitas Bina Nusantara dan rekan-rekan serta teman-teman yang tak dapat disebutkan satu persatu atas dukungan moril, baik secara langsung maupun tidak langsung kepada penulis; Kiranya skripsi ini bermanfaat bagi para pembaca dan pihak-pihak yang membutuhkan. Dengan tangan terbuka, penulis menerima kritik dan saran agar tulisan ini dapat menjadi lebih berguna dan berkualitas. Terima kasih.
Jakarta, Januari 2006
Penulis
vi
DAFTAR ISI
HALAMAN JUDUL LUAR HALAMAN JUDUL DALAM HALAMAN PERSETUJUAN HARDCOVER HALAMAN PENGESAHAN DEWAN PENGUJI ABSTRAK PRAKATA DAFTAR ISI DAFTAR GAMBAR DAFTAR LAMPIRAN
Halaman i ii iii iv v vi vii ix x 1 1 4 4 4 5 5 6 7
BAB 1
PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Rancangan 1.3 Spesifikasi Rancangan 1.4 Batasan Rancangan 1.5 Tujuan Rancangan 1.6 Manfaat Rancangan 1.7 Definisi Operasional 1.8 Penelitian Yang Relevan
BAB 2
LANDASAN TEORI 2.1 Deskripsi Teori 2.1.1 Sekuriti 2.1.2 Plagiarisme 2.1.3 Definisi Small Web Format (SWF) 2.1.4 Struktur File SWF 2.1.5 Proses Pembentukan File SWF 2.1.6 Algoritma Enkripsi Blowfish 2.1.7 Reverse Engineering 2.1.8 Representasi Data 2.1.9 Konsep Dasar Rekayasa Piranti Lunak 2.2 Program Pendukung Yang Dipakai
10 10 10 11 12 14 15 15 19 20 21 24
BAB 3
PERANCANGAN PROGRAM APLIKASI 3.1 Spesifikasi Rumusan Rancangan 3.2 Rancangan Layar 3.3 Diagram Transisi (State Transition Diagram) 3.4 Diagram Alir (Flowchart)
25 25 26 30 35
BAB 4
IMPLEMENTASI DAN HASIL PERANCANGAN 4.1 Spesifikasi Kebutuhan Sarana 4.1.1 Spesifikasi Perangkat Keras Yang Dibutuhkan
36 36 36
vii
BAB 5
4.1.2 Spesifikasi Perangkat Lunak Yang Dibutuhkan 4.2 Persiapan Data 4.3 Pengujian Program Aplikasi Obfuskator ActionScript 4.3.1 SWF Details 4.3.2 Parse AS 4.3.3 Obfuscate 4.3.4 Logs 4.4 Kelebihan Dan Kekurangan Program Aplikasi Yang Dirancang
36 37 38 40 41 43 46 48
KESIMPULAN DAN SARAN 5.1 Kesimpulan 5.2 Saran 5.3 Open Problem
50 50 51 52 54 55 56 L.1
DAFTAR PUSTAKA DAFTAR ACUAN DAFTAR RIWAYAT HIDUP LAMPIRAN
viii
DAFTAR GAMBAR Halaman Gambar 1.1. Gambar 1.2. Gambar 1.3. Gambar 2.1. Gambar 2.2. Gambar 2.3. Gambar 2.4. Gambar 2.5.
Proses Dari Awal Hingga SWF Ditampilkan di Web Browser File SWF Sebelum Dienkripsi Dengan Program SWOB File SWF Sesudah Dienkripsi Dengan Program SWOB Struktur File SWF Proses Pembentukan File SWF Flowchart Enkripsi Blowfish Flowchart Fungsi F Dalam Algoritma Blowfish Tabel Nilai Ekuivalen Bilangan Biner, Decimal dan Hexadecimal Gambar 2.6. Model Rekayasa Piranti Lunak Waterfall Gambar 3.1. Rancangan Layar Modul SWF Details Gambar 3.2. Rancangan Layar Modul Parse AS Gambar 3.3. Rancangan Layar Modul Obfuscate Gambar 3.4. Rancangan Layar Modul Logs Gambar 3.5. Diagram Transisi Menu Utama Gambar 3.6. Diagram Transisi Modul SWF Details Gambar 3.7. Diagram Transisi Modul Parse AS Gambar 3.8. Diagram Transisi Modul Obfuscate Gambar 3.9. Diagram Transisi Modul Logs Gambar 3.10. Diagram Alir (Flowchart) Program Aplikasi Gambar 4.1. Menu Utama Program Aplikasi Gambar 4.2. Tampilan Contoh File SWF Gambar 4.3. Menu SWF Details Gambar 4.4. Menu Parse AS Sebelum Proses Parse Gambar 4.5. Menu Parse AS Setelah Proses Parse Gambar 4.6. Menu Obfuscate Sebelum Proses Obfuscate Gambar 4.7. Menu Obfuscate Setelah Proses Obfuscate Gambar 4.8. Kotak Dialog Save As Gambar 4.9. Menu Logs
ix
2 8 8 14 15 18 19 20 21 26 27 28 29 30 31 32 33 34 35 38 39 41 42 43 44 45 46 47
DAFTAR LAMPIRAN Halaman LAMPIRAN 1
LISTING PROGRAM 1.1. Form Utama (Unit1) Delphi 7.0 1.2. DCPblowfish.pas 1.3. DCPbase64.pas 1.4. DCPblockciphers.pas 1.5. DCPconst.pas 1.6. DCPcrypt2.pas 1.7. DCPsha1.pas 1.8. TagList.pas
LAMPIRAN 2
LANGKAH-LANGKAH PEMAKAIAN PROGRAM
x
L.1 L.1-1 L.1-74 L.1-78 L.1-82 L.1-93 L.1-95 L.1-106 L.1-114 L.2