• Tidak ada hasil yang ditemukan

BAB V PENUTUP

5.2. Saran

Berdasarkan penelitian yang diperoleh, ada beberapa saran untuk pengembangan sistem lebih lanjut, saran-saran tersebut yaitu:

1. Aplikasi acrypt cs berbasis client server dapat bervariasi

menggunakan bahasa pemprograman dan metode yang lain agar dapat memberikan keamanan yang lebih baik sehingga dapat dikembangkan untuk pengiriman file dari server ke client atau dari client ke client lain.

2. Aplikasi acrypt cs hanya dapat mengupload 10 file dan ukuran

maksimal 1GB, untuk proses enkripsi, diharapkan dapat

dikembangkan sehingga dapat mengupload file lebih banyak dengan ukuran lebih besar tanpa harus memperlambat proses enkripsi dan dekripsi secara signifikan.

DAFTAR PUSTAKA

Ariyus, Dony. 2006. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta : Graha Ilmu.

Ariyus, Dony. 2008. PENGANTAR ILMU KRIPTOGRAFI Teori Analisis dan

Implementasi. Yogyakarta : Andi.

Burnett, Steve and Stephen Paine. 2004. RSA Security’s Official Guide to CRYPTOGRAPHY. California : McGraw-Hill/Osborne.

Hartono, Jogiyanto. 1999. Pengenalan Komputer. Yogyakarta : Andi.

Kahate, Atul. 2003. CRYPTOGRAPHY AND NETWORK SECURITY. California :

McGraw-Hill.

Muliati, Sarlika.2008. Implementasi Digital Envelope Dengan Menggunakan Metode Blowfish Dan Rivest Shamir Adleman Di Ppptmgb “Lemigas”. Jakarta : UIN Syarif Hidayatullah.

Peranginangin, Kasiman. 2006. Aplikasi WEB dengan PHP dan MySQL. Yogyakarta : Andi.

Kenneth E. Kendall., Jullie E. Kendall. 2003. Systems Analysis and Design. fifth Edition. Dialihbahasakan oleh Thamir Abdul Hafed Al-Hamdany, B.Sc, M.Sc dalam buku Analisa dan Perancangan Sistem Jilid 1. Jakarta : Prenhallindo.

Kristanto, Andri. 2003. Keamanan Data Pada Jaringan Komputer. Bandung : Gaya Media.

Munir, Rinaldi. 2006. Kriptografi. Bandung : Informatika.

Nanang, Herlino. 2004. Web Programming. Jakarta : UIN Syarif Hidayatullah.

Pressman, Roger S. 2002. Rekayasa Perangkat Lunak Pendekatan Praktisi (Buku

Satu). Yogyakarta : Andi.

Stalling, William. 2003. Cryptography and Network Security Principles and Practices Third Edition. New Jersey : Prentice Hall.

Wahana Komputer. 2003. Memahami Model Enkripsi & Security Data. Yogyakarta : Andi

Wicaksono, Prasetyo Andy. 2006. Studi Pemakaian Algoritma RSA Dalam Proses

Enkripsi dan Aplikasinya. Bandung : Institut Teknologi Bandung

LAMPIRAN A HASIL WAWANCARA

Narasumber : Andi Muhammad AR

(Dirut CV Maharta Mandiri Promo)

Pewawancara : Zaenal Muttaqin

Waktu : 9 Juli 2009

1. T : Bagaimana pemahaman anda mengenai keamanan data atau kriptografi ? J : Keamanan data merupakan hal yang sangat penting bagi setiap

perusahaan, karena apabila data-data penting perusahaan tidak memiliki keamanan data yang baik, maka informasi yang dimiliki perusahaan akan mudah dicuri oleh pihak yang tidak bertanggung jawab atau yang tidak mempunyai hakuntuk informasi tersebut.

2. T : Menurut anda perlukah data perusahaan anda untuk diamankan?

J : Ya, karena data perusahaan adalah identitas perusahaan, yang harus kita jaga dengan benar jangan sampai data perusahaan tersebut dicuri oleh pihak yang tidak bertanggung jawab.

3. T : Pernahkah anda mendengar tentang aplikasi keamanan data berbasis client server?

