จะลบไดรฟ์ SSD อย่างปลอดภัยได้อย่างไร


36

ฉันค่อนข้างใหม่กับเทคโนโลยี SSD ดังนั้นฉันจึงไม่รู้ว่าจะเปรียบเทียบกับฮาร์ดไดรฟ์อย่างไรเมื่อต้องลบไดรฟ์อย่างปลอดภัย มันเพียงพอแล้วที่จะเรียกใช้ Disk Utility และลบไดรฟ์ด้วยตัวเลือก "เขียนทับด้วยเลขศูนย์" หรือถูกออกแบบมาสำหรับฮาร์ดไดรฟ์หรือไม่? มีการกระทำอื่น ๆ ที่ควรดำเนินการหรือไม่?

ฉันไม่ได้กำลังมองหาการรักษาความปลอดภัยระดับ NSA แต่เพียงแค่การเช็ดแบบที่คุณทำถ้าคุณกลับมาหรือขาย Mac


คุณต้องการลบข้อมูลหรือไม่หรือคุณต้องการชักจูงคนอื่น ๆ ว่าข้อมูลถูกลบไปแล้วหรือไม่? หากคุณต้องการโน้มน้าวใจตัวเองว่าข้อมูลหายไปคุณควรลองใช้คำสั่ง ATA ลบอย่างปลอดภัย หากคุณต้องการโน้มน้าวใจผู้อื่นคุณอาจต้องใช้บริการเครื่องทำลายดิสก์
DanBeale

คำตอบ:


45

มันขึ้นอยู่กับระดับความหวาดระแวงของคุณ เนื่องจากวิธีการที่ SSD จัดการกับการเขียนข้อมูลการทำศูนย์บน SSD ครั้งหนึ่งจึงไม่ดีเท่าการทำเช่นนั้นบนฮาร์ดไดรฟ์

เมื่อคุณเขียนหน้าข้อมูลเฉพาะใน HD ข้อมูลใหม่จะถูกเขียนทับข้อมูลเก่าแทนที่มัน เขียนเลขศูนย์บนดิสก์ทั้งหมดแล้วข้อมูลเก่าทั้งหมดจะหายไป ในทางตรงกันข้าม SSD ไม่สามารถเขียนทับแต่ละหน้าได้อย่างง่ายๆ เพื่อแทนที่ข้อมูลในหน้าข้อมูลเก่าจะต้องถูกลบก่อนและ SSD ไม่สามารถลบแต่ละหน้า พวกเขาต้องลบบล็อกทั้งหมดที่ประกอบด้วยหลายหน้า

ดังนั้นจะเกิดอะไรขึ้นเมื่อคุณขอให้ SSD เขียนทับหน้า # 5 คือ SSD ทิ้งข้อมูลไว้ที่หน้า 5 เพียงอย่างเดียว แต่ทำเครื่องหมายว่าไม่ถูกต้องจัดสรรหน้าว่างในปัจจุบันอื่น (พูด # 2305) เขียน ข้อมูลใหม่ไปยังหน้า # 2305 และแจ้งให้ทราบว่าครั้งต่อไปที่ระบบปฏิบัติการขอให้หน้า # 5 ควรได้รับ # 2305 แทน ข้อมูลหน้าเดิม # 5 อยู่ที่นั่นจนกระทั่งในภายหลังเมื่อไดรฟ์ต้องการพื้นที่เพิ่มขึ้นจะย้ายหน้าที่ถูกต้องที่เหลืออยู่ออกไปจากบล็อกและลบออก SSD มีความจุหน่วยความจำฟิสิคัลมากกว่าที่เปิดเผยกับคอมพิวเตอร์ดังนั้นพวกเขาจึงสามารถเล่นปาหี่บล็อกนี้ได้เป็นระยะเวลาหนึ่งก่อนที่จะต้องลบสิ่งใด ๆ (และเมื่อพวกเขาทำการลบบางอย่างจริง ๆ แล้วไม่มีวิธีที่ดีที่จะคาดเดาว่า เลือกเพื่อลบทิ้ง) ดูรีวิว AnandTech นี้ สำหรับวิธีรายละเอียดเพิ่มเติม (คำเตือน: ค่อนข้างยาวและเนื้อหาที่เกี่ยวข้องกระจายไปทั่ว)

