SISTEM PROTEKSI APLIKASI WINDOWS MENGGUNAKAN PASSWORD DENGAN BAHASA ASSEMBLY SKRIPSI

  SISTEM PROTEKSI APLIKASI WINDOWS MENGGUNAKAN PASSWORD DENGAN BAHASA ASSEMBLY SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika Oleh: Mario Tinton Prambudi NIM : 025314038 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2007

  

PASSWORD PROTECTION SYSTEM FOR WINDOWS

APPLICATIONS USING ASSEMBLY LANGUAGE

A Thesis

  

Presented as Partial Fulfillment of the Requirements

To Obtain the Sarjana Teknik Degree

In Informatics Engineering

  

By:

Mario Tinton Prambudi

Student Number : 025314038

  

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2007

HALAMAN PERSEMBAHAN

  

Kupersembahkan karya tulis ini kepada:

  Tuhan Yesus Kristus, Tuhan Yesus Kristus Tuhan Yesus Kristus Tuhan Yesus Kristus Atas hidup dan segala sesuatu di dunia yang Engkau berikan untukku.

  Mama dan Papa Mama dan Papa, Mama dan Papa Mama dan Papa

  Atas kasih sayang dan dukungan yang tiada habisnya, yang sebenarnya tidak cukup dilukiskan hanya dengan kata-kata.

  Windy, Windy Windy Windy Adikku yang cantik yang kadang membuatku marah, benci, khawatir, senang, atau pun rindu.

  Kakek, Nenek, Paman, Bibi, Sepupu, dan semua sanak saudaraku Kakek, Nenek, Paman, Bibi, Sepupu, dan semua sanak saudaraku Kakek, Nenek, Paman, Bibi, Sepupu, dan semua sanak saudaraku Kakek, Nenek, Paman, Bibi, Sepupu, dan semua sanak saudaraku, Di kampung halaman yang selalu kurindukan.

  Semua teman - - Semua teman- Semua teman Semua teman -temanku temanku, temanku temanku Atas kesenangan, ketidaksenangan, keuntungan, kerugian, dan apa saja yang telah dan akan sama-sama kita lalui yang memberi pengalaman dan nilai berharga dalam hidup kita.

  Melissa Meliss

  a, Meliss Meliss a a

  Yang telah mengajarkan nilai-nilai hidup yang amat penting bagiku seperti bersabar, bersikap tegar, rendah hati, belajar meminta maaf dan memaafkan, tidak larut dalam kesedihan, tidak iri pada orang lain, dan hal-hal lainnya, ku selalu bangga akan dirimu dan berharap engkau selalu berbahagia di sana,

  I ♥ U

  HALAMAN MOTTO "T hat cross you w ear around your neck, is it only a decoration, or are you a true C hristian believer?” h

  “Yes, I believe – truly” et

  “T hen I w ant you to rem ove it at once! - and never to w ear it w ithin this castle again! D o you know how a falcon is trained, m y dear? H er eyes are sow n shut. B lin ded tem porarily ll

  She su ffers the w him s of h er G od patiently, u ntil her w ill is sub m erged and she learns to serve - a as your G od taught and blinded you w ith crosses.”

  F “You had me take off my cross because it offended...” e “It offend ed no-one! N o - it sim ply appears to m e to be discourteous to...

  … to w ear the sym bol of a deity long dead. M y ancestors tried to find it. A nd to open the door that seperates us from our C reator”

   H “But you need no doors to find God. If you believe...” en

  “B elieve?! If you believe you are gullible! C an you look around this w orld and believe in the g oodness of a god w ho rules it? h

  F am ine, P estilence, W ar, D isease, and D eath! T h ey rule this w orld!” “There is also love and life and hope.”

   W “V ery little hope I assure you. N o. If a god of lov e and life ev er did exist... he is long since dea d. d

  Som eone... som ething… rules in his place.” n A

  

ABSTRAKSI

  Pada sistem operasi Windows, suatu aplikasi tersimpan dalam media penyimpanan sebagai berkas yang dapat dengan mudah disalin dan digunakan oleh siapa pun yang memiliki akses terhadap berkas tersebut. Memperhatikan hal ini, penulis tertarik untuk membuat sistem proteksi terhadap aplikasi-aplikasi Windows yang dapat melindungi aplikasi Windows dengan password agar tidak dapat digunakan oleh pihak yang tidak berhak.

  Sistem proteksi aplikasi Windows ini dibuat dengan bahasa pemrograman

  

Assembly . Sistem ini hanya berjalan pada sistem operasi Windows 32-bit dan hanya dapat

