ALGORITMA SHA
(SECURE HASH ALGORITHM)
TUGAS AKHIR
Diajukan untuk menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
GERRY RENANTO 10106105
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA BANDUNG
ii company owning the more amount data. Data owned by an company can become one of important asset to the continuity of the company life. A storage media of data with the full security system very needed.
In an encryption system VHD, a virtual disk may appear to provide the appropriate password. With functionality like a normal disk drive, the difference of the virtual disk is that each file is entered in encrypted automatically. Software in the end of this paper the task of implementing the encryption VHD on the Windows operating system using the SHA (Secure Hash Algorithm) algorithm as the
encryption algorithm.
Operation which can be conducted in this application: making volume file, mount and unmount, modification to virtual disk, encryption, decryption,
i
APLIKASI ENKRIPSI VIRTUAL DISK MENGGUNAKAN ALGORITMA SHA
(SECURE HASH ALGORITHM)
Oleh
GERRY RENANTO 10106105
Setiap orang pasti memiliki data penting yang harus mereka lindungi agar tidak hilang atau dicuri oleh pihak yang tidak bertanggungjawab. Terlebih pada suatu perusahaan yang memiliki lebih banyak data. Data yang dimiliki suatu perusahaan dapat menjadi salah satu aset penting untuk kelangsungan hidup perusahaan tersebut. Sebuah media penyimpanan data dengan sistem keamanan penuh sangat diperlukan.
Dalam sebuah sistem VHD encryption, sebuah virtual disk dapat dimunculkan dengan memberikan password yang tepat. Dengan fungsionalitas seperti layaknya disk drive biasa, perbedaan yang dimiliki virtual disk ini adalah bahwa tiap file yang dimasukkan ke dalamnya otomatis terenkripsi. Perangkat lunak dalam makalah tugas akhir ini mengimplementasikan VHD encryption pada sistem operasi Windows menggunakan algoritma SHA (Secure Hash Algorithm) sebagai algoritma enkripsi.
Operasi – operasi yang bisa dilakukan dalam aplikasi ini , membuat file volume, melakukan mount dan unmount, melakukan modifikasi terhadap virtual disk, melakukan enkripsi, melakukan dekripsi.
v
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 2
1.3 Maksud dan Tujuan ... 2
1.4 Batasan Masalah/Ruang Lingkup Kajian ... 3
1.5 Metodologi Penelitian ... 4
1.6 Sistematika Penulisan ... 7
BAB II TINJAUAN PUSTAKA ... 9
2.1 Disk Encryption ... 9
2.2 Hard Disk Encryption ... 9
2.2.1 Volume Encryption ... 9
2.2.2 EHD Encryption dan VHD Encryption ... 11
2.2.3 Virtual Disk... 11
2.2.4 Cipher Blok ... 12
2.2.5 Menciptakan Virtual Disk ... 12
vi
3.2.1 Perancangan Menu Interaksi ... 48
BAB IV ... 57
4.2.2 Skenario Pengujian dan Kriteria Keberhasilan ... 58
viii
Gambar 2.2 User A ... 18
Gambar 2.3 User B ... 19
Gambar 2.4 Fungsi-Fungsi SHA-256 ... 33
Gambar 2.5 Konstanta SHA ... 34
Gambar 2.6 Komponen Sistem Operasi ... 40
Gambar 3.1 Diagram Konteks... 43
Gambar 3.2 DFD Level 1 ... 44
Gambar 3.3 DFD Level 2 ... 45
Gambar 3.4 Tampilan Menu Utama... 48
Gambar 3.5 Menu Create ... 49
Gambar 3.6 Menu Pop Up ... 50
Gambar 3.7 Form Password ... 50
Gambar 3.8 Form Retype Password ... 51
Gambar 3.9 Form Format Baru ... 52
Gambar 3.10 Proses Format ... 53
Gambar 3.11 menu Mount ... 53
Gambar 3.12 Menu Entri Password ... 54
Gambar 3.13 Message Berhasil ... 54
Gambar 3. 14 Menu Utama ... 55
Gambar 3.15 Error Warning ... 55
Gambar 3.16 menu Dismount ... 56
Gambar 3.17 Menu Dismount All ... 56
Gambar 3.18 menu Properties ... 57
ix
Gambar 4.3 Virtual disk mounted ... 65
Gambar 4.4 Salah Password ... 66
Gambar 4.5 Virtual Disk masih kosong ... 67
Gambar 4.6 Virtual Disk telah di Write Suatu File ... 68
Gambar 4.7 Read/Write mode... 69
Gambar 4.8 Mount as Readonly... 70
Gambar 4.9 Drive Tidak Bisa Write dikarenakan Virtual Disk Hanya Untuk Dibaca Saja ... 71
Gambar 4.10 Melakukan Unmount ... 72
Gambar 4.11 Drive Tidak Bisa di Unmount ... 72
Gambar 4.12 Membuka file volume. ... 73
xiii
LAMPIRAN B LISTING PROGRAM ...B-1
LAMPIRAN C HASIL KUESIONER ...C-1
x
vii
1
PENDAHULUAN
1.1 Latar Belakang Masalah
Setiap orang pasti memiliki data penting yang harus mereka lindungi agar tidak
hilang atau dicuri oleh pihak yang tidak bertanggungjawab. Terlebih pada suatu
perusahaan yang memiliki lebih banyak data. Data yang dimiliki suatu perusahaan
dapat menjadi salah satu aset penting untuk kelangsungan hidup perusahaan tersebut.
Sebuah media penyimpanan data dengan sistem keamanan penuh sangat diperlukan.
Masalah yang timbul bukan hanya pada media penyimpanan data tetapi
bagaimana media penyimpanan data tersebut dilengkapi dengan sistem keamanan
yang baik pula. Oleh karena itu digunakanlah teknik enkripsi data, teknik enkripsi
yang umum digunakan adalah enkripsi yang dilakukan pada file atau file encryption.
File encryption sudah dilakukan bertahun-tahun dan masih memiliki manfaat dari
segi keamanan. Namun, file encryption juga memiliki kekurangan apabila dihadapkan
pada kondisi jika file tersebut berjumlah banyak seperti file-file yang dimiliki oleh
suatu perusahaan.
Selain menggunakan teknik enkripsi yang baik, media penyimpanan yang
digunakan nanti harus memiliki tempat yang aman pula dikarenakan file yang di
sebuah media penyimpanan tersebut kadang sudah tidak diperlukan lagi oleh karena
itu agar tidak terjadi penumpukan file, file harus dapat dimodifikasi atau dihapus.
Untuk teknik enkripsi diperlukan adanya standart algoritma yang benar-benar
aman dan tidak mudah dipecahkan oleh teknologi saat ini. Maka dari itu
pembangunan media penyimpanan data harus dilengkapi dengan teknik enkripsi yang
menggunakan standart algoritma dengan tingkat keamanan tinggi.
1.2 Rumusan Masalah
Berdasarkan latar belakang tersebut maka dapat dirumuskan masalah sebagai
berikut :
1. Bagaimana mengimplementasikan sebuah virtual disk yang telah terenkripsi
dengan algoritma SHA di dalamnya menggunakan system operasi windows.
1.3 Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penelitian ini adalah
bagaimana membuat atau membangun aplikasi enkripsi virtual disk menggunakan
algoritma SHA (Secure Hash Algorithm)
Adapun Tujuan dari penelitian ini adalah:
1. Diperlukan sebuah media penyimpanan data dan teknik enkripsi yang baik
3. Membuat sebuah virtual disk yang dapat digunakan seperti physical disk lainnya
namun tidak dalam bentuk disk yang nyata, secara fisik dapat menyimpan file
serta file tersebut dapat dimodifikasi atau dihapus.
4. Mengimplementasikan teknik disk encryption menggunakan algoritma SHA.
1.4 Batasan Masalah/Ruang Lingkup Kajian
Adapun batasan masalah dari Aplikasi Enkripsi Virtual Disk Menggunakan
Algoritma SHA ini adalah sebagai berikut:
1. Pengguna Aplikasi ini digunakan oleh user biasa
2. Procedure
a. Implementasi yang dilakukan tidak memberikan solusi keamanan terhadap
segala perlakuan yang dikenakan pada file volume, terutama penghapusan
terhadap file tersebut.
b. Operasi yang dilakukan pada suatu file hanya sebatas mengenkripsi saja
tanpa adanya proses kompresi.
3. Model analisis perangkat lunak yang digunakan adalah pemodelan analisis
terstruktur. Alat yang digunakan adalah flowmap dan diagram E-R, dan untuk
menggambarkan proses yang digunakan adalah DFD (Data Flow Diagram).
4. Data yang diolah :
Data yang tersimpan dalam virtual disk
a. Informasi kapasitas virtual disk
b. Informasi jenis data yang tersimpan dalam virtual disk
6. Perangkat Lunak
Perangkat Lunak yang digunakan dalam membangun aplikasi enkripsi virtual
disk menggunakan algoritma SHA ini adalah :
a. Pembangunan Aplikasi menggunakan Borland Delphi 7
b. Sistem Operasi menggunakan Microsoft Windows XP Service Pack 2
c. Editor Notepad++ v4.0.2
7. Perangkat Keras
a. Prosesor Intel Core2Duo E8200 2,7 GHz
b. RAM 2 Gb
c. Harddisk 160Gb
d. Perangkat keluaran berupa monitor
e. Perangkat masukan berupa keyboard
1.5 Metodologi Penelitian
Metodelogi Penelitian yang digunakan untuk membangun aplikasi enkripsi
virtual disk menggunakan algoritma SHA ini sebagai berikut :
Teknik dalam pembangunan perangkat lunak menggunakan paradigma
Gambar 1.1 Gambar waterfall
1) Analisis
Merupakan tahap menganalisis hal-hal yang diperlukan dalm pelaksanaan
pembangunan perangkat lunak. Pada tahap analisis dilakukan metode
pengumpulan data yaitu sebagai berikut :
a. Studi Pustaka
Metode pengumpulan data dengan mencari data, mempelajari banyak
data dari berbagai sumber buku, modul, artikel baik perpustakaan maupun
internet yang berhubungan dengan permasalahan yang dibahas.
b. Wawancara (interview)
Pengumpulan data yang dilakukan dengan cara berkomunikasi
(narasumber) yang lebih terinci terhadap permasalahan yang sedang diteliti.
c. Observasi
Pengumpulan data melalui pengamatan dan pencatatan data oleh
pengumpul data terhadap peristiwa yang diselidiki pada objek penyusunan.
Dalam melakukan observasi penulis melakukan beberapa pengamatan
terhadap sistem kerja, proses pengolahan data yang sedang berjalan.
2) Desain
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas
menjadi representasi ke dalam bentuk rancangan aplikasi sebelum coding
dimulai. Design harus dapat mengimplementasikan kebutuhan yang telah
disebutkan pada tahap sebelumnya. Seperti aktivitas sebelumnya, maka proses
ini juga harus didokumentasikan sebagai konfigurasi dari aplikasi yang
dibangun.
3) Pengkodean / implementasi
Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer,
maka desain tersebut harus diubah bentuknya menjadi bentuk yang dapat
dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses
coding. Tahap ini merupakan implementasi dari tahap design.
Aplikasi yang telah dibangun harus dilakukan ujicoba. Semua
fungsi-fungsiaplikasitersebut harus diujicobakan, agar aplikasibebas dari error, dan
hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan
sebelumnya.
5) Pemeliharaan
Pemeliharaan sebuah aplikasi sangat diperlukan, termasuk di
dalamnya adalah pengembangan, karena aplikasi yang dibangun tidak
selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada error
kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang
belum ada pada aplikasi tersebut. Pengembangan diperlukan ketika adanya
perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem
operasi, atau perangkat lainnya.
1.6 Sistematika Penulisan
Laporan terdiri dari beberapa bab dan tersusun berdasarkan sistematika
penulisan sebagai berikut :
BAB I. PENDAHULUAN
Dalam bab ini penulis menguraikan mengenai hal-hal umum yang berkaitan
mengenai latar belakang, rumusan persoalan, maksud dan tujuan dari tugas akhir,
ruang lingkup dan batasan yang diacu, metodologi yang digunakan serta sistematika
BAB II. TINJAUAN PUSTAKA
Bab ini menjelaskan mengenai beberapa teori pendukung tugas akhir ini
BAB III. ANALISIS DAN PERANCANGAN
Membahas spesifikasi kebutuhan perangkat lunak, yang dijelaskan dengan
pemodelan diagram, hasil analisis ini kemudian diaplikasikan dengan rancangan
aplikasi yang terdiri dari rancangan struktur program hasil analisis dan perancangan.
BAB IV. IMPLEMENTASI DAN PENGUJIAN
Bab ini merupakan bab penutup laporan yang berisi tentang Kesimpulan dan
Saran-saran.
BAB V KESIMPULAN DAN SARAN
Bab ini merupakan bab penutup laporan yang berisi tentang Kesimpulan dan
9
TINJAUAN PUSTAKA
2.1 Disk Encryption
Disk Encryption adalah salah satu teknik enkripsi yang dilakukan pada data at
rest. Istilah data at rest ditujukan pada data yang tersimpan pada media penyimpanan
komputer. Dengan kata lain, enkripsi tidak dilakukan pada data yang sedang
ditransmisi melalui jaringan. Media penyimpanan yang dimaksud dalam disk
encryption merupakan peralatan/device yang memiliki sektor-sektor dan alamat untuk
tiap sektor tersebut. Contohnya adalah hard disk atau flash card.
2.2 Hard Disk Encryption
Penerapan disk encryption pada hard disk dinamakan hard disk encryption.
Satu sektor pada hard disk biasanya memiliki ukuran 512 byte. Istilah lain yang
paling sering digunakan untuk menyebut hard disk encryption adalah volume
encryption. Untuk penulisan dokumen Tugas Akhir ini, istilah disk encryption
mengacu pada hard disk encryption.
2.2.1 Volume Encryption
Berkaitan dengan teknik enkripsi pada data at rest, teknik yang umum
digunakan adalah enkripsi yang dilakukan pada file atau file encryption. Satu file
bertahun-tahun dan masih memiliki manfaat dari segi keamanan. Berbeda dengan
file encryption, disk encryption dalam implementasinya menggunakan suatu
wadah/kontainer/volume. Wadah ini digunakan sedemikian rupa sehingga tiap file
yang dimasukkan ke dalam wadah ini akan otomatis terenkripsi. Dengan alasan itu,
salah satu istilah lain untuk disk encryption adalah volume encryption.
Wadah/kontainer/volume ini bila dibuka dengan password yang tepat akan
diperlakukan sebagai disk tersendiri (contohnya H:\ drive). Dengan kata lain,
dengan password yang tepat, sistem enkripsi ini akan memunculkan sebuah virtual
disk.
Dibandingkan dengan teknik file encryption, disk encryption memiliki
beberapa keuntungan terutama bila jumlah file penting yang hendak dienkripsi amat
banyak. Wadah yang disediakan oleh disk encryption memungkinkan file-file penting
tersebut terkumpul dengan rapi dalam satu tempat (tidak tersebar). Penanganan kunci
pun lebih mudah karena hanya diperlukan satu kunci untuk satu wadah. Dengan
demikian, pengguna tidak perlu mengingat kunci mana yang digunakan untuk file
apa. Selain itu, pengguna tidak perlu turun tangan untuk memicu proses
enkripsi/dekripsi berulang kali karena sifatnya yang otomatis melakukan proses
Berdasarkan besarnya kontainer/volume tersebut, disk encryption dapat digolongkan
menjadi dua yakni entire hard disk encryption (EHD encryption) dan virtual hard disk
encryption (VHD encryption).
2.2.2 EHD Encryption dan VHD Encryption
Sesuai namanya, EHD encryption berarti enkripsi dilakukan pada seluruh area
hard disk, termasuk faktor yang menyangkut perangkat keras hard disk itu sendiri.
Dengan demikian, EHD encryption ini hanya dapat diimplementasikan secara khusus
terhadap salah satu jenis hard disk tertentu. Jenis enkripsi ini tentu memiliki
kelebihan karena seluruh area hard disk aman. Namun, jika dikaitkan dengan
jaringan dan kegiatan sharing yang biasa dilakukan di dalamnya, EHD encryption
menuntut penyesuaian yang tidak mudah.
VHD encryption, di sisi lain, tidak melakukan pengamanan terhadap seluruh
area hard disk, tetapi hanya sebagian, yaitu sebuah virtual disk. Dengan demikian,
sepanjang ada kesesuaian sistem enkripsi dengan sistem operasi tempat VHD
encryption terinstal, semua akan berjalan lancar, tidak perlu memikirkan faktor yang
berkaitan dengan perangkat keras hard disk.
2.2.3 Virtual Disk
Virtual disk berarti tidak ada disk yang nyata dalam bentuk fisik. Walaupun
disk dapat digunakan untuk menyimpan file dan file yang terdapat di dalamnya
dapat dimodifikasi atau dihapus. Virtual disk merupakan disk yang muncul
sementara, hanya selama dipanggil saja (istilahnya di-mount). Bentuk asli dari virtual
disk dapat berupa memory. Hal tersebut berarti pada saat virtual disk di-mount,
sebagian dari memory diperlakukan seperti layaknya physical disk. Selain untuk
mengeksekusi program, data dapat disimpan pada bagian memory tersebut. Kondisi
ini memungkinkan seluruh proses yang berkaitan dengan virtual disk yang tercipta
berlangsung lebih cepat. Kelemahan cara ini adalah bila komputer dimatikan, seluruh
data juga hilang (karena tersimpan di memory).
2.2.4 Cipher Blok
Disk encryption bekerja dengan cipher blok (block cipher). Rangkaian bit
plainteks/cipherteks yang akan dienkripsi atau didekripsi dibagi menjadi blok-blok bit
yang panjangnya sama dan sudah ditentukan sebelumnya. Cipher blok termasuk
dalam tipe algoritma simetri, tipe algoritma kriptografi modern yang berarti proses
enkripsi dan dekripsi memiliki struktur yang serupa. Salah satu jenis cipher blok
yang dapat digunakan untuk disk encryption adalah algoritma SHA.
2.2.5 Menciptakan Virtual Disk
Untuk memunculkan sebuah virtual disk, diperlukan peran dari komponen
dapat menerima informasi seperti nama file volume, ukuran virtual disk, juga nama
drive yang diinginkan. Informasi itu diberikan oleh pengguna Kemudian, aplikasi
pengguna bertugas memberi tahu virtual disk driver untuk membuat virtual disk
dengan spesifikasi yang telah diberikan dengan memanggil fungsi Windows API
yang sesuai.
Windows API (Application Programming Interface) merupakan sekumpulan
fungsi-fungsi eksternal yang terdapat dalam file-file perpustakaan Windows (library
Windows) atau file library lainnya yang dapat digunakan oleh program. Fungsi ini
dapat menangani semua yang berhubungan dengan Windows, seperti pengaksesan
disk, interface printer, grafik Windows, kotak dialog (buka file, simpan file, memilih
font, memilih warna, dll) Windows shell, setting sistem operasi, penanganan file,
mengakses sitem registry, memainkan musik, dan sebagainya. Fungsi inni
menyediakan banyak fitur-fitur standar untuk semua program yang berbasis
Windows.
Hampir semua fungsi Windows API terdapat dalam direktori sistem milik
Windows dan paling banyak berekstensi .DLL yang digunakan oleh sistem operasi
Windows. Selain itu fungsi ini juga memastikan secara konsisten penggunaan semua
sumber yang terdapat dalam Windows. File-file itulah yang disebut dengan Windows
Karena fungsi Windows API merupakan fungsi eksternal, maka untuk
menggunakan fungsi tersebut terlebih dahulu dideklarasikan dengan perintah Declare
didalam kode program. Setelah pendeklarasian fungsi selesai dilakukan, selanjutnya
anda bebas untuk menggunakan fungsi tersebut layaknya bahasa Visual Basic
didalam program.
Fungsi Windows API yang digunakan adalah DeviceIoControl. Parameter
yang digunakan fungsi ini adalah sebagai berikut:
Gambar 2.1 Device IO Control
Penanganan request yang berasal dari komponen user mode melalui
Windows API merupakan salah satu fungsi utama driver. Untuk kepentingan request
tersebut, driver memiliki control code yang spesifik untuk melakukan operasi-operasi
DeviceIoControl pada parameter dwIoControlCode. Pada kasus virtual disk, Aplikasi
Pengguna akan mengirimkan kode untuk menciptakan virtual disk kepada driver
pada saat menu mount dipilih.
Selain untuk memicu fungsi driver tertentu, fungsi DeviceIoControl juga
dapat dimanfaatkan untuk mengirimkan informasi yang diperlukan untuk melakukan
fungsi tersebut maupun menerima hasil fungsi driver. Parameter yang berkaitan
adalah lpInBuffer dan nInBufferSize untuk masukan pada driver serta lpOutBuffer
dan nOutBufferSize untuk menampung hasil dari driver.
Setelah mendapatkan kode untuk menciptakan virtual disk dan informasi yang
dibutuhkan, driver melakukan pemeriksaan berkaitan dengan virtual disk yang akan
dibuat, seperti kapasitas hard disk yang masih mencukupi atau tidak. Apabila file
volume sukses dibuat, driver akan menciptakan sebuah device yang
dihubungkandengan file volume tersebut. Untuk memunculkan virtual disk, device
akandiemulasikan sebagai hard disk dengan memasukkan parameter tertentu pada
fungspenciptaan device. Bersamaan dengan penciptaan device tersebut, sebuah thread
akan diikutsertakan selama device tersebut ada.
2.3 Algoritma SHA
Dalam dunia kriptografi, hash function bukan merupakan suatu barang yang
tarik tersendiri dikarenakan cukup banyak aplikasi yang menggunakan hash function
dalam penerapannya. Hash function digunakan sebagai autentikasi, integritas dan
digital signature, salah satu aplikasinya yaitu penggunaan password dalam aplikasi
digital atau internet.
Cryptographic Hash Function adalah suatu fungsi dengan inputan yang
berubah-ubah panjangnya (atau sangat panjang) dan memetakannya sehingga
menghasilkan output yang pendek dan panjang nya tetap. Hash functions berawal dari
ilmu komputer, dimana dibutuhkan sebuah fungsi yang berguna untuk mengkompresi
sebuah string dengan panjang yang berubah-ubah menjadi sebuah string tetap yang
lebih pendek. Hash functions digunakan untuk menentukan secara keseluruhan
tempat penyimpanan yang mungkin dari sebuah file. Pada aplikasi kriptografi, hash
function dibedakan menjadi unkeyed dan keyed hash functions.
1. Unkeyed Hash Function (Manipulation Detection Codes = MDCs)
Hanya memerlukan satu parameter input, yaitu berita.
2. Keyed Hash Function (Message Authentication Codes = MACs)
Menggunakan dua parameter input, yaitu berita dan kunci.Selanjutnya,
Unkeyed hash functions atau MDCs yang akan dikenal sebagai Hash Functions.
Hash functions juga dapat digunakan untuk keamanan pada autentikasi berita
misalnya proses komunikasi pengiriman file ukuran besar yang melalui jalur insecure,
autentikasi yang dilakukan yaitu dengan mengirimkan hasil hash dari berita melalui
jalur komunikasi biasa misalnya mail biasa atau melalui telefax.
Aplikasi hash functions yang umum adalah digital signatures yaitu aplikasi
untuk menandatangani hasil hash dan hal ini jauh lebih baik daripada menandatangani
berita aslinya, dan akan mendapatkan keuntungan keamanan sekaligus performance.
Dengan hash functions kita dapat membandingkan dua buah nilai tanpa harus
membuka berita. Misalnya password dan passphrase.
A adalah seorang user pada suatu aplikasi yang memerlukan proses
autentikasi dalam hal ini password. Aplikasi tersebut akan meminta input dari A
kemudian dengan algoritma hash functions yang digunakan oleh aplikasi tersebut
maka akan diubah inputan tersebut menjadi suatu output yang unik dan dengan suatu
panjang tertentu. Tidak ada satupun output atau hasil hash functions dalam aplikasi
tersebut yang nilainya sama. Selanjutnya, aplikasi tersebut hanya akan mencocokkan
hasil output setiap kali user A login dengan database yang ia punya.
Sebuah digital signatures digunakan sebagai fungsi integritas suatu berita atau
data yang dikirim. Apakah berita itu asli? Adakah kekurangan dalam berita tersebut?
panjang) untuk kemudian menghasilkan output yang panjang nya tetap (misalnya 128
bit, 256 bit).
User A ingin mengirimkan sebuah berita kepada user B, sebelumnya user A
mencari digital signatures berita yang telah terenkripsi dengan menggunakan suatu
algoritma hash function. Dan mengenkripsi digital signature tersebut. Kemudian user
A mengirimkan berita dan digital signature berita yang keduanya telah di enkripsi
tersebut kepada user B.
Gambar 2.2 User A
User B akan menerima berita yang telah terenkripsi dan digital signature dari
user A. Langkah pertama, user B akan mendekripsi digital signature tersebut.
Kemudian ia mencari nilai hash dari berita yang telah terenkripsi untuk kemudian
dicocokkan dengan digital signature berita tersebut. Jika hasil nya sama, maka berita
tersebut asli, dan berita tersebut terjamin keutuhannya. Jika hasilnya berbeda maka
inputan hash function akan menghasilkan nilai hash yang jauh berbeda. Sehingga kita
dapat melihat integritas atau keaslian berita tersebut tanpa harus membuka berita
tersebut.
Gambar 2.3 User B
Jika sama, maka berita tersebut asli, user B dapat mendekripsi berita tersebut
Hash function adalah sebuah fungsi h yang :
Konsep One-Way Hash Function diperkenalkan pertama kali oleh Diffie dan
Hellman pada papernya "New Directions in Cryptography".
Definisi 1 Sebuah One-Way Hash Function (OWHF) adalah fungsi h yang
memenuhi kondisi :
Sebuah X dapat mempunyai panjang yang bervariasi dan hasil dari h(x) hanya
mempunyai sebuah panjang yang tetap yaitu n bit.Hash Function akan bersifat
one-way yaitu jika diberikan sebuah Y hasil dari h, maka akan tidak mungkin (secara
resistant) dan diberikan X dan h(X) maka akan tidak mungkin (secara perhitungan)
untuk menemukan sebuah berita X’ ? X dimana h(X’) = h(X) (second preimage
resistant).Sebuah fungsi yang bersifat preimage resistant dikenal dengan one-way
function (namun preimage resistance biasanya digunakan untuk hash function).
Beberapa penulis menyebutkan second preimage resistantce sebagai weak collision
resistance. Untuk beberapa aplikasi (seperti fungsi pseudo-random dan algoritma
MAC yang berdasarkan hash functions) sebagian besar dari input dapat diketahui
namun sulit untuk menemukan bagian yang tidak diketahui pada input tersebut. Hal
seperti ini disebut dengan partial preimage resistance.
Definisi dari collision resistance hash functions (CRHF) secara formal
di perkenalkan oleh Yuval pada papernya "How to swindle Rabin".
Definisi 1 Sebuah Collision Resistance Hash Functons (CRHF) adalah fungsi
h yang memenuhi kondisi :
1. Sebuah X dapat mempunyai panjang yang bervariasi dan hasil dari h(x) hanya
mempunyai sebuah panjang yang tetap yaitu n bit
2. Hash Function tersebut harus merupakan OWHF, yaitu memenuhi preimage
3. Hash function tersebut harus bersifat collision resistant, yaitu dimana tidak
mungkin (secara perhitungan) untuk menemukan dua berita yang mempunyai
nilai hash yang sama.
Jelas dilihat bahwa menemukan sebuah second preimage tidak akan lebih
mudah dibanding menemukan sebuah collision. Bagaimanapun juga untuk
menentukan hubungan yang pasti dari kedua kondisi diatas memerlukan definisi
khusus. Pada kondisi tertentu, collision resistance menyebabkan preimage resistance
dan second preimage resistance.
MD5 Message Digest Algorithm (RFC 1321) ditemukan oleh Ron Rivest
pada MIT.Sampai beberapa tahun ketika brute-force dan kriptanalisa berkembang
pesat, MD5 adalah algoritma hash function yang paling banyak digunakan. Input
algoritma ini adalah sebuah berita dengan panjang yang bervariasi dan menghasilkan
output sebuah 128-bit message digest.
SHA Family adalah merupakan algoritma hash function yang dibuat oleh
National Security Agency (NSA) dan dipublikasikan sebagai standar oleh pemerintah
USA.Algoritma SHA family yang paling banyak digunakan adalah SHA-1 dan telah
banyak diaplikasikan pada berbagai macam aplikasi keamanan dan protokol
Tabel 2.1 Perbandingan SHA family
Algoritma Hash Ukuran Digest
Hash (bits)
Catatan : Internal state adalah “sum (digest) internal hash“ setelah tiap
kompresi dari satu blok data.
Banyak peneliti yang mencoba melakukan cryptanalysis terhadap algoritma
hash functions yang ada. Dan perkembangan cryptanalysis tersebut sangat
mengejutkan.Pada konferensi CRYPTO 98, dua peneliti asal Perancis
mempresentasikan sebuah attack terhadap SHA-0 [3] dimana collisions dapat
ditemukan dengan kompleksitas 261; lebih rendah dari 280, kompleksitas ideal suatu
hash functions.
Pada tahun 2004, Biham dan Chen menemukan near-collisions untuk SHA-0
dimana dari 160 bit output, 142 bitnya sama. Mereka juga menemukan full collisions
pada SHA-0 dengan 62 round dari total 80 round.
Berikutnya, pada 12 Agustus 2004, sebuah collision untuk full SHA-0
diumumkan oleh Joux, Carribault, Lemuet dan Jalby. Dengan menggunakan Chabaud
dan Joux Attack[10]. Yaitu menemukan collisions dengan kompleksitas 251 dan
memerlukan 80.000 jam dengan menggunakan superkomputer yang didalamnya
terdapat 256 buah prosesor Itanium 2.
Pada 17 Agustus 2004, pada Rump Session CRYPTO 2004, sebuah hasil
pendahuluan telah diumumkan oleh Wang, Feng, Lai dan Yu, mengenai attack
terhadap MD5, SHA-0 dan hash functions lainnya [5]. Kompleksitas attack mereka
terhadap SHA-0 adalah sekitar 240, jauh lebih baik dibandingkan attack yang
dilakukan oleh Joux dan yang lainnya.
Pada Februari 2005, sebuah attack kembali dilakukan oleh Xiaoyun Wang,
Yiqun Lisa Yin, dan Hongbo Yu, dan diumumkan bahwa mereka dapat menemukan
collision pada SHA-0 dalam 239 operasi [6].
Berdasarkan beberapa kriptanalisis terhadap SHA-0, beberapa ahli
menyarankan untuk menggunakan SHA-1 sebagai kriptosistem baru. Setelah hasil
setahap demi setahap penggunaan SHA-1 sampai 2010, dan menggantikan nya
dengan SHA-2 variant.
Pada tanggal 17 Agustus 2005, perkembangan attack terhadap SHA-1
diumumkan oleh Xiaoyun Wang, Andrew Yao dan Frances Yao pada rump session
CRYPTO 2005,dan dapat menemukan collision dengan kompleksitas 263. Karena
telah ditemukannya full-collision pada beberapa algoritma hash functions (selain
SHA-1 dapat juga diterapkan pada MD5, RIPEMD) oleh para peneliti dari China
tersebut, NIST (National Institute of Standards and Technology) mengadakan suatu
workshop khusus mengenai hash functions di Santa Barbara pada Oktober 2005.
Dalam workshop tersebut mereka mengeluarkan issue mengenai algoritma hash
function yang dapat menggantikan SHA-1. Issue tersebut sangat penting mengingat
SHA-1 telah dijadikan standard algoritma hash function oleh pemerintah USA
(NIST). Sampai saat ini belum ada algoritma hash yang dijadikan standard (dalam hal
ini oleh USA dan indonesia sendiri belum mempunyai standard tersendiri mengenai
hal ini), padahal aplikasi yang menggunakan hash functions sebagai digital signature,
autentikasi banyak dipakai di perbankan atau aplikasi online lainnya. Hal ini akan
menjadi masalah tersendiri bagi keamanan informasi.
2.3.1 Algoritma SHA-1
Fungsi Hash SHA adalah lima fungsi hash kriptografis yang dirancang oleh
Federal Information Processing Standard. SHA adalah kepanjangan dari Secure Hash
Algorithm. Algoritma-algoritma hash menghitung suatu representasi digital dengan
panjang yang pasti atau telah ditentukan (yang yang dikenal sebagai suatu message
digest) dari suatu urutan data masukan (pesan) yang panjangnya bermacam-macam.
Mereka disebut aman ketika, dapat dikomputasi
untuk:
1. Menemukan suatu pesan yang berpasangan dengan suatu message digest
yang diberi, atau
2. Menemukan dua pesan yang berbeda yang menghasilkan message digest
yang sama. Setiap perubahan akan, dengan kemungkinan yang sangat
tinggi, menghasilkan suatu message digest yang berbeda.
SHA-1 menghasilkan suatu message digest dengan panjang 160 bit; nomor di
dalam nama-nama empat algoritma yang lainnya menandakan panjangnya bit dari
digest yang mereka hasilkan. SHA-1 digunakan secara luas di dalam beberapa
aplikasi-aplikasi keamanan dan protokol-protokol, termasuk TLS dan SSL, PGP,
SSH, S/MIME, dan IPsec. SHA-1 dianggap sebagai pengganti lanjutan MD5,
algoritma yang telah populer sebelumnya.
Pseudocode untuk SHA-1 adalah sebagai berikut:
Note 1: All variables are
modulo 232 when calculating
Note 2: All constants in this
pseudo code are in big endian.
Within each word, the most
significant bit is stored in
the leftmost bit position
append the bit '1' to the message append k bits '0', where k is the minimum number
0 such that the resulting message length (in bits) is congruent to 448 (mod 512)
append length of message (before pre-processing), in bits, as 64-bit big-endian integer
Process the message in successive 512-bit chunks:
break message into 512-bit
chunks
break chunk into sixteen 32-bit big-endian words w[i], 0 i 15
Extend the sixteen 32-bit
words into eighty 32-bit words:
else if 20 i 39
Add this chunk's hash to
result so far:
h1 = h1 + b
h2 = h2 + c
h3 = h3 + d
h4 = h4 + e
Produce the final hash value
(big-endian):
digest = hash = h0 append h1
append h2 append h3 append h4
s0 := (a rightrotate 2)
xor (a rightrotate 13) xor (a
rightrotate 22)
maj := (a and b) xor (a
and c) xor (b and c)
t2 := s0 + maj
s1 := (e rightrotate 6)
xor (e rightrotate 11) xor (e
a := t1 + t2
Add this chunk's hash to
result so far:
Produce the final hash value
(big-endian):
digest = hash = h0 append h1
append h2 append h3 append h4
append h5 append h6 append h7
2.3.1.1 Kriptanalisis SHA-1
Pada tahun 2005, Rijmen dan Oswald mempublikasiknan serangan pada versi
menemukan kolisi dnegan kompleksitas sekitar 280 operasi. [1] Pada bulan Februari
2005, Xiayoun Wang,Yiqun Lisa Yin, dan Hongbo Yo mempublikasikan serangan
yang dapat menemukan collision pada versi penuh SHA- yang membutuhkan sekitar
269 operasi. Di dalam ilmu pengetahuan komputer, hash collision adalah suatu
situasi yang terjadiketika dua masukan yang berbeda pada suatu fungsi hash
menghasilkan keluaran yangidentik. Semua fungsi hash berpotensial untuk
menghasilkan hash collision, meskipundemikian fungsi hash yang dirancang
denganbaik dapat mengurangi intensitas terjadinya hash collision (bandingkan
dengan suatufungsi dengan kurang baik merancang) ataulebih sulit untuk ditemukan.
Bagaimanapun,banyak sekali fungsi hash, termasuk fungsi hash yang sering
digunakan dalam kriptografi, menghasilkan suatu keluaran ukuran yang ditetapkan
dari satu pesan yang panjang. Dalam desain yang demikian, akan selalu ada hash
collision, karena setiap fungsi hash yang diberi harus berpasangan dengan satu
bilangan tak hingga dari masukan-masukan yang mungkin.Contoh terjadinya hash
collision adalah sebagai berikut:f(x) = f(y) ; x != y (untuk nilai masukan yang berbeda
x dan y,fungsi hash f menghasilkan nilai keluaran yang sama).
2.3.2 Algoritma SHA-256
Untuk menghindari kriptanalisis yang disebabkan oleh Collision pada SHA-1, maka
dikembangkan algoritma-algoritma selanjutnya. Algoritma SHA generasi selanjutnya
algoritma SHA-2 yaitu SHA-256. Algoritma SHA-256 dapat digunakan untuk
menghitung nilai message digest dari sebuah pesan, dimana pesan tersebut memiliki
panjang maksimum 264 bit. Algoritma ini menggunakan sebuah message schedule
yang terdiri dari 64 elemen 32-bit word, delapan buah variabel 32-bit, dan variable
penyimpanan nilai hash 8 buah word 32-bit. Hasil akhir dari algoritma SHA-256
adalah sebuah message digest sepanjang 256-bit. Preprocessing dilakukan dengan
menambahkan bit pengganjal, membagi-bagi pesan dalam block berukuran 512-bit,
dan terakhir menginisiasi nilai hash awal. Proses penambahan bit pengganjal adalah
sama dengan aturan penambahan bit pengganjal pada SHA-1. Dalam proses
komputasinya, SHA-256 menggunakan enam fungsi lojik, dimana setiap fungsi
beroperasi mengguankan tiba buah word 32-bit (x,y, dan z) dan keluarannya berupa
sebuah word 32-bit. Berikut ini adalah fungsi-fungsi SHA-256:
Gambar 2.4 Fungsi-Fungsi SHA-256
Nilai hash awal pada algoritma SHA-256
h0 := 0xc1059ed8
h1 := 0x367cd507
h2 := 0x3070dd17
h3 := 0xf70e5939
h4 := 0xffc00b31
h5 := 0x68581511
h6 := 0x64f98fa7
h7 := 0xbefa4fa4
Dan konstanta dalam SHA-256 adalah sebagai berikut (64 buah):
Berikut ini adalah pseudo-code dari algoritma SHA-256.
Note 1: All variables are
unsigned 32 bits and wrap
modulo 232 when calculating
Note 2: All constants in this
pseudo code are in big endian
Initialize variables
(first 32 bits of the
fractional parts of the square
roots of the first 8 primes
Initialize table of round constants
(first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311):
0x4d2c6dfc, 0x53380d13,
append the bit '1' to the message append k bits '0', where k is the minimum number
>= 0 such that the resulting message length (in bits) is congruent to 448 (mod 512)
append length of message (before pre-processing), in bits, as 64-bit big-endian
Process the message in successive 512-bit chunks:
break message into 512-bit
chunks
for each chunk
break chunk into sixteen 32-bit big-endian words
w[0..15]
Extend the sixteen 32-bit words into sixty-four 32-bit words:
for i from 16 to 63
Hal ini dimungkinkan dengan membuat sebuah driver. Driver merupakan wadah
koleksi fungsi dan prosedur yang sistem operasi panggil untuk menjalankan berbagai
operasi yang berkaitan dengan perangkat. Dalam kasus ini (virtual disk driver)
perangkat keras yang dimaksud adalah hard disk.
Seperti yang dapat dilihat pada gambar, sistem operasi memiliki komponen user
mode dan kernel mode. User mode driver dan aplikasi yang termasuk dalam user
mode tidak memiliki akses langsung terhadap perangkat keras dan memori.
Komponen ini harus memanggil Application Programming Interface atau API dari
setiap kali mengakses perangkat keras dan memori. Isolasi semacam itu memberikan
perlindungan sehingga kerusakan yang ditimbulkan pada komponen user mode lebih
mudah untuk ditanggulangi dibandingkan dengan pada komponen kernel mode.
Komponen kernel mode mampu melakukan operasi dan mengakses struktur
sistem yang terlarang untuk komponen user mode, misalnya operasi yang
menyangkut Input/Output (I/O), konfigurasi sistem, Plug and Play, pengaturan
41 BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis
Fungsionalitas utama dari perangkat lunak tugas akhir ini adalah membuat file
volume sesuai masukan pengguna dan melakukan mount atau unmount virtual disk
yang terenkripsi dari file volume tersebut. Pada saat membuat file volume, pengguna
memberikan masukan seperti kapasitas yang nantinya akan menjadi kapasitas virtual
disk dan password untuk memunculkan virtual disk tersebut.
3.1.1 Analisis Masalah
Analisis masalah perangkat lunak yang akan dibangun adalah sebagai berikut:
1. Bagaimana membuat file volume yang dapat direpresentasikan sebagai virtual
disk pada sistem operasi Windows.
2. Bagaimana menyelipkan proses enkripsi/dekripsi pada virtual disk driver saat
melakukan unmount/mount virtual disk.
3.1.2 Analisis Kebutuhan
Analisis kebutuhan perangkat lunak ini adalah sebagai berikut:
1. Mampu membuat file volume yang tidak terbaca bila tidak dilakukan proses
2. Mampu menampilkan virtual disk setelah dilakukan mount pada file volume
tertentu dengan password yang tepat.
3. Mampu menjalankan segala operasi pembuatan, modifikasi dan penghapusan
file pada virtual disk seperti layaknya operasi yang terjadi pada physical disk
lainnya.
4. Mampu menutup virtual disk (virtual disk tidak tampak kembali) setelah
dilakukan unmount dan isi dari file volume tetap tidak terbaca.
3.1.3 Tujuan Pengembangan
Perangkat lunak ini dikembangkan dengan tujuan memberikan keamanan data
pada media penyimpanan hard disk dengan cara menciptakan virtual disk yang
otomatis terenkripsi. Dengan demikian, pengguna dapat meletakkan data yang ingin
dienkripsi dalam virtual disk tersebut. Virtual disk hanya akan muncul bila
password yang diberikan pengguna tepat, selebihnya data yang ada dalam virtual
disk tersimpan dalam bentuk file yang tidak terbaca.
3.1.4 Batasan Rancangan Sistem
Batasan rancangan sistem dalam pengembangan perangkat lunak ini adalah
sebagai berikut:
1. Perangkat lunak menciptakan virtual disk dengan kapasitas terbesar sama
3.1.5 Diagram Konteks
Diagram konteks adalah diagram yang terdiri dari suatu proses dan
menggambarkan ruang lingkup suatu sistem. Diagram konteks merupakan level
tertinggi dari DFD yang menggambarkan seluruh input ke sistem atau output dari
sistem. Diagram konteks berisi gambaran umum (secara garis besar) sistem yang
akan dibuat.
3.1.6 DFD
DFD Level 1
DFD Level 2
Gambar 3.3 DFD Level 2
Perangkat lunak dalam tugas akhir ini memiliki beberapa proses utama yakni
modifikasi terhadap virtual disk, melakukan enkripsi dan dekripsi. Untuk lebih
jelasnya, proses yang terjadi dalam perangkat lunak tugas akhir ini adalah sebagai
berikut:
1. Membuat file volume.
Proses ini adalah proses yang wajib dilakukan oleh pengguna. Proses ini
memerlukan masukan berupa kapasitas virtual disk yang diinginkan dan password
untuk membuka virtual disk tersebut serta lokasi tempat file volume disimpan. Besar
file volume yang dibuat akan sama dengan kapasitas virtual disk. File volume ini
tidak dapat dibaca isinya.
2. Melakukan mount
Proses ini hanya dapat dilakukan bila sudah terdapat file volume. Masukan untuk
proses ini adalah file volume yang ingin dibuka dan password untuk membuka file
volume tersebut. Apabila proses ini berjalan lancar, sebuah virtual disk akan muncul.
Fungsi virtual disk ini tidak berbeda dengan physical disk lain.
3. Melakukan unmount
Proses ini dilakukan untuk menutup virtual disk yang sedang dibuka supaya data
yang ada di dalamnya tidak dapat dibaca orang lain.
Proses ini meliputi penanganan setiap perubahan isi virtual disk selama
dimunculkan. Disini virtual disk yang dibuat bisa dijadikan 2 pilihan. Yaitu mounting
biasa dan mounting sebagai read only yang mana bila dalam keadaan ini virtual disk
hanya bisa untuk dibaca isinya dan tidak bisa ditulis kedalamnya. Virtual disk ini juga
mempunyai system properties yang mana akan melihat sistem apa yang dia jalankan,
besar volumenya dll.
5. Melakukan enkripsi
Proses ini melibatkan algoritma SHA untuk mengenkripsi data yang akan
disimpan hard disk, tepatnya data yang tercatat pada lokasi virtual disk.
Salah satu fungsi yang digunakan disini adalah SHA256 Dalam proses komputasinya,
SHA-256 menggunakan enam fungsi lojik, dimana
setiap fungsi beroperasi mengguankan tiga buah word 32-bit (x,y, dan z) dan
keluarannya berupa sebuah word 32-bit.
6. Melakukan dekripsi
Proses ini dipanggil bersamaan dengan proses melakukan mount. Data yang
terenkripsi dalam hard disk didekripsi terlebih dahulu sebelum ditampilkan bersama
3.2 Perancangan
Bagian ini mencakup perincian modul yang telah teridentifikasi pada tahap
analisis. Perincian yang dimaksud mencakup tanggung jawab proses yang dimiliki
oleh setiap modul termasuk pseudo code fungsi/prosedur utama yang berkaitan
dengan proses tersebut.
3.2.1 Perancangan Menu Interaksi
Di dalam aplikasi diperlukan menu agar semua fungsi dari aplikasi tersebut
dapat diakses dengan cepat oleh pengguna. Berikut tampilan menu.
Gambar 3.4 Tampilan Menu Utama
Setelah masuk ke menu utama, berikut pilihan menu lain yang bisa
• Create.. Menu ini akan menampilkan proses dimana user meletakkan
image dari suatu Virtual Disk sesuai keinginan. Dan juga bisa mengatur
berapa space yang digunakan untuk virtual disk tersebut.
Gambar 3.5 Menu Create
User memilih tempat dimana file suatu volume akan diletakkan dengan
Gambar 3.6 Menu Pop Up
Setelah meletakkan file image dan mengatur besarnya volume virtual disk,
maka terdapat suatu form untuk mengatur password yang akan diberikan.
Dalam form ini user dapat memilih chiper apa yang akan dipakai, lalu terdapat
checkbox yang berisi multiplekeys, apabila user mencentang maka user harus
memasukkan password sebanyak 8 buah untuk mengenkripsi data tersebut.
Setelah selesai menuliskan password maka kita diminta untuk confirm
password dengan mengetikkan sesuai dengan password pertama diinputkan.
Gambar 3.8 Form Retype Password
Setelah menekan OK maka akan muncul notifikasi untuk memformat virtual
Gambar 3.9 Form Format Baru
Tekan Yes dan virtual disk sudah terformat dan dapat digunakan.
• Mount.. Proses ini berfungsi untuk membaca file image menjadi suatu
partisi baru. User memilih file yang mana telah dienkripsi sebagai berikut.
Cancel File name
Save as type Open
Open
Gambar 3.11 menu Mount
Setelah memilih maka user akan diminta untuk menuliskan password yang
benar untuk membuka virtual disk tersebut, bila password yang diberikan benar maka
Gambar 3.12 Menu Entri Password
User juga bisa memilih akan dimount dimanakah dengan menekan bar mount
as drive..
Gambar 3.13 Message Berhasil
Gambar 3. 14 Menu Utama
Bila tidak terdefinisi atau password yang dimasukkan salah maka akan keluar
warning seperti berikut.
Ok Windows Explorer
M:\ is not accessible
The volume does not contain a recognized file system.
Please make sure that all required file system drivers are loaded and that the volume is not corrupted.
• Dismount Menghilangkan/menutup virtual disk yang telah di mount.
Gambar 3.16 menu Dismount
• Dismount All Menutup semua virtual disk dalam list apabila ada banyak
virtual disk yang terbuka.
Pada bagian sub bar View terdapat 2 kategori :
• Properties Proses ini bertujuan untuk melihat letak alamat dari suatu
virtual disk tersebut beserta tipenya.
57
4.1 Implementasi
4.1.1 Lingkungan Implementasi
Spesifikasi perangkat keras yang digunakan selama pengerjaan tugas akhir adalah
sebagai berikut:
1. Prosesor Intel Core2Duo E8200 2,7 GHz
2. RAM 2 Mb
3. Hard Disk 160 GB
4. Perangkat keluaran berupa monitor
5. Perangkat masukan berupa papan kunci dan tetikus
Adapun perangkat lunak yang digunakan:
1. Sistem operasi Microsoft Windows XP Service Pack 2
2. Boerland Delphi 7
4.1.2 Batasan
Batasan yang didefinisikan untuk implementasi disk encryption ini adalah disk
encryption system ini tidak memberikan perlindungan keamanan terhadap keberadaan
file volume. Segala bentuk modifikasi, termasuk penghapusan file volume maupun
pemindahan lokasi file volume, tidak ditangani.
4.2 Pengujian
4.2.1 Tujuan Pengujian
Beberapa hal yang menjadi tujuan pelaksanaan pengujian terhadap implementasi disk
encryption:
1. Memeriksa keberhasilan fungsi mount, unmount virtual disk serta
keberhasilan melakukan modifikasi terhadap isi virtual disk.
2. Memastikan file volume pada disk encryption system tidak dapat dibaca di
luar virtual disk.
4.2.2 Skenario Pengujian dan Kriteria Keberhasilan
Skenario pengujian yang dilakukan terbagi menjadi dua bagian, sesuai dengan poin
Tabel 4.1 Skenario Pengujian dan Kriteria Keberhasilan
Nomor Skenario Pengujian
1 Melakukan Mount menggunakan password yang tepat
2 Melakukan Mount menggunakan password yang salah
3 Melakukan edit terhadap file yang terdapat pada virtual disk,
me-unmount lalu me-mount lagi untuk mengecek apakah proses edit
berhasil dilakukan
4 Melakukan Mount pada disk drive dengan mode Read Only
5 Melakukan Unmount
6 Memeriksa apakah file volume pada disk encryption system tidak
dapat dibaca diluar virtual disk
4.2.3 Hasil Pengujian
Berikut merupakan hasil pengujian implementasi disk encryption:
Tabel 4.2 Hasil Pengujian
No Skenario Pengujian Hasil yang Didapat
Key) Hasil : Sebuah virtual disk terbentuk
Hasil : Sebuah virtual Disk akan terbentuk
3 Melakukan Mount
terdapat pada virtual
disk, me-unmount
lalu me-mount lagi
untuk mengecek
Pengujian ini dilakukan dengan memasukkan
beberapa file ke dalam virtual disk, mencoba
melakukan modifikasi (terutama pada file teks),
melakukan cut-copy-paste,dan perlakuan lain
yang bisa ditangani disk drive pada umumnya.
apakah proses edit
berhasil dilakukan
fungsionalitas seperti layaknya disk drive lain.
6 Melakukan Mount
pada disk drive
dengan mode Read
Only
Pengujian ini dilakukan dengan memount file
menjadi virtual disk dengan mode read only
bernilai TRUE. Lalu mencoba apakah bisa
mengkopi suatu file dari luar virtual disk lalu
dipastekan di dalam virtual disk tersebut.
Hasil : virtual disk akan menolak semua fungsi
write karena “dia” di mount hanya untuk dibaca
saja.
dibaca diluar virtual
disk
Pengujian dilakukan untuk memastikan apakah
file yang merupakan volume dari virtual disk
bisa dibuka selain dari software ini.
Hasil : file tidak akan bisa dibuka dengan
Gambar-gambar berikut menunjukkan beberapa hasil pengujian yang dilakukan
terhadap perangkat lunak tugas akhir.
Gambar 4.1 menunjukkan virtual disk (drive E:) yang berhasil dibuat dari file volume
“tes” menggunakan password yang benar.
Gambar 4.1 Virtual Disk Terbentuk
Gambar 4.3 Virtual disk mounted
Gambar 4.4 Salah Password
File yang terdapat di dalamnya juga dapat dibaca dan dirubah seperti layaknya hard disk biasa.
Gambar 4.7 Read/Write mode
Gambar 4.8 Mount as Readonly
Gambar 4.9 Drive Tidak Bisa Write dikarenakan Virtual Disk Hanya
Untuk Dibaca
Gambar 4.10 Melakukan Unmount
Maka pada menu explorer di windows virtual disk ini akan hilang.
Proses ini tidak bisa menutup virtual disk apabila salah satu file didalamnya masuh diakses. Akan muncul peringatan seperti ini.
Gambar 4.11 Drive Tidak Bisa di Unmount
Solusinya dengan menutup semua file yang masih diakses yang terdapat di dalam virtual disk tersebut.
Gambar 4.12 Membuka file volume.
Pengujian membuka file volume dengan MS Word.
74
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Kesimpulan yang didapat selama pengerjaan tugas akhir ini:
1. Virtual disk pada sistem operasi Windows dapat dibuat dengan berbagai cara,
di antaranya memanfaatkan sebagian memori dan merepresentasikannya
sebagai virtual disk. Namun, cara tersebut tidak memberikan hasil yang
memuaskan karena isi virtual disk akan hilang sejalan dengan penutupan
virtual disk. Cara yang lebih aman adalah menggunakan file sebagai kontainer
isi virtual disk. File tersebut, yang diberi nama file volume, akan
direpresentasikan sebagai virtual disk.
2. Proses representasi file volume sebagai virtual disk membutuhkan sebuah
driver. Driver merupakan wadah koleksi fungsi dan prosedur yang sistem
operasi panggil untuk menjalankan berbagai operasi yang berkaitan dengan
perangkat keras, dalam hal ini perangkat keras yang dimaksud adalah hard
disk.
3. Proses enkripsi pada virtual disk diikutsertakan pada penanganan proses baca
5. SHA adalah Secure Hash Algoritma. Jenis-jenis SHA yaitu SHA-0, SHA-1,
dan SHA-2. Untuk SHA-2 menggunakan algoritma yang identik dengan
ringkasan ukuran variabel yang terkenal sebagai 224, 256,
SHA-384, dan SHA-512.
5.2 Saran
Untuk pengembangan lebih lanjut, saran-saran yang dapat diberikan pada tugas
akhir ini adalah:
1. Membuat antar muka yang lebih mendukung aspek interaksi dengan pengguna.
Untuk itu, perlu dieksplorasi lebih lanjut mengenai pembangunan modul driver
dengan memanfaatkan kakas seperti Visual Studio .Net.
2. Menambahkan faktor keamanan, terutama menyangkut keberadaan file
volume. Selain itu, jenis algoritma enkripsi yang digunakan dapat
ditambahkan dengan cipher blok yang lain, misalnya DES (Data Encryption
Standard), Blowfish, Gost, Safer, LOKI, FEAL, RC2, RC5, Serpent, dan
76
DAFTAR PUSTAKA
[BAK00] Baker, Art and Jerry Lozano. (2000). The Windows 2000 Device Driver
Book, A Guide for Programmers, Second Edition. Prentice Hall PTR.
[MUN04] Munir, Rinaldi. (2004). Bahan Kuliah IF5054 Kriptografi. Departemen
Teknik Informatika, Institut Teknologi Bandung.
[REF04] Reflex Magnetic Ltd. (2004). Entire Hard Disk Encryption vs Virtual Hard
Sex : Male
Height : 184 Cm
Weight : 79 KG
Religion : Moeslem
Marital Status : Unmarried
Nationality : Indonesia
E-mail : gerrycakep@gmail.com
Cellular Phone : 085720502028 / 02292500428
EDUCATIONAL BACKGROUND
1994 – 2000 : SDN Rangkah 7 Surabaya
2000 – 2003 : SMPN 1 Surabaya
2003 – 2006 : SMAN 6 Surabaya
2006 – in progress : Indonesian Computer of University Bandung
( Informatics Engineering.)
WORK EXPERIENCE
• Flyering Rintintin Movie at Blitzmegaplex, Paris Van Java Bandung
• Sales Promotion Boy at PMI & Sampoerna ( Program A Mild
Menthol )
• Usher Grand Opening d’Groove
• Supervisi LFAM ( Liga Futsal Anak Marimas ) at Cirebon 2010