ผลลัพธ์สุทธิ: หากคุณเขียนเลขศูนย์บนไดรฟ์ "เต็ม" คุณจะไม่ได้เขียนทับข้อมูลเก่าทั้งหมด คุณได้ปรับปรุงตารางการแปลของคอนโทรลเลอร์ดังนั้นมันจะไม่ส่งคืนข้อมูลเก่าใด ๆ ไปยังระบบปฏิบัติการ (หน้าเหล่านั้นไม่ถูกต้องทั้งหมด) แต่ถ้ามีใครยอมใครง่ายๆพอที่จะผ่านตัวควบคุมพวกเขาอาจได้รับข้อมูลของคุณกลับมา

การเขียนทับสองครั้งอาจใช้งานได้ แต่ขึ้นอยู่กับกลยุทธ์การจัดสรรของคอนโทรลเลอร์ การเขียนทับสองครั้งด้วยข้อมูลแบบสุ่ม ( diskutil randomDisk 2 /dev/diskN) มีแนวโน้มที่จะทำงานได้เล็กน้อย แต่ก็ยังไม่รับประกัน ทั้งสองอย่างนี้มีผลข้างเคียงที่ไม่ดีเช่นกันพวกเขาใช้อายุการใช้งานบางส่วนของไดรฟ์และเพิ่มการกระจายตัวของโลจิคัลบน SSD ลดประสิทธิภาพการเขียน

โปรดทราบว่าเวอร์ชันล่าสุดของ Disk Utility ของ OS X ปิดการใช้งานตัวเลือกการลบอย่างปลอดภัยบน SSD (สำหรับเหตุผลที่กล่าวถึงข้างต้น) แต่เวอร์ชันบรรทัดคำสั่งยังคงอนุญาตให้ใช้ได้ BTW ฉันได้เห็นคำแนะนำหลายประการเพื่อลบ SSD อย่างปลอดภัยด้วยการแปลงเป็นรูปแบบที่เข้ารหัส แต่นี่คือ (ถ้ามี) ความปลอดภัยน้อยกว่าการเขียนทับข้อมูลแบบสุ่มเล็กน้อย

วิธีที่ดีที่สุดในการลบ SSD อย่างปลอดภัยคือการเรียกใช้คุณสมบัติการลบที่ปลอดภัยในตัวควบคุม สิ่งนี้ควร (หากผู้ออกแบบคอนโทรลเลอร์ทำงานของพวกเขา) ลบบล็อคทั้งหมดอย่างแท้จริงและยังมีผลข้างเคียงของการรีเซ็ตแมปโลจิคัลเพจการจัดเรียงข้อมูลใหม่และการกู้คืนประสิทธิภาพดั้งเดิม น่าเสียดายที่ยูทิลิตี้ส่วนใหญ่ที่ฉันเคยเห็นในการทำเช่นนี้ (เช่นHDDErase ของ CMRR ) ทำงานภายใต้ DOS ซึ่งจะไม่สามารถบูตบน Mac ได้ ฉันพบการโพสต์บน macrumorsพร้อมกับคำแนะนำ (ค่อนข้างซับซ้อน) สำหรับการลบอย่างปลอดภัยจากซีดีบูต GParted อาจเป็นไปได้ที่จะใช้ Parted Magicจากแฟลชไดรฟ์ที่สามารถบู๊ตได้แต่ฉันยังไม่ได้ลอง

นักวิจัยที่ห้องปฏิบัติการระบบไม่ลบเลือนที่ UCSD ได้ทำการทดสอบวิธีต่างๆในการฆ่าเชื้อ SSD ด้วยการ "ลบ" ไดรฟ์จากนั้นทำการแยกชิ้นส่วนออกเพื่อเลี่ยงผ่านตัวควบคุมและตรวจสอบข้อมูลที่เหลือ ( สรุป , กระดาษเต็ม ) ผลลัพธ์ของพวกเขาส่วนใหญ่เห็นด้วยกับสิ่งที่ฉันกล่าวข้างต้น (และยังแสดงให้เห็นว่าคำสั่งการลบปลอดภัยในตัวไม่ได้ดำเนินการอย่างถูกต้องเสมอไป):

