Jabber Protokol

A.    PENGERTIAN UMUM JABBER
Jabber adalah sebuah protokol XML yang terbuka untuk pertukaran message dan  presence yang real-time antara dua user di dalam jaringan Jabber. Banyak kegunaan  teknologi Jabber, pada awalnya teknologi Jabber bersifat asynchronous, platform IM yang dapat digunakan secara luas dan jaringan IM berdasarkan fungsinya hampir sama dengan  sistem IM yang resmi seperti AOL Instant Messaging (AIM) dan Yahoo Instant Messaging
Sebagai usaha menjadikan Jabber sebagai protokol standar Instant Messaging, pada  Juni 2000 komunitas Jabber telah mempublikasikan protokol tersebut sebagai Request for  Comment (RFC) pada Internet Engineering Task Force (IETF) sebagai bagian dari standar  Instant Messaging and Presence Protocol (IMPP), tetapi IMPP ini tidak berjalan sukses.  Pada bulan Mei 2001, Jabber Community dan Jabber Inc. membuat Jabber Software Foundation untuk menyediakan asisten organisasi secara langsung (direct organizational assistance) dan asisten teknis secara tidak langsung terhadap komunitas Jabber. Pada tahun 2002, Internet Engineering Steering Group (IESG) menyetujui formasi Extensible Messaging and Presence Protocol Working Group (XMPP) dengan Internet Engineering Task Force (IETF). Ruang lingkup working group adalah untuk mengeksplorasi dan dimana protokol tersebut digunakan, memodifikasi protokol yang sudah ada agar dapat memenuhi RFC 2799 seperti persyaratan yang ditentukan dalam spesifikasi Common Presence and Instant Messaging (CPIM). Fokus utama working groupadalah membuat XML stream termasuk stream pada level security dan autentikasi, elemen data dan namespace yang dibutuhkan untuk mencapai dasar IM dan Presence[2].XMPP working group menerbitkan XMPP Core Internet-Draft sebagai dokumen yang menggambarkan fitur-fitur utama Extensible Messaging dan protokol Presence. Makalah XMPP ini memuat protokol Jabber yang bekerja pada sistem keamanan client-server dan server-server.

B.     TINJAUAN TEKNOLOGI PROTOKOL JABBER
Jabber terkenal dengan arsitektur client-servernya, client Jabber dapat berkomunikasi  dengan server Jabber pada domain Jabber mereka. Domain Jabber memiliki keuntungan yaitu kemampuannya dalam memisahkan zona komunikasi, yang ditangani oleh server Jabber yang berbeda, tidak seperti kebanyakan sistem IM lainnya yang menggunakan satu server terpusat untuk seluruh zona komunikasI. Gambar dibawah menunjukkan stream Jabber client-server.
Aliran Client-server jabber
XMPP merupakan protokol hasil formalisasi IETF dari streaming protokol standar XML, yang dikembangkan oleh Jabber Community. Protokol ini menghadirkan fitur lengkap untuk Instant Messaging dan Presence di atas data transport layer yang bersifat dedicated. Protokol ini telah stabil sejak tahun 1999. Jabber/XMPP adalah sebuah protokol yang telah didokumentasikan dengan baik dari seluruh protokol yang ada dan mudah untuk dipahami.
Teknologi dasar dari XMPP menyangkut proses negosiasi XML stream antara client dan server, dengan menggunakan Simple Autentication and Security Layer (SASL) dan Transport Layer Security (TLS) untuk mengamankan pengiriman datanya. Setelah melakukan autentikasi, selanjutnya pengguna dapat mengirimkan fragmen-fragmen XML sebagai hasil dari menjalankan fungsi-fungsi IM, seperti mengirimkan pesan, chat dengan teman, merubah status presence, mengatur contact list, bergabung dengan chatroom, dan lain-lain. Server kemudian akan mengirimkan message kepada server lain melalui XML stream yang telah melalui proses negosiasi, berhubungan dengan syarat-syarat security untuk kemudian mencapai lokasi responden pengguna. XMPP kompatibel dengan teknologi Jabber yang sudah ada, sehingga menjamin interoperabilitas dengan jaringan yang ada saat ini.


