Aplikasi Enskripsi Virtual Disk Menggunakan Algoritma SHA (Secure Hash Algorithm)

(1)

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


(2)

ii

USING ALGORITHM SHA

(SECURE HASH ALGORITHM)

by

GERRY RENANTO 10106105

Each and everyone surely own the important data they which must protect in order not to lose or stolen by irresponsible party. Particularly at one particular 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,


(3)

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.


(4)

(5)

(6)

v LEMBAR PERNYATAAN

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR TABEL ... vii

DAFTAR GAMBAR ... viii

DAFTAR SIMBOL ... x

DAFTAR LAMPIRAN ... xiii

BAB I ... 1

PENDAHULUAN ... 1

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


(7)

vi

2.3.1.1 Kriptanalisis SHA-1 ... 31

2.3.2 Algoritma SHA-256 ... 32

2.4 Device Driver ... 38

BAB III ... 41

ANALISIS DAN PERANCANGAN ... 41

3.1 Analisis ... 41

3.1.1 Analisis Masalah ... 41

3.1.2 Analisis Kebutuhan ... 41

3.1.3 Tujuan Pengembangan ... 42

3.1.5 Diagram Konteks ... 43

3.1.6 DFD ... 44

3.2.1 Perancangan Menu Interaksi ... 48

BAB IV ... 57

IMPLEMENTASI DAN PENGUJIAN ... 57

4.1 Implementasi ... 57

4.1.1 Lingkungan Implementasi ... 57

4.1.2 Batasan ... 58

4.2 Pengujian ... 58

4.2.1 Tujuan Pengujian ... 58

4.2.2 Skenario Pengujian dan Kriteria Keberhasilan ... 58

4.2.3 Hasil Pengujian ... 59

BAB V ... 74

KESIMPULAN DAN SARAN ... 74

5.1 Kesimpulan ... 74

5.2 Saran ... 75


(8)

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


(9)

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


(10)

xiii

LAMPIRAN B LISTING PROGRAM ...B-1

LAMPIRAN C HASIL KUESIONER ...C-1


(11)

x


(12)

(13)

(14)

vii


(15)

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 simpan berjumlah banyak dan sangat penting. File yang telah kita simpan dalam


(16)

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 2. Membangun sebuah aplikasi enkripsi data dengan teknik disk encryption.


(17)

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 5. Informasi yang dihasilkan diantaranya :


(18)

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 perangkat lunak secara waterfall.


(19)

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 langsung dengan pihak-pihak yang dianggap mampu memberikan informasi


(20)

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


(21)

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


(22)

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 Saran-saran yang dijadikan masukkan bagi instansi.


(23)

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 yang diinginkan dienkripsi pada satu waktu. File encryption sudah dilakukan


(24)

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 tersebut terhadap isi virtual disk.


(25)

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 demikian, sebuah virtual disk dapat digunakan seperti physical disk lainnya. Virtual


(26)

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 user mode dan kernel mode. Aplikasi Pengguna yang bergerak dalam user mode


(27)

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


(28)

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 yang menjadi fungsionalitasnya. Control code tersebut akan menjadi masukan


(29)

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 baru. Merupakan salah satu cabang dalam kriptografi, hash function memiliki daya


(30)

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 yaitu dengan melakukan autentikasi dari hasil hash berita tersebut. Contoh sederhana


