PEMBANGUNAN ADD-ON PADA MOZILLA THUNDERBIRD UNTUK ENKRIPSI SURAT ELEKTRONIK DENGAN CORRECTED BLOCK TINY ENCRYPTION ALGORITHM
LAPORAN TUGAS AKHIR
oleh : Ricky Gilbert Fernando / 13505077
PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2009
LEMBAR PENGESAHAN Program Studi Sarjana Teknik Informatika Pembangunan Add-on pada Mozilla Thunderbird untuk Enkripsi Surat Elektronik dengan Corrected Block Tiny Encryption Algorithm
Tugas Akhir Program Studi Sarjana Teknik Informatika ITB
Oleh: Ricky Gilbert Fernando / 13505077
Telah disetujui dan disahkan sebagai laporan tugas akhir di Bandung, pada 25 Agustus 2009
Pembimbing
Ir. Rinaldi Munir, M.T. NIP. 132084796 i
ABSTRAK Saat ini, komunikasi digital semakin dibutuhkan. Komunikasi tersebut dapat berupa email, instant messaging, forum, website, audio, atau video. Fokus tugas akhir ini adalah pengamanan email dengan menggunakan algoritma enkripsi. Dengan berbasiskan corrected block tiny encryption algorithm yang merupakan algoritma kriptografi kunci simetris, pengguna, baik pengirim maupun penerima, harus memiliki kunci enkripsi yang sama. Tentu saja, orang lebih tertarik untuk memilih kunci yang mudah diingat, tetapi mudah ditebak dibandingkan kunci yang panjang dan sulit diingat. Tugas akhir ini menyediakan sebuah mekanisme untuk membangkitkan kata kunci yang relatif kuat dengan menggunakan masukan dari pengguna. Tugas akhir ini berisi gambaran singkat mengenai ide awal dan dasar teori pengerjaan tugas akhir, laporan pembangunan perangkat lunak, dan pengujian perangkat lunak. Perangkat lunak ini, atau lebih tepat disebut sebagai add-on Mozilla Thunderbird, mampu menangani proses enkripsi dan dekripsi surat elektronik, penghitungan kekuatan kata kunci masukan pengguna, dan pembangkitan kata kunci. Fitur-fitur tersebut dapat membantu pengguna untuk membangkitkan kata kunci hingga mengirimkan
surat
elektronik
yang
aman
ke
penerima.
Dalam
proses
implementasinya, lingkungan implementasi yang digunakan adalah Windows XP SP3, Mozilla Thunderbird 2.0.0.21 dengan add-on DOM Inspector, dan Notepad++. Addon dibangun dengan XUL (XML User Interface Language) sebagai pembentuk tampilan dan Javascript sebagai bahasa pemrograman. Setelah dilakukan pengujian, semua kebutuhan perangkat lunak berjalan dengan baik, surat elektronik dikirim dalam bentuk terenkripsi, kata kunci bangkitan tergolong relatif kuat, dan enkripsi dan dekripsi berjalan dengan cepat. Kata kunci: Corrected block tiny encryption algorithm, email, Mozilla Thunderbird, add-on.
ii
KATA PENGANTAR Penulis panjatkan puji syukur kepada Tuhan Yesus Kristus atas semua berkat dan perlindungan-Nya sehingga penulis dapat menyelesaikan tugas akhir ini. Laporan dengan judul “Pembangunan Add-on pada Mozilla Thunderbird untuk Enkripsi Surat Elektronik dengan Corrected Block Tiny Encryption Algorithm” disusun sebagai syarat kelulusan tingkat sarjana. Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada semua pihak yang telah membantu penulis selama pelaksanaan tugas akhir ini. Ucapan terima kasih disampaikan kepada: 1. Ir. Rinaldi Munir, M.T. selaku dosen pembimbing yang telah membantu dan membimbing, dan memberikan nasehat selama pengerjaan tugas akhir ini. 2. Dra. Harlili, M.Sc. selaku dosen penguji presentasi proposal, seminar, prasidang, dan sidang atas kritik dan saran yang telah diberikan. 3. Achmad Imam Kistijantoro, S.T., M.T., Ph.D. selaku dosen penguji siding atas kritik dan saran yang telah diberikan. 4. Keluarga penulis, Papa, Mama, Kak Nancy, Kak Roose, Samantha, dan Raymond yang selalu mendukung dan mendorong penulis untuk semangat mengerjakan tugas akhir ini. 5. Yani Widyani, S.T., M.T. selaku dosen wali yang selalu memberi semangat untuk cepat membereskan tugas akhir. 6. Ir. Windy Gambetta, Ph.D. selaku dosen mata kuliah Tugas Akhir. 7. Ibnul Qoyyim S.T., IF04, yang telah memberikan bantuan teknis, jawaban atas pertanyaan penulis, dan saran-sarannya selama pengerjaan tugas akhir. 8. Nanto S.T., Ferry S.T., dan Anggi yang selalu bisa membantu ketika penulis kesulitan. 9. Gilang S.T. dan Herdyanto yang selalu menjadi teman diskusi tugas akhir. 10. Vandy atas bantuannya ketika penulis kesulitan mendapatkan akses internet. iii
11. Teman-teman yang telah mengikuti presentasi proposal dan seminar tugas akhir penulis. 12. Teman-teman IF05 atas 4 tahun yang menyenangkan di ITB. 13. Donny S.T. TI05 yang telah meminjamkan modem HSDPA-nya kepada penulis dan memberikan semangat kepada penulis untuk terus mengerjakan tugas akhir. 14. Teman-teman kos atas kebersamaannya selama di sana. 15. Seluruh staf Program Studi Teknik Informatika yang telah mendukung kelancaran pengerjaan tugas akhir. 16. Pihak-pihak lainnya yang telah membantu pengerjaan tugas akhir ini yang tidak dapat disebutkan satu per satu. Penulis menyadari bahwa tugas akhir ini tidak luput dari kesalahan. Oleh karena itu, penulis bersedia menerima kritik dan saran dari pembaca. Terima kasih.
Bandung, Agustus 2009
Penulis
iv
DAFTAR ISI LEMBAR PENGESAHAN ............................................................................................ i ABSTRAK .....................................................................................................................ii KATA PENGANTAR ................................................................................................. iii DAFTAR ISI.................................................................................................................. v DAFTAR GAMBAR ................................................................................................. viii DAFTAR TABEL ......................................................................................................... ix BAB I.
PENDAHULUAN .................................................................................... I-1
I.1
Latar Belakang ............................................................................................. I-1
I.2
Rumusan Masalah ........................................................................................ I-3
I.3
Tujuan........................................................................................................... I-3
I.4
Batasan Masalah ........................................................................................... I-4
I.5
Metodologi ................................................................................................... I-4
BAB II.
STUDI LITERATUR .............................................................................. II-1
II.1
Kriptografi ................................................................................................... II-1
II.2
Block Cipher................................................................................................ II-4
II.3
Jaringan Feistel............................................................................................ II-5
II.4
Fungsi Hash SHA........................................................................................ II-6
II.5
Corrected Block Tiny Encryption Algorithm .............................................. II-7
II.5.1
Definisi ................................................................................................. II-7
II.5.2
Algoritma Penyandian ......................................................................... II-9
II.5.3
Detail Sandi........................................................................................ II-10
II.6
Kata Kunci................................................................................................. II-11
II.6.1
Definisi ............................................................................................... II-11
II.6.2
Pengukuran Kekuatan Kata Kunci ..................................................... II-12
II.7
Surat Elektronik......................................................................................... II-12
II.8
MIME ........................................................................................................ II-14
II.9
Mekanisme Add-on pada Mozilla Thunderbird ........................................ II-15
BAB III. ANALISIS MASALAH ........................................................................ III-1 III.1
Analisis Permasalahan ........................................................................... III-1 v
III.2
Penanganan Masalah ............................................................................. III-2
III.2.1 Penanganan Masalah Kekuatan Kata Kunci ...................................... III-2 III.2.2 Penanganan Masalah Implementasi XXTEA .................................... III-4 III.2.3 Penanganan Masalah Encoding Ciphertext ....................................... III-5 III.2.4 Penanganan Masalah Kenyamanan Add-on ....................................... III-6 BAB IV. ANALISIS DAN PERANCANGAN .................................................... IV-1 IV.1
Deskripsi Umum Perangkat Lunak........................................................ IV-1
IV.2
Fitur Utama Perangkat Lunak................................................................ IV-2
IV.2.1 Kebutuhan Fungsional ....................................................................... IV-3 IV.2.2 Kebutuhan Non-fungsional ................................................................ IV-3 IV.3
Model Use Case..................................................................................... IV-3
IV.3.1 Diagram Use Case ............................................................................. IV-3 IV.3.2 Definisi Aktor .................................................................................... IV-4 IV.3.3 Definisi Use Case .............................................................................. IV-4 IV.3.4 Skenario Use Case ............................................................................. IV-5 IV.4
Analisis Perangkat Lunak ...................................................................... IV-6
IV.4.1 Realisasi Use Case Tahap Analisis .................................................... IV-7 IV.4.2 Diagram Kelas Analisis Keseluruhan ................................................ IV-9 IV.5
Perancangan Perangkat Lunak............................................................. IV-11
IV.5.1 Realisasi Use Case Tahap Perancangan ........................................... IV-11 IV.5.2 Diagram Kelas Keseluruhan ............................................................ IV-13 IV.5.3 Perancangan Antarmuka .................................................................. IV-14 IV.5.4 Perancangan Modul ......................................................................... IV-17 BAB V.
IMPLEMENTASI DAN PENGUJIAN ...................................................V-1
V.1 Lingkungan Implementasi ...........................................................................V-1 V.1.1
Lingkungan Perangkat Keras ...............................................................V-1
V.1.2
Lingkungan Perangkat Lunak ..............................................................V-1
V.2 Batasan Implementasi .................................................................................V-2 V.3 Hasil Implementasi......................................................................................V-2 V.3.1
Hasil Implementasi Modul Program ....................................................V-2
V.3.2
Hasil Implementasi Antarmuka Program.............................................V-3
V.4 Lingkungan Pengujian.................................................................................V-3 vi
V.4.1
Lingkungan Pengujian Perangkat Keras ..............................................V-3
V.4.2
Lingkungan Pengujian Perangkat Lunak .............................................V-3
V.5 Tujuan Pengujian.........................................................................................V-4 V.6 Perancangan Kasus Uji................................................................................V-4 V.7 Skenario Pengujian ......................................................................................V-4 V.7.1
Skenario Pengecekan Kata Kunci ........................................................V-4
V.7.2
Skenario Pembangkitan Kata Kunci ....................................................V-5
V.7.3
Skenario Pengiriman Surat Elektronik dengan Enkripsi .....................V-5
V.7.4
Skenario Penerimaan dan Dekripsi Surat Elektronik...........................V-5
V.8 Pelaksanaan Pengujian ................................................................................V-6 V.8.1
Pengujian Skenario Pengecekan Kata Kunci .......................................V-6
V.8.2
Pengujian Skenario Pembangkitan Kata Kunci ...................................V-6
V.8.3
Pengujian Skenario Pengiriman Surat Elektronik................................V-6
V.8.4
Pengujian Skenario Penerimaan dan Dekripsi Surat Elektronik..........V-7
V.8.5
Pengujian Skenario Dekripsi Surat dengan Kunci yang Salah ............V-7
V.8.6
Pengujian Skenario Dekripsi Surat Elektronik yang Invalid ...............V-7
V.8.7
Pengujian Skenario Dekripsi Ciphertext yang Berubah ......................V-7
V.8.8
Pengujian Ketepatan Isi Surat yang Terkirim ......................................V-8
V.8.9
Pengujian Kekuatan Kata Kunci Bangkitan Program..........................V-8
V.8.10
Pengujian Kecepatan Enkripsi XXTEA ...........................................V-8
V.9 Evaluasi Hasil Pengujian .............................................................................V-8 BAB VI. PENUTUP ............................................................................................. VI-1 VI.1
Kesimpulan ............................................................................................ VI-1
VI.2
Saran ...................................................................................................... VI-1
DAFTAR PUSTAKA .................................................................................................... x LAMPIRAN A. DOKUMEN PENGUJIAN ..............................................................xii
vii
DAFTAR GAMBAR Gambar I-1 Skema Solusi ........................................................................................... I-3 Gambar II-1 Ilustrasi Saluran Komunikasi ................................................................ II-3 Gambar II-2 Skema Enkripsi dan Dekripsi Block Cipher [ MUN06] ....................... II-4 Gambar II-3 Skema Penyandian dari Feistel Cipher ................................................. II-5 Gambar II-4 Satu Iterasi dalam XXTEA ................................................................... II-9 Gambar II-5 Proses Pengiriman Surat Elektronik ................................................... II-13 Gambar III-1 Skema Pemilihan Kata Kunci ............................................................ III-4 Gambar IV-1 Skema Umum Perangkat Lunak ........................................................ IV-2 Gambar IV-2 Diagram Use Case ............................................................................. IV-4 Gambar IV-3 Class Diagram Analisis Mengenkripsi Surat Elektronik .................. IV-7 Gambar IV-4 Sequence Diagram Analisis Mengenkripsi Surat Elektronik ............ IV-8 Gambar IV-5 Class Diagram Analisis Mendekripsi Surat Elektronik .................... IV-8 Gambar IV-6 Sequence Diagram Analisis Mendekripsi Surat Elektronik .............. IV-9 Gambar IV-7 Diagram Kelas Analisis Keseluruhan .............................................. IV-10 Gambar IV-8 Diagram Kelas Perancangan Mengenkripsi Surat Elektronik ......... IV-11 Gambar IV-9 Sequence Diagram Perancangan Mengenkripsi Surat Elektronik... IV-12 Gambar IV-10 Diagram Kelas Perancangan Mendekripsi Surat Elektronik ......... IV-12 Gambar IV-11 Sequence Diagram Perancangan Mendekripsi Surat Elektronik... IV-13 Gambar IV-12 Diagram Kelas Perancangan Keseluruhan .................................... IV-14 Gambar IV-13 Screenshot Main Window Mozilla Thunderbird............................ IV-15 Gambar IV-14 Screenshot Compose Window Mozilla Thunderbird ..................... IV-15 Gambar IV-15 Sketsa Main Window Mozilla Thunderbird................................... IV-16 Gambar IV-16 Sketsa Compose Window Mozilla Thunderbird ............................ IV-16
viii
DAFTAR TABEL Tabel II-1 Detail Sandi............................................................................................. II-11 Tabel IV-1 Definisi Use Case .................................................................................. IV-5 Tabel IV-2 Skenario Use Case Mengenkripsi Surat Elektronik .............................. IV-5 Tabel IV-3 Skenario Use Case Mendekripsi Surat Elektronik ................................ IV-6 Tabel V-1 Daftar Modul Program..............................................................................V-2 Tabel V-2 Daftar Antarmuka Program ......................................................................V-3
ix