melindungi aplikasi Windows bertipe Portable Executable (PE).

  Hasil akhir yang diperoleh adalah sebuah sistem proteksi password yang dapat diterapkan pada aplikasi-aplikasi milik pengguna, dan pengguna-pengguna lain yang tidak mengetahui password tersebut tidak dapat menjalankannya. Pengguna juga dapat mengembalikan aplikasi-aplikasi yang telah diproteksi oleh sistem ini kembali ke keadaan semula.

  

ABSTRACT

  In Windows operating system, an application is saved in storage media as a file which can easily be copied and used by anyone that has access to the file. Noticing this, the author was interested to build a protection system for Windows applications which is able to protect them with password in order to prevent them from being used by unauthorized users.

  This Windows application protection system is developed using Assembly programming language. The system can only run on 32-bit Windows operating system and only protects Windows applications that are in Portable Executable (PE) format.

  The final result will be a password protection system that can be installed into user’s applications, and other users who do not know the password will not be able to run the applications. Additionally, the user can also restore the protected applications into their original states.

KATA PENGANTAR

  Segala puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa karena atas berkat rahmat dan limpahan kasih sayang-Nya penulis dapat menyelesaikan tugas akhir ini beserta laporannya sesuai dengan waktu yang telah ditetapkan dan diharapkan.

  Tugas Akhir dengan judul “Sistem Proteksi Aplikasi Windows Menggunakan Password Dengan Bahasa Assembly” ini sebagai salah satu syarat untuk menyelesaikan program studi S-1 di Jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta.

  Namun demikian ada banyak hal berupa pengetahuan dan pengalaman berharga yang penulis dapatkan selama Tugas Akhir. Penulis berharap semoga ini dapat berguna bagi penulis di masa yang akan datang.

  Penulis menyadari bahwa laporan ini masih jauh dari sempurna dan memiliki banyak kekurangan. Oleh karena itu penulis mengharapkan berbagai kritik dan saran yang bersifat membangun.

  Yogyakarta, 1 Oktober 2007 Penulis

  

DAFTAR ISI

HALAMAN JUDUL...................................................................................................................................... I

TITLE PAGE............................................................................................................................................... II

HALAMAN PERSETUJUAN ................................................................................................................... III

HALAMAN PENGESAHAN .................................................................................................................... IV

PERNYATAAN KEASLIAN KARYA.......................................................................................................V

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK

KEPENTINGAN AKADEMIS ................................................................................................................. VI

HALAMAN PERSEMBAHAN ................................................................................................................VII

HALAMAN MOTTO.............................................................................................................................. VIII

ABSTRAKSI ............................................................................................................................................... IX

ABSTRACT ..................................................................................................................................................X

KATA PENGANTAR ................................................................................................................................ XI

DAFTAR ISI ..............................................................................................................................................XII

DAFTAR TABEL.................................................................................................................................... XIV

DAFTAR GAMBAR .................................................................................................................................XV

  3.3.3 Win32 API ............................................................................................................................ 17

  3.3 S

  ISTEM O PERASI W

  INDOWS 32-

  BIT (W

  IN 32 ) .............................................................................. 15

  3.3.1 Dasar-dasar Win32 .............................................................................................................. 15

  3.3.2 Memori di Lingkungan Win32 .............................................................................................. 16

  3.3.4 Process dan Thread .............................................................................................................. 18

  3.2 S

  3.3.5 Window dan Message ........................................................................................................... 19

  3.3.6 File Mapping ........................................................................................................................ 20

  3.3.7 Portable Executable ............................................................................................................. 22

  3.3.8 Teknik Infeksi Virus Pada File Portable Executable ............................................................ 26

  3.4 B AHASA X

  86 A SSEMBLY .............................................................................................................. 27

  3.4.1 Win32 Assembly.................................................................................................................... 29

  ISTEM P ROTEKSI P ASSWORD ..................................................................................................... 13

  3.1.4 Algoritma Hashing MD5 ...................................................................................................... 12

  

BAB I PENDAHULUAN ............................................................................................................................ 1

  ........................................................................................... 3

  2.1 L ATAR B ELAKANG M ASALAH

  ...................................................................................................... 1

  2.2 R UMUSAN M ASALAH

  ................................................................................................................... 2

  2.3 B ATASAN M ASALAH

  .................................................................................................................... 3

  2.4 T UJUAN DAN M ANFAAT P ENELITIAN

  2.5 M ETODE P ENELITIAN

  3.1.3 Feistel Cipher dan XTEA........................................................................................................ 9

  ................................................................................................................... 3

  2.6 S

  ISTEMATIKA P ENULISAN ............................................................................................................ 5

  

