Nama
: Fajar Noverdian
Nim
: 10523467
Keamanan Web Service
Dalam
bab ini kita akan membahas tentang teknik pengamanan terhadap web service yang
kita bangun. Sebelum kita membahas lebih lanjut tentang teknik pengamanan web
service, sebaiknya kita memahami beberapa konsep yang mendasarinya.
Web
service adalah suatu layanan yang diberikan oleh website
yang dirancang untuk mendukung interoperabilitas
dan interaksi antar sistem pada suatu jaringan
Mengapa web services menjadi sangat populer saat
ini? Jawabannya adalah karena web services mampu mengintegrasikan aplikasi yang
berbeda platform secara lebih sederhana dan mampu memperbaiki kelemahan
dari middleware konvensional.
Web services itu komponen yang independen terhadap platform
ataupun bahasa. Web services menggunakan web protokol (HTTP) yang sangat
mendukung heterogenoitas dan interoperabilitas serta 2
memudahkan integrasi. Selain itu web services
mendukung koneksi loosely coupled, sehingga sebuah perubahan pada
satu aplikasi tidak akan memaksa perubahan pada aplikasi yang lain. Sebuah
web services memiliki interface berupa web
API (Application Programming Interface) yang dapat dipanggil oleh suatu
aplikasi untuk mengakses aplikasi yang mengimplementasikan layanan web
services.
Interoperabilitas
adalah
prioritas utama sebuah enterprise dalam Enterprise Application Integration
(EAI) dan Business-to-Business Integration (B2Bi).
Gambar :
Heterogenoitas dan interoperabilitas web
Services
EAI
dan B2Bi adalah permasalahan yang dihadapi oleh enterprise
untuk mengintegrasikan berbagai macam aplikasi yang sudah ada. Web services
dapat diimplementasikan sebagai komponen yang mendukung komunikasi antar
aplikasi dalam enterprise.
Web Services Security Specification
Saat web services menggunakan
secure connection seperti Secure Sockets Layer (SSL) atau Transport Layer
Security (TLS) membangun koneksi end to end yang aman tidak akan sulit
[9]. Akan tetapi jika terdapat perantara pada komunikasi Tugas Membuat
Makalah Mata Kuliah IF5054 Kriptografi 3 tersebut, maka dibutuhkan protokol
yang memiliki tingkat keamanan yang tinggi. Berikut adalah spesifikasi dari
keamanan web services. Spesifikasi berikut termasuk message security model (WS-Security)
yang memberikan dasar bagi spesifikasi yang lain [13]. Kemudian diatasnya
terdapat lapisan khusus yang menangani masalah policy, yaitu WS-Policy,
WS-Trust dan WSPrivacy. WS-Policy mendeskripsikan
kemampuan dan batasan dari
keamanan, WS-Trust mendeksripsikan frameworkyang digunakan, dan WS-Privacy
mendeskripsikan model privasi untuk web services.Lapisan tersebut memberikan fondasi
untuk keamanan WS-Security.
WS-Security
SOAP Fondation
Gambar
: Spesifikasi web services security
Web
Service Security
Web Services
Security (WS-Security)
merupakan model pengamanan pesan SOAP yang menjadi dasar bagi web services
security specification lainnya. WSSecurity berurusan dengan
integritas pesan dan kerahasiaan isi pesan SOAP. Selain itu, WS-Security juga
mengatur caramenyisipkan security token dalam pesan SOAP dalam bentuk
plain teks maupun dalam bentuk biner (seperti sertifikat X.509).
WS-Security didesain
sefleksibel mungkin terhadap tipe security token yang
dapat disisipkan. WS-Security menyediakan
keamanan pada pesan SOAP tanpa mempedulikan bagaimana pesan tesebut disalurkan
ke penerima. WS-Security dibangun berdasarkan teknologi-teknologi yang
sudah ada sebelumnya. Dua teknologi yang menjadi pondasi utama WS-Security adalah
XML
Signature dan XML
Encryption. XML Signature berperan dalam menjaga integritas
pesan SOAP, sedangkan XML Encryption lebih berperan dalam menjaga kerahasiaan
isi pesannya. XML Signature dapat juga dikombinasikan dengan SecurityToken.
Web Services
Policy (WS-Policy)
WS-Policy menyediakan cara
bagi penyedia web services untuk mendeskripsikan kebutuhan dan
kemampuan yang harus dimiliki
suatu client untuk mengakses web services yang
disediakannya. Kebutuhan akan WS-Policy
dipicu dari kebutuhan kemanan. Sebagai contoh, untuk mengetahui
apakah suatu web services membutuhkan masukan kunciprivat dari client,
suatu client dapat melihat WS-Policy yang dimiliki web
services tersebut. Dalam kaitannya dengan WS-Security,
beberapa hal yang menjadi peranan
WSPolicy yaitu mendeskripsikan kepada client: 1. Perlu
tidaknya masukan security token dengan tipe tertentu 2. Perlu
tidaknya pesan didekripsi dan
dimana lokasi kunci 3. Ada
tidaknya mekanisme terkait signature Saat ini, belum ada spesifikasi
yang baku mengenai WS-Policy. Sebagian pihak mencoba mengimplementasikan
WS-Policy sebagai bagian tambahan dalam WSDL. Namun, banyaknya aspek
yang terkait dengan WS-Policy(WS-Policy bisa dibuat berbeda untuk
setiap pesan yang ada dalam satu buah web services) menyebabkan WSPolicy
akan menjadi begitu besar dan dinamis sehingga kemungkinan akan berdiri sendiri
sebagai pengganti WSDL yang spesifikasinya sudah ada saat ini.
Web Services
Trust (WS-Trust)
WS-Trust mendeskripsikan
model untuk membentuk kepercayaan dalam hubungan langsung maupun tidak langsung
(melibatkan pihak ketiga). Spesifikasi WSTrust akan menggambarkan
bagaimana kepercayaan (trust) langsung pada pihak tertentu dapat
digunakan sebagai dasar kepercayaan bagi pihak lain. Model sekuriti 8 Tugas
Membuat Makalah Mata Kuliah IF5054 Kriptografi yang didefinisikan dalam
WS-Trustdidasarkan pada sekumpulan data yang disediakan oleh request yang
masuk (sebagai contoh yaitu nama, kunci,dan
permission). Jika suatu request sampai tanpa data
tersebut, service akan
mengabaikan atau menolak request
tersebut. WS-Trust ditujukan supaya pihak yang menggunakan web
services benarbenar pihak yang mempunyai kewenangan. Model
WS-Trust sangat mirip dengan
model Public Key
Infrastructure (PKI). Pihak yang melakukan request (selanjutnya disebut
requestor) dapat membuktikan bahwa ia dapat dipercaya dengan menyisipkan
security token milik pihak lain
yang terpercaya dan signature yang
membuktikan bahwa security token benarbenar dimiliki oleh pihak yang
terpercaya. Jika requestor tidak memiliki token yang dibutuhkan, ia
dapat menghubungi Security
Token Service untuk
mendapatkan token yang dimaksud. Pada sisi pemberi web services, pemeriksaan
kewenangan requestor dilakukan dengan langkah-langkah sebagai berikut:
1.
Verifikasi
bahwa isi security token yang dimasukkan cocok dengan WSpolicy tertentu
yang disediakan
2.
Verifikasi
bahwa security token yang disediakan oleh requestor sesuai dengan signature.
3.
Lakukan verifikasi terhadap pihak yang memberikan security token pada requestor.
Proses ini bisa dilakukan dengan melakukan pemeriksaan terhadap security
token pihak pemberi. Mekanisme verifikasi serupa dengan mekanisme PKI.
Proses verifikasi dapat dilanjutkan sampai pada level root atau sampai
pihak yang dipercaya sebagai pemberi security token. Jika seluruh
verifikasi ini berhasil, barulah request diproses oleh pemberi service.
Sebagai catatan, pemberi security token bisa saja merupakan
layanan web services lain, sehingga proses verifikasi dapat
dilakukan sepenuhnya oleh mesin tanpa intervensi manusia.
Web
Services Privacy
Siapapun yang membuat atau memanfaatkan sebuah
komponen web services harus mendeklarasikan kebijakan privasinya [13]. Untuk
mendefinisikan kebutuhan privasi, terlebih dahulu harus
didefinisikan tipe data yang terlibat [16]. Kebijakan
privasi dideklarasikan pada WSPrivacy.
WS-Privacy bertujuan untuk meyakinkan
privasi dengan merekomendasikan kebijakan accesscontrol
pada atribut informasi [12]. Dengan menggunakan
kombinasi dari WSPolicy, WS-Security, and WS-Trust kita dapat
mendeklarasikan kebijakan privasi kita. Spesifikasi ini akan menjelaskan pemodelan
tentang penyertaan privacy language dalam deskripsi WS-Policy dan
bagaimana WS-Security dapat digunakan
untuk mengasosiasikan klaim pada sebuah pesan.
Akhirnya spesifikasi ini akan mendeskripsikan bagaimana mekanisme WS-Trust dapat
digunakan untuk mengevaluasi klaim privasi untuk kedua
pihak yang berhubungan dengan menggunakan web
services.
Menjaga Integritas SOAP dengan XML
Signature dan Security Token
Integritas pesan SOAP berarti
penerima pesan SOAP dapat memastikan bahwa pesan yang diterimanya benar-benar
berasal dari pihak tertentu tanpa ada perubahan sedikitpun pada isi pesannya.
Dalam WSSecurity, integritas pesan SOAP dijaga menggunakan XML
Signature yang terkadang dilengkapi juga dengan security token.
XML Signature merupakan
implementasi digital signature dalam XML. XML Signature digunakan
dalam
WS-Security, sebab pesan
SOAP pada dasarnya merupakan sebuah dokumen XML. Prinsip yang digunakan dalam
membuat XML Signature secara umum 4 Tugas Membuat Makalah Mata Kuliah
IF5054 Kriptografi sama dengan prinsip pembuatan digital signature.
Proses untuk membangkitkan XML
Signature dibagi menjadi dua komponen, yakni pembangkitan reference
dan \pembangkitan signature:
Keamanan Informasi
(Information Security)
Web service akan
selalu berhubungan dengan informasi. Keberadaan web service hanyalah sebagai
alternatif yang berfungsi sebagai salah satu alat bantu dalam proses pengolahan
informasi. Sedangkan proses pengolahan informasi itu sendiri selalu berkaitan
dengan keamanan.
Keamanan
informasi memiliki sasaran untuk memelihara kerahasiaan (confidentiality),
integritas (integrity) dan ketersediaan informasi (availability) dalam suatu
organisasi, dan dicapai dengan kombinasi komponen yang baik, desain
arsitektural yang baik, serta perlakuan yang teliti dalam pusat pengelolaannya.
Keamanan
informasi bertanggung jawab pada tiga hal, yaitu:
- Confidentiality, adalah
suatu jaminan bahwa informasi hanya dapat digunakan secara bersama oleh
organisasi atau orang yang diberi hak.
- Integrity, adalah
jaminan bahwa informasi adalah asli dan lengkap serta dapat dipercaya
ketepatan tujuannya.
- Availability, adalah
jaminan bahwa sistem yang bertanggung jawab pada pengiriman, penyimpanan
dan pengolahan informasi dapat diakses ketika dibutuhkan.
Mekanisme Keamanan Informasi
Dikarenakan
tidak ada peralatan tunggal yang dapat memelihara integritas informasi, maka
penting untuk menempatkan empat mekanisme keamanan dalam struktur kinerja yang
berlapis. Empat mekanisme tersebut adalah:
·
Otentikasi
user
·
Enkripsi
data
·
Penyaringan
paket jaringan
·
Kendali
akses fisik
Prinsip keamanan
yang baik adalah “defense in depth” atau pertahanan yang sungguh-sungguh
mendalam. Jangan pernah bersandar pada mekanisme keamanan tunggal dan
meletakkannya dalam desain berlapis sehingga seorang hacker dapat masuk melalui
salah satu lapisan dan melakukan serangannya.
Sebagai contoh,
penyaringan paket yang menghalangi akses dari alamat jaringan luar dapat
mencegah akses dari seorang penyerang yang telah mencuri password otentikasi.
Enkripsi data dapat melindungi kerahasiaan informasi bahkan ketika penyerang
menyadap kabel jaringan dengan cara mengalahkan mekanisme kendali akses fisik.
Otentikasi user, adalah mekanisme yang dirancang
untuk mengidentifikasi user secara unik, menempatkan user pada hak akses
informasi yang sesuai, dan menjejaki aktifitas mereka. Otentikasi pada umumnya
dilakukan dengan meminta kunci akses (dapat berupa username, password,
informasi biometric, kartu pengenal, ataupun smart card) dan menentukan hak
akses mereka.
Enkripsi data, adalah mekanisme yang melakukan proses
penyandian data untuk mencegah pihak yang tidak diberi hak untuk melihat,
mengamati, dan memodifikasi informasi. Mekanisme ini memiliki sasaran untuk
melindungi integritas dan kerahasiaan informasi, bahkan ketika data yang
disandikan itu melewati jalur media yang tidak aman (seperti internet).
Enkripsi data bekerja sedemikian sehingga hanya penerima yang dituju yang dapat
membaca data tersebut dengan menggunakan suatu algoritma dan kunci enkripsi.
Sebagai contoh, suatu sesi terminal remote yang menggunakan secure-shell SSH
melakukan enkripsi data dengan menggunakan algoritma DES.
Penyaringan paket jaringan, adalah
mekanisme pengamanan pada level jaringan yang dapat dilakukan pada router dan
gateway dengan menganalisis header dari paket IP, kemudian mengizinkan atau
menolak pengiriman paket berdasarkan pada alamat sumber, alamat tujuan, tipe
protokol, nomor port TCP, panjang paket dan sebagainya. Mekanisme ini berguna
untuk mencegah akses bahkan sebelum penyerang dihadapkan pada otentikasi
terhadap sistem yang dituju. Firewall adalah alat yang melakukan penyaringan
paket dan melakukan analisis terhadap paket tersebut untuk menentukan apakah
diizinkan atau ditolak. Gambar di bawah ini mengilustrasikan mekanisme pengamanan
paket pada level jaringan:
Gambar Sebuah firewall pada level jaringan
Kendali akses fisik, adalah
mekanisme pengamanan yang paling mendasar. Mekanisme ini mencegah pencurian
data yang dilakukan penyerang dengan cara mengakses langsung pada peralatan
fisik. Sebelum mengeluarkan banyak biaya untuk mengamankan data terhadap
ancaman yang berasal dari jaringan, pastikan untuk mengendalikan keamanan akses
fisik ke server kritis dan infrastruktur jaringan.
Otentikasi SOAP
Teknik
pengamanan web service dengan menggunakan otentikasi SOAP merupakan metode yang
cukup sederhana. Proses otentikasi SOAP dilakukan dengan cara menyisipkan suatu
informasi pada pesan SOAP yang menggambarkan bahwa suatu pesan SOAP memiliki
keaslian tersendiri yang bersifat unik dari suatu client tertentu yang meminta
layanan. Informasi yang disisipkan ini berisi data otentikasi dari client yang
mengajukan request. Informasi tersebut merupakan data otentikasi SOAP request
yang berupa username dan password.
Berikut
ini adalah langkah-langkah yang diterapkan dalam proses otentikasi SOAP:
1. Client menyusun sebuah paket SOAP request
dalam sebuah SOAP envelope
2. Client menyisipkan sebuah data informasi
otentikasi ke dalam struktur SOAP request tersebut
3. Client mengirimkan SOAP request melalui
protokol HTTP ke aplikasi server (web
service provider)
4. Server menerima pesan SOAP resquest kemudian
melakukan parsing
5. Server mendapatkan data informasi otentikasi
dari pesan SOAP request
6. Server mencocokkan data informasi otentikasi
dengan database server
7. Apabila data informasi otentikasi sesuai,
maka server menangani request, jika tidak server akan menolak request
8. Server mengirimkan pesan SOAP response kepada
client berikut informasi tentang status otentikasi.
Dalam
menerapkan otentikasi SOAP, aplikasi server membutuhkan suatu database yang
berfungsi untuk menyimpan data-data semua client yang berhak untuk mengakses
layanan yang tersedia. Dengan demikian hanya client yang terdaftar dalam
database tersebut yang berhak untuk mengkonsumsi layanan. Teknik pengamanan ini
bertujuan untuk mencegah para hacker mengirimkan SOAP request yang berisi
instruksi-instruksi ataupun data yang dapat merugikan server.
Bagaimana
Otentikasi SOAP Dilakukan?
Selanjutnya
kita akan membahas tentang bagaimana otentikasi SOAP ini dilakukan. Sebelum
membahasnya kita perhatikan kembali struktur standar dari suatu pesan SOAP:
Gambar Struktur paket pesan SOAP
Pada
struktur pesan SOAP di atas, kita melihat terdapat dua elemen utama SOAP yaitu
Header dan Body. Elemen header merupakan elemen yang bersifat opsional yang
berisi data-data tambahan yang dapat digunakan oleh server untuk keperluan
khusus. Elemen body merupakan elemen pokok yang harus ada dalam suatu pesan
SOAP, elemen ini berisikan muatan data pesan induk dari SOAP itu sendiri.
Ada
2 alternatif tempat untuk meletakkan data informasi otentikasi pesan SOAP,
yaitu pada elemen header atau pada elemen body. Apabila proses penyusunan suatu
pesan SOAP membutuhkan mekanisme pengkodean isi (misalnya enkripsi ataupun
kompresi) terhadap pesan yang terdapat dalam elemen body, maka tidak mungkin
meletakkan data otentikasi ke dalam elemen body SOAP. Sebagai contoh, jika
suatu server menerima pesan SOAP yang elemen body-nya telah dienkripsi atau
dikompresi, nantinya server perlu mengetahui data informasi otentikasi yang
dipakai untuk menentukan status keotentikan pesan SOAP tersebut. Tidak mungkin
menanam informasi mengenai keotentikan suatu pesan SOAP ke dalam elemen body
karena isinya sendiri akan dienkripsi atau dikompresi. Maka solusinya adalah
lebih tepat untuk menempatkan informasi otentikasi ke dalam elemen header pesan
SOAP.
Terdapat beberapa penggunaan
terhadap elemen header SOAP, beberapa di antaranya adalah:
- Otentikasi. Server
dapat meminta pengirim untuk mengotentikkan dirinya sendiri sebelum pesan
diproses.
- Informasi
pernyataan keamanan. Jika penerima memerlukan jaminan bahwa isi
pesan belum berubah, pengirim dapat menandatangani tubuh pesan secara
digital dan menempatkan hasilnya ke dalam header.
- Informasi
routing.
Jika pesan tersebut perlu dirunut ke banyak tujuan, tujuan dan urutannya
dapat dimasukkan ke dalam header.
- Transaksi. Penerima
mungkin menjalankan sejumlah aksi dalam lingkup transaksi pengirim.
- Informasi
pembayaran.
Jika penerima pesan menyediakan layanan ke client berdasarkan biaya per
pemakaian, informasi yang diperlukan untuk menarik pembayaran dapat
ditanamkan dalam header-nya.
Setelah
kita memahami dasar-dasar pemahaman tentang proses otentikasi pesan SOAP,
sekarang kita akan membahas tentang teknik pemrograman yang menerapkan kemanan
web service dengan menggunakan otentikasi SOAP.
NuSOAP
toolkit sampai pada versi terakhir (v1.9.5) pada saat buku ini ditulis belum
menyediakan fasilitas otentikasi SOAP. Oleh karena itu kita akan melakukan
sedikit modifikasi terhadap class library NuSOAP dengan menambahkan satu fungsi
untuk menyisipkan data informasi otentikasi ke dalam elemen header SOAP dan
beberapa penambahan rutin program dalam class tersebut.
Fungsi
yang digunakan untuk menyisipkan data informasi otentikasi ini ke dalam header
SOAP diletakkan pada class “soapclient”. Fungsi tersebut diberi nama
“SetSOAPSecurityHeader”, berikut ini adalah kode programnya:
|
Gambar Fungsi untuk menyisipkan header security
pesan SOAP
Data
informasi otentikasi di atas memiliki root elemen yang diberi nama
“UsernameToken”. Sub elemen “username” dan “password” digunakan untuk
menempatkan item data otentikasi pesan SOAP. String otentikasi yang dihasilkan
kemudian disisipkan kedalam header pesan SOAP yang akan dikirim. Sehingga paket
pesan SOAP yang akan dikirim akan menghasilkan format paket SOAP berikut ini:
Gambar Format string elemen header SOAP
Perhatikan
kode di atas, elemen header yang berisi data informasi otentikasi disisipkan ke
dalam pesan SOAP.
Enkripsi
SOAP
Web service
sebagai tool alternatif dalam sistem terdistribusi melakukan kinerjanya dengan
menggunakan SOAP dalam mekanisme HTTP GET dan HTTP POST. Pada prinsipnya SOAP
merupakan sebuah teks murni dalam format XML yang seringkali berisikan
informasi-informasi yang sensitif yang harus dilindungi. Satu-satunya cara
untuk melindungi data tersebut adalah dengan melakukan penyandian (enkripsi)
terhadap informasi tersebut.
Pada penjelasan
sebelumnya, telah dijelaskan tentang mekanisme keamanan yang diterapkan dengan
menambahkan data informasi otentikasi ke dalam elemen header SOAP. Selanjutnya
kita akan membahas sebuah mekanisme keamanan web service lebih lanjut, yaitu
dengan melakukan enkripsi baik pada elemen header maupun elemen body pada
struktur pesan SOAP.
SUMBER
: http://www.slideshare.net
SELESAI
SILAHKAN COPY JIKA ARTIKEL INI MENARIK NAMUN HARAP CANTUMKAN SUMBERNYA
{ 0 komentar... read them below or add one }
Posting Komentar
terima kasih telah berkunjung sobat.
Silahkan komentar,kritik dan sarannya
setidaknya tegur sapa.heheh