2010-12-30 2 views
7

가능한 중복 :
C# - Deleting a file permanently간단한 방법을 사용하여 파일을 안전하게 지우시겠습니까?

안녕하세요,

나는 C#을 .NET Framework 2.0을 사용하고 있습니다. 파일 파쇄와 관련한 질문이 있습니다.

내 대상 운영 체제는 Windows 7, Windows Vista 및 Windows XP입니다. 아마도 Windows Server 2003 또는 2008이지만 처음 3 개와 동일해야합니다.

내 목표는 파일을 안전하게 지우는 것입니다.

나는 File.Delete를 사용하는 것이 안전하다고 생각하지 않습니다. 파일을 삭제할 때 운영 체제가 단순히 원시 하드 디스크 데이터를 삭제 표시한다고 읽습니다. 데이터는 전혀 지워지지 않습니다. 그래서 "삭제 된"파일을 복구하는 작업 방법이 많이 있습니다. 디스크의 데이터를 실제로 변경해야하기 때문에 파일을 덮어 쓰면 훨씬 더 유용합니다. 사실입니까? 이것은 일반적으로 필요한 것입니까?

그렇다면 나는 1과 0의 파일을 몇 번만 쓸 수 있다고 생각합니다.

은 내가 읽은 : http://www.codeproject.com/KB/files/NShred.aspx http://blogs.computerworld.com/node/5756 http://blogs.computerworld.com/node/5687 Securely deleting a file in C#.NET

+0

이것은 트릭을해야합니다 : http://www.ameri-shred.com/equipment/industrial/hard-drive.html – Flipster

+2

@FlipScript : 그렇게 생각 하긴하지만 그 정도면 충분하지 않을 수도 있습니다. 많은 데이터가 3/4 인치 스트립에 들어갑니다. [DOD는 "소각", "분쇄"및 "용해"와 같은 단어를 사용합니다.] (http://www.zdelete.com/dod.htm) –

답변

5

나는 복잡한 문제에 직면하고 있습니다. 나는 당신 자신의 문제를 해결하려고하지 말 것을 제안합니다.

파일의 물리적 덮어 쓰기 (LAN, 플래시 또는 기타 등등)가 가능한지 확인하려면 응용 프로그램 캐시, Windows 최대 절전 모드 파일, Windows 복구 파일, Windows 스왑 파일 , 모든 복사본 또는 이전 버전의이 파일을 지우고 (모든 빈 공간을 스왑하거나, 이전에는 캐시를 포함하고 다른 파일에 할당되었을 수 있음) 모든 순서가 올바른지 확인하십시오.

OS 또는 다른 응용 프로그램에서 사용하지 않는 전용 논리 드라이브 (또는 물리적 인 드라이브)에 파일을 저장할 수있는 경우, 그리고 Windows를 설득 할 수 있다면 RAM에있는 동안 (VirtualLock() 사용) 파일을 보유하기 위해 사용중인 메모리를 교체하지 마십시오. 그래도 스왑, 캐시 등을 지워야합니다.

위의 경우 Eraser과 같은 제품을 응용 프로그램에 통합해야합니다 (지우개는 Free 소프트웨어이며 GNU General Public License에 따라 소스 코드가 공개되었습니다).

+1

기존 솔루션을 재사용하는 것은 좋은 조언이지만 개별 파일을 안전하게 지우는 것은 선택하지 않습니다. 단지 불가능합니다. –

+0

@ Ben Voigt : Eraser chang log를 읽으면 여러 드라이브와 시나리오를 다룰 때 얼마나 많은 노력을 기울 였는지 알 수 있습니다. 보안 지우기가 불가능한 매우 특별한 구성이있을 수 있지만 표준 시스템에서는 제대로 작동 할 것입니다. –

0

당신은 파일을 열고 암호를 여러 번 스트림을 사용하여 덮어 쓸 수 있습니다. 7 번 덮어 쓴 다음 삭제하는 것이 정상적인 것처럼 보입니다.

+1

덮어 쓰기 파일이 반드시 이전 데이터를 보유한 디스크의 섹션을 덮어 쓰지는 않습니다. –

+0

Lior이 지적한 스왑 파일 등에있는 것과 같이 응용 프로그램이나 OS가 작성한 임시 또는 캐시 된 복사본을 덮어 쓰지 않습니다. – NotMe

2

실제로 I've read에서 데이터를 더 이상 볼 수 없게하는 해결책은 0과 1로 파일을 덮어 쓰는 것 같습니다.

+2

아니요 0을 덮어 쓰는 것만으로도 복구가 불가능한 데이터는 없지만 실제로는 데이터를 덮어 쓸 것이라고 생각할 이유가 없습니다. 플래시 드라이브에있는 경우 거의 확실하게 쓰기 레벨 조정 알고리즘이 활성화되어 있으며 작성한 블록이 이전 내용을 담고있는 것과는 다른 내용이고, 플래시 드라이브가 아닌 경우 파일이 조각 모음에 의해 이동되어 디스크의 다른 블록에 내용의 복사본이 남겨져있을 가능성이 있습니다. –

1

지우기 파일을 안전하게 지우려면 먼저 암호화를 고려해야합니다. 그러면 삭제 후에도 복구 되더라도 정보가 공개되지 않습니다 (키를 제어 할 수 있다고 가정).

+1

그것을 생각했다. ould는 질문과 관련이 없다. 예, 파일이 암호화되었으므로 이미 안전하다고 느낍니다. SHA 512 알고리즘을 사용하여 AES 256 비트를 선택합니다. 여전히, 내가 이것을 프로그래밍하는 친구는 내가 지울 수있는 모든 것을 할 것을 요구한다. 이 모든 검색 후 SysInternals에서 SDelete.exe를 호출하여 모든 작업을 처리해야합니다. – Jason

+0

따라서 해독 된 데이터의 사본을 포함 할 수있는 스왑 파일과 해독 키가 포함 된 파일을 파괴하는 데 집중해야합니다. 그러나 내 의견에 언급 된 이유로 디스크 제조업체의 안전한 지우기 명령이나 디스크의 물리적 파괴를 실행하는 링크 된 질문 등은 확신 할 수있는 유일한 두 가지 방법입니다. –

관련 문제