จะลบไฟล์ที่เก็บไว้ใน SSD อย่างปลอดภัยได้อย่างไร


27

จากบทความ (ยาวมาก แต่คุ้มค่าที่จะอ่าน) ใน SSD :

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

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

ดังนั้นจะเป็นวิธีที่ดีที่สุดในการลบไฟล์ที่เก็บไว้ใน SSD อย่างปลอดภัยหรือไม่ การเขียนทับข้อมูลแบบสุ่มเนื่องจากเราคุ้นเคยกับฮาร์ดดิสก์ (เช่นการใช้ยูทิลิตี้ "ฉีก") จะไม่ทำงานจนกว่าคุณจะเขียนทับไดรฟ์ WHOLE ...

คำตอบ:


22

วิธีการเข้ารหัสระดับเสียงของตัวเอง? ข้อมูลที่ถูกลบจะยังคงอยู่ที่นั่น แต่ไม่สามารถเข้าถึงได้โดยทุกคนโดยไม่มีรหัสที่เหมาะสม


ตลกฉันไม่ได้คิดเกี่ยวกับเรื่องนี้ - เพราะฉันมักจะใช้การเข้ารหัส LUKS บนฮาร์ดดิสก์ของฉันอยู่แล้ว;)
c089

ตามที่ระบุไว้ที่นี่จะมีผลกระทบต่อประสิทธิภาพอย่างร้ายแรง ด้วยไดรฟ์ที่ใช้ SandForce การใช้การลบที่ปลอดภัยของ ATA จะลบคีย์การเข้ารหัส AES ซึ่งจะช่วยแก้ปัญหาการลบที่ปลอดภัยเมื่อไม่ใช้การเข้ารหัสซอฟต์แวร์
c089

12

หากไดรฟ์ SSD สนับสนุนการรักษาความปลอดภัย ATA ชุดคุณลักษณะโหมดแล้วมันมีการทำงานที่เชื่อถือได้ลบในตัวซึ่งคุณควรจะสามารถเข้าถึงโดยใช้สิ่งที่ต้องการลบปลอดภัย, เอกสารที่นี่และที่นี่


2
+1 สำหรับชุดคุณลักษณะโหมดความปลอดภัยของ ATA มีวิดีโอที่ดีเกี่ยวกับเรื่องนี้ใน SecurityTube.net
RJFalconer

2
แต่คุณสมบัตินั้นมีไว้สำหรับไดรฟ์ที่สมบูรณ์ด้วยเท่านั้นใช่ไหม
c089

@ Chris089: ถูกต้อง: การลบที่ปลอดภัยจะลบไดรฟ์ทั้งหมด การเขียนทับไดรฟ์ทั้งหมดด้วยข้อมูลแบบสุ่มไม่สามารถรับประกันได้ว่าจะลบไดรฟ์ทั้งหมดเนื่องจากการจัดสรรน้อยเกินไป (แต่อาจทำให้ข้อมูลที่ไม่ได้บันทึกบางส่วนไม่สามารถเข้าถึงได้สำหรับผู้ใช้ทั่วไปอย่างน้อย) ดูที่anandtech.com/storage/showdoc.aspx?i=3531&p=9สำหรับข้อมูลเพิ่มเติม
bk1e

ระวังว่าไดรฟ์ (รุ่นเก่า) นั้นพบว่าไม่ได้ใช้คุณสมบัตินี้เท่าที่ควร มันควรจะทำงานได้กับ HDD ด้วย แต่สำหรับ SSD มันมีข้อได้เปรียบที่จริง ๆ แล้วมันอาจเสร็จในไม่กี่วินาทีแทนที่จะเป็นชั่วโมง
Maarten Bodewes

ปัญหาที่น่าผิดหวังของ Secure Erase คือไดรฟ์จำนวนมากต้องการให้คุณใช้พลังงานรอบตัวพวกเขา (ถอดปลั๊กขั้วต่อสายไฟและเสียบกลับเข้าไปใหม่) เพื่อดึงพวกเขาออกจากสถานะ "ความปลอดภัยแช่แข็ง" Secure Erase เท่านั้นจะทำงานได้ ไม่ใช่เรื่องง่ายหรือน่าพึงพอใจที่ต้องเปิดพีซีของคุณโดยเฉพาะเมื่อเป็นแล็ปท็อปหรือระบบฝังตัวที่แย่ลง
misha256

