{"id":13791154,"url":"https://github.com/berke/wipe","last_synced_at":"2025-05-12T09:34:09.080Z","repository":{"id":488847,"uuid":"115003","full_name":"berke/wipe","owner":"berke","description":"A Unix tool for secure deletion","archived":false,"fork":false,"pushed_at":"2022-12-23T16:55:04.000Z","size":70,"stargazers_count":48,"open_issues_count":8,"forks_count":18,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-18T05:38:43.744Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://lambda-diode.com/software/wipe/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berke.png","metadata":{"files":{"readme":"README","changelog":"CHANGES","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-01-26T16:04:05.000Z","updated_at":"2024-10-30T08:39:30.000Z","dependencies_parsed_at":"2023-01-11T15:27:06.045Z","dependency_job_id":null,"html_url":"https://github.com/berke/wipe","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berke%2Fwipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berke%2Fwipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berke%2Fwipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berke%2Fwipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berke","download_url":"https://codeload.github.com/berke/wipe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253709555,"owners_count":21951180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T22:00:56.658Z","updated_at":"2025-05-12T09:34:08.779Z","avatar_url":"https://github.com/berke.png","language":"C","funding_links":[],"categories":["Tools"],"sub_categories":["Cleaner / Data Destruction / Wiping / FileSystem"],"readme":"wipe 0.24 by Berke Durak Wed Nov 02 2016\n\nWHAT IS WIPE ?\n\n\"wipe\" is a short, nice tool for securely wiping out files from magnetic media.\nPurpose: to quickly wipe out traces of your latest dissident activities\n(cryptography etc.) when you realise that your local SSP (State Security\nPolice, aka. NSA, DST, CIA, MIT (Turkish Intelligence Agency), Mossad, ...)\nis knocking at your door.\n\nQUICK START\n\nSee file \"QUICKSTART\".\n\nRTFM\n\nPlease READ THE MAN PAGE for more detailed information on wipe. Also, if you\nhaven't done it yet, read Peter Gutmann's article on \"Secure Deletion of Data\nfrom Magnetic and Solid-State Memory\", included in this directory, which can\nalso be retrieved from\nhttp://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html\n\nCHANGES\n\nSee the file CHANGES for a short history of wipe. You can get the latest\nversion of wipe at these addresses:\n  http://lambda-diode.com/software/wipe/\n\nCOPYING\n\nWipe is under the GNU Public License (see file COPYING).\n\nPROBLEMS\n\nWiping is a tricky affair. \"wipe\" tries to do everything that a portable\nuser-level program can do to securely erase the given files. However,\nthere are several limitations:\n\n  1.Since file meta information such as file name, size,\n    creation/modification/access dates as well as directory\n    structures are filesystem-specific, and as file systems\n          tend to have extremely various architectures, there is\n    no hope in seeing a uniform interface for accessing\n    low-level filesystem data. Therefore a portable program\n    must be filesystem-independent. It must thus use\n    standard file operations in a way that will make most\n    file systems effectively overwrite the desired portions\n    of the magnetic media.\n\n  2.Since IDE and SCSI hard disks are driven by their own\n    logic, nothing guarantees that the required data is\n    written out effectively at the required place, i.e.\n    over the old data.\n\n        3.The successfull erasure of off-track data is a function of\n          drive temperature, usage history, drive mechanics and\n          luck.\n\nTherefore I cannot and will not guarantee you that the files erased with wipe\nare unrecoverable. SOME RECENT VERSIONS (0.11, 0.12, 0.13) HAVE SERIOUS BUGS:\nI was too lazy to check if wipe was still working as expected after doing\nvarious improvements. It was not. Mea culpa. The current version (0.14)\nhas been more or less verified, in different wipe modes, on different\nfiles and block devices.\n\nYou can use \"strace\" on wipe to check that it effectively does the announced\nwrites with different random data. From a software-level, wipe seems to do what\nit claims to do, i.e. overwriting, renaming, truncating, etc. Verification at\nthe hardware-level requires specialised hardware. I don't have hardware.\nIf anyone has got access to such hardware and is willing to check the\neffectiveness of wipe (and other secure deletion tools) PLEASE INFORM THE\nPUBLIC ABOUT IT.\n\nVerifications made on an Ext2 file system mounted through loopback shows\nthat wipe 0.14 correctly erases the data blocks of files. However, file name\nwiping did not work as well as expected: plain filenames were still\ndiscernable at the block level after wiping a large directory tree.\nBut filling the filesystem with a maximum size file and wiping it\n(as a crude but portable way to wipe out free blocks) erased the\nremaining plain filenames.\n\nThere will be problems with files having \"holes\" in them; as wipe will\ntry to completely overwrite those files with random data, the holes\nwill get filled, possibly exceeding available disk space.\n\nBriefly: you can reasonably expect that the DATA contained in your files\nis EFFECTIVELY WIPED. However on complex file systems like Ext2\nit is likely that FILE META-INFORMATION is NOT securely erased, or\neven not overwritten at all.\n\nRECOMMANDATIONS FOR MAXIMUM SAFETY\n\nFor maximum safety, use an encrypted file system.\nUse wipe to clean whole partitions. For example, if I had guilty\nstuff on /dev/hda3, assuming that /dev/hda3 is less than, say 70% full,\nI would first mount /dev/hda3 on /mount, then do\n  wipe -cfrsF /mount/\nto wipe the contents of the data files using 34 passes, then\n  wipe -kqZ -Q 1 /dev/hda3\nto erase file meta-information. However if /dev/hda3 is more\nthan 70% full, it might be quicker to erase the whole hard disk\nusing 34 passes:\n  wipe -kZ /dev/hda3\nIf you don't have to hide that you have guilty stuff but just want\nto be sure that someone else won't get at the CONTENTS of that guilty\nstuff, or in other words if you don't care about wiping file names,\nsizes etc. but just want to wipe out file contents, simply do\n  wipe -cfrZF /mount/.\n\nAnd, last but not least, think of TEMPEST monitoring. I don't know\nhow feasible it is to remotely eavesdrop your computer's internal\nbus or your IDE ribbon but using the \"-s\" (silent) option will prevent\nwipe from outputting to your monitor the names of all the files it\nerases. Eavesdropping your CRT is much easier for amateurs as well\nas for professionals.\n\nREQUIREMENTS\n\nwipe used to require Linux kernel 2.0.x or newer, in order to use the O_SYNC\nbit, and the /dev/random device. Since version 0.10, it no longer expressely\nrequires O_SYNC, uses strong PRNGs and can gather the required seeds from\ndifferent sources, including /dev/random-like devices, by hashing the output of\na user-defined command or, in the worst case, by hashing its PID, the local\ndate/time and its environment variables.\n\nThanks to Chris L. Mason \u003ccmason@unixzone.com\u003e who initially motivated me to\nmake wipe portable and helped me with compilation tips, bug reports,\nsuggestions and patches. He maintains a site with reviews on UNIX software at\nhttp://www.unixzone.com\n\nTHANKS\n\nMany thanks to the following people who sent in bug reports, compilation tips,\nand even whole patches ! In alphabetical order, hoping to not forget anyone,\nthey are:\n\n  Alexey Marinichev\n  Chris L. Mason\n  Jason Axley\n  Erik Vogan, 64-bit offset fix\n  Michael S. Rhee\n  Paul H. Hargrove\n  Peter Miller, for contributing an ETA patch\n  Thomas Schoepf\n  Joao Eriberto Mota Filho\n\nINSTALLATION\n\nTo compile wipe, type \"make\" to get a list of supported unices. If your\noperating system appears in the list, type \"make \u003cyour operating system\u003e\";\notherwise try \"make generic\". If this does not work, you'll have to\nhand-edit the Makefile: please mail me about your results.\n\nYou can then copy the \"wipe\" executable in /usr/local/bin/ or in ~/bin if you\nwish. Install the man page in /usr/local/man/man1/, or use \"man -l wipe.1\" to\nread the manual page from wipe's directory.\n\nOn systems lacking a /dev/random-like device, the shell script \"randompipe.sh\"\ncan be used with the -R and -S options or the WIPE_SEEDPIPE environment\nvariable. For more info, see the man page.\n\nOTHER WIPE IMPLEMENTATIONS\n\nThere are several file-wiping tools available for Windows. There are two other\nones I know for Linux: Calvin Clark's wipe 1.0beta, and Tom Viers' wipe\nv0.55beta3. These have exactly the same semantics as mine, i.e. their aim is to\noverwrite files with data in order to prevent recovery of their contents. Tom\nViers' wipe is very similar to mine and is also based on Peter Gutmann's\narticle.  However, Calvin's wipe does simply write zeroes out on the file,\nwhich is not secure at all (RTF article !). There is also Van Hauser's srm\n(secure remove) available at http://r3wt.base.org, and which uses /dev/urandom\nas a PRNG.\n\nAUTHOR\n\nI can be reached at \u003cberke@lambda-diode.com\u003e.  Send bug reports, ideas for\nimprovement, compilation problems and other comments to this address.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberke%2Fwipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberke%2Fwipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberke%2Fwipe/lists"}