UNIVERSITAS BINA NUSANTARA Program Ganda Teknik Informatika Statistika Skripsi Sarjana Program Ganda Semester Ganjil 2005/2006 PERANCANGAN PROGRAM APLIKASI OBFUSKATOR SOURCE- CODE 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 BAB 1 PENDAHULUAN 1 1.1 Latar Belakang 1 1.2 Rumusan Rancangan 4 1.3 Spesifikasi Rancangan 4 1.4 Batasan Rancangan 4 1.5 Tujuan Rancangan 5 1.6 Manfaat Rancangan 5 1.7 Definisi Operasional 6 1.8 Penelitian Yang Relevan 7 BAB 2 LANDASAN TEORI 10 2.1 Deskripsi Teori 10 2.1.1 Sekuriti 10 2.1.2 Plagiarisme 11 2.1.3 Definisi Small Web Format (SWF) 12 2.1.4 Struktur File SWF 14 2.1.5 Proses Pembentukan File SWF 15 2.1.6 Algoritma Enkripsi Blowfish 15 2.1.7 Reverse Engineering 19 2.1.8 Representasi Data 20 2.1.9 Konsep Dasar Rekayasa Piranti Lunak 21 2.2 Program Pendukung Yang Dipakai 24 BAB 3 PERANCANGAN PROGRAM APLIKASI 25 3.1 Spesifikasi Rumusan Rancangan 25 3.2 Rancangan Layar 26 3.3 Diagram Transisi (State Transition Diagram) 30 3.4 Diagram Alir (Flowchart) 35 BAB 4 IMPLEMENTASI DAN HASIL PERANCANGAN 36 4.1 Spesifikasi Kebutuhan Sarana 36 4.1.1 Spesifikasi Perangkat Keras Yang Dibutuhkan 36 vii
4.1.2 Spesifikasi Perangkat Lunak Yang Dibutuhkan 36 4.2 Persiapan Data 37 4.3 Pengujian Program Aplikasi Obfuskator ActionScript 38 4.3.1 SWF Details 40 4.3.2 Parse AS 41 4.3.3 Obfuscate 43 4.3.4 Logs 46 4.4 Kelebihan Dan Kekurangan Program Aplikasi Yang Dirancang 48 BAB 5 KESIMPULAN DAN SARAN 50 5.1 Kesimpulan 50 5.2 Saran 51 5.3 Open Problem 52 DAFTAR PUSTAKA 54 DAFTAR ACUAN 55 DAFTAR RIWAYAT HIDUP 56 LAMPIRAN L.1 viii
DAFTAR GAMBAR Halaman Gambar 1.1. Proses Dari Awal Hingga SWF Ditampilkan di Web Browser 2 Gambar 1.2. File SWF Sebelum Dienkripsi Dengan Program SWOB 8 Gambar 1.3. File SWF Sesudah Dienkripsi Dengan Program SWOB 8 Gambar 2.1. Struktur File SWF 14 Gambar 2.2. Proses Pembentukan File SWF 15 Gambar 2.3. Flowchart Enkripsi Blowfish 18 Gambar 2.4. Flowchart Fungsi F Dalam Algoritma Blowfish 19 Gambar 2.5. Tabel Nilai Ekuivalen Bilangan Biner, Decimal dan Hexadecimal 20 Gambar 2.6. Model Rekayasa Piranti Lunak Waterfall 21 Gambar 3.1. Rancangan Layar Modul SWF Details 26 Gambar 3.2. Rancangan Layar Modul Parse AS 27 Gambar 3.3. Rancangan Layar Modul Obfuscate 28 Gambar 3.4. Rancangan Layar Modul Logs 29 Gambar 3.5. Diagram Transisi Menu Utama 30 Gambar 3.6. Diagram Transisi Modul SWF Details 31 Gambar 3.7. Diagram Transisi Modul Parse AS 32 Gambar 3.8. Diagram Transisi Modul Obfuscate 33 Gambar 3.9. Diagram Transisi Modul Logs 34 Gambar 3.10. Diagram Alir (Flowchart) Program Aplikasi 35 Gambar 4.1. Menu Utama Program Aplikasi 38 Gambar 4.2. Tampilan Contoh File SWF 39 Gambar 4.3. Menu SWF Details 41 Gambar 4.4. Menu Parse AS Sebelum Proses Parse 42 Gambar 4.5. Menu Parse AS Setelah Proses Parse 43 Gambar 4.6. Menu Obfuscate Sebelum Proses Obfuscate 44 Gambar 4.7. Menu Obfuscate Setelah Proses Obfuscate 45 Gambar 4.8. Kotak Dialog Save As 46 Gambar 4.9. Menu Logs 47 ix
DAFTAR LAMPIRAN Halaman LAMPIRAN 1 LISTING PROGRAM L.1 1.1. Form Utama (Unit1) Delphi 7.0 L.1-1 1.2. DCPblowfish.pas L.1-74 1.3. DCPbase64.pas L.1-78 1.4. DCPblockciphers.pas L.1-82 1.5. DCPconst.pas L.1-93 1.6. DCPcrypt2.pas L.1-95 1.7. DCPsha1.pas L.1-106 1.8. TagList.pas L.1-114 LAMPIRAN 2 LANGKAH-LANGKAH PEMAKAIAN PROGRAM L.2 x