Penggunaan MAC untuk Authentikasi pada SIP (Session
Initiation Protocol) dengan pendekatan Needham Schroeder
Protocol
Muharram Huda Widaseta
NIM 13508033
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
hyouda@students.itb.ac.id
Abstract—Pada perkembangan tentang transfer data
multimedia, kita akan bertemu dengan berbagai permasalahan dan kondisi yang membuat kita untuk melakukan perkembangan dalam konektivitas, akurasi, autentikasi, kecepatan, dan lain-lain.
Yang akan dibahas pada paper ini adalah tentang autentikasi antara klien yang melakukan request ke server, server ke sesame server, dan server ke klien yang dituju. Autentikasi adalah salah satu bagian dalam suatu protokol jaringan, dan protokol secara keseuluruhan yang akan dibahas adalah SIP (Session initiation Protocol), protokol yang paling banyak dipakai untuk melakukan transfer data multimedia.
Autentikasi dilakukan pertama kali saat client yang merequest ingin mendapatkan bahwa dia sedang berkomunikasi dengan orang yang dia inginkan. SIP hanya menyediakan protokol untuk mengkoneksikan dengan menggunakan register dan ACK. Pada paper ini akan dijelaskan penggunaan protokol autentikasi Needham Schroeder, dengan ditambahkan MAC sebagai prevensi untuk man-in-the middle-atttack.
Index Terms—protokol, SIP, MAC, autentikasi
1.
P
ENDAHULUANPada zaman modern ini, kita ingin semua serba instan, mudah, dan murah. Pada perkembangan teknologi kita telah mengetahui tentang telepon, lalu berkembang menjadi mobile phone, lalu kedepannya akan menjadi VOIP(Voice Over Internet Protocol), dimana suara bukan lagi ditransfer dengan analog, tapi dengan biner 0-1 yang dikirim lewat kabel data.
Lalu kita juga mengenal adanya text messaging, dimana awalnya melewati kantor pos ditulis tangan, diketik, lalu dikirim lewat jaringan. Begitu juga gambar yang awalnya hanya hitam putih broadcast, lalu layar warna, lalu ditambahkan dengan suara pada pengiriman, lalu bukan lagi broadcast, bisa unicast dan bisa ada timbal balik.
Tercetuslah ide, awalnya dengan mempermudah dan memperinstant pesan dengan adanya instant messaging yang menggunakan jaringan data network internet, yang lalu ditambahkan kemampuan untuk berkomunikasi lewat suara, ditambahkan kemampuan untuk saling melihat satu-sama lain lewat video-call, dan akhirnya ditambahkan
kemampuan untuk melakukan conference, multi user bisa berhubungan dengan multi user lainnya.
Banyak protokol transfer data yang bisa melayani koneksi dengan berbagai fitur diatas, contohnya adalah BICC, H.323, MGCP, MEGACO, dan SIP. Yang paling banyak digunakan adalah SIP (Session Initiation Protocol). SIP ini memiliki kelemahan jika dia diserang dengan man-in-the-middle attack karena sulit mengautentikasi tujuan dengan pesan yang minim.
2.
D
ASART
EORI2.1. SIP
SIP singkatan dari Session Inititation Protocol. Protocol ini mengurusi inisiasi, modifikasi, dan terminasi sesi-sesi multimedia, contohnya adalah video dan audio. SIP ini berbasis teks/string seperti HTTP dan SMTP.
SIP adalah protokol peer-to-peer yang mengandung arti bahwa fungsi-fungsi call routing dan session management didistribusikan ke semua node (termasuk endpoint dan server) di dalam jaringan SIP. Hal ini berbeda dengan sistem telepon konvensional di mana terminal-terminal telepon sangat bergantung kepada perangkat switching yang terpusat.
SIP memiliki fungsi-fungsi yang didefinisikan sebagai berikut:
• User location SIP menyediakan kemampuan untuk menemukan lokasi pengguna akhir yang bermaksud akan membangun sebuah sesi atau mengirimkan sebuah permintaan
• User capabilities SIP memungkinkan determinasi kemampuan media dari perangkat yang terlibat di dalam sesi
• User availability SIP memungkinkan determinasi keinginan pengguna untuk melakukan komunikasi
• Session setup SIP memungkinkan modifikasi, transfer, dan terminasi dari sebuah sesi aktif
Jaringan SIP terdiri dari elemen-elemen sebagai berikut: • User Agent (UA) berfungsi untuk menginisiasi atau merespon transaksi SIP. Sebuah UA dapat bertindak sebagai klien atau server.
• User Agent Client (UAC) berfungsi untuk menginisiasi permintaan SIP dan menerima respon SIP
• User Agent Server (UAS) berfungsi untuk menerima permintaan SIP dan mengirimkan kembali respon SIP • SIP Proxy adalah entitas yang berfungsi untuk proses routing dan meneruskan permintaan SIP kepada UAS atau proxy lain atas permintaan UAC
• Redirect Server adalah sebuah UAS yang membangkitkan respon SIP terhadap permintaan yang diterima, memungkinkan UAC secara langsung menghubungi Uniform Resource Identifiers (URI) • Registrar Server adalah sebuah UAS yang menerima permintaan registrasi SIP dan memperbaharui informasi dari pesan tersebut ke dalam database lokasi
• Back-to-Back User Agent (B2BUA) adalah entitas yang berfungsi untuk memproses permintaan SIP yang diterima di mana B2BUA akan bertindak sebagai UAC, membangkitkan kembali permintaan SIP dan mengirimkannya ke dalam jaringan
2.2. Protokol Autentikasi Needham Schroeder
\
gambar 1: Protokol Needham Schroeder
Protocol Needham Schroeder adalah protocol yang menangani autentikasi user. Protocol ini memakai pendekatan Challenge and response, dan memakai mediasi KDC (Key Distribution Center) sebagai pembangkit kuncinya.
Challenge response adalah salah satu cara untuk menangani autentikasi user, dengan menantang user lain untuk mengembalikan pesan tantangan (challenge,R) dengan terenkripsi sesuai kunci yang sudah disepakati sebelumnya.
Cara kerja protocol ini adalah awalnya missal ada alice (A) sedang ingin berhubungan dengan bob (B) dan mereka perlu untuk mengautentikasi satu sama lain, maka Alice awalnya mengirim tantangan berupa Ra1, sekaligus data dirinya dan data bob yang akan dia hubungi ke KDC, untuk meminta kunci yang akan dia gunakan bersama bob (Ka.b).
Lalu KDC membalas tantangan yang telah dikirim dan kunci antara bob dan alice yang telah degenerate oleh KDC, kedua pesan tersebut dienkripsi dengan menggunakan kunci bersama antara alice dan KDC (Ka.kdc). Didalamnya termasuk juga identitas Alice, beserta kunci tadi, yang telah dienkripsi menggunakan kunci bersama antara bob dan kdc (Kb.kdc), pesan
terenkripsi ada bersama 2 pesan lain, dan dienkripsi bersama dengan kunci antara alice dan KDC.
Lalu alice mulai memberikan pesan pada bob yang berisi tantangan alice pada bob yang dienkripsi dengan kunci yang telah degenerate oleh KDC tadi (Ka.b(Ra2)), bersama dengan pesan data A, dan kunci hasil generate KDC yang dienkripsi dengan kunci bersama antara Bob dan KDC (Kb.kdc(A,Ka.b)).
Setelah itu bob menjawab balasan tantangan alice dengan mengirim Ra2 yang telah dikurangi 1 (jika diubah kedalam angka maka tinggal dikurangi 1, mengurangi 1 secara bit) dan bersama dengan tantangan bob terhadap alice, pesan tersebut dienkripsi dengan kunci bersama alice dan bob (Ka.b(Ra2-1,Rb)). Lalu alice membalas dengan tantangan b yang telah dikurangi 1 (Ka.b(Rb-1)).
3.
P
ROTOKOLSIP
Awalnya akan saya tampilkan bagaimana protocol SIP dan kelemahannya dari segi autentikasi.
gambar 1: Protokol pemanggilan pada SIP
SIP memiliki beberapa pesan utama yaitu :- Register : digunakan UA untuk mengidentifikasi IP address dan alamat URL yang digunakan untuk menerima panggilan
- Invite : digunakan untuk membuat sesi antar UA - ACK : untuk konfirmasi pertukaran pesan berhasil - Cancel : memberhentikan permintaan yang masih
belum dilaksanakan
- Bye : memberhentikan 2 user yang sdang terhubung
- Options : meminta informasi tentang keterbisaan untuk menerima panggilan dari suatu user, tanpa melakukan panggilan
- PRACK (Provisional Response
ACKnowledgement) : meningkatkan realibilitas jaringan dengan memberikan kode-kode respon tentang jaringan tersebut.
Setelah ada gambar protocol diatas dan penjelasan tentang pesan yang dikirim saat protocol dijalankan, saya akan mengulas bagaimana proses pemanggilan pada SIP, beserta bagaiamana cara SIP mengenali yang mana yang akan dia koneksikan saat sedang melakukan pemanggilan.
Awalnya user1 ingin menelepon user2, lalu user1 ini mengirim invite ke stateful proxy1, proxy inilah yang menyimpan sesi dari user1 ini, yang akan memberitahu paket data yang akan dikirim adalah dari user ini, invite berisi alamat yang ingin dituju, dan alamat asal. Pada metode autentikasi asli SIP hanya itu yang digunakan. Proxy stateful1 melakukan pengecekan berkala pada user1 jika sewaktu-waktu terjadi offline. Setelah itu proxy ini akan meneruskan ke proxy stateless untuk dicari, nomer yang ingin dituju itu ada dimana, lalu meneruskan ke lokasi tempat user2 berada. Atau Proxy Stateless ini akan melakukan redirect ke server lain, karena nomor yang dituju ada pada data server lain.
Saat sampai ke user2, dia akan melewati proxy yang telah menyimpan data bahwa dia adalah proxy statefull dari user 2, setelah itu proxy akan langsung berhubungan dengan proxy statefull1, dan proxy itu menerima invite dari stateless proxy. Saat user2 menerima invite, user2 akan berdering, dan pada saat itu juga si user2 mengirim tanda bahwa dia ada dan dia berdering, kepada proxystatefull2, lalu ke proxy statefull1, lalu menuju ke user1 dan memberitahu bahwa user2 sedang berdering.
Saat user2 mengangkat ato menutup telpon, info tersebut bakal diterusin dengan jalan seperti diatas. Setelah ada pengiriman tersebut, dikirim ACK pada setiap node rute tadi untuk menandakan bahwa ok sudah tersampaikan sampai node berikutnya. Ok digunakan saat menerima telepon, bye digunakan untuk menutup telepon.
3.1. Serangan Man-In-The-Middle terhadap SIP
Misalnya kita ambil antara stateful proxy2 dengan user2 yang dipotong oleh user3.
gambar 3: Protokol autentikasi pada SIP
User3 misalnya bisa mengambil data invite dari SIP statefull Proxy2, maka si User3 akan bisa hanya menuliskan ok kepada proxy tersebut. Dan setelah itu User1 yang berharap terkoneksi dengan User2 akan terkoneksi dengan User3. Dengan cara ini, hal ini bias
terjadi dan User1 tidak tahu bagaimana cara mengautentikasi User yang sedang dia ajak bicara.
3.2. Penambahan Sistem Challenge-Response pada
Autentikasi SIP
Setelah kita tahu bahaya dari system Autentikasi yang tidak ada pengaman, maka saya contohkan bagaimana dengan sedikit perbaikan, yaitu dengan menambahkan system challenge-response pada metode autentikasi protocol, serangan seperti tadi tidak akan terjadi.
gambar 4: Protokol autentikasi challenge
response
pada gambar diatas, SSP2(SIP Statefull Proxy2) mengirimkan Invite dan tantangan kepada U2(User2). Awalnya mereka mempunyai kunci bersama untuk mendekripsi pesan terenkripsi (Ka.b). Lalu U2 mengirimkan hasil enkripsi tantangan Ru2 dengan kunci Ka.b dan mengirim tantangan Rp2 kepada SSP2. Proxy yang sudah mengirim tantangan tadi melakukan dekripsi terhadap Ka.b(Ru2) dengan menggunakan kunci Ka.b, dan mengetahui bahwa SSP2 memang benar berhubungan dengan U2. Nah dengan SSP2 mengirim kembali Ka.b(Rp2), dan U2 melakukan dekripsi dengan kunci Ka.b, U2 juga tahu bahwa dia sedang mengirim data ke SSP2. Dengan ini kedua belah pihak yakin bahwa mereka berdua sedang berhubungan dengan pihak yang benar.
3.3. Serangan Reflection Attack pada
Response-Challenge
Pada kenyataannya hal yang aman, memang tidak ada, masih ada saja cara untuk mengakali suatu system keamanan. Salah satunya adalah serangan reflection attack, yang bias menembus keamanan response-challenge. SIP Statefull Proxy2 User2 User3 invite ok SIP Statefull Proxy2 User2 Invite,Ru2 Rp2,Ka.b(Ru2) Ka.b(Rp2) Ok
gambar 5: Serangan Reflection Attack
Pada gambar diatas awalnya user3 ingin bertindak sebagai proxy agar bias menyadap semua pembicaraan . awalnya user3 membuat 2 sesi, di sesi 1 user3 mengirim invite, dan mengirim Ru2. Dan user2 mengembalikan Ka.b(Ru2) beserta Rp2 untuk mengidentifikasi proxy yang dia hubungi. Lalu user 3 mengirim invite pada sesi 2 beserta Rp2 untuk mengetahui apa enkripsi dari Rp2, yang lalu User2 dengan otomatis akan mengenkripsi dan mengirim hasil enkripsi tersebut ke User3. User3 lalu memakai hasil enkripsi tersebut untuk mengelabuhi bahwa dia tahu kuncinya untuk mengenkripsi, padahal user3 tidak tahu sama sekali dan hanya memanfaatkan sesi 2 untuk memberikan tantangan dari User2 Rp2 untuk dienkripsi dirinya sendiri. Dengan hal ini, pada sesi 1 user3 berhasil menyadap user2 dan mengelabuhinya.
3.4. Penambahan kunci terpusat pada Autentikasi
SIP
Untuk mengatasi hal diatas, maka dibentuklah system kunci terpusat, dimana kunci degenerate oleh 1 pihak yaitu KDC(Key Distribution Center), sehingga tidak lagi kunci bisa dipakai untuk refleksi. Dan setiap UA mempnyai kunci bersama sendiri dengan KDC.
gambar 6: Serangan Reflection Attack
pada gambar diatas, awalnya SSP2 harus mengirimkan kunci siapa dengan siapa yang akan degenerate, lalu KDC memberikan kunci Ka.b untuk digunakan berkomunikasi, dan mengenkripsinya masing-masing dengan kunci KDC dengan subjek yang akan berhubungan. Hasil enkripsi tersebut dikirim ke SSP2, dan SSP2 mengirim invite dan kunci yang didapat dan dienkripsi KDC tadi.
4.
P
EMAKAIANP
ROTOKOLN
EEDHAM-S
CHROEDER PADAP
ROTOKOLA
UTENTIKASI PADASIP
Setelah kita tahu bahwa dengan KDC, kita bisa menjauhi reflection attack, maka sudah pasti ada yang bisa menyerang lagi pada protokol tersebut, karena itu saya ingin mengusulkan untuk memakai protokol Needham-Schroeder pada proses autentikasi SIP.
User3 User2 Invite,Ru2 Rp2, Ka.b(Ru2) Invite,Rp2 Sesi 1 Sesi 2 Rp3, Ka.b(Rp2) Sesi 1 SIP Statefull Proxy2 KDC R1,SSP2,U2 Ka.kdc(R1,Ka.b,Kb. kdc(Ka.b)) User2 Invite,Ka.b(R2),Kb.k dc(Ka.b) Ka.b(R2-1,R3) Ka.b(Rp2) Ok SSP2,U2 SIP Statefull Proxy2 User2 Ka.kdc(Ka.b),Kb.kdc( Ka.b) KDC Invite,SSP2,Kb.kdc( Ka.b) Ok
gambar 7: Protokol Autentikasi SIP dengan
Metode protokol Needham-Schroeder
Awalnya SPP2 mengirim challenge dia terhadap KDC R1, untuk mengecek KDC, data SSP2 dan U2, pihak yang ingin melakukan koneksi, untuk meminta kunci bersama yang akan digunakan untuk autentikasi. Lalu KDC mengirim kembali tantangan SPP2 R1, kunci yang akan digunakan bersama U2 Ka.b. disertakan juga kunci Ka.b yang dienkripsi dengan kunci U2 dengan KDC Kb.kdc(Ka.b), semua data tersebut dienkripsi lagi dengan kunci SSP2 dan KDC Ka.kdc.
Setelah tantangan dicek dan menerima kunci Ka.b, SSP2 mengirim invite, tantangan kepada U2 yang dienkripsi dengan kunci yang diterima dari KDC Ka.b(R2), dan kunci yang telah diterima tadi yang dienkripsi dengan kunci antara U2 dan KDC Kb.kdc(Ka.b). setelah itu, U2 yang telah menerima data tersebut, mendekripsi Kb.kdc(Ka.b) sehingga mendapatkan Ka.b, lalu memakai Ka.b untuk mendekripsi Ka.b(R2), dan mendapatkan tantangan berupa R2.
U2 mengirim R2 yang telah dikurangi 1 dalam bit, dan tantangan R3 yang keduanya dienkripsi dengan Ka.b. lalu SPP2 mendekripsi pesan tadi dengan kunci Ka.b dan mendapati bahwa yang berhubungan dengannya adalah benar U2, lalu SPP2 mengirim lagi R3 yang telah didapati dari hasil dekripsi data sebelumnya dan R3 tersebut dikurangi 1 dalam bit. Kenapa semua challenge harus dikurangi 1 bit? Kenapa tidak mengirim kembali R2 dan R3 seperti biasa? Pada metode sebelumnya, R2 dan R3 dikirim dan pihak yang ditantang harus mengembalikan R2 dan R3 sebagai bentuk enkripsi dengan kunci yang dipakai antara kedua belah pihak. Hal itu akan mencegah pencurian kunci bersama, misalkan saja ada User3 yang bisa mengambil R2 dan hasil enkripsi dari R2, maka User3 dapat mengambil kunci jika User3 tahu algoritma enkripsi apa yang digunakan, yang nantinya bisa digunakan untuk serangan man-in-the-middle.
4.1. Simulasi Penyerangan yang Bisa Dilakukan
pada Protokol Usulan
Misalnya saja ada User3(U3), yang bisa melakukan man-in-the-middle, dan melakukan metode berikut:
gambar 8: Simulasi serangan terhadap protokol
autentikasi SIP yang sudah ditambahkan
Needham-Schroeder
Pada gambar diatas kita bisa tahu lubang keamanan pada autentikasi jika hanya menambahkan Needham Schroeder pada Protokol autentikasi SIP. Misalkan saja U3 bisa melakukan hal diatas, yaitu merubah pesan dari proxy, yang tadinya berupa R1,SSP2,U2 menjadi R1,SSP2,U3. Yang menyebabkan SSP2 bisa dikecoh oleh U3 untuk berkomunikasi dengannya dengan hasil kunci generate dari KDC. Serangan ini bisa untuk tujuan lain, selain memaksa agar berhubungan, U3 juga bisa membuat koneksi dengan U2 yang memang ingin dikoneksikan dengan membuat sesi berbeda dari sesi SSP2 dengan U3, sehingga SSP2 percaya dia hanya meneruskan hubungan dengan U2, dalam hal ini U3 melakukan penyadapan.
4.2. Pemberian MAC (Message Authetication Code)
pada Protokol Usulan
Misalkan saja ada U3 yang bisa melakukan hal-hal tersebut, maka saya akan menambahkan kemampuan pada protokol usulan saya dengan menambahkan MAC pada setiap pesan yang dikirim, dan terlepas dari fungsi hash yang sudah diberikan pada layer-layer bawahnya misalnya data link.
Dengan menambahkan MAC, pada setiap pihak akan tahu bahwa dengan kunci yang sudah ada, dalam hal ini bisa memakai kunci yang sudah degenerate dengan dan oleh KDC. Dengan begitu, protokol akan menjadi seperti ini: SIP Statefull Proxy2 Ka.b(R3-1) Ok User2 SIP Statefull Proxy2 R1,SSP2,U2 KDC User3 User3 R1,SSP2,U3 Ka.kdc(R1,Ka.c,Kc.k dc(Ka.b)) KDC SIP Statefull Proxy2 User3 Invite,Ka.c(R2),Kc.k dc(Ka.c) Ka.c(R2-1,R3) Ka.c(R3-1) Ok SIP Statefull Proxy2 KDC R1,SSP2,U2 + mac-Ka.kdc Ka.kdc(R1,Ka.b,Kb. kdc(Ka.b))+mac-Ka.kdc
gambar 8: Penambahan MAC pada protokol
yang telah diusulkan
Pada sistem protokol diatas, serangan man-in-the-middle tidak lagi berfungsi, karena pada setiap data kiriman, diberi MAC untuk menjaga integritas data. Mungkin proses ini akan membutuhkan waktu lebih lama jika dibanding protokol autentikasi asli SIP, tapi jika kita melihat bagaimana keteramanan informasi sangat penting pada zaman modern ini, maka harga yang dibayar cukup pantas.
5.
K
ESIMPULANProtokol Autentikasi SIP sangat rentan dan memang sangat sering diserang dengan Man-in-the-middle, untuk itu, saya mencoba memberikan beberapa pendekatan dengan challenge-response dan kunci terpusat, dan menunjukkan beberapa kelemahannya. Lalu dengan cara yang diusulkan yaitu dengan protokol autentikasi Needham Schroeder, dapat menambal lubang-lubang keamanan tersebut, dan dengan diberikan MAC pada setiap pesan pada pesan protokol, akan memperbaiki lubang yang ada pada protokol Needham Schroeder.
6.
R
EFERENSI - http://en.wikipedia.org/wiki/Voip - http://en.wikipedia.org/wiki/Session_Initiation_Pro tocol - http://en.wikipedia.org/wiki/Needham -Schroeder_protocol- Tanenbaum,Andrew.2007. Distributed System : Principles and Paradigm Second Edition. Vrije Univesiteit, Amsterdam
P
ERNYATAANDengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi.
Bandung, 23 Maret 2011 ttd Muharram Huda W. / 13508033 SIP Statefull Proxy2 User2 Invite,Ka.b(R2),Kb.k dc(Ka.b) +mac-Ka.b Ka.b(R2-1,R3) + mac-Ka.b Ka.b(R3-1) + mac-Ka.b Ok