J : Pernah.

4. T : Pedulikah Bapak terhadap keamanan data di CV ini ?

J : Ya. Apapun data yang dimiliki perusahaan harus diamankan dengan sebaik mungkin, untuk mencegah hal-hal yang tidak diinginkan oleh perusahaan dan dapat merugikan perusahaan.

5. T : Pentingkah data di perusahaan ini untuk diamankan ? J : Ya, penting.

6. T : Jenis data apa yang biasanya dikirim via jaringan di CV ini ?

J : Biasanya semacam surat penawaran kepada perusahaan lain atau mitra dari CV Maharta Mandiri Promo, order pemesanan barang, desain produk, digital printing, tagihan pembayaran, laporan keuangan, proposal tender, dan lain-lain.

7. T : Jika anda diperkenalkan dengan sebuah aplikasi keamanan data, apakah anda akan menggunakannya ?

J : Tergantung sesuai dengan kebutuhan perusahaan dan menganalisa terlebih dahulu. Jika setelah melakukan analisa aplikasi tersebut memang sesuai dengan yang dibutuhkan oleh perusahaan maka kami akan mengunakan aplikasi keamanan data tersebut.

8. T : Apakah di CV ini pernah terjadi pencurian data oleh pihak yang tidak berhak?

J : Pernah.

9. T : Jika ada, apakah CV ini dirugikan dengan pencurian data tersebut?

J : Ya, tentu saja merugikan. Saat itu desain yang kami buat dicuri oleh orang lain dan menyebabkan tender jatuh ke perusahaan lain yang mematok harga lebih murah dengan desain yang sama.

LAMPIRAN B

TAMPILAN APLIKASI ACRYPT CS

B.1. Tampilan Aplikasi Acrypt cs

B.1.1. Halaman Login

B.1.2. Halaman Signup

B.1.3. Halaman Utama

B.1.4. Halaman Enkripsi

B.1.5. Halaman Dekripsi

B.1.6. Halaman Inbox

B.1.7. Halaman Outbox

B.1.8. Halaman My Key

B.1.9. Halaman Change Password

B.1.10. Halaman Help

B.1.11. Halaman About

B.2. Tampilan Pesan

B.2.1. Pesan Sign Up Complete

B.2.2. Pesan Kesalahan Input Data B.2.2.1. Kesalahan Login :

B.2.2.2. Kesalahan Sign up :

B.2.2.3. Kesalahan Input file enkripsi :

B.2.2.3. Kesalahan Input password enkripsi :

B.2.3. Konfirmasi Penghapusan File

B.2.4. Konfirmasi Penghapusan Seluruh isi inbox

LAMPIRAN C

KODE SUMBER APLIKASI ACRYPT CS

decrypt.php <?php