Aliran data pada jabber protocol
Cara Jabber/XMPP bekerja sering digambarkan seperti sebuah router XML artinya jika pesan dikirim dalam bentuk paket XML dan route-nya (pesan tersebut akan dikirim ke lokasi yang berdasar content-nya). Jabber di desain serupa dengan HTTP dan email karena protokol ini relatif baru sampai saat ini Jabber memiliki sistem keamanan yang lebih baik. Jabber merupakan sistem jaringan terdistribusi yang menggunakan konektivitas
Domain Name Service (DNS), Jabber mempunyai sebuah fasilitas dial-back yang tidak sama dengan email untuk menempatkan alamat, artinya seseorang yang melakukan spamming pada sebuah server dengan jumlah data yang besar secara cepat. Password dapat disimpan dan di autentikasi dengan berbagai cara termasuk menggunakan PGP/SSL. Saat ini tersedia banyak dokumentasi tentang komunikasi Jabber/XMPP dan protokol yang hanya sekali untuk didokumentasi secara keseluruhan. Jabber support terhadap sejumlah skema autentikasi dari algoritma Hashing plaintext dan standard SASL.
Dengan menggunakan Jabber, komunikasi client ke server melalui SSL dan beberapa client menggunakan PGP berdasarkan software enkripsi. Sistem Jabber dapat juga terhubung ke sistem lainnya dengan sesuatu yang disebut transport yang berdasarkan client emulationdan dapat dijalankan pada server Jabber berdasarkan interoperabilitas antar protokol. Ditinjau dari sistem keamanan, pada protokol Jabber terjadi client bugs semacam buffer overflow yang berpengaruh pada versi khusus dari aplikasi yang secara langsung tidak dipengaruhi oleh virus atau hacker.

C.    ARSITEKTUR JABBER
a.      Model Client-Server
Jabber menggunakan arsitektur client-server, bukan arsitektur langsung peer-to-peer seperti yang digunakan oleh sistem messaging lainnya. Akibatnya, seluruh data Jabber dikirim dari satu client ke client lainnya harus melewati minimal satu server Jabber. Client Jabber terhubung pada sebuah server Jabber pada TCP melalui port 5222. Koneksi ini selalu on untuk session client yang berjalan pada server, artinya client tidak dapat 5mengumpulkan pesan sebagai sebuah email client. Sebuah pesan diharapkan tersedia pada client dan dengan segera diharapkan client messenger sepanjang client masih terhubung. Server akan dapat menjajaki (tracking) apakah client masih online atau tidak, dan ketika client dalam kondisi off-line akan menyimpan beberapa pesan yang telah dikirim kepada client untuk menyediakan kapan dia akan terhubung lagi. Kekhasan yang dimiliki oleh protokol Jabber antara lain modular server dan simple client yang penjelasannya sebagai berikut :
1. Modular server
Server Jabber memiliki tiga peranan utama yaitu :
         Menangani koneksi client dan berkomunikasi secara langsung dengan client Jabber
         Berkomunikasi dengan server Jabber yang lain
         Mengkoordinasikan beragam komponen server yang diasosiasikan dengan server
Server Jabber di desain modular, dengan paket kode internal yang khusus sehingga dapat menangani fungsionalitasnya seperti registrasi, auntentikasi, present, contact list,penyimpanan pesan yang berstatus off-line dan sebagainya. Selain itu server Jabber dapat dikembangkan dengan komponen eksternal yang memungkinkan administrator serveruntuk mensuplemen server pusat dengan layanan tambahan semacam gerbang untuk sistem messaging lainnya.
      2. Simple client
