Làm cách nào để xóa an toàn các tệp khỏi ổ SSD?


14

Khi cố gắng xóa sạch SSD một cách an toàn, chúng tôi gặp một số vấn đề:

  • SSD bị hao mòn sau một số chu kỳ xóa giới hạn
  • SSD có bộ điều khiển ánh xạ động các LBA (địa chỉ khối logic được hệ thống sử dụng để truy cập vào đĩa) đến các tế bào NVRAM (các tế bào bộ nhớ flash thực tế) để cân bằng sự hao mòn, có nghĩa là yêu cầu đĩa ghi đè lên các khối được lưu trữ trước đó tập tin có thể dẫn đến ghi đè bất kỳ khối dự phòng khác.
  • SSD có một tỷ lệ đáng chú ý về dung lượng dự trữ được sử dụng để bù cho các tế bào lưu trữ bị chết và giảm hao mòn. Chúng không hiển thị với hệ thống và có thể chứa các đoạn dữ liệu cũ.

Bây giờ chúng ta có những lựa chọn nào từ bên trong Ubuntu để xóa sạch SSD một cách an toàn?

Tôi đã nghe nói rằng một số ổ SSD mới hơn có thể tự xóa sạch một cách an toàn, nhưng làm cách nào để biết liệu ổ SSD của tôi có khả năng này hay không và tôi sẽ kích hoạt nó như thế nào?
Cũng cần có một lệnh xóa an toàn ATA, làm thế nào để tôi biết nếu nó được hỗ trợ và làm thế nào để tôi kích hoạt nó?

Có những cách để xóa an toàn chỉ một tệp nhất định hoặc chỉ không gian không sử dụng?
Tôi đoán việc tạo một bản sao lưu của tất cả các phân vùng, xóa sạch toàn bộ đĩa và sau đó khôi phục lại bản sao lưu là có thể nhưng nghe có vẻ quá phức tạp và sẽ mất quá nhiều thời gian để thực tế. Có những lựa chọn thay thế khác? Nếu không, tôi có thể sử dụng công cụ nào để sao lưu phân vùng mà không sao lưu các tệp đã bị xóa?

Tất nhiên các công cụ tiêu chuẩn như shredhoặc wipekhông thể sử dụng ở đây cho các điểm được mô tả ở trên. Họ chỉ đơn giản ghi đè lên tệp aa (bằng cách ghi đè các cụm hệ thống tệp của nó bị ràng buộc với các LBA không liên tục trỏ vào cùng các ô flash do bộ điều khiển cân bằng hao mòn).


Có thể có một số thông tin thú vị ở đây wiki.archlinux.org/index.php/SSD_memory_cell_clear
Chỉ huy Byte

Tôi biết về công việc học tập về điều này đã biến nó thành kernel, xem lwn.net/Articles/480269
noleti

Câu trả lời:


9

Hiện tại không có cách nào để xóa an toàn các tệp trên SSD mà không có xóa nội dung của toàn bộ ổ đĩa hoặc truy cập vào phần sụn của SSD.

  • Không thể biết nơi SSD có thể lưu trữ các bản sao trước đó của một khối logic.

  • Để làm cho vấn đề tồi tệ hơn, do các cơ chế ghi nhật ký và sao chép trên hệ thống tệp, có thể không thể biết khối logic nào có thể giữ một bản sao trước đó của một tệp cụ thể.

Cách duy nhất để ngăn chặn rò rỉ các tệp đã xóa cho người có quyền truy cập trực tiếp vào ổ đĩa là mã hóa chúng ngay từ đầu và giữ khóa mã hóa an toàn khỏi những con mắt tò mò.

Phụ lục:

Tôi đã thực hiện một số nghiên cứu và phát hiện ra rằng bạn có thể xóa tất cả các tệp đã bị xóa trước đó nếu bạn quản lý để tìm hiểu tất cả các lĩnh vực chưa sử dụng của một hệ thống tệp, thường được cung cấp bởi một số công cụ hệ thống tệp (ví dụ: cho gia đình ext * ), và sau đó loại bỏ chúng (ví dụ blkdiscard(8)như được nêu trong câu trả lời này cho câu hỏi được liên kết ), trả về các khối cho bộ sưu tập rác cho đến khi chúng được sử dụng lại và ghi đè trong quy trình.

Điều này an toàn đối với tất cả những người không thể truy cập trực tiếp vào các tế bào flash, vì vậy tất cả những người

  • không có thiết bị đọc tế bào flash phù hợp và
  • không thể nói về phần sụn ổ đĩa để tiết lộ nội dung của các khối chưa được gán (sẽ yêu cầu sửa đổi phần sụn có ý nghĩa trong hầu hết các trường hợp và các lệnh ATA tùy chỉnh do không có cách chuẩn hóa).

Bạn có vui lòng bao gồm các điểm chính và tóm tắt các hướng dẫn từ liên kết đó vào câu trả lời của bạn không?
Chỉ huy Byte

Tôi liên kết với một câu hỏi AU tương đương. Tôi hy vọng điều đó tốt hơn.
David Foerster

Xóa an toàn không gian trống khi khởi động có phải là một lựa chọn khả thi không?
user4493605

1
@ user4493605: Ý bạn là gì Điều đó chắc chắn là có thể. Bạn có thể vui lòng mở một câu hỏi mới nếu bạn có một câu hỏi mới hoặc theo dõi? Phần bình luận không phù hợp hoặc có nghĩa cho các câu hỏi mới hoặc thảo luận mở rộng. Bạn được chào đón để gửi cho tôi một bình luận với một thông báo để thu hút sự chú ý của tôi đến nó. Cảm ơn.
David Foerster

3

Cảnh báo: Trong trường hợp chưa rõ ràng, việc xóa ổ đĩa một cách an toàn sẽ loại bỏ tất cả dữ liệu trên ổ đĩa và khiến nó không thể khôi phục. Bạn nên sao lưu tất cả các thông tin quan trọng.

Cách dễ nhất để xác định xem ổ đĩa của bạn có hỗ trợ xóa an toàn hay không là hỏi nó: Tôi đã sử dụng / dev / sdX trong các ví dụ bên dưới. Bạn sẽ cần thay đổi cẩn thận để phù hợp với thiết bị bạn đang làm việc:

Nguồn:

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

Trên ổ SSD của tôi, kết quả này là:

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

Nếu thiết bị xóa an toàn được thiết bị của bạn hỗ trợ, kích hoạt nó là một quá trình 2 hoặc 3 bước.

  1. Nếu thiết bị báo cáo rằng thiết bị bị đóng băng như được chỉ ra bởi đầu ra sudo hdparm -I /dev/sdXtương tự như sau:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

Giải phóng nó bằng cách đình chỉ và tiếp tục hệ thống của bạn. Tôi đã làm điều này với lệnh sudo systemctl suspend di chuyển con trỏ cho đến khi hệ thống hoạt động trở lại.

  1. Bạn phải đặt mật khẩu để sử dụng xóa an toàn trong trường hợp này Tôi đang sử dụng foobar làm mật khẩu, bạn có thể sử dụng bất kỳ mật khẩu không trống nào bạn muốn vì nó tạm thời.

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

  2. Với mật khẩu được đặt, giờ đây bạn có thể sử dụng nó để xóa ổ đĩa một cách an toàn:

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

Nếu ổ đĩa của bạn hỗ trợ nó và bạn rất mong muốn, bạn có thể chọn sử dụng xóa bảo mật nâng cao thay vì:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.