(매우 길지만 읽을만한 가치가있는) SSD에 대한 기사 :
OS에서 파일을 삭제하면 하드 드라이브 나 SSD에서 반응이 없습니다. 섹터 (하드 드라이브) 또는 페이지 (SSD)를 덮어 쓸 때까지는 실제로 데이터가 손실되지 않습니다. 파일 복구 프로그램은이 속성을 유용하게 사용하며 삭제 된 파일을 복구하는 데 도움이됩니다.
그러나 HDD와 SSD의 주요 차이점은 파일을 덮어 쓸 때 발생합니다. HDD는 단순히 새 데이터를 동일한 섹터에 쓸 수 있지만 SSD는 덮어 쓴 데이터에 대해 새 (또는 이전에 사용 된) 페이지를 할당합니다. 현재 유효하지 않은 데이터가 포함 된 페이지는 유효하지 않은 것으로 표시되고 어느 시점에서 지워집니다.
그렇다면 SSD에 저장된 파일을 안전하게 지우는 가장 좋은 방법은 무엇일까요? 하드 디스크에서 사용하는 것처럼 임의의 데이터로 덮어 쓰기 (예 : "분쇄"유틸리티 사용)는 전체 드라이브를 덮어 쓰지 않는 한 작동하지 않습니다.
전체 디스크 암호화 소프트웨어를 사용하는 @teabot이 언급했듯이 더 이상 필요하지 않기 때문에 보안 삭제 문제를 피할 수 있습니다. 그러나 관련 질문 에서 언급했듯이 이는 압축 및 TRIM과 같은 컨트롤러의 많은 기능을 방지하고 성능이 정상 수준까지 저하되는 것으로보고 되었기 때문에 성능에 큰 영향을 미칩니다. 하드 디스크는 비싼 SSD보다 빠릅니다. SandForce 기반 장치의 경우 더 나은 솔루션이 있습니다. 이러한 장치는 기본적으로 AES 암호화를 수행하고 ATA 보안 삭제 기능을 사용할 때 키가 지워져 공격자가 AES (현재의 경우 128 비트, 256 비트의 경우 128 비트)를 차단하지 않는 한 모든 데이터에 액세스 할 수 없게됩니다. 2011 년 3 월에 출시 된 새 드라이브의 경우).
볼륨 자체를 암호화하는 것은 어떻습니까? 삭제 된 데이터는 그대로 유지되지만 적절한 키 없이는 누구도 액세스 할 수 없습니다.
왜 이것이 사실인지 이해하려면 SSD가 내부에서 어떻게 작동하는지 설명해야합니다.
출처 – Courtesy Music Sorter at Wikipedia, CC BY-SA 3.0
각 페이지는 개별적으로 쓸 수 있지만 페이지는 지울 때까지 다시 쓸 수 없으며 지우기는 전체 블록에서만 수행 할 수 있습니다. 즉, 데이터를 다시 쓸 때마다 SSD는 영향을받는 페이지의 데이터를 유효하지 않은 것으로 표시하고 다른 블록 (가능하면 다른 블록)에 다시 써야합니다. 더 적절한 시간에, 이상적으로는 드라이브가 유휴 상태이고 블록의 모든 페이지가 유효하지 않은 것으로 표시 될 때 SSD는 더 이상 사용되지 않는 블록을 지울 수 있습니다. 이 정리 프로세스를 가비지 수집이라고합니다.
SSD가 지울 수있는 블록을 인식하려면 운영 체제가 더 이상 유효한 데이터를 포함하지 않는 블록을 알려야합니다. 이 작업은 ATA TRIM 명령 을 사용하여 수행됩니다. 그러면 SSD는 사용되지 않은 블록을 가비지 수집 할 수 있습니다.
각 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에 설명되어 있습니다.
Secure Erase는 과잉 프로비저닝 된 NAND 영역에 남아있을 수있는 데이터를 포함하여 저장된 모든 데이터를 삭제하도록 드라이브에 지시합니다. 이 작업이 완료되면 모든 블록이 지워져 깨끗한 드라이브가됩니다.
자체 암호화 기능이있는 드라이브에서는 암호화 키를 삭제하여 간단히 Secure Erase를 구현할 수 있습니다. 암호화 된 드라이브의 NAND에있는 데이터는 키없이 읽을 수 없기 때문에 암호화되지 않은 드라이브에서 필요한 모든 블록을 지울 필요가 없습니다.
전체 드라이브를 덮어 쓰더라도 HD와 SSD 모두에 장애가 발생할 때 대체되는 예비 섹터가 포함되어 있거나마모 레벨링 을 지원하는 SSD의.
복구 할 수없는 데이터가 사라 졌다는 것을 절대적으로 확인하려면 복구 할 수 없을 정도로 드라이브를 물리적으로 파괴해야합니다. 덮어 쓰기는 HD에 대해 합리적인 확신을 제공합니다. SSD에서는이를 달성 할 수있는 방법이 없습니다. 전체 드라이브를 채운 경우에도 데이터가 있던 블록이 마모 평준화를 위해 예비 블록으로 전환되어 나중에 다시 나타날 수 있습니다.
생각했듯이 모든 여유 공간을 삭제하여 데이터를 포함하는 데 사용 된 모든 블록이 삭제되었는지 확인하는 것이 유일한 방법입니다. 음, 궤도에서 사이트를 핵폭탄하는 것 말고는 ...
이것은 시간이 많이 걸리며 다중 패스 파쇄를 사용하는 경우 플래시 칩의 수명을 단축시킵니다.
삭제 된 데이터를 보호하는 다른 방법은 truecrypt와 같은 것을 사용하여 암호화 된 파일 시스템을 사용하여 처음에 암호화 된 데이터를 저장하는 것입니다.