| Proses Replikasi Data Enkripsi Antara Server Utama dan Firewall |
|
|
|
| Oleh: Irvanizam Zamanhuri | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sunday, 17 September 2006 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
* Staf Jurusan Matematika, FMIPA, Universitas Syiah Kuala, Mahasiswa S2 di Computer Science, Fakultät für Informatik - Freie Universitàt Bozen, Italia.Perkembangan teknologi komputer dan sistem informasi mengakibatkan makin besarnya masalah keamanan data. Komputer tidak menciptakan masalah itu sendiri, tetapi keuntungannya yang efektif memperluas jangkauan pengumpulan informasi. Makin banyak jumlah informasi yang dikumpulkan, terutama informasi yang bernilai tinggi, makin banyak pula pihak tertentu yang ingin menarik keuntungan untuk memiliki/mengetahuinya. Kriptografi adalah salah satu teknik untuk menyelenggarakan sistem rahasia, sedangkan ilmu yang mempelajari tentang sistem rahasia disebut Kriptologi. Kriptografi digunakan untuk mengubah data ke dalam bentuk kode-kode tertentu, dengan tujuan data yang disimpan maupun yang ditransmisikan melalui jaringan, tidak dapat dibaca oleh siapapun kecuali oleh orang-orang yang berhak.Tulisan ini mendiskripsikan proses replikasi dan metode pengamanan data dengan algoritma enkripsi antara server perantara (firewall) dan server utama serta mengimplementasikan dengan bahasa pemograman Pascal dan Assembly. Proses enkripsi dan dekripsi data diimpilementasikan dengan menggunakan bahasa pemograman assembly. Adapun teknik manipulasi data bit digunakan untuk mengimplementasikan algoritma enkripsi, dekripsi, dan checksum. Komposisi metode ini membentuk produk cipher heksadesimal dan dikirimkan melalui jaringan. Algoritma enkripsi dan checksum mengkonversikan masukan 64 bit yang disebut plaintext menjadi keluaran 64 bit yang disebut ciphertext dengan kunci tertentu. Proses replikasi data melibatkan checksum yang berfungsi sebagai pengontrol, pengecek kevalidan, dan pendeteksi data yang termanipulasi yang dilakukan oleh controller yang bereplikasi setiap detiknya. Sebagai pelayanan dibuat realisasi proses replikasi data antara dua buah server basis data dan algoritma enkripsi dalam bentuk perangkat lunak. Teknik Manipulasi Data Bit Manipulasi data bit adalah pengolahan data dengan operasi logika tertentu untuk mengubah suatu bentuk data byte ke data byte yang lain. Operasi logika yang dilakukan oleh mikroprosesor adalah mengeset bit (bit set), mereset bit (bit reset), menginversi bit (bit invers), menggeser bit (bit shift), dan membandingkan byte (byte compare). Teknik untuk melakukan manipulasi adalah teknik bit masking yaitu suatu teknik menganalisa bit-bit tertentu dengan satu bit penyaring (masker byte). Byte penyaring adalah satu byte patokan untuk memeriksa atau menyaring byte data. Mengeset Bit Operasi mengeset bit (bit set) adalah operasi mengubah bit-bit tertentu sehingga bernilai satu apapun kondisi sebelumnya, “0” atau “1”. Oerator logika yang dipakai adalah “OR”. Operasi OR menghasilkan nol jika kedua operan nol dan akan menghasilkan satu jika salah satu operan adalah satu. Sesuai dengan persaman aljabar Boole “A+1=1” maka bit masker untuk mengest bit adalah “1”. Tabel 1. Operasi OR
Operasi mereset bit (bit resetting) adalah operasi mengubah bit-bit tertentu sehingga bernilai nol apapun kondisi sebelumnya, “0” atau “1”. Operator logika yang dipakai adalah “AND”. Operasi AND menghasilkan satu jika kedua operan satu dan akan menghasilkan nol jika salah satu operan adalah nol. Sesuai dengan persamaan aljabar Boole “A * 0 = 0” maka bit masker untuk mereset bit adalah nol. Tabel 2 Operasi AND
Menginversi Bit Operasi menginversi bit (bit invers) adalah operasi membalik nilai bit-bit tertentu sehingga mempunyai nilai yang berlawanan dengan nilai sebelumnya. Logika yang dipakai adalah “XOR”, Jika XOR menghasilkan nol jika nilai kedua operan sama dan akan menghasilkan satu jika nilai kedua operan berbeda. Sesuai dengan persamaan Boole dari fungs logika XOR “Q=A Penjumlahan modulo k (k adalah bilangan bulat) mempunyai rumus umum sebagai berikut:
Sehingga operasi modulo 2 dapat ditulis sebagai berikut: 0 0 1 1 Tabel 2.3 Operasi XOR
Mengeser Bit Operasi menggeser bit (bit shifting) adalah operasi memindahkan atau merotasikan suatu bit-bit berurutan ke posisi sebelum atau sesudahnya.
Keamanan merupakan faktor yang sangat penting dan harus ada di dalam sistem informasi. Proses replikasi tidak menjamin keamanan data di dalam server basis data. Hal ini diperlukan adanya firewall untuk memfilter data yang keluar/masuk dari sistem dalam upaya menghindari penduplikasian dan perusakan data. Proses replikasi data akademik mempunyai dua langkah. Langkah pertama, mereplikasikan data-data chipertext (data yg tidak dapat dibaca) dari basis data firewall ke pengguna sistem (user interface) melalui proses dekripsi datanya. Langkah kedua, mereplikasikan data-data plaintext (data yang dapat dibaca) dari user interface ke basis data firewall dan server utama, melalui proses enkripsi data. Tahapan proses replikasi data dijelaskan melalui gambar. Algoritma Enkripsi Metode enkripsi adalah suatu metode manipulasi data dengan mengkodekan/ meyembunyikan data aslinya, sehingga data yang bisa dibaca dan dimengerti oleh siapapun (plainttext/cleartext) menjadi data yang tidak bisa dibaca dan dimengerti dengan jelas. Perancangan program algoritma enkripsi dirancang dengan memperhatikan kerumitan pemecahan untuk mendeteksi alur programnya. Paket data masuk harus bertipe string. Jika data yang diinputkan bertipe integer atau date, maka data tersebut dikonversikan menjadi data bertipe string. Pemilihan kata kunci sangat dibutuhkan pada implementasi algoritma enkripsi. Kunci yang rumit akan menjadikan algoritma enkripsi yang handal. Proses enkripsi data dilakukan melalui perkarakternya. Setiap karakter yang telah terenkripsi dan dilakukan manipulasi data bitnya lagi menjadi kata kunci selanjutnya. Kata kunci yang baru akan mendukung proses enkripsi karakter selanjutnya. Berikut potongan program algoritma enkripsi dengan menggunakan metode manipulasi data bit. asm push eax mov al,key1 xor mxor,al // melakukan xor dengan key1 pop eax push eax ror mxor,3 //melakukan geser ke kanan 3 x push eax mov al,key2 xor mxor,al // melakukan xor dengan key2 pop eax push eax pop eax rol mxor,2 //melakukan geser ke kiri 2 x ror mxor,3 //melakukan geser ke kiri 3 x add mxor,1 //Menambahkan 1 xor mxor,3 // melalukan xor dengan 3 end; Listing 1. Program Manipulasi Data Bit Pada Algoritma Enkripsi procedure createKey (mxor,m:byte;count:integer):string; Var Key1,key2:byte; Begin Key1:=m+6*mxor+47; Key2:=mxor+3*m+55; {melakukan operasi biner terhadap key1 & key2 untuk karakter ke 2 dst...} if count mod 2 =0 then asm ror key1,3 //geser key1 ke kanan 3x push ebx mov bl,key1 //memindahkan hasil rotate ke register bl xor key2,2 //xor key2 gengan 2 push eax mov al,key2 mov key1,al //memindahkan nilai register al ke key1 mov key2,bl //memindahkan nilai tegister bl ke key2 pop eax pop ebx end else asm rol key1,3 //geser key1 ke kiri 3x xor key2,3 //xor key2 gengan 3 end; end; Berikut program algoritma pembangkit key dengan menggunakan metode manipulasi data bit. Listing 2. Program Manipulasi Data Bit Pada Algoritma Pembangkit Key Algoritma enkripsi pada tulisan ini adalah mengenkripsikan data plaintext perkarakter dengan melibatkan perubahan key dari hasil data karakter enkripsi sebelumnya. Hasil enkripsi dalam bentuk data heksadesimal, yang dikonversikan dari data bertipe byte dari hasil teknik manipulasi data bit. function encrypt(mfield :string): string; var mtext:string; ret_str:string; has:array[1..100] of byte; count,max_text :integer; m,mxor,key,key1 :byte; begin mtext :=Trim(mfield); max_text:=length(mtext); count :=1; key1:=3; key2:=15; while count <= max_text do begin m:=ord(mtext[count]); { untuk menampung nilai mxor dalam assembler} mxor:=m; // Listing program 1 ditampilkan disini { mxor menjadi variabel tambahan untuk key1 } has[count]:=mxor; createKey(mxor,m,count); // function pemanggil pembangkit key inc(count); end; ret_str:=''; count:=1; { prosedur mengkonversikan data byte ke heksadesimal } while count <= max_text do begin m :=has[count]; ret_str:=ret_str+inttohex(m,2); inc(count); end; encrypt:=ret_str; end;Listing 3. Program Algoritma Enkripsi Algoritma Dekripsi Algoritma dekripsi merupakan inversi dari algoritma enkripsi. Jika pada algoritma enkripsi dipakai manipulasi data bit dengan metode menggeserkan semua bit sebanyak dua kali ke kiri, maka proses dekripsi harus menggunakan manipulasi data bit dengan metode menggeserkan bit sebanyak dua kali ke kanan. Parameter yang diparsingkan ke dalam algoritma dekripsi bertipe string. Data masukkan adalah data dalam bentuk string dalam format heksadesimal. Maka langkah pertama yang dilakukan algoritma dekripsi adalah mengkonversikan kembali data format heksadesimal kedalam bentuk string. Dua buah karakter data enkripsi akan menjadi satu data string. Function hexadesimalToStr (data:string):string; Var mhigh_h,mlow_h:byte; j,maxLengthData,mhigh,mlow:integer; dataStr:string; begin maxLengthData:=length(data) div 2; dataStr:=''; j:=0; while j < maxLengthData do begin mhigh:=data_encrypt[2*j+1]; case mhigh of 'A': mhigh_h:=160; 'B': mhigh_h:=176; 'C': mhigh_h:=192; 'D': mhigh_h:=208; 'E': mhigh_h:=224; 'F': mhigh_h:=240; else val(mhigh,mhigh_h,code); mhigh_h:=mhigh_h*16; end; mlow:=data_encrypt[2*j+2]; case mlow of 'A': mlow_h:=10; 'B': mlow_h:=11; 'C': mlow_h:=12; 'D': mlow_h:=13; 'E': mlow_h:=14; 'F': mlow_h:=15; else val(mlow,mlow_h,code); end; dataStr:=dataStr+chr(mhigh_h+mlow_h); inc(j); end;
Listing 5. Program Manipulasi Data Bit Pada Algoritma Dekripsi Prosedur pembangkitan key untuk algoritma dekripsi adalah sama halnya pada algoritma enkripsi. Pemanggilan fungsi key dengan menampilkan prototype createKey(mxor,m:byte;count:integer) dalam prosedur dekripsi. Fungsi createKey mempunyai tiga parameter masing-masing parameter hasil proses manipulasi data bit, nilai konversi karakter dekripsi ke tipe byte, dan urutan karakter enkripsinya. function decrypt(mfield :string): string; var mtext:string; ret_str:string; has:array[1..100] of byte; count,max_text :integer; m,mxor,key,key1 :byte; begin hexadesimalToStr(mfield); max_text:=length(hexadesimalToStr(mfield)); count :=1; key1:=3; key2:=15; while count <= max_text do begin charDecrypt:=ord(mtext[count]); { untuk menampung nilai mxor dalam assembler} mxor:=charDecrypt; // Listing program 4 ditampilkan disini decryptText:= decryptText+chr(charDecrypt); { function pemanggil pembangkit key } createKey(mxor,charDecrypt,count); inc(count); end; decrypt:= decryptText; end; Listing 6. Program Algoritma Dekripsi Hasil Enkripsi Setelah salah satu data KRS dikirimkan, semua data tersebut menjadi data enkripsi dalam tabel insert_nilai di firewall. Algoritma mengeluarkan data enkripsi yang sulit dimengerti oleh pengguna sistem. Hasil enkripsi data diperlihatkan pada tabel berikut. Tabel 1. Hasil Enkripsi Salah Satu Data KRS
Penutup Hasil enkripsi data menunjukkan bahwa pengkodean data menjadi data enkripsi dapat menghindari pemanipulasian dan perusakan data melalui jaringan dalam upaya melindungi basis data server utama.Selain itu, Teknik manipulasi data bit bisa juga digunakan untuk mengimplementasikan algoritma enkripsi, dekripsi, dan checksum. Referensi Bruce Schneier, Applied Cryptography – Second Edition, John Wiley & Sons, Inc, 1996 Budi Rahardjo.Keamanan Sistem Informasi Berbasis Internet, PTInsanIndonesia, 1998 Illik W., Elang, Keamanan Data 2 (Mikrodata Pilihan), PT. Elex Media Komputindo, Jakarta, 1995. Setiawan, G.C, Mikro Komputer LS-Z80 Sebagai Pengendali Model Robot. Skripsi, Yokyakarta, 2000. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Prev | Next |
|---|






All rights reserved.