function decryptFile($id, $i) {

$hasil = mysql_query("select cipher_name, aes_key, iv from file

where id_file = '$id'"); $row = mysql_fetch_row($hasil);

//decryption process

$private_key = $_SESSION[privateKey]; //RSA string decryption

//pecah private key jadi d,n

$bagi = explode(",",$private_key);$d = $bagi[0];$n = $bagi[1]; require_once("rsa.class");

$rsa = New SecurityRSA;

//$encoded = $rsa->rsa_encrypt($key, $e, $n); $decoded = $rsa->rsa_decrypt($row[1], $d, $n); //AES file decryption

$file = 'data/'.$row[0];

$initial_contents = file_get_contents($file); if($initial_contents)

{//This function opens the module of the algorithm and the mode to be used

$td = mcrypt_module_open('rijndael-128', '', 'cbc', ''); //Create an initialization vector (IV) from a random source //$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

$iv = $row[2];

$ks = mcrypt_enc_get_key_size($td);

$key = $decoded; //password yg telah didekripsi

//This function initializes all buffers needed for decryption

mcrypt_generic_init($td, $key, $iv); //This function decrypts data

$decrypted_data = mdecrypt_generic($td, $initial_contents); $nama = substr($row[0],0,-4); $out = strtr($nama,"_","."); $output = 'temp/'.$out; $newfile = @fopen($output,'w'); $ok_decrypt = @fwrite($newfile,$decrypted_data); if($ok_decrypt)

{ $_SESSION[dec] = "decrypted successfully"; } else

{ $_SESSION[dec] = "decryption failed";} @fclose($newfile);

//This function deinitializes an encryption module mcrypt_generic_deinit($td);

//Close the mcrypt module mcrypt_module_close($td); if ($i != "") {$_SESSION[filed.$i] = $output;} if($i == "") $_SESSION[filed] = $output;}}?> 131

decryption.php <?php

session_start(); include "otentik.php";

if(!otentikasi($_SESSION[username], $_SESSION[password])) { $alamat = "logout.php";header("Location: $alamat");exit(0);} if (!login_check())

{ header("Location: logout.php"); exit(0);} $title = "acrypt cs | decryption ";

include "header.php"; $page = "secure"; ?>

<script language="JavaScript"> function cek_file() {

var a = document.getElementById('check[]').value; if (a==false)

{ alert('please check your input..'); return false; } else return true;}

function input_private() {

var a = document.getElementById('pass').value; if (a=="")

{ alert('please check your private key..');return false;} else return true; }

</script> <?php

include "header2.php"; // DECRYPTION FROM INBOX $code = $_POST['code']; if(isset($code))

{

include "koneksi.php";

//kode 1 adl tampilan sementara file yg akan didekripsi

//kode 2 input private key //kode 3 decrypt kunci + file

//session_register :

//file privateKey filed

if(!isset($_SESSION[file]))

{session_register("file");$_SESSION[file] = $_POST['file'];} $kode = $_POST['kode'];

if(!isset($kode)) $kode = "1"; if($kode=="1")

{print"<center><table class=warna1 $frame><tr><td rowspan=3>&nbsp;</td><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr><td

colspan=3>";print"<table width=500 class=warna2 $frame><tr><td rowspan=50>&nbsp;</td></tr>";

//tampilan file sementara

print"<tr><td colspan=3><b>this file will be decrypt :</b></td></tr><tr><td>&nbsp;</td></tr>";$hasil =

mysql_query("select cipher_name, cipher_size, date from file where id_file = '$_SESSION[file]'");$row = mysql_fetch_row($hasil); print"<form name='formulir' action='decryption.php'

method='POST'>"; print"<input type='hidden' name='code' value='unit'>"; print"<input type='hidden' name='kode'

value='2'>";print"<tr><td align=left>filename </td><td>: </td><td align=left>$row[0]</td></tr>";

$filesize = $row[1];

if($filesize > 1000000)

{ $filesize = $filesize/1048576;$satuan = "MB";} else if($filesize > 1000)

{ $filesize = $filesize/1024; $satuan = "KB";} else{ $satuan = "B"; }

printf("<tr><td align=left>file size </td><td>: </td><td align=left>%.3f %s &nbsp;</td></tr>",$filesize, $satuan);

$id_user = mysql_fetch_row(mysql_query("select id_user from user where username = '$_SESSION[username]'"));

//ambil data dari tabel outbox(sender)..

$out = mysql_fetch_row(mysql_query("select id_user from outbox where id_file = '$_SESSION[file]'"));

if ($out[0]==$id_user[0]) $sender = "you";

else {

$has = mysql_fetch_row(mysql_query("select fullname from user where id_user = '$out[0]'")); $sender = $has[0];}

print"<tr><td align=left>sender </td><td>: </td><td align=left>$sender</td></tr>"; print"<tr><td align=left>date </td><td>:</td><td align=left>$row[2]</td></tr>"; print"<tr> <td>&nbsp;</td></tr>"; print"</td></tr></table></td></tr>"; print"<tr align=right><td><input name='submit' type='submit' value='next'></td>";

print"</form>";

//cancel button back to inbox

print"<form name='formulir2' action='inbox.php' method='POST'>";

print"<input type='hidden' name='clear' value='y'>"; print"<td width=50><input name='submit' type='submit'

value='cancel'></td></tr>";print"</form>";print"</table></center>< br><br><br><br><br><br>";}

if($kode=="2")

{ print"<center><table class=warna1 $frame><tr><td rowspan=3>&nbsp;</td><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr><td colspan=3>"; print"<table width=500 class=warna2 $frame><tr><td

rowspan=50>&nbsp;</td></tr>"; //input private key

if (!isset($_SESSION[privateKey])) session_register("privateKey"); $_SESSION[privateKey] = "";

print"<tr><td>&nbsp;</td></tr>";print"<form name='formulir' action='decryption.php' method='POST'>";print"<input type='hidden' name='kode' value='3'>";print"<input type='hidden' name='code' value='unit'>";print"<tr><td>Your private key : </td><td><input name='pass' type='password' id='pass' size='50'></td></tr>"; print"<tr><td>&nbsp;</td></tr></td></tr></table></td></tr>"; print"<tr align=right><td><input name='submit' type='submit' value='decrypt' onClick='return input_private()'>";

print"<input name='reset' type='reset' value='clear'></td>"; print"</form>";

//cancel button back to inbox

print"<form name='formulir2' action='inbox.php' method='POST'>"; print"<input type='hidden' name='clear' value='y'>";

print"<td width=50><input name='submit' type='submit' value='cancel'></td></tr>";print"</form>";

print"</table></center><br><br><br><br><br><br><br><br><br><br>";} if($kode=="3")

{//put private key to session

$_SESSION[privateKey] = $_POST['pass']; //private key kosong

if($_SESSION[privateKey]=="") {

print"<center><table class=warna1 $frame><tr><td align=center colspan=3><img src= 'img/decryption.png'

width=300></td></tr><tr><td colspan=3>"; print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>";

print"<tr><td align=center><b>please check your private key..</b></td></tr><tr><td>&nbsp;</td></tr>";

print"</td></tr></table>";

print"</td></tr><form name='formulir' action='decryption.php' method='POST'>";

print"<input type='hidden' name='title' value='decryption'>"; print"<input type='hidden' name='code' value='unit'>";

print"<input type='hidden' name='kode' value='2'>"; print"<tr><td width=50 align=center><input name='submit' type='submit' value='back'></td></form>";

print"</tr></table><br><br><br><br><br><br><br><br><br><br><b r><br>"; include "footer.php";exit(0);}

//private key invalid

$private_key = mysql_fetch_row(mysql_query("select private_key from user where username = '$_SESSION[username]'"));

if($private_key[0] != $_SESSION[privateKey]) {

print"<center><table class=warna1 $frame><tr><td align=center colspan=3><img src= 'img/decryption.png'

width=300></td></tr><tr><td colspan=3>";print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>";print"<tr><td align=center><b>your private key is invalid..</b></td></tr>

<tr><td>&nbsp;</td></tr>";print"</td></tr></table>";print"</td></t r><form name='formulir' action='decryption.php' method='POST'>"; print"<input type='hidden' name='title' value='decryption'>"; print"<input type='hidden' name='code' value='unit'>";

print"<input type='hidden' name='kode' value='2'>"; print"<tr><td width=50 align=center><input name='submit' type='submit' value='back'></td></form>";

print"</tr></table><br><br><br><br><br><br><br><br><br><br><br><br >"; include "footer.php"; exit(0); }

print"<center><table class=warna1 $frame><tr><td

rowspan=3>&nbsp;</td><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr><td colspan=3>"; print"<table width=500 class=warna2 $frame><tr><td

rowspan=50>&nbsp;</td></tr>"; //decryption process

print"<tr><td colspan=3 align=center><font size='4px' color='#0066ff'>decryption complete..</td></tr>";

print"<tr><td colspan=3 align=center>to download the file click on the filename. we have to delete the file after you click

<b>finish</b>..</font></td></tr>";print"<tr><td>&nbsp;</td></tr>"; include "decrypt.php";include "microtime.php";

session_register("filed");$i = "";$_SESSION[dec]=""; $time_a = getmicrotime();//print"<br>SESSION[file] : $_SESSION[file]<br>";decryptFile($_SESSION[file], $i); //update table that the file was decrypted

$sql = "update inbox set decrypted='y' where id_file='$_SESSION[file]'";

$hasil = mysql_query($sql,$connect);

$time_b = getmicrotime(); $time = $time_b - $time_a;

$filesize = filesize($_SESSION[filed]); $nama = substr($_SESSION[filed],5); if($filesize > 1048576)

{ $filesize = $filesize/1048576; $satuan = "MBytes";} else if($filesize > 1024)

{ $filesize = $filesize/1024; $satuan = "KBytes"; } else

{ $satuan = "Bytes"; } //print hasil dekripsi

$link = "<a href='".$_SESSION[filed]."' target='_blank'>";

print"<tr><td width=100 align=left>file name </td><td>: </td><td align=left> ".$link.$nama."</a></td></tr>";

printf("<tr><td align=left>file size </td><td>: </td><td align=left>%.3f %s</td></tr>",$filesize, $satuan);

print"<tr><td align=left>status </td><td>: </td><td align=left>".$_SESSION[dec]."</td></tr>";

printf("<tr><td align=left>process time </td><td>: </td><td align=left>%.5f seconds</td></tr>",$time);

print"<tr><td>&nbsp;</td></tr>";

print"<tr><td>&nbsp;</td></tr></td></tr></table></td></tr>";

//cancel button back to inbox

print"<form name='formulir2' action='inbox.php' method='POST'>"; print"<input type='hidden' name='hapus' value='y'>";

print"<td align=right><input name='submit' type='submit' value='finish'></td></tr>";print"</form>";

print"</table></center><br><br>";} //close if($kode=3)

} //close if(isset($code)) /**ordinary decryption**/ else { $level = $_POST[level]; if(!isset($level)) $level = "1";

//level 1 select file to dekrip with checkbox //level 2 temporary show file to decrypt

//level 3 input private key //level 4 decrypt

if($level == "1")

{ //select file to decrypt max 10!!!!!

//prepare session variable

// jml file file1 - file10

// privateKey filed1 - filed10

session_register("jmlfile"); session_register("privateKey"); session_register("file1"); session_register("file2"); session_register("file3"); session_register("file4"); session_register("file5"); session_register("file6"); session_register("file7"); session_register("file8"); session_register("file9"); session_register("file10"); //set to null $_SESSION[jmlfile] = ""; $_SESSION[privateKey] = ""; $_SESSION[file1] = ""; $_SESSION[file2] = ""; $_SESSION[file3] = ""; $_SESSION[file4] = ""; $_SESSION[file5] = ""; $_SESSION[file6] = ""; $_SESSION[file7] = ""; $_SESSION[file8] = ""; $_SESSION[file9] = ""; $_SESSION[file10] = ""; //show file in inbox n select file to decrypt..

include"koneksi.php"; // take from database....

$id_user = mysql_fetch_row(mysql_query("select id_user from user where username = '$_SESSION[username]'"));

//ambil data dari tabel inbox

$inbox = mysql_query("select id_inbox, id_file, decrypted from inbox where id_user = '$id_user[0]' order by id_inbox desc ");?> <center><table class=warna6 <?php print $frame; ?> ><tr><td colspan=2 align=center><img src= 'img/decryption.png'

width=300></td></tr><tr><td colspan=2 align=center>select file you want to decrypt (10 files maximum, if the limit exceeded, the file will ignored..) :</td></tr><tr><td colspan=2><table width=900 class=warna1 <?php print $frame; ?> ><th>no.</th> <th>file

name</th> <th>file size (bytes)</th> <th>sender</th> <th>date</th> <th>select</th><tr><td>&nbsp;</td></tr><?php

$jumlah = mysql_num_rows($inbox); if(!empty($jumlah))

{print"<form name='formulir' action='decryption.php' method='POST'>";

print"<input type='hidden' name='level' value='2'>";$i = 1; while($in = mysql_fetch_row($inbox))

{//ambil data dari tabel file..

$hasil = mysql_query("select id_file, cipher_name, cipher_size, date from file where id_file = '$in[1]'");

$row = mysql_fetch_row($hasil); if($i%2==0) $w = "warna4"; else $w = "warna3";

print"<tr class=$w><td align=center>$i</td>"; if($in[2] == "n")

$nama_file = "<font color='#0033FF'>$row[1]</font>";

Dokumen terkait