Seminar Nasional Informatika dan Aplikasinya (SNIA), 18 Desember 2013
249
PENERAPAN VSN HARDWARE KEY SCHEME
UNTUK PENGAMANAN PERANGKAT LUNAK
Taufan Maulana Putra1, Andy Victor2
1,2Teknik Informatika, Sekolah Tinggi Manajemen Informatika dan Komputer LPKIA
jcyberknight@gmail.com1, victorp393@gmail.com2
Abstrak
Jumlah pencurian data perusahaan meningkat dari tahun ke tahun. Hal ini dikarenakan kurangnya kesadaran pihak perusahaan akan pentingnya suatu sistem keamanan yang efisien dan unik. Pihak perusahaan mengira bahwa hanya dengan password, data tersebut sudah sangat aman.Pada penelitian ini, dibuat suatu skema keamanan data, yakni VSN Hardware Key.Volume Serial Number yang terdapat di dalam suatu hardware yang berbentuk bilangan hexadecimal diambil dengan fungsi API GetVolumeInformationdan diubah menjadi bilangan decimal yang kemudian digunakan sebagai otentifikasi dalam pengaksesan sebuah aplikasi.Aplikasi yang dirancang dalam mendukung VSN Hardware Key telah diuji dengan melibatkan data data confidential perusahaan, dan terbukti ampuh dalam membuat para intruder gagal melakukan pencurian data penting perusahaan termasuk penggandaan ilegal.Secara umum VSN Hardware Key digunakan sebagai skema penyempurna pengamanan data perusahaan yang secara umum berbentuk aplikasi sistem informasi.
Kata kunci:vsn hardware key, volume serial number, get volume information, keamanan data.
1. Pendahuluan
Melihat dari berbagai persitiwa pencurian data maupun pihak-pihak yang dengan sengaja menyalin data yang bersifat confidential untuk tujuan tertentu yang sering terjadi di Indonesia, maka diperlukan suatu teknologi pengamanan data yang baru dan unik sehingga dapat membingungkan para peretas. Tujuan dari keamanan data adalah untuk menemukan cara-cara untuk mencegah dari exploitasi demi menjaga keutuhan 3 aspek utama yakni, Confidentiality, Integrity dan Availability[2].
Metode / Teknik yang umum digunakan untuk pengamanan data seperti MD5 Scheme (Ron Rivest, 1992),RSA Encryption Scheme (Rivest, Shamir, Adleman, 1977) dan Dongle (Pete Dowson, 1980).Setelah melakukan studi perbandingan terhadap metode-metode keamanan di atas, MD5 memiliki kelebihan, yaitu dapat digunakan sebagai Intruder Detection System yang mengambil nilai hash dari sebuah file, namun MD5 memiliki kelemahan yakni, Collision, maksudnya ada 2 atau lebih teks yang menghasilkan nilai hash yang sama[5]. RSA memiliki kelebihan yaitu, kesulitan untuk memfaktorkan bilangan besar modulus n menjadi faktor faktor primanya, namun RSA memiliki kelemahan yakni, class exponent weak formula[1].
Proteksi dongle dapat menjadi jalan keluar dalam memberikan proteksi yang aman, karena sistem enkripsi yang terhubung antara sisi hardware
yang ditanamkan pada micro chip dengan sisi software yang dapat meminimalisir penyadapan saluran komunikasi data, namun Dongle memiliki kelemahan pada kurangnya efisiensi algoritma dan efisiensi biaya.
Algoritma VSN Hardware Key adalah solusi pengembangan baru yang terbukti efektif untuk mengamankan data secara efisien, dengan menggabungkan konsep dongle dan penerapan Volume Serial Number yang digunakan sebagai Hardware Key untuk acuan otentifikasi. Dengan mengimplementasikan algoritma VSN Hardware Key, maka keunggulannya adalah storage device yang digunakan sebagai kunci dapat bersifat portable sehingga memudahkan kita untuk membawa kemanapun hardware key dan yang paling utama bahwa pembuatan skema proteksi dengan VSN Hardware Key ini didasari pada konsep pengalihan persepsi Houdini, membuat orang percaya melalui penglihatan, pendengaran dan perasaan sehingga orang mengira itu adalah kenyataan yang sebenarnya.
2. Teori Dasar
2.1 Volume Serial Number
Seminar Nasional Informatika dan Aplikasinya (SNIA), 18 Desember 2013
250
Secara konseptual Volume serial number adalahnomor unik yang diberikan untuk drive selama membuat file system, dalam proses format. Sebuah volume serial number dibuat berdasarkan kombinasi yang cukup kompleks antara lain, tahun, jam, bulan, menit, detik dan seperseratus detik ketika strorage drive diformat. Karena volume serial number tidak dihasilkan secara acak dan tanpa sepengetahuan dari volume nomor seri pada drive lain di komuter, ada kemungkinan bahwa dua drive di komputer yang sama dapat berakhir memiliki volume serial number yang sama. Namun kesempatan ini sangat kecil, karena volume serial number yang dihasilkan selama format, itu akan mengubah setiap kali drive diformat.
Metode yang digunakan untuk mendapatkan volume serial number ialah Date/Time Calculation, dimana proses perhitungannya dibagi menjadi 2 bagian, yakni Lo order word dan Hi order word. Lo order word didapatkan dari hasil kalkulasi dengan mengambil nilai dari bulan dan hari lalu dikonversi ke dalam bilangan hexadecimal. Nilai detik serta mili detik juga dijumlahkan lalu ditambahkan ke dalam hasil penjumlahan nilai bulan dan hari, sedangkan Hi order word didapat dari hasil kalkulasi nilai jam dan menit lalu kemudian diubah ke dalam bilangan hexadecimal. Untuk lebih jelasnya dapat dilihat pada gambar 1.
Gambar 1 Skema Perhitungan VSN
Dari sudut pandang forensik kita mendapatkan data bahwa pada gambar di atas, volume serial number dibuat pada hari Minggu, 19 Oktober 2003 22:33:27.01. Untuk mengetahui volume serial number pada sebuah disk drive dapat melalui command prompt dengan mengetik perintah VOL, seperti pada gambar 2.
Gambar 2 Display VSN pada drive F:\
2.2 Data
Data ialah sekumpulan fakta-faktayang dapatdiwakili denganpengukuranmenggunakan
skalaataudengansistem
simbolresmidalamkonteksmodelformal[4].Model inidianggap mewakili
sesuatu yang disebutdengan dunia nyata.Secara garis besar data memiliki arti sebagai istilah majemuk dari datum yang berarti fakta atau bagian dari kata yang mengandung arti, yang berhubungan dengan kenyataan, simbol-simbol, gambar-gambar, kata-kata angka-angka, huruf-huruf atau simbol-simbol yang menunjukkan ide, objek, kondisi atau situasi.Kegunaan data adalah sebagai bahan dasar yang objektif dalam proses penyusunan kebijakan dan keputusan. Dalam kaitannya dengan pengolahan data dengan computer, pengertian data dapat dibatasi pada fakta-fakta yang dapat direkam.
2.3. GetVolumeInformation() API
Secara konseptual fungsi dari GetVolumeInformation() API adalah Mengambil informasitentang sistem filedan volumeyang berhubungan dengandirektori rootyang ditentukan.GetVolumeInformation() API disimpan di dalam kernel32 library. Umumnya struktur GetVolumeInformation() API dapat digambarkan sebagai berikut:
Gambar 3 Struktur GetVolumeInformation()
1. lpRootPathName [ in , opsional ] Sebuah pointer ke string yang berisi direktori root dari volume yang akan digambarkan secara detail.
2. lpVolumeNameBuffer [ out, opsional ] Sebuah pointer ke buffer yang menerima nama volume yang ditentukan . Ukuran buffer ditentukan oleh parameter nVolumeNameSize .Tipe data dari nama volume penyangga , TCHAR . Maksimum ukuran buffer MAX_PATH 1 .
Seminar Nasional Informatika dan Aplikasinya (SNIA), 18 Desember 2013
251
Yes No
Sebuah pointer ke variabel yang menerima nomor seri volume.Fungsi ini mengembalikan volume serial number yang sistem operasi berikan ketika hard disk diformat.
4. lpMaximumComponentLength[out, opsional]
Sebuah pointer variabel yang menerima panjang maksimum , kedalam tipe data TCHARs, dari komponen nama fileyangmendukung . Nilai yang disimpan dalam variabel yang menunjuk lpMaximumComponentLength * digunakan untuk menunjukkan bahwa sistem berkas yang ditentukan mendukung . Sebagai contoh, untuk sistem file FAT yang mendukung ukuran panjang nilai 255 juga dapat didukung pada sistem yang menggunakan sistem file NTFS .
5. lpFileSystemFlags[ out , opsional ] Sebuah pointer variabel yang menerima bendera yang terkait dengan sistem berkas yang ditentukan .
6. lpFileSystemNameBuffer[ out, opsional]
Sebuah pointerbufferyang
menerimanamadari sistem berkas, misalnya, sistem file FAT atausistemfile NTFS. Ukuranbufferditentukan oleh parameternFileSystemNameSize.
7. nFileSystemNameSize[in]
Panjangnamasistem berkaspenyangga, memiliki tipe dataTCHAR. Maksimumukuran bufferMAX_PATH +1.
Berikut ini listing program dalam bahasa pemograman C++ dalam pengaplikasian GetVolumeInformation() API:
' VSN.cpp
' C++ Source Code digunakan untuk
pengaplikasian GetVolumeInformation() API ' Author: Taufan Maulana Putra
' ---'
strcpy( szRoot, TEXT("C:\\") );
GetVolumeInformation( szRoot, szVolume, sizeof(szVolume), &dwSerial, &dwLength, &dwFlags, szSystem, sizeof(szSystem) );
printf(TEXT("GetVolumeInformation() API\n") );
printf( TEXT("\n") );
printf( TEXT("Root:%s\n"), szRoot); printf(TEXT("Volume:%s\n"), szVolume ); printf(TEXT("VSN:%08X\n"), dwSerial ); printf( TEXT("\n") );
printf( TEXT("System:%s\n"), szSystem ); printf( TEXT("Flags:%08X\n"), dwFlags );
printf( TEXT("Length:%lu\n"), dwLength );
Penelitian ini berkaitan dengan proses pengambilan kunci VSN demganpenggunaan vb script untuk mengidentifikasi disk drive yang terhubung ke dalam komputer, kemudian ambil volume serial numbernya dan konversi ke dalam bilangan basis 10 ( decimal ). Rancangan umum penelitian terhadap proses dari VSN Hardware Keydigambarkan dengan diagram alur berikut ini.
3.2. Populasi dan Sampling
Populasi dari penelitian ini adalah sekumpulan kunci VSN yang peneliti ambil secara random dari hard disk maupun usb flash drive. Struktur kunci VSN terdiri dari 8 digit dan merupakan bilangan
Deklarasi fungsi GetVolumeInformation() API
Ambil Hardware VSN di dalam disk drive dengan format hexadecimal
(XXXX-XXXX)
Konversi Hardware VSN yang didapat ke dalam bilangan decimal
Gunakan hasil konversi sebagai otentifikasi pada sisi aplikasi
VSN Disk Drive = Kunci(n) ?
Seminar Nasional Informatika dan Aplikasinya (SNIA), 18 Desember 2013
252
basis 16 ( hexadecimal ). Maka dari itu untukmemudahkan pengelolaan populasi maka peneliti melakukan translasi ke bilangan basis 10 ( decimal ).Lalu untuk sampling diambil 1 kunci VSN.yang mana untuk medapatkan kunci VSN yang sudah dikonversi ke dalam bilangan basis 10 ( decimal ).
3.3. Instrumental
Instrument yang peneliti gunakan untuk mengumpulkan kunci VSN yakni, pengidentifikasian serta pengambilan Volume Serial Number pada beberapa disk drive yang mana peneliti menggunakan vb script untuk lebih memudahkan identifikasi disk disk drive mana saja yang terhubung beserta informasi lainnya. Berikut listing programnya:
' DriveType Code-T.vbs
' VB Script digunakan untuk mengambil VSN pada disk drive
' Author: Taufan Maulana Putra ' ---' Set objFSO
=CreateObject("Scripting.FileSystemObject") Set colDrives = objFSO.Drives
For Each objDrive in colDrives
Wscript.Echo "==GET INFO==" & VbCr & _ "Drive letter: "& objDrive.DriveLetter & VbCr & _
"Drive type: "& objDrive.DriveType & VbCr & _
"Is ready: "& objDrive.IsReady & VbCr & _ "
If objDrive.IsReady Then
Wscript.Echo "Path: " & objDrive.Path & VbCr & _
"File system: "& objDrive.FileSystem & VbCr & _
"Serial number: "&
Left(Hex(objDrive.SerialNumber),4) & "-" & Right(Hex(objDrive.SerialNumber),4) & VbCr & _
"Volume name: "& objDrive.VolumeName & VbCr & _
"Total size: "& objDrive.TotalSize & VbCr & _
"" End If Next
' ---'
3.4. Data Collecting Technique
Pertama dilakukan pengidentifikasian disk drive mana saja yang terhubung, lalu setelah mengetahui drive drive yang terhubung maka peneliti melakukan akses ke command prompt dan melakukan perintah VOL, kepada seluruh drive path yang terhubung, contoh kasus yang peneliti ambil:
DEC9-1E6D
Lalu setelah itu dilakukan proses evolusi 1 populasi yang didapat dengan mengubah menjadi
bilangan basis 10 ( Desimal ), dengan proses sebagai berikut:
1. DEC9-1E6D
terdiri dari 8 digit, maka perpangkatan dimulai dari 7 sampai 0
Hasil: 3737722477 ( Plaintext Sample A )
4. Implementasi dan Analisis
4.1. Program
Pada kasus penelitian, perangkat lunak Sistem Informasi Kepegawaian PT. TVRI ( PERSERO ) dipilih sebagai sarana utama penelitian terhadap Algoritma VSN yang dibuat dengan menggunakan compiler Microsoft VisualBasic.NET versi 9.0.
4.2. Cara Kerja Algoritma VSN Hardware Key
Algoritma VSN merupakan sebuah paradigma baru dan digunakan sebagai alternatif proteksi perangkat lunak. Padaprinsipnya sistemdari algoritma VSN sendiri ialah pertama program akan memanggil library kernel32.dll dan mengambil fungsi API GetVolumeInformation yang kemudian akan dijadikan fungsi autentifikasi. Selanjutnya kita akan menentukan sebuah kunci VSN yang nantinya akan dijadikan perbandingan dengan kunci VSN yang ada di disk drive, program otomatis melakukan pengecekan ke semua disk drive letter mulai dari a:\ sampai z:\ dan komparasi menggunakan fungsi API GetVolumeInformation apakah kunci yang ditentukan sama atau tidak. Berikut ini listing program yang memaparkan gambaran umum proses VSN Hardware Key:
' VSN.vb
' Proses inti VSN Hardware Key ' Author: Taufan Maulana Putra ' ---'
Public Declare Function GetVolumeInformation Lib "kernel32" Alias"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, ByRef lpVolumeSerialNumber As Integer,
Seminar Nasional Informatika dan Aplikasinya (SNIA), 18 Desember 2013
253
ByRef lpFileSystemFlags As Integer, ByVallpFileSystemNameBuffer As String,
ByVal nFileSystemNameSize As Integer) As Integer // deklarasi fungsi API GetVolumeInformation()
Const kode_master As String = "3737722477” //
assign sebuah konstanta yang merupakan kunci VSN yang sudah dikonversi menjadi bilangan decimal
Dim root As String // deklarasi root drive Dim volume_name As String // deklarasi nama volume
Dim serial_number As Integer // deklarasi variabel untuk menampung serial number Dim max_component_length As Integer// deklarasi variabel untuk menampung panjang maksimum komponen
Dim file_system_flags As Integer // deklarasi variabel untuk menampung flag dari sistem berkas
Dim file_system_name As String // deklarasi variabel untuk menampung nama sistem berkas
For root = "A:\" to “Z:\”
If (Hex(serial_number) = Hex(kode_master)) Then
//Access Granted Else
//Access Denied Next
// Melakukan searching dari drive A:/ sampai Z:/ dan melakukan komparasi jika bernilai true maka Access Granted dan sebaliknya jika bernilai false maka Access Denied
' ---'
4.3. Screenshot Perangkat Lunak Penelitian
Gambar 4
Gambar 4VSNHardware Key bernilai true
Gambar 5 User, Access Code dan VSN Hardware Key bernilai true
Gambar 6VSN Hardware Key bernilai false
Gambar 7 User/Access Code/VSN Hardware Key bernilai false
4.4. Analisis Serangan VSNInjection
Serangan pada VSN Hardware key pun dapat dilakukan dengan teknik VSN injection, yaknimelakukan injeksi serial number baru dengan memanipulasi offset yang terdapat di dalam boot sector suatu storage drive, seperti tergambar pada Tabel 1.
Tabel 1 Offset File System di dalam Boot Sector ( dalam hexadecimal )
- FS ID S/N
FAT 0x36 0x27
FAT32 0x52 0x43
NTFS 0x03 0x48
Berikut ini listing program yang memaparkan gambaran umum serangan VSN Injection:
' Inject_VSN.cpp
Seminar Nasional Informatika dan Aplikasinya (SNIA), 18 Desember 2013
254
' Author: Taufan Maulana Putra' ---' void Inject_VSN (DWORD Drive, const DWORD NewVSN){
const max_bs = 3; struct boot_sector{
LPSTR Fs; // nama file system DWORD FsOfs; // offset file system DWORD SerialOfs; // offset dari serial number};
boot_sectorbs[max_boot_sector] = {
{"FAT", 0x36, 0x27}, {"FAT32", 0x52, 0x43}, {"NTFS", 0x03, 0x48}}; TCHAR szDrive[12];
char Sector[512]; DWORD i;
for (i=0;i<max_bs;i++){ if
(strncmp(bs[i].Fs,Sector+pb[i].FsOfs,strlen( bs[i].Fs)) == 0){
// offset bootsector ditemukan break;
} }
*(PDWORD)(Sector+bs[i].SerialOfs) = NewVSN; // inject New VSN}
' ---'
5. Kesimpulan
Kesimpulan yang dapat diambil setelah dilakukan penelitian yang menitikberatkan terhadap proses Algoritma VSN adalah sebagai berikut:
1. Penerapan algoritma VSN Hardware Keyschemedapat digunakan sebagai alternatif dalam proteksi perangkat lunak. Terbukti pada hasil pengujian di perangkat lunak sistem informasi kepegawaian PT. TVRI (PERSERO) banyak intruder yang masuk ke dalam trap scheme.
2. VSN Hardware Key scheme dapat diimplementasikankedalam pembuatan aplikasi-aplikasi yang memiliki keterbatasan ruang atau memori, dikarenakan fungsi api yang dibangun, menggunakan bahasa pemograman universal, yakni C++.
3. Tidak dapat dipungkiri bahwa VSN Hardware key scheme memiliki kelemahan, yakni dengan serangan injeksi, namun hal ini dapat sedikit di atasi dengan VSN Illusion Scheme, dimana VSN yang ditanam di dalam storage drive bukan kunci otentifikasi langsung melainkan kunci hasil dari enkripsi menggunakan algoritma enkripsi yang mengedepankan aspek kemustahilan bukan kesulitan, yang dimana dalam proses otentifikasi membutuhkan pihak ketiga.
Daftar Pustaka:
[1] Nitaj, Abderrahmane, 2011, A New Vulnerable Class of Exponents in RSA, Caen.
[2] Pfleeger, Charles, 2006,Security in Computing, New Jersey, Prentice Hall
[3] Wilson, Craig, 2005, Volume Serial Numbers and Format Date/Time Verification, Kent, Digital Detective Group.
[4] Celko, Joe, 2001, Data and Databases: Concepts in Practice, San Francisco, Morgan Kauffman.