Bimacipta

Wipe

 

Penghapusan Data Secara Permanen

Oleh : Budi Sukmawan


Seperti kita ketahui ketika kita menghapus file maka file itu masih ada di dalam harddisk dan hanya ditandai bahwa file tersebut telah dihapus, sehingga tempatnya bisa digunakan bila dibutuhkan oleh file lain. File ini dapat dengan mudah dikembalikan ke bentuk semula, bila belum tertimpa file lain dengan menggunakan program Norton Utility atau Lost & Found dari PowerQuest. Di dalam Windows 9x/NT bahkan disediakan Recycle Bin sehingga kita dapat mengembalikan file yang tidak sengaja terhapus. Dan ada juga perusahaan khusus dalam bidang Data Recovery yang dapat mengembalikan file karena harddisk yang rusak baik fisik ataupun kesalahan dalam konfigurasi atau akibat virus. Dengan menggunakan peralatan canggih seperti magnetic force microscopy (MFM) dapat di-recover file yang sudah tertimpa berulang kali. Menurut keterangan di-PGP User Guide terdapat perusahaan data recovery komersial yang dapat mengembalikan file yang sudah di-overwrite (tulis ulang) sebanyak 9 kali.

Lalu bagaimana bila kita ingin benar-benar menghapus file tersebut dan orang lain tidak mungkin untuk me-recover-nya? Pada artikel ini penulis akan membahas cara penghapusan yang aman khususnya pada media magnetik seperti harddisk atau floppy disk, tetapi bukan media lain seperti optik (CDRW, Optical Disk) atau elektronik (Flash).

Metoda paling lama yang dikenal adalah metoda standar dari DoD (Department of Defense), menurut National Computer Security Centre metoda ini dapat dijelaskan sebagai berikut: mula-mula data ditimpa dengan suatu pola kemudian dengan komplemen dari pola tersebut dan terakhir dengan pola lain. Misalnya mula-mula dengan pola 0011 0101, diikuti dengan 1100 1010, lalu dengan 1001 0111, tidak ditentukan berapa kali pola tersebut diulang untuk mendapat benar-benar menghapus data. Kebanyakan program komersial yang mengimplementasikan standar DoD dengan menulis ulang sebanyak tiga kali, mula-mula dengan pola 1 (satu) semua, kemudian dengan pola 0 (nol) semua dan terakhir pola 10 (satu nol). Bruce Schneier menyarankan menghapus file sebanyak tujuh kali, mula dengan pola 1 (satu) kemudian dengan pola 0 (nol) kemudian sebanyak lima kali dengan bilangan pseudo-random yang aman secara kriptografi. Tetapi menurutnya dengan dikembangkannya electron-tunneling microscopes cara terakhir ini juga tidak begitu aman.

Cara khusus untuk penghapusan yang aman pada media magnetik adalah seperti yang dikembangkan oleh Peter Gutmann dari Departemen Ilmu Komputer, Universitas Auckland – Selandia Baru pada tahun 1996. Pada metoda ini Peter Gutmann mengembangkan pattern (pola) tertentu yang disesuaikan dengan cara pengkodean pada harddisk seperti RLL, MFM dan PRML. Konsep umum cara overwrite ini adalah dengan membalik bidang magnetik pada disk bolak-balik sebanyak mungkin (ini merupakan ide dasar dari degaussing) tanpa menulis pola yang sama berturut-turut. Bila data dikodekan secara langsung, kita dapat memilih pola satu dan nol dan menuliskannya berulang-ulang. Tetapi pada umumnya disk menggunakan semacam pengkodean run-length limited (RLL). Untuk menghapus media magnetik, kita perlu menulis ulang berkali-kali dengan pola-pola tertentu dengan maksud mengekposnya kepada medan magnet yang berosilasi secepat mungkin sehingga menghasilkan pembalikan bidang magnetik dalam waktu tertentu. Pola-pola yang digunakan dapat dilihat pada Tabel 1.

 

Overwrite Data

Pass

No.

Data Written

Encoding Scheme Targeted

1.

Random

 

 

 

2.

Random

 

 

 

3.

Random

 

 

 

4.

Random

 

 

 

5.

0x55

(1,7) RLL

 

MFM

6.

0xAA

(1,7) RLL

 

MFM

7.

0x92 0x49 0x24

 

(2,7) RLL

MFM

8.

0x49 0x24 0x92

 

(2,7) RLL

MFM

9.

0x24 0x92 0x49

 

(2,7) RLL

MFM

10.

0x00

(1,7) RLL

(2,7) RLL

 

11.

0x11

(1,7) RLL

 

 

12.

0x22

(1,7) RLL

 

 

13.

0x33

(1,7) RLL

(2,7) RLL

 

14.