BAB II LANDASAN TEORI...................................................................................................................... 7

  3.1 K RIPTOGRAFI

  ............................................................................................................................... 7

  3.1.1 Enkripsi, Dekripsi, dan Cipher ............................................................................................... 7

  3.1.2 Password, Kunci Enkripsi, dan Hash ..................................................................................... 8

  3.4.2 Compiler dan Compiling ...................................................................................................... 30

  ERANCANGAN MUM

  4.1 P U ............................................................................................................... 32

  4.1.1 Diagram UML ...................................................................................................................... 32

  4.1.2 Data Flow Diagram.............................................................................................................. 33

  4.1.3 Diagram Alir......................................................................................................................... 35 ERANCANGAN

  ISTEM

  4.2 P S .............................................................................................................. 46

  4.2.1 Perancangan User Interface................................................................................................. 46

  4.2.2 Perancangan Proses Utama ................................................................................................. 48

  4.2.3 Penggunaan Fungsi-Fungsi API .......................................................................................... 49

  4.2.4 Algoritma Enkripsi dan Dekripsi XTEA ............................................................................... 53

  4.2.5 Algoritma Hashing MD5 ...................................................................................................... 54

  

BAB IV IMPLEMENTASI SISTEM....................................................................................................... 56

INGKUNGAN MPLEMENTASI

  5.1 L I .................................................................................................... 56

  5.1.1 Lingkungan Perangkat Keras ............................................................................................... 56

  5.1.2 Lingkungan Perangkat Lunak............................................................................................... 56

  5.2 I MPLEMENTASI U SER

  I NTERFACE ................................................................................................ 57 MPLEMENTASI ROGRAM

  5.3 I P .......................................................................................................... 58

  5.3.1 Menampilkan Dialog Box Utama ......................................................................................... 58

  5.3.2 Prosedur Dialog Box Utama ................................................................................................ 59

  5.3.3 Menampilkan Open File Dialog Box .................................................................................... 61

  5.3.4 Menampilkan About Dialog Box........................................................................................... 62

  5.3.5 Menampilkan Help Dialog Box ............................................................................................ 63

  5.3.6 Membuat Rutin Penghitung Nilai Hash MD5....................................................................... 64

  5.3.7 Membuat Proses Konfirmasi Password................................................................................ 73

  5.3.8 Membuat Rutin Buka, Mapping, dan Validasi File .............................................................. 74

  5.3.9 Membuat Rutin Modifikasi File (Protect)............................................................................. 77

  5.3.10 Membuat Rutin Enkripsi XTEA........................................................................................ 79

  5.3.11 Membuat Rutin Dekripsi XTEA........................................................................................ 81

  5.3.12 Membuat Rutin Modifikasi File (Unprotect).................................................................... 82

  5.3.13 Membuat Rutin Validasi Blok Enkripsi/Dekripsi Code Section ....................................... 86

  5.3.14 Membuat Rutin Pencari Alamat Awal Windows Kernel .................................................. 91

  5.3.15 Membuat Rutin Pencari Alamat-alamat Fungsi API ....................................................... 92

  5.3.16 Menampilkan Password Dialog Box................................................................................ 94

  5.3.17 Membuat Proses Dekripsi Aplikasi dan Validasi Password .......................................... 100

  

BAB V ANALISIS HASIL IMPLEMENTASI ..................................................................................... 103

JICOBA ROGRAM

  6.1 U P .................................................................................................................. 103 ELEBIHAN

  ISTEM

  6.2 K S ................................................................................................................. 111 EKURANGAN

  ISTEM

  6.3 K S ............................................................................................................. 111

  

BAB VI PENUTUP.................................................................................................................................. 112

ESIMPULAN

  7.1 K ............................................................................................................................ 112 ARAN

  7.2 S ...................................................................................................................................... 113

DAFTAR PUSTAKA .............................................................................................................................. 114

  

DAFTAR TABEL

T ABEL

  2.1 S TANDARD EXE H EADER ............................................................................................... 22 T ABEL

  2.2 PE H EADER

  .................................................................................................................. 23 T ABEL

  2.3 PE O PTIONAL H EADER .................................................................................................. 24 T ABEL

  2.4 PE S ECTION H EADER

  .................................................................................................... 26

  

DAFTAR GAMBAR

