SSD 드라이브를 안전하게 지우는 방법은 무엇입니까?


36

저는 SSD 기술을 처음 접했기 때문에 드라이브를 안전하게 지울 때 하드 드라이브와 어떻게 비교되는지 모릅니다. 디스크 유틸리티를 실행하고 "0으로 덮어 쓰기"옵션으로 드라이브를 지우는 것으로 충분합니까, 아니면 하드 드라이브 용입니까? 취해야 할 다른 조치가 있습니까?

나는 NSA 등급 보안을 찾고 있지 않지만 Mac을 반환하거나 판매 할 때 할 수있는 일종의 닦음입니다.


데이터를 지워야합니까, 아니면 데이터가 지워 졌다는 다른 사람들을 설득해야합니까? 데이터가 사라 졌다는 것을 확신해야하는 경우 ATA 명령 Secure Erase를 시도해야합니다. 다른 사람을 설득해야 할 경우 디스크 파쇄 서비스를 사용해야 할 수도 있습니다.
— DanBeale

답변:


45

편집증 수준에 따라 다릅니다. SSD가 데이터 쓰기를 처리하는 방식 때문에 SSD에서 1 회 1 회를 수행하는 것이 하드 드라이브에서 수행하는 것만 큼 좋지 않습니다.

HD에 특정 데이터 페이지를 쓰면 기존 데이터 위에 새 데이터가 쓰여져 대체됩니다. 전체 디스크에 0을 쓰면 모든 이전 데이터가 사라집니다. 반면 SSD는 단순히 개별 페이지를 덮어 쓸 수 없습니다. 페이지의 데이터를 바꾸려면 이전 데이터를 먼저 지워야하며 SSD는 개별 페이지를 지울 수 없습니다. 많은 페이지로 구성된 전체 블록을 지워야합니다.

따라서 SSD에 덮어 쓰기, 예를 들어 5 페이지를 요청하면 SSD가 5 페이지의 데이터 만 남겨두고 유효하지 않은 것으로 표시하고 현재 빈 페이지 (예 : # 2305)를 할당한다는 것입니다. 새 데이터는 페이지 # 2305로 이동하고 다음에 OS에서 페이지 # 5를 요청할 때 # 2305를 가져와야합니다. 원래 페이지 # 5 데이터는 나중에 드라이브에 더 많은 공간이 필요할 때까지 남아있는 유효한 페이지를 블록에서 멀어 지거나 지 웁니다. SSD는 컴퓨터에 노출되는 것보다 더 많은 물리적 메모리 용량을 가지고 있기 때문에 실제로 무언가를 지워야하기 전에 이와 같은 블록을 잠시 동안 저글링 할 수 있습니다 (실제로 무언가를 지울 때 남은 데이터 블록을 예측할 수있는 좋은 방법은 없습니다 삭제를 위해 선택). 이 AnandTech 리뷰를 참조하십시오 자세한 내용은 (경고 : 상당히 길며 관련 내용이 퍼져 있습니다).

결과 : "전체"드라이브에 0을 쓰면 실제로 모든 이전 데이터를 덮어 쓰지 않은 것입니다. 당신은 한 가 (해당 페이지는 모두 무효)를 OS에 이전 데이터 중 하나를 반환하지 않을거야 그래서 컨트롤러의 변환 테이블을 업데이트. 그러나 누군가가 컨트롤러를 우회 할만큼 충분한 하드 코어 인 경우 일부 데이터를 다시 가져올 수 있습니다.

덮어 쓰기가 두 번 가능할 수도 있지만 컨트롤러의 할당 전략에 따라 다릅니다. 임의의 데이터 ( diskutil randomDisk 2 /dev/diskN)로 두 번 덮어 쓰면 약간 더 효과가 있지만 여전히 보장되지는 않습니다. 이 두 가지 모두 부작용이 있습니다. 드라이브 수명의 일부를 사용하고 SSD의 논리적 조각화를 증가시켜 쓰기 성능을 저하시킵니다.

최신 버전의 OS X 그래픽 디스크 유틸리티는 위에서 설명한 이유로 SSD의 보안 삭제 옵션을 비활성화하지만 명령 줄 버전에서는 여전히 허용합니다. BTW, SSD를 암호화 된 형식으로 변환하여 SSD를 안전하게 지우는 몇 가지 권장 사항을 보았지만 무작위 데이터로 덮어 쓰는 것보다 약간 덜 안전합니다.

SSD를 안전하게 지우는 가장 좋은 방법은 컨트롤러의 내장 된 안전한 지우기 기능을 호출하는 것입니다. 이것은 (컨트롤러 디자이너가 작업을 수행 한 경우) 모든 블록을 실제로 지우고 논리적 페이지 맵을 재설정하여 본질적으로 조각 모음을 수행하고 원래 성능을 복원하는 부작용을 가져야합니다. 불행히도,이 작업을 위해 본 대부분의 유틸리티 (예 : CMRR의 HDDErase )는 DOS에서 실행되며 Mac에서는 부팅되지 않습니다. GParted 부팅 CD에서 보안 지우기를 수행하는 방법에 대한 복잡한 지침이있는 마크 룸에 대한 게시물을 찾았습니다 . 부팅 가능한 플래시 드라이브 에서 Parted Magic 을 사용할 수도 있지만 시도하지 않았습니다.

UCSD의 비 휘발성 시스템 연구소 (Non-Volatile Systems Lab)의 연구원들은 드라이브를 "지우고"컨트롤러를 우회하기 위해 드라이브를 분해하고 잔여 데이터 ( 요약 , 전체 문서 )를 확인하여 SSD를 살균하는 다양한 방법을 테스트했습니다 . 그들의 결과는 대부분 위에서 말한 내용과 일치합니다 (또한 내장 보안 지우기 명령이 항상 올바르게 구현되지는 않음을 보여줍니다).

우리의 결과는 다음과 같은 세 가지 결론으로 ​​이어집니다. 첫째, 내장 명령은 효과적이지만 제조업체는 때때로 잘못 구현합니다. 둘째, SSD의 전체 가시 주소 공간을 두 번 덮어 쓰는 것이 일반적으로 드라이브를 위생 처리하는 데 충분하지만 항상 그런 것은 아닙니다. 셋째, 개별 파일 삭제를위한 기존 하드 드라이브 지향 기술 중 어느 것도 SSD에 효과적이지 않습니다.


1
광범위한 답변에 감사드립니다. 제안한대로 터미널 명령을 실행하는 것은 문제가되지 않습니다. 그러나 나중에 참조 할 수 있도록 터미널에 익숙하지 않은 일반 사용자는 무엇을 할 수 있습니까? 디스크 유틸리티의 7 단계 옵션 만 사용 하시겠습니까?
— Rinzwind 2012 년

4
이 시점에서 옵션을 실제로 "추천"할 수 있는지 모르겠습니다. 덮어 쓰기 옵션은 드라이브의 수명 쓰기 제한을 모두 사용하며 조각화를 증가시키고 성능을 저하시키는 경향이 있습니다. 가장 좋은 방법은 Apple이 디스크 유틸리티의 옵션으로 ATA 보안 지우기 (예 : 컨트롤러 기반 옵션)를 추가하는 것입니다.
— Gordon Davisson

2
@ 고든-그것은 유익하고 유익한 답변이었습니다! +1
— Dolan Antenucci

안녕하세요 @ GordonDavisson. 이 답변을 작성한 후 변경된 사항이 있는지 궁금합니다. 이후 몇 가지 OS 업데이트가있었습니다.
— samthebrand

@ SamtheBrand : 많이 변경되지 않았습니다. 디스크 유틸리티 (GUI 버전)가 SSD에서 보안 지우기를 허용하지 않으며 (실제로 작동하지 않기 때문에) HDDErase에 대한 링크를 수정했으며, Parted Magic이 작동하지 않을 수도 있다는 메모를 추가했습니다 (시도하지는 않았지만) ).
— Gordon Davisson

