PERANCANGAN DAN IMPLEMENTASI PROTOKOL SMS-BANKING LAPORAN TUGAS AKHIR Disusun Sebagai Syarat Kelulusan Tingkat Sarjana oleh : Herdyanto Soeryowardhana / 13505095 PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2009
LEMBAR PENGESAHAN Program Studi Sarjana Teknik Informatika Perancangan dan Implementasi Protokol SMS-Banking Tugas Akhir Program Studi Sarjana Teknik Informatika ITB Oleh: Herdyanto Soeryowardhana / 13505095 Telah disetujui dan disahkan sebagai laporan tugas akhir di Bandung pada tanggal 29 September 2009 Pembimbing Ir. Rinaldi Munir, M.T. NIP: 132084796 i
ABSTRAK SMS atau Short Message Service adalah suatu layanan pengiriman pesan singkat melalui telepon seluler. SMS menawarkan banyak kemudahan, salah satunya adalah SMS- Banking. SMS-Banking merupakan suatu layanan perbankan melalui jalur elektronik yang memungkinkan para nasabah bank tertentu untuk melakukan berbagai transaksi perbankan melalui fasilitas SMS pada telepon seluler. Pada sistem GSM dan sistem SMS-Banking terdapat berbagai ancaman keamanan. Oleh karena itu, pada tugas akhir ini dirancanglah suatu protokol SMS-Banking yang dilengkapi dengan berbagai algoritma kriptografi seperti RSA, Rijndael, tanda tangan digital, serta Diffie Hellman. Rancangan protokol tersebut lalu diimplementasikan pada suatu perangkat lunak simulasi yang terdiri dari aplikasi klien dan server. Aplikasi klien dikembangkan pada PDA yang berbasis Microsoft Windows Mobile 5.0 sedangkan aplikasi server dikembangkan pada komputer yang berbasis Microsoft Windows XP. Kedua aplikasi tersebut dikembangkan dengan menggunakan.net framework. Tugas akhir ini berfokuskan pada protokol SMS-Banking. Metodologi yang digunakan dalam tugas akhir ini yaitu studi literatur, analisis masalah, eksplorasi, analisis perangkat lunak, perancangan perangkat lunak, implementasi perangkat lunak, dan pengujian perangkat lunak. Hasil pengujian pada tugas akhir ini menunjukkan bahwa protokol SMS-Banking yang dibuat telah memenuhi tujuan protokol yaitu kerahasiaan, otentikasi, integritas data, serta nirpenyangkalan. Selain itu, protokol telah berhasil diimplementasikan dengan baik pada perangkat lunak simulasi yang dikembangkan. Pengujian penyadapan pesan juga membuktikan bahwa data penting pada pesan yang disadap tidak mudah untuk dikenali. Kata Kunci: protokol, SMS-Banking, Windows Mobile 5.0,.NET framework ii
KATA PENGANTAR Puji syukur kehadirat Allah SWT yang karena nikmat dan karunia-nyalah tugas akhir yang berjudul Perancangan dan Implementasi Protokol SMS-Banking ini telah berhasil diselesaikan. Shalawat dan salam tidak lupa dihaturkan kepada Nabi Muhammad SAW. Dalam pengerjaan tugas akhir ini penulis mendapatkan banyak bantuan dari berbagai pihak. Oleh karena itu, perkenankanlah penulis untuk menyampaikan ucapan terima kasih kepada: 1. Bapak Ir. Rinaldi Munir, M.T., selaku dosen pembimbing tugas akhir yang telah memberikan bimbingan, motivasi serta kesempatan dalam pengerjaan tugas akhir ini. 2. Bapak Imam Kistijantoro, S.T., M.Sc., Ph.D., Bapak Bugi Wibowo, S.T., M.T., Ibu Harlili M.Sc. selaku penguji tugas akhir yang telah memberikan segala masukan serta saran yang membangun dalam tugas akhir ini. 3. Ibu Yani Widyani dan Almarhumah Ibu Sri Purwanti selaku dosen wali yang telah memberikan bimbingan kepada penulis selama penulis menjadi mahasiswa Teknik Informatika ITB. 4. Kedua orang tua saya, Ibunda Wahyundari serta Ayahanda Soeharyono Soeryo yang telah mendidik, melindungi, memberikan kasih sayangnya serta semua hal yang telah diberikan kepada penulis sehingga ucapan terima kasih ini tidaklah cukup untuk menggambarkan wujud penghargaan saya. 5. Indah Kuntum Khairina yang telah memberikan semangat, dukungan, serta motivasi kepada penulis selama pengerjaan tugas akhir ini. 6. Padhang Harindra, Raka Angling Dipura, Ibnu Sina Wardi, Tante Ririn Suprodorina atas dukungan dan pinjaman telepon selulernya. iii
7. Mohammad Gilang Kautzar, Hadyan Ghaziani Fadli, Mohammad Riftadi, Arinta Primandini, Yuandra Ismiraldi, Aryo Nugroho, Ella Madanella, Catur Wirawan Wijiutomo serta Monterico Adrian yang telah memberikan dukungan kepada penulis dalam pengerjaan tugas akhir ini. 8. Teman-teman Teknik Informatika ITB Angkatan 2005. 9. Teman-teman Teknik Informatika ITB Angkatan 2004. 10. Teman-teman Teknik Informatika ITB Angkatan 2006. 11. Teman-teman Institut Teknologi Bandung. 12. Mbak Mamik yang telah membantu penulis selama tinggal di kost. 13. Bapak Rasidi, Bapak Ade, Ibu Titi, serta seluruh staf Tata Usaha Teknik Informatika atas bantuan serta keramahannya. 14. Staf Perpustakaan Teknik Informatika ITB atas bantuannya selama ini. 15. Staf Dukungan Teknis Teknik Informatika ITB atas bantuan fasilitas kuliah selama ini. 16. Pihak-pihak yang telah memberikan bantuan dalam pengerjaan tugas akhir ini. Penulis sadar bahwa tugas akhir ini masih jauh dari sempurna. Oleh karena itu, kritik dan saran yang membangun dapat disampaikan kepada penulis melalui email herdyhsw@google.com. Demikianlah kata pengantar yang dapat penulis sampaikan, jika ada kesalahan perkataan atau perbuatan dalam pengerjaan tugas akhir ini, mohon dibukakan pintu maaf yang selebar-lebarnya. Atas perhatian pembaca, saya ucapkan terima kasih. Penulis iv
DAFTAR ISI LEMBAR PENGESAHAN...i ABSTRAK... ii KATA PENGANTAR... iii DAFTAR ISI...v DAFTAR GAMBAR...ix DAFTAR TABEL...xi BAB I PENDAHULUAN...1 I.1 Latar Belakang... 1 I.2 Rumusan Masalah... 3 I.3 Tujuan... 4 I.4 Batasan Masalah... 4 I.5 Metodologi... 5 I.6 Sistematika Pembahasan... 6 BAB II TINJAUAN PUSTAKA...II-1 II.1 Kriptografi... II-1 II.1.1. Algoritma Simetrik... II-2 II.1.2. Algoritma Asimetrik... II-3 II.2 Algoritma Diffie Hellman... II-4 II.3 Algoritma RSA... II-5 II.4 Algoritma Rijndael... II-6 II.4.1. Gambaran Umum Algoritma... II-7 II.4.2. Desain... II-7 II.4.3. Spesifikasi Algoritma... II-8 II.4.4. State, Kunci Cipher dan Jumlah Ronde... II-8 II.4.5. Penjadwalan Kunci (Key Schedule)... II-12 II.5 Secure Hash Algorithm (SHA)... II-13 II.5.1. Penambahan Bit-Bit Pengganjal... II-14 II.5.2. Penambahan Nilai Panjang Pesan Semula... II-15 v
II.5.3. Inisialisasi Penyangga MD... II-15 II.5.4. Pengolahan Pesan dalam Blok Berukuran 512 Bit... II-15 II.6 Algoritma A3... II-19 II.7 Algoritma A5... II-20 II.8 Algoritma A8... II-22 II.9 Tanda Tangan Digital... II-23 II.9.1. Penandatanganan dengan Cara Mengenkripsi Pesan... II-24 II.9.2. Tanda-tangan dengan Menggunakan Fungsi Hash... II-25 II.9.3. Proses Pemberian Tanda-tangan Digital... II-25 II.10 Protokol... II-27 II.10.1. Tipe-tipe protokol... II-28 II.10.2. Serangan-serangan terhadap protokol... II-30 II.11 SMS (Short Message Service)... II-31 II.12 SMS-Banking... II-32 II.12.1. Tinjauan SMS-Banking yang Sudah Ada... II-33 BAB III ANALISIS MASALAH... III-1 III.1 Analisis Umum Sistem SMS-Banking... III-1 III.1.1. Kelebihan Sistem SMS-Banking... III-4 III.1.2. Kekurangan Sistem SMS-Banking... III-5 III.2 Analisis Sistem GSM... III-5 III.2.1. Arsitektur GSM... III-5 III.2.2. Keamanan GSM... III-6 III.3 Analisis Protokol SMS-Banking... III-9 III.3.1. Tujuan Protokol... III-9 III.3.2. Asumsi Protokol... III-10 III.3.3. Analisis Resiko Keamanan... III-12 III.3.4. Gambaran Umum Protokol... III-13 BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK... IV-1 IV.1 Deskripsi Umum Perangkat Lunak...IV-1 IV.2 Analisis Kebutuhan Perangkat Lunak...IV-2 IV.2.1. Kebutuhan Fungsional...IV-3 vi
IV.2.2. Kebutuhan Non-fungsional...IV-3 IV.3 Model Use Case...IV-3 IV.3.1. Diagram Use Case...IV-4 IV.3.2. Definisi Aktor...IV-4 IV.3.3. Definisi Use Case...IV-5 IV.4 Analisis Perangkat Lunak...IV-5 IV.4.1. Use Case Mengaktivasi Layanan SMS-Banking...IV-6 IV.4.2. Use Case Melakukan Transaksi SMS-Banking...IV-8 IV.4.3. Use Case Mengolah SMS Fase Aktivasi...IV-10 IV.4.4. Use Case Mengolah SMS Fase Transaksi...IV-12 IV.4.5. Diagram Kelas Analisis Keseluruhan...IV-14 IV.5 Perancangan Perangkat Lunak...IV-15 IV.5.1. Realisasi Use Case Tahap Perancangan...IV-15 IV.5.2. Perancangan Antarmuka...IV-23 IV.5.3. Perancangan Basis Data Server...IV-25 IV.5.4. Perancangan Basis Data Klien...IV-25 BAB V IMPLEMENTASI...V-1 V.1 Lingkungan Pengembangan... V-1 V.2 Batasan Implementasi... V-2 V.3 Implementasi Kelas... V-2 V.4 Implementasi Antarmuka... V-4 V.4.1. Antarmuka Aktivasi Layanan SMS-Banking... V-4 V.4.2. Antarmuka Transaksi Layanan SMS-Banking... V-5 V.4.3. Antarmuka Server Bank... V-6 BAB VI Pengujian... VI-1 VI.1 Tujuan Pengujian...VI-1 VI.2 Lingkungan Pengujian...VI-1 VI.3 Batasan Pengujian...VI-1 VI.4 Kasus Uji...VI-2 VI.5 Data Pengujian...VI-2 VI.6 Pengujian...VI-3 VI.6.1. Pengujian Protokol...VI-3 VI.6.2. Pengujian Fungsional Perangkat Lunak...VI-4 VI.6.3. Pengujian Penyadapan Pesan...VI-8 BAB VII KESIMPULAN DAN SARAN...VII-1 vii
VII.1 Kesimpulan...VII-1 VII.2 Saran...VII-2 DAFTAR REFERENSI...xii DAFTAR PUSTAKA... xiii LAMPIRAN A...1 LAMPIRAN B Tabel daftar atribut dan operasi kelas perancangan...1 viii
DAFTAR GAMBAR Gambar II-1 Sistem kriptografi kunci-publik [MUN09]...II-3 Gambar II-2 Senarai state masukan dan keluaran...ii-8 Gambar II-3 Contoh kunci cipher dengan Nk = 4...II-9 Gambar II-4 ByteSub berperan dalam individual byte dari state...ii-10 Gambar II-5 ShiftRow beroperasi pada baris-baris pada state...ii-11 Gambar II-6 MixColumn beroperasi pada kolom pada state....ii-11 Gambar II-7 Dalam penambahan kunci Round Key adalah suatu operasi bit EXOR kepada state...ii-12 Gambar II-8 Ekspansi kunci dan pemilihan Round Key untuk Nb = 6 dan Nk = 4....II-13 Gambar II-9 Pembuatan message digest dengan algoritma SHA [MUN09]...II-14 Gambar II-10 Pengolahan blok 512 bit (Proses H SHA ) [MUN09]...II-16 Gambar II-11 Operasi dasar SHA dalam satu putaran (fungsi f) [MUN09]...II-17 Gambar II-12 Diagram kalkulasi respon SRES [PES99]...II-19 Gambar II-13 Pembangkitan kunci aliran [PES99]...II-20 Gambar II-14 Konstruksi LSFR pada A5 [PES99]...II-21 Gambar II-15 Kalkulasi kunci sesi (K c ) [PES99]...II-22 Gambar II-16 Kalkulasi COMP128 [PES99]...II-22 Gambar II-17 Otentikasi dengan tanda-tangan digital yang menggunakan fungsi hash satu-arah [MUN09]...II-27 Gambar III-1 Arsitektur sistem SMS-Banking secara umum... III-2 Gambar III-2 Arsitektur GSM [EMM07]... III-6 Gambar III-3 Prosedur otentikasi [EMM07]... III-8 Gambar III-4 Proses enkripsi dan pembangkitan kunci [EMM07]... III-9 Gambar III-5 Arsitektur sistem SMS-Banking acuan... III-11 Gambar III-6 Diagram protokol SMS-Banking... III-14 Gambar III-7 Struktur pesan fase aktivasi klien... III-16 Gambar III-8 Struktur pesan fase aktivasi server... III-17 Gambar III-9 Struktur pesan permintaan transaksi dari klien... III-21 Gambar III-10 Struktur pesan konfirmasi transaksi berhasil dari server... III-21 Gambar IV-1 Arsitektur perangkat lunak simulasi protokol SMS-Banking... IV-2 Gambar IV-2 Diagram Use Case... IV-4 Gambar IV-3 Diagram kelas analisis use case mengaktivasi layanan SMS-Banking... IV-6 Gambar IV-4 Diagram sequence analisis use case mengaktivasi layanan SMS-Banking... IV-7 Gambar IV-5 Diagram kelas analisis use case melakukan transaksi SMS-Banking... IV-8 Gambar IV-6 Diagram sequence analisis use case melakukan transaksi SMS-Banking... IV-9 Gambar IV-7 Diagram kelas analisis use case mengolah SMS fase aktivasi... IV-10 Gambar IV-8 Sequence diagram use case mengolah SMS fase aktivasi... IV-11 Gambar IV-9 Diagram kelas analisis use case mengolah SMS fase transaksi... IV-12 ix
Gambar IV-10 Sequence diagram use case mengolah SMS fase transaksi... IV-13 Gambar IV-11 Diagram kelas analisis keseluruhan... IV-14 Gambar IV-12 Diagram kelas perancangan use case mengaktivasi layanan SMS-Banking... IV-15 Gambar IV-13 Sequence Diagram perancangan use case mengaktivasi layanan SMS-Banking... IV-16 Gambar IV-14 Diagram kelas perancangan use case melakukan transaksi SMS-Banking... IV-17 Gambar IV-15 Sequence diagram perancangan use case melakukan transaksi SMS-Banking... IV-18 Gambar IV-16 Diagram kelas perancangan use case mengolah SMS fase aktivasi... IV-19 Gambar IV-17 Sequence diagram perancangan use case mengolah SMS fase aktivasi... IV-20 Gambar IV-18 Diagram kelas perancangan use case mengolah SMS fase transaksi... IV-21 Gambar IV-19 Sequence diagram perancangan use case mengolah SMS fase transaksi... IV-22 Gambar IV-20 Antarmuka aktivasi layanan SMS-Banking... IV-23 Gambar IV-21 Antarmuka transaksi layanan SMS-Banking... IV-24 Gambar IV-22 antarmuka server... IV-24 Gambar IV-23 Rancangan basis data server... IV-25 Gambar IV-24 Rancangan basis data klien... IV-25 Gambar V-1 Screenshot implementasi antarmuka aktivasi layanan SMS-Banking...V-5 Gambar V-2 Screenshot implementasi antarmuka transaksi layanan SMS-Banking...V-6 Gambar V-3 Screenshot implementasi antarmuka server bank...v-7 x
DAFTAR TABEL Tabel II-1 Jumlah ronde (Nr) sebagai suatu fungsi dari panjang blok dan kunci...ii-9 Tabel II-2 Offset perpindahan untuk panjang blok yang berbeda...ii-11 Tabel II-3 Fungsi logika f t pada setiap putaran [RIN06]...II-18 Tabel III-1 Urutan protokol fase aktivasi... III-17 Tabel III-2 Urutan protokol fase transaksi... III-22 Tabel IV-1 Kebutuhan fungsional perangkat lunak... IV-3 Tabel IV-2 Kebutuhan non-fungsional perangkat lunak... IV-3 Tabel IV-3 Definisi aktor... IV-4 Tabel IV-4 Definisi Use Case... IV-5 Tabel IV-5 Identifikasi kelas analisis use case mengaktivasi layanan SMS-Banking... IV-6 Tabel IV-6 Identifikasi kelas analisis use case Melakukan Transaksi SMS-Banking... IV-8 Tabel IV-7 Identifikasi kelas analisis use case mengolah SMS fase aktivasi... IV-10 Tabel IV-8 Identifikasi kelas analisis use case mengolah SMS fase transaksi... IV-12 Tabel V-1 Tabel perbandingan nama kelas dan berkas source code...v-2 Tabel V-2 Deskripsi objek antarmuka aktivasi layanan SMS-Banking...V-5 Tabel V-3 Deskripsi objek antarmuka transaksi layanan SMS-Banking...V-6 Tabel V-4 Deskripsi objek antarmuka server bank...v-7 Tabel VI-1 Tabel data pengujian fase aktivasi... VI-2 Tabel VI-2 Data pengujian fase transaksi... VI-3 Tabel VI-3 Hasil Pengujian Tahap Aktivasi... VI-5 Tabel VI-4 Hasil Pengujian Tahap Transaksi... VI-6 xi