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 IV-1
IV-2 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-3
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.
IV-4 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.
IV-5 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.
1.
Aktor
Deskripsi
Semua orang pemilik/pengguna perangkat yang
User
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.
1.
Use Case
Manage Key
Deskripsi
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
IV-6
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 :
IV-7
Tabel IV-3 Daftar Kelas Potensial
No.
1.
Use Case
Manage Key
Kelas Potensial
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
IV-8
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
Blueseft
Tanggung Jawab
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.
IV-9
Nama Kelas
Tanggung Jawab
3. Menangani penghapusan kunci publik dari database. Database
1. Menangani segala bentuk koneksi ke dalam database
Connector 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-10
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.
IV-11
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
1.
Kelas
Authenticator
Data yang Disimpan
Deskripsi
1. clientKey : PublicKey
Merupakan
2. BD_ADDR : String
berperan dalam melakukan
3. key : CompleteKey
otentikasi dan
kelas
yang
baik
perangkat
pengguna,
sekaligus
pembangkitan bilangan acak.
IV-12
No
2.
Kelas
BTListener
Data yang Disimpan
-
Deskripsi
Merupakan interface yang menangani
event
yang
terjadi selama koneksi. 3.
BlueSeFT
1. id : int
Merupakan
kelas
utama
2. secretLinkKey : String
dalam
3. rDev : RemoteDevice
dalam pembetukan midlet
4. local : LocalDevice
atau instant dari aplikasi dan
sistem,
berperan
dalam menampilkan pesan ke pengguna. 4.
BluetoothBrowser 1. stateDeviceInquiry : int
Merupakan
kelas
yang
2. stateServiceInquiry : int
bertanggung jawab dalam
3. devicesFound : Vector
melakukan Bluetooth device
4. serviceFound ServiceRecord
: discovery
dan
Bluetooth
service discovery.
5. agent : DiscoveryAgent 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
Merupakan
2. hashKey : int
berperan
3. key : CompleteKey
pembangkitan kunci
publik
kelas
yang dalam
pasangan dan
privat
dengan algoritma RSA. 7.
ConnectorDevice
1. auth : Authenticator
Merupakan
kelas
yang
2. sender : Sender
berperan dalam melakukan
3. reader : Reader
koneksi dengan perangkat
4. con : StreamConnection
Bluetooth lain.
5. connected : int 8.
Encryptor
1. key : KeyParameter
Merupakan
2. Algorithm : String
berperan dalam melakukan
kelas
yang
IV-13
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
kelas
yang
pengguna. 10. InputUI
-
Merupkan berperan
dalam
menampilkan text area bagi user untuk mengetikan pesan yang akan dikirim. 11. ListDeviceUI
1. done : boolean
Merupakan
2. currentMenuStatus : int
berfungsi
untuk
menampilkan
daftar
kelas
yang
perangkat yang didapatkan ketika
proses
device
discovery. 12. ListKeyUI
1. pubKey : PublicKey 2. mHashTable HashTable
Merupakan
kelas
: berfungsi
yang untuk
menampilkan
data
kunci
public perangkat lain yang telah
tersimpan
perangkat
pada yang
bersangkutan. 13. MessageUI
1. msg : Vector
Merupakan
kelas
berfungsi menampilkan
yang untuk
pesan
yang
diterima dan dikirim dari/ke perangkat
yang
sedang
IV-14
No
Kelas
Data yang Disimpan
Deskripsi
diajak berkomunikasi. 14. Packet
1. signal : int
Merupakan
2. msg : String
berfungsi untuk membentuk paket
kelas
data
dikirimkan
yang
yang atau
akan
diterima
untuk ditampilkan. 15. PublicKey
1. bluetoothAddress
: Merupakan
String
yang
berfungsi untuk menyimpan
2. bluetoothOwner : String 3. publicExponent
kelas
data
kunci
publik
dari
: perangkat lain.
BigInteger 4. publicModulus
:
BigInteger 16. Reader
1. finishConnect : boolean
Merupakan
kelas
yang
2. rndDH : BigInteger
berfungsi untuk membaca
3. secretKey : BigInteger
pesan yang dikirimkan oleh
4. n : BigInteger
perangkat lawan.
5. g : BigInteger 6. encryptor : Encryptor 17. Sender
1. done : boolean
Merupakan
2. encryptor : Encryptor
berfungsi
kelas
yang dalam
mengirimkan
pesan
ke
perangkat lawan. Server
1. server
: Merupakan
kelas
yang
StreamConnectionNotifi berfungsi untuk membentuk er
obyek
server
dengan
2. reader : Reader
menggunakan profile serial
3. sender : Sender
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-15
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.
IV-16
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
IV-17 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
BlueSeFT ticker
Picture (brief)
Menu
Exit
Gambar IV-6 Layar Utama Perangkat Lunak BlueSeFT