0x44

(1,7) RLL

 

 

15.

0x55

(1,7) RLL

 

MFM

16.

0x66

(1,7) RLL

(2,7) RLL

 

17.

0x77

(1,7) RLL

 

 

18.

0x88

(1,7) RLL

 

 

19.

0x99

(1,7) RLL

(2,7) RLL

 

20.

0xAA

(1,7) RLL

MFM

 

21.

0xBB

(1,7) RLL

 

 

22.

0xCC

(1,7) RLL

(2,7) RLL

 

23.

0xDD

(1,7) RLL

 

 

24.

0xEE

(1,7) RLL

 

 

25.

0xFF

(1,7) RLL

(2,7) RLL

 

26.

0x92 0x49 0x24

 

(2,7) RLL

MFM

27.

0x49 0x24 0x92

 

(2,7) RLL

MFM

28.

0x24 0x92 0x49

 

(2,7) RLL

MFM

29.

0x6D 0xB6 0xDB

 

(2,7) RLL

 

30.

0xB6 0xDB 0x6D

 

(2,7) RLL

 

31.

0xDB 0x6D 0xB6

 

(2,7) RLL

 

32.

Random

 

 

 

33.

Random

 

 

 

34.

Random

 

 

 

35.

Random

 

 

 

Tabel 1. Pola tulis dari Peter Gutmann

Seperti kita lihat dari tabel pada metoda ini diperlukan 35 kali penulisan ulang pada area data yang akan dihapus. Pola spesifik MFM diulang dua kali karena drive MFM mempunyai kerapatan yang paling rendah dan kemungkinan paling mudah untuk untuk diperiksa. Pola-pola tertentu diantara pola random (5 – 31) diacak sebelum dituliskan sehingga lebih sulit bagi  orang yang akan me-recover untuk menentukan urutan pola yang telah dituliskan.

Metoda yang dikembangkan oleh Peter Gutmann ini rupanya telah diadaptasi oleh pembuat PGP dengan mereduksi  pola yang ditulis dua kali (MFM dan pola 0x55 dan 0xAA), juga mengurangi pola random di awal dan di akhir hanya sebanyak dua kali. Dengan demikian penulisan ulang pada metoda yang digunakan pada ‘PGP Wipe’ hanya sebanyak maksimum 26 kali. Dengan PGP Wipe kita dapat menentukan berapa passes (kali) akan menulis ulang data (1 sampai 26 kali).

Pada saat penulisan pola-pola ini kedalam media penyimpan, seharusnya ditulis langsung tanpa melalui cache, karena ada kemungkinan dengan adanya cache ini hanya data terakhir saja yang benar-benar dituliskan ke disk, sehingga penggunaan pola-pola di atas menjadi tidak berguna. Pada API Win32 hal ini dapat dilakukan dengan menggunakan atribut FILE_FLAG_WRITE_THROUGH pada saat memanggil fungsi CreateFile untuk membuka file. Hal ini dapat diperhatikan pada saat program menulis ke harddisk maka lampu indikator harddisk akan menyala terus-menerus selama penulisan data. Cara penghapusan dengan penulisan langsung tanpa melalui cache, menggunakan cara di atas digunakan pada Scramdisk, PGPWipe dan pada Blowfish Advanced CS.

Aplikasi

Untuk mengimplementasikan cara penghapusan ini penulis telah membuat sebuah komponen di dalam Delphi yang menyediakan berbagai cara penghapusan, cara yang tersedia adalah sebagai berikut :

  • Simple Wipe, dengan cara ini data yang akan kita hapus ditimpa dengan bilangan random sebanyak satu kali.
  • DoD Wipe, pada metoda ini pertama menggunakan pola 0x55 (01010101) kemudian pola 0xAA (10101010) lalu pola bilangan random sebanyak satu kali.
  • Secure Wipe, menggunakan pola penghapusan yang dikembangkan oleh Peter Gutmann sebanyak 35 kali.
  • Variable Wipe, menggunakan pola penghapusan dari Peter Gutmann tetapi kita dapat memilih berapa kali kita akan menimpa data dari 5 sampai 35 kali.

Cara mana yang paling tepat untuk menghapus file data adalah tergantung dari data yang akan kita hapus. Bila data mempunyai kerahasiaan yang sangat tinggi dianjurkan untuk menggunakan Secure Wipe, tetapi untuk data yang kurang rahasia bisa digunakan DoD Wipe. Sedangkan Simple Wipe tampaknya kurang aman dan digunakan untuk data-data yang tidak rahasia. Bila mempertimbangkan faktor keamanan dan kecepatan penghapusan dapat digunakan Variable Wipe dengan menggunakan 10 sampai 15 passes.