G AMBAR

  4.3 A BOUT D

  IALOG B OX ......................................................................................... 100 G AMBAR

  4.5 P ASSWORD D

  AMBAR

  IALOG B OX .................................................................................................... 64 G

  4.4 H ELP D

  IALOG B OX .................................................................................................. 63 G AMBAR

  IALOG B OX .................................................................................................... 62 G AMBAR

  5.2 K ONDISI E NTRY P OINT S EBELUM P ROTEKSI

  4.2 O PEN D

  AMBAR

  IALOG B OX U TAMA ................................................................................................ 59 G

  4.1 D

  IALOG B OX ................................................................... 47 G AMBAR

  3.14 R ANCANGAN P ASSWORD D

  5.1 C ODE S ECTION S EBELUM P ROTEKSI ...................................................................... 104 G AMBAR

  ........................................................... 104 G AMBAR

  3.13 R ANCANGAN F ORM U TAMA

  5.8 P ERUBAHAN

  5.11 P ERUBAHAN

  I SI PE H EADER (4) ........................................................................... 109 G AMBAR

  5.10 P ERUBAHAN

  I SI PE H EADER (3) ............................................................................. 109 G AMBAR

  5.9 P ERUBAHAN

  I SI PE H EADER (2) ............................................................................. 108 G AMBAR

  I SI PE H EADER (1) ............................................................................. 107 G AMBAR

  5.3 C ODE S ECTION S ETELAH P ROTEKSI

  5.7 P ERUBAHAN

  5.6 K ONDISI S ECTION T ERAKHIR S ETELAH P ROTEKSI ................................................. 107 G AMBAR

  ................................................ 106 G AMBAR

  5.5 K ONDISI S ECTION T ERAKHIR S

EBELUM