Satu kriteria desain sistem Jabber bahwa ia harus memiliki kemampuan untuk mendukung client yang sederhana misalnya koneksi telnet pada port yang benar. Dalam hal ini tentu saja arsitektur Jabber memberikan sedikit batasan pada client.
Task-task pada client Jabber harus dapat mengenal dan melengkapi :
·         Komunikasi dengan server Jabber melalui soket TCP
·         Melakukan parsing dan interpretasi XML dengan format yang baik melalui XML stream
·         Memahami tipe data utama Jabber (message, presence dan iq)
Keuntungan di dalam Jabber adalah dapat memindahkan kompleksitas dari client ke server.Secara praktis, banyak fungsi yang low-level pada client seperti proses parsing XML dan memahami tipe data core Jabber yang ditangani oleh library-library client Jabber,memungkinkan client developer untuk fokus pada user interface.

D.    FORMAT DATA XML
Format data XML adalah bagian integral arsitektur Jabber karena sepenuhnya penting sehingga arsitektur secara fundamental dapat dikembangkan dan mampu diekspresikan dengan bentuk data yang terstruktur. Gambar 2.3 menunjukkan model messaging Jabber yang digabungkan dengan 4 elemen utama yaitu :
·          paket XML memuat data yang di marked-up,
·          XML stream yang digunakan untuk transportasi paket XML ,
·          client dan server Jabber yang dapat saling dipertukarkan.

Dengan terhubungnya client pada server, berarti membuka satu jalur ke XML stream dari client ke server, dan server merespon dengan satu jalur XML stream dari server ke client. Selanjutnya masing-masing session melibatkan dua XML stream. Seluruh komunikasi antara client dan server terjadi pada stream ini, contohnya adalah sebagai berikut :

<message from=’jolie@jabber.com/home’ to=’aim@rhymbox.com/work’>
                        <body>Hello, I need to ask you a question !?<body>
</message>

Ketika banyak snippet Jabber yang hanya sangat sederhana, format XML Jabber dapat juga ditingkatkan melalui namespace XML yang telah diatur oleh Jabber Software Foundation dan namespace disesuaikan untuk aplikasi yang khusus. Hal ini yang membuat Jabber menjadi platform yang powerful untuk memilih struktur data yang digunakan  termasuk XML Remote Procedure Calls (XML-RPC), Resource Description Framework Site Summary (RSFSS) dan Scalable Vector Graphics (SVG).

E.     JARINGAN TERDISTRIBUSI
Jaringan terdistribusi dalam hal ini bagaimana sebuah server Jabber dapat  berkomunikasi dengan server Jabber lainnya dan dapat diakses melalui internet.  Masing masing user terhubung pada home server , yang menerima informasi untuk mereka , selanjutnya server akan mentransfer data untuk kepemilikan user. Maka suatu domain dapat jalan pada server jabber. Masing masing fungsi server bebas terhadap yang lainnya, dan di-maintain sendiri didalam daftar user.  User khusus diasosiasikan dengan server yang khusus pula, dan alamat jabber memiliki bentuk yang sama dengan alamat email.  Jaringan yang terdistribusi ini menghasilkan sesuatu yang fleksibel , jaringan yang mampu terkontrol pada server yang memiliki skala yang lebih tinggi dibandingkan monolitik, tetapi dengan syarat bahwa layanan yang terpusat hanya dapat jalan pada vendor IM yang resmi.

F.     KOMPONEN UTAMA PROTOKOL JABBER
Ada tiga komponen utama pada protokol Jabber yang diandalkan dengan mekanisme messaging :
1.      Message
Protokol message pada kenyataannya adalah protokol yang paling sederhana dalam Jabber. Banyak traffic di dalam jaringan Jabber yang termasuk dalam protokol message.Message terdiri dari 4 attribut, dan zero atau beberapa child element.
Attribute dalam message adalah :
to : jenis yang diharapkan oleh pihak penerima pesan
from : jenis pesan yang dikirim
id : sebuah identifier unik yang bersifat opsional dengan tujuan dapat  menjejaki message
type : sebuah spesifikasi opsional dari konteks percakapan sebuah message

