วิธีการล้างไฟล์จากไดรฟ์ SSD อย่างปลอดภัย


14

เมื่อพยายามล้าง SSD อย่างปลอดภัยเรามีปัญหาหลายประการ:

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

ตอนนี้มีตัวเลือกอะไรบ้างจากใน Ubuntu เพื่อล้าง SSD อย่างปลอดภัย

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

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

แน่นอนว่าเครื่องมือมาตรฐานเช่นshredหรือwipeไม่สามารถใช้งานได้ที่นี่สำหรับจุดที่อธิบายไว้ข้างต้น พวกเขาเพียงแค่เขียนทับไฟล์ aa (โดยการเขียนทับกลุ่มของระบบไฟล์ซึ่งถูกผูกไว้กับ LBAs ซึ่งไม่ได้ชี้ไปที่เซลล์แฟลชเดียวกันตลอดเวลาเนื่องจากคอนโทรลเลอร์ควบคุมการสึกหรอ)


อาจมีข้อมูลที่น่าสนใจบางอย่างที่นี่wiki.archlinux.org/index.php/SSD_memory_cell_clearing
ผู้บัญชาการ Byte

ฉันรู้งานวิชาการเกี่ยวกับสิ่งนี้ที่ทำให้มันเป็นเคอร์เนลให้ดูlwn.net/Articles/480269
noleti

คำตอบ:


9

ขณะนี้ยังไม่มีวิธีการลบไฟล์บน SSD อย่างปลอดภัยโดยไม่ต้องลบเนื้อหาของไดรฟ์ทั้งหมดหรือเข้าถึงเฟิร์มแวร์ของ SSD

  • เป็นไปไม่ได้ที่จะรู้ว่า SSD อาจเก็บสำเนาบล็อกแบบลอจิคัลก่อนหน้าไว้ที่ไหน

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

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

ภาคผนวก:

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

วิธีนี้ปลอดภัยสำหรับทุกคนที่ไม่สามารถเข้าถึงเซลล์แฟลชได้โดยตรงดังนั้นทุกคนที่

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

คุณช่วยรวมประเด็นสำคัญและสรุปคำแนะนำจากลิงก์นั้นไว้ในคำตอบของคุณได้ไหม?
ผู้บัญชาการ Byte

ฉันเชื่อมโยงกับคำถาม AU ที่เทียบเท่า ฉันหวังว่าจะดีกว่า
David Foerster

การลบพื้นที่ว่างอย่างปลอดภัยในการบูตจะปลอดภัยหรือไม่
user4493605

1
@ user4493605: คุณหมายถึง“ ทำงานได้”? เป็นไปได้อย่างแน่นอน คุณช่วยเปิดคำถามใหม่ได้ไหมถ้าคุณมีคำถามใหม่หรือคำถามที่ตามมา? ส่วนความคิดเห็นไม่เหมาะสมหรือมีความหมายสำหรับคำถามใหม่หรือการอภิปรายเพิ่มเติม คุณสามารถส่งความคิดเห็นพร้อมแจ้งเตือนเพื่อดึงความสนใจของฉันไปที่ฉัน ขอบคุณ
David Foerster

3

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

วิธีที่ง่ายที่สุดในการพิจารณาว่าไดรฟ์ของคุณรองรับการลบอย่างปลอดภัยหรือไม่: ฉันเคยใช้/ dev / sdXในตัวอย่างด้านล่าง คุณจะต้องเปลี่ยนอย่างระมัดระวังเพื่อให้ตรงกับอุปกรณ์ที่คุณใช้งาน:

แหล่งที่มา:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase

/superuser/1161531/how-to-un-freeze-drive-in-linux

$ sudo hdparm -I /dev/sdX | grep -i erase

ใน SSD ของฉันผลลัพธ์นี้เป็น:

supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

หากอุปกรณ์ของคุณรองรับการลบที่ปลอดภัยการเรียกใช้งานนั้นเป็นกระบวนการ 2 หรือ 3 ขั้นตอน

  1. หากอุปกรณ์รายงานว่าอุปกรณ์ถูกตรึงตามที่แสดงโดยเอาต์พุตจากsudo hdparm -I /dev/sdXสิ่งนี้:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

ยกเลิกการตรึงโดยการหยุดและกลับสู่ระบบของคุณ ฉันทำสิ่งนี้ด้วยคำสั่งsudo systemctl suspend ย้ายตัวชี้จนกระทั่งระบบกลับมาทำงานต่อ

  1. คุณต้องตั้งรหัสผ่านเพื่อใช้การลบที่ปลอดภัยในกรณีนี้ฉันใช้foobarเป็นรหัสผ่านคุณสามารถใช้รหัสผ่านที่ไม่ว่างเปล่าได้ตามต้องการชั่วคราว

    sudo hdparm --user-master u --security-set-pass foobar /dev/sdX

  2. ด้วยชุดรหัสผ่านคุณสามารถใช้เพื่อลบไดรฟ์ได้อย่างปลอดภัย:

sudo hdparm --user-master u --security-erase foobar /dev/sdX

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

sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX

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