Anda di halaman 1dari 13

LAPORAN WORKSHOP SISTEM ANTARMUKA

Novanna Rahma Zani – 1103181047


PRAKTIKUM 11
Judul : Lab11 – Data Confidentiality
Tanggal : 29 Mei 2020

TUJUAN
Mahasiswa dapat menerapkan pengamanan data dalam metode sederhana.

PENDAHULUAN
Dengan berkembangnya peralatan yang mendukung Internet of Things (IoT) yang
membuat semua benda dapat dikendalikan dan dimonitor lewat internet, keamanan informasi
juga harus semakin ditingkatkan untuk menjaga data yang dikirim sampai ditujuan dengan aman
dan selamat. Bayangkan jika anda memadang 100 sensor pada sebuah jembatan untuk
memonitor kondisinya secara nirkabel (wireless), kemudian data yang dikirim dari sensor
menuju server diretas oleh oknum yang tak bertanggung jawab dan menggantinya dengan data
yang berbeda.
Pada bidang ilmu keamanan informasi, dikenal prinsip dasar keamanan informasi yang
disebut sebagai CIA, yaitu confidentiality, integrity dan availability dengan penjelasan singkat
sebagai berikut :
1. Confidentiality, berart kerahasiaan atau privacy, yang menjamin bahwa data penting hanya
dapat diakses oleh pihak benwenang saja. Teknik yang digunakan antara lain enkripsi data,
password, two-factor authentication, dan biometric verification.
2. Integrity, berarti keutuhan atau tidak akan berubah isinya, yang menjamin bahwa data akan
terjaga konsistensi, akurasi, dan validitas di seluruh siklus hidupnya. Teknik yang digunakan
antara lain checksum dan backups.
3.Availability, berarti ketersediaan, yang menjamin bahwa data akan selalu tersedia untuk
diakses. Teknik yang digunakan antara lain disaster recovery plan, redundancy (memiliki
banyak cadangan), dan backups rutin.
Pada praktikum ini anda akan mencoba salah satu teknik yaitu enkripsi data dengan
tujuan agar data yang sedang dikirim tidak dapat ditebak secara langsung oleh pihak yang tidak
berwenang. Teknik yang akan anda gunakan masih primitive, yaitu menggunakan operasi XOR.
Yang menarik dari operasi logika XOR ini adalah, bila anda lakukan dua kali, maka data akan
kembali seperti semula. Sebenarnya .NET telah menyediakan teknik enkripsi standar dengan
menggunakan namespace "System.Cryptography" yang memuat algoritma seperti AES,
Novanna Rahma Zani - 1103181047

Blowfish, DES, Triple DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED,
Skipjack, TEA, XTEA dan sebagainya.

PERALATAN
1. Satu unit komputer dengan Visual Studio 2012

PROSEDUR
1. Menjalankan Visual Studio 2012 lalu memilih menu File → New → Project. Membuat
project baru menggunakan Windows Form App. Mengatur nama dan lokasi.
2. Dengan menggunakan Toolbox, tambahkan groupBox, textBox, label, dan button seperti
pada Gambar 1. Anda tidak menggunakan komunikasi serial untuk percobaan ini.

Gambar 1. Tampilan form

3. Klik ganda pada button “Encrypt” dan ketikkan kode program berikut.
private void button1_Click(object sender, EventArgs e)
{
string plainText = textBox2.Text;
int plainTextLength = plainText.Length;
int kunciPengirim = Convert.ToInt32(textBox1.Text);
char ch;
textBox3.Text = "";
textBox5.Text = "";
for (int i = 0; i < plainTextLength; i++)
{
ch = (char)(plainText[i] ^ kunciPengirim);
textBox3.Text += ch.ToString();
}
textBox5.Text = textBox3.Text;
}
Novanna Rahma Zani - 1103181047

4. Klik ganda pada button “Decrypt” dan ketikkan kode program berikut.
private void button2_Click(object sender, EventArgs e)
{
string encryptedText = textBox5.Text;
int encryptedTextLength = encryptedText.Length;
int kunciPenerima = Convert.ToInt32(textBox4.Text);
char ch;
textBox6.Text = "";
for (int i = 0; i < encryptedTextLength; i++)
{
ch = (char)(encryptedText[i] ^ kunciPenerima);
textBox6.Text += ch.ToString();
}
}