(31)

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? Inputan dalam algoritma Hash Function dapat berubah-ubah panjangnya (atau sangat


(32)

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 integritas berita tersebut patut dipertanyakan. Karena perbedaan satu huruf pada


(33)

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 perhitungan) untuk menemukan sebuah berita X dimana h(X) = Y (preimage


(34)

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 resistance dan second preimage resistance.


(35)

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 keamanan seperti SSL, PGP, SSH, S/MIME dan IPSec.


(36)

Tabel 2.1 Perbandingan SHA family Algoritma Hash Ukuran Digest

Hash (bits)

Ukuran Internal State (bits)

Ukuran Blok (bytes)

SHA-0 160

SHA-1 160 160 64

SHA-224 224 256 64

SHA-256 256 256 64

SHA-384 384 512 128

SHA-512 512 512 128

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 [8] , yaitu menemukan dua berita yang hampir mempunyai nilai hash yang sama,


(37)

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 tersebut dipublikasikan, NIST mengumumkan bahwa mereka berencana menghapus


(38)

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 National Security Agency (NSA) dan yang diterbitkan oleh NIST sebagai U.S.


(39)

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


(40)

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 Initialize variables: h0 = 0x67452301 h1 = 0xEFCDAB89 h2 = 0x98BADCFE h3 = 0x10325476 h4 = 0xC3D2E1F0 Pre-processing:

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


(41)

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: for i from 16 to 79

w[i] = (w[i-3] xor w[i- 8] xor w[i-14] xor w[i-16]) leftrotate 1

Initialize hash value for this chunk:

a = h0 b = h1 c = h2 d = h3 e = h4 Main loop: for i from 0 to 79 if 0 i 19 then f = (b and c) or ((not b) and d) k = 0x5A827999


(42)

else if 20 i 39 f = b xor c xor d k = 0x6ED9EBA1 else if 40 i 59 f = (b and c) or (b and d) or (c and d) k = 0x8F1BBCDC else if 60 i 79 f = b xor c xor d k = 0xCA62C1D6 temp = (a leftrotate 5) + f + e + k + w[i] e = d

d = c

c = b leftrotate 30 b = a

a = temp

Add this chunk's hash to result so far:


(43)

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 Initialize hash value for

this chunk: a := h0 b := h1 c := h2 d := h3 e := h4 f := h5 g := h6 h := h7 Main loop: for i from 0 to 63


(44)

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 rightrotate 25)

ch := (e and f) xor ((not e) and g) t1 := h + s1 + ch + k[i] + w[i]

h := g g := f f := e e := d + t1 d := c c := b b := a


(45)

a := t1 + t2

Add this chunk's hash to result so far:

h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d h4 := h4 + e h5 := h5 + f h6 := h6 + g h7 := h7 + h

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 SHA-1 yang direduksi (hanya menggunakan 53 putaran dari 80 putaran) dan


(46)

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 disebut juga algoritma SHA-2. Pada makalah ini akan dibahas salah satu dari


(47)

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 adalah sebagai berikut:


(48)

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):


(49)

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 2..19):

h0 := 0x6a09e667 h1 := 0xbb67ae85 h2 := 0x3c6ef372 h3 := 0xa54ff53a h4 := 0x510e527f h5 := 0x9b05688c h6 := 0x1f83d9ab h7 := 0x5be0cd19


(50)

Initialize table of round constants

(first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311): k[0..63] :=

0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138,


(51)

0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 Pre-processing:

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


(52)

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

s0 := (w[i-15]

rightrotate 7) xor (w[i-15] rightrotate 18) xor (w[i-15] rightshift 3)

s1 := (w[i-2]

rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2]

rightshift 10) w[i] := w[i-16] + s0 + w[i-7] + s1

2.4 Device Driver

Seperti yang dipaparkan pada bagian 2.4, salah satu cara untuk memunculkan virtual disk adalah dengan memanfaatkan sebuah file sebagai kontainer (file volume).


(53)

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 memori dan fitur- fitur sistem operasi lainnya.


(54)

(55)

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 mount dengan password yang tepat.


(56)

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 dengan kapasitas partion disk yang masih tersedia.


(57)

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.


(58)

3.1.6 DFD

DFD Level 1


(59)

DFD Level 2

Gambar 3.3 DFD Level 2

Perangkat lunak dalam tugas akhir ini memiliki beberapa proses utama yakni membuat file volume, melakukan mount, melakukan unmount, melakukan


(60)

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.


(61)

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 dengan virtual disk.


(62)

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 diakses melalui sub bar File.


(63)

• 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 mengklik “....”, setelah itu window akan mem pop up sebagai berikut.


(64)

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.


(65)

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 disk baru tersebut.


(66)

Gambar 3.9 Form Format Baru

Tekan Yes dan virtual disk sudah terformat dan dapat digunakan.

Gambar 3.10 Proses Format


(67)

• 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 virtual disk akan muncul sebagai berikut.


(68)

Gambar 3.12 Menu Entri Password

User juga bisa memilih akan dimount dimanakah dengan menekan bar mount as drive..

