Làm thế nào để xóa an toàn ổ SSD?


36

Tôi khá mới mẻ với công nghệ SSD, vì vậy tôi không biết nó so với ổ cứng như thế nào khi xóa ổ đĩa một cách an toàn. Liệu nó có đủ để chạy Disk Utility và xóa ổ đĩa với tùy chọn "ghi đè bằng số không" hay điều này được thiết kế cho ổ đĩa cứng? Có những hành động khác nên được thực hiện?

Mặc dù vậy, tôi không tìm kiếm bảo mật cấp NSA, chỉ là loại lau bạn sẽ làm nếu bạn quay lại hoặc bán máy Mac.


Bạn có cần xóa dữ liệu, hoặc bạn cần thuyết phục người khác rằng dữ liệu đã bị xóa? Nếu bạn chỉ cần thuyết phục bản thân rằng dữ liệu đã biến mất, bạn nên thử lệnh ATA Secure Erase. Nếu bạn cần thuyết phục người khác thì bạn có thể cần sử dụng dịch vụ băm đĩa.
DanBeale

Câu trả lời:


45

Nó phụ thuộc vào mức độ hoang tưởng của bạn. Do cách thức SSD xử lý việc ghi dữ liệu, thực hiện 0 lần một lần trên SSD không tốt bằng làm như vậy trên ổ cứng.

Khi bạn viết một trang dữ liệu cụ thể trên HD, dữ liệu mới chỉ được ghi trên dữ liệu cũ, thay thế nó. Viết số không trên toàn bộ đĩa và tất cả dữ liệu cũ sẽ biến mất. Mặt khác, SSD không thể ghi đè lên từng trang riêng lẻ. Để thay thế dữ liệu trên một trang, trước tiên phải xóa dữ liệu cũ và SSD không thể xóa từng trang riêng lẻ; họ phải xóa toàn bộ các khối bao gồm nhiều trang.

