web-development-kb-ko.site

SSD에 저장된 파일을 안전하게 삭제하는 방법은 무엇입니까?

(매우 길지만 읽을만한 가치가있는) SSD에 대한 기사 :

OS에서 파일을 삭제하면 하드 드라이브 나 SSD에서 반응이 없습니다. 섹터 (하드 드라이브) 또는 페이지 (SSD)를 덮어 쓸 때까지는 실제로 데이터가 손실되지 않습니다. 파일 복구 프로그램은이 속성을 유용하게 사용하며 삭제 된 파일을 복구하는 데 도움이됩니다.

그러나 HDD와 SSD의 주요 차이점은 파일을 덮어 쓸 때 발생합니다. HDD는 단순히 새 데이터를 동일한 섹터에 쓸 수 있지만 SSD는 덮어 쓴 데이터에 대해 새 (또는 이전에 사용 된) 페이지를 할당합니다. 현재 유효하지 않은 데이터가 포함 된 페이지는 유효하지 않은 것으로 표시되고 어느 시점에서 지워집니다.

그렇다면 SSD에 저장된 파일을 안전하게 지우는 가장 좋은 방법은 무엇일까요? 하드 디스크에서 사용하는 것처럼 임의의 데이터로 덮어 쓰기 (예 : "분쇄"유틸리티 사용)는 전체 드라이브를 덮어 쓰지 않는 한 작동하지 않습니다.

28
c089

전체 디스크 암호화 소프트웨어를 사용하는 @teabot이 언급했듯이 더 이상 필요하지 않기 때문에 보안 삭제 문제를 피할 수 있습니다. 그러나 관련 질문 에서 언급했듯이 이는 압축 및 TRIM과 같은 컨트롤러의 많은 기능을 방지하고 성능이 정상 수준까지 저하되는 것으로보고 되었기 때문에 성능에 큰 영향을 미칩니다. 하드 디스크는 비싼 SSD보다 빠릅니다. SandForce 기반 장치의 경우 더 나은 솔루션이 있습니다. 이러한 장치는 기본적으로 AES 암호화를 수행하고 ATA 보안 삭제 기능을 사용할 때 키가 지워져 공격자가 AES (현재의 경우 128 비트, 256 비트의 경우 128 비트)를 차단하지 않는 한 모든 데이터에 액세스 할 수 없게됩니다. 2011 년 3 월에 출시 된 새 드라이브의 경우).

6
c089

볼륨 자체를 암호화하는 것은 어떻습니까? 삭제 된 데이터는 그대로 유지되지만 적절한 키 없이는 누구도 액세스 할 수 없습니다.

22
teabot