Gambar 3.13 Message Berhasil


(69)

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.


(70)

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


(71)

Pada bagian sub bar View terdapat 2 kategori :

• Properties Proses ini bertujuan untuk melihat letak alamat dari suatu virtual disk tersebut beserta tipenya.


(72)

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


(73)

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 pada bagian Tujuan Pengujian (4.2.1):


(74)

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

1 Melakukan Mount

dengan password

yang tepat (Single

File : tes

Password : tes (benar) Chiper : AES256


(75)

Key) Hasil : Sebuah virtual disk terbentuk

2 Melakukan Mount

dengan password

yang tepat (Multiple Key)

File : Sidang

Password : sidang (1 password per line hingga 8)

Hasil : Sebuah virtual Disk akan terbentuk

3 Melakukan Mount

dengan password

yang salah

File : tes

Password : asdksdkgk (salah)

Hasil : Pesan eror akan muncul dan data yang didalam tidak dapat dibuka.

4 Melakukan Mount

dengan password

benar tetapi chiper

yang digunakan

salah

File : tes

Password : tes (benar) Chiper : AES128 (salah)

Hasil : pesan eror muncul karena chiper yang digunakan tidak sesuai

5 Melakukan edit

terhadap file yang 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. Hasil: virtual disk mampu memberikan


(76)

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.

7 Melakukan

Unmount

Unmount dilakukan terhadap virtual disk pada pengujian no 1

Hasil: virtual disk dapat ditutup, seperti dapat dilihat pada Gambar

8 Memeriksa apakah

file volume pada

disk encryption

system tidak dapat 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 program apapun kecuali program ini.


(77)

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.


(78)

Gambar 4.1 Virtual Disk Terbentuk

Uji coba yang kedua berkaitan dengan single key yang mana dalam suatu virtual disk terdapat password yang mengenkripsinya sehingga securitas sangat terjaga.


(79)

(80)

Gambar 4.3 Virtual disk mounted

Gambar IV-3 menunjukkan pengujian tentang kesalahan sistem. Disini dapat dilihat bila kita memount file dengan password yang dimasukkan bernilai salah, maka akan muncul pesan error,


(81)

Gambar 4.4 Salah Password

Gambar IV-5 menunjukkan proses edit yang dilakukan pada virtual disk dapat berjalan lancar sesuai dengan hard disk biasa.


(82)

(83)

(84)

File yang terdapat di dalamnya juga dapat dibaca dan dirubah seperti layaknya hard disk biasa.

Gambar 4.7 Read/Write mode

Gambar IV-6 menunjukkan bahwa virtual disk juga bisa di mount dengan mode read only yang mana hanya bisa dibaca tanpa ada proses write ke dalamnya.


(85)

Gambar 4.8 Mount as Readonly


(86)

Gambar 4.9 Drive Tidak Bisa Write dikarenakan Virtual Disk Hanya Untuk Dibaca

Gambar 4.10 menghasilkan hilangnya virtual disk di dalam menu explorer dikarenakan virtual disk tersebut di dismount.


(87)

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 IV-8 menunjukkan bahwa file volume yang dibuat tidak bisa di buka dengan software apapun kecuali dengan software ini.


(88)

Gambar 4.12 Membuka file volume.

Pengujian membuka file volume dengan MS Word.


(89)

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


(90)

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


(91)

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 Disk Encryption.


(92)

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


(1)

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 IV-8 menunjukkan bahwa file volume yang dibuat tidak bisa di buka dengan software apapun kecuali dengan software ini.


(2)

73

Gambar 4.12 Membuka file volume.

Pengujian membuka file volume dengan MS Word.


(3)

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 dan tulis virtual disk.


(4)

4. SHA adalah serangkaian fungsi cryptographic hash yang dirancang oleh National Security Agency (NSA) dan diterbitkan oleh NIST sebagai US Federal Information Processing Standard.

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


(5)

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 Disk Encryption.


(6)

PERSONAL DATA

Name : Gerry Renanto

Address : Mitra Resident Antapani B11 Place & Date of Birth : Surabaya, 28 April 1988 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 Team Leader at PMI & Sampoerna ( Program A FLAVA Click Mint )