8

터미널을 열고 다음 명령을 입력하십시오.

df -k

되돌릴 수없는 SSD 파티션에 해당하는 첫 번째 열에 유의하십시오. 그것이 있다고 가정 해 봅시다 /dev/disk1s2.

다음 명령을 입력하십시오.

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

/dev/rdisk1s2SSD의 파티션과 관련된 원시 장치는 어디에 있습니까 ? 이 명령은 첫 번째 블록부터 마지막 ​​블록까지이 파티션을 완전히 씁니다. 이 명령은 진행률이 스크롤 막대없이 오래 지속됩니다 (100GB의 경우 ~ 1 / 2 시간).

이 명령으로 쉘 프롬프트가 표시되면 디스크가 완전히 복구 불가능하게 삭제 된 것입니다. Disk Utility이 파티션을 시작 하고 확인하십시오. 그것은 어떤 형태의 수리를 넘어서도 손상되었다고 말할 것입니다. 그리고 맞습니다.

이 파티션을 원하는대로 포맷하십시오.

물리 블록 수준에서 일어나는 일은 다음과 같습니다.SSD를 지우는 dd & DU의 영화


1
이는 디스크 유틸리티의 옵션을 0으로 덮어 쓰는 것과 동일하며 같은 이유로 SSD에서 완전히 안전하지 않습니다. 자세한 설명은 내 답변을 참조하십시오.
— Gordon Davisson

→ Gordon : 나는 당신의 대답을 읽었으며, 그것을 이해했다고 생각합니다. 내 대답은 원시 디스크 장치를 사용하는 것이지 블록 장치가 아닌 디스크 유틸리티를 사용합니다. 이것은 SSD (신뢰할 수있는 도구 포함)에서 확인해야하지만 캐시를 사용하는 오래된 표준 HD에서 아는 한 원시 디스크 인터페이스는이 캐시를 피하는 쉬운 방법이었습니다. SSD 장치는 단순히 캐시가 전체 용량이고 실제 디스크가 제거되는 HD 디스크입니다.
— dan

