Date: Mon, 21 Mar 2022 09:26:25 -0800 From: Royce Williams <royce@techsolvency.com> To: freebsd-security@freebsd.org Subject: Re: SSD erase question Message-ID: <CA%2BE3k92viWQTgkS9zyXwCdBC5rgjyOmSvLFgGo%2BOF8WxkDuVWA@mail.gmail.com> In-Reply-To: <1ACC7A67-BDBA-4CD3-87EC-822C38CD7CE7@gmail.com> References: <274c8cca-80b0-9460-6754-6bb77efbb4dd@htwsaar.de> <1ACC7A67-BDBA-4CD3-87EC-822C38CD7CE7@gmail.com>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
Even multi-pass overwrite of SSDs is not a sufficient purge, due to how
writing is distributed / optimized on SSDs. So dd / dc3dd is insufficient.
Only invoking the on-controller ATA Secure Erase / sanitize command (using
'camcontrol security -e' as Eugene said elsewhere in the thread) is the
validated[1] method:
camcontrol security -s anypass -e anypass -y ada[X]
This also happens to be much faster than an overwrite, because it's
implemented as "encrypt the entire medium with a random key, then discard
the key".
1.
https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-88r1.pdf,
p. 36, Table A-8
--
Royce
On Mon, Mar 21, 2022 at 7:19 AM Sam Ricchio <sam.ricchio@gmail.com> wrote:
> On and SSD if you have erased everything ssd “garbage collection” should
> help you if the drive it powered on.
> But if you want to overwrite the drive
> A simple overwrite with a text pattern with dc3dd.
> dc3dd wipe=/dev/sdb tpat=nothingtoseehere
> However if you are still worried that some controller optimization is
> interfering
> with and actual memory location overwrite. Go old school with dd and write
> a file of random to the existing file system until it runs out of space.
> dd if=/dev/urandon of=garbagetxtfile.txt
>
>
>
>
> On Mar 21, 2022, at 7:14 AM, Damian Weber <dweber@htwsaar.de> wrote:
>
>
> Hi all,
>
> I'd like to have an answer on a secure FreeBSD way to erase
> SSDs before giving these away to someone for reusing it.
>
> Is the following enough to protect confidential data
> previously stored there?
>
> 1) dd : overwriting with random bits (complete capacity)
> 2) gpart create
> 3) gpart add
> 4) newfs
>
> Details for an example with /dev/ada1 see below.
>
> Thanks a lot,
>
> Damian
>
>
> # fdisk ada1
> ******* Working on device /dev/ada1 *******
> parameters extracted from in-core disklabel are:
> cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl)
>
> Figures below won't work with BIOS for partitions not in cyl 1
> parameters to be used for BIOS calculations are:
> cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl)
>
> Media sector size is 512
> Warning: BIOS sector numbering starts with sector 1
> Information from DOS bootblock is:
> The data for partition 1 is:
> sysid 238 (0xee),(EFI GPT)
> start 1, size 488397167 (238475 Meg), flag 0
> beg: cyl 0/ head 0/ sector 2;
> end: cyl 1023/ head 255/ sector 63
> The data for partition 2 is:
> <UNUSED>
> The data for partition 3 is:
> <UNUSED>
> The data for partition 4 is:
> <UNUSED>
>
> # gpart show ada1
> => 40 488397088 ada1 GPT (233G)
> 40 1024 1 freebsd-boot (512K)
> 1064 480246784 2 freebsd-ufs [bootme] (229G)
> 480247848 8149280 3 freebsd-swap (3.9G)
>
> # dd if=/dev/random of=/dev/ada1 bs=512 count=488397088
>
> # gpart create -s gpt ada1
>
> # gpart add -t freebsd-ufs ada1
>
> # newfs -U /dev/ada1p1
>
>
>
>
[-- Attachment #2 --]
<div dir="ltr"><div dir="ltr">Even multi-pass overwrite of SSDs is not a sufficient purge, due to how writing is distributed / optimized on SSDs. So
dd / dc3dd is insufficient.<div><br></div><div>Only invoking the on-controller ATA Secure Erase / sanitize command (using 'camcontrol security -e' as Eugene said elsewhere in the thread) is the validated[1] method:</div><div><br></div><div> camcontrol security -s anypass -e anypass -y ada[X]<br></div><div><br></div><div>This also happens to be much faster than an overwrite, because it's implemented as "encrypt the entire medium with a random key, then discard the key".</div><div><br></div><div>1. <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-88r1.pdf">https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-88r1.pdf</a>, p. 36, Table A-8<br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><br></div><div>-- </div><div>Royce</div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 21, 2022 at 7:19 AM Sam Ricchio <<a href="mailto:sam.ricchio@gmail.com">sam.ricchio@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><div>On and SSD if you have erased everything ssd “garbage collection” should help you if the drive it powered on.</div><div>But if you want to overwrite the drive</div><div>A simple overwrite with a text pattern with dc3dd.</div><div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><span style="font-kerning:none">dc3dd wipe=/dev/sdb tpat=nothingtoseehere</span></div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><span style="font-kerning:none">However if you are still worried that some controller optimization is interfering</span></div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><span style="font-kerning:none">with and actual memory location overwrite. Go old school with dd and write</span></div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><span style="font-kerning:none">a file of random to the existing file system until it runs out of space.</span></div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><span style="font-kerning:none">dd if=/dev/urandon of=garbagetxtfile.txt</span></div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><span style="font-kerning:none"><br></span></div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><span style="font-kerning:none"><br></span></div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><span style="font-kerning:none"><br></span></div><div style="margin:0px 0px 0px 36px;font-stretch:normal;font-size:16px;line-height:normal"><br></div><div><div><div>On Mar 21, 2022, at 7:14 AM, Damian Weber <<a href="mailto:dweber@htwsaar.de" target="_blank">dweber@htwsaar.de</a>> wrote:</div><br><div><div><br>Hi all,<br><br>I'd like to have an answer on a secure FreeBSD way to erase <br>SSDs before giving these away to someone for reusing it. <br><br>Is the following enough to protect confidential data <br>previously stored there?<br><br>1) dd : overwriting with random bits (complete capacity)<br>2) gpart create<br>3) gpart add<br>4) newfs<br><br>Details for an example with /dev/ada1 see below.<br><br>Thanks a lot,<br><br> Damian<br><br><br># fdisk ada1<br>******* Working on device /dev/ada1 *******<br>parameters extracted from in-core disklabel are:<br>cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl)<br><br>Figures below won't work with BIOS for partitions not in cyl 1<br>parameters to be used for BIOS calculations are:<br>cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl)<br><br>Media sector size is 512<br>Warning: BIOS sector numbering starts with sector 1<br>Information from DOS bootblock is:<br>The data for partition 1 is:<br>sysid 238 (0xee),(EFI GPT)<br> start 1, size 488397167 (238475 Meg), flag 0<br> beg: cyl 0/ head 0/ sector 2;<br> end: cyl 1023/ head 255/ sector 63<br>The data for partition 2 is:<br><UNUSED><br>The data for partition 3 is:<br><UNUSED><br>The data for partition 4 is:<br><UNUSED><br><br># gpart show ada1<br>=> 40 488397088 ada1 GPT (233G)<br> 40 1024 1 freebsd-boot (512K)<br> 1064 480246784 2 freebsd-ufs [bootme] (229G)<br> 480247848 8149280 3 freebsd-swap (3.9G)<br><br># dd if=/dev/random of=/dev/ada1 bs=512 count=488397088<br><br># gpart create -s gpt ada1<br><br># gpart add -t freebsd-ufs ada1<br><br># newfs -U /dev/ada1p1<br><br><br></div></div></div><br></div></div></div></blockquote></div></div>
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BE3k92viWQTgkS9zyXwCdBC5rgjyOmSvLFgGo%2BOF8WxkDuVWA>
