Otentikasi Pada Sistem Informasi Berbasis Web
Document Sample


Otentikasi Pada Sistem Informasi Berbasis Web
NAMA : Taufiqurrahman
NIM : 09071003034
KELAS : SISTEM INFORMASI B ‘07
FAKULTAS ILMU KOMPUTER
UNIVERSITAS SRIWIJAYA
2010
Daftar Isi
Daftar Isi.............................................................................................................................2
Pendahuluan.......................................................................................................................3
Otentikasi oleh Webserver................................................................................................4
Otentikasi Dasar HTTP.....................................................................................................4
Otentikasi Dasar Berbasis Password...............................................................................5
Otentikasi Dasar Berbasis Host........................................................................................6
Otentikasi Digest HTTP....................................................................................................6
Cara Kerja Otentikasi Dasar............................................................................................7
Dukungan Otentikasi Pada PHP......................................................................................9
Daftar Pustaka.................................................................................................................11
2
Otentikasi Pada Sistem Informasi Berbasis Web
Pendahuluan
Confidentiality merupakan hal yang sangat penting dalam pebangunan sistem
informasi berbasis web. Confidentiality (Kerahasiaan) adalah perlindungan informasi
terhadap mereka yang tidak seharusnya menerima informasi.
Salah satu cara yang paling umum dalam menjaga kerahasiaan adalah dengan
penggunaan username dan password. Seseorang ”log in” ke dalam server dengan
mengetikkan username dan password . proses login biasanya terdiri dari tiga buah
tahapan yaitu:
1. Identifikasi. Di tahap ini pengguna memberitahukan siapa dirinya.
2. Otentikasi. Di tahapan ini si pengguna memverifikasi klaimnya tersebut. Di
tahapan ini ada tiga hal yang dapat memverifikasi klaim user yaitu: 1) sesuatu
yang mereka ketahui, contohnya adalah kode PIN dan password; 2) sesuatu yang
mereka miliki, contohnya adalah kartu tanda pengenal dan kartu magnetik; 3)
sesuatu yang menjadi jatidiri, contohnya adalah sidik jari dan pindai retina.
3. Otorisasi. Pada tahapan terakhir ini jika identifikasi pengguna benar, sistem
menyelesaikan proses loginnya dan mengasosiasikan identitas pengguna dan
informasi kontrol akses dengan sesi pengguna.
Proses otentikasi pada prinsipnya berfungsi sebagai kesepakatan pengguna dan
pemberi layanan dalam proses pengaksesan resource. Pihak pengguna harus mampu
memberikan informasi yang dibutuhkan pemberi layanan untuk berhak mendapatkan
resourcenya. Sedang pihak pemberi layanan harus mampu menjamin bahwa pihak yang
tidak berhak tidak akan dapat mengakses resource ini.
Pokok pembahasan otentikasi yang dibahas pada artikel ini menggunakan apache
dan PHP dalam penggunaanya.
3
Otentikasi oleh Webserver
Pada webserver Apache ada beberapa metode yang dipakai dalam mengimplementasikan
mekanisme otentikasi. Pada prinsipnya mekanisme ini dibagi menjadi dua jenis yaitu:
1. otentikasi dasar HTTP (HTTP Basic Authentication), yang dapat menggunakan
beberapa media penyimpanan data otentikasi seperti file teks, file database DBM,
atau RDBMS (misalnya MySQL atau PostgreSQL).
2. otentikasi menggunakan MD5 Digest.
Dalam melakukan perlindungan terhadap suatu resource, kedua jenis otentikasi di atas
menggunakan metode berbasis realm (daerah akses yang dikontrol). Setiap resource baik
tunggal maupun jamak yang dilindungi akan mempunyai sebuah nama realm. Nama
realm dapat dispesifikasi dalam file konfigurasi dengan menggunakan direktif
AuthName. Pengguna yang ingin mengakses resource ini untuk pertama kalinya harus
melakukan otentikasi dengan menyertakan nama realm. Pada pengaksesan selanjutnya
realm ini secara ariable akan tercakup dalam URI.
Otentikasi Dasar HTTP
Otentikasi dasar HTTP menggunakan teknik base64-encoding sederhana, yang
diaplikasikan untuk username dan password sebelum data tersebut ditransfer ke server.
Otentikasi jenis ini dipakai untuk membatasi akses ke halaman-halaman Web dengan
berdasarkan pada:
nama host dari browser;
password yang dimasukkan oleh user.
Proses pengontrolan terhadap resource yang dilindungi ini biasanya menggunakan
direktif yang dapat dituliskan dalam file konfigurasi httpd.conf secara langsung atau
disimpan dalam file .htaccess. Penggunaan nama file yang lain dapat dilakukan dengan
cara mengeset direktif AccessFileName dalam file konfigurasi httpd.conf. Isi dari direktif
4
ini adalah instruksi yang dipakai oleh webserver untuk memastikan siapa yang berhak
mengakses dan siapa yang tidak berhak mengakses ke suatu resource.
Dalam contoh ini kita akan menggunakan file .htaccess untuk menyimpan instruksi
tersebut.
Otentikasi Dasar Berbasis Password
Jika seorang pengguna untuk pertama kalinya mencoba mengakses direktori yang
dilindungi, maka ia harus terlebih dahulu menuliskan nama dan password ke dalam
sebuah form yang muncul dalam bentuk window pop up. Jika nama dan password
pengguna ini diizinkan untuk mengakses, maka browser berhak mengakses ke direktori
ini selama sisa sesi browsing.
Untuk menggunakan fasilitas ini, kita harus menuliskan beberapa instruksi ke dalam file
.htaccess yang harus disimpan dalam direktori yang akan dilindungi. Sebagai contoh
adalah sebagai berikut:
AuthType Basic
AuthName “Protected Directory”
AuthUserFile /usr/local/httpd/.htpasswd
Require valid-user
Di sini setiap kali direktori diakses, webserver akan melihat ke file .htpasswd yang
berada di direktori /usr/local/httpd untuk memastikan apakah browser mempunyai akses
atau tidak. File ini dapat dibuat dengan bantuan program htpasswd yang disertakan
bersama Apache. Isi dari file ini kurang lebih baris-baris seperti berikut:
eko:Yq8VgagJ3WXCo
di mana kolom pertama (sebelum titik dua) adalah nama pengguna dan kolom berikutnya
adalah password yang sudah terenkripsi.
5
Otentikasi Dasar Berbasis Host
Jenis otentikasi dasar lainnya adalah pembatasan akses berdasarkan host klien. Host dapat
berupa nama domain seperti f117.bomber.org atau alamat IP seperti 172.20.172.10.
Contoh dari file .htaccess yang hanya mengizinkan host dengan alamat IP 172.20.172.10
untuk mengakses direktori adalah seperti berikut:
AuthType Basic
AuthName “Protected Directory”
AuthUserFile /dev/null
order deny,allow
deny from all
allow from 172.20.172.10
Dukungan otentikasi di atas diimplementasikan oleh modul Apache mod_auth. Untuk
menggunakan metode otentikasi yang sama, namun dengan menggunakan media
penyimpanan informasi otentikasi lain (bukan file .htpasswd), dapat digunakan modul
mod_auth_dbm, mod_auth_db, atau mod_auth_mysql.
Otentikasi Digest HTTP
Otentikasi yang diimplementasikan dalam modul mod_auth_digest ini mempunyai
kelebihan yaitu ariab passwordnya lebih aman dibandingkan dengan otentikasi dasar.
Password yang dituliskan oleh user akan mengalami proses message digest dengan
metode MD5 terlebih dahulu sebelum dikirimkan ke server. Untuk memanfaatkan
dukungan ini, di sisi browser harus ada dukungan untuk MD5. Internet Explorer 5.0,
Amaya, dan Mozilla mendukung otentikasi digest. Netscape 4.x tidak mendukungnya.
Hal ini dapat menjadi pertimbangan Anda apakah hendak memilih jenis otentikasi ini
atau tidak.
Cara menggunakan otentikasi ini cukup sederhana seperti pada otentikasi dasar. Berikut
adalah contoh konfigurasi file httpd.conf untuk menggunakan otentikasi ini.
6
<Location /private/>
AuthType Digest
AuthName “Protected Directory”
AuthDigestDomain /private/
AuthDigestFile /usr/local/httpd/.digestpw
require valid-user
</Location>
Sebagai AuthType digunakan nilai Digest. File yang akan menyimpan nama penguna
dengan passwordnya dapat diset dengan instruksi AuthDigestFile. Pada contoh di atas,
nama file ini adalah .digestpw yang berada dalam direktori /usr/local/httpd. File ini dapat
dihasilkan dengan bantuan program aplikasi htdigest yang juga disertakan bersama
Apache. Contoh isi dari file ini adalah seperti berikut:
eko:Protected Directory:fbbd87b7dfc47774c42100bf1f5dfe29
Kolom pertama memuat nama pengguna yang dipakai sebagai login. Kolom kedua adalah
nama realm tempat pengguna yang bersangkutan memiliki akses. Sedang kolom ketiga
adalah hasil message digest.
Cara Kerja Otentikasi Dasar
Setelah kita membahas jenis otentikasi, ada baiknya kita mengetahui cara kerja otentikasi
dasar ini.
Jika browser untuk pertama kalinya mengakses resource yang dilindungi:
GET /private/pic01.jpg HTTP/1.1
Host: www.heriyanto.com
maka server akan mengirimkan status respon 401 (Unauthorized) serta header respon
WWW-Authenticate yang berisi tipe otentikasi Basic serta nama realm ke browser:
7
HTTP/1.1 401 Authorization Required
WWW-Authenticate: Basic realm=”Protected Area”
Menerima pesan ini, browser akan meminta pengguna untuk menuliskan username serta
password yang dibutuhkan untuk otentikasi. Di browser GUI seperti Netscape atau IE,
akan muncul window pop up.
Selesai pengguna memasukkan informasi otentikasinya, browser akan kembali
mengakses ke resource yang sama dengan mengirimkan header request Authorization
yang juga berisi username, password serta tipe otentikasi Basic ke server.
GET /private/pic01.jpg HTTP/1.1
Host: www.heriyanto.com
Authorization: Basic c3RldmVuOnN1cGVybWFu
Jika username dan password ini tidak valid, maka server akan mengirimkan status respon
401 seperti sebelumnya. Seandainya username dan password valid, maka webserver baru
akan memberikan resource tersebut.
HTTP/1.1 200 OK
Date: Fri, 16 Nov 2001 19:24:45 GMT
Server: Apache/1.3.20 (Unix) mod_fastcgi/2.2.10
Last-Modified: Thu, 22 Feb 1996 11:45:54 GMT
Content-Length: 23982
...
Untuk selanjutnya, jika mengakses direktori /private atau direktori di bawahnya, browser
akan selalu mengirimkan header request Authorization yang sama. Hal ini dikarenakan
protokol HTTP yang bersifat stateless, sehingga browser harus selalu mengirim ulang
informasi otentikasi kepada server di setiap request.
8
Dukungan Otentikasi Pada PHP
Dukungan otentikasi oleh PHP secara default hanya ada jika PHP dibuat sebagai modul
Apache dan bukan sebagai CGI. Pada dasarnya dukungan ini berkonsep pada cara kerja
otentikasi yang telah kita bahas sebelumnya. Untuk bisa menghasilkan header respon,
dapat digunakan fungsi header().
Kita akan mengambil contoh dari manual PHP untuk menunjukkan dukungan otentikasi
pada PHP. Skrip di bawah ini akan mengharuskan seorang pengguna untuk mengisi
username serta password.
<?
if (!isset($PHP_AUTH_USER)) {
header(”WWW-Authenticate: Basic realm=\”My Realm\””);
header(”HTTP/1.0 401 Unauthorized”);
echo ”Text to send if user hits Cancel button\n”;
exit;
} else {
echo ”<p>Hello $PHP_AUTH_USER.</p>”;
echo ”<p>You entered $PHP_AUTH_PW as your password.</p>”;
}
?>
Jika pengguna sudah mengisi username dan password, maka skrip PHP ini akan kembali
diakses oleh browser dan PHP akan menyimpan beberapa variabel:
$PHP_AUTH_USER berisi username;
$PHP_AUTH_PW berisi password;
$PHP_AUTH_TYPE berisi tipe otentikasi. Manual PHP menyebutkan bahwa
hanya tipe Basic yang didukung oleh PHP.
9
Dalam aplikasi yang sesungguhnya, ariable di atas dapat dimanfaatkan untuk
memeriksa validitas username dan password dengan bantuan database yang menyimpan
data pengguna.
10
Daftar Pustaka
PHP Manual
Otentikasi Menggunakan PHP4, http://www.master.web.id/mwmag/issue/02/content/
fokus-otentikasi_php , 2002
11
Related docs
Get documents about "