ผลลัพธ์ของเรานำไปสู่ข้อสรุปสามข้อ: อันดับแรกคำสั่งในตัวมีประสิทธิภาพ แต่บางครั้งผู้ผลิตก็ใช้งานไม่ถูกต้อง ประการที่สองการเขียนทับพื้นที่ที่อยู่ที่มองเห็นได้ทั้งหมดของ SSD สองครั้งเป็นปกติ แต่ไม่เสมอไปเพียงพอที่จะฆ่าเชื้อไดรฟ์ ประการที่สามไม่มีเทคนิคการทำงานของฮาร์ดไดรฟ์ที่มีอยู่สำหรับการฆ่าเชื้อไฟล์แต่ละไฟล์นั้นมีประสิทธิภาพสำหรับ SSD


1
ขอบคุณสำหรับคำตอบมากมาย ไม่ใช่ปัญหาสำหรับฉันที่จะเรียกใช้คำสั่ง Terminal ตามที่คุณแนะนำ แต่สำหรับการอ้างอิงในอนาคต: ผู้ใช้ทั่วไปที่ไม่สะดวกกับ Terminal จะสามารถทำอะไรได้ เพียงใช้ตัวเลือก 7-Disk Disk
Rinzwind

4
ฉันไม่รู้ว่าฉันสามารถ "แนะนำ" ตัวเลือกใด ๆ ณ จุดนี้ได้หรือไม่ ตัวเลือกการเขียนทับใด ๆ จะใช้อายุการเขียนสูงสุดของไดรฟ์และมีแนวโน้มที่จะเพิ่มการกระจายตัวและลดประสิทธิภาพ สิ่งที่ดีที่สุดสำหรับ Apple ในการเพิ่ม ATA-secure-erase (เช่นตัวเลือกที่ใช้คอนโทรลเลอร์) เป็นตัวเลือกใน Disk Utility แต่ใครจะรู้ว่าเมื่อไร / จะเกิดอะไรขึ้น
Gordon Davisson

2
@Gordon - นั่นเป็นคำตอบที่ยอดเยี่ยมและให้ข้อมูล! +1
Dolan Antenucci

สวัสดี @GordonDavisson สงสัยว่ามีอะไรเปลี่ยนแปลงไปตั้งแต่คุณเขียนคำตอบนี้ (มีการอัปเดตระบบปฏิบัติการมาสองสามครั้ง)
samthebrand

@ SamtheBrand: มีการเปลี่ยนแปลงไม่มาก ฉันได้เพิ่มบันทึกย่อว่า Disk Utility (รุ่น GUI) ในขณะนี้ไม่อนุญาตให้ลบอย่างปลอดภัยบน SSD (เพราะมันใช้งานไม่ได้จริง) แก้ไขลิงก์ไปยัง HDDErase และเพิ่มบันทึกย่อที่ Magic Parted อาจใช้งานได้ (แม้ว่าฉันยังไม่ได้ลอง )
Gordon Davisson

8

เปิดเทอร์มินัลแล้วพิมพ์คำสั่งต่อไปนี้:

df -k

สังเกตคอลัมน์แรกที่สอดคล้องกับพาร์ติชันของ SSD ที่คุณต้องการลบอย่างถาวร /dev/disk1s2สมมติว่ามันเป็น

พิมพ์คำสั่งต่อไปนี้:

dd if=/dev/zero of=/dev/rdisk1s2 bs=100k

โดยที่/dev/rdisk1s2เป็นอุปกรณ์ดิบที่เกี่ยวข้องกับพาร์ติชันของคุณบน SSD คำสั่งนี้จะเขียนพาร์ติชั่นนี้จากบล็อกแรกที่มีให้กับพาร์ติชั่นสุดท้ายอย่างสมบูรณ์ คำสั่งนี้จะมีอายุการใช้งานนาน (~ 1/2 ชั่วโมงเป็นเวลา 100 Gbytes) โดยไม่มีแถบเลื่อนความคืบหน้าที่ดี

