안전한 삭제와 키 폐기
파일 삭제만으로 데이터가 지워지지 않는 이유와 민감한 키 및 파일을 올바르게 폐기하는 방법을 이해합니다.
안전한 삭제와 키 폐기은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
rm이 데이터를 삭제하지 않는 이유
rm으로 파일을 삭제하거나 휴지통으로 이동하면 운영 체제는 파일을 가리키는 디렉터리 항목만 제거합니다. 실제 파일 데이터는 새로운 데이터가 해당 섹터를 덮어쓸 때까지 저장 매체에 남아 있습니다. 포렌식 도구는 할당되지 않은 섹터를 검색해 데이터를 복구할 수 있습니다. 따라서 안전한 삭제에는 단순한 삭제 작업 이상의 조치가 필요합니다.
한 번 덮어쓴 후의 데이터 복구
플래터의 기록 밀도가 매우 높은 구형 자기 하드 드라이브는 한 번 덮어쓴 후에도 이론적으로 잔류 자화를 보존할 수 있으며, 전문 연구소가 자기력 현미경을 사용하면 데이터를 복구할 수 있습니다. 이는 구형 드라이브에서 더 중요한 문제였으며, 최신 고밀도 드라이브에서는 트랙 폭과 비트 밀도 때문에 이러한 복구가 현실적으로 어렵습니다. 그러나 이러한 우려로 인해 DoD 5220.22-M과 같은 다중 덮어쓰기 표준이 등장했습니다.
SSD의 TRIM과 웨어 레벨링 문제
SSD는 안전한 삭제를 훨씬 더 복잡하게 만듭니다. TRIM은 SSD 컨트롤러에 삭제할 블록을 알려 주지만 실제 삭제 시점은 컨트롤러에 따라 다르며 지연될 수 있습니다. 웨어 레벨링은 쓰기를 고르게 분산하기 위해 셀 사이에서 데이터를 이동시키므로, OS가 빈 공간으로 간주하는 영역에 오래된 데이터 사본이 남을 수 있습니다. SSD에서 파일을 직접 덮어쓴다고 해서 데이터의 모든 사본이 안정적으로 덮어써지는 것은 아닙니다.
DoD 5220.22-M과 다중 덮어쓰기
DoD 5220.22-M 표준은 과거에 7회 덮어쓰기를 규정했습니다(0x00, 0xFF, 무작위 데이터 패턴 및 검증 과정). 이 표준은 구형 자기 드라이브를 위해 설계되었으며 최신 드라이브에는 대부분 의미가 없습니다. NIST SP 800-88은 대부분의 저장 장치 유형에서 이 표준을 대체했으며, 최신 자기 드라이브에는 한 번의 초기화 과정(0 또는 1로 덮어쓰기)만으로 충분하다고 권장합니다.
Linux의 shred 명령
Linux의 shred 명령은 파일을 삭제하기 전에 여러 번 덮어씁니다: shred -vzun 3 secret.txt는 3회 덮어쓰기(-n 3)를 수행하고, 마지막에 0으로 채우는 과정을 추가한 다음(-z), 파일을 삭제하며(-u), 자세한 출력을 표시합니다(-v). 그러나 shred는 웨어 레벨링 때문에 SSD에서 신뢰하기 어렵고, 저널에 오래된 데이터를 보존할 수 있는 저널링 파일 시스템이나 Btrfs 및 ZFS와 같은 쓰기 시 복사 파일 시스템에서도 신뢰성이 낮습니다.
안전한 삭제 전략으로서의 전체 디스크 암호화
SSD와 최신 저장 장치에서 안전하게 삭제하는 가장 신뢰할 수 있는 방법은 민감한 데이터를 암호화되지 않은 상태로 저장하지 않는 것입니다. 처음부터 전체 디스크를 암호화하면 평문이 암호화되지 않은 상태로 매체에 존재하지 않습니다. 드라이브를 폐기해야 할 때 암호화 키를 파기하면(암호학적 삭제) 드라이브에 데이터가 얼마나 많이 있는지와 관계없이 모든 데이터를 즉시 영구적으로 복구할 수 없게 됩니다.
ATA 보안 삭제 명령
최신 하드 드라이브와 SSD는 ATA 보안 삭제 명령을 지원합니다(Linux에서는 hdparm --security-erase). 이 명령은 OS가 직접 접근할 수 없는 재매핑된 섹터를 포함해 드라이브 내부 컨트롤러가 모든 사용자 데이터 영역을 삭제하도록 지시합니다. SSD에서는 일반적으로 모든 플래시 셀을 삭제된 상태로 초기화합니다. 제대로 구현되었다면 소프트웨어로 덮어쓰는 것보다 철저하며 몇 초에서 몇 분밖에 걸리지 않습니다.
암호학적 삭제: 키 파기
암호학적 삭제란 안전한 위치에만 저장된 키로 모든 데이터를 암호화한 다음 그 키를 파기하는 것을 의미합니다. 키가 없으면 복호화에 현실적으로 감당할 수 없는 계산량이 필요하므로 데이터를 영구적으로 읽을 수 없게 됩니다. 클라우드 제공업체는 저장 장치를 폐기할 때 이 방식을 사용합니다. 각 고객의 데이터는 고객별 키로 암호화하고, 키를 삭제하면 즉시 해당 데이터를 복구할 수 없게 만듭니다.
secure-delete 도구
secure-delete 패키지(Linux)는 여러 유틸리티를 제공합니다. srm은 파일을 안전하게 제거하고(35회 덮어쓰는 Gutmann 방식이지만 최신 드라이브에는 1~3회면 충분합니다), smem은 메모리를 안전하게 지우며, sfill은 디스크의 빈 공간을 채우고, sswap은 스왑 영역을 안전하게 지웁니다. shred와 마찬가지로 이러한 도구는 기존 자기 드라이브에서 가장 효과적이며, 웨어 레벨링 때문에 SSD에서는 신뢰성이 낮습니다.
물리적 저장 매체 파괴
특히 민감한 정부 또는 의료 데이터의 경우, 가장 높은 수준의 확실성이 필요하다면 물리적 파괴가 가장 신뢰할 수 있는 안전한 삭제 방법입니다. 디가우징은 자기 매체를 강한 자기장에 노출해 모든 자기 도메인을 무작위화합니다. 산업용 분쇄기는 드라이브를 작은 조각으로 분쇄합니다. 충분히 높은 온도로 소각하면 모든 저장 매체가 파괴됩니다. NIST SP 800-88은 매체 유형별로 적절한 파괴 방법에 대한 지침을 제공합니다.
NIST SP 800-88 저장 매체 정리 지침
NIST SP 800-88은 저장 매체 정리를 세 가지 수준으로 정의합니다. 초기화는 내부 재사용에 적합한 소프트웨어 덮어쓰기이고, 완전 삭제는 외부 반출에 적합한 매체별 기법(예: Secure Erase 또는 디가우징)이며, 파괴는 가장 높은 민감도 등급에 적합한 물리적 파괴입니다. 적절한 수준은 데이터 분류와 정리 후 해당 매체의 처리 방식에 따라 결정됩니다.
암호학적 삭제 방식
저장 매체를 암호학적으로 삭제하는 원리는 무엇입니까?
안전한 삭제 복습
안전한 삭제 복습: rm과 휴지통은 디렉터리 항목만 제거하므로 데이터를 복구할 수 있습니다. SSD와 웨어 레벨링 때문에 소프트웨어 덮어쓰기는 신뢰하기 어렵습니다. 처음부터 전체 디스크를 암호화하고 암호화 키를 파기하는 것이 가장 신뢰할 수 있는 전략이며, ATA 보안 삭제는 SSD의 컨트롤러 수준에서 작동합니다. 물리적 파괴(디가우징, 분쇄)는 가장 민감한 데이터에 대해 가장 높은 수준의 확실성을 제공합니다.
자주 묻는 질문
“안전한 삭제와 키 폐기” 강의는 무료인가요?
네 — “안전한 삭제와 키 폐기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“안전한 삭제와 키 폐기”에서 뭘 배우나요?
파일 삭제만으로 데이터가 지워지지 않는 이유와 민감한 키 및 파일을 올바르게 폐기하는 방법을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“안전한 삭제와 키 폐기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.