Вы находитесь на странице: 1из 16

TUGAS SISTEM INFORMASI BERBASIS WEB

Pada Sistem Informasi Berbasis Web


Nama NIM Kelas : Ilham : 09071003024 : 6B

Autentikasi User

FAKULTAS ILMU KOMPUTER JURUSAN SISTEM INFORMASI 2009/2010


Daftar isi

1. Pendahuluan 2. Pengertian autentikasi 3. Alur dari proses autentikasi 3.1 Pendaftaran user 5.2 Proses autentikasi 4. Penerapan autentikasi user pada script PHP 5. Daftar Pustaka

3 4 5 5 5 6 16

Autentikasi User pada Sistem Informasi Berbasis Web

1. Pendahuluan Sekarang ini , teknologi informasi sedang berkembang dengan pesat yang memungkinkan semua orang dapat berkomunikasi dari satu tempat ke tempat lain dengan jarak ribuan kilometer. Data yang dikirimkan itu menggunakan jalur transmisi telekomunikasi yang belum tentu terjamin keamananya. Bila data yang sedang dikirim melalui media transmisi itu dicuri atau diubah oleh penyadap dan cracker untuk kepentingan tertentu. Hal ini sedang menjadi masalah bagi dunia telekomunikasi terutama dalam pengiriman data penting yang memerlukan kerahasiaan tinggi seperti informasi intelijen kemeliteran, keuangan bank, informasi rahasia negara dan informasi penting lainnya. Berkaitan dengan pengamanan beragam kendali yang dibangun pada perangkat keras dan sistem operasi yang handal dan tidak terkorupsi untuk menjaga integritas program dan data. Untuk mengatasi masalah itu digunakan otentikasi untuk

melindungi data dan informasi pada sistem komputer, agar tidak digunakan atau dimodifikasi orang yang tidak di otorisasi.bahwa informasi di sistem komputer hanya dapat diakses oleh pihak-pihak

yang

diotorisasi

dan

modifikasi

tetap

menjaga

konsistensi

dan

