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
[email protected]
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.
PENDAHULUAN
Pada 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 satusama lain lewat video-call, dan akhirnya ditambahkan
Makalah IF3058 Kriptografi– Sem. II Tahun 2010/2011
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.
DASAR TEORI
2.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
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.
PROTOKOL SIP
Awalnya akan saya tampilkan bagaimana protocol SIP dan kelemahannya dari segi autentikasi.
\
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
Makalah IF3058 Kriptografi– Sem. II Tahun 2010/2011
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. User2
terjadi dan User1 tidak tahu bagaimana mengautentikasi User yang sedang dia ajak bicara.
cara
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. SIP Statefull Proxy2
Invite,Ru2
User2
Rp2,Ka.b(Ru2)
Ka.b(Rp2) Ok
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 ResponseChallenge SIP Statefull Proxy2
invite
User3
ok
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
Makalah IF3058 Kriptografi– Sem. II Tahun 2010/2011
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 responsechallenge.
Sesi 1 User3
Invite,Ru2
User2
SIP Statefull Proxy2
SSP2,U2
KDC
Ka.kdc(Ka.b),Kb.kdc( Ka.b)
Rp2, Ka.b(Ru2)
Sesi 2 User2
Invite,Rp2
Invite,SSP2,Kb.kdc( Ka.b)
Rp3, Ka.b(Rp2) Sesi 1
Ok
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. PEMAKAIAN PROTOKOL NEEDHAMSCHROEDER PADA PROTOKOL AUTENTIKASI PADA SIP 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. SIP Statefull Proxy2
R1,SSP2,U2
KDC
Ka.kdc(R1,Ka.b,Kb. kdc(Ka.b))
User2 Invite,Ka.b(R2),Kb.k dc(Ka.b)
Ka.b(R2-1,R3)
Makalah IF3058 Kriptografi– Sem. II Tahun 2010/2011
SIP Statefull Proxy2
Ka.b(R3-1)
User2 SIP Statefull Proxy2
Ok
Invite,Ka.c(R2),Kc.k dc(Ka.c)
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 manin-the-middle, dan melakukan metode berikut: SIP Statefull Proxy2
R1,SSP2,U2
User3
R1,SSP2,U3
User3
User3
Ka.c(R2-1,R3)
Ka.c(R3-1) Ok
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
KDC R1,SSP2,U2 + macKa.kdc
KDC Ka.kdc(R1,Ka.b,Kb. kdc(Ka.b))+macKa.kdc
Makalah IF3058 Kriptografi– Sem. II Tahun 2010/2011
KDC
Ka.kdc(R1,Ka.c,Kc.k dc(Ka.b))
SIP Statefull Proxy2
User2 Invite,Ka.b(R2),Kb.k dc(Ka.b) +mac-Ka.b
PERNYATAAN
Ka.b(R2-1,R3) + mac-Ka.b
Dengan 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
Ka.b(R3-1) + macKa.b
Ok Muharram Huda W. / 13508033
gambar 8: Penambahan MAC pada protokol yang telah diusulkan Pada sistem protokol diatas, serangan man-in-themiddle 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.
KESIMPULAN
Protokol 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.
REFERENSI -
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
Makalah IF3058 Kriptografi– Sem. II Tahun 2010/2011