Aplikasi Enskripsi Virtual Disk Menggunakan Algoritma SHA (Secure Hash Algorithm)
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 )