복원할 수 없도록 파일을 삭제하는 방법은 무엇입니까?

복원할 수 없도록 파일을 삭제하는 방법은 무엇입니까?

사용 중인 jvm에서 사용 가능한 암호에 의존하지 않는 플랫폼 독립적인 암호화 응용 프로그램을 갖기 위해 Java에서 자체 버전의 aes-cipher를 구현했습니다.

이 애플리케이션은 이 암호를 사용하여 파일을 암호화하고 하드 드라이브에 저장해야 합니다.

.

문제: 복원할 수 없는 방식으로 파일을 삭제합니다.

이제 사용자는 원본 파일을 안전하게 삭제할 수 있어야 하므로 암호화 키를 모르면 복원할 수 없습니다. 그렇게 하려면 앱이 파일을 무작위 데이터로 여러 번 덮어쓴 다음 최종적으로 시스템에서 삭제해야 합니다.

그러나 예를 들어 Windows는 암호화된 데이터를 보호하기 위한 또 다른 함정으로 나를 방해합니다. Windows Server 2003부터 Shadow Copy 기술이 사용됩니다. 따라서 삭제된 파일의 이전 버전은 Windows에서 여전히 숨겨질 수 있습니다.

내 질문은 다음과 같습니다.

  • Mac이나 Linux Mint/Ubuntu에 유사한 기술이 사용됩니까?
  • 파일을 복원할 가능성 없이 삭제하는 (플랫폼 독립적인) 방법이 있습니까?

답변1

디스크에 대한 섹터 수준 액세스 및 파일 시스템에 대한 지식 없이 파일 삭제 취소를 확실하게 방지하는 유일한 방법은 파일을 열고 디스크가 가득 찰 때까지 임의의 데이터를 파일에 쓴 다음 파일을 삭제하는 것입니다. 그리고 상황이 가려지면 아마도 도움이 되지 않을 것입니다.

사용자가 키에 접근할 수 없다면 파일의 데이터는 쓸모가 없으므로 삭제에 대해 걱정하지 않는 것이 좋습니다. 파일 길이로 인해 정보가 유출될 수 있는 경우 쓰기 전에 데이터를 채우십시오.

단일 키만 해당 파일 암호화/암호 해독에 사용하려면 업스트림 마스터 키에서 고유한 세션 키를 파생해야 합니다.

키 또는 키를 파생하는 데 사용되는 항목을 암호문과 동일한 위치에 저장하는 경우 결국 항상 크랙될 수 있는 근본적으로 손상된 시스템을 구현하는 것입니다.

답변2

불행하게도 이 문제를 해결할 수 있는 방법은 없습니다. 내장된 OS 소프트웨어 또는 타사 도구의 다양한 구현은 데이터를 유지하도록 설계되었습니다.~할 수 있다회복될 것입니다. 이를 재정의할 수 있는 작업은 애플리케이션 내에서 수행할 수 없습니다. 파일 버전 관리, 섀도 복사본, 백업 등을 통해 파일 복사본이 만들어집니다.

당신이 할 수 있는 유일한 일은 "백업"이 없는 장치나 볼륨에 파일을 저장하는 것입니다.

관련 정보