IV-1
BAB IV
ANALISIS DAN PERANCANGAN
BAB IV bagian analisis dan perancangan pada laporan tugas akhir ini menguraikan hasil analisis dan perancangan terkait perangkat lunak yang akan dibangun. Adapun isi dari bab ini meliputi analisis umum perangkat lunak sampai dengan diagram analisis kelas final dan hasil perancangan perangkat lunak yang meliputi batasan perancangan, perancangan kelas, arsitektur serta perancangan antarmuka.
4.1 Analisis Perangkat Lunak BlueSeFT
Dalam tugas akhir ini akan dibangun sebuah perangkat lunak yang mengimplementasikan mekanisme otentikasi perangkat dan pengguna pada komunikasi Bluetooth dengan memanfaatkan kritografi kunci-publik. Perangkat lunak yang akan dibangun diberi nama BlueSeFT (Bluetooth Secure and Fair Transfer). Analisis perangkat lunak dalam bab ini meliputi, arsitektur global perangkat lunak, analisis kebutuhan perangkat lunak, analisis use case, analisis kelas potensial, identifikasi kelas final, dan diagram kelas.
IV.1.1 Deskripsi Umum Perangkat Lunak BlueSeFT
BlueSeFT adalah sebuah aplikasi untuk perangkat mobile (handphone) yang menyediakan layanan untuk komunikasi jaringan point-to-point dengan menggunakan
Bluetooth sebagai media pengiriman data. Point-to-point artinya bahwa komunikasi dilakukan hanya oleh dua pihak. BlueSeFT menawarkan komunikasi dengan tingkat keamanan yang lebih baik dari pada mekanisme pengamanan yang telah diterapkan untuk komunikasi Bluetooth saat ini. BlueSeFT ini mengimplementasikan kriptografi kunci-publik untuk ontentikasi perangkat dan pengguna yang terlibat di dalam komunikasi. Penggunaan kriptografi kunci-publik inilah yang menjadi kekuatan dari mekanisme keamanan pada BlueSeFT.
Pihak yang akan melakukan komunikasi menggunakan BlueSeFT terlebih dahulu harus mendaftarkan kunci publik dari pasangan komunikasinya. Selanjutnya untuk melakukan otentikasi maka masing-masing perangkat lunak akan meminta data kunci
privat. Pemasukan data dapat dilakukan oleh pengguna sebelum inisiasi komunikasi dilakukan melalui suatu antarmuka yang telah disediakan khusus. Seketika data-data tersebut telah dimasukan maka BlueSeFT akan melanjutkan proses otentikasi. Jika semua data yang dimasukan sesuai maka perangkat lunak akan menginformasikan bahwa otentikasi berhasil dan komunikasi dapat dilanjutkan. Namun jika tidak maka perangkat lunak yang mendeteksi terjadi kesalahan akan memutuskan komunikasi. IV.1.2 Arsitektur Global Perangkat Lunak BlueSeFT
Arsitektur global dari perangkat lunak BlueSeFT ini dapat dilihat pada Gambar IV-1.
Gambar IV-1 Arsitektur Global Perangkat Lunak
Komunikasi dilakukan secara point-to-point dimana salah satu pihak harus terlebih dahulu menginisiasi komunikasi dengan menghubungi pihak lain. Aplikasi BlueSeFT
pada pihak yang menginisiasi komunikasi akan bertindak sebagai aplikasi master yang akan diontentikasi oleh perangkat yang dihubungi (aplikasi slave).
Baik aplikasi master dan slave akan terdiri dari aplikasi BlueSeFT itu sendiri dan sebuah basis data untuk menampung data kunci publik pihak-pihak yang akan diajak berkomunikasi. Basis data kunci publik dipelihara oleh aplikasi BlueSeFT ini sendiri sehingga segala bentuk perubahan pada isinya haruslah melalui aplikasi BlueSeFT.
IV.1.3 Spesifikasi Kebutuhan Perangkat Lunak BlueSeFT
Adapun spesifikasi kebutuhan perangkat lunak yang diperlukan dalam perangkat lunak BlueSeFT ini dikelompokan ke dalam dua buah kebutuhan, yaitu kebutuhan fungsional dan kebutuhan non-fungsional:
IV.1.3.1 Kebutuhan Fungsional
1. Perangkat lunak harus mampu menyimpan data kunci publik pihak lain pada suatu basis data yang dipelihara oleh perangkat lunak ini sendiri pada perangkat yang bersangkutan.
2. Perangkat lunak harus mampu memvalidasi berbagai masukan data dari pengguna.
3. Perangkat lunak harus mampu membangun koneksi komunikasi jaringan dengan media Bluetooth.
4. Perangkat lunak harus mampu mempertukarkan pesan/data antara pihak yang terlibat dalam komunikasi menggunakan jaringan Bluetooth yang telah dibuat. 5. Perangkat lunak harus mampu membangkitkan bilangan random dan bilangan
dasar prima yang akan dipergunakan pada protokol otentikasi perangkat. 6. Perangkat lunak harus mampu memeriksa keabsahan (melakukan otentikasi)
suatu perangkat lain dengan memeriksa bilangan pertukaran yang dikirimkan kepada peserta lainnya pada protokol untuk otentikasi perangkat.
7. Perangkat lunak harus mampu memberikan tanda tangan digital kepada pesan yang dikirimkam pada proses otentikasi.
8. Perangkat lunak harus mampu mengenkripsi pesan yang dikirimkan dengan algoritma kriptografi kunci simetri.
9. Perangkat lunak harus mampu membangkitkan pasangan kunci publik dan privat dengan algoritma RSA.
IV.1.3.2 Kebutuhan Non-Fungsional
1. Perangkat lunak harus memiliki antarmuka yang user-friendly sehingga akan memudahkan pengguna.
2. Proses otentikasi pengguna dan perangkat pada awal komunikasi harus dilakukan dengan cepat sehingga selisih waktunya tidak berbeda jauh dengan proses otentikasi yang telah diterapkan sekarang.
3. Perangkat lunak harus mampu meminimalkan penggunaan memori karena perangkat lunak ini dibangun diatas perangkat mobile yang memiliki ketersediaan memori yang terbatas.
IV.1.4 Analisis Use Case
Berdasarkan spesifikasi kebutuhan perangkat lunak yang ada, maka dibuat use case
yang bertujuan untuk menggambarkan peran dari pengguna dan interaksinya dengan aplikasi serta interaksi aplikasi dengan sistem lain. Use case tidak menunjukan suatu aksi diimplementasikan tetapi hanya menggambarkan fungsionalitas yang diharapkan ada pada perangkat lunak. Selain diagram use case, akan dibuat juga skenario untuk masing-masing use case. Skenario masing-masing use case dapat dilihat pada Lampiran C.
IV.1.4.1 Diagram Use Case
Gambar IV-2 Diagram Use Case BlueSeFT
Penjelasan:
Terdapat dua aktor yang terlibat dalam perangkat lunak BlueSeFT, yaitu user dan
BlueSeFT partner. BlueSeFT partner adalah aplikasi yang sama pada perangkat
partner komunikasi. User merupakan pengguna yang akan melakukan komunikasi dengan menggunakan BlueSeFT untuk mengirimkan data/pesan ke pada pihak lain.
Sebelum dapat mengirimkan data user harus mengotentikasi pasangan komunikasinya. User juga dapat mengkonfigurasi aplikasi, menyimpan data kunci publik dan mencari perangkat-perangkat yang sedang aktif pada saat itu dengan menggunakan Bluetooth. BlueSeFT partner dapat meminta untuk terhubung ke pada perangkat yang bersangkutan dengan melalui proses otentikasi.
IV.1.4.2 Definisi Aktor
Berikut daftar aktor yang terlibat dalam BlueSeFT: Tabel IV-1 Definisi Aktor
No. Aktor Deskripsi
1. User Semua orang pemilik/pengguna perangkat yang telah terinstall aplikasi BlueSeFT dan menggunakan perangkat tersebut untuk berkomunikasi secara aman dengan pihak lain.
2. BlueSeFT partner Aplikasi BlueSeFT pada perangkat lain yang akan diajak berkomunikasi dan dapat meminta untuk terhubung dengan perangkat yang bersangkutan dengan terlebih dahulu harus melakukan otentikasi. IV.1.4.3 Definisi Use Case
Berikut daftar use case dan deskripsi singkat masing-masing use case.
Tabel IV-2 Definisi Use Case
No. Use Case Deskripsi
1. Manage Key Use case yang menggambarkan kegiatan user
memodifikasi data kunci publik yang telah disimpan di dalam basis data aplikasi.
2. Insert Key Use case yang menggambarkan aktifitas user untuk menambahkan data kunci publik baru ke dalam basis data.
3. Delete Key Use case yang menggambarkan aktifitas user untuk menghapus data kunci publik yang tersimpan di dalam basis data.
4. Edit Key Use case yang menggambarkan aktifitas user untuk mengedit data kunci publik baru yang telah
No. Use Case Deskripsi
tersimpan di dalam basis data.
5. Search Device Use case yang menggambarkan aktifitas user untuk menemukan perangkat-perangkat di sekitar yang sedang aktif pada saat itu. Tujuan dari hal ini adalah untuk menemukan perangkat yang akan diajak berkomunikasi.
6. Connect Device Use case yang menggambarkan aktifitas sistem untuk terhubung ke pada perangkat lain.
7. Authenticate Use case yang menggambarkan aktifitas sistem dalam mengotentikasi user dan device yang akan terhubung dengannya.
8. Send Data Use case yang menggambarkan aktivitas user untuk mengirimkan data atau pesan ke pada lawan
komunikasinya.
9. Receive Data Use case yang menggambarkan aktifitas sistem untuk menerima data atau pesan dari lawan komunikasinya.
10. Configure Use case yang menggambarkan aktivitas user untuk mengatur konfigurasi dari aplikasi ini yang dalam hal ini adalah pengaturan data password, dan pasangan kunci RSA.
11. Request Connection Use case yang menggambarkan sistem aplikasi
BlueSeFT partner yang meminta untuk dapat terhubung dengan perangkat yang bersangkutan.
IV.1.5 Analisis Kelas Potensial
Berdasarkan use case yang telah dibuat, dapat diidentifikasi kelas-kelas potensial pada sistem. Kelas-kelas potensial ini adalah kelas-kelas yang ditemukan berdasarkan identifikasi entitas-entitas yang berperan pada masing-masing use case. Daftar kelas potensial dapat dilihat pada Tabel IV-3 berikut :
Tabel IV-3 Daftar Kelas Potensial
No. Use Case Kelas Potensial
1. Manage Key PublicKey
Manage Key
2. Insert Key PublicKey
Manage Key
Database Connector User Input
Verificator
3. Delete Key PublicKey
Manage Key
Database Connector User Input
Verificator
4. Edit Key PublicKey
Manage Key
Database Connector User Input
Verificator
5. Search Device Bluetooth Browser Device Inquiry
6. Connect Device Connector Device Packet 7. Authenticate PublicKey Database Connector Random Generator Authenticator Packet 8. Send Data RC4 Packet Connector Device User Input Sender
No. Use Case Kelas Potensial BTListener 9. Receive Data RC4 Packet Connector Device Reader BTListener 10. Configure Configure File Setting
11. Request Connection Server Packet
Connector Device Sender
Reader BTListener
IV.1.6 Daftar Kelas Analisis
Berdasarkan kelas-kelas potensial yang telah diidentifikasi, selanjutnya dilakukan seleksi terhadap kelas-kelas tersebut. Seleksi ini dilakukan untuk menghasilkan daftar kelas analisis yang dapat menggambarkan sistem yang akan dibangun. Kelas kandidat dalam daftar kelas potensial akan dibuang jika tidak mencerminkan tanggung jawab sistem terhadap domain permasalahan. Berikut daftar kelas analisis:
Tabel IV-4 Daftar Kelas Analisis
Nama Kelas Tanggung Jawab
Blueseft 1. Menangani setiap masukan pengguna sebagai parameter program.
2. Melakukan verifikasi setiap masukan data dari pengguna. 3. Mengani setiap penampilan data ke pengguna
4. Mengatur tampilan sistem.
PublicKey 1. Menangani penyimpanan data mengenai kunci publik dari baru dari pengguna lain.
2. Menangani pengubahan data kunci publik yang telah disimpan.
Nama Kelas Tanggung Jawab
3. Menangani penghapusan kunci publik dari database.
Database Connector
1. Menangani segala bentuk koneksi ke dalam database Bluetooth Browser 1. Menangani pencarian perangkat melalui proses device
inquiry.
2. Menangani penyimpanan data perangkat yang ditemukan ketika proses pencarian perangkat
3. Menangani pencarian layanan yang ditawarkan oleh suatu perangkat melalalui service inquiry.
Connector Device 1. Membangun koneksi antara dua perangkat yang akan berkomunikasi.
2. Menangani koneksi kelayanan yang sesuai pada perangkat
partner
Authenticator 1. Melakukan otentikasi perangkat 2. Melakukan otentikasi user 3. Membangkitkan bilangan acak
Packet 1. Membangun paket yang akan dikirimkan pada saat komunikasi berlangsung.
2. Melakukan identifikasi data dan mengatur informasi data sesuai signal yang diberikan.
Reader 1. Menerima data yang dikirimkan oleh pihak lawan kepada perangkat yang bersangkutan
2. Menyimpan data dari pihak lawan yang sudah diproses
Sender 1. Mengirimkan data kepada pihak lawan yang diajak berkomunikasi
Server 1. Membangun server yang mampu menerima koneksi dari perangkat lain.
2. Menangani setiap permintaan koneksi dari perangkat lain
Configure 1. Mengani konfigurasi yang dilakukan oleh pengguna ke dalam sistem.
2. Mengupdate kondisi sistem sesuai dengan konfigurasi yang dilakukan oleh pengguna.
IV.1.7 Diagram Kelas Analisis
Kelas-kelas analisis, yang didapat dari menganalisis tanggung jawab kelas-kelas potensial terhadap sistem, digambarkan keterhubungannya dalam diagram kelas analisis. Diagram kelas analisis untuk perangkat lunak BlueSeFT dapat dilihat pada Gambar IV-3.
Gambar IV-3 Diagram Kelas Analisis
IV.1.8 Analisis Library Pendukung
Dalam mengembangkan perangkat lunak digunakan dua library yang terkait dengan pemanfaatan jaringan dan sistem keamanan. Dari sisi jaringan, untuk mendukung koneksi menggunakan Bluetooth maka digunakan Java API Bluetooth Wireless Technology (JSR-82). API ini memungkinkan dibentuknya koneksi dengan Bluetooth
menggunakan J2ME, yang mana library ini sudah terintegrasi langsung pada J2ME. Terkait keamanan maka digunakan library yang di-realease oleh bouncycastle.org.
Library ini mendukung semua fungsi-fungsi yang akan diimplementasi pada perangkat lunak, baik terkait enkripsi, dekripsi, pembangkitan bilangan acak, cipher
blok, cipher aliran, pembangkitan pasangan kunci RSA, dan pemanfaatkan tanda tangan digital.
4.2 Perancangan Perangkat Lunak BlueSeFT
Perancangan perangkat lunak yang akan dilakukan meliputi batasan perancangan perangkat lunak, perancangan arsitektur, perancangan format data, dan perancangan antarmuka.
IV.2.1 Batasan Perancangan Perangkat Lunak BlueSeFT
Batasan-batasan yang ada pada perancangan perangkat lunak BlueSeFT ini antara lain:
1. BluSeFT hanya mampu menangani komunikasi Bluetooth dua arah, jadi jaringan yang terbentuk dengan perangkat lunak ini adalah hanya jaringan
point-to-point.
2. Untuk dapat menggunakan perangkat lunak ini maka pengguna harus memasukan data kunci pengguna yang akan digunakan untuk mengenkripsi/mendekripsi data kunci privat yang disimpan oleh perangkat lunak. Kunci ini sekaligus akan dijadikan data untuk otentikasi ketika akan mengakses perangkat lunak.
3. Untuk dapat melakukan koneksi satu sama lain maka pengguna harus memasukan data kunci publik dari pihak yang akan diajak berkomunikasi. IV.2.2 Perancanangan Arsitektur
Perancangan arsitektur perangkat lunak memberikan gambaran kendali fungsional, fungsi dan prosedur, yang terdapat pada perangkat lunak. Fungsional ini dijalankan oleh kelas-kelas melalui method yang dimilikinya. Keterhubungan antar kelas dalam sistem dapat dilihat pada diagram kelas final pada Gambar VI-4. Dalam perangkat lunak BlueSeFT terdapat 17 kelas dan sebuah interface. Perancangan kelas-kelas dan interface tesebut dapat dilihat pada Tabel VI-5.
Tabel IV-5 Perancangan Kelas Final BlueSeFT
No Kelas Data yang Disimpan Deskripsi
1. Authenticator 1. clientKey : PublicKey 2. BD_ADDR : String 3. key : CompleteKey
Merupakan kelas yang berperan dalam melakukan otentikasi baik perangkat dan pengguna, sekaligus pembangkitan bilangan acak.
No Kelas Data yang Disimpan Deskripsi
2. BTListener - Merupakan interface yang
menangani event yang terjadi selama koneksi.
3. BlueSeFT 1. id : int
2. secretLinkKey : String 3. rDev : RemoteDevice 4. local : LocalDevice
Merupakan kelas utama dalam sistem, berperan dalam pembetukan midlet atau instant dari aplikasi dan dalam menampilkan pesan ke pengguna.
4. BluetoothBrowser 1. stateDeviceInquiry : int 2. stateServiceInquiry : int 3. devicesFound : Vector
4. serviceFound :
ServiceRecord
5. agent : DiscoveryAgent
Merupakan kelas yang bertanggung jawab dalam melakukan Bluetooth device discovery dan Bluetooth service discovery.
5. CompleteKey 1. privateExponent : BigInteger
2. userKey : String
Merupakan kelas yang menyimpan data pasangan public key dan private key. Merupakan kelas turunan dari kelas PublicKey
6. Configure 1. secretKey : String 2. hashKey : int 3. key : CompleteKey
Merupakan kelas yang
berperan dalam pembangkitan pasangan
kunci publik dan privat dengan algoritma RSA.
7. ConnectorDevice 1. auth : Authenticator 2. sender : Sender 3. reader : Reader
4. con : StreamConnection 5. connected : int
Merupakan kelas yang berperan dalam melakukan koneksi dengan perangkat
Bluetooth lain. 8. Encryptor 1. key : KeyParameter
2. Algorithm : String
Merupakan kelas yang berperan dalam melakukan
No Kelas Data yang Disimpan Deskripsi
enkripsi dan dekripsi data baik dengan stream cipher
ataupun dengan block cipher.
9. InputKeyUI 1. edited : boolean Merupakan kelas yang bertanggung jawab dalam menerima masukan kunci perangkat lain oleh pengguna.
10. InputUI - Merupkan kelas yang
berperan dalam menampilkan text area bagi
user untuk mengetikan pesan yang akan dikirim.
11. ListDeviceUI 1. done : boolean
2. currentMenuStatus : int
Merupakan kelas yang
berfungsi untuk menampilkan daftar perangkat yang didapatkan
ketika proses device discovery.
12. ListKeyUI 1. pubKey : PublicKey
2. mHashTable :
HashTable
Merupakan kelas yang
berfungsi untuk menampilkan data kunci
public perangkat lain yang telah tersimpan pada
perangkat yang bersangkutan.
13. MessageUI 1. msg : Vector Merupakan kelas yang
berfungsi untuk menampilkan pesan yang
diterima dan dikirim dari/ke perangkat yang sedang
No Kelas Data yang Disimpan Deskripsi diajak berkomunikasi. 14. Packet 1. signal : int
2. msg : String
Merupakan kelas yang berfungsi untuk membentuk paket data yang akan dikirimkan atau diterima untuk ditampilkan. 15. PublicKey 1. bluetoothAddress : String 2. bluetoothOwner : String 3. publicExponent : BigInteger 4. publicModulus : BigInteger
Merupakan kelas yang berfungsi untuk menyimpan data kunci publik dari perangkat lain.
16. Reader 1. finishConnect : boolean 2. rndDH : BigInteger 3. secretKey : BigInteger 4. n : BigInteger
5. g : BigInteger
6. encryptor : Encryptor
Merupakan kelas yang berfungsi untuk membaca pesan yang dikirimkan oleh perangkat lawan.
17. Sender 1. done : boolean 2. encryptor : Encryptor
Merupakan kelas yang
berfungsi dalam mengirimkan pesan ke perangkat lawan. Server 1. server : StreamConnectionNotifi er 2. reader : Reader 3. sender : Sender
Merupakan kelas yang berfungsi untuk membentuk obyek server dengan menggunakan profile serial port (RS232).
Untuk daftar fungsi dan prosedur yang ada pada masing-masing kelas perancangan dapat dilihat pada Lampiran D. Daftar tersebut sekaligus memperlihat modul yang ada pada perangkat lunak, karena modul disesuaikan dengan kelas yang ada.
IV.2.3 Perancangan Format Data Perangkat Lunak BlueSeFT
Persistent data pada perangkat lunak ini disimpan dengan menggunakan basis data. Hal ini dilakukan karena data-data ini akan diperlukan dikemudian saat, ketika dilakukan proses komunikasi lagi. Format data yang digunakan adalah menggunakan format data bentukan yang didesain menjadi sebuah kelas yaitu PublicKey dan
CompleteKey. PublicKey secara algoritmik dapat dinotasikan sebagai berikut:
PublicKey { bluetoothAddress : String, bluetoothOwner : String, publicExponent : BigInteger, publicModulus : BigInteger, }
Data kunci publik ini selanjutnya akan disimpan kedalam basis data dengan format sebagai berikut : bluetoothAddress| bluetoothOwner| publicExponent| publicModulus.
Selanjutnya adalah CompleteKey, yaitu format data untuk menyimpan data pasangan kunci publik dan privat pengguna yang bersangkutan. Adapun secara algoritmik
CompleteKey dinotasikan sebagai berikut:
CompleteKey { secretKey : String publicExponent : BigInteger, privateExponent : BigInteger, Modulus : BigInteger, }
yang mana selanjutnya data ini akan disimpan ke dalam basis data maka formatnya adalah : secretKey|publicExponent| privateExponent|modulus.
Diperlukannya dua tipe format kunci yang sedikit berbeda pada perangkat lunak ini karena memang pada proses otentikasi dibutuhkan dua data kunci yaitu data kunci sendiri dan data kunci publik dari perangkat yang akan diajak berkomunikasi. Data lainnya yang ada dalam perangkat lunak BlueSeFT dapat dilihat pada diagram kelas Gambar IV-4.
Gambar IV-4 Diagram Kelas Perancangan Final
IV.2.4 Perancangan Antarmuka Perangkat Lunak BlueSeFT IV.2.4.1 Perancangan Struktur Menu Perangkat Lunak BlueSeFT
Struktur menu yang terdapat pada perangkat lunak BlueSeFT dapat dilihat pada Gambar IV-5. Gambar tersebut menunjukan tahapan akses terhadap menu utama yang terdapat di dalam BlueSeFT.
IV.2.4.2 Perancangan Layar Antarmuka Perangkat Lunak BlueSeFT
Perancangan layar antarmuka perangkat lunak BlueSeFT berdasarkan struktur menu yang ada, dapat dilihat pada Gambar IV-6. Karena merupakan aplikasi yang berjalan pada perangkat mobile maka layar antarmuka dibuat sesederhana mungkin dan
dioptimalkan kepada pemanfaatan menu untuk akses fitur-fitur perangkat lunak. Layar utama memiliki dua menu utama yaitu Menu dan Exit dan selanjutnya struktur akses sesuai dengan struktur akses menu.
Gambar IV-5 Struktur Akses Menu pada BlueSeFT
Menu Exit BlueSeFT
ticker
Picture (brief)