keutuhan data di sistem. 2. Pengertian autentikasi Authentification adalah proses dalam rangka validasi user pada saat memasuki sistem, nama dan password dari user di cek melalui proses yang mengecek langsung ke daftar mereka yang diberikan hak untuk memasuki sistem tersebut. Autorisasi ini di set up oleh administrator, webmaster atau pemilik situs (pemegang hak tertinggi atau mereka yang ditunjuk di sistem tersebut. Untuk proses ini masing-masing user akan di cek dari data yang diberikannya seperti nama, password serta hal-hal lainnya yang tidak tertutup kemungkinannya seperti jam penggunaan, lokasi yang diperbolehkan. Desain dari suatu strategi autentikasi melibatkan berbagai hal seperti mengevaluasi infrastruktur yang ada, membuat account, membuat membuat metode standar untuk untuk megamankan autentikasi proses autentikasi serta dan time jaringan,

synchronization. Saat melakukan desain ini, kita perlu mengetahui jumlah domain controller di organisasi kita apakah jumlahnya cukup untuk memproses/mengautentikasi user berdasarkan jumlah request yang terjadi. Kita dapat membuat account di dalam AD untuk seluruh entitas (users, computers dan resources lain) yang kemudian kita gunakan strategi penggroupan untuk account-account ini. Seting untuk access control kemudian diterapkan terhadap group-group tersebut agar account yang ada dapat menggunakan authenticated identity-nya untuk mengakses resource.

Dalam hal mengedukasi user, kita perlu menyediakan berbagai pedoman ke user, kita perlu mendorong agar user tidak men-share password mereka, dan juga selalu menggunakan password yang kompleks/strong. Implementasinya dari autentikasi user ini adalah berupa login dalam sebuah website. 3. Alur dari proses autentikasi user Berikut ini alur atau proses dari proses autentifikasi user, mulai user tersebut mendaftar. 3.1 Pendaftaran User
1. User mengisi form pendaftaran sebagai legal user (user mengisi

username dan password)


2. Sistem

akan

mengecek

apakah

username

yang

didaftarkan

sudah ada yang memiliki atau belum


3. Jika sudah ada, user diminta mengisi kembali username yang

lain beserta passwordnya. Sedangkan jika belum ada, data user ini akan disimpan dalam database, dengan password terenkripsi. 3.2 Proses Autentifikasi 1. 2. User yang akan mengakses sistem diminta memasukkan Sistem akan mencari password terenkripsi yang tersimpan

username dan password (asli) dalam database berdasarkan username yang terdaftar

3.

Sistem akan mencocokkan antara password asli terenkripsi

yang diisikan user melalui form login, dengan password terenkripsi yang tersimpan dalam database. 4. Jika password asli terenkripsi yang dikirim via form login ini sama dengan password terenkripsi yang ada dalam database, maka user tadi bisa masuk ke dalam sistem. Jika tidak sama, maka user tadi tidak berhak masuk ke sistem. Proses autentifikasi tidak hanya sampai sini saja Kadangkala user nakal ingin masuk ke sistem tanpa melalui proses autentifikasi terlebih dahulu atau melakukan by pass ke dalam sistem. Nah hal ini juga berbahaya. Kita harus bisa mengantisipasi hal ini bila tidak ingin sistem yang dibangun diacak-acak oleh orang yang tidak berhak.

4. Penerapan autentikasi user pada script PHP Contoh membuat autentifikasi user dengan script PHP, serta mengantisipasi user yang mem-by pass autentifikasi ini. Pertama, siapkan tabel user terlebih dahulu.
1 2 3 4 5 CREATE TABLE user ( username varchar(20), password varchar(32), PRIMARY KEY (username) )

Field username ini dibuat sebagai primary key karena username harus unik, tidak boleh ada username yang sama. Sedangkan password di set tipe datanya varchar dengan panjang field 32. Kenapa
6

32? karena password yang akan disimpan di sini adalah terenkripsi. Pengekripsian ini dilakukan untuk keamanan data agar tidak mudah dibaca oleh sembarangan orang dan dalam pengeksripsian ini password dalam yang tersimpan dalam database berbentuk karakter acak dengan bit bit tertentu. Ada banyak metode metode dalam pengeksripsian : Metode-metode Enkripsi Modern
1.

Data Encryption Standard (DES) : standar bagi USA Government, didukung ANSI dan IETF, popular untuk metode secret key, terdiri dari : 40-bit, 56-bit dan 356bit (Triple DES). Advanced Encryption Standard (AES) : untuk

2.

menggantikan DES (launching akhir 2001), menggunakan variable length block chipper, key length : 128-bit, 192bit, 256-bit, dapat diterapkan untuk smart card.
3.

Digital Certificate Server (DCS) : verifikasi untuk digital signature, autentikasi user, menggunakan public dan private key,contoh : Netscape Certificate Server. IP Security (IPSec) : enkripsi public/private key , dirancang oleh CISCO System, menggunakan DES 40-bit dan authentication, built-in pada produk CISCO, solusi tepat untuk Virtual Private Network (VPN) dan Remote Network Access.

4.

5.

Kerberos : solusi untuk user authentication, dapat menangani multiple platform/system, free charge (open

source), IBM menyediakan versi komersial : Global Sign On (GSO).


6.

Point to point Tunneling Protocol(PPTP) : Layer Two Tunneling Protocol (L2TP), dirancang oleh Microsoft, authentication berdasarkan PPP(Point to point protocol), enkripsi berdasarkan algoritm Microsoft (tidak terbuka), terintegrasi dengan NOS Microsoft (NT, 2000, XP). Remote Access Dial-in User Service (RADIUS), multiple remote access device menggunakan 1 database untuk authentication, didukung oleh 3com, CISCO, Ascend, tidak menggunakan encryption. RSA Encryption : dirancang oleh Rivest, Shamir, Adleman tahun 1977, standar de facto dalam enkripsi public/private key , didukung oleh Microsoft, apple, novell, sun, lotus, mendukung proses authentication, multi platform. Secure Hash Algoritm (SHA), dirancang oleh National Institute of Standard and Technology (NIST) USA., bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature., SHA-1 menyediakan 160-bit message digest, Versi : SHA-256, SHA-384, SHA-512 (terintegrasi dengan AES).

7.

8.

9.

10.

MD5 : dirancang oleh Prof. Robert Rivest (RSA, MIT) tahun 1991, menghasilkan 128-bit digest., cepat tapi kurang aman.

11.

Secure Shell (SSH) : digunakan untuk client side authentication antara 2 sistem, mendukung UNIX, windows, OS/2, melindungi telnet dan ftp (file transfer protocol. Secure Socket Layer (SSL) : dirancang oleh Netscape, menyediakan enkripsi RSA pada layes session dari model OSI., independen terhadap servise yang digunakan, melindungi system secure web e-commerce, metode public/private key dan dapat melakukan authentication, terintegrasi dalam produk browser dan web server Netscape. Security Token, aplikasi penyimpanan password dan data user di smart card.

12.

13.

14.

Simple Key Management for Internet Protocol : seperti SSL bekerja pada level session model OSI., menghasilkan key yang static, mudah bobol.

Langkah berikutnya adalah membuat form pendaftaran usernya. register.php


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <form method="post" action="submit.php"> <table border="0"> <tr> <td>Masukkan Username </td> <td><input name="username" type="text"></td> </tr> <tr> <td>Masukkan Password </td> <td><input name="pass1" type="password"></td> </tr> <tr> <td>Ulangi Password </td> <td><input name="pass2" type="password"></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="Submit"

18 19 20

value="Submit"></td> </tr> </table> </form>

Output :

Pada form di atas terdapat dua isian untuk password. Dengan mengisi password lebih dari satu kali akan memastikan bahwa password yang dimasukkan adalah benar dari sisi ejaannya.Selanjutnya script untuk pemrosesan registrasi user ini. submit.php
1 2 3 4 5 6 7 <?php $username = $_POST['username']; $password1 = $_POST['pass1']; $password2 = $_POST['pass2']; // cek kesamaan password if ($password1 == $password2)

10

{ 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 mysql_connect("namahost", "dbuser", "dbpass"); mysql_select_db("dbname"); // perlu dibuat sebarang pengacak $pengacak = "NDJS3289JSKS190JISJI"; // mengenkripsi password dengan md5() dan pengacak $password1 = md5($pengacak . md5($password1) . $pengacak); // menyimpan username dan password terenkripsi ke database $query = "INSERT INTO user VALUES('$username', '$password1')"; $hasil = mysql_query($query); // menampilkan status pendaftaran if ($hasil) echo "User sudah berhasil terdaftar"; else echo "Username sudah ada yang memiliki"; } else echo "Password yang dimasukkan tidak sama"; ?>

Untuk proses pengenkripsian password , kita b membuat pengacak yang lain, atau mengkombinasikan sendiri bentuknya, misalnya $password1 = md5($pengacak.md5($pengacak. yang seperti lain. Jangan ini

$password1.$pengacak).$pengacak)atau menggunakan enkripsi $password1 = md5($password1);

Selanjutnya, misalkan kita buat skenario bahwa terdapat dua buah halaman (halaman 1 dan halaman 2) dalam sistem yang membutuhkan autentifikasi user sebelum masuk ke dalamnya. Untuk autentifikasi, buat form loginnya. login.php
1 2 3 <form method="post" action="loginsubmit.php"> <table border="0"> <tr>

11

4 5 6 7 8 9 10 11 12 13 14 15 16

<td>Masukkan Username </td> <td><input name="username" type="text"></td> </tr> <tr> <td>Masukkan Password </td> <td><input name="pass" type="password"></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="Submit" value="Submit"></td> </tr> </table> </form>

Output :

Kemudian script untuk mengolah loginnya loginsubmit.php


1 2 3 4 5 6 7 8 9 10 11 12 13 <?php // menjalankan session session_start(); $username = $_POST['username']; $password = $_POST['pass']; mysql_connect("namahost", "dbuser", "dbpass"); mysql_select_db("dbname"); // mencari password terenkripsi berdasarkan username $query = "SELECT * FROM user WHERE username = '$username'"; $hasil = mysql_query($query) or die("Error");

12

$data 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

= mysql_fetch_array($hasil); = "NDJS3289JSKS190JISJI";

$pengacak

// cek kesesuaian password terenkripsi dari form login // dengan password terenkripsi dari database if (md5($pengacak.md5($password).$pengacak) == $data['password']) { // jika sesuai, maka buat session untuk username $_SESSION['username'] = $username; // menampilkan menu ke halaman akses echo "<h2>Login sukses</h2>"; echo "<p><a href=\"hal1.php\">Menu 1</a> | <a href=\"hal2.php\">Menu 2</a></p>"; } else echo "<h2>Login Gagal</h2>"; ?>

Dalam cek kesesuaian password terenkripsi dari form dan dari database, harus menggunakan pengacak dan rule yang sama dengan proses mengenkripsi password sebelum disimpan ke database (lihat kembali script submit.php). Selanjutnya, untuk mencegah by pass yang dilakukan user nakal ke dalam halaman 1 dan 2, maka kita perlu membuat script untuk menanggulangi hal ini.Maka kita buat script untuk cek validasi. cek.php
1 2 3 4 5 6 7 8 9 10 11 12 <?php session_start(); // mengecek ada tidaknya session untuk username if (!isset($_SESSION['username'])) { echo "<h1>Anda belum login</h1>"; exit; } ?>

Script di atas berguna untuk mengecek keberadaan session untuk username. Bila user tidak melakukan login, maka session
13

username tidak pernah dibuat. Sehingga apabila user tidak melakukan login, akan muncul pesan Anda belum login. Perintah isset() digunakan untuk mengecek keberadaan suatu variabel (dalam hal ini variabel session untuk username). Perintah ini akan menghasilkan nilai TRUE jika variabel yang dicek ada, dan FALSE jika variabel tidak ada. Script cek.php di atas harus disisipkan di setiap halaman yang sifatnya private atau membutuhkan autentifikasi user.

Misalkan isi halaman 1 dan 2 adalah sebagai berikut hal1.php


1 2 3 4 5 6 7 8 9 10 11 <?php include "cek.php"; echo "<h1>Ini Halaman 1</h1>"; echo "<p><a href=\"hal1.php\">Menu 1</a> | <a href=\"hal2.php\">Menu 2</a></p>"; echo "<p>Ini isi halaman 1. Ini isi halaman 1</p>"; echo "<p>Ini isi halaman 1. Ini isi halaman 1</p>"; echo "<p><a href=\"logout.php\">Logout</a></p>"; ?>

hal2.php
1 2 3 4 5 6 7 8 9 10 11 <?php include "cek.php"; echo "<h1>Ini Halaman 2</h1>"; echo "<p><a href=\"hal1.php\">Menu 1</a> | <a href=\"hal2.php\">Menu 2</a></p>"; echo "<p>Ini isi halaman 2. Ini isi halaman 2</p>"; echo "<p>Ini isi halaman 2. Ini isi halaman 2</p>"; echo "<p><a href=\"logout.php\">Logout</a></p>"; ?>

14

Perhatikan di setiap halaman private disisipkan script cek.php. Gunanya adalah dalam script tersebut sebelum menampilkan isi halaman, terlebih dahulu harus di cek apakah user yang akan mengakses sudah login atau belum. Jika belum langsung muncul pesan belum login dan exit artinya isi halaman tidak ditampilkan di browser. Terahkhir script untuk log out. Konsep logout dalam autentifikasi adalah menghapus variabel session untuk username tadi.

logout.php
1 2 3 4 5 6 7 8 9 10 <?php session_start(); // menghapus session username unset($_SESSION['username']); echo "<h1>Anda sudah logout</h1>"; ?>

15

5. Daftar Pustaka http://www.tugasakhir.net/otentikasi-pada-aplikasi-berbasisweb/ diakses pada tanggal 7 april 2010


-

http://wss-id.org/blogs/bobby/archive/2009/07/20/restrictingdelegated-authentication.aspx diakses pada tanggal 7 april 2010 http://blog.re.or.id/metode-metode-enkripsi-modern.htm diakses


pada tanggal 7 april 2010

http://id.how-to.mobi/index.php?id=60757 diakses pada tanggal 7


april 2010

http://blog.rosihanari.net/membuat-autentifikasi-user-di-php
diakses pada tanggal 7 april 2010

http://www.scribd.com/doc/28502927/Membuat-AutentifikasiUser-Di-PHP?secret_password=&autodown=pdf diakses pada


tanggal 7 april 2010

16

Вам также может понравиться