SSD 드라이브가 ATA 보안 모드 기능 세트를 지원하는 경우 보안 지우기 기능이 내장되어 있으므로 보안 지우기 ( 여기여기 .

13
bk1e

NAND 플래시 메모리의 특성으로 인해 SSD는 데이터를 직접 덮어 쓸 수 없습니다. 파일을 삭제하기 전에 반복적으로 덮어 쓰면 SSD에서 안전하게 삭제되지 않으며 데이터는 NAND의 다른 곳에 기록됩니다.

왜 이것이 사실인지 이해하려면 SSD가 내부에서 어떻게 작동하는지 설명해야합니다.

  • NAND 플래시는 블록으로 나뉩니다. 각각은 페이지 일반적으로 4KB 크기 (오류 수정 코드 포함) 세트로 구성됩니다. 대부분의 최신 SSD는 512KB의 블록 크기에 128 페이지 블록이있는 NAND를 사용하지만 일부 드라이브, 특히 오래된 드라이브는 256KB 이하의 블록을 사용할 수 있습니다. 다음 다이어그램은 256KB 블록을 가정하지만 블록 크기에 관계없이 개념은 동일합니다.

Diagram of pages in a NAND block
출처 – Courtesy Music Sorter at Wikipedia, CC BY-SA 3.0

  • 각 페이지는 개별적으로 쓸 수 있지만 페이지는 지울 때까지 다시 쓸 수 없으며 지우기는 전체 블록에서만 수행 할 수 있습니다. 즉, 데이터를 다시 쓸 때마다 SSD는 영향을받는 페이지의 데이터를 유효하지 않은 것으로 표시하고 다른 블록 (가능하면 다른 블록)에 다시 써야합니다. 더 적절한 시간에, 이상적으로는 드라이브가 유휴 상태이고 블록의 모든 페이지가 유효하지 않은 것으로 표시 될 때 SSD는 더 이상 사용되지 않는 블록을 지울 수 있습니다. 이 정리 프로세스를 가비지 수집이라고합니다.

  • SSD가 지울 수있는 블록을 인식하려면 운영 체제가 더 이상 유효한 데이터를 포함하지 않는 블록을 알려야합니다. 이 작업은 ATA TRIM 명령 을 사용하여 수행됩니다. 그러면 SSD는 사용되지 않은 블록을 가비지 수집 할 수 있습니다.

SSD는 드라이브에서 사용할 수있는 여유 공간에 의존하는 프로세스 인 조기 오류를 방지하기 위해 NAND에 쓰기를 균등하게 분산하려고합니다.

  • 각 NAND 블록은 제한된 수의 쓰기/지우기 주기만 유지할 수 있습니다. 오늘날의 많은 소비자 용 SSD는 19-21nm NAND를 사용하는데, 각 블록은 사용할 수 없게되기 전에 약 3,000주기 동안 좋은데, 기업용 SSD와 더 내구성있는 유형의 NAND를 사용하는 몇 가지 고급 소비자 용 SSD가 상업적으로 이용 가능합니다.

  • 그러나 모든 경우에 SSD는 wear leveling 이라는 프로세스를 통해 드라이브의 조기 고장을 방지하기 위해 단일 블록에 과도한 마모가 발생하지 않도록 전체 드라이브에 쓰기를 분산해야합니다. =. 효율적인 마모 평준화는 드라이브가 거의 가득 찬 경우에도 필요에 따라 효율적인 가비지 수집을 위해 예약 된 일정량의 공간 (over-provisioning)이있을 때만 달성 할 수 있습니다.

  • SSD가 오래된 블록을 지울 수있는 것보다 더 빨리 데이터를 쓰도록 요청받는 극한 상황에서 (쓰기가 많은 데이터 센터 워크로드에서 일반적), 한 블록의 데이터를 다른 블록에 다시 쓴 다음 즉시 이전 블록을 지워야 할 수 있습니다. 가비지 수집을 수행하기 전에 새 데이터를위한 길을 마련합니다.

  • 블록의 강제 다시 쓰기는 성능을 저하시키고 쓰기 증폭에 기여하기 때문에 이상적이지 않습니다. 여기서 드라이브의 실제 양보다 더 많은 데이터가 기본 NAND에 기록됩니다. 작성하도록 지시받습니다. 추가 된 오버 프로비저닝은 데이터를 다시 쓰고 오래된 블록을 지우는 데 더 많은 여유 공간을 제공하여 쓰기 증폭을 완화하는 데 도움이됩니다. 이것이 삼성 SSD 845DC PRO와 같은 고급 엔터프라이즈 SSD가 실제로 드라이브에 각각 256GB 또는 512GB에 가까운 NAND가 포함되어 있지만 200GB 및 400GB와 같은 크기로 제공되는 이유입니다. 참조 : SSD의 크기가 이상한 이유는 무엇입니까?

  • 삼성 SSD 백서 시리즈는 SSD의 내부 동작에 대한 철저한 설명을 제공합니다. NAND 페이지와 블록 및 가비지 컬렉션 쓰기 및 지우기는 백서 04에 설명되어 있습니다.

SSD에서 데이터를 실제로 지우는 유일한 방법은 ATA Secure Erase 명령을 사용하는 것입니다.

  • Secure Erase는 과잉 프로비저닝 된 NAND 영역에 남아있을 수있는 데이터를 포함하여 저장된 모든 데이터를 삭제하도록 드라이브에 지시합니다. 이 작업이 완료되면 모든 블록이 지워져 깨끗한 드라이브가됩니다.

  • 자체 암호화 기능이있는 드라이브에서는 암호화 키를 삭제하여 간단히 Secure Erase를 구현할 수 있습니다. 암호화 된 드라이브의 NAND에있는 데이터는 키없이 읽을 수 없기 때문에 암호화되지 않은 드라이브에서 필요한 모든 블록을 지울 필요가 없습니다.

11
bwDraco

전체 드라이브를 덮어 쓰더라도 HD와 SSD 모두에 장애가 발생할 때 대체되는 예비 섹터가 포함되어 있거나마모 레벨링 을 지원하는 SSD의.

복구 할 수없는 데이터가 사라 졌다는 것을 절대적으로 확인하려면 복구 할 수 없을 정도로 드라이브를 물리적으로 파괴해야합니다. 덮어 쓰기는 HD에 대해 합리적인 확신을 제공합니다. SSD에서는이를 달성 할 수있는 방법이 없습니다. 전체 드라이브를 채운 경우에도 데이터가 있던 블록이 마모 평준화를 위해 예비 블록으로 전환되어 나중에 다시 나타날 수 있습니다.

10
Michael Borgwardt

생각했듯이 모든 여유 공간을 삭제하여 데이터를 포함하는 데 사용 된 모든 블록이 삭제되었는지 확인하는 것이 유일한 방법입니다. 음, 궤도에서 사이트를 핵폭탄하는 것 말고는 ...

이것은 시간이 많이 걸리며 다중 패스 파쇄를 사용하는 경우 플래시 칩의 수명을 단축시킵니다.

삭제 된 데이터를 보호하는 다른 방법은 truecrypt와 같은 것을 사용하여 암호화 된 파일 시스템을 사용하여 처음에 암호화 된 데이터를 저장하는 것입니다.

3
David Spillett