P ROTEKSI

  5.4 K ONDISI E NTRY P OINT S ETELAH P ROTEKSI ........................................................... 105 G AMBAR

  ....................................................................... 105 G AMBAR

  ................................................................................... 46 G AMBAR

  AMBAR

  2.1 O PERASI C

  3.3 C ONTEXT D

  3.5 D

  AMBAR

  EVEL 1) ....................................................................................... 34 G

  IAGRAM Z ERO (L

  3.4 D

  IAGRAM ................................................................................................. 34 G AMBAR

  IAGRAM S TATECHART ............................................................................................. 33 G AMBAR

  EVEL 2) ....................................................................................... 34 G AMBAR

  3.2 D

  AMBAR

  IAGRAM U SE C ASE ................................................................................................. 32 G

  3.1 D

  XTEA ............................................................................................ 11 G AMBAR

  IPHER

  IAGRAM Z ERO (L

  3.6 D

  IAGRAM A LIR D EKRIPSI DAN M ODIFIKASI A PLIKASI .......................................... 45 G

  3.10 D

  3.12 D

  V ERIFIKASI A PLIKASI (D EKRIPSI ) ................................................ 43 G AMBAR

  IAGRAM A LIR

  3.11 D

  I NISIALISASI K

UNCI

D EKRIPSI ...................................................... 41 G AMBAR

  IAGRAM A LIR

  IAGRAM A LIR E NKRIPSI DAN M ODIFIKASI A PLIKASI ............................................ 40 G AMBAR

  IAGRAM Z ERO (L EVEL 3) ....................................................................................... 35 G AMBAR

  3.9 D

  V ERIFIKASI A PLIKASI (E NKRIPSI ) .................................................. 38 G AMBAR

  IAGRAM A LIR

  3.8 D

  I NISIALISASI KUNCI ENKRIPSI ......................................................... 36 G AMBAR

  IAGRAM A LIR

  3.7 D

  I SI PE H EADER (5) ........................................................................... 110

BAB I PENDAHULUAN

2.1 Latar Belakang Masalah

  Praktik cracking atau pembajakan aplikasi merupakan masalah yang sering ditemui di dunia teknologi informasi. Pembajakan aplikasi ini lebih banyak terjadi pada aplikasi-aplikasi komersial, tindakan pembajakan tersebut dilakukan oleh beberapa kalangan yang disebut crackers dan bertujuan untuk memungkinkan penggunaan aplikasi-aplikasi komersial tersebut tanpa membelinya secara resmi dari pembuatnya.

  Ada banyak faktor yang menyebabkan praktik cracking aplikasi dapat dilakukan, beberapa di antaranya adalah arsitektur komputer dan sistem operasi yang memungkinkan seseorang untuk mendapat salinan identik dari suatu aplikasi dengan mudah dan cepat. Faktor lain yang umum ialah keberadaan

  trialware /shareware yaitu aplikasi komersial yang mudah didapatkan dan dicoba

  secara gratis dengan jangka waktu yang terbatas dan fitur yang terbatas, dimana penggunanya tidak akan dapat menggunakan aplikasi tersebut ketika periode penggunaan gratisnya telah terlewati, dan pengguna diharapkan membeli aplikasi tersebut jika masih ingin menggunakannya.

  Terdapat banyak cara dan metode cracking, tapi intinya adalah memodifikasi suatu aplikasi untuk merubah cara kerja aplikasi tersebut, misalnya memodifikasi sebuah aplikasi trialware yang hanya dapat digunakan selama 15 hari agar dapat digunakan tanpa batas waktu. Contoh lain yang jauh lebih sederhana adalah mendapatkan salinan identik dari aplikasi komersial yang telah dibeli oleh orang lain.

  Untuk menekan maraknya praktik cracking, para pengembang aplikasi menyisipkan suatu algoritma proteksi pada aplikasinya, proteksi ini dimaksudkan untuk mencegah atau mempersulit praktik cracking, namun pada umumnya algoritma proteksi yang dipakai juga menyediakan algoritma untuk membuka proteksi tersebut. Contoh algoritma proteksi adalah memproteksi aplikasi dengan

  password , sehingga pengguna aplikasi harus memasukkan password sebelum dapat

  menggunakannya. Pada kenyataannya cracking terhadap aplikasi yang terproteksi tetap dimungkinkan dengan cara mempelajari cara kerja algoritma validasi

  password dalam aplikasi tersebut terlebih dahulu.

2.2 Rumusan Masalah

  Dari latar belakang masalah di atas dapat dirumuskan menjadi beberapa masalah sebagai berikut:

  1. Bagaimana cara mengimplementasikan sistem proteksi password pada suatu aplikasi Windows yang telah ada?

  2. Bagaimana cara mengembalikan suatu aplikasi Windows yang telah dipasangi sistem proteksi password ke kondisi semula?

2.3 Batasan Masalah

  Dalam penerapan algoritma proteksi password pada aplikasi ini dilakukan beberapa batasan sebagai berikut:

1. Aplikasi yang dapat diproses adalah aplikasi bertipe Windows 32-bit x86

  Portable Executable (Win32 PE) 2.

  Program dibuat dengan bahasa Win32 x86 Assembly dan hanya dapat berjalan di lingkungan sistem operasi yang mendukung aplikasi Win32.

  2.4 Tujuan dan Manfaat Penelitian

  Penelitian ini bertujuan untuk membuat suatu program yang dapat menyisipkan sistem proteksi password pada suatu aplikasi agar aplikasi tersebut hanya dapat digunakan oleh pihak yang berhak menggunakannya. Pihak-pihak yang tidak berhak masih dimungkinkan untuk menyalin aplikasi yang terproteksi, namun tidak dapat menggunakannya tanpa mengetahui password yang digunakan untuk memproteksinya.

  Manfaat yang dapat diperoleh dari pembuatan sistem proteksi password ini ialah mempunyai suatu sistem perlindungan terhadap aplikasi-aplikasi pribadi agar tidak dapat digunakan oleh pihak-pihak yang tidak berhak menggunakannya.

  2.5 Metode Penelitian

  Langkah-langkah yang dilakukan adalah sebagai berikut:

1. Studi literatur a.

  Mempelajari struktur dan format suatu file Portable Executable b.

  Mempelajari dan memilih teknik memodifikasi file Portable Executable untuk menempatkan kode password dialog box dan decryptor.

  c.

  Mempelajari algoritma enkripsi XTEA d.

  Mempelajari algoritma hashing MD5

2. Merancang program a.

  Rancangan sistem input dan output.

  b.

  Rancangan user interface program utama dan password dialog box.

  c.

  Algoritma 1.

  Algoritma program secara menyeluruh 2. Algoritma memodifikasi file Portable Executable 3. Algoritma untuk membedakan file Portable Executable yang telah terproteksi dan yang belum terproteksi.

4. Algoritma enkripsi XTEA 5.

  Algoritma hashing MD5

  3. Membuat program a.

  Mengimplementasikan semua rancangan ke bentuk program b.

  Menguji algoritma modifikasi file Portable Executable c. Menguji interaksi pada user interface dan password dialog box d.

  Menguji algoritma hashing MD5 dan enkripsi XTEA e. Menguji program secara keseluruhan

  4. Implementasi program a.

  Memilih berbagai macam file Portable Executable dari berbagai sumber b.

  Menguji coba program utama dan aplikasi yang terproteksi pada lingkungan

  hardware yang kompatibel dengan sistem Intel x86 dan sistem operasi Windows XP.

  Menganalisis hasil dan mengevaluasi unjuk kerja program utama dan kompatibilitas serta kehandalan aplikasi yang terproteksi.

2.6 Sistematika Penulisan

  Sistematika penulisan Tugas Akhir ini terbagi atas lima bab sebagai berikut:

BAB I: PENDAHULUAN Bab ini berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan & manfaat penelitian, serta metode penelitian dari Tugas Akhir ini. BAB II: LANDASAN TEORI Bab ini berisi landasan teori yang dipakai untuk pembahasan masalah dalam penulisan Tugas Akhir ini. BAB III: PERANCANGAN SISTEM Bab ini berisi gambaran perancangan sistem aplikasi yang dibuat dalam Tugas Akhir ini. BAB IV: IMPLEMENTASI SISTEM Bab ini berisi implementasi dari rancangan sistem yang telah dibuat pada bab sebelumnya. BAB V: ANALISIS HASIL IMPLEMENTASI

BAB VI: PENUTUP Bab ini berisi kesimpulan dan saran dalam penulisan Tugas Akhir ini.

BAB II LANDASAN TEORI

3.1 Kriptografi

  Kriptografi adalah studi tentang kerahasiaan suatu pesan, informasi, atau data. Saat ini kriptografi telah menjadi bagian dari Teknologi Informasi terutama karena dalam Teknologi Informasi sering melibatkan transmisi pesan, informasi, atau data dari satu tempat dan tempat lain dan kerahasiaan serta keasliannya harus dijaga selama dalam proses transmisi, di sinilah kriptografi berperan penting.

3.1.1 Enkripsi, Dekripsi, dan Cipher

  Enkripsi adalah proses membuat suatu informasi tidak dapat dibaca tanpa pengetahuan khusus, terkadang disamakan dengan proses pengacakan. Dekripsi adalah kebalikan enkripsi, yaitu proses untuk mengembalikan informasi yang telah diacak dengan proses enkripsi ke kondisi semula sehingga dapat dibaca dan diidentifikasikan.

  Cipher adalah suatu algoritma untuk melakukan enkripsi atau dekripsi, merupakan sekumpulan langkah yang dapat diikuti sebagai suatu prosedur.

  Umumnya prosedur tersebut bervariasi bergantung pada suatu kunci yang mengubah operasi dalam algoritma tersebut. Suatu proses enkripsi atau dekripsi tidak dapat dilakukan tanpa kunci ini, dan kunci ini dipilih sebelum proses enkripsi dan kemudian disimpan untuk proses dekripsi. Data yang akan dienkripsi disebut dengan plaintext dan data yang telah dienkripsi disebut ciphertext.

  Menurut Wikipedia, cipher dapat dikategorikan berdasarkan hal-hal sebagai berikut: a.

  Apakah cipher tersebut bekerja pada suatu blok masukan yang ukurannya tetap (disebut dengan block cipher) atau apakah cipher tersebut bekerja pada suatu aliran masukan (disebut dengan stream cipher ).

  b.

  Apakah cipher tersebut menggunakan kunci yang sama untuk enkripsi dan dekripsi (disebut algoritma symmetric key) atau apakah menggunakan kunci yang berbeda untuk enkripsi dan dekripsi (disebut algoritma asymmetric key).

3.1.2 Password, Kunci Enkripsi, dan Hash

  Tiga istilah ini, walaupun amat berbeda dalam kriptografi, namun sering salah ditafsirkan. Password ialah kata, gabungan kata, atau kumpulan karakter- karakter yang tidak berarti untuk menjawab input dari beberapa program yang menanyakannya. Namun, program-program tersebut tidak menggunakan

  password untuk melakukan proses enkripsi, melainkan hanya mengambil kunci

  enkripsi berdasar password yang dimasukkan. Kunci enkripsi adalah deretan bit (0 atau 1) dengan panjang yang bervariasi, contohnya 40-bit, 64-bit, dan 128-bit.

  Untuk melakukan dekripsi suatu data, password atau kunci enkripsi yang digunakan harus diketahui.

  Untuk mendapatkan kunci enkripsi dari password, fungsi hashing sering digunakan. Hashing adalah suatu fungsi kriptografi yang rumit yang meminta masukan berupa string dengan panjang yang tidak ditentukan dan menciptakan suatu deretan bit dengan panjang tetap (hash) sebagai keluaran. Deretan bit hasil

  hashing ini amat unik, sedikit perubahan pada string masukan akan menciptakan

  hasil hash yang amat berbeda dan secara praktis tidak dimungkinkan untuk mendapatkan string masukan hanya dengan mengetahui nilai hash.

3.1.3 Feistel Cipher dan XTEA

  Untuk algoritma enkripsi, penulis memilih algoritma XTEA (eXtended Tiny

  Encryption Algorithm ) yang dirancang oleh David Wheeler dan Roger Needham

  dari University of Cambridge. Algoritma ini dipilih karena dapat diimplementasikan dalam kode Assembly yang sangat kecil, kecepatan eksekusi enkripsi/dekripsi yang tinggi, dan tingkat keamanan yang tinggi pula (walau tingkat keamanannya tidak setinggi algoritma-algoritma kandidat AES, namun sangat tinggi untuk ukuran kode encryptor/decryptor yang begitu kecil). Algoritma XTEA ini bertipe block cipher, menggunakan algoritma symmetric

  cipher , dan dioptimisasi kecepatan ekseksusinya pada prosesor x86 32-bit

  sehingga sangat cocok dengan penelitian ini, algoritma ini menggunakan ukuran blok sebesar 64-bit dan ukuran key sebesar 128-bit.

  Algoritma XTEA ini dikategorikan sebagai Feistel cipher, yaitu suatu jenis block cipher dengan struktur yang spesifik sebagai berikut: a.

  Operasi enkripsi dan dekripsi sangat mirip, umumnya operasi dekripsi b.

  Operasi enkripsi dan dekripsi dijalankan dalam beberapa prosedur yang diulang-ulang. Prosedur tersebut mengandung operasi-operasi:

1. Penggeseran bit (disebut permutation boxes) 2.

  Fungsi-fungsi non-linear (disebut substitution boxes) 3. Pengacakan linear menggunakan XOR Operasi dasar Feistel cipher adalah sebagai berikut: Membagi tiap blok plaintext ke dalam dua pecahan yang sama (L dan R ).

  Untuk setiap langkah dilakukan perhitungan L i = R i – 1

  Dimana f adalah suatu fungsi dari prosedur tersebut, dan K adalah suatu dari kunci enkripsi. Ciphertext yang dihasilkan adalah (L dan R ).

  subkey n n

  Operasi dekripsi dilakukan dengan R i-1 = L i

  Satu putaran operasi cipher XTEA (terdiri dari dua langkah) digambarkan sebagai berikut:

Gambar 3.1 Operasi Cipher XTEA

  Delta adalah suatu konstanta tetap bernilai 0x9E3779B9, “<< 4” menandakan operasi pergeseran 4 bits ke kiri, “>> 5” menandakan operasi pergeseran 5 bits ke kanan, dan subkey mewakili kunci enkripsi. Algoritma enkripsi XTEA yang asli ditulis David Wheeler dan Roger Needham dalam bahasa C, sebagai berikut:

  void encipher(unsigned int num_rounds, unsigned long* v, unsigned long* k) { unsigned long v0=v[0], v1=v[1], i; unsigned long sum=0, delta=0x9E3779B9; for(i=0; i<num_rounds; i++) { v0 += ((v1 << 4 ^ v1 >> 5) + v1) ^ (sum + k[sum & 3]); sum += delta; v1 += ((v0 << 4 ^ v0 >> 5) + v0) ^ (sum + k[sum>>11 & 3]); } v[0]=v0; v[1]=v1; }

  Sedangkan algoritma dekripsinya adalah sebagai berikut: unsigned long delta=0x9E3779B9, sum=delta*num_rounds; for(i=0; i<num_rounds; i++) { v1 -= ((v0 << 4 ^ v0 >> 5) + v0) ^ (sum + k[sum>>11 & 3]); sum -= delta; v0 -= ((v1 << 4 ^ v1 >> 5) + v1) ^ (sum + k[sum & 3]); } v[0]=v0; v[1]=v1; }

