SSD 드라이브에서 파일을 안전하게 지우는 방법은 무엇입니까?


14

SSD를 안전하게 지우려고 할 때 몇 가지 문제가 있습니다.

  • 제한된 소거주기 후에 SSD가 마모 됨
  • SSD에는 LBA (시스템에서 디스크에 액세스하기 위해 사용하는 논리 블록 주소)를 NVRAM 셀 (실제 플래시 메모리 셀)에 동적으로 매핑하여 마모를 균형있게 조정하는 컨트롤러가 있습니다. 파일은 다른 스페어 블록을 덮어 쓸 수 있습니다.
  • SSD는 죽어가는 스토리지 셀을 보상하고 마모를 줄이는 데 사용되는 현저한 비율의 예비 용량을 가지고 있습니다. 그것들은 시스템에 보이지 않으며 오래된 데이터 조각을 보유 할 수 있습니다.

이제 Ubuntu 내부에서 SSD를 안전하게 지우는 옵션에는 어떤 것이 있습니까?

일부 최신 SSD는 안전하게 닦을 수 있어야한다고 들었지만 SSD가이 기능을 지원하는지 여부와이를 어떻게 트리거 할 수 있는지 어떻게 알 수 있습니까?
ATA 보안 지우기 명령도 있어야합니다. 지원 여부를 어떻게 알 수 있으며 어떻게 트리거 할 수 있습니까?

주어진 파일 또는 사용되지 않은 공간 만 안전하게 지우는 방법이 있습니까?
모든 파티션을 백업하고 전체 디스크를 안전하게 닦은 다음 백업을 복원하는 것이 가능하지만 소리가 너무 복잡하여 실용적으로 너무 오래 걸리는 것 같습니다. 다른 대안이 있습니까? 그렇지 않은 경우 이미 삭제 된 파일을 백업하지 않고 파티션을 백업하는 데 사용할 수있는 도구는 무엇입니까?

같은 물론 표준 도구 shred또는 wipe포인트 위에서 설명한 여기를 사용할 수 없습니다. 웨어 레벨링 컨트롤러로 인해 동일한 플래시 셀을 지속적으로 가리 키지 않는 LBA에 바인딩 된 파일 시스템 클러스터를 덮어 쓰는 방식으로 파일을 덮어 씁니다.


여기에 흥미로운 정보가있을 수 있습니다. wiki.archlinux.org/index.php/SSD_memory_cell_clearing
바이트 사령관

나는 이것을 커널로 만든 학문적 연구를 알고있다. lwn.net/Articles/480269
noleti

답변:


9

현재 전체 드라이브의 내용을 지우 거나 SSD의 펌웨어에 액세스 하지 않고 SSD에서 파일을 안전하게 지우는 방법은 없습니다 .

  • SSD가 논리 블록의 이전 사본을 어디에 저장할 수 있는지 알 수 없습니다.

  • 파일 시스템의 저널링 및 COW (Copy-On-Write) 메커니즘으로 인해 문제를 악화시키기 위해 어떤 논리 블록이 특정 파일의 이전 사본을 보유 할 수 있는지 알기가 불가능할 수 있습니다.

드라이브에 직접 액세스 할 수있는 사람에게 삭제 된 파일이 유출되는 것을 방지하는 유일한 방법은 우선 파일을 암호화하고 암호화 키가 눈에 띄지 않도록하는 것입니다.

추가:

나는 약간의 연구를 한 결과 파일 시스템의 비어있는 섹터를 모두 익힐 수 있다면 이전에 삭제 한 모든 파일 을 소거 할 수 있음을 알았습니다 . 이는 일반적으로 가능하고 일부 파일 시스템 도구 (예 : ext * 제품군)에서 제공됩니다 )를 삭제 한 다음 (예 : 링크 된 질문에 대한이 답변에blkdiscard(8) 설명 대로 ) 가비지 수집에 대한 블록을 다시 사용하여 프로세스에서 덮어 쓸 때까지 반환합니다.

이는 플래시 셀에 직접 액세스 할 수없는 모든 사람, 즉

  • 적합한 플래시 셀 판독 장치가없고
  • 할당되지 않은 블록의 내용을 공개하기 위해 드라이브 펌웨어를 대화 할 수 없습니다 (표준화 된 방법이 없기 때문에 대부분의 경우 펌웨어의 의미있는 수정과 사용자 지정 ATA 명령이 필요함).

핵심 사항과 해당 링크의 지침 요약을 답변에 포함시켜 주시겠습니까?
바이트 사령관

동등한 AU 질문에 연결했습니다. 나는 그것이 더 좋기를 바랍니다.
David Foerster

부팅시 여유 공간을 안전하게 지우는 것이 가능한 옵션입니까?
user4493605

1
@ user4493605 : "생존"이란 무엇입니까? 확실히 가능합니다. 당신은 개방 시겠어요 새로운 질문을 새로운 또는 후속 질문이 있다면? 의견 섹션은 새로운 질문이나 확장 된 토론에 적합하지 않습니다. 관심을 끌 수있는 알림이 포함 된 의견을 보내 주시기 바랍니다. 감사.
David Foerster

3

경고 : 아직 명확하지 않은 경우 드라이브를 안전하게 지우면 드라이브의 모든 데이터가 제거되어 복구 할 수 없게됩니다. 모든 중요 정보를 백업해야합니다.

드라이브가 보안 지우기를 지원하는지 여부를 확인하는 가장 쉬운 방법은 드라이브를 묻는 것입니다. 아래 예에서 / dev / sdX 를 사용했습니다. 작업중인 장치와 일치하도록 신중하게 변경해야합니다.

출처 :

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

내 SSD에서 결과는 다음과 같습니다.

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

장치에서 보안 지우기가 지원되는 경우 트리거는 2 단계 또는 3 단계 프로세스입니다.

  1. 장치 sudo hdparm -I /dev/sdX가 다음과 유사한 출력으로 표시되어 정지되었다고보고하는 경우 :
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

시스템을 일시 중지하고 다시 시작하여 고정을 해제하십시오. sudo systemctl suspend 시스템이 재개 될 때까지 포인터를 이동시키는 명령 으로이 작업을 수행 했습니다.

  1. 이 경우 보안 지우기를 사용하려면 암호를 설정해야합니다.이 경우 foobar 를 암호로 사용하고 있습니다. 공백이 아닌 암호는 임시 암호로 사용할 수 있습니다.

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

  2. 비밀번호를 설정하면 이제 비밀번호를 사용하여 드라이브를 안전하게 지울 수 있습니다.

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

드라이브가이를 지원하고 원하는 경우 다음과 같이 대신 고급 보안 지우기를 사용하도록 선택할 수 있습니다.

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

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