BAB II DASAR TEORI Dalam bab ini dipaparkan tentang dasar teori yang digunakan dalam rangka pengerjaan Tugas Akhir, yaitu kriptografi dan Bluetooth. Bagian kriptografi meliputi, definisi kriptografi, sistem kriptografi dan protokol Diffie-Hellman. Sedangkan bagian Bluetooth meliputi arsitektur protokol Bluetooth, jaringan Bluetooth dan aspek keamanannya.
2.1 Kriptografi II.1.1 Definisi Kriptografi Kriptografi (cryptography) berasal dari bahasa Yunani yaitu dari asal kata cryptos + graphien, dimana cryptos berarti rahasia sedangkan graphien berarti gambar atau tulisan. Jadi, secara etimologi atau berdasarkan asal katanya kriptografi berarti tulisan rahasia. Namun, jika dilihat lebih jauh, definisi kriptografi itu adalah ilmu dan seni untuk menjaga kerahasian pesan dengan cara menyandikannya kedalam bentuk yang tidak dapat dimengerti lagi maknanya [SCH94] sehingga pesan menjadi aman dan tidak dapat dibaca oleh orang yang tidak berkepentingan. Pesan adalah data atau informasi yang dapat dibaca dan diketahui maknanya. Nama lain untuk pesan adalah plainteks (plaintext) atau teks jelas (cleartext). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran komunikasi data, dsb) atau yang disimpan di dalam media perekaman (kertas, storage, dsb). Agar pesan tidak dapat diketahui maknanya oleh pihak lain, maka pesan disandikan ke bentuk lain. Bentuk pesan yang disandikan disebut cipherteks (ciphertext) atau kriptogram (cryptogram) [MUN06]. Disinilah kriptografi memiliki peran yaitu dalam melakukan penyadian pesan dari bentuk plainteks menjadi cipherteks ataupun sebaliknya, yang dilakukan oleh seorang kriptografer.
II-1
II-2 Di dalam kriptografi maka akan melibatkan dua buah proses utama untuk membentuk pesan
yang
diinginkan.
Adapun
kedua
tersebut
yaitu
enkripsi
(encryption/enciphering) dan dekripsi (decryption/deciphering). Enkripsi adalah proses menyandikan plainteks menjadi cipherteks sedangkan dekripsi adalah proses mengembalikan cipherteks menjadi plainteks. Kedua nama tersebut merupakan standar menurut ISO 7498-2 [MUN06]. Ilustrasi dari proses yang terjadi dalam kriptografi dapat dilhat pada Gambar II-1 berikut ini:
Gambar II-1 Proses di dalam kriptografi
Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut: EK (M) = C ................................................................................................. (II-1) DK (C) = M ................................................................................................ (II-2) E adalah fungsi enkripsi sedangkan D adalah fungsi dekripsi. Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K, kemudian dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K, sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya. Dari penjelasan diatas terlihat bahwa kunci memegang peranan penting. Kerahasian suatu pesan akan bergantung pada kunci yang digunakan, dan bukan pada algoritma kriptografinya. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan.
II-3
II.1.2 Sistem Kriptografi Sistem kriptografi (cryptosystem) meliputi sebuah algoritma, semua kemungkinan plainteks, cipherteks dan kunci-kunci. Secara umum kriptosistem dapat digolongkan menjadi dua buah, yaitu: 1. Kriptosistem Kunci-Simetri Dalam kriptosistem simetri ini, kunci yang digunakan untuk proses enkripsi dan dekripsi pada prinsipnya identik, atau dengan kata lain pengirim dan penerima
pesan
menggunakan
kunci
yang
sama.
Contoh dari sistem ini adalah RC4 (ARCFOUR), Data Encryption Standard (DES), Blowfish, IDEA. Proses enkripsi dan dekripsi pesan pada kriptografi simetri dapat dilihat pada Gambar II-2 berikut:
Gambar II-2 Proses enkripsi dan dekripsi kriptografi simetri
2. Kriptosistem Kunci-Nirsimetri (Kriptografi Kunci-Publik) Konsep dari kriptografi kunci publik diperkenalkan oleh Diffie dan Hellman pada tahun 1976 bersamaan dengan diperkenalkannya Protokol DiffieHellman dalam presentasi paper mereka yang berjudul “New Directions in Cryptography” [DIF76]. Ide dasar dari sistem kriptografi kunci publik adalah bahwa kunci kriptografi dibuat sepasang, satu kunci untuk enkripsi dan satu kunci untuk dekripsi [MUN06]. Kunci untuk enkripsi bersifat publik (tidak rahasia) sehingga dinamakan kunci publik (public key), sedangkan kunci dekripsi bersifat rahasia sehingga dinamakan kunci rahasia (private key atau secret key). Kunci-kunci ini dipilih sedemikian sehingga, secara praktik, tidak mungkin menurunkan kunci rahasia
II-4 dari kunci publik [MUN06]. Proses enkripsi dan dekripsi dengan algoritma kriptografi kunci publik dapat dilihat pada Gambar II-3
Gambar II-3 Proses enkripsi dan dekripsi kriptografi kunci-publik
Secara matematis proses enkripsi dan dekripsi pada kirptosistem kuncinirsimetri adalah sebagai berikut: EPriK (M) = C ...................................................................................... (II-3) DPubK (C) = M ..................................................................................... (II-4) E adalah fungsi enkripsi dengan PriK adalah private key sedangkan D adalah fungsi dekripsi dengan PubK adalah publik key. Sebagai gambaran berikut diberikan contoh penerapan kriptosistem nirsimetri dalam kehidupan seharihari. Dosen suatu mata kuliah pada sebuah perguruan tinggi memiliki beberapa orang peserta kuliah (mahasiswa). Dosen tersebut memiliki pasangan kunci privat dan kunci publik, yang mana kunci publik ini diketahui oleh semua peserta
kuliah.
Sebagai
protokol
pengumpulan
tugas
maka
dosen
memerintahkan kepada peserta kuliahnya untuk meng-upload softcopy tugas yang telah dikerjakannya kedalam suatu shared folder pada sebuah server. Namun, sebelumnya tugas tersebut sudah dienkripsi terlebih dahulu dengan mempergunakan algoritma kriptografi kunci-publik dengan kunci publik milik dosen. Disini dapat dilihat bahwa walaupun softcopy tugas diletakan pada suatu shared folder yang bisa diakses oleh siapa saja, namun hanya dosen yang akan mampu membaca isi dari setiap tugas yang telah di-upload,
II-5 sedangkan peserta lain tidak akan mampu membacanya karena tidak mengetahui kunci privat dari dosen. Ilustrasi contoh diatas dapat dilihat pada Gambar II-4 berikut:
Gambar II-4 Mekanisme pemanfaatan kriptografi kunci-publik
II.1.3 RC4 RC4 (ARCFOUR) adalah salah satu contoh algoritma kriptografi kunci-simetri. Algoritma ini adalah cipher aliran yang digunakan secara luas pada sistem keamanan seperti protokol SSL (Secure Socket Layer) [MUN06]. Agoritma ini sederhana dan mudah untuk diimplementasikan. RC4 membangkitkan aliran kunci (keystream) yang kemudian di-XOR-kan dengan plainteks pada waktu enkripsi (atau di-XOR-kan dengan bit-bit cipherteks pada waktu dekripsi). Tidak seperti cipher aliran yang memproses data dalam bit, RC4 memproses data dalam ukuran byte (1 byte = 8 bit). Untuk membangkitan aliran kunci, cipher menggunakan status internal yang terdiri dari dua bagian: 1. Permutasi angka 0 sampai 255 didalam larik S0,S1,..., S255. Permutasi merupakan fungsi dari kunci U dengan panjang variabel. 2. Dua buah pencacah indeks, i dan j Proses enkripsi dan dekripsi dari RC4 dapat dilihat pada Gambar II-5 berikut:
II-6
Gambar II-5 Proses dekripsi dan enkripsi RC4
Pesan yang dikirimkan akan di-xor-kan dengan rangkaian kunci yang dibentuk oleh pembangkit kunci aliran yang mendapat umpan dari user. Sedangkan pada sisi penerima pembangkitan kunci acak oleh pembangkit kunci aliran juga dilakukan dengan umpan yang sama yang dikirimkan melalui suatu saluran khusus yang aman. Kemudian rangkaian kunci acak yang dihasilkan di-xor-kan kembali dengan cipherteks yang diterima. Untuk diagram pembangkit kunci aliran dapat dilihat pada Gambar II-6:
Gambar II-6 Diagram pembangkitan kunci aliran RC4
Langkah-langkah dari algoritma RC4 adalah sebagai berikut: 1. Inisialisasi larik S sehingga S0 = 0, S1 = 1, ..., S255 = 255 2. Jika panjang kunci U < 256, lakukan padding yaitu penambahan byte semu sehingga panjang kunci menjadi 256 byte. Misalnya jika U = “abc” yang hanya terdiri dari 3 byte maka lakukan padding dengan penambahan byte semu, misalnya U = “abcabcabc...” sampai panjang U mencapai 256 byte.
II-7 3. Lakukan permutasi terhadap nilai didalam larik S. 4. Bangkitkan aliran kunci dan lakukan enkripsi dengan fungsi XOR. Cipherteks(i) = Plainteks(i) XOR Key(i) ....................................................... (II-5) II.1.4 SAFER+ SAFER+ juga merupakan salah satu jenis algoritma kriptografi kunci simetri. Berbeda dengan algoritma RC4 yang merupakan stream cipher, SAFER+ adalah algoritma block cipher yang merupakan pengembangan dari algoritma SAFER [SHA05]. Seperti yang telah dijelaskan pada bab sebelumnya bahwa algoritma ini adalah dasar dari algoritma pembangkitan kunci dan otentikasi pada komunikasi Bluetooth. Algoritma-algoritma yang digunakan pada komunikasi Bluetooth yang didasarkan pada algoritma SAFER+ ini adalah algoritma E22 untuk pembentukan kunci inisialisasi, E21 untuk pembentukan kunci penghubung, dan E1 untuk mutual otentikasi. Semua algoritma diatas didapat dengan melakukan sedikit modifikasi pada algoritma SAFER+. Untuk menjelaskan algoritma E22, E21, dan E1 terlebih dahulu akan dijelaskan tentang algoritma SAFER+ itu sendiri. SAFER+ terdiri atas dua buah subsistem utama yaitu subsistem untuk enkripsi dan subsistem untuk key scheduling. Subsistem key scheduling inilah yang berperan dalam proses otentikasi. Key scheduling pada algoritma ini bertujuan untuk membangkitkan suatu kunci, yang disebut dengan round key, untuk setiap putaran dari tahap subsistem enkripsi [GEH04]. Key scheduling ini akan menghasilkan 17 subkey yang berbeda, yaitu K1 sampai K17. Setiap putaran yang dilakukan menggunakan 2 buah subkey dan satu kunci terakhir digunakan untuk menghasilkan keluaran kunci dari SAFER+. Hal terpenting dari algoritma key scheduling ini yaitu setiap byte data akan digeser (wraping) ke kiri sejauh tiga bit dan untuk keluar dihasilkan kunci dengan panjang 16 bit [SHA05]. Proses lengkap dari key scheduling ini dapat dilihat pada Lampiran A. Untuk perumusan singkat masing-masing algoritma yang didasarkan dari algoritma SAFER+ adalah sebagai berikut: 1. Rumus pembentukan kunci inisialisasi (E22)
(
E 22 : {0 ,1}
8
)
N'
× {0 ,1}
128
× {1, 2 ,..., 16 } → {0 ,1}
128
.................(II-6)
2. Rumus pembentukan kunci penghubung (E21)
E 21 : {0 ,1}
128
× {0 ,1}
48
→ {0 ,1}
128
...................................................(II-7)
II-8 3. Rumus untuk mutual authentication (E1)
E 1 : {0 ,1}
128
× {0 ,1}
128
× {0 ,1}
48
→ {0 ,1} × {0 ,1} .................(II-8) 32
96
II.1.5 Blowfish Setelah dibahas kriptografi SAFER+ sebagai algoritma kriptografi berbasis blok, maka selanjutnya akan dibahas algoritma kriptografi berbasis blok yang lain, yaitu algoritma kriptografi Blowfish. Blowfish didesain oleh Bruce Schneier, algoritma ini menggunakan prinsip jaringan Feistel dan cipher berulang sebanyak 16 kali. Besar blok yang digunakan pada algoritma ini adalah 64 bit sedangkan panjang kunci dapat bervariasi sampai maksimal berukuran 488 bit [SCH94]. Adapun diagram struktur jaringan Feistel yang digunakan pada algoritma blowfish dapat dilihat pada Gambar II-7.
⊕
⊕
⊕
⊕
⊕
⊕
Gambar II-7 Diagram Jaringan Feistel Blowfish
Diagram diatas memperlihatkan cara kerja Blowfish menggunakan jaringan Feistel. Setap garis pada diagram mewakili 32 bit data. Pada algoritma ini memanfaatkan dua jenis sub-kunci, yaitu 18
kunci P, S-Box dengan besar 256 dan. S-box ini
memerlukan 8 bit masukan dan menghasilkan 32 bit keluaran. Setiap kunci P akan digunakan pada setiap putaran jaringan Feistel dan setelah putaran terakhir masingmasing setengah blok di-xor-kan dengan dua kunci P yang belum digunakan. Proses tersebut menggambarkan proses enkripsi dari Blowfish, untuk dekripsi proses diatas dibalik.
II-9
II.1.6 RSA Salah satu algoritma kriptografi kunci-nirsimetri (kunci-publik) yang paling terkenal adalah RSA (Rivest, Shamir, Adleman). Algoritma ini dibuat oleh Ron Rivest, Adi Shamir, dan Leonard Adleman. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran ini dilakukan untuk memperoleh kunci rahasia. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma maka selama itu pula keamanan algoritma RSA tetap terjamin [MUN06]. Untuk membangkitkan pasangan kunci (kunci publik dan kunci rahasia), beberapa langkah yang harus dilakukan antara lain: 1. Pilih dua bilangan prima sembarang p dan q 2. Hitung n = p.q. Sebaiknya p ≠ q maka n = p2 sehingga p dapat diperoleh dengan menarik akar kuadrat dari n 3. Hitung φ(n) = (p - 1).(q - 1) 4. Pilih kunci publik e yang relatif prima terhadap φ(n) 5. Bangkitkan kunci rahasia d dengan persamaan: e.d ≡ 1 (mod φ(n)) .................................................................................... (II10) Perhatikan bahwa persamaan diatas ekivalen dengan e.d ≡ 1 + k φ(n), sehingga d dapat dihitung dengan: d = (1 + k φ(n))/e ...................................................................................... (II-11) Disini akan didapat dua hasil perhitungan yaitu pasangan n dan d sebagai kunci rahasia (private) dan pasangan n dan e sebagai kunci publik yang sifatnya tidak rahasia [MUN06]. Untuk mengenkripsi pesan (plainteks) menjadi cipherteks, langkah-langkah yang dilakukan adalah: 1. Ambil kunci penerima pesan e dan modulus n 2. Nyatakan plainteks m menjadi blok-blok m1, m2, ... sedemikian sehingga setiap blok merepresentasikan nilai dalam selang [0,n-1] 3. Setiap blok mi dienkripsi menjadi blok ci dengan rumus
E e (mi ) = ci ≡ mie mod n ........................................................................... (II-12)
II-10 Sedangkan untuk dekripsi digunakan rumus: Dd (ci ) = mi = cid mod n ........................................................................... (II-13) Kekuatan algoritma RSA ini terletak pada sulitnya memfaktorkan suatu bilangan yang besar menjadi faktor primanya. Sehingga semakin panjang pasangan kunci yang digunakan (dalam artian semakin besar bilangan kuncinya) maka algoritma RSA akan semakin aman. II.1.7 Tanda Tangan Digital Sejak beberapa ratus tahun yang lalu, tanda tangan digunakan untuk membuktikan
otentikasi suatu dokumen. Tanda tangan ini memiliki beberapa karakteristik, antara lain: 1. Tanda tangan adalah bukti yang otentik 2. Tanda tangan tidak dapat dilupakan 3. Tanda tangan tidak dapat dipidah untuk digunakan ulang 4. Dokumen yang telah ditandatangani tidak dapat diubah 5. Tanda tangan tidak dapat disangkal Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk otentikasi pada data digital, seperti pesan yang dikirimkan melalui saluran komunikasi dan dokumen elektronik yang disimpan di dalam memori komputer [RIN06]. Tanda tangan pada data digital disebut tanda tangan digital (digital signature). Yang dimaksud dengan tanda tangan digital di sini bukanlah tanda tangan yang di-digitasi dengan alat bantu scanner, tetapi suatu nilai kriptografis yang bergantung pada pesan dan pengirim pesan. Dengan tanda tangan digital, maka integritas data dapat dijamin, disamping itu juga digunakan untuk membuktikan asal pesan (keabsahan pengiriman) dan anti penyangkalan [RIN06]. Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara berikut, yaitu: 1. Enkripsi pesan Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan
yang
terenkripsi
ditandatangani. 2. Menghitung nilai hash pesan
sudah
menyatakan
bahwa
pesan
tersebut
II-11 Tanda tangan digital dibangkitkan dengan menerapkan fungsi hash terhadap pesan. Nilai hash adalah kode ringkas dari pesan. Tanda tangan digital berlaku seperti tanda tangan kode ringkas dari pesan. Tanda tangan digital berlaku seperti tanda tangan pada dokumen kertas. Tanda tangan digital ditambahkan kemudian ditambahkan pada pesan. Salah satu teknik menandatangani pesan dengan enkripsi pesan, yaitu dengan menggunakan algoritma kunci publik. Pesan yang ditandatangani dienkripsi menggunakan kunci rahasia pengirim (pemberi tanda tangan). Dengan menggunakan kunci rahasia ini, tidak hanya kerahasiaan pesan yang dicapai, tetapi juga otentikasi. Setiap orang yang tahu kunci publik pengirim, akan bisa mendekripsikan pesan tersebut dan tahu bahwa pesan tersebut benar-benar dari si pengirim. Beberapa, algoritma kunci publik, seperti RSA bisa digunakan untuk menandatangani pesan dengan cara mengenkripsinya. II.1.8 Protokol Diffie-Hellman
Protokol merupakan serangkaian aturan yang terurut yang harus dilakukan untuk tercapainya tujuan. Seperti yang telah dijelaskan pada bagian sebelumnya bahwa Protokol Diffie-Hellman diperkenalkan oleh Whitfield Diffie dan Martin E. Hellman. Protokol Diffie-Hellman ini digunakan untuk mempertukarkan kunci antara pihak yang saling berkomunikasi. Protokol ini bekerja pada saluran komunikasi publik yang tidak aman, namun dapat menghasilkan kunci (shared secret key) secara aman. Secara matematis Protokol Diffie-Hellman digambarkan sebagai berikut [MUN06] : Parameter Umum
Misalkan Alice dan Bob akan mempertukarkan kunci melalui saluran publik. Maka untuk dapat menggunakan protokol ini keduanya akan memilih suatu bilangan dasar n dan g sedemikian sehingga g < n. Nilai n dan g tidak perlu rahasia. Bahkan, Alice dapat membicarakannya melalui saluran yang tidak aman sekalipun. Algoritma Diffie-Hellman
1. Alice membangkitkan bilangan bulat acak yang besar x dan mengirim hasil perhitungan berikut kepada Bob: X = gx mod n ................................................................................ (II-14)
II-12 2. Bob membangkitan bilangan bulat acak besar y dan mengirimkan hasil perhitungan berikut kepada Alice: Y = gy mod n ................................................................................ (II-15) 3. Alice menghitung K = Yx mod n ................................................................................ (II-16) 4. Bob menghitung K’ = Xy mod n .............................................................................. (II-17) Jika perhitungan dilakukan dengan benar, maka K = K’ yang berarti kunci simetri sudah berhasil diterima oleh kedua belah pihak. Baik K dan K’ sama dengan gxy mod n. Carol yang menyadap pembicaraan antara Alice dan Bob tidak dapat menghitung K. Ia hanya memiliki informasi n, g, X dan Y, tetapi ia tidak mempunyai informasi nilai x dan y. Untuk mengetahui nilai x dan y, ia perlu melakukan perhitungan logaritma diskrit, yang mana sangat sulit dikerjakan. Gambar II-8 memperlihatkan diagram algoritma pertukaran kunci Diffie-Hellman (Protokol Diffie-Hellman). Di akhir perhitungan Alice dan Bob telah memiliki kunci rahasia yang sama, K.
Gambar II-8 Pertukaran kunci Diffie-Hellman
Berikut contoh dari jalannya Protokol Diffie-Hellman :
II-13 Alice dan Bob menyepakati n = 97 dan g = 5 (g < n). Alice dan Bob melakukan pertukaran kunci simetri sebagai berikut: 1. Alice memilih x = 36 dan menghitung X = gx mod n = 536 mod 97 = 50 Alice mengirimkan X kepada Bob. 2. Bob memilih y = 58 dan menghitung Y = gy mod n = 558 mod 97 = 44 Bob mengirimkan Y kepada Alice. 3. Alice mengitung kunci simetri K, K = Yx mod n = 4436 mod 97 = 75 4. Bob mengitung kunci simetri K, K = Xy mod n = 5058 mod 97 = 75 Jadi, Alice dan Bob sudah mempunyai kunci sesi yang sama, yaitu K = 75. Kunci ini siap digunakan untuk melakukan komunikasi dengan kriptografi simetri. II.1.9 Pembangkitan Bilangan Acak Pembangkitan bilangan acak adalah salah satu faktor penting dalam kriptografi, maka
dari itu diperlukan suatu mekanisme untuk membangkitkan bilangan acak yang aman. Pembangkitan ini harus dapat menghasilkan bilangan yang tidak dapat diprediksi oleh pihak lawan; pembangkitan seperti ini dinamakan cyptographically secure pseudorandom number generator (CSPRNG). Persyaratan CSPRNG adalah [RIN06]: 1. Secara statistik ia mempunyai sifat-sifat yang bagus (yaitu lolos uji keacakan statistik) 2. Tahan terhadap serangan (attack) yang serius. Serangan ini bertujuan untuk memprediksi serangan bilangan acak yagn dihasilkan. Untuk persyaratan yang kedua ini maka CSPNRG hendaklah memenuhi persyaratan sebagai berikut: 1. Setiap CSPNRG seharusnya memenuhi “uji bit-berikutnya” (next bit tes) sebagai berikut: Diberikan k buah bit barisan acak, maka tidak ada algoritma dalam waktu polinomial yang dapat memprediksi bit ke-(k+1) dengan peluang keberhasilan lebih dari ½.
II-14 2. Setiap CSPNRG dapat menahan “perluasan status”, yaitu jika sebagian atau semua statusnya dapat diungkap (atau diterka dengan benar), maka tidak mungkin merekontruksi aliran bilangan acak. Salah satu metode perancangan CSPNRG adalah dengan menggunakan primitif kriptografi yaitu dengan menggunakan fungsi hash, sebagai contoh adalah SHA1PNRG (Secure Hash Algorithm-1 Pseudo Number Random Generator). SHA1PNRG ini bekerja sebagai berikut: pertama dilakukan penghitungan suatu nilai hash yang kemudian di konkatenasi dengan 64-bit counter yang di-increment setiap kali proses pembangkitan bilangan acak. Dari 160-bit hasil algoritma SHA-1 maka hanya digunakan 64 bit data saja.
2.2 Bluetooth II.2.1 Pendahuluan
Teknologi Bluetooth merupakan salah satu teknologi pengiriman data tanpa kabel dengan mempergunakan gelombang radio sebagai medianya. Tidak seperti teknologi WiFi, area operasi Bluetooth relatif lebih pendek yaitu berkisar 10 – 100 meter. Perkembangan Bluetooth didorong oleh keinginan untuk menggantikan kabel sebagai media komunikasi antara handphone, PDAs, dan perangkat portable lainnya. Bluetooth dikembangkan pertama kali oleh Ericson Mobile Communications pada tahun 1994 guna menggantikan kabel sebagai media penghubung antara produk (handphone) mereka [KLI04]. Bluetooth SIG (Special Interest Group) adalah badan yang bertanggung jawab terhadap perkembangan teknologi Bluetooth. Badan ini beranggotakan perusahaan-perusahaan ternama seperti, Sony Ericson, Intel, IBM, Toshiba, Nokia, Microsoft, 3COM, dan Motorola. Sampai tugas akhir ini ditulis, telah berhasil diciptakan Bluetooth versi 2.1 dengan tambahan EDR (Enhanced Data Rate), yang mana mampu mengirim data dengan kecepatan sampai 3 Mbsp [SIG07]. Versi sebelumnya yaitu Bluetooth versi 1.2 hanya mampu melakukan pengiriman data dengan kecepatan 1 Mbsp. Dilihat dari sisi biaya, Bluetooth sangatlah murah karena untuk beroperasi hanya memerlukan 2,5 mW daya, hal inilah yang menjadi faktor utama kenapa Bluetooth sangat tepat untuk diimplementasikan pada perangkat mobile yang sumber dayanya sangat terbatas.
II-15
II.2.2 Arsitektur Protokol Bluetooth
Protokol Bluetooth merupakan sekumpulan aturan yang harus dipenuhi untuk dapat berkomunikasi menggunakan media Bluetooth. Protokol Buetooth ini memberikan kemungkinan kepada perangkat Bluetooth dari perusahaan yang berbeda dapat saling berkomunikasi satu sama lainnya. Melalui protokol ini, perangkat Bluetooth dapat saling mengetahui layanan yang ditawarkan satu sama lainnya dan dapat menggunakan layanan tersebut. Arsitektur protokol yang dipergunakan Bluetooth ditunjukan pada Gambar II-9. Arsitektur protokol yang digunakan Bluetooth tersusun atas empat layer utama. HCI adalah layer yang bertugas sebagai pemisah antara sisi hardware dan software maka dari itu layer HCI ini diimplementasikan sebagian di sisi hardware dan sebagian disisi software. Semua layer dibawah layer HCI diimplementasikan di sisi hardware sedangkan layer di atas HCI diimplementasikan di sisi software.
Gambar II-9 Arsitektur Protokol Bluetooth
Tabel II-1 berikut memberikan penjelasan ringkas mengenai masing-masing layer dari Bluetooth. Tabel II-1 Deskripsi layer Bluetooth
Layer
Application
Deskripsi
Adalah Bluetooth profil yang akan mengarahkan developer aplikasi Bluetooth bagaimana aplikasi yang
II-16
Layer
Deskripsi
dibuat memanfaatkan protokol-protokol Bluetooth Telephony Control System (TCS)
Menyediakan layanan mirip telepon konvensional seperti layanan transport sinyal suara dan data maupun sinyal control Bagian ini berfungsi untuk menentukan hal-hal apa saja
Service Discovery
yang perlu dilakukan oleh Bluetooth client (slave) untuk
Protocol (SDP)
menemukan suatu layanan pada Bluetooth server (master) berdasarkan karakteristiknya
Wireless Application
Protokol ini merupakan protokol standar untuk mengakses
Protocol (WAP)
internet pada perangkat nirkabel
OBEX Protocol RFCOMM
Protokol ini digunakan sebagai mekanisme pertukaran data antar perangkat Bluetooth Bagian ini menangani emulasi serial port yang akan digunakan untuk aplikasi. Bagian ini menyediakan layanan data bersifat connection-
L2CAP
oriented dan connectionless untuk lapisan-lapisan protokol diatasnya
Host Controller Interface (HCI)
Menangani komunikasi antara host dengan Bluetooth module, juga sebagai antarmuka untuk mengakses fungsionalitas perangkat Bluetooth Bagian ini berfungsi untuk pembangunan koneksi antara perangkat Bluetooth. Pembangunan koneksi ini meliputi
Link Manager Protocol
juga negosiasi ukuran paket yang digunakan untuk transmisi data dan status dari perangkat Bluetooth di dalam piconet Bagian ini berfungsi untuk memungkinkan terbentuknya
Baseband and Link
koneksi fisik frekuensi radio antar perangkat Bluetooth
Controller
untuk membentuk piconet. Baseband ini pula yang mengatur sinkronisasi dan frekuensi hopping
Radio
Melakukan modulasi dan demudolasi data untuk transmisi atau penerimaan data
II-17
II.2.3 Jaringan Bluetooth
Jaringan Bluetooth menggunakan prinsip master-slave. Perangkat yang bertindak sebagai master adalah perangkat yang menginisiasi terbentuknya koneksi. Sebagai contoh misalnya terdapat dua buah perangkat Bluetooth (A dan B) yang hendak berkomunikasi. Perangkat A akan menginisiasi koneksi dengan menghubungi perangkat B, hal ini berarti perangkat A akan bertindak sebagai master dan perangkat B bertindak sebagai slave dan komunikasi seperti ini sering dikenal dengan istilah point-to-point communication, seperti pada Gambar II-10:
Gambar II-10 Master-slave pada jaringan Bluetooth
Pada suatu jaringan Bluetooth dikenal istilah piconet atau scatternet. Piconet adalah bentuk lazim dari jaringan Bluetooth yang terbentuk dari sebuah master dan satu atau lebih slave. Sebuah piconet dapat terdiri dari sebuah master dan maksimal tujuh buah slave yang aktif pada suatu waktu. Perangkat yang bertindak sebagai slave hanya bisa mentransmisi data ketika waktu transmisi diberikan oleh perangkat yang bertindak sebagai master, selain itu slave juga tidak dapat berkomunikasi langsung dengan slave lain karena semua komunikasi haruslah melalui perangkat master. Slave melakukan sinkronisasi frekuensinya dengan master menggunakan master clock dan alamat dari perangat Bluetooth. Gambar II-11 berikut menunjukan sebuah piconet. Gambar II-10 juga dapat disebut sebagai sebuah piconet yang terdiri hanya atas sebuah master dan sebuah slave
Gambar II-11 Piconet
II-18 Pada suatu area jangkauan gelombang radio maka dua buah piconet mungkin terbentuk, untuk piconet-piconet ini maka tidak akan ada sinkronisasi frekuensi. Sebagai akibatnya adalah kemungkinan terjadi tabrakan penggunaan frekuensi antara piconet yang berbeda. Di sisi lain dua buah piconet pada suatu area jangkauan gelombang yang sama dapat dikoneksikan satu sama lain. Ketika dua buah piconet ini dikoneksikan maka akan terbentuk scatternet. Sebuah scatternet ditunjukan pada Gambar II-12, dengan sebuah intermediate node sebagai penghubung piconet. Intermediate node ini haruslah time-share, maksudnya bahwa node ini haruslah mematuhi frequency hopping pada salah satu piconet pada suatu waktu. Sebagai akibat, hal ini akan mengurangi slot waktu yang tersedia untuk transfer data antara intermediate node ini dengan master. Gambar II-12 ini menunjukan bahwa perangkat B yang bertindak sebagai slave pada piconet Gambar II-11 bergabung dengan piconet lain dengan terhubung kepada master dari piconet tersebut yang dalam hal ini adalah perangkat E. Kondisi inilah yang mengakibatkan terbentuknya scatternet.
Gambar II-12 Scatternet
Seperti yang telah dijelaskan sebelumnya bahwa pada sebuah piconet hanya boleh terdiri dari sebuah master. Pada suatu kondisi tertentu yaitu ketika terdapat suatu perangkat yang hendak bergabung ke dalam piconet yang telah terbentuk maka masalah akan menjadi rumit. Hal ini dikarenakan kemungkinan piconet yang sudah ada akan menjadi sebuah scatternet. Kondisi ini tentu tidak diinginkan, maka dari itu
II-19 pada jaringan Bluetooth didefinisikan role-switch. Role-switch memungkinkan dua buah perangkat untuk bertukar peran dalam sebuah piconet. Sebagai contoh, kita lihat kembali Gambar II-10, misal pada kondisi ini terdapat perangkat C yang hendak bergabung ke dalam piconet tersebut. Perangkat C akan mengubungi perangkat master dalam piconet yaitu A. Oleh karena dalam hal ini perangkat C yang menginisiasi hubungan dengan perangkat A maka perangkat C akan bertindak sebagai master untuk koneksi perangkat A dengan C. Pada kondisi ini terdapat dua buah master, berarti terdapat dua buah piconet untuk jaringan yang telah terbentuk (scatternet). Perangkat A adalah intermediate node antara dua buah piconet tersebut, yaitu sebagai master untuk perangkat B dan sebagai slave untuk perangkat C, seperti terlihat pada Gambar II-13:
Gambar II-13 Scatternet dengan tiga buah node
Kondisi seperti ini tidak diinginkan terjadi karena selain scatternet tidak memberikan layanan jaringan yang reliable, dalam artian komunikasi yang terjadi tidak berjalan sempurna karena masalah dalam pengiriman data antara perangkat, juga akan terdapat masalah dalam rangka sinkronisasi frekuensi, seperti yang telah dijelaskan sebelumnya. Disinilah role-switching memegang peranan. Role-switch antara perangkat A dengan C akan memungkinkan hanya terbentuk sebuah piconet saja untuk kondisi seperti di atas, dimana perangkat A akan menjadi master dan baik B serta C akan bertindak sebagai slave. Dari kasus di atas terlihat bahwa ketika suatu perangkat baru hendak bergabung ke dalam sebuah piconet yang sudah terbentuk sebelumnya maka dibutuhkan role-switch, jika tidak maka akan terbentuk scatternet dengan intermediate node-nya mempunyai dua peran yaitu sebagai master dan sekaligus slave.
II-20
II.2.4 Aspek Keamanan Bluetooth
Jaringan yang terbentuk pada komunikasi Bluetooth adalah jaringan ad hoc. Disebut jaringan ad hoc dikarenakan jaringan Bluetooth ini terbentuk hanya ketika terdapat kesepakatan antara pihak-pihak yang akan berkomunikasi dan jaringan ini tidak memerlukan suatu infrastruktur terpusat yang bertugas mengatur jalannya komunikasi, seperti pada jaringan telepon seluler. Atas alasan tersebut maka aspek keamanan komunikasi menjadi sangat penting karena tidak ada yang dapat menjamin bahwa pihak-pihak yang berkomunikasi adalah pihak yang benar. Selain karena alasan di atas, kebutuhan akan sisi keamanan komunikasi menjadi sangat penting pada jaringan Bluetooth karena jaringan ini adalah jaringan tanpa kabel. Pada jaringan tanpa kabel jika perangkat komunikasi yang dipergunakan propertinya diatur agar terdeteksi keberadaannya oleh perangkat lain, maka setiap pihak di dalam jaringan akan dapat melakukan koneksi ke perangkat kita (Bluetooth) dan melakukan pencarian layanan yang ditawarkan oleh perangkat kita kemudian menggunakanya. Dalam rangka untuk mengatasi hal ini maka pada spesifikasi Bluetooth didefinisikan sebuah model keamanan yang didasarkan pada tiga komponen yaitu otentikasi, enkripsi dan otorisasi. Sebagai tambahan, tiga mode keamanan juga telah didefinisikan. Dimana layanan keamanan pada sistem komunikasi Bluetooth diatur oleh sebuah security manager. II.2.4.1 Mode Keamanan
Dilihat dari sisi dimana aspek keamanan tersebut diaplikasikan pada jaringan Bluetooth maka terdapat tiga level keamanan Bluetooth. Adapun level keamanan tersebut antara lain [KLI04]: 1. No security (security level 1), pada level ini perangkat Bluetooth tidak akan pernah menginisiasi prosedur keamanan. Dukungan terhadap otentikasi menjadi
layanan
tambahan.
Level
keamanan
ini
sudah
jarang
diimplementasikan pada perangkat Bluetooth dewasa ini. 2. Service level enforced security (security level 2), merupakan level keamanan yang paling banyak diimplementasikan pada perangkat Bluetooth. Disini, keamanan diimplementasikan pada level layanan sehingga layanan yang menentukan apakah keamanan dibutuhkan atau tidak. Sebagai catatan bahwa pada security level 2 prosedur keamanan diinisiasi oleh layer atas Bluetooth
II-21 setelah koneksi perangkat Bluetooth dibentuk oleh layer bawah. Fitur ini memungkinan pengembang perangkat lunak untuk membuat layanan dan menentukan apakah layanan tersebut membutuhkan sisi keamanan atau tidak. Pada level ini terdapat pembagian perangkat menjadi tiga kategori keamanan, yaitu: a. Trusted devices, adalah perangkat yang telah diberi tanda sebagai perangkat yang telah terotentikasi dan terotorisasi pada database dan dapat diberikan akses tak terbatas terhadap layanan yang disediakan. b. Known untrusted devices, adalah perangkat yang telah terotentikasi dan terotorisasi namun akses terhadap layanan dibatasi. c. Unknown devices, perangkat yang belum terotentikasi dan terotorisasi sehingga akses terhadap layanan yang ditawarkan sangat terbatas. Disamping pembagian kategori keamanan berdasarkan perangkat, terdapat juga pembagian keamanan berdasarkan layanan yang ada. Untuk itu terdapat tiga mode keamanan, yang mana semakin tinggi modenya semakin aman komunikasinya. Adapun ketiga mode tersebut adalah: a. Open services (security mode 1), tanpa kebutuhan keamanan, setiap perangkat dapat mengaksesnya. b. Authentication-only services (security mode 2), akses hanya untuk perangkat terotentikasi. c. Authentication and Authorization services (security mode 3), akses hanya untuk perangkat yang sudah terotentikasi dan terotorisasi. 3. Link level enforced security (security level 3), prosedur keamanan diinisiasi selama pembentukan koneksi
perangkat Bluetooth. Jika inisiasi ini gagal
berarti pembentukan koneksi perangkat juga akan gagal. Pada level ini inisiasi dilakukan oleh layer bawah Bluetooth. Pengembang aplikasi tidak memiliki wewenang untuk menentukan metode keamanan yang akan diterapkan. Mode keamanan ini akan sangat cocok untuk perangkat Bluetooth yang tidak memerlukan konfigurasi dari pengguna karena telah memiliki pengaturan awal dari perusahaan dan merupakan perangkat yang dikeluarkan sebagai pelengkap perangkat lainnya, seperti Bluetooth headsets.
II-22
II.2.4.2 Otentikasi, Enkripsi, dan Otorisasi Bluetooth
Otentikasi adalah proses untuk memastikan bahwa pihak yang diajak berkomunikasi adalah pihak yang benar. Otentikasi menjadi penting karena pada jaringan publik tidak ada jaminan bahwa pihak-pihak yang terlibat pada jaringan tidak akan melakukan kecurangan ataupun tidak kejahatan, sehingga jika pihak tersebut terkoneksi pada perangkat kita maka sesuatu yang tidak diinginkan bisa terjadi. Untuk melakukan otentikasi Bluetooth menggunakan prinsip bonding [KLI04]. Bonding yaitu suatu prosedur yang dipergunakan oleh suatu perangkat Bluetooth untuk mengotentikasi perangkat lain memanfaatkan sebuah kunci yang disebut shared authentication key. Jika perangkat yang akan berkomunikasi belum memiliki kunci ini maka kunci ini akan dibangkitkan pada awal komunikasi, jika tidak proses bonding tidak akan selesai. Proses pembangkitan shared authentication key disebut proses pairing. Ketika proses pairing ini telah selesai maka perangkat akan menyimpan kunci yang dihasilkan untuk keperluan komunikasi selanjutnya. Selama kunci ini disimpan oleh masing-masing perangkat maka perangkat tersebut akan tetap terotentikasi satu sama lain, sehingga setiap akan berkomunikasi pada masa akan datang tidak diperlukan lagi proses pairing. Proses pairing melibatkan dua proses utama yaitu: pembentukan kunci inisialisasi (Kinit) dilanjutkan dengan pembentukan kunci penghubung (Klink) [SHA05]. Pada pembentukan kunci inisialisasi diperlukan input berupa alamat dari perangkat Bluetooth (BD_ADDR), kode PIN dan panjangnya serta bilangan random 128 bit (IN_RAND). Selanjutnya dengan menggunakan algoritma E22 akan dibangkitkan Kinit. Proses ini digambarkan seperti Gambar II-14. Pihak yang diajak berkomunikasi akan dikirimi nilai dari IN_RAND dalam bentuk plainteks sehingga dapat membentuk Kinit yang bersesuaian. Setelah Kinit berhasil terbentuk maka selanjutnya akan dilakukan pembentukan kunci penghubung Klink. Klink ini berikutnya akan dipergunakan untuk membentuk kunci enkripsi/dekripsi. Pembentukan Klink memerlukan input berupa BD_ADDR dan bilangan random 128 bit lain (LK_RAND). Dengan mengaplikasikan algoritma E21 sebanyak dua kali pada masing-masing perangkat yang berkomunikasi akan dibentuk Klink. Untuk dapat melakukan hal ini maka masing-masing perangkat harus mempertukarkan nilai LK_RAND yang di-xor-kan dengan Kinit, seperti yang ditunjukan pada Gambar II-15. Ketika Klink telah terbentuk ini berarti proses pairing
II-23 telah selesai dilakukan. Kemudian proses dilanjutkan ke otentitikasi perangkat yang dikenal dengan mutual authentication. Proses ini memerlukan masukan berupa nilai random 128 bit (AU_RAND), Klink, dan BD_ADDR. Nilai AU_RAND akan dikirimkan ke perangkat lain. Kemudian oleh perangkat tersebut akan dihitung nilai 32 bit word yang disebut SRES dengan algoritma E1. Selanjutnya nilai SRES ini akan dikirim kembali ke pada perangkat pasangan. Jika nilai SRES yang diterima dari perangkat lain sama dengan nilai SRES yang dihitung sendiri bearti proses otentikasi berhasil dan sebaliknya otentikasi dianggap gagal, proses ini ditunjukan oleh Gambar II-16.
Gambar II-14 Proses pembentukan Kinit dengan E22
Ketika dua buah perangkat telah terotentikasi satu sama lain, maka layanan enkripsi data dapat diterapkan sepanjang komunikasi dilakukan. Namun sebelumnya, kedua perangkat harus menegosiasikan mode enkripsi dan panjang kunci yang akan digunakan. Terdapat tiga jenis mode enkripsi yang dapat dipilih, yaitu [KLI04]: 1. No encryption, tidak ada enkripsi yang diterapkan terhadap paket yang dikirimkan. 2. Encrypt both point-to-point and broadcast packets, baik paket yang dikirim pada komunikasi point-to-point ataupun broadcast akan dienkripsi. 3. Only encrypt point-to-point packets, hanya paket untuk komunikasi point-topoint yang akan dienkripsi sedangkan paket untuk komunikasi broadcast tidak dienkripsi.
II-24
Master (A)
Broadcasted Messages
Slave (B)
Kinit
Randomize 128bit LK_RANDA
Kinit
Randomize 128bit LK_RANDB
LK _ RANDA ⊕ Kinit
LK _ RANDB ⊕ K init
BD_ADDRB
Klink
E21
LK_RANDB
LK_KB
LK_KA
BD_ADDRA
E21
LK_RANDA
BD_ADDRB
LK_RANDB
BD_ADDRA
LK_RANDA
E21
E21
LK_KA
LK_KB
Klink
Gambar II-15 Pembentukan Klink dengan E21
Gambar II-16 Mutual Authentication menggunakan E1
II-25 Otorisasi adalah proses untuk memberikan ijin kepada perangkat lain untuk mengakses layanan-layanan tertentu yang ditawarkan pada perangkat Bluetooth. Untuk dapat terotorisasi pada perangkat kita maka perangkat lain terlebih dahulu haruslah sudah terotentikasi melalui proses bonding. Jika telah terotorisasi maka suatu perangkat akan diberi atribut trusted, dengan ini maka perangkat tersebut telah dapat mengakses layanan pada perangkat kita sesuai grant yang diberikan. II.2.4.3 Security Manager
Dalam rangka tetap mencatat perangkat-perangkat mana saja yang telah terotorisasi pada suatu perangkat Bluetooth dan level-level otorisasi suatu layanan, maka informasi otorisasi ini haruslah disimpan pada suatu database. Dua buah basis data digunakan untuk melakukan hal ini yaitu untuk perangkat dan untuk layanan. Security manager bertanggung jawab atas akses terhadap informasi yang terdapat di dalam basis data, demikian juga terhadap penyimpanan dan ekstraksi data dari basis data. Oleh karena itu segala pertukaran data dari berbagai layer dan basis data haruslah melalui security manager. Fungsi penting lain dari security manager adalah dalam proses pairing yaitu menangani masukan passkey dan jawaban otorisasi dari pengguna ketika perangkat lain hendak terkoneksi ke suatu perangkat. Security manager juga menyediakan antarmuka bagi pengguna untuk konfigurasi security setting pada perangkat Bluetooth. II.2.4.4 Cracking Bluetooth Security Proses otentikasi pada perangkat Bluetooth memerlukan dilakukannya pertukaran data
dalam bentuk plainteks ke masing-masing perangkat. Kondisi ini sangat tidak menguntungkan karena data yang dipertukarkan tersebut dapat dimanfaatkan untuk melakukan pemecahan kunci enkripsi yang dipergunakan pada komunikasi. Adapun daftar data yang dipertukarkan pada proses pairing dan otentikasi dapat dilihat pada Tabel II-2 [SHA05]: Tabel II-2 Daftar data yang dipertukarkan ketika proses pairing dan otentikasi
#
Sumber
Tujuan
Data
Pangjang
Keterangan
1
Perangkat A Perangkat B IN_RAND
128 bit
Plainteks
2
Perangkat A Perangkat B LK_RANDA
128 bit
Hasil XOR dengan Kinit
II-26
#
Sumber
Tujuan
Data
Pangjang
Keterangan
3
Perangkat B Perangkat A LK_RANDB
128 bit
Hasil XOR dengan Kinit
4
Perangkat A Perangkat B AU_RANDA
128 bit
Plainteks
5
Perangkat B Perangkat A SRES’
32 bit
Plainteks
6
Perangkat A Perangkat B SRES
32 bit
Plainteks
Jika pihak penyerang berhasil menyadap semua data diatas dan pesan terenkripsi yang dipertukarkan pada saat komunikasi maka pihak penyerang akan dapat menembak PIN yang dipergunakan untuk mengenkripsi pesan pada komunikasi tersebut. Hal ini berarti pihak penyerang akan dapat mengetahui pesan apa yang dipertukarkan. Metode untuk pemecahan PIN dapat berbagai macam dimana diawali dengan enumerasi kemungkinan PIN, kemudian dilakukan penerkaan PIN. Dengan mengetahui nilai IN_RAND dan BD_ADDR maka pihak penyerang dapat menjalankan algoritma E22 untuk menemukan nilai Kinit. Nilai Kinit ini dapat dipergunakan untuk men-decode data nomor 2 dan 3 pada Tabel II-2. Hasil decode data ini akan memberikan informasi yang cukup lengkap untuk menentukan nilai Kab. Ketika nilai Kab telah berhasil ditemukan maka pihak penyerang dapat menggunakan empat data terakhir dari Tabel II-2 untuk menemukan PIN dengan cara menghitung SRES dan membandingkannya dengan data nomor 5 dan 7 pada Tabel II-2. Flow chart dari keseluruhan proses untuk memecahkan PIN dari suatu perangkat Bluetooth dapat dilihat pada Lampiran-B.