Web Service Security

Security (keamanan) adalah hal yang penting dan harus di pahami oleh semua developer. Kita sering mendengar banyaknya websites yang di hack atau di deface seperti yang terjadi pada websites depkominfo baru-baru ini. Tentunya kita tidak ingin hal seperti itu terjadi pada websites yang kita kelola. Apa itu security ? untuk memahaminya dapat dilihat dengan menjawab pertanyaan-pertanyaan berikut :

  1. Apakah kita bisa mengetahui siapa saja yang melakukan permintaan (request) terhadap layanan Web yang kita miliki ? Hal seperti ini sering disebut dengan authentication.

  2. Apakah kita bisa mengetahui bahwa tidak ada pihak lain yang mampu membaca pesan yang ada dalam jaringan yang dimiliki? Untuk menjawab hal ini maka diperlukan adanya enkripsi.

  3. Apakah seseorang atau sebuah program yang me request di perbolehkan untuk melakukan request tersebut ? Hal seperti ini disebut dengan author-ization.

Jadi ada tiga hal yang harus diperhatikan untuk memberikan keamanan pada layanan berbasis web yang kita miliki. Berikut adalah gambarannya :

Authentication

Authentication terdiri dari dua proses yakni identifikasi dan validasi. Identifikasi diartikan bahwa sebuah request / permintaan untuk beberapa identitas. Identitas ini dapat berupa user ID dan pasangan password (kata kunci) atau sebuah sertifikat. Validasi adalah kesamaan identitas antara user ID dan password atau verifikasi dari sertifikat. Kemudian apakah ada standar dalam melakukan Authentication. Sebenarnya tidak ada standar khusus untuk authentifikasi layanan berbasis web dan juga tidak ada software khusus yang dapat dijadikan standart. Namun pada beberapa kasus pembangunan layanan dengan protocol HTTP dan J2EE sering digunakan untuk authentifikasi layanan berbasis web.

Pada sebagian besar skenario user authentication pada layanan berbasis web adalah mekanisme membangun protocol HTTP 1.1 yang memberikan banyak manfaat. Mekanisme ini dikatakan sebagai model dasar authentication dimana prosedur dasarnya adalah seperti berikut :

  1. Sebuah Client melakukan permintaan secured URL.

  2. Server memberikan respon balik dengan kode HTTP response 401 yang mengidentifikasikan perlunya authentication.

  3. Client kemudian memasukan ulang permintaan dengan mengisi header authentication.

  4. Server kemudian mem-validasi kebenaran user ID dan password pada database, jika ternyata hasilnya sesuai maka halaman yang request diberikan malalui HTTP response.

Kuncinya disini adalah header authentification. Ini adalah standart pada protocol HTTP yakni berupa encode dari user ID dan password yang belum terenkripsi.

Enkripsi

Ketika sebuah data di enkripsi ini artinya bahwa sebuah data dikodekan sedemikian rupa sehingga keamanan informasinya terjaga dan tidak dapat dibaca tanpa di deskripsikan kembali. Skema yang paling sering digunakan adalah public key encryption, yang dimulai dengan sebuah asumsi yang memiliki dua kunci. Satu kunci (public key) di distribusikan secara umum dan kunci yang lainnya (private key) tidak didistribusikan. Data tersebut di enkripsikan dengan public key dan untuk membukanya digunakanlah private key tersebut.

HTTP

Untuk memahami bagaimana HTTP bekerja kita harus kembali mengingat bahwa protokol HTTP dibangun pada posisi teratas dari TCP/IP stack. HTTP bekerja menggunakan socket TCP yakni sebuah standart untuk mentransmisikan paket melalui jaringan. Secure Socket Layer (SSL) adalah teknik yang sering digunakan untuk mengamankan komunikasi pada TCP/IP dengan menggunakan kriptograhy Public Key. HTTP berada diurutan teratas pada SSL. Dasarnya dapat dilihat seperti berikut :

  1. Client mengirimkan request ke server untuk koneksi.

  2. Server mengirimkan tanda certificate kembali ke client.

  3. Client memverifikasi tanda cetificate tersebut pada list certificate authority yang dapat diterima.

  4. Client men- generate session key yang akan digunakan untuk enkripsi dan mengirimkannya ke server dengan public key.

  5. Server menggunakan private key ini untuk men dekripsikan session yang identifikasi.

Authorization

Authorization adalah proses untuk mengontrol akses ke resource. Proses dasar pada authorization adalah dengan menggunakan access control list yakni sebuah cara yang digunakan untuk menspesifikan sistem antara user dan resource sehingga dapat ditunjukan user mana yang punya hak untuk mengakses resource.

Masalah yang mendasar adalah tidak ada standar khusus pada layanan berbasis web. Hal ini dikarenakan standart pada layanan berbasis web lebih ditentukan oleh sistem komunikasinya bukan pada layanan web itu sendiri. Layanan web membutuhkan adanya interoperability untuk platform dan bahasa yang berbeda. Sebagai contoh perbedaan platform antara J2EE dan .NET tentunya akan memiliki authorization yang berbeda pula. Sehingga sulit untuk membuat sebuah standart authorization dengan perbedaan seperti ini.

One thought on “Web Service Security

  1. Pingback: Bacaan Orang Iseng «

Leave a comment