Sedangkan atribut pada elemen anak antara lain ;
body : isi tekstual dari message, secara normal termasuk tapi tidak dibutuhkan.
subject : subjek dari message
thread : string acak yang di-generated oleh pengirim, digunakan untuk tracking sebuah thread conversation.
error : deskripsi pesan kesalahan

Versi protokol Jabber XMPP saat ini menggunakan standar yang merepresentasikan seluruh atribut dan elemen anak yang ada pada message protocol[5]. Contoh paket message ditunjukkan seperti berikut :

<message to=’romeo@montague.net’
from=”Juliet@capulet.com/balcony’
type=’chat’>
<subject xml : lang=’en’>
Greeting !
</subject>
<body xml : lang=’en’>
Hello!!
</body>
<thread>e0f92794b9683a38</thread>
</message>

2.      Presence
Protokol ini bertanggung jawab terhadap subscription, persetujuan, dan update  informasi presence dalam komunitas Jabber. Atribut diasosiasikan dengan dengan protokol ini sama seperti pada protocol message, presence memiliki memiliki tipe atribut yang memiliki 7 state sebagai berikut ;
1.  unavailable : client tidak lama tersedia untuk berkomunikasi
2.    subscribe : pengirim mengirimkan request untuk subscribe terhadap presence 8 penerima
3.    subscribed : pengirim yang telah diizinkan terhadap recipient untuk menerima presence mereka.
4.    unsubscribe : subscription request yang telah ditolak atau subscription yang telah di cancel sebelumnya.
5.    probe : request dari client yang presence saat ini
6.    error : pesan kesalahan yang berlangsung berdasarkan pemrosesan atau menyediakan paket presence yang telah dikirim sebelumnya.
Contoh paket presence adalah sebagai berikut :

<presence>
 from=’juliet@capulet.com/balcony’
 to=’romeo@montague.net/orchard’>
<show> away </show>
<status> be right back </status>
<priority> 0 </priority>
</presence>

Paket presence dapat memuat namespace yang sesuai dengan elemen anak yang tidak menganggu struktur namespace dan tag yang tersedia.
3.      Info/Query
Protokol IQ adalah protokol Jabber yang terakhir dan yang paling peduli dibandingkan message dan protokol presence . IQ adalah protokol request-response yang umum sehingga di desain secara mudah untuk dikembangkan seperti HTTP yang merupakan medium request-respon. Content data dari request dan respon yang ditentukan dengan deklarasi namespace elemen anak secara langsung dari elemen IQ. Atribut diasosiasikan dengan protokol IQ memiliki atribut yang sama dengan protokol message dan presence kecuali jika protokol tersebut memiliki tipe atribut yang berbeda. Tipe atribut pada protokol info/query memiliki 4 nilai yang dapat digunakan;
1.    get : informasi request
2.    set : menyediakan data yang dibutuhkan
3.    result : respon terhadap get dan set request yang sukses
4.    error : kesalahan yang terjadi dalam pemrosesan dan layanan get dan set request
Berikut adalah contoh paket IQ yang memblok incoming message dari JID yang khusus:

<iq type=’set’ id=’msg1’>
<query xmlns=’jabber:iq:privacy’>
<list name=’message-jid-example’>
<item type=’jid’ value=’tybalt@capulet.com’
action=’deny’ order=’3’>
<message/>
</item>
</list>
</query>
</iq>


Protokol IQ ini sangat penting jika kita ingin membangun server berdasarkan kebijakan keamanan sistem yang harus dipenuhi oleh client. Jika sistem keamanan client telah terpenuhi maka harus mendukung pula terhadap sistem keamanan pada sisi server.
Share on Google Plus

About Stevanina

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment