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


27

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

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

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

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

답변:


22

볼륨 자체를 암호화하는 것은 어떻습니까? 삭제 된 데이터는 여전히 존재하지만 적절한 키가없는 사람은 액세스 할 수 없습니다.


재미 나는 그것에 대해 생각하지 않았다 - 나는 항상 내 하드 디스크에 LUKS 암호화를 사용 어쨌든)
c089

여기에 언급 된 바와 같이 이것은 성능에 심각한 영향을 미칩니다. SandForce 기반 드라이브에서 ATA 보안 지우기를 사용하면 AES 암호화 키가 지워져 소프트웨어 암호화를 사용하지 않을 때 보안 삭제 문제에 대한 솔루션을 제공합니다.
c089

12

SSD 드라이브가 ATA 보안 모드 기능 세트를 지원하는 경우 보안 지우기 기능이 내장되어 있으며 여기여기에 문서화 된 Secure Erase와 같은 것을 사용하여 액세스 할 수 있어야합니다 .


2
ATA 보안 모드 기능 세트의 경우 +1 이것에 관한 좋은 비디오가 SecurityTube.net에 있습니다
RJFalconer

2
그러나이 기능은 완전한 드라이브만을위한 것입니까?
c089

@ Chris089 : 맞습니다 : 보안 지우기는 전체 드라이브를 지 웁니다. 불충분 한 프로비저닝으로 인해 전체 드라이브를 임의의 데이터로 덮어 쓰더라도 전체 드라이브가 지워지는 것은 아닙니다. (그러나 일반 사용자는 지워지지 않은 일부 데이터에 액세스 할 수 없게됩니다.) 자세한 내용은 anandtech.com/storage/showdoc.aspx?i=3531&p=9 를 참조하십시오.
bk1e

(이전) 드라이브는이 기능을 제대로 구현하지 않는 것으로 나타났습니다. HDD에서도 작동하지만 SSD에서는 실제로 몇 시간이 아니라 몇 초 안에 끝날 수 있다는 이점이 있습니다 .
Maarten Bodewes

Secure Erase의 실망스러운 문제는 많은 드라이브가 "보안 고정"상태에서 벗어나려면 물리적으로 전원을 껐다 켜야한다는 것입니다 (전원 커넥터를 뽑았다가 다시 연결). 그런 다음에 만 보안 지우기가 작동합니다. 특히 랩톱 또는 더 나쁜 임베디드 시스템 인 경우 항상 PC를 열어야하는 것은 쉽지 않습니다.
misha256

10

전체 드라이브를 덮어 쓰더라도 HD와 SSD에는 모두 고장이 발생했을 때 또는 웨어 레벨링 을 돕기위한 SSD의 경우 대체 섹터가 포함되어 있기 때문에 확실하지 않습니다 .

데이터를 복구 할 수 없다는 것을 절대적으로 확신하려면 복구 이상의 드라이브를 물리적으로 파괴해야합니다. 덮어 쓰기는 HD에 대해 합리적인 확실성을 제공합니다. SSD에서는 실제로 그렇게 할 수있는 방법이 없습니다. 전체 드라이브를 채우더라도 데이터가 있던 블록이 마모 레벨링을 위해 여분의 블록으로 전환되어 나중에 다시 나타날 수 있습니다.


아직 공감할 수는 없지만 보안 지우기 응답은 이 인수를 무효화합니다. 물론 제조업체의 안전한 삭제에 의존하고 싶지 않다면 플래시를 물리적으로 파괴하는 것이 옵션입니다. 그러나 당신이 그것을 소각하거나 모든 칩을 깰 수 있는지 확인하십시오. 플래시는 매우 탄력적입니다.
Maarten Bodewes

이것은 오래된 답변입니다. 이제 보안 지우기는 대부분의 하드 디스크 드라이브를 포함하여 모든 드라이브가 아닌 대부분의 경우 지원됩니다.
Maarten Bodewes

1
보안 지우기는 모든 SSD를 지 웁니다. 그러나 파일 세트 또는 파티션을 분리하지 마십시오.
Mikhail Moskalev

9

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

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

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

NAND 블록의 페이지 다이어그램
출처 – 위키 백과, CC BY-SA 3.0의 음악 분류기 제공

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

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

