SEMINAR TUGAS AKHIR PERIODE JULI 2005
PERANCANGAN DAN PEMBUATAN SERVER AUTENTIKASI BERBASIS XML PADA SISTEM TERDISTRIBUSI Indah Kurnia – Febriliyan Samopa Program Studi Sistem Informasi, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Email :
[email protected] ABSTRAK fleksibilitas server autentikasi dalam mengkoordinasi berbagai aplikasi serta user yang menggunakannya. Di sisi lain, server autentikasi juga berfungsi untuk meningkatkan keamanan sistem yang ditunjukkan dalam bentuk resistensi terhadap pembacaan data plaintext, serangan man in the middle dan penyalahgunaan hak akses.
Jaringan komputer tidak sepenuhnya aman dari berbagai serangan dan kelemahan sistem yang dapat dieksploitasi sehingga dapat menyebabkan kegagalan sistem secara keseluruhan. Di sisi lain, penanganan aspek keamanan aplikasi masih dilakukan bersama dengan pengembangan proses bisnis sehingga mengakibatkan sistem menjadi tidak efektif jika aplikasi tersebut memiliki banyak pengguna dengan variasi hak akses yang beraneka ragam. Selain itu, upaya integrasi berbagai macam aplikasi menjadi lebih rumit karena masing-masing aplikasi memiliki metode tersendiri dengan keterbatasan pada platform tertentu. Berdasarkan latar belakang tersebut dikembangkan suatu server autentikasi. Cara kerja server autentikasi dilakukan pertama kali dengan mendaftarkan semua atribut Selain itu, pendaftaran aplikasi juga harus menyertakan daftar user dan hak aksesnya. Aplikasi klien kemudian mengirimkan data user serta identitas aplikasi ke server autentikasi setiap kali ada user yang meminta login. Sebelum data dikirimkan, data tersebut dienkripsi kemudian diubah ke format XML. Sesampainya di server, data tersebut kemudian di terjemahkan ke bentuk teks kemudian didekripsi menjadi plaintext. Data-data ini digunakan sebagai parameter yang akan divalidasi dengan terlebih dahulu melewati proses port knocking. Apabila validasi port knocking tersebut sukses, maka session khusus akan dibuatkan untuk user tersebut. Kemudian session akan dikembalikan lagi ke aplikasi agar dapat diolah lebih lanjut. Proses yang hampir sama juga berlaku jika user meminta akses terhadap suatu prosedur. Perbedaan terletak pada proses validasi yang melibatkan pemeriksaan terhadap validitas session, hak akses, parameter dan persyaratan yang bisa dipenuhi. Sedangkan pada proses logoff, batas aktif session diakhiri sehingga user tidak bisa lagi melakukan akses. Keberadaan server autentikasi terbukti mampu mempermudah integrasi berbagai macam aplikasi di bawah satu sistem keamanan karena semua data ditransfer berformat XML. Selain itu, kemudahan integrasi juga dibuktikan oleh
Kata Kunci : Server Autentikasi, XML, port knocking, enkripsi I. PENDAHULUAN Penggunaan aplikasi berbasis teknologi klienserver saat ini telah menjadi kebutuhan penting di era teknologi informasi saat ini. Arus informasi yang terjadi sebagai perwujudan komunikasi antara klien dan server dapat difasilitasi dengan menggunakan jaringan komputer sebagai sarana tukar menukar data. Namun, jaringan komputer tidak sepenuhnya aman dari berbagai serangan yang bersifat eksternal maupun internal. Serangan yang bersifat eksternal berasal dari luar sistem yang umumnya disebabkan karena virus, hacker, dan lain-lain. Sedangkan serangan internal merupakan bentuk kelemahan sistem yang dapat dieksploitasi sehingga dapat menyebabkan kegagalan sistem secara keseluruhan. Selama ini penanganan aspek keamanan aplikasi masih dilakukan bersama dengan pengembangan proses bisnis. Kondisi ini mengakibatkan manajemen aplikasi menjadi tidak efektif jika aplikasi tersebut memiliki banyak pengguna dengan variasi hak akses yang beraneka ragam. Dengan demikian, beban aktivitas pengembangan sistem akan bertambah sehingga developer tidak dapat memfokuskan diri pada pengembangan proses bisnis secara maksimal. Selain itu, upaya integrasi berbagai macam aplikasi menjadi lebih rumit karena masing-masing aplikasi memiliki metode tersendiri dengan keterbatasan pada platform tertentu. Berdasarkan latar belakang tersebut, tugas akhir ini dilakukan untuk mengembangkan solusi berupa pembuatan server autentikasi. Keberadaan aplikasi ini diharapkan mampu meningkatkan
1
INDAH KURNIA – 5201.100.032
SEMINAR TUGAS AKHIR PERIODE JULI 2005
kompresi cukup seimbang dengan waktu yang dikonsumsi. PGP tidak akan melakukan kompresi untuk file yang terlalu pendek, atau file yang teknik kompresinya kurang baik. Pada umumnya PGP menggunakan program kompresi yang cukup populer, yaitu PKZIP. Pemilihan software ini didasari pada pertimbangan kinerja PKZIP yang memberikan rasio kompresi yang bagus dengan waktu eksekusi yang sangat cepat. Setelah melakukan kompresi data, PGP membuat session key yang merupakan one-time-only secret key. PGP menggunakan pseudo-randomgenerator yang sangat handal untuk menghasilkan session key. Jika file random ini tidak ada, maka PGP secara otomatis akan menghasilkan bilangan random yang diambil dari random event yang ditemukan oleh PGP, misalnya dari gerakan mouse atau timing yang ada pada keyboard saat mengetikkan sesuatu. Pembangkit bilangan acak ini akan menghasilkan bilangan random yang merupakan gabungan dari data waktu dan nilai random yang dibangkitkan dari pergerakan mouse dan keyboard. Cara ini dilakukan agar hacker tidak mengetahui session sebelumnya dan session yang akan diberikan berikutnya. Pada saat data berhasil dienkripsi, maka session key digunakan untuk mengenkripsi public key. Public key tersebut kemudian ditransmisikan bersama dengan ciphertext ke klien yang berhak menerima. Proses dekripsi bekerja secara berkebalikan dari proses enkripsi. Penerima pesan menggunakan private key yang disimpannya untuk mengembalikan session key. Kemudian langkah tersebut dilanjutkan dengan dekripsi terhadap ciphertext yang terenkripsi secara konvensional. Kombinasi dari kedua metode ini memberikan kemudahan layaknya public key encryption sekaligus kecepatan yang ditunjukkan oleh metode enkripsi konvensional.
efisiensi pengembangan sistem karena terjadi pembagian tanggung jawab antara server autentikasi yang menangani aspek keamanan dan server aplikasi yang menjalankan proses bisnis. Selain itu, server autentikasi juga dapat dimanfaatkan sebagai salah satu sarana untuk mengintegrasikan berbagai macam aplikasi maupun mesin yang heterogen dalam satu sistem keamanan. II. SISTEM KEAMANAN DALAM SERVER AUTENTIKASI Sistem keamanan yang digunakan untuk membangun server autentikasi terdiri dari kriptografi dengan OpenPGP untuk mengenkripsi data, membuat public key dan private key, digital signature, digital certificate dan passphrase. Selain itu digunakan pula teknik pendukung keamanan lainnya, yaitu port knocking, autentikasi dan autorisasi. 2.1 Kriptografi dengan OpenPGP Algoritma yang dipakai dalam kriptografi merupakan suatu fungsi matematis yang digunakan untuk proses enkripsi dan dekripsi. Kriptografi bekerja dengan menggunakan kombinasi kunci berupa kata-kata, angka atau frase tertentu yang biasanya digunakan untuk mengenkripsi plaintext. Plaintext yang sama dapat dienkripsi menjadi ciphertext yang berbeda dengan kunci yang berbeda pula. Jaminan keamanan data tergantung pada dua hal, yaitu kehandalan algoritma kriptografi dan keamanan kunci. Pretty Good Privacy (PGP) merupakan sebuah kriptosistem yang merupakan gabungan dari algoritma kriptografi dengan menggunakan semua kunci yang mungkin dipakai serta semua protokol komunikasi yang diaplikasikan saat ini. 2.1.1 Cara Kerja PGP PGP mengkombinasikan metode konvensional dan public key cryptography. Oleh karena itu, PGP disebut sebagai hybrid cryptosystem. Cara kerja PGP sebagai kombinasi dua metode tersebut diawali dengan kompresi data. PGP secara normal akan mengkompresi plaintext sebelum melakukan enkripsi. Jika kompresi tidak bisa dilakukan sesudah enkripsi karena data yang terenkripsi tidak dapat dikompresi. Kompresi data mampu menghemat waktu transmisi data, ruang dalam hard disk serta meningkatkan keamanan. Sebagian besar teknik kriptanalisis memanfaatkan pola-pola khusus yang ada pada plaintext untuk memecahkan ciphertext. Dengan adanya kompresi data, maka jumlah pola yang terlihat pada plaintext dapat direduksi sehingga mempersulit kegiatan kriptanalisis. Teknik kompresi ini membutuhkan waktu, namun manfaat yang dirasakan dari hasil
2.1.2 Kunci Kunci merupakan suatu nilai yang digunakan dalam teknik kriptografi untuk menghasilkan ciphertext yang spesifik. Kunci-kunci tersebut pada dasarnya merupakan bilangan yang sangat besar. Panjang kunci umumnya diukur dengan satuan bit. Biasanya kunci-kunci yang sering digunakan memiliki panjang 1024 bit. Apabila ditinjau dari segi teori kriptografi, ciphertext akan memiliki tingkat keamanan yang lebih baik jika memiliki kunci yang semakin panjang. Di sisi lain, public key dan private key berhubungan secara matematis. Meskipun untuk mendapatkan private key dari sebuah public key merupakan suatu hal yang sangat sulit, namun hal ini tidak menutup kemungkinan selama hacker memiliki
2
INDAH KURNIA – 5201.100.032
SEMINAR TUGAS AKHIR PERIODE JULI 2005
fungsi hash dijalankan, tidak mungkin bagi orang lain untuk mengambil digital signature dari suatu dokumen kemudian menempelkannya ke dokumen lain atau mengubahnya dengan cara lain. Hal ini disebabkan karena perubahan sekecil apapun dapat mengubah hasil yang menyebabkan kegagalan proses verifikasi dokumen.
cukup waktu dan sumber daya komputasi. Oleh karena itu, sangat penting untuk memilih kunci dengan panjang yang tepat, sehingga mampu dipakai untuk mengamankan data secara optimal dan memiliki kecepatan eksekusi yang tinggi. Selain itu, perlu diperhatikan pula kebutuhan sistem, misalnya kegunaan file, siapa yang akan membacanya, bagaimana mengidentifikasi file tersebut, berapa banyak waktu yang diperlukan untuk menjalankannya dan berapa jumlah resource yang digunakan.
2.1.5 Digital Certificate Salah satu isu penggunaan public key cryptosystem adalah memberi keyakinan pada user bahwa data yang dienkripsi akan sampai pada orang yang benar-benar berhak. Hal ini dilakukan untuk mencegah kemungkinan adanya man-in-the-middle, di mana seseorang berpura-pura sebagai user yang berhak, kemudian menerima data dan mengubahnya. Setelah itu data data dikirimkan kembali ke user yang benar-benar berhak, sementara man-in-themiddle bertindak sebagai pengirim yang dipercaya. Oleh karena itu digunakan digital certificate untuk mengatasi masalah ini. Digital certificate merupakan data yang berfungsi seperti identitas pribadi. Digital certificate berisi informasi yang disertakan dalam public key sehingga membantu orang lain untuk melakukan verifikasi bahwa user tersebut benar-benar asli. Digital certificate terdiri atas 3 bagian utama, yaitu: a. public key b. informasi sertifikat, misalnya username, user ID, dan lain-lain. c. digital signature Tujuan pemberian digital signature pada sertifikat ini adalah untuk menunjukkan bahwa informasi dalam sertifikat itu berasal dari orang yang benar-benar berhak. Dengan demikian, suatu sertifikat pada dasarnya merupakan sebuah public key dengan satu atau dua bentuk identitas yang dibubuhkan oleh pengirim yang terpercaya.
2.1.3 Digital Signature Keuntungan utama dari public key cryptography bahwa metode ini menyediakan fasilitas digital signature. Dengan adanya digital signature, penerima informasi dapat melakukan verifikasi terhadap keaslian informasi sekaligus memberikan autentikasi bahwa penerima informasi memang orang yang benar-benar berhak. Dengan demikian, public key digital signature mampu memberikan autentikasi sekaligus menyediakan integritas data. Selain itu digital signature juga menyediakan aspek non repudiasi untuk mencegah pihak yang tidak berwenang mengklaim dirinya berhak atas informasi yang diberikan. Digital signature memiliki fungsi yang sama seperti tanda tangan tertulis. Tanda tangan ini pasti unik untuk setiap orang sehingga tidak dapat dipalsukan. Umumnya tanda tangan ini dibubuhkan pada dokumen yang berisi informasi yang bersifat konfidensial. 2.1.4 Fungsi Hash Sistem yang dideskripsikan di atas memiliki beberapa permasalahan. Sistem tersebut lambat dan menghasilkan data yang jauh lebih besar daripada ukuran aslinya. Oleh karena itu digunakan metode one way hash. Metode ini mengambil input berupa panjang dari pesan yang akan dikirim, kemudian menghasilkan satu output dengan panjang tetap, misalnya 160 bit atau 128 bit. Metode one way hash mampu memastikan apabila ada satu bit yang berubah dari data asli, maka hasil dari proses hashing akan berubah secara total. PGP menggunakan fungsi hash yang handal dari segi kriptografi. Teknik ini menghasilkan suatu data dengan panjang tetap dan umumnya disebut sebagai message digest. PGP kemudian menggunakan hasil message digest bersama dengan private key untuk menghasilkan digital signature. Plaintext dan digital signature kemudian didistribusikan secara bersama-sama kepada penerima informasi. Penerima informasi kemudian menggunakan PGP untuk menghasilkan message digest yang sama. Kemudian, hasilnya dipakai untuk mencocokkan dengan digital signature yang dikirimkan. Selama
2.1.6 Passphrase Passphrase merupakan versi yang lebih panjang dari suatu password sehingga secara teori dapat memberikan tingkat keamanan yang lebih baik. Passphrase umumnya terdiri dari beberapa kata yang tidak terdapat dalam kamus. Dengan demikian, passphrase lebih aman dalam menangkal serangan dictionary attack di mana hacker mencoba menebak password dengan menerka kata-kata yang ada dalam kamus. Passphrase yang baik adalah kata-kata yang panjang, rumit dan terdiri dari kombinasi huruf besar dan huruf kecil, berikut angka serta karakter-karakter lain. PGP menggunakan passphrase untuk mengenkripsi private key. Sedangkan private key yang tersimpan dalam hard disk tersebut dienkripsi dengan metode hash dengan passphrase sebagai kunci rahasia. Kemudian passphrase digunakan dalam dekripsi untuk menghasilkan private key.
3
INDAH KURNIA – 5201.100.032
SEMINAR TUGAS AKHIR PERIODE JULI 2005
antara hak yang dimiliki oleh grup usernya dan hak yang terdaftar dalam role. Setelah pemeriksaan ini berhasil akan dilanjutkan dengan pemeriksaan validitas parameter dan persyaratan yang dibutuhkan oleh prosedur agar dapat dijalankan dengan baik. Apabila terjadi kegagalan dalam salah satu proses tersebut akan dihasilkan exception yang dikirimkan sebagai pesan kesalahan yang akan ditindaklanjuti oleh aplikasi.
2.2 Port Knocking Server autentikasi akan melakukan validasi awal dengan melakukan pengetukan terhadap portport tertentu. Mekanisme ini dilakukan oleh port knocking. Sebelum port knocking menjalankan tugasnya, server autentikasi akan mengirimkan parameter yang digunakan untuk menginisialisasi port-port tersebut. Urutan port dihasilkan dari pengubahan karakter menjadi angka yang mencerminkan nomor port. Suatu socket perlu dibuat agar server dapat mendengarkan ketukan port. Untuk itu, semua port yang dikhususkan untuk port knocking dibuka. Setiap kali ada port yang diketuk, maka listener akan mencatat ketukan tersebut sambil menjalankan timer yang menghitung delay antar ketukan. Jika ketukan berikutnya melebihi delay waktu yang ditentukan, maka koneksi tersebut dianggap gagal. Setelah semua urutan port berhasil diketuk, maka server akan membuatkan thread untuk memproses hasil ketukan tersebut. Dengan demikian port yang semula dipakai dapat digunakan kembali untuk menerima akses dari klien yang lain. Jika hasil pemeriksaan antara catatan port knocking dengan data yang ada dalam basis data ternyata menemui kecocokan, maka request tersebut akan dikirimkan ke pemrosesan lebih lanjut sesuai dengan flag proses yang dibawanya.
III. INTEGRASI SERVER AUTENTIKASI Sebagian besar sistem yang dikembangkan saat ini membutuhkan kemampuan berkomunikasi antar berbagai bagian meskipun mereka menggunakan sistem informasi yang berbeda. Extensible Markup Language (XML) dan Enterprise Java Bean (EJB) merupakan suatu solusi yang membuat data portabel yang menjadi teknologi utama dalam memenuhi kebutuhan ini. Banyak enterprise saat ini telah menggunakan XML untuk mengintegrasikan data secara internal khususnya dalam membagi legacy data antar berbagai departemen. Secara eksternal, XML dan EJB yang merepresentasikan teknologi komputasi terdistribusi dapat digunakan pula untuk membagi data dengan enterprise lain. Sebagai hasilnya, XML mengalami peningkatan penggunaan untuk aplikasi enterprise terintegrasi baik yang bersifat tightly coupled maupun loosely coupled. Karena kemampuan integrasi data ini, XML digunakan sebagai perekat web-related computing. Untuk memenuhi tuntutan portabilitas data dan program, maka aplikasi perlu memiliki skalabilitas tinggi, aman dan efisien. Oleh karena itu dikembangkan Java 2 Platform Enterprise Edition (J2EE) untuk memenuhi kebutuhan tersebut. J2EE memberikan kemudahan dalam pemrograman infrastruktur yang mencakup keamanan, manajemen transaksi terdistribusi dan manajemen koneksi yang semuanya merupakan bagian paling esensial dari suatu sistem. Dengan demikian, waktu pengembangan sistem dapat diturunkan karena komponen yang digunakan bersifat reusable.
2.3 Autentikasi Modul autentikasi dibuat dengan menggunakan satu kelas khusus yang berfungsi untuk memberikan autentikasi kepada user. Kelas ini mampu menghasilkan session yang unik kepada user yang meminta login ke suatu aplikasi tertentu. Session ini disimpan di dalam tabel user aktif dalam basis data untuk memantau aktivitas user. Pembuatan session dilakukan dengan metode one way hash terhadap fungsi waktu. Hal ini disebabkan karena waktu merupakan variabel yang selalu berubah sehingga dapat digunakan sebagai identifier yang unik. Metode hashing yang dipakai untuk mengembangkan kelas ini adalah MD5. 2.4 Autorisasi
3.2 Format Data XML Untuk membangun suatu format data yang seragam dalam komunikasi data antara klien dan server dibutuhkan dua buah kelas XML khusus yang berfungsi untuk menghasilkan dokumen XML dan membaca dokumen tersebut. XML composer merupakan suatu kelas yang dibuat khusus untuk mengubah format teks menjadi XML. Kelas ini bekerja dengan memperhatikan struktur hirarkis dari sebuah tree. Dokumen XML memiliki struktur tree yang terdiri dari elemen, atribut, isi dan lain-lain. Susunan ini bersifat dinamis
Modul autorisasi dibuat dengan menggunakan satu kelas berfungsi untuk memeriksa validitas masa berlaku suatu session. Apabila data end session yang ada dalam tabel user aktif masih kosong, maka session tersebut masih aktif. Namun, jika session sudah habis masa berlakunya, maka akan dibangkitkan exception yang menyampaikan kegagalan sehingga aplikasi dapat merekomendasikan user untuk melakukan login. Jika session tersebut masih valid, maka akan dilanjutkan dengan pemeriksaan hak akses dengan mencocokkan
4
INDAH KURNIA – 5201.100.032
SEMINAR TUGAS AKHIR PERIODE JULI 2005
sehingga memungkinkan terjadinya modifikasi dokumen yang meliputi aktivitas penambahan data, penghapusan data dan pengeditan data. Dokumen ini dibuat dalam bentuk DOM dengan menggunakan JAXP. Kelas ini menggunakan objek yang berfungsi untuk membangun sebuah dokumen. Dokumen tersebut dapat dipakai sebagai sarana untuk menciptakan root dan node-node yang ada di bawahnya. Kemudian, dokumen akan mendeskripsikan elemen-elemen yang menjadi properti dari masing-masing node lalu mendefinisikan data yang menjadi isi dari elemen tersebut. Sedangkan, XML parser merupakan suatu kelas khusus untuk mengubah data dalam format XML menjadi teks. Kelas ini menggunakan library JAXP yang dikembangkan untuk melakukan parsing data XML. Kelas ini mampu memisahkan data XML menjadi elemen-elemen yang menyusun suatu dokumen.
IV. UJI COBA PERANGKAT LUNAK Untuk melakukan uji coba server autentikasi dibutuhkan 1 komputer setara server dan 5 komputer klien dengan spesifikasi sebagai berikut: Server • Sistem Operasi : Red Hat Linux Advance Server • Prosesor : Pentium 4 dengan kecepatan 3 GHz • RAM : 1 GB DDRAM • Hard Disk : 240 GB • LAN Card : 1 Gbps • Alamat IP : 10.126.15.245 Klien • Sistem Operasi : Windows 2000 Professional Service Pack 2 • Prosesor : Pentium 4 dengan kecepatan 2.8 GHz • RAM : 506 MB DDRAM • HD : 80 GB • LAN Card : 10/100 Mbps
3.2 Sistem Terdistribusi dengan EJB Sistem terdistribusi ini direalisasikan dengan penerapan package EJB yang dibangun sebagai sarana untuk mempermudah hubungan antara aplikasi klien dengan server autentikasi. Keberadaan package ini akan meningkatkan fleksibilitas penambahan serta operasional klien. Dengan demikian, aplikasi klien tidak perlu memiliki program khusus untuk berhubungan dengan server autentikasi karena objek-objek yang digunakan sebagai sarana transformasi data dapat diakses secara remote dari server. Package EJB ini tersusun dari dua jenis interface, yaitu remote interface dan remote home interface. Remote interface disediakan agar methodmethod tertentu dapat diakses oleh kelas-kelas yang ada diluar kontainer EJB. Sedangkan remote home interface digunakan untuk mengatur penggunaan komponen EJB yang meliputi pembuatan bean, penghapusan bean serta java bean yang berfungsi sebagai finder. Komponen EJB yang dibahas diatas didistribusikan sebagai interface yang menghubungkan antara klien dan server. Dalam melakukan operasinya, klien akan menggunakan objek yang ada di server yang dapat diremote dengan mengirimkan parameter-parameter yang didefinisikan dalam kelas yang memiliki extends terhadap EJBObject. Objek-objek lain yang bertugas untuk mengolah parameter yang dapat diremote dari aplikasi klien meliputi kelas-kelas yang berhubungan dengan enkripsi dan dekripsi data serta kelas yang bertugas untuk mengubah format teks ke XML maupun sebaliknya.
Aplikasi • Nama Aplikasi : FRS Online • User : administrator, mahasiswa, dosen • Data : data mahasiswa, data dosen, data mata kuliah, nilai, perwalian • Prosedur : lihat, tambah, edit, hapus data sesuai dengan konfigurasi persyaratan yang telah ditentukan. 4.1 Uji Coba Keamanan Data Untuk menguji keamanan transmisi data lewat jaringan, maka pengujian ini dilakukan dalam bentuk usaha penyadapan data yang dikirimkan dari aplikasi ke server maupun sebaliknya. Data yang dikirimkan dari klien ke server ditangkap di tengah perjalanan. Data tersebut kemudian diambil dan dibaca. Data yang sudah terenkripsi dengan baik seharusnya terdiri dari data-data yang tidak bisa dipahami manusia karena terdiri dari karakter-karakter yang tidak berguna. Namun apabila data ini masih bisa terbaca oleh manusia, maka proses enkripsi data dikatakan belum efektif. Keberhasilan uji coba ini ditentukan oleh besarnya jumlah data terenkripsi yang dapat diubah menjadi plaintext. Semakin sedikit jumlah plaintext yang terbaca pada saat terjadi penyadapan, maka keamanan transmisi data menjadi lebih baik. Percobaan ini dilakukan dengan membandingkan dua buah aplikasi yang sama di mana salah satu aplikasi menggunakan server autentikasi dan aplikasi yang lain menggunakan
5
INDAH KURNIA – 5201.100.032
SEMINAR TUGAS AKHIR PERIODE JULI 2005
selama proses transmisi, maka integritas data akan menjadi semakin baik. Pengujian ini dilaksanakan dengan melakukan penyadapan sekaligus pengubahan data. Usaha penyadapan dan perubahan data dilakukan 100 kali untuk setiap prosedur pada masing-masing jenis aplikasi. Percobaan ini dilakukan dengan membandingkan dua buah aplikasi yang sama di mana salah satu aplikasi menggunakan server autentikasi dan aplikasi yang lain menggunakan session biasa. Gambar 4.2 menunjukkan rekapitulasi grafik perbandingan perubahan data selama transmisi yang didapat selama percobaan. Pada grafik tersebut terlihat bahwa aplikasi yang menggunakan server autentikasi memiliki stabilitas di titik nol karena tidak adanya data yang berhasil diubah sehingga data yang tidak sesuai dengan aslinya akan ditolak semua. Sedangkan aplikasi yang tidak menggunakan server autentikasi menghasilkan data yang sebagian besar mengalami perubahan tetapi masih bisa diproses. Hasil pengujian terhadap proses autorisasi prosedur yang dibuktikan pada grafik 4.2 menunjukkan bahwa yang menggunakan server autentikasi lebih menjamin integritas data dibandingkan dengan aplikasi yang tidak menggunakan server autentikasi. Hal ini dibuktikan pada aplikasi yang menggunakan server autentikasi dengan tidak adanya data yang berubah selama pengiriman. Kondisi ini disebabkan karena server autentikasi mampu mereduksi adanya perubahan data yang terjadi selama transmisi. Penggunaan digital signature, digital certificate dan passphrase merupakan faktor penting yang dapat meyakinkan penerima data untuk menguji bahwa data tersebut berasal dari pengirim yang terpercaya. Apabila data tersebut mengalami perubahan selama perjalanan, maka perubahan ini akan terdeteksi sebagai bentuk ketidakcocokan pada saat dekripsi antara data yang dikirim dengan data yang ada pada digital certificate yang berakibat data tidak dapat diubah ke plaintext.
session biasa. Gambar 4.1 menunjukkan rekapitulasi grafik perbandingan data yang berhasil dibaca yang didapat selama percobaan. Penyadapan data yang dilakukan pada aplikasi yang dilakukan selama 100 kali percobaan.Pada grafik tersebut terlihat bahwa aplikasi yang menggunakan server autentikasi memiliki stabilitas di titik nol karena tidak adanya data yang berhasil dibaca. Sedangkan aplikasi yang tidak menggunakan server autentikasi menghasilkan data yang semuanya berhasil dibaca.
Ju m lah d ata terb aca
120 100 80
Aplikasi tanpa server autentikasi
60
Aplikasi dengan server autentikasi
40 20 0 1 3 5 7 9 11 13 15 17 19 21 23 Jumlah prosedur
Gambar 4.1 Grafik Hasil Pembacaan Data yang Berhasil Disadap
Berdasarkan hasil pengujian penyadapan data yang dilakukan menunjukkan bahwa aplikasi yang menggunakan server autentikasi lebih aman dibandingkan dengan aplikasi yang sama tanpa server autentikasi. Hal ini dibuktikan oleh tidak adanya data yang berhasil terbaca disebabkan karena server autentikasi menyediakan mekanisme pengamanan data yang meliputi enkripsi, digital signature, digital certificate serta passphrase. Dengan demikian, plaintext akan sulit didapatkan dari data yang ditransmisikan dan disadap selama perjalanan karena perubahan data yang terenkripsi membutuhkan pasangan kunci yang keduanya terletak di server autentikasi. Sedangkan server autentikasi tidak dapat diakses langsung oleh user yang tidak berkepentingan.
120
4.2 Uji Coba Integritas Data
100 P e r u b a h a n D a ta
Pada pengujian integrasi data digunakan perbandingan antara data yang dikirimkan dengan data yang diterima. Integrasi data yang dimaksud adalah kesamaan antara data yang dikirimkan dengan data yang diterima. Data yang dikirimkan dari klien ke server ditangkap di tengah perjalanan. Data tersebut kemudian diambil dan diubah isinya. Apabila sistem keamanan yang dikembangkan cukup baik, maka perubahan data yang terjadi seharusnya dapat dideteksi. Hasil deteksi tersebut kemudian dijadikan bukti validasi kebenaran data yang diterima. Semakin sedikit jumlah data yang berubah
80
Aplikasi tanpa server autentikasi
60
Aplikasi dengan server autentikasi
40 20 0 1 3 5 7 9 11 13 15 17 19 21 23 Jumlah prosedur
Gambar 4.2 Grafik Perubahan Data Selama Transmisi
6
INDAH KURNIA – 5201.100.032
SEMINAR TUGAS AKHIR PERIODE JULI 2005
autentikasi dapat menerima koneksi dari aplikasi klien secara tak terbatas. Oleh karena itu, pengujian ini dilakukan untuk mengetahui jumlah klien yang dapat ditangani oleh server autentikasi. Semakin banyak jumlah aplikasi yang mampu ditangani oleh server, maka skalabilitas server akan semakin meningkat. Kemampuan server dalam menangani klien ditunjukkan dengan waktu respon yang dibutuhkan untuk mengeksekusi prosedur dari klien. Gambar 4.4 menunjukkan grafik hubungan antara jumlah klien dan kecepatan waktu respon. Pada grafik tersebut terlihat bahwa aplikasi yang menggunakan server autentikasi mengalami peningkatan waktu respon seiring dengan jumlah klien yang terhubung. Sedangkan aplikasi yang tidak menggunakan server autentikasi cenderung mengalami peningkatan waktu respon namun tidak begitu signifikan jika dibandingkan dengan server autentikasi. Berdasarkan hasil uji coba koneksi klien pada grafik 4.4 dapat disimpulkan bahwa server autentikasi mampu menangani klien dalam jumlah besar. Secara teori, server autentikasi dapat menerima koneksi klien sebanyak jumlah port yang dimiliki oleh komputer dikurangi dengan jumlah port yang digunakan untuk mendengarkan ketukan serta port-port lain yang dibuka untuk keperluan aplikasi lain, misalnya basis data PostgreSQL. Setiap aplikasi memiliki port yang spesifik yang didefinisikan pada saat mendaftarkan ke server autentikasi. Di lain pihak, hasil pengujian menunjukkan bahwa penambahan jumlah klien turut mempengaruhi kecepatan eksekusi prosedur. Hal ini terjadi karena penambahan jumlah klien akan meningkatkan jumlah request yang harus ditangani oleh server. Masing-masing request harus melewati proses port knocking terlebih dahulu untuk memeriksa validitas akses. Request yang datang harus antri untuk menunggu giliran diproses. Kondisi inilah yang menyebabkan kecepatan eksekusi menjadi berkurang.
4.3 Uji Coba Validitas Akses Pengujian hak akses dilakukan dengan mengamati user yang tidak memiliki akses tetapi mereka mampu mendapatkan data yang bukan haknya. Pengaksesan ini dilakukan ke prosedur yang tidak seharusnya bisa diakses. Jika akses yang tidak valid ini berhasil dilakukan, maka sistem keamanan yang diterapkan masih belum cukup aman. Semakin sedikit jumlah penyalahgunaan hak akses, maka validitas akses data akan semakin terjamin. Percobaan ini dilakukan dengan membandingkan dua buah aplikasi yang sama di mana salah satu aplikasi menggunakan server autentikasi dan aplikasi yang lain menggunakan session biasa. Gambar 4.3 menunjukkan rekapitulasi grafik perbandingan jumlah penyalahgunaan akses yang didapat selama percobaan. Hasil uji coba validitas akses menunjukkan bahwa aplikasi yang menggunakan server autentikasi lebih menjamin keamanan pengaksesan prosedur dari pihak yang tidak berwenang dibandingkan dengan aplikasi yang sama tanpa server autentikasi. Hal ini ditunjukkan oleh grafik 4.3 yang cenderung stabil. Manfaat ini diperoleh sebagai hasil dari penerapan port knocking yang bertugas mengidentifikasi setiap permintaan yang masuk. Dengan adanya mekanisme port knocking, server autentikasi dapat memastikan bahwa proses login, logoff dan pengaksesan prosedur benar-benar diminta oleh pihak yang memiliki otoritas. Selain itu, server autentikasi juga menyediakan metode untuk menangani permintaan akses ke suatu prosedur. Mekanisme ini melakukan filter tambahan terhadap parameter yang berhubungan dengan persyaratan eksekusi suatu prosedur.
12 10 8
Aplikasi tanpa server autentikasi
6
Aplikasi dengan server autentikasi
35 30 W a k tu re s p o n (d e ti k )
Ju m lah p en yalah g u n aan d ata
14
4 2 0 1 3 5 7 9 11 13 15 17 19 21 23 Jumlah prosedur
Gambar 4.3 Grafik Jumlah Penyalahgunaan Hak Akses
25 20
Aplikasi tanpa server autentikasi
15
Aplikasi dengan server autentikasi
10 5 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
5.3.2.4 Uji Coba Koneksi Klien Pengujian konektivitas klien dilakukan dengan memperhatikan jumlah aplikasi yang mampu ditangani oleh server autentikasi. Secara teori, server
Jumlah klien
Gambar 4.4 Grafik Hubungan Antara Jumlah Klien dan Waktu Respon
7
INDAH KURNIA – 5201.100.032
SEMINAR TUGAS AKHIR PERIODE JULI 2005
1.
5.3.2.5 Uji Coba Koneksi User Pengujian konektivitas user dari aplikasi memperhatikan jumlah permintaan dari user yang ada pada aplikasi yang mampu ditangani oleh server autentikasi. Secara teori, server autentikasi dapat menerima permintaan user secara tak terbatas. Oleh karena itu, pengujian ini dilakukan untuk mengetahui jumlah klien yang dapat ditangani oleh server autentikasi. Kemampuan server dalam menangani user ditunjukkan dengan waktu respon yang dibutuhkan untuk mengeksekusi prosedur yang diakses oleh user. .Semakin besar jumlah user yang dikelola oleh server autentikasi, akan mengakibatkan penurunan waktu respon. Gambar 4.5 menunjukkan grafik hubungan antara jumlah klien dan kecepatan waktu respon. Pada grafik tersebut terlihat bahwa aplikasi yang menggunakan server autentikasi mengalami peningkatan waktu respon seiring dengan jumlah user yang terhubung. Sedangkan aplikasi yang tidak menggunakan server autentikasi cenderung mengalami peningkatan waktu respon namun tidak begitu signifikan jika dibandingkan dengan server autentikasi.
2.
4.2 Kemungkinan Pengembangan Pengembangan lebih lanjut yang dapat dilakukan untuk memperbaiki kinerja maupun fungsi server autentikasi adalah peningkatan efektivitas rekayasa modul server sehingga dapat memperbaiki kecepatan pemrosesan permintaan data dari klien. Selain itu, peningkatan darisisi keamanan dapat dilakukan dengan menambahkan dengan aplikasi keamanan yang sudah ada, seperti firewall, Secure Socket Layer (SSL) dan lain-lain. Antarmuka administrasi server autentikasi dapat lebih ditingkatkan variasinya sehingga tidak hanya mencakup aplikasi berbasis web saja. Dengan demikian, administrasi server autentikasi dapat dimanfaatkan oleh perangkat lunak maupun perangkat keras lain yang memahami format XML, misalnya wireless device.
35 30 W aktu respon (detik)
Server autentikasi dapat bekerja secara fleksibel dalam menerima aplikasi dan user baru yang memudahkan integrasi aplikasi secara terpusat. Server autentikasi mampu memberikan keamanan sistem yang ditunjukkan oleh resistensi yang stabil terhadap pembacaan plaintext dari data yang dikirimkan, perubahan data oleh serangan man in the middle dan penyalahgunaan hak akses.
25 20
Aplikasi tanpa server autentikasi
15
Aplikasi dengan server autentikasi
V. DAFTAR PUSTAKA [1] [KNU-1998] – Knudsen, B, Jonathan. Java Cryptography. First Edition, O’Reilly. 1998 [2] [KEM-2003] – Kemp, Bill; Helton, Rich. Fundamental Mechanism for Authentication and Authorization Security. February 2003 [3] [KIN-1996] – King, Christopher. WebAccess Authentication Using Radius: An Intermediate Method for Secure Exchange on The Web. Web Technique Magazine. August 1996. [4] [NAG-2002] – Nagappan, Ramesh; Skoczylas, Robert; Srinagesh, Rima. Developing Java Web Services: Architecting and Developing Secure Web ServicesUsing Java. Wiley & Sons. 2002 [5] [MAT-2003] – Matsuyama, Hiromi. Application Guidelines for Attribute Authentication. Authentication Working Group, ECOM. 2003 [6] [VIE-2002] – Viega, John; McGraw, Gary. Building Secure Software. Addison Wesley. 2002 [7] http://www.cryptix.org [8] http://www.portknocking.org/view/details
10 5 0 1
4
7 10 13 16 19 22 25 28 Jumlah user
Gambar 5.5 Grafik Hubungan Jumlah User dan Waktu Respon
Berdasarkan hasil uji coba koneksi user dapat ditarik kesimpulan bahwa server autentikasi mampu menangani user dalam jumlah besar. Apabila jumlah user bertambah, maka jumlah permintaan pelayanan juga akan bertambah. Hal inilah yang menyebabkan terjadinya penurunan kecepatan respon yang diakibatkan oleh panjangnya antrian request yang menunggu divalidasi oleh port knocking. IV. PENUTUP 4.1 Simpulan Berdasarkan tinjauan hasil evaluasi dari percobaan yang telah dilakukan terhadap server autentikasi, maka dapat diambil simpulan sebagai berikut:
8
INDAH KURNIA – 5201.100.032