bab ii dasar teori - digilib.itb.ac.id · definisi kriptografi, sistem kriptografi dan protokol...
TRANSCRIPT
II-1
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-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 Diffie-
Hellman 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 kunci-
nirsimetri 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 sehari-
hari.
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)
{ }( ) { } { } { }128128'822 1,016,...,2,11,01,0: →××
NE .................(II-6)
2. Rumus pembentukan kunci penghubung (E21)
{ } { } { }1284812821 1,01,01,0: →×E ...................................................(II-7)
II-8
3. Rumus untuk mutual authentication (E1)
{ } { } { } { } { }9632481281281 1,01,01,01,01,0: ×→××E .................(II-8)
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 masing-
masing 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)) .................................................................................... (II-
10)
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
nmcmE eiiie mod)( ≡= ........................................................................... (II-12)
II-10
Sedangkan untuk dekripsi digunakan rumus:
ncmcD diiid mod)( == ........................................................................... (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 sudah menyatakan bahwa pesan tersebut
ditandatangani.
2. Menghitung nilai hash pesan
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 Deskripsi
Application 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
Service Discovery
Protocol (SDP)
Bagian ini berfungsi untuk menentukan hal-hal apa saja
yang perlu dilakukan oleh Bluetooth client (slave) untuk
menemukan suatu layanan pada Bluetooth server (master)
berdasarkan karakteristiknya
Wireless Application
Protocol (WAP)
Protokol ini merupakan protokol standar untuk mengakses
internet pada perangkat nirkabel
OBEX Protocol Protokol ini digunakan sebagai mekanisme pertukaran
data antar perangkat Bluetooth
RFCOMM Bagian ini menangani emulasi serial port yang akan
digunakan untuk aplikasi.
L2CAP
Bagian ini menyediakan layanan data bersifat connection-
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
Link Manager Protocol
Bagian ini berfungsi untuk pembangunan koneksi antara
perangkat Bluetooth. Pembangunan koneksi ini meliputi
juga negosiasi ukuran paket yang digunakan untuk
transmisi data dan status dari perangkat Bluetooth di
dalam piconet
Baseband and Link
Controller
Bagian ini berfungsi untuk memungkinkan terbentuknya
koneksi fisik frekuensi radio antar perangkat Bluetooth
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-to-
point yang akan dienkripsi sedangkan paket untuk komunikasi broadcast tidak
dienkripsi.
II-24
LK_KA
Randomize 128bit
LK_RANDA
Randomize 128bit
LK_RANDB
E21 E21 E21 E21
initA KRANDLK ⊕_
initB KRANDLK ⊕_
Kinit Kinit
BroadcastedMessages
Master(A)
Slave(B)
LK_R
AN
DA
BD
_AD
DR
A
BD
_AD
DR
B
LK_R
AN
DB
LK_R
AN
DA
BD
_AD
DR
A
BD
_AD
DR
B
LK_R
AN
DB
LK_KB
Klink
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.