3.1.4 Algoritma Hashing MD5

  MD5 (Message-Digest algorithm 5) adalah suatu fungsi hashing kriptografi

  yang menghasilkan nilai hash berukuran 128-bit. Penggunaan algoritma hashing dalam Tugas Akhir ini dimaksudkan untuk mendapatkan nilai kunci enkripsi/dekripsi dari masukan password. Algoritma hashing MD5 diawali dengan menginisialisasi suatu konstanta 128-bit yang dibagi menjadi 4 bagian 32- bit yang dinamai A, B, C, dan D. Nilai A = 0x67452301, B = 0xEFCDAB89, C = 0x98BADCFE, dan D = 0x10325476. Algoritma utama memproses string masukan yang dibagi ke dalam blok-blok berukuran 512-bit. Pemrosesan dilakukan blok demi blok, dan tiap pemrosesan blok terdiri dari 4 langkah yang disebut round. Setiap round terdiri dari 16 operasi yang berdasar pada suatu fungi non-linear F, G, H, dan I. Operasi fungsi-fungsi adalah sebagai berikut: secara berturut-turut mewakili operasi XOR, AND, OR, dan NOT. Algoritma hashing MD5 secara lengkap dalam format pseudocode adalah

  var int[64] r, k r[ 0..15] := {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22} r[16..31] := {5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20} r[32..47] := {4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23} r[48..63] := {6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21} for i from 0 to 63 k[i] := floor(abs(sin(i + 1)) × 2^32) var int h0 := 0x67452301 var int h1 := 0xEFCDAB89 var int h2 := 0x98BADCFE var int h3 := 0x10325476 append "1" bit to message append "0" bits until message length in bits

  ≡ 448 (mod 512)

