Sunday, July 3, 2016

Aplikasi Pengamanan Basis Data dengan Teknik Kriptografi Stream Chiper



  1. 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”

  1. 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 :
  1. Kerahasiaan.
 Pesan (plaintext) hanya dapat dibaca oleh pihak yang memliki kewenangan.
  1. Autentikasi.
Pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain.
  1. Integritas.
Penerima pesan harus dapat memastikan bahwa pesan yang dia terima
tidak dimodifikasi ketika sedang dalam proses transmisi data.
  1. 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

  1. 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.

  1. 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.

  1. TUJUAN
1.         Penelitian ini bertujuan untuk membangun sebuah sistem yang mempunyai kemampuan untuk member keamanan pada basis data.
2.         Memahami mengimplementasikan metode stream chiper

  1. 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