Tugas
Saat memperkenalkan arsip elektronik dalam suatu organisasi, kami harus mengotomatiskan penghancuran dokumen arsip elektronik. Arsip itu sendiri adalah sistem Directum, di mana, dengan menggunakan alat pengembangan IS-Builder bawaan, sejumlah besar logika telah ditulis untuk menerima dokumen ke dalam arsip dari sistem sumber, mengubah format tanda tangan elektronik untuk dokumen, memberikan dan mencabut hak akses ke seluruh kasus atau dokumen individual. Teks dokumen arsip disimpan pada pembawa magnet, dan ketika melakukan prosedur penghapusan rutin dari pembawa, file hanya dokumen yang masa penyimpanannya telah kedaluwarsa harus dihapus secara permanen. Artinya, penghancuran seluruh media tidak mungkin dilakukan, dan tugasnya adalah menemukan alat yang sesuai untuk menghancurkan data dokumen pada media tersebut.
Karena proses penghapusan dokumen juga diterapkan di IS-Builder, maka kami mencari alat penghancur file yang dapat dikontrol dari kode dalam bahasa pemrograman internal sistem Directum. Dari sudut pandang kinerja, sebuah persyaratan diberlakukan pada alat: alat tersebut harus menghabiskan tidak lebih dari satu detik untuk menghancurkan file berukuran satu megabyte. Adapun algoritme yang digunakan oleh alat untuk penghancuran data, wajib mematuhi GOST R 50739-95, dan dukungan untuk beberapa algoritme dianjurkan untuk sebuah pilihan. Selain itu, alat tersebut harus gratis dan gratis untuk penggunaan komersial.
Sebagian besar alat, informasi yang dapat kami temukan dengan mencari di Internet, tidak memenuhi persyaratan, karena alat tersebut hanya utilitas dengan antarmuka grafis, tanpa kemungkinan interaksi program. Untuk studi yang lebih detail, hanya:
- Sysinternals SDelete utilitas;
- Penghapus adalah utilitas dengan pendekatan penghancuran yang menarik;
- Nah, kami juga menaruh harapan kami pada penerapan alat ini langsung di IS-Builder.
Bagaimana kami menguji
Untuk pengujian, kami telah menyiapkan partisi kecil di hard drive agar lebih mudah untuk melihat teater operasi kami. Pada disk ini, kami membuat file, menghancurkannya dengan berbagai cara, dan kemudian melihat apa yang tersisa. Penghancuran dianggap berhasil jika dilakukan pada kecepatan yang tidak lebih rendah dari kecepatan yang diperlukan, dan tidak ada fragmen dari file asli yang dapat ditemukan. Dan untuk membuat perbandingan antara alat dengan jujur, algoritme yang sama digunakan di semua alat untuk menghancurkan file, yang didukung oleh semuanya - DOD 5220.22-M, yang secara resmi memenuhi persyaratan GOST.
Kami menggunakan alat berikut untuk memantau hasil penghancuran:
- WinHex adalah utilitas shareware yang memperoleh akses ke konten media pada tingkat rendah, memungkinkan Anda untuk mencari data dengan sepotong konten dan memulihkannya;
- DiskView โ Sysinternals. , โ ยซยป .
IS-Builder
Inti dari algoritma DOD 5220.22-M cukup sederhana, dan kami mengimplementasikannya dalam bahasa pemrograman built-in dari sistem Directum. Sebagai masukan, algoritme menerima nama file dan menanyakan sistem file untuk ukurannya dalam byte. Kemudian buffer dengan ukuran yang dihitung dibuat tiga kali dan ditulis ke file yang ditentukan. Keindahan dari pendekatan ini adalah bahwa algoritme penghancuran dapat diterapkan sepenuhnya, dengan jumlah lintasan berapa pun dan pola penulisan ulang yang paling tak terbayangkan. Selain itu, karena alat ini diimplementasikan pada IS-Builder tanpa ketergantungan pada perangkat lunak eksternal, sama sekali tidak ada kesulitan dengan integrasinya ke dalam pengembangan aplikasi sistem Directum. Dan itu bekerja dengan cepat. Itu tidak merusak data! WinHex tidak hanya menemukan fragmen file asli di disk, tetapi seluruh file dan berhasil memulihkannya. Itu terungkap,bahwa pada saat penulisan buffer pertama ke disk, lokasi file pada disk berubah: file asli terletak di awal bagian, tetapi berakhir di tengah atau di akhir. Kami menemukan ini menggunakan DiskView. Kluster asli, meskipun ditandai sebagai gratis, masih berisi data. Ini, tentu saja, tidak bagus. Kami menggunakan metode penulisan ke file yang berbeda, hasilnya sama di mana-mana, data dapat ditemukan dan dikembalikan. Ternyata kami dapat menghasilkan buffer untuk menulis ulang, tetapi kami tidak dapat menulisnya ke disk dengan benar. Dan karena tidak mungkin menemukan skema yang berfungsi, saya harus mengucapkan selamat tinggal pada gagasan untuk bertahan dengan alat yang ada di dalam Directum.Kluster asli, meskipun ditandai sebagai gratis, masih berisi data. Ini, tentu saja, tidak bagus. Kami menggunakan metode penulisan ke file yang berbeda, hasilnya sama di mana-mana, data dapat ditemukan dan dikembalikan. Ternyata kami dapat menghasilkan buffer untuk menulis ulang, tetapi kami tidak dapat menulisnya ke disk dengan benar. Dan karena tidak mungkin menemukan skema yang berfungsi, saya harus mengucapkan selamat tinggal pada gagasan untuk bertahan dengan alat yang ada di dalam Directum.Kluster asli, meskipun ditandai bebas, masih berisi data. Ini, tentu saja, tidak bagus. Kami menggunakan metode penulisan ke file yang berbeda, hasilnya sama di mana-mana, data dapat ditemukan dan dikembalikan. Ternyata kami dapat menghasilkan buffer untuk menulis ulang, tetapi kami tidak dapat menulisnya ke disk dengan benar. Dan karena tidak mungkin menemukan skema yang berfungsi, saya harus mengucapkan selamat tinggal pada gagasan untuk bertahan dengan alat yang ada di dalam Directum.
Hapus
docs.microsoft.com/en-us/sysinternals/downloads/sdelete
Sysinternals SDelete hanya menerapkan satu algoritma penghapusan (DOD 5220.22-M), tetapi Anda dapat menentukan jumlah lintasan penulisan ulang, menghancurkan pohon direktori dengan semua isinya, dan bahkan melakukan "pembersihan "Ruang disk yang tidak terisi. SDelete adalah utilitas baris perintah dan hanya memiliki beberapa sakelar, jadi mudah untuk memanggilnya dari perhitungan IS-Builder:
SDelete = "C:\Sysinternals\SDelete\sdelete.exe"
Command = Format('"%s" -p 1 "%s"'; ArrayOf(SDelete; Filename))
ExecuteProcess(Command; smNormal; wmYes)
Sebagai hasil dari penggunaan utilitas, file menghilang dari disk hampir tanpa jejak: menggunakan WinHex dimungkinkan untuk mendeteksi hanya jejak penulisan ulang nama file, tetapi isinya tidak dapat ditemukan dan dipulihkan. Pada saat yang sama, utilitas tersebut bekerja agak cepat (menghapus file 1 megabyte = 0,2 detik) dan sudah sepantasnya memimpin.
Penghapus
eraser.heidi.ie
Utilitas GUI gratis. Apa yang membedakan Eraser dari yang lain adalah pekerjaannya dengan antrean pembunuh. Jika Anda ingin menghapus sesuatu, maka Anda harus membuat tugas yang sesuai dan menambahkannya ke antrian. Setiap tugas dalam antrian Penghapus adalah kumpulan informasi:
- tentang objek kehancuran - itu bisa berupa file atau direktori tertentu, isi "Recycle Bin" pengguna, ruang disk yang tidak terisi. Ini juga dapat berupa pergerakan file atau folder yang aman, atau pembersihan lengkap partisi hard disk;
- tentang algoritme penghancuran - Penghapus mengetahui beberapa algoritme penulisan ulang yang siap pakai, dan juga menawarkan kemampuan untuk membuat algoritme Anda sendiri, menyetel jumlah lintasan yang diperlukan dan menentukan templat datanya sendiri untuk masing-masing gerakan;
- tentang waktu mulai - tugas dapat dijalankan segera setelah ditempatkan dalam antrean, menurut jadwal, saat sistem operasi melakukan booting, atau secara manual.
Proses Penghapus yang berjalan di latar belakang memproses antrian dan melakukan tugas. Dengan demikian, penghancuran data di Eraser selalu merupakan proses yang tidak sinkron, sangat mirip dengan peristiwa server di Directum.
Mengontrol utilitas menggunakan sakelar baris perintah juga berfungsi, dan untuk waktu yang lama, meskipun pekerjaan pada baris perintah belum diumumkan secara resmi dan dalam status fungsionalitas yang dikembangkan:
Eraser = "C:\Program Files\Eraser\Eraser.exe"
Command = Format('"%s" erase /method="ecbf4998-0b4f-445c-9a06-23627659e419" /quiet file="%s"'; ArrayOf(Eraser; Filename))
ExecuteProcess(Command; smNormal; wmYes)
Penghancuran file dengan Penghapus berhasil diselesaikan. Tidak mungkin memperkirakan kecepatan kerja karena kerusakan yang tidak sinkron. Dari sudut pandang penggunaan dalam pengembangan terapan, status pekerjaan yang ditangguhkan dalam baris perintah membingungkan, tetapi kemampuan untuk membuat metode penghancuran sewenang-wenang terlihat menarik.
hasil
Jika bukan karena file yang mengganggu dengan menulis buffer ke disk, implementasi pada IS-Builder akan terlihat seperti jutaan, tetapi, sayangnya, itu tidak mencapai garis finish. Dua alat lainnya berkinerja jauh lebih baik, dengan utilitas SDelete terlihat paling menguntungkan. Tidak membutuhkan instalasi, meskipun minim, tetapi fungsionalitas yang cukup dan kinerja yang baik.