append bit length of message as 64-bit little-endian integer to message

for each 512-bit chunk of message break chunk into sixteen 32-bit little-endian words w[i], 0 ≤ i ≤ 15 var int a := h0 var int b := h1 var int c := h2 var int d := h3 for i from 0 to 63 if 0

  ≤ i ≤ 15 then f := (b and c) or ((not b) and d) g := i else if 16

  ≤ i ≤ 31 f := (d and b) or ((not d) and c) g := (5×i + 1) mod 16 else if 32

  ≤ i ≤ 47 f := b xor c xor d g := (3×i + 5) mod 16 else if 48

  ≤ i ≤ 63 f := c xor (b or (not d)) g := (7×i) mod 16 temp := d d := c c := b b := ((a + f + k[i] + w[g]) leftrotate r[i]) + b a := temp h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d var int digest := h0 append h1 append h2 append h3

3.2 Sistem Proteksi Password

  Prinsip sistem proteksi password yang digunakan adalah tidak menyimpan

  password asli di dalam file aplikasi yang bersangkutan. Prinsip ini pada dasarnya

  sama dengan proteksi password pada kebanyakan file archive seperti .ZIP, .RAR,

  

password pada archive memproteksi file archive, maka sistem proteksi password

  ini memproteksi aplikasi. Kekuatan proteksi password pada archive ini terlihat jika suatu archive diproteksi dengan password yang baik (jumlah karakter panjang, case berbeda-beda, dan dicampur dengan karakter spesial dan angka) dan suatu saat pemilik archive tersebut lupa akan passwordnya maka tidak ada cara lain selain

  

