BAB 3 ANALISA PERMASALAHAN DAN PERANCANGAN SISTEM
Perancangan sistem ini, menggunakan metode luca jadaf. Metode ini memungkinkan penulis dapat dengan mudah melakukan perbaikan sistem apabila di tengah proses perancangan ditemukan masalah. Pada metode luca jadaf, apabila terjadi kerusakan pada perancangan sistem, penulis tidak perlu melakukan proses perancangn mulai dari awal. Karena dengan metode ini, penulis dapat memperbaiki perancangn sistem langsung pada tahap yang sekiranya tidak tepat. Metode ini terdiri dari : analisa, perancangan, pengkodean, dan pengujian. Pada bab tiga ini, penulis akan memaparkan analisa dan perancangan sistem tersebut. Sedangkan proses pengkodean beserta implementasi dan pengujian sistem, akan penulis paparkan pada bab empat.
3.1
Analisa Permasalahan
Sebelum memulai perancangan aplikasi, penulis melakukan beberapa analisa yang bertujuan untuk menemukan permasalahan. Aplikasi yang nantinya akan dirancang, merupakan solusi dari permasalahan yang ditemukan dalam proses analisa permasalahan yang dilakukan. Proses analisa permasalahan
100
101 dilakukan penulis dengan menggunakan dua teknik, yaitu teknik kuisioner, dan studi literatur.
3.1.1
Kuisioner Teknik ini dilakukan dengan membuat 9 pertanyaan yang berkaitan dengan topik yang penulis ambil dan dibagikan secara massal kepada para responden dengan menggunakan teknologi internet melalui penyebaran link http://www.kuesionerkami.co.cc/ dan menyebarkannya kepada para pengguna internet. Pengumpulan data dilakukan dalam kurun waktu 10 hari, terhitung mulai tanggal 23 November 2009 s/d 2 Desember 2009. Data yang telah diperoleh adalah sebagai berikut : 1.
Apakah anda merupakan pengguna alat komunikasi telepon selular?
Ya
Tidak 0%
100%
Gambar 3.1-1 : Kuisioner 1 Dari 106 responden yang telah menjawab pertanyaan ini, seluruh responden, atau sebanyak 100 % dari responden
102 menjawab ya. Oleh karena itu, melalui jawaban yang diperoleh dari sejumlah responden ini, dapat penulis simpulkan bahwa seluruh responden merupakan pengguna alat komunikasi telepon selular. 2.
Teknologi telepon selular apa yang anda gunakan?
GSM
CDMA
Keduanya
39% 57%
4%
Gambar 3.1-2 : Kuisioner 2 Dari 106 responden, sebanyak 57% menggunakan teknologi GSM, 39% CDMA, dan 4% menggunkan kedua teknologi telepon selular ini, baik GSM maupun CDMA.
103 3.
Dari beberapa fitur yang ditawarkan pada telepon selular yang berkembang saat ini, fitur apa yang sering anda gunakan?
Gambar 3.1-3 : Kuisioner 3 Dari 106 responden yang telah menjawab pertanyaan ini, sebanyak 24% responden menjawab fitur messaging (SMS) sebagai fitur yang sering mereka gunakan, serta 21% fitur call (contact), lalu 14% responden menjawab fitur kamera, browsing, dan music player sebagai fitur yang sering mereka gunakan. Selain itu, sebanyak 8% responden menjawab fitur game, 4% radio, dan 1% TV mobile sebagai fitur yang sering mereka gunakan dengan menggunakan telepon selular mereka.
104 4.
Jika anda sering menggunakan fitur SMS yang telah disediakan oleh telepon selular anda, seberapa seringkah anda berkirim atau menerima pesan dalam satu hari?
Kurang dari 5
5‐15
Lebih dari 15
11% 39% 50%
Gambar 3.1-4 : Kuisioner 4 Dari 106 responden ynag telah menjawab, sebanyak 50% responden menjawab bahwa dalam satu hari mereka berkirim atau menerima pesan sebanyak 5 sampai 15 SMS. Sedangkan, 39% responden menjawab lebih dari 15 SMS dan 11% kurang dari 5 SMS setiap harinya. 5.
Apakah anda sering mengalami gangguan ketika sedang berSMS
Ya
46%
Tidak
54%
Gambar 3.1-5 : Kuisioner 5
105 Sebagian besar dari responden yang telah menjawab kuisioner ini, yaitu sebanyak 54% dari 106 responden, menjawab bahwa mereka sering mengalami gangguan ketika sedang berSMS. 6.
Apa bentuk gangguan apa yang anda alami?
SMS tidak sampai ke nomor tujuan SMS terlambat sampai ke nomor tujuan Kebocoran informasi atau informasi tersebar pada pihak lain yang tidak berwenang 5% 15%
80%
Gambar 3.1-6 : Kuisioner 6 Dari pertanyaan yang telah diajukan, sebanyak 80% responden dari 106 responden, mengatakan bahwa gangguan yang sering
mereka
temukan
ketika
sedang
ber-SMS
adalah
terlambatnya pesan yang dikirimkan sampai ke nomor tujuan. Dan sebanyak 15% responden mengalami gangguan dalam bentuk, tidak sampainya pesan ke nomor tujuan. Selain itu, sebagian kecil dari responden yaitu sebanyak 5% dari 106 responden yang telah mengisi kuisioner ini mengalami gangguan dalam bentuk
106 bocornya informasi pada saat ber-SMS ke pihak lain yang tidak berwenang. 7.
Jika anda pernah mengalami kebocoran informasi, apakah hal ini dirasakan sangat merugikan anda?
Ya
Tidak
18%
82%
Gambar 3.1-7 : Kuisioner 7 Sebagian besar responden yang telah mengisi kuisioner ini, yaitu sebanyak 82% responden, merasa bahwa kebocoran informasi akan sangat merugikan mereka. 8.
Apakah teknologi SMS saat ini, telah memberikan rasa aman pada anda mengenai informasi yang anda sampaikan atau kirimkan?
Ya
47%
Tidak
53%
Gambar 3.1-8 : Kuisioner 8
107 Walaupun sebanyak 53% responden menjawab bahwa teknologi SMS saat ini telah memberikan rasa aman terhadap informasi yang mereka sampaikan, namun tidak sedikit juga responden yaitu sebanyak 47% responden yang merasa bahwa teknologi SMS saat ini dirasa kurang memberika rasa aman bagi mereka terhadap informasi yang mereka sampaikan. 9.
Jika ada aplikasi yang dirancang untuk mengamankan data pada SMS anda, apakah anda menginginkannya?
Ya
Tidak
15%
85%
Gambar 3.1-9 : Kuisioner 9 Dari
jawaban
yang
disampaikan
responden
pada
pertanyaan ini, dapat disimpulkan bahwa sebagian besar responden menginginkan aplikasi yang mampu mengamankan data pada SMS mereka. Hal ini dapat disimpulkan karena jumlah responden yang menginginkan aplikasi ini sebesar 85% dari 106 responden yang telah ikut serta menjawab kuisioner ini.
108 3.1.2
Studi Literatur
Studi literatur dilakukan penulis untuk memperkuat hasil dari analisa sebelumnya. Hal ini dilakukan penulis dengan mengutip teori-teori ataupun kesimpulan-kesimpulan terhadap permasalahan yang ditemukan oleh orang-orang yang pernah melakukan analisa mengenai topik yang terkait dengan topik penulis pada jurnal, artikel, maupun makalah serta laporan dan buku yang mereka tuliskan. Teori-teori inilah yang akan menjadi faktor penting untuk memperlengkap hasil dari analisa yang dilakukan dengan teknik sebelumnya. Hasil dari studi literatur yang dilakukan penulis adalah sebagai berikut: 1.
Thesis “Short Message Service (SMS) Security Solution for Mobile Devices” oleh Yu Loon Ng. December 2006. Naval Postgraduate School, Monterey, California. SMS merupakan layanan pesan teks yang memungkinkan pengguna untuk mengirimkan pesan pendek ke pengguna yang lainnya pada jaringan GSM (Global System for Mobile Communication). SMS menggunakan mekanisme penyimpanan dan pengiriman pesan yang sama dengan mekanisme layanan SMTP mail. Sama seperti mail server, SMSCenter (SMSC) juga digunakan untuk menyimpan atau menampung SMS sebelum dikirimkan ke provider penerima pesan atau SMSC yang lainnya. Walaupun, koneksi jaringan antara
109 SMSC dan nodes pada jaringan GSM biasanya dilindungi oleh Virtual Private Network (VPN), pesan pada SMS yang disimpan atau ditampung di SMSC tidak terenkripsi. Hal ini berarti, pekerja atau karyawan operator SMSC ataupun orang lain yang mampu meng-hack masuk ke dalam sistem, dapat melihat semua pesan SMS yang melewati SMSC. Banyak SMSC juga menyimpan salinan pesan SMS untuk audit, penagihan, dan penyelesaian sengkete tujuan. Jika penyerang berhasil merusakSMSC, penyerang dapat juga membaca trafik SMS. Salah satu tokoh yang menjadi korban dari serangan seperti itu dalam beberapa tahun terakhir ini adalah kapten sepak bola Inggris, David Beckham, dimana pesanpesan SMS nya dengan asisten pribadinya Rebecca Loos terbaca dan diterbitkan di sebuah tabloid.
Mekanisme keamanan yang dilakukan untuk menjaga fitur-fitur pada perangkat mobile dilakukan dengan mengimplementasikan password. Namun ternyata, penggunaan password ini tidak seefisien pada komputer dekstop. Hal ini dikarenakan pilihan password
kadang
mengurangi
angka-angka
untuk
tujuan
kenyamanan. Hal ini menyempitkan ruang serang penyerang. Sedangkan, penggunaan password yang komplek yang terdiri atas huruf abjad dan karakter khusus sehingga akan berakibat pada ketidakmampuan beberapa perangkat mobile. Itulah mengapa
110 banyak mekanisme akses control direduksi menjadi sebuah PIN (Personal Identification Number) pada perangkat ponsel. 2.
LORD, S. 2003. Trouble at Telco: When GSM Goes Bad. Network Security, issue 1, 10 – 12. Ketika
informasi
yang
sensitif
atau
penting
dikirimkan
menggunakan SMS, sangatlah penting untuk melindungi isi dari penyadap. Secara default, isi SMS dikirimkan melalui jaringan GSM dalam bentuk teks yang jelas atau dalam format yang dapat diprediksikan. Hal ini memungkinkan penyadap dengan peralatan yang tepat dapat mengambil informasi yang sedang dikirim. Masalah lainnya, bahwa alamat asal dalam header SMS dapat dipalsukan. Sehingga memungkinkan terjadinya penyamaran dan pengiriman kembali serangan. Oleh karena itu, SMS tidak benarbenar aman dan tidak dapat selalu dipercaya. Sebagai contoh, setidaknya terdapat satu kasus di Inggris dimana SMS telah disalah gunakan oleh karyawan operator. 3.
“Security of Mobile Banking : Secure SMS Banking” oleh Ming Ki Chong Pada jaringan GSM, idantitas pelanggan diidentifikasikan secara unik oleh international Mobile Subscriber Identity (IMSI). Identitas ini disimpan ke dalam kartu Subscriber Indentity Module (SIM) yang disediakan oleh service provider. Telepon selular hanya dapat
111 dioperasikan dengan menggunakan kartu SIM dengan IMSI yang benar dan ketika kartu itu dimasukkan ke dalam handset dengan IMEI yang benar. IMEI (International Mobile station Equipment Identity) digunakan oleh service provider untuk menyimpan catatan peralatan yang dilarang untuk beroperasi pada jaringan mereka. IMSI dibutuhkan untuk verifikasi pelanggan. Hal ini penting untuk menjaga keamanan pelanggan untuk mencegah penyerangan lokalisasi dan pelacakan fisik pengguna. Itulah mengapa IMSI tidak dapat ditransmisi di udara dalam bentuk plaintext.
Algoritma A3 dan A8 digunakan untuk autentifikasi. Wagner dan Goldberg telah menemukan kelemahan pada algoritma ini dan mereka membuktikan bahwa ada kemungkinan untuk memperoleh Ki. Dalam skenario yang sebenarnya, penyerang dapat meniru kartu SIM pelanggan dengan menggunakan alat untuk membaca kartu SIM. Lalu, penyerang dapat menganalisa kumpulan keamanan data dengan kartu SIM. Sekali Ki terbukti, penyerang dapat menulis Ki dan IMSI ke dalam kartu SIM yang lain dan penyerang dapat menggunakannya dengan kartu SIM yang baru untuk memulai penyamaran penyerang.
112 Algoritma A5 adalah teknik enkripsi yang dipakai saat data SMS berjalan dari ponsel ke BTS. Penyerangan terhadap A5 sudah dilakukan sejak tahun 1997. Dan dalam tahun 2003, grup peneliti dari Israel menyimpulkan bahwa algoritma A5/1 yang lebih kuat bisa dibongkar seketika itu juga. Ini membuktikan bahwa data SMS yang dikirimkan masih banyak kebocoran keamanan. Oleh karena itu bila ada penambahan enkripsi data, bisa dilakukan terserah kepada provider telekomunikasi tersebut. 4.
“Additional Issues in Mobile Security” oleh Andrej Sostaric. _tirinajsta delavnica o telekomunikacijah VITEL, Brdo pri Kranju, Slovenija, 19. in 20. maj, 2003 Beberapa serangan terhadap jaringan GSM yaitu dilakukan dengan mengakses sinyal operator jaringan yang berada pada gelombang udara antara MS dan BTS, bukan hanya pada titik rentan dalam sistem GSM. Transmisi yang dienkripsikan hanya diantara MS dan BTS. Setelah BTS, lalu lintas ditransmisikan dalam bentuk teks biasa pada operator jaringan. Jika penyerang dapat mengakses operator sinyal jaringan, maka ia dapat mendengar dan membaca segala sesuatu yang dikirimkan, termasuk panggilan telepon serta RAND, SRES, dan Kc. SS7 signaling pada jaringan yang digunakan pada operator jaringan GSM benar-benar tidak aman jika penyerang mendapatkan akses langsung ke sana.
113 Serangan terhadap jaringan GSM yang lainnya yaitu dengan mengambil kunci dari SIM. Keamanan seluruh model keamanan GSM didasarkan pada rahasia Ki. Jika kunci ini dilihat akan membahayakan seluruh account, maka akan dikompromikan. Setelah penyerang dapat mengambil Ki, ia tidak bias hanya mendengarkan panggilan pelanggan, tetapi juga tempat panggilan ditagih ke rekening palanggan asli. Hal ini terjadi karena penyerang sekarang dapat berpura-pura menjadi pelanggan yang sah. 5.
“Security of Mobile Banking” oleh Kelvin Chikomo, Ming Ki Chong, Alapan Arnab, Andrew Hutchison. Data Networks Architecture Group. Department of Komputer Science. University of Cape Town. Terdapat beberapa masalah keamanan pada saat menggunakan SMS antara lain, forging alamat asal dan enkripsi SMS. SMS spoofing adalah serangan yang melibatkan pihak ketiga untuk mengirimkan pesan SMS yang tampak dari pengirim asli. Dimungkinkan untuk mengubah keaslian alamat asal dalam header pada SMS menjadi alpha-numerical string lainnya. Format data didefault untuk pesan SMS dalam bentuk plaintext. Enkripsi yang terlibat selama transmisi adalah enkrips antara BTS dan MS. Enkripsi algoritma A5 yang digunakan adalah yang terbukti rentan. Oleh karena itu, diperlukan algoritma yang lebih aman.
114 Telah banyak lubang keamanan yang terdapat dalam jaringan SMS, kebanyakan dari penyerang dapat dengan mudah membongkar enkripsi yang dipakai dalam jaringan GSM, yaitu enkripsi A3, A5, dan A8. Algortima Enkripsi A3 dan A8 terdapat di ponsel digunakan untk autentifikasi, biasanya dapat terbongkar karena kebanyakan provider GSM menggunakan algoritma COMP 128 untuk mengimplementasikannya.
COMP 128 adalah algoritma pengacakan menggunakan 128 bit kunci dan 128 bit input an yang nantinya akan menghasilkan 96 bit output. Dan dari hasil itu, akan menjadi kunci yang dipakai untuk algoritma A5 Bila 128 Bit kunci tersebut terbongkar, maka dengan mudah penyerang bisa mengkloning kartu SIM. Dan apabila kartu SIM sudah bisa di klon, maka jaringan GSM sudah tidak mungkin lagi membedakan untuk setiap user yang berbeda. Yang sering dilakukan untuk serangan COMP 128 adalah dengan membagi serangan menjadi beberapa tahap dan menyederhanakan setiap serangan hingga kurang dari 1 menit. Hal ini lah yang membuat penyerang hanya membutuhkan 1 menit untuk mencapatkan 128 bit kunci tersebut dan bisa meng klon kartu SIM. Penyerang dapat membuat base yang palsu untuk menciptakan banyak kartu SIM palsu yang digunakan untuk menipu jaringan GSM hanya dengan membayar US$ 10.000.
115 6.
Thesis “Security of Mobile Banking : Secure SMS Banking” oleh Ming Ki Chong Kelemahan SMSC (SMSCenter) Kelemahan Kebijakan SMS C adalah sebuah server pihak ketiga yang merupakan tempat menampung semua data SMS yang dikirim oleh user provider telekomunikasi yang bersangkutan. Sebenarnya, jaringan GSM itu merupakan jaringan tertutup yang hanya terbatas pada jaringan antar operator telekomunikasi. Termasuk jalur radio yang tertutup antar operator. Dan lagi, SMSC tidak di miliki oleh operator tertentu. Oleh karena itu tingkat keamanan dari SMSC dapat berbeda dari jaringan GSM yang sudah ada. Meskipun jaringan telekomunikasinya sudah aman karena dilindungi oleh Virtual Private Network, namun keamanan server SMSC itu sendiri masih belum bisa dipastikan sangat aman. Kelemahan Keamanan Server SMSC Sama seperti kebanyakan Server, SMS C merupakan sebuah server yang berjalan di sebuah Sistem operasi seperti Linux atau Windows yang memiliki kebocoran keamanan masing-masing, dan SMS C juga memerlukan update berkala juga untuk tetap menjaga keamanan datanya.
116 Kelemahan Keamanan Jaringan Server SMSC pada dasarnya juga terhubung dengan internet, yang membuat Sever SMSC lebih terbuka untuk diserang. Oleh karena itu, SMSC menjadi seperti jembatan yang menghubungi kelemahan-kelemahan keamanan data dalam internet dengan Jaringan GSM yang tertutup. Sehingga memudahkan penyerang menggunakan fasilitas Internet untuk menyerang data di Jaringan GSM dan SMSC itu sendiri. Operator telekomunikasi bisa menggunakan mekanisme perlindungan jaringan mereka seperti yang mereka mau, namun tidak bisa memaksa keamanan Server SMSC seperti yang operator mau, sehingga terbuka peluang lebih besar untuk menyerang SMSC itu sendiri. Kelemahan Autentifikasi User Dalam penggunaan transaksi melalui SMS, masalah yang sering timbul adalah tidak mampu membuktikan bahwa sang pengirim dan penerima adalah orang yang benar dalam transmisi data melalui SMS. Satu satunya cara untuk mengetahui orang tersebut adalah orang yang benar adalah dengan menggunakan PIN dalam
ponsel.
Namun,
hal
tersebut
juga
tidak
menutup
kemungkinan bahwa orang yang tidak berkepentingan bisa membobol nomor PIN yang biasanya hanya beberapa digit nomor. Sedangkan dalam SMS, tidak diketahui apakah orang tersebut
117 memang memiliki otoritas untuk membaca pesan yang dikirimkan atau tidak. Kelemahan Integritas Data Integritas data dalam SMS menjadi satu hal yang disoroti karena ada kemungkinan penyerangan orang yang di tengah (Man in the middle attack). Data yang dikirimkan oleh pengirim belum tentu sama dengan yang diterima oleh penerima. Hal ini bisa disebabkan oleh adanya ‘penyusup’ yang mengambil data SMS yang tengah berjalan ke penerima dan memodifikasinya sehingga membuat data originalitas data melalui SMS tidak selalu terpercaya. Hal ini bisa dilakukan dilihat dari banyaknya lubang keamanan yang terdapat dalam jalur client dalam jaringan GSM dan CDMA. Adanya Penyangkalan Data (Repudiation) Dalam transmisi data menggunakan
SMS juga tidak bisa
dibuktikan bahwa pengirim atau penerima telah menerima / mengirim data yang benar dan valid. Hal ini bisa dikarenakan faktor personal maupun jaringan yang kacau. Bisa saja seseorang user telah yakin dia telah mengirimkan data nya melalui SMS, namun penerima tidak menerima SMS tersebut. Ada kemungkinan pengirim
tersebut
berbohong
atau
memang
dalam
proses
pengiriman pesan SMS tersebut, jaringan provider telekomunikasi
118 nya yang sedang bermasalah. Oleh karena itu diperkukan sebuah protokol yang bisa menangani hal ini
3.2
Solusi Permasalahan
Permasalah-permasalahn yang terpaparkan sebelumnya pada analisa di atas, solusi yang dapat penulis ajukan adalah sebagai berikut : 1. Memperkuat end-to-end client-server dengan enkripsi yang kuat. Selama ini enkripsi hanya dilakukan pada Jalur antara BTS dan MS, sedangkan di antara ponesl dengan BTShanya menggunakan enkripsi A5 yang telah dibuktikan sangat tidak aman, oleh karena itu perlu diperkuat keamanan data dengan cara mengenkripsi teks yang ingin dikirim ke server dan server hanya tinggal mendkripsikan dengan algoritma enkripsi kunci simetris. Algoritma Kunci asimetris tidak dipilih karena adalanya keharusan harus waktu untuk server harus membuat sebuah pasangan kunci dan harus mendistribusikannya ke client melalui SMS sehingga menciptakan lubang keamanan baru yang bisa ditembus bila penyerang memiliki kunci tersebut. Pendistribusian kunci juga membuat adanya penambahan biaya untuk pengiriman kunci melalui 1 SMS tambahan Oleh karena itu dipilih sebuah algoritma enkripsi kunci simetris yang cocok, Menurut Yu Long Ng, dengan thesisnya yang meneliti performa beberapa algoritma enkripsi yang diterapkan dalam ponsel, Algoritma yang
119 paling cepat dan memakan sangat sedikit sumber daya, namun tidak mengurangi tingkat keamanan datanya adalah Algoritma AES-128 bit dan AES-256 bit dengan Rijindael. Setiap transmisi data / pengiriman data utama melalui SMS, data akan di enkripsi terlebih dahulu menggunakan AES dengan One-Time-Password yang dibuat oleh client dan server dengan menggunakan library dari bouncycastle dan lightcrypto. Algoritma lain yang dipakai pada saat pengiriman data pertama untuk permulaan protokol Handshake dengan menggunakan Password Based Encryption (PBE) dengan menggunakan algoritma Twofish. Algoritma ini dipilih karena kecepatannya yang bisa menyaingi Rijindael untuk menjadi kandidat dalam AES. Tingkat keamanan data dari Twofish juga cukup tinggi dan cepat sehingga menjadi pilihan untuk enkripsi awal pada protokol. Hal ini diperlukan karena hasil dari enkripsi Twofish sedikit lebih pendek dibandingkan enkripsi yang dilakukan oleh AES, sedangkan pada SMS pertama protokol, akan dilakukan pengiriman data yang cukup panjang kurang lebih 110 karakter, sehingga diperlukan algortima yang tidak menghasilkan output yang panjang, yaitu Twofish. Algoritma satu arah yang dipakai adalah ketika melakukan pembuatan kunci. Kunci tersebut harus memiliki panjang 128 bit atau 256 bit. Sehingga urutan sandi yang akan digunakan untuk membuat fungsi akan diacak menjadi 128 bit atau 256 bit. Untuk metode pengacakan ini kami menggunakan SHA 256 dan MD5.
120 Pengacakan algoritma satu arah yang lain dilakukan dalam pengiriman data penting seperti username, password, IMEI, pembentukan one time password serta secure random yang akan digabungkan dan membentuk sebuah kunci. Algoritma yang dipakai adalah MD5 dan SHA – 512. SHA dan MD5 dipakai karena kedua fungsi hash tersebut memiliki tingkat keamanan yang cukup tinggi dan minimal dibutuhkan waktu 100 tahun untuk melakukan brute force dengan spesifikasi komputer yang sekarang. Fungsi kompresi dari MD5 dan SHA inilah yang diperlukan dalam pembuatan kunci yang akan dipakai untuk melakukan enkripsi dalam Twofish maupun AES. 2. Mengimplementasikan
protokol
yang
digunakan
untuk
mengimplementasikan autentifikasi data userclient – server. Penggunakan algoritma enkripsi saja dirasa tidak cukup untuk memberikan kepastian bahwa sang pengirim data adalah user yang benar / user yang valid. Oleh Karena itu diperlukan sebuah sistem yang mampu memberikan autentifikasi user dan pembentukan sesi selama user tersebut melakukan transaksi dan transmisi data. Oleh karena itu dipilih sebuah protokol Handshake yang dikembangkan oleh Rathsinaga dan Ming Ki Cong dalam thesis nya “Secure SMS Banking” dengan beberapa modifikasi yang memperkuat protokol tersebut. Seperti penambahan beberapa variable yang digunakan dalam pembentukan kunci untuk pengenkripsian. Penggunaan one time password yang memungkinkan seorang user kehabisan sesi. protokol ini menggunakan format yang pasti dalam pengiriman data sehingga mencegah adanya penyangkalan user yang bersangkutan dalam mengirimkan data yang
121 tidak valid. Protokol ini juga melingkupi autentifikasi user sehingga memang user yang memiliki otoritas lah yang bisa menggunakan sistem keamanan transmisi data via SMS ini. Protokol Handshake ini memberikan ‘jalur’ yang aman untuk dilalui oleh SMS dalam client – server selama user melakukan transaksi. 3. Mengimplementasikan dalam studi Kasus Mobile Banking via SMS. Sistem enkripsi dan protokol ini bisa diimplementasikan dalam berbagai bidang yang membutuhkan tingkat keamanan data tinggi serta dilakukan pada mobile (ponsel). Dalam skripsi ini, digunakan sebuah studi kasus, yaitu Mobile banking menggunakan SMS. Studi kasus ini dipilih karena diperlukannya sebuah kasus yang memiliki tingkat kebutuhan keamanan data yang sangat tinggi. Data rekening dan transaksi dari seorang user tidak boleh terbaca oleh orang lain, apalagi disalahgunakan. Oleh karena itu dalam skripsi ini, digunakan sebuah kasus transaksi cek saldo dan transfer pada mobile banking via SMS.
122 3.3
Perancangan Sistem
3.3.1
Skema Pengiriman Data (Pesan SMS) pada Jaringan Selular
Gambar 3.3-1 : Skema Pengiriman Data (Pesan SMS) pada Jaringan Selular
3.3.2
Skema Rancangan Sistem
Gambar 3.3-2 : Skema Rancangan Sistem
3.3.3
Asumsi Perancangan
•
Asumsi 1 : Rancangan sistem ini merupakan rancangan sistem keamanan antara client (aplikasi mobile phone) dengan server (SMSserver / PC). Sehingga diasumsikan komunikasi antara server dengan database aman.
123 •
Asumsi 2 : Tingkat keamanan pada database server tinggi sehingga database server tidak dapat diakses oleh pihak luar.
•
Asumsi 3 : User hanya bisa melihat dan mengganti username atau password pada di tempat SMS server berada. Artinya, jika sistem ini diimplementasikan pada studi kasus yang dirancang penulis yaitu SMSBanking, maka user (pengguna aplikasi) hanya dapat mengganti dan melihat username atau password milikinya di bank yang menerapkan sistem ini. Username dan password hanya diketahui oleh user dan server.
•
Asumsi 4 : Jalur pendistribusian aplikasi dianggap aman. Keamanan pada pendistribuasian aplikasi sistem keamanan data SMS ini merupakan tanggung jawab pelaku bisnis yang menerapkan aplikasi sistem keamanan ini pada bidang bisnisnya.
•
Asumsi 5 : Diasumsikan bahwa telepon genggam user kompatibel dengan aplikasi sistem keamanan data SMS ini. Bila tidak, maka user tidak bisa menggunakan aplikasi ini.
•
Asumsi 6 :
124 Nomor telepon tujuan pada aplikasi yang berada di SMS server adalah tetap.
3.3.4
UML (Unified Modelling Language) Sistem Keamanan SMS
3.3.4.1 Sequence Diagram Protokol
Gambar 3.3-3 : Sequence Diagram Protokol
125 Rancangan sistem keamanan diperkuat pada rancangan sistem di protokol pada client
maupun server. Di sisi client,
langkah pertama yang dilakukan sistem adalah dengan membuat kunci (generate client
key)
dari
hajirobe
yang
akan
digunakan
untuk
mengenkripsikan pesan. Bersamaan dengan langkah yang dilakukan di sisi client, pada sisi server juga dilakukan pembuatan kunci (generate server key) yang berasal dari hajirobe. Hajirobe didapatkan dari waktu yang terdapat di client atau server yang dienkripsi dengan SHA-512 dan di encoding dengan Base64. Hajirobe dijalankan setiap membuat kunci. Setelah pesan dienkripsi menggunakan PBE Twofish, pesan tersebut dikirimkan dari client ke server. Pesan yang dikirimkan terdiri dari username, password yang dienkripsikan dengan algoritma MD5, ditambahkan dengan salt number, sequence number, serta random client dan data dari pesan SMS yang dikirimkan. Pesan
terenkripsi
didekripsikan/dikembalikan
yang ke
dikirimkan bentuk
ke
aslinya
server dengan
menggunakan kunci yang telah terbentuk (generated server key) yang terdapat di server. Setelah pesan didekripsikan, dilakukan pembentukan kunci sesi (generate session key) di sisi server.
126 Pembentukan
kunci ini berasal dari username, password,
hajirobe, dan salt number yang didapatkan dari pesan yang dikirim oleh client dan kunci ini terenkripsi dengan algoritma SHA-256.
Kunci
yang
terbentuk
ini
digunakan
untuk
mengenkripsikan pesan yang akan dikirimkan kembali ke sisi client. Bersamaan dengan semua langkah proses yang dilakukan di sisi server, dilakukan pembentukan kunci sesi (generate session key) pada sisi client. Dimana, pembentuk kunci sesi (generate session key) juga berasal dari username, password, hajirobe, dan salt number yang kemudian di enkripsi dengan algoritma SHA256. Pesan terenkripsi yang dikirimkan dari server ke client yang terdiri dari random server, random client, sequence number, dan data. Di sisi client pesan yang sudah dienkripsikan ini, didekripsikan/dikembalikan dengan menggunakan pembentuk kunci sesi (generate session key) yang ada di client. Jika pesan dapat didekripsikan, maka dibentuk kunci sesi baru (generate session key) di client dengan format yang sama yaitu terdiri dari username, password, hajirobe, dan salt number yang terenkripsi dengan algoritma SHA-256. Dengan kunci sesi yang baru ini, pesan yang memiliki format random server, random client, sequence number, dan data, dienkripsikan kembali di kirimkan ke server.
127 Salt number adalah angka yang diacak oleh client dan dienkripsi menggunakan MD5 dan di encoding menggunakan Base64. Sequence number merupakan urutan SMS yang dikirim dari client ke server untuk menghindari tidak terkirimnya SMS. Random client merupakan angka yang diacak oleh client yang akan digunakan dalam format pengiriman SMS. Sedangkan random server adalah angka yang diacak oleh server yang akan digunakan dalam format pengiriman SMS. 3.3.4.2 Sequence Diagram Transmisi Data
Gambar 3.3-4 : Sequence Diagram Data Transmisi
128 Rancangan
sistem
keamanan
diperkuat
juga
pada
rancangan sistem keamanan pada transmisi data. Di sisi client, langkah pertama transmisi data dilakukan dengan membuat kunci sesi (generate session key) dari username, password, hajirobe, dan salt number yang terenkripsi dengan algoritma MD5. Kunci yang
terbentuk
digunakan
untuk
mengenkripsikan
pesan.
Bersamaan dengan langkah yang dilakukan di sisi client, pada sisi server juga dilakukan pembuatan kunci sesi (generate session key) dari username, password, hajirobe, dan salt number yang terenkripsi dengan algoritma SHA-256. Setelah pesan dienkripsi, pesan tersebut dikirimkan dari client ke server yang terdiri dari random server, random client, sequence number, dan data menggunakan kunci sesi yang telah terbentuk sebelumnya. Pengkodean karakter untuk pesan SMS yang aman dikodekan
menggunakan
algoritma
pengkodean
Base64.
Algoritma ini dapat mengkonversi data byte pesan ke karakter 7 bit. Ini diperlukan karena library yang digunakan untuk server bank penerima (GSM modem) tidak dapat menerima byte yang memiliki rentang nilai antara -97 ke -128. Oleh karena itu perlu mengkodekan pesan hasil enkripsi ke dalam format karakter yang dikenali
dalam
pesan
SMS.
Setelah
penyandian
pesan
menggunakan algoritma Base64, ukuran pesan meningkat 3 / 2
129 rasio. Oleh karena itu ukuran data awal yang perlu dikurangi untuk mengakomodasi untuk pengiriman Pesan
terenkripsi
didekripsikan/dikembalikan
yang ke
dikirimkan bentuk
ke
aslinya
server dengan
menggunakan pembentuk kunci sesi (generate server session key) yang terdapat di server. Setelah pesan didekripsikan, dilakukan pembentukan kunci sesi (generate session key) di sisi server. Pembentuk kunci ini berasal dari username, password, hajirobe, dan salt number yang terenkripsi dengan algoritma SHA-256. Kunci yang terbentuk ini digunakan untuk mengenkripsikan pesan yang akan dikirimkan kembali ke sisi client. Bersamaan dengan semua langkah proses yang dilakukan di sisi server, dilakukan pembentukan kunci sesi (generate session key) pada sisi client. Dimana, pembentuk kunci sesi (generate session key) juga berasal dari username, password, hajirobe, dan salt number yang terenkripsi dengan algoritma SHA-256. Pesan terenkripsi yang dikirimkan dari server ke client yang terdiri dari random server, random client, sequence number, dan data. Di sisi client pesan yang sudah dienkripsikan ini, didekripsikan/dikembalikan dengan menggunakan pembentuk kunci sesi (generate session key) yang ada di client. Setelah itu, data ditampilkan di client.
130 Salt number adalah angka yang diacak oleh client dan dienkripsi menggunakan MD5 dan di encoding menggunakan Base64. Sequence number merupakan urutan SMS yang dikirim dari client ke server untuk menghindari tidak terkirimnya SMS. Random client merupakan angka yang diacak oleh client yang akan digunakan dalam format pengiriman SMS. Sedangkan random server adalah angka yang diacak oleh server yang akan digunakan dalam format pengiriman SMS. 3.3.5
UML (Unified Modelling Language) Studi Kasus SMSBanking
3.3.5.1 Use Case Diagram SMSBanking
Gambar 3.3-5 : Use Case Diagram Sistem Informasi SMS Banking
131 Pada use case diagram di atas terdiri dari tiga aktor yang akan berperan di dalam sistem aplikasi ini. aktor pertama, user, user adalah seluruh pengguna aplikasi, atau dalam contoh aplikasi SMSbanking ini, adalah nasabah bank. User yang telah terdaftar dapat melakukan login dan menggunakan aplikasi ini untuk memeriksa jumlah saldo dan mengirimkan uang. Aktor kedua, client, adalah aplikasi SMSBanking itu sendiri, yang diletakkan pada telepon seluler. Aktor ketiga adalah server. Antara client dengan server akan terdapat proses generalisasi SMS. Di server, akan terdapat proses membaca pesan yang sudah terenkripsi oleh client, verifikasi pesan atau data yang dimasukkan oleh user ke dalam client lalu ke server. Setelah melakukan verifikasi, transaksi akan ditampilkan.
132 3.3.5.2 Sequence Diagram Aplikasi SMSBanking.
Gambar 3.3-6 : Sequence Diagram SMSBanking
133 Pergerakan sistemSMSBanking, dimulai pada saat user mengisi username dan password. Isi dari username dan password ini akan dikirimkan ke client, dari client proses login dilanjutkan ke dalam server. Di server, username dan password dari client lalu diverifikasikan dengan data yang didapatkan server dari database. Jika data pada proses login yang dikirimkan ke server tidak sesuai dengan data yang terdapat didapatserver dari database, maka client akan mengirimkan pesan error kepada user. Sedangkan, jika data pada proses login yang dikirimkan sesuai dengan data yang didapat server dari database, maka client akan meminta nomor rekening kepada user. User kemudian mengisi nomor rekening dan dikirimkan kembali ke client. Lalu, client mengirimkan kepada user pilihan menu fasilitas yang dapat digunakan yaitu cek saldo dan transfer. Jika user memilih menu cek saldo, maka pilihan itu akan dikirimkan ke client kemudian diteruskan ke server. Di server permintaan menu cek saldo diterima, kemudian server mendapat data besar saldo yang diminta user dari database lalu dikirimkan ke clientyang kemudian diteruskan ke user sebagai jawaban dari permintaan user di dalam menu. Jika user memilih menu transfer, pilihan itu dikirimkan ke client.
Lalu
FormInputTransfer.
client Lalu
mengirimkan user
kepada akan
user mengisi
134 FormInputTransfer. Form yang sudah terisi dikirimkan kembali kepada client dan diteruskan ke server. Data tersebut lalu divalidasikan di dalam server. Jika data yang divalidasikan sesuai maka client akan mengirimkan kepada userpesan “OK” sebagai keterangan bahwa proses transfer sukses dijalankan dan dikirimkan kembali ke database untuk memperbaharui data jumlah saldo. Sedangkan, jika data yang divalidasikan tidak sesuai, maka client akan mengirimkan kepada userpesan “ERROR” sebagai keterangan bahwa proses transfer gagal dilaksanakan.
135 3.3.5.3 Entity Relation Diagram (ERD) msrekening 1..*
PK
FK1
1
Htranslog
noRekening 1
saldo iduser
PK
transID
FK1
timeLog ammount berita saldoAkhir noRekeningAsal
1..*
1 1
msprofile PK,FK1
*
msuser
1
PK
iduser
Dtranslog
1
1
iduser
username password noHP noIMEI
namaLengkap alamat noTelp noHP noKTP
PK,FK1
transID
FK2
noRekeningTujuan
1
online 1
PK,FK1 1..*
userlog
1..*
PK
logTime
FK1
action iduser
SMSCenter PK
idSMS noPengirim isi timeLog status
1
onlineID noHp username password noIMEI rc rs secRan secNum akses time iduser
Gambar 3.3-7 : Entity Relation Diagram (ERD)
136 3.3.5.4 Data Flow Diagram (DFD) 3.3.5.4.1 Context Diagram
Gambar 3.3-8 : Context Diagram
137 3.3.5.4.2 Diagram Nol Cek Transaksi
Ambil Transaksi
Cek Saldo
1 Cek Saldo
Insert Log
Cek transaksi
Htranslog
Laporan Transaksi Ambil Saldo Ambil Log
Insert log Insert rekening
2 Transfer Update Saldo
Transfer
Laporan Log Insert rekening
msrekening
BANK
5 Proses Rekening
Laporan Saldo Laporan Transfer Verifikasi Login
Client
Login
3 Login
Insert Log Cek Log userlog
Ambil username & password
Ambil Log
Cek Log
msuser
Insert user
msprofile
4 Proses User
Insert user
Gambar 3.3-9 : Diagram Nol
Insert user