5. Jalankan aplikasi yang telah anda buat dengan memilih menu Debug → Start Debugging.
Tulis pesan anda pada bagian Plain text. Kemudian klik tombol “Encrypt”. Perhatikan
bahwa pesan anda telah diubah pada bagian Encrypted text. Pesan ini akan dikirim dan
diterima kepenerima. Selanjutnya klik tombol “Decrypt”. Perhatikan sekali lagi bahwa
pesan asli anda akan terbaca pada bagian Decrypted text. Selama kunci pengirim dan
kunci penerima sama, maka pesan akan kembali seperti semula.

Gambar 2. Contoh aksi


Novanna Rahma Zani - 1103181047

DATA PERCOBAAN
Hasil percobaan prosedur :
1. Membuat Tampilan Form

Gambar 2. Tampilan Form

Gambar 3. Hasil percobaan program


2. Program lengkap :
Lampiran 1. Program Lengkap Percobaan
Novanna Rahma Zani - 1103181047

3. Percobaan Aplikasi
Sebagai upaya memahami aplikasi sederhana ini, saya mencoba membuat beberapa
percobaan pada aplikasi ini,
a. Memahami fungsi Kunci Pengirim dan Penerima

Gambar 4. Kunci pengirim dan penerima sama sama dibuat 10

Gambar 5. Kunci pengirim dan penerima dibuat berbeda

Gambar 6. Kunci pengirim dan penerima dibuat sama tetapi nilainya 30


Novanna Rahma Zani - 1103181047

b. Memahami kelemahan aplikasi

Gambar 7. Kunci pengirim dan penerima bernilai 5 dengan text berulang

Gambar 8. Kunci pengirim dan penerima bernilai 10 dengan text berulang

Hasil Pengamatan :
a. Dapat dilihat dari Gambar 4. ketika user memasukan kunci dengan angka yang sama, maka
Decrypted text akan menampilkan text yang sesuai dengan Plain Text. Sedangkan jika kunci
pengirim berbeda dengan kunci penerima maka hasil Decrypted Text-nya menjadi tidak sesuai
seperti Gambar 5. Lalu selanjutnya user mencoba menaikkan nilai kunci tetapi nilainya tetap
sama yaitu 30, sama seperti percobaan pertama hasil Decrypted Text-nya sesuai dengan Plain
Text tetapi hasil Encrypted Text-nya berubah seperti pada Gambar 6.
b. Pada percobaan ini, user menggunakan 3 huruf berulang yaitu NRZNRZ17. Pada Gambar 7.
User menggunkana kunci bernilai 5, lalu hasil Encrypted Text-nya adalah KW_KW_42
sedangkan ketika user menaikkan kunci menjadi 10, hasil Encrypted Text-nya menjadi
DXPDXP;= . Jika diperhatikan, keduanya sama sama memiliki hasil yang sama untuk suatu
Novanna Rahma Zani - 1103181047

huruf sehingga ketika huruf itu diulang maka hasil Encrypted textnya juga akan menampilkan
hasil yang sama dengan encrypt huruf yang sama sebelumnya. Pola yang sangat terlihat untuk
sebuah pengamanan data. Hal ini menyebabkan aplikasi akan lebih mudah diretas apalagi ketika
usernya menggunakan kata pengaman yang berulang.

TUGAS
Yang telah anda kerjakan adalah salah satu contoh metode pengamanan data. Tetapi tidak
dianjurkan karena kunci mudah ditebak. Anda dapat membuat sedikit lebih rumit dengan
melakukan beberapa lapisan atau menggunakan kunci yang berbeda-beda. Tugas anda adalah
memodifikasi kunci XOR ini menjadi lebih rumit dengan menerapkan teknik lain, atau dapat
menggunakan library enkripsi yang telah disediakan oleh .NET.
Jawab :
Hasil Percobaan Program Tugas

Gambar 9. Hasil Percobaan Aplikasi Tugas


Novanna Rahma Zani - 1103181047

Prosedur Perancangan Aplikasi


1. Membuat Tampilan seperti pada Gambar 10. Tampilan Aplikasi Tugas. Pada tampilan ini
saya tidak menambahkan kunci pengirim maupun penerima karena akan menggunakan
namespace tambahan yang kata kuncinya sudah dibuat sama dalam program.

Gambar 10. Tampilan Aplikasi Tugas

2. Menambahkan namespace
using System.Security.Cryptography;
Namespace diatas merupakan enskripsi yang disediakan oleh .NET , namespace ini dapat
membantu developer untuk membuat kode kriptografi termasuk pengodean dan penguraian data
yang aman, serta banyak operasi lainnya, seperti hashing, pembuatan angka acak, dan otentikasi
pesan.

