APLIKASI DESKTOP
Macam macam aplikasi
desktop yang dapat melakukan pengiriman data multimedia melalui jaringan adalah
:
-
Yahoo Mesengger
-
Skype
-
GTalk
-
Pidgin
-
Ebuddy
-
Dll.
Proses pengiriman text melalui jaringan internet
banyak terdapat pada aplikasi messenger. Salah satunya adalah GTalk, GTalk
menggunakan protocol XMPP atau juga dikenal dengan nama 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 group adalah 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.
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.
![]() |
Arsitektur Jaringan 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
protocol 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 di Jabber |
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 emulation dan dapat
dijalankan pada server Jabber berdasarkan interoperabilitas antar protokol.
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 mengumpulkan 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 server untuk mensuplemen server
pusat dengan layanan tambahan semacam gerbang untuk
system 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.
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.
![]() |
XML Stream |
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).
Ada beberapa perbedaan entitas pada
Jabber untuk dapat berkomunikasi dengan yang lainny. Entitas ini dapat
direpresentasikan berupa transport, groupchat room atau single Jabber user. Jabber ID telah digunakan secara internal dan eksternal untuk menyatakan kepemilikan
atau routing informasi. Masing-masing Jabber ID memuat sekelompok
order elemen. JID dibentuk dalam suatu domain, node dan resource dalam format [node@domain[/resource][4], contohnya : rita@jabber.com/home
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 tetapi 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 protocol 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
3.
Subscribed : pengirim yang telah diizinkan terhadap recipient untuk menerima
presence
mereka.
4. Usubscribe : 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.
Paket presence akan bernilai 0 atau
1 untuk masing-masing elemen anak berikut :
show : menggambarkan status yang tersedia
dari entities atau resource
yang
spesifik. show memiliki empat nilai yang
digunakan :
away : temporarily away
chat : bebas untuk chat
xa : extended away
dnd : do not disturb
status : merupakan deskripsi bahasa natural
yang bersifat opsional yang
mendeskripsikan status yang tersedia.
priority : bilangan integer bukan negatif yang menampilkan level prioritas pada
resource
yang terkoneksi, dengan 0 sebagai prioritas terendah.
error : deskripsi pesan
kesalahan
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.
Pengiriman
audio dan video dalam jaringan internet tentunya akan berbeda dengan pengiriman
text. Hal tersebut dikarenakan ukuran data yang akan ditransmisikan cukup
besar. Tentunya diperlukan metode – metode yang dapat memudahkan proses
transmisi data. Contoh aplikasi desktop yang dapat mengirimkan audio dan video
adalah skype. Skype merupakan sebuah program komunikasi dengan teknologi P2P (peer to peer). Program
ini merupakan program bebas (dapat diunduh gratis) dan dibuat dengan tujuan
penyediaan sarana komunikasi suara (voice)
berkualitas tinggi yang murah berbasiskan internet untuk semua orang di
berbagai belahan dunia. Pengguna Skype dapat berbicara dengan pengguna Skype
lainnya dengan gratis, menghubungi telepon tradisional dengan biaya (skypeOut), menerima panggilan dari telepon
tradisional (SkypeIn), dan menerima pesan suara. Teknologi skype ditemukan oleh
wirausahawan Niklas Zennström dan Janus Friis, orang yang sama yang menemukan Kazaa dan Joost (P2P untuk televisi). Selain itu skype
juga dapat digunakan untuk melakukan video call.
Arsitektur skype sebenarnya tidak
murni peer to peer (P2P). karena dalam arsitektur skype terdapat tiga komponen,
yaitu server, supernode, dan client.
Server : merupakan server pusat dari
skype. Berfungsi untuk menangani masalah authentifikasi pada pengguna skype. Kemudian
server akan memberitahukan kepada teman – temannya yang lain bahwa salah satu
temannya sedang available.
Supernode : merupakan titik akhir dimana
klien terhubung. Setiap node dengan ip publik yang memiliki CPU, memori dan
bandwith yang memadai merupakan kandidat untuk menjadi supernode.
Client : merupakan aplikasi disisi
klien yang digunakan untuk berkomunikasi dengan pengguna skype lainnya.
Dalam
proses transfer data tentunya diperlukan sebuah metode agar data tepat sampai
pada tujuan. Apalagi jika data yang harus ditransfer memiliki ukuran yang
relative besar. Dengan keterbatasan bandwith setiap aplikasi memiliki metodenya
masing – masing. Berikut garis besar cara kerja skpe :
1.
Suara yang akan dikirim ditangkap dan ditranskodekan
dari format analog (biasanya microphone) ke dalam format digital.
2.
Kemudian disampaikan ke kompresor untuk proses
peminimalisasian ukuran.
3.
Pada proses peminimalisasian, data dipecah – pecah
menjadi bagian yang lebih kecil dan diberi “cap”.
4.
Ketika proses “pengecapan” akan diberikan alamat tujuan
dan juga kode nomor. Kode nomor digunakan untuk membedakan bagian – bagian data
yang telah dipecah – pecah tadi. Selanjutnya dilakukan proses enkripsi.
5.
Kemudian data digital ditransmisikan melalui jaringan
IP
6.
Pada proses akhir yaitu perakitan kembali paket –
paket tersebut menjadi bagian yang utuh kembali.
Call signaling pada skype
·
Jika caller dan receiver sama – sama memiliki IP
public dan receiver berada dalam daftar teman caller, maka mereka akan
membangun koneksi langsung lewat TCP dan menguunakan UDP sebagai media
transfer.
·
Jika caller atau receiver berada dibalik
port-restricted NAT, maka dibutuhkan sebuah Supernode sebagai perantara.
·
Jika keduanya berada di balik UDP-restricted firewall maka
dibutuhkan relay diantara keduanya untuk membangun koneksi TCP. Kemudian
transfer media akan melalui sisi satu ke sisi yang lain.
Keamanan di skype
Setiap
panggilan dan pesan instan dikodekan oleh Skype pada ujung satu dan lainnya
untuk melindungi privasi pengguna. Pengkodean ini perlu karena seluruh
panggilan/ pertukaran informasi disalurkan menggunakan fasilitas internet untuk
publik.
Skype
menggunakan AES (Advanced Encryption Standard) 256-bit untuk proses enkripsi
dengan total probabilitas percobaan kunci (brute-force attack) sebanyak 1,1 x
E-77 kali, sedangkan untuk proses pertukaran kunci (key exchange) simetriknya
menggunakan RSA 1024-bit. Public key pengguna akan disertifikasi oleh Skype
server pada saat login dengan menggunakan sertifikat RSA 1536 atau 2048-bit.
Protokol
skype adalah sebuah protokol yang berbasis arsitektur peer to peer dan
digunakan oleh skype. Protocol skype adalah sebuah protokol milik sendiri.
Spesifikasi dari protocol tersebut didak dipublikasikan oleh skype dan aplikasi
resmi yang menggunakan protocol tersebut adalah close-source.
0 komentar:
Posting Komentar