Vì vậy, điều gì xảy ra khi bạn yêu cầu SSD ghi đè lên, giả sử, trang 5, là SSD để dữ liệu ở trang 5, nhưng đánh dấu nó là không hợp lệ, phân bổ một trang hiện đang trống (giả sử # 2305), viết dữ liệu mới đến trang # 2305 và ghi chú rằng lần sau HĐH yêu cầu trang 5, nó sẽ nhận được # 2305 thay thế. Dữ liệu trang số 5 ban đầu nằm ở đó cho đến một thời gian sau, khi ổ đĩa cần thêm dung lượng, di chuyển mọi trang hợp lệ còn lại ra khỏi khối và xóa nó. SSD có dung lượng bộ nhớ vật lý nhiều hơn so với khi chúng tiếp xúc với máy tính, vì vậy chúng có thể xử lý các khối như thế này trong một thời gian trước khi thực sự phải xóa bất cứ thứ gì (và khi chúng thực sự xóa thứ gì đó, không có cách nào tốt để dự đoán khối dữ liệu còn sót lại nào được chọn để tẩy xóa). Xem đánh giá AnandTech này để biết thêm chi tiết (cảnh báo: nó khá dài và những thứ liên quan được lan truyền xung quanh).

Kết quả cuối cùng: nếu bạn ghi số không trên ổ đĩa "toàn bộ", bạn thực sự đã không ghi đè lên tất cả dữ liệu cũ. Bạn đã cập nhật bảng dịch của bộ điều khiển để nó sẽ không bao giờ trả lại bất kỳ dữ liệu cũ nào cho HĐH (các trang đó đều không hợp lệ). Nhưng nếu ai đó đủ cứng để bỏ qua bộ điều khiển, họ có thể lấy lại một số dữ liệu của bạn.

Ghi đè hai lần có thể sẽ hoạt động, nhưng nó phụ thuộc vào chiến lược phân bổ của bộ điều khiển. Ghi đè hai lần với dữ liệu ngẫu nhiên ( diskutil randomDisk 2 /dev/diskN) có khả năng hoạt động cao hơn một chút, nhưng vẫn không được bảo đảm. Cả hai điều này cũng có một số tác dụng phụ xấu: chúng sử dụng một phần tuổi thọ của ổ đĩa, và cũng làm tăng sự phân mảnh logic trên SSD, làm giảm hiệu suất ghi của nó.

Lưu ý rằng các phiên bản gần đây của Tiện ích đĩa đồ họa của OS X sẽ vô hiệu hóa các tùy chọn xóa an toàn trên SSD (vì các lý do đã thảo luận ở trên), nhưng phiên bản dòng lệnh vẫn cho phép chúng. BTW, tôi cũng đã thấy một số đề xuất để xóa SSD một cách an toàn bằng cách chuyển đổi chúng sang định dạng được mã hóa, nhưng đây là (nếu có gì) kém an toàn hơn một chút so với ghi đè bằng dữ liệu ngẫu nhiên.

Cách tốt nhất để xóa an toàn SSD là gọi tính năng xóa an toàn tích hợp của bộ điều khiển. Điều này sẽ (nếu các nhà thiết kế bộ điều khiển thực hiện công việc của họ) thực sự xóa tất cả các khối và cũng có tác dụng phụ là đặt lại bản đồ trang logic, về cơ bản chống phân mảnh và khôi phục hiệu suất ban đầu của nó. Thật không may, hầu hết các tiện ích tôi đã thấy để thực hiện việc này (ví dụ: HDDErase của CMRR ) chạy trong DOS, không khởi động được trên máy Mac. Tôi đã tìm thấy một bài đăng trên macrumors với các hướng dẫn (khá phức tạp) để thực hiện xóa an toàn từ đĩa CD khởi động GParted. Cũng có thể sử dụng Parted Magic từ ổ đĩa flash có thể khởi động , nhưng tôi chưa thử điều này.

Các nhà nghiên cứu tại Phòng thí nghiệm hệ thống không biến động tại UCSD đã thử nghiệm nhiều cách vệ sinh ổ SSD bằng cách "xóa" ổ đĩa, sau đó tháo rời nó để bỏ qua bộ điều khiển và kiểm tra dữ liệu còn sót lại ( tóm tắt , giấy đầy đủ ). Kết quả của họ hầu hết đồng ý với những gì tôi đã nói ở trên (và cũng cho thấy rằng lệnh xóa an toàn tích hợp không phải lúc nào cũng được thực hiện đúng cách):

Kết quả của chúng tôi dẫn đến ba kết luận: Thứ nhất, các lệnh tích hợp có hiệu quả, nhưng các nhà sản xuất đôi khi thực hiện chúng không chính xác. Thứ hai, ghi đè toàn bộ không gian địa chỉ có thể nhìn thấy của SSD hai lần thường, nhưng không phải lúc nào cũng đủ để vệ sinh ổ đĩa. Thứ ba, không có kỹ thuật định hướng ổ cứng nào hiện có để khử trùng tệp riêng lẻ có hiệu quả trên SSD.


1
Cảm ơn câu trả lời sâu rộng. Nó không phải là vấn đề đối với tôi để chạy lệnh Terminal như bạn đề xuất. Nhưng để tham khảo trong tương lai: những người dùng thường xuyên không thoải mái với Terminal có thể làm gì? Đơn giản chỉ cần sử dụng tùy chọn 7-pass của Disk Utility?
Rinzwind

4
Tôi không biết liệu tôi có thể thực sự "đề xuất" bất kỳ tùy chọn nào vào thời điểm này hay không - tất cả đều hơi tệ. Bất kỳ tùy chọn ghi đè nào cũng sẽ sử dụng hết giới hạn ghi trọn đời của ổ đĩa và có xu hướng tăng phân mảnh và giảm hiệu suất. Điều tốt nhất sẽ là Apple thêm ATA-safe-erase (tức là tùy chọn dựa trên bộ điều khiển) làm tùy chọn trong Disk Utility, nhưng ai biết khi nào / nếu điều đó sẽ xảy ra.
Gordon Davisson

2
@Gordon - Đó là một phản ứng tuyệt vời và nhiều thông tin! +1
Dolan Antenucci

Xin chào @GordonDavisson. Tò mò nếu có bất cứ điều gì thay đổi kể từ khi bạn viết câu trả lời này (đã có một vài cập nhật hệ điều hành kể từ đó).
samthebrand

@SamtheBrand: Không có nhiều thay đổi. Tôi đã thêm một lưu ý rằng Disk Utility (phiên bản GUI) hiện không cho phép xóa an toàn trên SSD (vì nó không thực sự hoạt động), đã sửa liên kết đến HDDErase và thêm một lưu ý rằng Parted Magic có thể hoạt động (mặc dù tôi đã không thử ).
Gordon Davisson

8

Mở terminal và gõ lệnh sau:

df -k

Lưu ý cột đầu tiên tương ứng với phân vùng của SSD mà bạn muốn xóa không thể đảo ngược. Hãy nói nó là /dev/disk1s2.

Gõ lệnh sau:

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

nơi /dev/rdisk1s2là thiết bị thô kết hợp với phân vùng của bạn trên SSD. Lệnh này sẽ hoàn toàn ghi phân vùng này từ khối thứ 1 có sẵn đến khối cuối cùng. Lệnh này sẽ tồn tại lâu (~ 1/2 h trong 100 Gbyte) mà không có thanh tiến trình cuộn đẹp.

Khi lệnh này trả về cho bạn dấu nhắc của trình bao của bạn, đĩa đã bị xóa hoàn toàn và không thể đảo ngược. Bắt đầu Disk Utilityvà kiểm tra phân vùng này. Nó sẽ cho bạn biết nó bị hư hỏng ngoài bất kỳ hình thức sửa chữa nào. Và nó đúng.

Chỉ cần định dạng phân vùng này như bạn muốn.

Đây là những gì đang xảy ra ở cấp độ khối vật lý:phim của dd & DU xóa SSD


1
Điều này tương đương với tùy chọn của Disk Utility để ghi đè bằng 0 và không được bảo mật hoàn toàn trên SSD vì lý do tương tự. Xem câu trả lời của tôi để được giải thích chi tiết.
Gordon Davisson

→ Gordon: Tôi đã đọc câu trả lời của bạn và tôi nghĩ rằng tôi đã hiểu nó và tôi đã nâng cao nó vì chất lượng của nó. Câu trả lời của tôi là sử dụng thiết bị đĩa thô chứ không phải khối một (như Disk Utility). Điều này phải được xác minh trên SSD (với các công cụ đáng tin cậy) nhưng theo như tôi biết trên HD tiêu chuẩn cũ bằng cách sử dụng bộ nhớ cache, giao diện đĩa thô là cách dễ dàng để tránh bộ đệm này. Một thiết bị SSD chỉ đơn giản là một đĩa HD trong đó bộ nhớ cache có dung lượng đầy đủ và đĩa vật lý được loại bỏ.
dan

Sử dụng thiết bị thô (/ dev / rdisk *) bỏ qua bộ đệm của hệ điều hành, nhưng không bỏ qua lớp dịch flash (là nguồn gốc của vấn đề tôi đã mô tả). Trên thực tế, không có cách nào để vượt qua nó khỏi HĐH - bộ điều khiển thiết bị đơn giản là không bao giờ để lộ kho flash thô thực sự cho xe buýt (SATA hoặc bất cứ thứ gì) và vì HĐH chỉ có thể tương tác với ổ trên xe buýt, nên không có cách để nó có được quyền truy cập đủ thô để ghi đè an toàn.
Gordon Davisson

Mục đích đầu tiên ddlà ở đây không chỉ để vượt qua một số mức bộ nhớ cache (chúng tôi không có cách nào để biết dung lượng của chúng), mà còn làm cạn kiệt chúng một phần (đây là trạng thái hình 3). Đèo thứ hai sẽ thực sự phải tìm các khối mới và xóa chúng một cách an toàn.
dan

Điều đó vẫn chưa đủ, vì hai lý do: thứ nhất, khi Disk Utility định dạng đĩa, nó chỉ ghi đè lên một chút của nó (bảng phân vùng, tiêu đề âm lượng, v.v.) và không có gì đảm bảo đủ để cạn kiệt dung lượng bổ sung. Thứ hai, không có gì đảm bảo rằng DU viết thêm sẽ đánh vào các khối vật lý khác với những gì dd đã xóa trước đó - tùy thuộc vào chiến lược phân bổ của bộ điều khiển, hoàn toàn có thể bạn chỉ cần xóa các khối vật lý giống nhau. Đó là lý do tại sao tôi nói rằng thậm chí ghi đè lên tất cả không gian hai lần có thể không đủ.
Gordon Davisson

7

Nút "Tùy chọn bảo mật ..." trong Disk Utility hiện được tô xám cho SSD. Theo http://support.apple.com/kb/HT3680 , việc xóa một ổ SSD thông thường có thể đủ an toàn:

Lưu ý: Với OS X Lion và ổ SSD, Xóa an toàn và xóa không gian trống không khả dụng trong Disk Utility. Các tùy chọn này không cần thiết cho ổ SSD vì việc xóa tiêu chuẩn gây khó khăn cho việc khôi phục dữ liệu từ SSD. Để bảo mật hơn, hãy cân nhắc bật mã hóa FileVault 2 khi bạn bắt đầu sử dụng ổ SSD.

Vẫn có thể chạy một cái gì đó như diskutil secureErase freespace 4 disk0s2từ Terminal trên phân vùng phục hồi.

Đơn giản chỉ cần bật FileVault 2 trước khi xóa ổ đĩa có lẽ là một lựa chọn tốt hơn. Theo câu trả lời này , thực hiện xóa từ xa cũng chỉ xóa khóa mã hóa nếu FileVault 2 được bật:

Có, khi bạn xóa máy tính từ xa, nó sẽ xóa an toàn. Apple thậm chí còn cảnh báo bạn rằng có thể mất tới một ngày. Tuy nhiên, nếu ổ đĩa của bạn đã được mã hóa bằng FileVault 2, thì không cần thiết phải xóa đĩa. Nó là đủ để xóa an toàn (các) khóa mã hóa được lưu trữ trên đĩa, vì vậy đó là những gì họ làm. Nó rất nhanh và an toàn như hệ thống mã hóa cơ bản, hiện tại nó rất an toàn.

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

FileVault 2 cung cấp cho các bộ phận CNTT khả năng xóa khóa mã hóa khỏi máy Mac cụ thể bất cứ lúc nào để đảm bảo rằng dữ liệu được mã hóa không thể được truy cập bằng công cụ đăng nhập hoặc khôi phục dữ liệu của người dùng. Quá trình này được gọi là một lau từ xa.


5
Bật mã hóa (ví dụ FileVault) trước khi lưu trữ dữ liệu nhạy cảm là một tùy chọn tuyệt vời, nhưng đối với tôi, quy trình được sử dụng để "xóa" khóa mã hóa có thể không được bảo mật hoàn toàn vì lý do tương tự như xóa an toàn tiêu chuẩn không - - khóa mã hóa cũ sẽ vẫn được lưu trong flash, chỉ trong một trang được ánh xạ. Vì vậy, ai đó có thể bỏ qua bộ điều khiển vẫn có thể lấy được phím "bị xóa" ...
Gordon Davisson

@GordonDavisson nhưng nếu sau đó bạn bật lại mã hóa khi định dạng ổ đĩa, khóa mã hóa cũ sẽ bị ghi đè do đó dữ liệu cũ không thể truy cập một cách an toàn?
thay thế

@supersize Khóa mã hóa cũ có thể bị ghi đè, nhưng nó phụ thuộc vào chính xác các trang vật lý bị xóa trong quá trình định dạng lại và đó là thứ mà phần sụn ổ đĩa điều khiển, không phải hệ điều hành.
Gordon Davisson
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.