원시 장치 (/ dev / rdisk *)를 사용하면 OS 캐시가 무시되지만 플래시 변환 계층 (내가 설명한 문제의 원인)은 무시하지 않습니다. 실제로 OS에서 우회 할 수있는 방법이 없습니다. 장치 컨트롤러는 단순히 실제 원시 플래시 저장소를 버스 (SATA 또는 기타)에 노출시키지 않으며 OS는 버스를 통해 드라이브와 만 상호 작용할 수 있기 때문에 없습니다. 안전한 덮어 쓰기를 수행 할 수있는 충분한 액세스 권한을 얻는 방법입니다.
— Gordon Davisson

첫 번째 속도 dd는 일부 캐시 수준을 우회하는 것뿐만 아니라 (용량을 알 수있는 방법이 없습니다) 부분적으로 소진하는 것입니다 (그림 3 상태). 두 번째 패스는 실제로 새로운 블록을 찾아 안전하게 지워야합니다.
— dan

두 가지 이유로 충분하지 않습니다. 먼저 디스크 유틸리티가 디스크를 포맷 할 때 약간의 디스크 (파티션 테이블, 볼륨 헤더 등) 만 덮어 쓰며 추가 용량을 소진 할만큼 충분한 보장은 없습니다. 둘째, 여분의 쓰기 DU가 이전에 삭제 한 것과 다른 물리적 블록에 영향을 줄 것이라는 보장은 없습니다. 컨트롤러의 할당 전략에 따라 동일한 물리적 블록을 계속 지우는 것이 가능합니다. 그렇기 때문에 모든 공간을 두 번 덮어 쓰더라도 충분하지 않을 수 있다고 말했습니다.
— Gordon Davisson

7

디스크 유틸리티의 "보안 옵션 ..."버튼은 현재 SSD에 대해 회색으로 표시됩니다. http://support.apple.com/kb/HT3680 에 따르면 일반적으로 SSD를 지우면 충분히 안전 할 수 있습니다.

참고 : OS X Lion 및 SSD 드라이브의 경우 디스크 유틸리티에서 Secure Erase 및 Erasing Free Space를 사용할 수 없습니다. 표준 지우기는 SSD에서 데이터를 복구하기 어렵 기 때문에 SSD 드라이브에는 이러한 옵션이 필요하지 않습니다. 보안을 강화하려면 SSD 드라이브 사용을 시작할 때 FileVault 2 암호화를 켜십시오.

diskutil secureErase freespace 4 disk0s2복구 파티션의 터미널 과 같은 것을 여전히 실행할 수 있습니다 .

드라이브를 지우기 전에 FileVault 2를 켜는 것이 더 나은 옵션 일 것입니다. 이 답변 에 따르면 FileVault 2가 활성화 된 경우 원격 지우기를 수행하면 암호화 키만 지워집니다.

그렇습니다. 컴퓨터를 원격으로 닦으면 안전하게 삭제됩니다. Apple은 하루가 오래 걸릴 수 있다고 경고합니다. 그러나 드라이브가 FileVault 2로 암호화 된 경우 디스크를 지울 필요가 없습니다. 디스크에 저장된 암호화 키를 안전하게 지우면 충분합니다. 기본 암호화 시스템만큼 빠르고 안전하며 지금은 매우 안전합니다.

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

FileVault 2는 IT 부서에 언제든지 지정된 Mac에서 암호화 키를 지우는 기능을 제공하여 사용자 로그인 또는 데이터 복구 도구로 암호화 된 데이터에 액세스 할 수 없도록합니다. 이 과정을 원격 와이프라고합니다.


5
민감한 데이터 를 저장 하기 전에 암호화 (예 : FileVault) 를 설정 하는 것은 훌륭한 옵션이지만 표준 보안 지우기가 그렇지 않은 것과 같은 이유로 암호화 키를 "삭제"하는 데 사용 된 프로세스가 완전히 안전하지 않을 수 있습니다. -이전 암호화 키는 여전히 매핑 된 페이지에 플래시에 저장됩니다. 따라서 컨트롤러를 우회 할 수있는 사람은 여전히 ​​"삭제 된"키를 얻을 수 있습니다.
— Gordon Davisson

@ GordonDavisson 그러나 드라이브를 포맷 할 때 암호화를 다시 활성화하면 이전 암호화 키를 덮어 써야하므로 이전 데이터에 안전하게 액세스 할 수 없습니까?
— 초대형

오래된 암호화 키 @supersize 수도 덮어 수 있지만, 물리적 페이지가 다시 포맷하는 동안 지워 취득을 정확하게에 따라 다르며의 뭔가 그 드라이브 펌웨어 제어가 아닌 운영 체제입니다.
— Gordon Davisson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.