- PENDAHULUAN
Basis data saat ini sudah
banyak digunakan di berbagai organisasi,perusahaan, atau pun pihak – pihak lain
telah memanfaatkan teknologi basis data untuk menyimpan dan mengelola data
organisasi atau perusahaannya. Saat ini, keamanan terhadap data yang tersimpan
dalam basis data sudah menjadi persyaratan mutlak. Dengan banyaknya
seranganserangan terhadap jaringan komputer yang terhubung dengan basis data
maka sudahtidak lagi menjamin keamanan data. Hal tersebut dikarenakan bahwa
kebocoran data dapat disebabkan oleh berbagai hal seperti “orang dalam” atau
pihak–pihak yang langsung berhubungan dengan basis data seperti administrator
basis data. Dengan keadaan seperti
tersebut diatas menyebabkan pengguna basis data
harus menemukan cara untuk mengamankan data tanpa campur tangan administrator
basis data.
Maka
dari semua permasalahan tersebut penulis berkeinginan untuk membuat sebuah
aplikasi yang berjudul “APLIKASI PENGAMANAN BASIS DATA DENGAN TEKNIK
KRIPTOGRAFI STREAM CHIPER”
- KRIPTOGRAFI
Kriptografi merupakan salah
satu cara yanga dapat digunakan untuk mengamankan data. Untuk itu, pengguna basis
data membutuhkan bantuan keamanan untuk memenuhi kebutuhan keamanan datayang
disimpan.Dalam penelititian ini penerapan kriptografi akan difokuskan bagaimana
kriptografi dapat mengamankan data sampai pada level baris (row) dan
kolom (field) dengan tetap memperhatikan integritas data dan kewenangan
setiap pengguna basisdata.
Algoritma kriptografi yang
akan digunakan ialah algoritma kriptografi simetris dan bersifat stream
cipher sehingga data hasil enkripsi (cipherteks) mempunyai ukuran yang
sama dengan data asli (plainteks). Teknik kriptografi simetris dipilih
karena diharapkan dengan algoritma ini proses enkripsi terhadap data dapat
dilakukan dengan waktu yang lebih cepat dibandingkan dengan algoritma
kriptograf ikunci publik(asimetris).
Kriptografi pada dasarnya
sudah dikenal sejak lama. Menurut catatan sejarah, kriptografi sudah digunakan
oleh bangsa Mesir sejak 4000 tahun yang lalu oleh raja-raja Mesir pada saat perang
untuk mengirimkan pesan rahasia kepada panglima perangnya melalui
kurir-kurinya. Orang yang melakukan penyandian ini disebut kriptografer,
sedangkan orang yang mendalami ilmu dan seni dalam membuka atau memecahkan
suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut kriptanalis.
Seiring dengan perkembangan
teknologi, algoritma kriptografi pun mulai berubahmenuju ke arah algoritma
kriptografi yang lebih rumit dan kompleks. Kriptografi mau tidak mau harus
diakui mempunyai peranan yang paling penting dalam peperangan sehingga algoritma
kriptografi berkembang cukup pesat pada saat Perang Dunia I dan Perang Dunia
II.
Menurut catatan sejarah,
terdapat beberapa algoritma kriptografi yang pernah digunakan dalam peperangan,
diantaranya adalah ADFVGX yang dipakai oleh Jerman pada Perang
Dunia I, Sigaba/M-134 yang digunakan oleh
Amerika Serikat pada Perang Dunia II, Typex oleh Inggris, dan Purple oleh
Jepang. Selain itu Jerman juga mempunyai mesin legendaries yang dipakai
untuk memecahkan sandi yang dikirim oleh pihak musuh dalam peperangan yaitu,
Enigma.
Algoritma kriptografi yang
baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang akan
disampaikan. Yang penting, algoritma tersebut harus memenuhi 4 persyaratan
berikut :
- Kerahasiaan.
Pesan (plaintext)
hanya dapat dibaca oleh pihak yang memliki kewenangan.
- Autentikasi.
Pengirim pesan harus dapat diidentifikasi dengan
pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain.
- Integritas.
Penerima pesan harus dapat memastikan bahwa pesan
yang dia terima
tidak dimodifikasi ketika
sedang dalam proses transmisi data.
- Non-Repudiation.
Pengirim
pesan harus tidak bisa menyangkal pesan yang dia
kirimkan.
Kriptografi pada dasarnya
terdiri dari dua proses, yaitu proses enkripsi dan proses dekripsi. Proses
enkripsi adalah proses penyandian pesan terbuka menjadi pesan rahasia (ciphertext).
Ciphertext inilah yang nantinya akan dikirimkan melalui saluran
komunikasi terbuka. Pada saat ciphertext diterima oleh penerima pesan,
maka pesan rahasia tersebut diubah lagi menjadi pesan terbuka melalui proses
dekripsi sehingga pesan tadi dapat dibaca kembali oleh penerima pesan. Secara
umum, proses enkripsi dan dekripsi dapat digambarkan sebagai berikut :
Dalam sistem komputer, pesan terbuka (plaintext)
diberi lambang M, yang merupakan singkatan dari Message. Plaintext ini
dapat berupa tulisan, foto, atau video yang berbentuk data biner. Plaintext inilah
yang nantinya akan dienkripsi menjadi pesan rahasia atau ciphertext yang
dilambangkan dengan C (Ciphertext). Secara matematis, fungsi enkripsi
ini dinotasikan dengan :
E(M) = C
Sedangkan fungsi dekripsi adalah proses pembalikan
dari ciphertext menjadi plaintext kembali. Secara matematis
dinotasikan sebagai berikut :
D(C) = M
D(E(M)) = M
1.
Algoritma
Kriptografi RC4
Algoritma kriptografi RC4
merupakan salah satu algoritma berjenis stream cipher. Stream
Cipher adalah algoritma enkripsi yang mengenkripsi data persatuan data,
seperti bit,byte, nible atau per 5 bit. Setiap mengenkripsi satu satuan data
digunakan kunci yang merupakan hasil pembangkitan dari kunci sebelumnya.
Algoritma ini akan memproses data dalam ukuran byte demi byte (1 byte
= 8 bit). Algoritma ini dapat melakukan enkripsi dan dekripsi pada
panjang data yang variabel atau dinamis tanpa perlu adanya penambahan byte (padding).
Pada kriptografi dengan algoritma RC4 mempunyai
sebuah S-Box, S0, S1, ... ,S255, yang berisi permutasi dari bilangan 0
sampai 255, dan permutasi merupakan fungsi dari kunci K dengan panjang yang
berubah-ubah (variabel). Algoritma kriptografiRC4 dilakukan
dengan langkah sebagai berikut :
1. Inisialisasi S-Box
- Isi S-Box secara berurutan, yaitu S0=0,
S1=1,... , S255=255.
- Lakukan penambahan (padding) kunci K
sehingga panjang kunci K = 256.
- Lakukan pertukaran dan pengisian pada S-Box dengan
kunci K, sebagai berikut :
j = 0
for i = 0 to 255
j = (j + Si + Ki) mod 256
swap Si dan Sj pada kunci K diatas, Fungsi swap
merupakan fungsi yang menukarkan nilai S ke-I dengan nilai S ke-j
2. Proses enkripsi atau dekripsi RC4 :
i = 0
j = 0
for idx = 0 to len-1
2. Analisis
Dalam penelitian ini,
perangkat lunak yang dikembangkan memberi penekanan pada kemudahan bagi
pengguna umum basis data di dalam pemanfaatan m perangkat lunak. Untuk
melakukan pengamanan data melalui proses enkripsi dan dekripsi pada data yang
dimiliki pengguna tanpa perlu melalui penulisan bahasa query tetapi
cukup dengan melakukan “klik” pada tombol – tombol yang disediakan. Perangkat
lunak yang dibangun dinamakan MSSQL_CRYPT.
Seperti terlihat, perangkat lunak yang dibangun
terletak di antara server basis data dan web browser. Hasil akhir
dari perangkat lunak ini ialah aplikasi berbasis web. Pada dasarnya,
perangkat lunak ini akan melakukan dua fungsi utama, yaitu :
1. Melakukan enkripsi – dekripsi data pada level
kolom atau field.
2. Melakukan enkripsi – dekripsi data pada level
baris atau row.
Perangkat lunak menerima masukan dari pengguna
melalui antarmuka yang disediakan dan mengolah masukan dari pengguna tersebut
serta mengubahnya menjadi query tertentu. Query ini kemudian
dijalankan pada sistem basis data yang terdapat di server. Kemudian
hasil dari query ini diberikan kembali kepada pengguna melalui antarmuka
perangkat lunak. Perangkat lunak MSSQL_CRYPT dapat digunakan oleh
beberapa kelompok pengguna, adapun pengguna dapat dikelompokkan sebagai berikut
:
1. Administrator basis data
Administrator basis data merupakan pihak yang
bertanggung jawab untuk melakukan pengaturan basis data antara lain: pembuatan
basis data dan pengaturan pengguna basis data serta hak akses dari setiap
pengguna tersebut.
2. Pemilik data
Pemilik data merupakan pihak yang memiliki data
yang terdapat pada basis data. Memiliki artinya pihak tersebut berhak melakukan
pengubahan pada data seperti melakukan penambahan data baru, atau pun menghapus
data, jadi bukan hanya memiliki hak untuk melihat isi dari data. Pemilik data
merupakan pihak yang akan dan ingin melakukan perlindungan terhadap data yang
dimilikinya dengan cara enkripsi maupun dekripsi terhadap data tersebut.
i =
3. Perancangan
Perancangan merupakan
proses pengolahan hasil analisis perangkat lunak menjadi rencana pengembangan
perangkat lunak dan batasan – batasan perangkat lunak atau masalah yang mungkin
dihadapi dalam pengembangan perangkat lunak. Perancangan yang dilakukan
meliputi perancangan arsitektur, perancangan modul, dan perancangan antarmuka.
3.1 Perancangan Arsitektur
Perancangan aritektur
merupakan perancangan dari proses yang akan di kerjakan pada sistem yang akan
dibangun. Pada perancangan arsitektur ini perangkat lunak terdiri atas tiga
buah proses utama, yaitu :
1). Pemrosesan Otentikasi dan Kewenangan Data
Otentikasi dan kewenangan data diproses berdasarkan nama pengguna (user id)
dan password yang diterima sistem dan dicocokan dengan data dan wewenang
pada server basis data. Otentikasi merupakan pemrosesan wewenang
pengguna untuk melakukan koneksi dengan server basis data sedangkan
kewenangan data merupakan pemrosesan wewenang pengguna untuk melakukan
manipulasi terhadap basis data dan tabel.
2). Pemrosesan Query
Query – query yang diproses antara lain :
- Mendapatkan struktur tabel.
- Mendapatkan data yang tersimpan pada tabel. c.
Mengubah data yang tersimpan.
- Mengubah struktur tabel.
3). Pemrosesan Pesan
Pemrosesan pesan adalah proses untuk melakukan
enkripsi–dekripsi pesan yang diterima berdasarkan kunci.
3.2 Perancangan Modul Perangkat Lunak
Pada penelitian ini, perangkat lunak yang akan
dibangun disusun atas lima modul utama,
yaitu :
1. Modul Antarmuka
Modul ini menyusun antarmuka perangkat lunak,
menyediakan tempat dan template .bagi modul lain untuk meletakkan hasil
proses modul tersebut.
2. Modul Otentikasi
Modul ini dirancang untuk implementasi dari proses
konfirmasi login dan proses otentikasi pengguna.
3. Modul Pemrosesan Query
Modul ini dirancang untuk implementasi pemrosesan query.
4. Modul Enkripsi – Dekripsi
Modul ini dirancang untuk implementasi dari proses
enkripsi – dekripsi.
5. Modul kriptografi RC4
Modul ini dirancang untuk implementasi algoritma
kriptografi RC4.
3.3 Perancangan Antarmuka
Antarmuka merupakan salah satu cara bagaimana
sistem ini akan berinteraksi dengan pengguna atau pemakai sistem. Antarmuka
perangkat lunak pada penelitian ini terdiri atas dua halaman utama yaitu
halaman login dan halaman aplikasi. Hasil dari implementasi perancangan
antarmuka dapat dilihat pada bagian 5.
4. Implementasi
Tahap implementasi adalah tahap dimana perancangan
diwujudkan dalam bentuk aplikasi.
Pada implementasi ini, hal–hal yang menjadi batasan
pada tahap implementasi adalah :
1) Perangkat lunak hanya akan diimplementasikan
pada satu macam sistem basis data relasional yaitu Microsoft SQL Server 2000
(MSSQL-Server).
2) Hasil perancangan di implementasikan pada
komputer yang berfungsi sebagai server basis data dan server aplikasi
web.
4.1 Implementasi Modul Kriptografi RC4
Pada implementasi modul kriptografi RC4, modul ini
terdiri atas tiga buah
prosedur utama, yaitu :
1. Prosedur RC4_swap, untuk menukarkan nilai
dua buah variabel.
2. Prosedur RC4_PrepareKey, untuk menyiapkan
S-Box sebelum proses enkripsi atau dekripsi dilakukan.
3. Prosedur RC4, untuk melakukan enkripsi
–dekripsi dengan algoritma RC4.
4.2 Implementasi Modul Otentikasi
Modul otentikasi adalah modul yang digunakan untuk
melakukan ontentikasi terhadap data yang ada di MSSQL-Server. Modul ini terdiri
atas dua prosedur utama, yaitu :
1. Fungsi connect, untuk membuka koneksi dan
melakukan otentikasi ke MSSQLServer.
2. Prosedur get_database_table, untuk
mendapatkan daftar basis data dan table pengguna (user).
4.3 Implementasi Modul Pemrosesan Query
Modul pemrosesan query digunakan untuk memroses
query pada MSSQL-Server. Modul
ini terdiri atas dua prosedur utama, yaitu :
1. Prosedur view_structure, untuk
mendapatkan struktur dari suatu tabel.
2. Prosedur view_data, untuk mendapatkan
data (baris) dari suatu tabel.
4.4 Implementasi Modul Enkripsi – Dekripsi
Modul Enkripsi digunakan untuk mengenkripsi query
yang diberikan sedangkan modul Deskripsi digunakan untuk mendekrip kembali data
yang telah di enkrip kedalam bentuk aslinya. Modul ini terdiri atas empat
fungsi utama, yaitu :
1. Fungsi encrypt_col, untuk melakukan
enkripsi data secara kolom.
2. Fungsi encrypt_row, untuk melakukan
enkripsi data secara baris.
3. Fungsi decrypt_col, untuk melakukan
dekripsi secara kolom.
4. Fungsi decrypt_row, untuk melakukan
dekripsi secara baris.
4.5 Implementasi Penanganan Integritas Data
Integritas data yang ada dalam basis data tetap
harus terjaga, untuk itu diperlukan penangan integrritas data yang baik. Untuk
menangani integritas tipe data, ada beberapa tipe data yang membutuhkan
penanganan atau batasan tertentu, yaitu sebagai berikut :
1. Kelompok tipe data teks (character strings),
terdiri atas : char, varchar, text, nchar, nvarchar,
dan ntext. MSSQL_CRYPT tidak berhasil melakukan enkripsi maupun
dekripsi pada tipe data ntext. Untuk tipe data teks lainnya, proses
enkripsi dan dekripsi dapat berjalan dengan baik dengan syarat ukuran kolom mempunyai
ukuran 33% lebih besar dari panjang data terbesar yang tersimpan pada kolom
tersebut. Hal ini disebabkan karena proses enkripsi akan menghasilkan data yang
setiap karakternya dapat bernilai keseluruhan kode ASCII yang ada
sedangkan tipe data teks pada MSSQL tidak dapat menyimpan semua karakter
ASCII sehingga perlu dilakukan konversi terhadap data acak hasil
enkripsi dengan cara melakukan pengkodean data tersebut secara Base 64 (Base64
Encoding) terlebih dahulu sebelum dilakukan update (pengubahan) data
pada basis data. Hasil dari pengkodean data secara Base 64 ialah data dengan
karakter yang dapat disimpan pada field dengan tipe data teks MSSQL dengan
ukuran 33% lebih panjang dari data aslinya (data sebelum dikodekan).
2. Kelompok tipe data biner (binary strings),
terdiri atas : binary, varbinary, dan image. Tidak ada
penanganan dan batasan khusus untuk kelompok tipe data ini.
3. Kelompok tipe data numerik, terdiri atas : bigint,int,
, tinyint, bit, decimal, numeric, money, smallmoney,
float, real, datetime, dan smalldatetime. MSSQL_CRYPT
tidak melakukan enkripsi dan dekripsi pada tipe data bit karena
ukuran data bit hanya satu bit sedangkan proses enkripsi dan
dekripsi hanya dapat dilakukan pada data dengan ukuran minimal satu byte.
Untuk mempertahankan tipe data pada setiap kolom, MSSQL_CRYPT akan
melakukan enkripsi dekripsi tanpa mengubah tipe data tetapi data yang
dienkripsi akan disimpan pada satu table tambahan sedangkan tabel yang
mengalami enkripsi data, data bersangkutan akan diubah (update) menjadi
nol. Tabel ini berfungsi sebagai tabel internal aplikasi MSSQL_CRYPT dan
akan digunakan oleh semua data bertipe numerik yang akan dienkripsi. Tabel
disimpan pada satu basis data internal dengan nama basis data “mcrypt” dan nama
tabel “ud
- PERUMUSAN MASALAH
Adapun permasalahan dalam penelitian ini adalah:
1.
Bagaimana menerapkan metode teknik kriptografi
stream chiper untuk pengamanan
basis data.
2.
Bagaimana merancang sebuah sistem aplikasi yang dapat menjadi
pengaman pada aplikasi basis data.
- BATASAN MASALAH
1.
Hanya dibatasi pada pengaplikasian pengamanan basis data dengan menggunakan
metode Teknik kriptografi stream chiper.
2.
Sistem
aplikasi ini akan member pengamanan pada basis data.
- TUJUAN
1.
Penelitian ini bertujuan untuk membangun
sebuah sistem yang mempunyai kemampuan untuk member keamanan pada basis data.
2.
Memahami mengimplementasikan metode stream
chiper
- METODE PENELITIAN
1.
Pengumpulan
Data
Data yang digunakan di dalam penelitian ini adalah
beberapa database di kampus universitas malikussaleh.
2.
Alat
Penelitian
a)
Perangkat
keras, spesifikasi yang dapat digunakan pada penelitian ini adalah sebagai
berikut.
1. Prosessorintel
® core ™ i3
2. RAM
2 GB
H.
RELEVANSI
Setelah perancangan sistem ini selesai dikerjakan diharapkan
dapat menjadi salah satu alat yang dapat digunakan oleh pihak kampus khususnya
kampus Unimal untuk dapat
memberi keamanan pada database yang penting.
I.
HASIL DAN PEMBAHASAN
Hasil
yang diharapkan dari tugas akhir ini yaitu suatu perangkat lunak atau program
yang memberi keamanan pada suatu database penting dalam sebuah universitas
untuk tidaj mudah di bobol oleh pihak yang tidak memiliki hak akses.
J.
SISTEMATIKA PENULISAN
BAB
I PENDAHULUAN
Berisi tentang latar belakang masalah,
rumusan masalah, batasan masalah, tujuan penulisan, metodologi penulisan dan sistematika penulisan.
BAB
II LANDASAN TEORI
Berisi teori-teori yang berhubungan.
BAB
III PERENCANAAN DAN PEMBUATAN SISTEM
Berisi langkah-langkah dalam pembuatan sistem.
BAB
IV ANALISA DAN PENGUJIAN SISTEM
Berisi tentang analisa terhadap hasil
yang diperoleh dari tahap perencanaan sistem dan simulasi.
BAB
V PENUTUP
Berisi tentang kesimpulan dan saran-saran dari penulis.
K.
JADWAL PELAKSANAAN
No
|
Uraian Kegiatan
|
Bulan
|
|||||
Sep
|
Okt
|
Nov
|
Des
|
Jan
|
Feb
|
||
1
|
Studi Literatur
|
|
|
|
|
|
|
2
|
Pembuatan Proposal
|
|
|
|
|
|
|
3
|
Perencanaan Sistem
|
|
|
|
|
|
|
4
|
Pembuatan Sistem
|
|
|
|
|
|
|
5
|
Pengujian dan Analisa
|
|
|
|
|
|
|
6
|
Penulisan Laporan
|
|
|
|
|
|
|
7
|
Penyerahan
|
|
|
|
|
|
|
L.
DAFTAR KEPUSTAKAAN
M.
OUT LINE
Outline dari pada penulisan tugas akhir dapat menggunakan sesuai dengan contoh yang telah diberikan seperti berikut :
Bab I Pendahuluan
Latar
Belakang
Perumusan
Masalah
Pembatasan
Masalah
Tujuan
Penulisan
Metodologi
Penelitian
Sistematika
Penulisan
Bab II Tinjauan
Pustaka
Bab III Metodologi
Bab IV Hasil dan Pembahasan
Bab V Pentutup (
Kesimpulan dan saran)
No comments:
Post a Comment