10

แม้ว่าคุณจะเขียนทับไดรฟ์ทั้งหมดคุณไม่สามารถบางอย่างเนื่องจากทั้งสอง HDs และ SSDs ประกอบด้วยภาคอะไหล่ที่มีการทดแทนเมื่อเกิดความล้มเหลวหรือในกรณีของ SSDs เพื่อช่วยเหลือleveling สวม

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


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

โปรดทราบว่านี่เป็นคำตอบเก่า ถึงตอนนี้การลบที่ปลอดภัยควรได้รับการสนับสนุนโดยส่วนใหญ่หากไม่ใช่ไดรฟ์ทั้งหมดรวมถึงฮาร์ดดิสก์ส่วนใหญ่
Maarten Bodewes

1
ลบอย่างปลอดภัยเช็ด SSD ทั้งหมด แต่อย่าแยกชุดไฟล์หรือพาร์ติชั่น
Mikhail Moskalev

9

เนื่องจากลักษณะของหน่วยความจำแฟลช NAND SSD จึงไม่สามารถเขียนทับข้อมูลได้โดยตรง เขียนทับไฟล์ซ้ำหลายครั้งก่อนที่จะลบมันจะไม่ลบอย่างปลอดภัยบน SSD ข้อมูลจะถูกเขียนที่อื่นบน NAND

เพื่อให้เข้าใจว่าเหตุใดจึงเป็นเช่นนี้จำเป็นต้องอธิบายวิธีการทำงานของ SSD ภายใน

  • แฟลช NAND ถูกแบ่งออกเป็นบล็อกแต่ละชุดประกอบด้วยชุดของหน้าโดยทั่วไปขนาด 4 KB (รวมถึงรหัสแก้ไขข้อผิดพลาด) SSD ที่ทันสมัยส่วนใหญ่ใช้ NAND ที่มีบล็อกขนาด 128 หน้าสำหรับบล็อกขนาด 512 KB ถึงแม้ว่าบางไดรฟ์โดยเฉพาะอย่างยิ่งรุ่นเก่าอาจใช้ 256 KB หรือบล็อกขนาดเล็กกว่า ไดอะแกรมต่อไปนี้ถือว่าบล็อกขนาด 256 KB แต่แนวคิดจะเหมือนกันโดยไม่คำนึงถึงขนาดบล็อก

แผนผังของหน้าในบล็อก NAND
แหล่งที่มา - ตัวเรียงลำดับเพลงมารยาทที่ Wikipedia, CC BY-SA 3.0

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

  • เพื่อให้ SSD รู้ว่าสามารถลบบล็อกใดได้บ้างระบบปฏิบัติการต้องบอกว่าบล็อกใดไม่มีข้อมูลที่ถูกต้องอีกต่อไป นี้จะกระทำโดยใช้ATA TRIMคำสั่ง SSD นั้นมีอิสระในการรวบรวมขยะที่ไม่ได้ใช้บล็อกเหล่านั้น