เมื่อคำสั่งนี้ส่งคืนคุณพร้อมท์ของเชลล์ดิสก์จะถูกลบอย่างสมบูรณ์และไม่สามารถย้อนกลับได้ เริ่มต้นDisk Utilityและตรวจสอบพาร์ติชันนี้ มันจะบอกคุณว่ามันเสียหายเกินกว่ารูปแบบการซ่อมใด ๆ และมันก็ถูกต้อง

เพียงฟอร์แมตพาร์ติชันนี้ตามที่คุณต้องการ

นี่คือสิ่งที่เกิดขึ้นในระดับบล็อกทางกายภาพ:ภาพยนตร์ของ dd & DU ที่ลบ SSD


1
นี่เทียบเท่ากับตัวเลือก Disk Utility ในการเขียนทับด้วยศูนย์และจะไม่ปลอดภัยอย่างเต็มที่ใน SSD ด้วยเหตุผลเดียวกัน ดูคำตอบของฉันสำหรับคำอธิบายโดยละเอียด
Gordon Davisson

→กอร์ดอน: ฉันอ่านคำตอบของคุณและฉันคิดว่าฉันเข้าใจและฉันก็ยกมันขึ้นมาเพื่อคุณภาพ คำตอบของฉันคือการใช้อุปกรณ์ดิสก์ดิบและไม่ใช่บล็อกหนึ่ง (เป็น Disk Utility) สิ่งนี้จะต้องได้รับการตรวจสอบบน SSD (ด้วยเครื่องมือที่ไว้วางใจได้) แต่เท่าที่ฉันทราบเกี่ยวกับ HD มาตรฐานเก่าที่ใช้แคชอินเตอร์เฟซดิสก์ดิบเป็นวิธีที่ง่ายในการหลีกเลี่ยงแคชนี้ อุปกรณ์ SSD เป็นดิสก์ HD ที่แคชมีความจุเต็มและดิสก์แบบฟิสิคัลจะถูกลบออก
แดน

การใช้อุปกรณ์ raw (/ dev / rdisk *) ข้ามการแคชระบบปฏิบัติการ แต่ไม่ข้ามเลเยอร์การแปลแฟลช (ซึ่งเป็นแหล่งที่มาของปัญหาที่ฉันอธิบายไว้) ในความเป็นจริงไม่มีทางที่จะหลีกเลี่ยงได้จากระบบปฏิบัติการ - ตัวควบคุมอุปกรณ์ไม่เคยเปิดเผยแหล่งเก็บข้อมูลแฟลชที่แท้จริงไปยังรถบัส (SATA หรืออะไรก็ตาม) และเนื่องจากระบบปฏิบัติการสามารถโต้ตอบกับไดรฟ์บนบัสได้เท่านั้น วิธีที่จะได้รับการเข้าถึงดิบพอที่จะทำการเขียนทับที่ปลอดภัย
Gordon Davisson

pas แรกของddที่นี่ไม่เพียง แต่จะข้ามระดับแคชบางส่วน (เราไม่มีวิธีใด ๆ ที่จะทราบความสามารถของพวกเขา) แต่จะทำให้หมดบางส่วน (นี่คือสถานะรูปที่ 3) รอบที่สองจะต้องค้นหาบล็อกใหม่และลบออกอย่างปลอดภัย
แดน

ยังคงไม่เพียงพอด้วยเหตุผลสองประการ: อันดับแรกเมื่อ Disk Utility ฟอร์แมตดิสก์เพียงเขียนทับมันเล็กน้อย (ตารางพาร์ทิชันส่วนหัวของไดรฟ์ข้อมูล ฯลฯ ) และไม่มีการรับประกันว่าเพียงพอที่จะหมดความจุพิเศษ ประการที่สองไม่มีการรับประกันเลยว่าการเขียนแบบพิเศษ DU จะกระทบกับบล็อคทางกายภาพที่แตกต่างจากที่ dd ลบก่อนหน้านี้ - ทั้งนี้ขึ้นอยู่กับกลยุทธ์การจัดสรรของคอนโทรลเลอร์ นั่นเป็นเหตุผลที่ฉันบอกว่าการเขียนทับพื้นที่ทั้งหมดสองครั้งอาจไม่เพียงพอ
Gordon Davisson

7

ปุ่ม "ตัวเลือกความปลอดภัย ... " ใน Disk Utility ในปัจจุบันเป็นสีเทาสำหรับ SSD อ้างอิงจากhttp://support.apple.com/kb/HT3680การลบ SSD ตามปกติอาจปลอดภัยพอ:

หมายเหตุ: ด้วย OS X Lion และไดรฟ์ SSD การลบอย่างปลอดภัยและการลบพื้นที่ว่างไม่สามารถใช้งานได้ใน Disk Utility ตัวเลือกเหล่านี้ไม่จำเป็นสำหรับไดรฟ์ SSD เพราะการลบแบบมาตรฐานทำให้การกู้คืนข้อมูลจาก SSD ทำได้ยาก เพื่อความปลอดภัยมากขึ้นให้ลองเปิดการเข้ารหัส FileVault 2 เมื่อคุณเริ่มใช้ไดรฟ์ SSD

ยังคงสามารถเรียกใช้บางอย่างเช่นdiskutil secureErase freespace 4 disk0s2จาก Terminal ในพาร์ติชันการกู้คืน

เพียงเปิด FileVault 2 ก่อนที่จะลบไดรฟ์อาจเป็นตัวเลือกที่ดีกว่า ตามคำตอบนี้การทำการลบข้อมูลจากระยะไกลจะเป็นการลบคีย์การเข้ารหัสหากเปิดใช้งาน FileVault 2:

ใช่เมื่อคุณล้างคอมพิวเตอร์จากระยะไกลคอมพิวเตอร์จะทำการลบข้อมูลอย่างปลอดภัย Apple เตือนคุณด้วยว่าอาจใช้เวลานานถึงหนึ่งวัน อย่างไรก็ตามหากไดรฟ์ของคุณถูกเข้ารหัสด้วย FileVault 2 คุณไม่จำเป็นต้องลบดิสก์ มันเพียงพอที่จะลบคีย์การเข้ารหัสที่เก็บไว้ในดิสก์อย่างปลอดภัยนั่นคือสิ่งที่พวกเขาทำ มันรวดเร็วและปลอดภัยเหมือนระบบเข้ารหัสพื้นฐานซึ่งตอนนี้ปลอดภัยมาก

http://training.apple.com/pdf/wp_osx_security.pdf :

FileVault 2 มอบความสามารถในการลบคีย์การเข้ารหัสจาก Mac ที่ได้รับเมื่อใดก็ได้เพื่อให้แน่ใจว่าข้อมูลที่เข้ารหัสไม่สามารถเข้าถึงได้โดยผู้ใช้หรือเครื่องมือการกู้คืนข้อมูล กระบวนการนี้เรียกว่าการลบแบบรีโมต


5
การเปิดการเข้ารหัส (เช่น FileVault) ก่อนการจัดเก็บข้อมูลที่สำคัญเป็นตัวเลือกที่ยอดเยี่ยม แต่เกิดขึ้นกับฉันว่ากระบวนการที่ใช้ในการ "ลบ" คีย์การเข้ารหัสอาจไม่ปลอดภัยอย่างสมบูรณ์ด้วยเหตุผลเดียวกับที่การลบการรักษาความปลอดภัยมาตรฐานไม่ได้ - - คีย์เข้ารหัสเก่าจะยังคงถูกเก็บไว้ในแฟลชเพียงในหน้าที่ถูกแมปออกมา ดังนั้นคนที่สามารถหลีกเลี่ยงการควบคุมอาจจะยังคงได้รับที่ "ลบ" ที่สำคัญ ...
กอร์ดอน Davisson

@GordonDavisson แต่ถ้าคุณเปิดใช้งานการเข้ารหัสอีกครั้งเมื่อทำการฟอร์แมตไดรฟ์คีย์การเข้ารหัสเก่าควรถูกเขียนทับดังนั้นข้อมูลเก่าจึงไม่สามารถเข้าถึงได้อย่างปลอดภัยหรือไม่?
ขนาด

@supersize คีย์การเข้ารหัสเก่าอาจถูกเขียนทับ แต่ขึ้นอยู่กับหน้าทางกายภาพที่ถูกลบในระหว่างการฟอร์แมตใหม่และนั่นคือสิ่งที่ควบคุมเฟิร์มแวร์ของไดรฟ์ไม่ใช่ระบบปฏิบัติการ
Gordon Davisson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.