3. Perlu diketahui bahwa pada aplikasi ini saya menamakan komponen menjadi :
Text Box Plain Text  txtValue
Text Box Encrypted  txtEncrypt
Text Box Decripted  txtDecript
Button Encrypt  btnEncrypt
Button Decript  btn Decript

4. Menambahkan variabel string secara global dalam form1


Novanna Rahma Zani - 1103181047

string hash = "n0V4n2@";


Seperti pada penjelasan namespace sebelumnya, pada aplikasi ini saya menggunakan
algoritam metode hashing yaitu fungsi matematis yang mengubah nilai input numerik menjadi
nilai numerik yang terkompresi. Maksudnya bertujuan mengkompresi nilai numerik yang
diinputkan. Inputan fungsi hash mempunyai panjang yang beragam, namun outputan nilai hash
akan selalu mempunyai panjang yang tetap. Nilai yang dikembalikan oleh fungsi hash disebut
message digest atau hanya nilai hash.
Variabel hash diatas bisa dikreasikan doleh user. Variabel ini merupakan pengganti nilai
keys pada kunci pengirim dan penerima pada aplikasi sebelumnya.

5. Setelah merubah nama pada setiap komponen, maka dilanjutkan dengan menambahkan
program pada Button Encrypt,
private void btnEncrypt_Click(object sender, EventArgs e)
{
byte[] data = UTF8Encoding.UTF8.GetBytes(txtValue.Text);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new
TripleDESCryptoServiceProvider()
{
Key = keys,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
})
{
ICryptoTransform transform = tripDes.CreateEncryptor();
byte[] results = transform.TransformFinalBlock(data, 0, data.Length);
txtEncrypt.Text = Convert.ToBase64String(results, 0, results.Length);
}
}
}

6. Lalu menambahkan program pada Button Decrypt


private void btnDescrypt_Click(object sender, EventArgs e)
{
byte[] data = Convert.FromBase64String(txtEncrypt.Text);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new
TripleDESCryptoServiceProvider()
Novanna Rahma Zani - 1103181047

{
Key = keys,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
})
{
ICryptoTransform transform = tripDes.CreateDecryptor();
byte[] results = transform.TransformFinalBlock(data, 0, data.Length);
txtDecrypt.Text = UTF8Encoding.UTF8.GetString(results);
}
}
}
}

Program Lengkap
Lampiran 2. Program Lengkap Tugas
Novanna Rahma Zani - 1103181047

Lampiran 1. Program Lengkap Percobaan


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Lab11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

private void button1_Click(object sender, EventArgs e)


{

string plainText = textBox2.Text;


int plainTextLength = plainText.Length;
int kunciPengirim = Convert.ToInt32(textBox1.Text);
char ch;
textBox3.Text = "";
textBox5.Text = "";
for (int i = 0; i < plainTextLength; i++)
{
ch = (char)(plainText[i] ^ kunciPengirim);
textBox3.Text += ch.ToString();
}
textBox5.Text = textBox3.Text;
}

private void button2_Click(object sender, EventArgs e)


{
string encryptedText = textBox5.Text;
int encryptedTextLength = encryptedText.Length;
int kunciPenerima = Convert.ToInt32(textBox4.Text);
char ch;
textBox6.Text = "";
for (int i = 0; i < encryptedTextLength; i++)
{
Novanna Rahma Zani - 1103181047

ch = (char)(encryptedText[i] ^ kunciPenerima);
textBox6.Text += ch.ToString();
}
}
}
}

Lampiran 2. Program Lengkap Tugas


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;

namespace TugasLab11_2_
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

string hash = "n0V4n2@";

private void btnEncrypt_Click(object sender, EventArgs e)


{
byte[] data = UTF8Encoding.UTF8.GetBytes(txtValue.Text);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new
TripleDESCryptoServiceProvider()
{
Key = keys,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
})
{
ICryptoTransform transform = tripDes.CreateEncryptor();
byte[] results = transform.TransformFinalBlock(data, 0, data.Length);
txtEncrypt.Text = Convert.ToBase64String(results, 0, results.Length);
}
Novanna Rahma Zani - 1103181047

}
}

private void btnDescrypt_Click(object sender, EventArgs e)


{
byte[] data = Convert.FromBase64String(txtEncrypt.Text);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new
TripleDESCryptoServiceProvider()
{
Key = keys,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
})
{
ICryptoTransform transform = tripDes.CreateDecryptor();
byte[] results = transform.TransformFinalBlock(data, 0, data.Length);
txtDecrypt.Text = UTF8Encoding.UTF8.GetString(results);
}
}
}
}

Anda mungkin juga menyukai