Secure data deletion and sanitization in distributed file systems
A system deletes and sanitizes files in a distributed file system. The system also randomizes rotation of data in a distributed file system.
1. A process comprising:
receiving, into a computer processor in a library in a distributed file system, a command to delete a file, wherein the file is partitioned into a plurality of partitions at a plurality of locations in the distributed file system;
determining, via the library in the distributed file system, all of the plurality of locations of the plurality of partitions of the file in the distributed file system; and
executing, within the computer processor in the library without using an external script or other external software, the command to delete the file;
wherein the command to delete the file comprises:
for each of the plurality of partitions at the plurality of locations of the file:
(a) obtaining a pointer to the partition;
(b) creating a plurality of blocks of randomized and hashed data;
(c) writing the plurality of blocks of randomized and hashed data to the partition;
(d) repeating operations (b) and (c) a plurality of times; and
(e) removing the pointer to the partition;
wherein the command to delete the file received in the library is modified to execute operations (a)-(e), and the modified command is redirected to a second library for execution;
wherein the randomized and hashed data are generated using a single use key; and
wherein the single use key is generated before each execution of operation (d).
2. The process of claim 1 , wherein the pointer to the partition points to the beginning of the partition.
3. The process of claim 1 , wherein the plurality of locations of the file comprises one or more of a server, a disk drive, a disk within the disk drive, and a sector on the disk.
4. The process of claim 1 , wherein the randomized and hashed data are generated using a persistent public key.
5. The process of claim 1 , comprising refraining from writing real data to the plurality of partitions of the file until after the operation (d) has been executed for each of the plurality of partitions.
6. A system comprising:
a computer processor; and
a non-transitory computer readable storage medium coupled to the computer processor;
wherein the computer processor comprises instructions that when executed by the computer process execute a process comprising:
receiving, into the computer processor in a library in a distributed file system, a command to delete a file, wherein the file is partitioned into a plurality of partitions at a plurality of locations in the distributed file system;
determining, via the library in the distributed file system, all of the plurality of locations of the plurality of partitions of the file in the distributed file system; and
executing, within the computer processor in the library without using an external script or other external software, the command to delete the file;
wherein the command to delete the file comprises:
for each of the plurality of partitions at the plurality of locations of the file:
(a) obtaining a pointer to the partition;
(b) creating a plurality of blocks of randomized and hashed data;
(c) writing the plurality of blocks of randomized and hashed data to the partition;
(d) repeating operations (b) and (c) a plurality of times; and
(e) removing the pointer to the partition;
wherein the command to delete the file received in the library is modified to execute operations (a)-(e), and the modified command is redirected to a second library for execution;
wherein the randomized and hashed data are generated using a single use key; and
wherein the single use key is generated before each execution of operation (d).
7. The system of claim 6 , wherein the pointer to the partition points to the beginning of the partition.
8. The system of claim 6 , wherein the plurality of locations of the file comprises one or more of a server, a disk drive, a disk within the disk drive, and a sector on the disk.
9. The system of claim 6 , wherein the randomized and hashed data are generated using a persistent public key.
10. The system of claim 6 , comprising refraining from writing real data to the plurality of partitions of the file until after the operation (d) has been executed for each of the plurality of partitions.