brute force , dictionary attack, atau cara-cara paksa lainnya untuk mengembalikan

password karena aplikasi archiver memang tidak menyimpan password archive di

  dalam archive yang bersangkutan, aplikasi archiver hanya menyimpan hash dari isi

  

archive tersebut, sehingga untuk membuka archive tersebut, yang perlu dilakukan

  hanyalah melakukan dekripsi menggunakan password yang dimasukkan (program tidak melakukan pengecekan apakah password tersebut benar atau tidak) kemudian melakukan perhitungan hash dari data yang telah didekripsi lalu membandingkannya dengan hash yang asli, jika tidak cocok maka dianggap

  

password yang dimasukkan salah. Sistem proteksi archive semacam ini hanya

  menyediakan informasi hash di dalam archive, dan bagi seorang cracker tidak mungkin untuk menemukan password asli hanya dengan mengetahui nilai hash selain dengan brute force, sedangkan proses menemukan password yang baik dengan metode brute force akan memakan waktu yang sangat lama (bahkan bisa memakan waktu ratusan atau ribuan tahun).

3.3 Sistem Operasi Windows 32-bit (Win32)

3.3.1 Dasar-dasar Win32

  Win32 adalah lingkungan sistem operasi Windows yang berjalan pada

  modus Protected Mode dan menggunakan instruksi x86 32-bit sebagai instruksi utama. Beberapa sistem operasi Win32 adalah sebagai berikut:

1. Windows 3.1 dengan Win32s (Win32 subset) 2.

  Windows 95 3. Windows 98 4. Windows NT 5. Windows ME 6. Windows 2000 7. Windows XP 8. Windows Server 2003 9. Windows Vista

  Win32 harus berjalan pada prosesor yang mendukung instruksi x86 32-bit

  dan Protected Mode. Prosesor yang memenuhi kriteria ini adalah semua prosesor kelas 80386 dan yang lebih baru.

  Win32 mengadopsi sistem protection rings, yaitu mekanisme untuk