SSD는 드라이브에 사용 가능한 여유 공간에 의존하는 프로세스 인 조기 장애를 피하기 위해 NAND에 쓰기를 고르게 분산시킵니다.

  • 각 NAND 블록은 한정된 수의 쓰기 / 삭제 주기만 유지할 수 있습니다. 오늘날의 많은 소비자 용 SSD는 19-21nm NAND를 사용하며, 각 SSD는 약 3,000주기 동안 사용하기 전에 사용할 수 없게되지만, 내구성이 뛰어난 NAND 유형을 사용하는 엔터프라이즈 SSD와 여러 고급 소비자 SSD는 상업적으로 이용 가능합니다.

  • 그러나 모든 경우에 마모 레벨링 이라는 프로세스를 통해 드라이브의 조기 고장을 피하기 위해 SSD는 단일 블록에 과도한 마모를 피하기 위해 전체 드라이브에 쓰기를 분산시켜야합니다 . 드라이브가 거의 가득 찬 경우에도 필요한 가비지 수집이 가능하도록 예약 된 일정량의 공간 ( 과잉 프로비저닝 ) 이있는 경우에만 효율적인웨어 레벨링을 달성 할 수 있습니다 .

  • SSD가 오래된 블록을 지우는 것 (쓰기가 많은 데이터 센터 워크로드에서 일반적으로 발생하는 것)보다 빠른 속도로 데이터를 쓰도록 요청받는 극한 상황에서 한 블록의 데이터를 다른 블록으로 다시 쓴 다음 이전 블록을 즉시 지울 수 있습니다. 가비지 수집을 수행하기 전에 새 데이터를 처리합니다.

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

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

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

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

  • 자체 암호화 기능이있는 드라이브에서는 암호화 키를 닦아서 간단하게 보안 지우기를 구현할 수 있습니다. 암호화 된 드라이브의 NAND에있는 데이터는 키없이 읽을 수 없으므로, 암호화되지 않은 드라이브에 필요한 모든 블록을 지울 필요는 없습니다.


모든 드라이브가 보안 지우기 명령을 올바르게 구현하지는 않습니다. 그래도 드라이브를 사용하려는 경우 처음부터 암호화를 예측할 수없는 경우 최선을 다할 수 있습니다. 드라이브를 폐기하려면 특히 플래시 칩과 같은 물리적 인 드라이브를 폐기해야합니다.

물리적 파괴가 필요한 경우 드라이브를 열고 기본 PCB를 파괴합니다.
bwDraco

@Bob 잘못된 구현을 논의하는 소스에 대한 링크가 있습니까? 이 secure_erase명령은 ATA 표준의 일부입니다. 더 저렴한 드라이브에는 없을 수도 있지만,있는 경우 제대로 작동해야합니다. 다른 옵션보다 잘 작동하는 이유는 드라이브를 공장 출하시 구성으로 복원하기 때문입니다. HDD에서도 DBAN과 같은 도구보다 빠르고 효과적입니다.
Paul

@Paul security.stackexchange.com/questions/41676/… , usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdf , security.stackexchange.com/questions/62253/… 임의의 보장은 전혀 없습니다. drive의 펌웨어는 주어진 명령을 올바르게 구현합니다 (버그는 어디에서나 발생할 수 있음). 테스트 결과 적어도 일부 드라이브는 확실 하지 않습니다. 하루가 끝나면 가장 큰 문제는 올바른 삭제를 실제로 확인할 수 없다는 것 입니다.

1
포괄적 인 진술 / 성공을 보증 할 수 없으므로 적어도 일부 드라이브가 올바르게 구현하지 않는다고 가정해야 합니다. 우리는 일부 드라이브가 제대로 구현하지 않는 가정하면, 다음 할 수있는 안전한 것은 없다고 가정하는 것입니다 아니 , 그렇지 않으면 입증 될 때까지 제대로 드라이브 구현을. 또한 쉽게 알 수 있습니다. 소거가 올바른 것처럼 보일 수 있습니다. 아는 모든 사람을 위해 플래시 칩에 정보를 유지하십시오. 즉, 실제로 민감한 부분 은 항상 물리적으로 파괴 해야 합니다.

6

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


1
그러나 몇 개의 파일 만 안전하게 삭제하기위한 솔루션은없는 것 같습니다. 전체 디스크를 지워야합니다.
c089

3

생각한대로 데이터를 포함하는 데 사용 된 모든 블록이 지워지도록 모든 여유 공간을 닦아야합니다. 음, 궤도에서 핵무기를 빼내는 것 말고는 ...

다중 패스 분쇄기를 사용하면 시간이 많이 걸리고 플래시 칩의 수명이 단축됩니다.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.