Securely Erasing a Disk: Difference between revisions
Initial content. |
badblocks |
||
| Line 1: | Line 1: | ||
Here are some tools and methods to wipe a disk securely. | Here are some tools and methods to wipe a disk securely. | ||
== Tools == | ==Tools== | ||
=== dd === | ===dd=== | ||
Write zeros or pseudorandom data: | Write zeros or pseudorandom data: | ||
{{highlight|lang=terminal|code= | {{highlight|lang=terminal|code= | ||
# dd if=/dev/zero of=/dev/sda | # dd if=/dev/zero of=/dev/sda bs=4K status=progress | ||
# dd if=/dev/urandom of=/dev/sda | # dd if=/dev/urandom of=/dev/sda bs=4K status=progress | ||
}} | }} | ||
=== dcfldd === | ===dcfldd=== | ||
You can specify a | <code>dcfldd</code> is based on an old version of <code>dd</code> and has some extra features. It hasn't been updated since 2006. If you only want to write a bit pattern, also look at <code>badblocks</code>. | ||
You can specify a bit pattern: | |||
{{highlight|lang=terminal|code= | {{highlight|lang=terminal|code= | ||
# dcfldd pattern="00" of=/dev/sda | # dcfldd pattern="00" of=/dev/sda | ||
| Line 16: | Line 18: | ||
}} | }} | ||
=== shred === | ===shred=== | ||
Shred comes as part of coreutils. It will overwrite a file with random data. | Shred comes as part of <code>coreutils</code>. It will overwrite a file with random data. | ||
{{highlight|lang=terminal|code= | {{highlight|lang=terminal|code= | ||
# shred /dev/sda | # shred /dev/sda | ||
}} | }} | ||
=== badblocks === | |||
Badblocks can be used to write to and verify a storage device. | |||
{{Highlight | |||
| code = # badblocks -v -w -s -b 4096 -t 0xff /dev/sda | |||
| lang = terminal | |||
}} | |||
Options are: | |||
* <code>-v</code> : verbose | |||
* <code>-w</code>: write | |||
* <code>-s</code>: show progress | |||
* <code>-b</code>: block size | |||
* <code>-t</code>: test pattern | |||
===ATA Secure Erase=== | |||
Modern ATA devices support a security feature which allows for the firmware to initiate a security erase. You need the enable security by setting a password before you can initiate a secure erase. | |||
A ATA secure erase can be done with <code>hdparm</code>. | |||
#Enable security using <code>hdparm</code>. {{Highlight | |||
| code = # hdparm --user-master u --security-set-pass password /dev/sda | |||
| lang = terminal | |||
}} | |||
#Verify security is enabled. {{Highlight | |||
| code = # hdparm -I /dev/sda | |||
| lang = terminal | |||
}} | |||
#Issue the ATA secure erase command. {{Highlight | |||
| code = # hdparm --user-master u --security-erase password /dev/sda | |||
| lang = terminal | |||
}} | |||
#Once erased, ensure security is disabled. {{Highlight | |||
| code = # hdparm -I /dev/sda | |||
| lang = terminal | |||
}} | |||
<br /> | |||
=== DBAN === | === DBAN === | ||
| Line 26: | Line 66: | ||
DBAN supports the following wipe methods: | DBAN supports the following wipe methods: | ||
*Quick Erase | |||
*Canadian RCMP TSSIT OPS-II Standard Wipe | |||
*American DoD 5220-22.M Standard Wipe | |||
*Gutmann Wipe | |||
*PRNG Stream Wipe | |||
==Methods== | |||
Here are some common wipe methods explained. | |||
===DoD 5220.22-M (C)=== | |||
=== DoD 5220.22-M (C) === | |||
The DoD 5220.22-M (C) requires overwriting an entire device with a pseudo-random bit pattern once. | The DoD 5220.22-M (C) requires overwriting an entire device with a pseudo-random bit pattern once. | ||
=== DoD 5220.22-M (E) === | ===DoD 5220.22-M (E)=== | ||
The DoD 5220.22-M (E) standard, also referred to as the DoD 3-pass method, requires the following: | The DoD 5220.22-M (E) standard, also referred to as the DoD 3-pass method, requires the following: | ||
=== DoD 5220.22-M ECE === | #Overwrite with binary 0's | ||
#Overwrite with binary 1's | |||
#Overwrite with a random bit pattern | |||
===DoD 5220.22-M ECE=== | |||
DoD 5220.22-M ECE combines DoD 5220.22-M E, C, and E to form a 7-pass variant. | DoD 5220.22-M ECE combines DoD 5220.22-M E, C, and E to form a 7-pass variant. | ||
=== Canadian RCMP TSSIT OPS-II === | ===Canadian RCMP TSSIT OPS-II=== | ||
The Canadian RCMP TSSIT OPS-II wipe method is a 7-pass process: | The Canadian RCMP TSSIT OPS-II wipe method is a 7-pass process: | ||
=== Gutmann method === | #Overwrite with binary 0's | ||
#Overwrite with binary 1's | |||
#Overwrite with binary 0's | |||
#Overwrite with binary 1's | |||
#Overwrite with binary 0's | |||
#Overwrite with binary 1's | |||
#Overwrite with a random bit pattern and verify the write | |||
===Gutmann method=== | |||
For the overly paranoid, the Gutmann method uses 35-passes using pseudo-random and bit patterns to wipe a device. This is done with the assumption that intelligence agencies can somehow detect the previous bit values using magnetic force microscopes and image analysis. | For the overly paranoid, the Gutmann method uses 35-passes using pseudo-random and bit patterns to wipe a device. This is done with the assumption that intelligence agencies can somehow detect the previous bit values using magnetic force microscopes and image analysis. | ||
See: https://en.wikipedia.org/wiki/Gutmann_method | See: https://en.wikipedia.org/wiki/Gutmann_method | ||
Revision as of 18:32, 3 April 2021
Here are some tools and methods to wipe a disk securely.
Tools
dd
Write zeros or pseudorandom data:
# dd if=/dev/zero of=/dev/sda bs=4K status=progress
# dd if=/dev/urandom of=/dev/sda bs=4K status=progress
dcfldd
dcfldd is based on an old version of dd and has some extra features. It hasn't been updated since 2006. If you only want to write a bit pattern, also look at badblocks.
You can specify a bit pattern:
# dcfldd pattern="00" of=/dev/sda
# dcfldd pattern="FF" of=/dev/sda
shred
Shred comes as part of coreutils. It will overwrite a file with random data.
# shred /dev/sda
badblocks
Badblocks can be used to write to and verify a storage device.
# badblocks -v -w -s -b 4096 -t 0xff /dev/sda
Options are:
-v: verbose-w: write-s: show progress-b: block size-t: test pattern
ATA Secure Erase
Modern ATA devices support a security feature which allows for the firmware to initiate a security erase. You need the enable security by setting a password before you can initiate a secure erase.
A ATA secure erase can be done with hdparm.
- Enable security using
hdparm.# hdparm --user-master u --security-set-pass password /dev/sda
- Verify security is enabled.
# hdparm -I /dev/sda
- Issue the ATA secure erase command.
# hdparm --user-master u --security-erase password /dev/sda
- Once erased, ensure security is disabled.
# hdparm -I /dev/sda
DBAN
Darik's Boot and Nuke. A live disk which will automatically wipe any connected storage devices. This doesn't appear to be updated anymore and newer hardware might not be supported.
DBAN supports the following wipe methods:
- Quick Erase
- Canadian RCMP TSSIT OPS-II Standard Wipe
- American DoD 5220-22.M Standard Wipe
- Gutmann Wipe
- PRNG Stream Wipe
Methods
Here are some common wipe methods explained.
DoD 5220.22-M (C)
The DoD 5220.22-M (C) requires overwriting an entire device with a pseudo-random bit pattern once.
DoD 5220.22-M (E)
The DoD 5220.22-M (E) standard, also referred to as the DoD 3-pass method, requires the following:
- Overwrite with binary 0's
- Overwrite with binary 1's
- Overwrite with a random bit pattern
DoD 5220.22-M ECE
DoD 5220.22-M ECE combines DoD 5220.22-M E, C, and E to form a 7-pass variant.
Canadian RCMP TSSIT OPS-II
The Canadian RCMP TSSIT OPS-II wipe method is a 7-pass process:
- Overwrite with binary 0's
- Overwrite with binary 1's
- Overwrite with binary 0's
- Overwrite with binary 1's
- Overwrite with binary 0's
- Overwrite with binary 1's
- Overwrite with a random bit pattern and verify the write
Gutmann method
For the overly paranoid, the Gutmann method uses 35-passes using pseudo-random and bit patterns to wipe a device. This is done with the assumption that intelligence agencies can somehow detect the previous bit values using magnetic force microscopes and image analysis.