SSD พยายามกระจายการเขียนอย่างสม่ำเสมอบน NAND เพื่อหลีกเลี่ยงความล้มเหลวก่อนวัยอันควรกระบวนการที่ใช้พื้นที่ว่างในไดรฟ์

  • แต่ละบล็อก NAND สามารถรักษารอบการเขียน / ลบจำนวน จำกัด เท่านั้น SSD ระดับผู้บริโภคในปัจจุบันหลายแห่งใช้ 19-21nm NAND ที่แต่ละบล็อกนั้นดีประมาณ 3,000 รอบก่อนที่จะใช้งานไม่ได้แม้ว่า SSD ระดับองค์กรและ SSD ระดับสูงสำหรับผู้บริโภคที่ใช้ NAND ประเภทที่ทนทานกว่านั้นมีจำหน่ายทั่วไป

  • ในทุกกรณี แต่ SSDs ต้องกระจายการเขียนออกไปทั้งไดรฟ์ที่จะหลีกเลี่ยงการวางสวมใส่ไม่เหมาะกับบล็อกเดียวใด ๆ ในการสั่งซื้อเพื่อหลีกเลี่ยงความล้มเหลวของไดรฟ์ผ่านกระบวนการที่เรียกว่าleveling สวม การปรับระดับการสึกหรออย่างมีประสิทธิภาพสามารถทำได้ก็ต่อเมื่อมีพื้นที่จำนวนหนึ่ง ( การจัดสรรพื้นที่มากเกินไป ) ซึ่งสงวนไว้เพื่อให้สามารถเก็บรวบรวมขยะได้อย่างมีประสิทธิภาพตามความจำเป็นแม้ว่าไดร์ฟจะเต็มเกือบ

  • ภายใต้สภาวะที่รุนแรงซึ่ง SSD ถูกขอให้เขียนข้อมูลเร็วกว่าสามารถลบบล็อกเก่า (โดยทั่วไปในเวิร์กโหลดศูนย์ข้อมูลแบบหนัก) อาจถูกบังคับให้เขียนข้อมูลในบล็อกหนึ่งไปยังบล็อกอื่นแล้วลบบล็อกเก่าทันที เพื่อหาวิธีสร้างข้อมูลใหม่ก่อนที่จะมีโอกาสดำเนินการรวบรวมขยะ

  • การบังคับให้เขียนบล็อกใหม่นั้นมีค่าน้อยกว่าอุดมคติเนื่องจากจะลดประสิทธิภาพการทำงานและมีส่วนช่วยในการเขียนแอมพลิฟายเออร์ที่ซึ่งข้อมูลเพิ่มเติมถูกเขียนไปยัง NAND ต้นแบบมากกว่าจำนวนจริงที่ไดรฟ์แนะนำให้เขียน เพิ่มการจัดสรรพื้นที่ส่วนเกินมากเกินไปจะช่วยลดการขยายการเขียนโดยให้พื้นที่ว่างมากขึ้นเพื่อเขียนข้อมูลใหม่และลบบล็อกเก่า นี่คือเหตุผลว่าทำไม SSD ระดับสูงขององค์กรเช่น Samsung SSD 845DC PRO มีขนาด 200 GB และ 400 GB ถึงแม้ว่าไดรฟ์นั้นจะมี NAND ใกล้เคียง 256 หรือ 512 GB ตามลำดับ ดูเพิ่มเติม: ทำไม SSD ถึงมีขนาดแปลก ๆ

  • ชุดกระดาษสีขาว SSD ของ Samsungให้คำอธิบายอย่างละเอียดเกี่ยวกับการทำงานภายในของ SSD การเขียนและลบหน้า NAND และบล็อกและเก็บขยะมีการอธิบายในกระดาษสีขาว 04

วิธีเดียวที่จะลบข้อมูลบน SSD อย่างแท้จริงคือการใช้คำสั่ง ATA Secure Erase

  • การลบที่ปลอดภัยสั่งให้ไดรฟ์ลบข้อมูลที่เก็บไว้ทั้งหมดรวมถึงข้อมูลที่อาจยังคงอยู่ในภูมิภาค NAND ที่มีการจัดสรรมากเกินไป บล็อกทั้งหมดจะถูกลบเมื่อทำสิ่งนี้เสร็จแล้วส่งผลให้ไดรฟ์ที่เก่าแก่

  • ในไดรฟ์ที่มีความสามารถในการเข้ารหัสด้วยตนเองสามารถลบการรักษาความปลอดภัยได้อย่างง่ายดายโดยการเช็ดคีย์การเข้ารหัส เนื่องจากข้อมูลใน NAND ของไดรฟ์ที่เข้ารหัสไม่สามารถอ่านได้โดยไม่ต้องใช้คีย์จึงไม่จำเป็นต้องลบบล็อกทั้งหมดตามที่จำเป็นในไดรฟ์ที่ไม่เข้ารหัส


ระวังว่าไดรฟ์บางตัวนั้นไม่ได้ใช้คำสั่งลบอย่างปลอดภัย หากคุณยังต้องการใช้ไดรฟ์นั่นอาจเป็นวิธีที่ดีที่สุดที่คุณสามารถทำได้หากคุณไม่มีความสุขุมในการเข้ารหัสตั้งแต่เริ่มต้น หากคุณต้องการกำจัดไดรฟ์คุณควรทำลายมันโดยเฉพาะชิปแฟลช
Bob