Hal lain yang perlu diperhatikan adalah generator bilangan random, karena bila generator ini tidak aman ada kemungkinan dapat ditelusuri pola-pola data yang telah dituliskan dan bisa jadi data dapat di-recover kembali. Untuk generator bilangan random ini penulis menggunakan generator IA (Indirection, Addition) yang dikembangkan oleh Robert  (Bob) Jenkins, generator bilangan random ini sangat cepat walaupun keamanannya belum teruji. Untuk generator yang lebih aman dapat digunakan ISAAC (Indirection, Shift,Accumulate, Add, and Count) yang juga dikembangkan oleh Bob Jenkins dan digunakan dalam PGP Wipe.

Komponen ini mungkin tidak secanggih program file wiping komersial tetapi keuntungannya dapat diintegrasikan dengan aplikasi yang kita buat, misalnya pada program enkripsi dapat digunakan untuk menghapus file sumber (plainteks). Untuk contoh penggunaan komponen ini penulis membuat sebuah program sederhana untuk penghapusan file seperti terlihat pada tampilan :>

Gambar 1. Tampilan program WipeFile

Program ini dikembangkan  dengan menggunakan Delphi 4.0, tetapi dapat dengan mudah dikompail dengan Delphi 3.x walaupun ada beberapa warning ketika membuka file. Yang perlu disesuaikan pada Delphi 3.x adalah pada komponen OpenDialog, ubah Options.ofAllowMultiSelect := True. Dengan menggunakan program ini data yang telah dihapus tidak akan masuk ke dalam Recycle Bin, dan walaupun file data tersebut dapat di-recover kembali dengan menggunakan Norton Utility  tetapi isinya sudah tidak berarti lagi karena hanya berisi bilangan random. Yang perlu diperhatikan adalah untuk berhati-hati menggunakan program ini karena sekali file telah terhapus maka tidak ada cara untuk mendapatkan kembali file tersebut dalam keadaan seperti aslinya.

Untuk mendapatkan program dan source code-nya lihat halaman download.

Catatan: program wipe.pas hampir mirip dengan yang ada di source code Fastcrypt1, tapi belum ada perbaikan jadi mungkin masih ada bug-nya.

Penutup

Komponen yang penulis kembangkan ini mungkin masih sederhana tetapi penulis yakin program ini lebih baik dari Norton WipeInfo, karena WipeInfo menggunakan pola penulisan ulang yang sederhana yaitu pola 1 kemudian pola 0 dan terakhir 0xF6 (DoD  5220.22-M) sebanyak beberapa kali. Untuk metoda yang lebih baik dapat dipelajari PGP Wipe karena source program-nya tersedia. Untuk meningkatkan kinerja (performance) dapat digunakan memory mapped file seperti pada PGP Wipe. Pengembangan lain adalah untuk menghapus satu direktori sekaligus (seperti pada Norton WipeInfo) dan juga untuk membersihkan ruang kosong (free space wipe) pada harddisk (seperti pada PGP Wipe, Scramdisk, Norton WipeInfo) karena pada tempat yang kosong ini kemungkinan ada sisa fragmen-fragmen data dari penghapusan secara biasa. Tetapi yang kita perlu waspadai walaupun kita telah berusaha menghapus data secara aman tetapi biasanya program aplikasi membuat file sementara yang dapat saja merupakan copy dari file yang sedang kita edit. Sistem operasi bisa saja menyimpan file yang sedang kita edit di dalam virtual memory (swap file) di dalam harddisk sehingga orang yang mempunyai akses ke swap file ini dapat me-recover file tersebut.  

Catatan: Metoda penulisan untuk menimpa file data yang digunakan pada komponen wipe.pas tidak aman bila digunakan pada sistem Windows NT, 2000 atau XP dengan file system NTFS karena penanganan file yang berbeda, jadi hanya bisa dipakai pada Windows 9x dengan FAT16/FAT32.

Pustaka :

  1. Bruce Schneier, “Applied Cryptography”, second edition, John Willey & Sons, 1996.

  2. Network Associates Inc., “PGP Windows 95, 98, and NT User’s  Guide Version 6.0”, 1998.

  3. Peter Gutmann, “Secure Deletion of Data from Magnetic and Solid-State Memory”, Sixth USENIX Security Symposium Proceedings, San Jose, California, http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html, 1996.

  4. Robert Jenkins, “ISAAC and RC4”, http://burtleburtle.net/bob/index.html, 1996.


© 1999, 2002 - Budi Sukmawan

Revisi 00: Juni 1999

Revisi 01: Januari 2002

Revisi 01a: Februari 2002


 

kodowanie html5 css, projektowanie stron internetowych , PSD2HTML, PSD HTML, proste strony www, cięcie PSD, tworzenie stron www, webdesign,