หากจำเป็นต้องทำลายทางกายภาพฉันจะเปิดไดรฟ์และทำลาย PCB พื้นฐาน
bwDraco

@Bob คุณมีลิงค์ไปยังแหล่งที่มาเกี่ยวกับการใช้งานที่ไม่ถูกต้องหรือไม่? secure_eraseคำสั่งเป็นส่วนหนึ่งของมาตรฐาน ATA อาจไม่มีอยู่ในไดรฟ์ราคาถูกบางตัว แต่ถ้ามีก็ควรทำงานอย่างถูกต้อง เหตุผลที่ใช้งานได้ดีกว่าตัวเลือกอื่นคือมันคืนค่าไดรฟ์ให้เป็นค่าดั้งเดิมจากโรงงาน แม้บน HDD จะเร็วกว่าและมีประสิทธิภาพมากกว่าเครื่องมืออย่าง DBAN
พอล

@ Paul security.stackexchange.com/questions/41676/... , usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdf , security.stackexchange.com/questions/62253/...มีการรับประกันเป็นศูนย์อย่างแน่นอนโดยพลการเป็น เฟิร์มแวร์ของไดรฟ์ดำเนินการตามคำสั่งอย่างถูกต้อง (ข้อผิดพลาดสามารถเกิดขึ้นได้ทุกที่) - การทดสอบได้พิสูจน์แล้วว่าอย่างน้อยไดรฟ์บางตัวก็ไม่สามารถทำได้อย่างแน่นอน ในตอนท้ายของวันปัญหาที่ใหญ่ที่สุดคือคุณไม่สามารถยืนยันการลบได้อย่างถูกต้อง
Bob

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

6

ตามที่ระบุไว้โดย @teabot โดยใช้ซอฟต์แวร์เข้ารหัสดิสก์เต็มรูปแบบจะหลีกเลี่ยงปัญหาการลบที่ปลอดภัยเนื่องจากคุณไม่ต้องทำอะไรอีก อย่างไรก็ตามตามที่ระบุไว้ในคำถามที่เกี่ยวข้องสิ่งนี้จะมีผลกระทบอย่างมากต่อประสิทธิภาพเนื่องจากสิ่งนี้จะช่วยป้องกันคุณสมบัติต่างๆของคอนโทรลเลอร์เช่นการบีบอัดและ TRIM และได้รับการรายงานเพื่อลดประสิทธิภาพลงจนถึงระดับที่ฮาร์ดดิสก์ปกติเร็วกว่า SSD สำหรับอุปกรณ์ที่ใช้ SandForce มีวิธีแก้ปัญหาที่ดีกว่า: อุปกรณ์เหล่านั้นทำการเข้ารหัส AES ตามค่าเริ่มต้นและคีย์จะถูกลบทิ้งเมื่อคุณใช้คุณลักษณะการลบ ATA ที่ปลอดภัยทำให้ข้อมูลทั้งหมดไม่สามารถเข้าถึงได้เว้นแต่ผู้โจมตีสามารถทำลาย AES (128 บิตสำหรับปัจจุบัน 256 บิต สำหรับไดรฟ์ใหม่ที่วางจำหน่ายในเดือนมีนาคม 2011)


1
อย่างไรก็ตามดูเหมือนว่าจะไม่มีวิธีแก้ปัญหาสำหรับการลบไฟล์เพียงไม่กี่ไฟล์อย่างปลอดภัย คุณต้องลบดิสก์ทั้งหมด
c089

3

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

นี่จะใช้เวลาค่อนข้างนานและจะลดอายุการใช้งานของชิปแฟลชหากคุณใช้เครื่องฉีกแบบหลายช่อง

อีกวิธีหนึ่งในการป้องกันข้อมูลที่ถูกลบคือการจัดเก็บข้อมูลที่เข้ารหัสในสถานที่แรกโดยใช้ระบบไฟล์ที่เข้ารหัสโดยใช้สิ่งที่ต้องการ truecrypt

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.