본문 바로가기
컴퓨터/Windows

Cipher /w:

by Spring13 2023. 2. 8.

Cipher.exe는 Windows에서 제공하는 암호화된 데이터 관리 도구이다.

2001년에 Microsoft는 Cipher에 삭제된 데이터를 영구적으로 덮어쓰거나 삭제하는 기능을 추가하였다.

"Cipher /w:"는 3 pass 방식을 이용하는데, 처음에는 0x00, 그다음은 0xff, 마지막으로 난수를 써서 데이터를 소거한다.

 


이 문단은 데이터 소거 프로그램을 사용하는 이유를 적어 놓은 것이다.

관심이 없다면 딱히 읽지 않아도 된다.

더보기

Windows를 비롯한 많은 운영체제와 파일 시스템에서는 파일을 삭제하면 파일의 전체 내용을 제거하지 않는다.

파일의 위치 데이터만 삭제하고, 남은 데이터는 이후 다른 파일 데이터에 의해 덮어 씌워지며 제거된다.

이러한 방식이 사용되는 이유는, 파일을 삭제할 때마다 그 데이터까지 모두 삭제하면 시간이 오래 걸리기 때문이다.

어차피 사용하지 않을 데이터이니 빠른 작업을 위하여 이러한 방식을 택한 것인데, 이 때문에 덮어씌워지기 전의 데이터를 복구하면 파일을 복원해 낼 수 있다.

이러한 복구를 방지하기 위해서는 삭제 이후의 데이터를 제거하는 절차가 필요하다.

 

이러한 절차는 SSD, SD카드, 하드 디스크와 같은 저장 매체에 따라 다르다.


반도체를 이용하는 SSD의 경우 마모 평준화(Wear Leveling) 기술로 인하여 파일 시스템 상의 파일 위치와 실제 파일이 저장되는 물리적 위치가 다르며, Garbage Collection으로 인해 그 물리적 위치 또한 수시로 바뀌고, 반도체 셀의 최적화를 위해 TRIM 등의 기술로 미리 의미 없는 데이터를 제거한다.

이 때문에 SSD에서는 소거 프로그램이 의도한 대로 작동하지 않는 경우가 많다.

일반 포맷(하이 레벨 포맷, "Format C:"와 같은 형식의 포맷)만 하였는데도 데이터가 깔끔하게 날아가는 경우도 있고, 데이터가 기타 다른 이유로 잔존해 있어서 소거 프로그램을 이용해도 흔적이 남는 경우도 있다.

 

(Over-Provisioning, Garbage Collection과 같은 기술에 대한 것은 이 칼럼을 읽어보면 도움이 된다.)


SD카드나 USB 메모리 드라이브의 경우, SSD와 마찬가지로 반도체를 이용하지만, 위에서 말한 SSD에 사용되는 고급 기능이 없는 경우 제로필 포맷(일반 포맷)이나 1 Pass 소거면 충분히 데이터를 제거할 수 있다.


하드 디스크의 경우는 위와는 다른데, 자기장을 이용해 정보를 저장하기 때문이다.

이 때문에 기존에 저장하였던 정보가 무엇이었느냐에 따라 새로운 데이터를 덧쓴 뒤 자기장의 세기가 미세하게 달라지는 현상이 발행하며, 이에 따라 제로필을 하여도 부분적으로 자기장의 흔적이 남는 경우가 생긴다.

이러한 자기장의 차이를 통하여 기존의 데이터를 복구할 수 있다.

그러나 여러 번 데이터를 덧쓸수록 자기장이 기존의 것과는 점점 변하게 된다.

따라서 데이터 소거 프로그램들은 주로 하드 디스크에 데이터를 여러 번 덮어 씌워 기존의 흔적을 알아보기 어렵게 해 복구를 불가능하게 만드는 방법으로 소거를 진행한다.


아래는 Cipher를 이용한 데이터 소거 방법이다.

 

사용법은 간단한데, "cipher /w:(원하는 드라이브 문자:)"를 명령 프롬프트에 입력하면 된다.

 

cipher /w:(드라이브 문자)

이를 입력하면 저장되어 있는 파일은 건드리지 않고, 비어있는 공간만을 소거하는데, 이는 후술한다.

 

아래에서는 F 드라이브를 예로 들어 설명하겠다.


소거 방법


먼저 기초적인 소거 방법이다.

'/w:' 뒤의 ':'를 빠트리지 말자

F 드라이브의 빈 공간을 소거하고자 하면 명령 프롬프트를 열고 "cipher /w:F:"를 입력하면 된다.

 

그러면 사진과 같이 소거를 진행한다.


Cipher가 소거를 진행할 때에는 "EFSTMPWP"디렉터리를 만들고, 아래의 임시 파일을 만들어서 소거를 진행한다.

이러한 방식 때문에 기존에 있던 파일은 건드리지 않고, 사용 가능한 미사용 디스크 공간에서 데이터가 제거된다.

따라서 안심하고 데이터 소거를 진행하여도 되지만, 어떠한 돌발상황이 발생할지 모르므로 미리 백업을 해두는 것을 추천한다.


볼륨 전체의 데이터를 소거하고 싶을 때에는 디스크를 포맷한 후, 위의 방법을 이용해 Cipher로 소거를 진행하면 된다.

빠른 포맷을 이용하는 것을 추천하는데, 제로필 포맷을 이용해 포맷해 봐야 포맷에 이용되는 시간만 늘어나고, 상술한 이유로 데이터가 소각되지 않을 수 있기 때문이다.

Cipher가 소거를 진행하는 과정에서 0을 쓰기 때문에 제로필과 동일한 효과를 얻을 수 있다.

추가적으로, BitLocker를 이용 가능하다면 BitLocker로 전체 파티션을 암호화한 후 Cipher를 이용하면 더 좋다.

데이터를 복구해 내도 암호화된 데이터만이 복구될 것이기 때문이다.


응용


Cipher를 이용한 소거가 불안하다면 소거를 여러 번 진행하면 된다.

여러 번 덧씌울수록 원래의 데이터를 복구하기가 힘들어지기 때문이다.

 

시간도 오래 걸리는데 여러 번 입력하는 것이 귀찮다면 배치 파일을 이용할 수도 있다.

 

메모장을 열어 "C:\Windows\System32\Cipher /w:(드라이브 문자:)" 또는 

"%Systemroot%\System32\Cipher /w:(드라이브 문자:)"를 원하는 만큼 입력한 후,

C:\Windows\System32\Cipher /w:(드라이브 문자:)
%Systemroot%\System32\Cipher /w:(드라이브 문자:) //%Systemroot%는 Windows 폴더를 의미하는 환경 변수이다.

예시. @pause는 명령을 끝낸 후 대기하라는 명령어이다.

"다른 이름으로 저장"을 누른 후 뜨는 창에서,

 

.bat 확장자를 이용하여도 된다.

파일 형식을 "모든 파일(*.*)"로 바꾼 후 "{원하는 파일 이름}.cmd"로 저장하면 된다.

이 파일을 실행하면 다음과 같이 여러 번 소거를 진행한다.

의도대로 실행된 결과

 

이때 주의할 점은 아래와 같이 "Cipher /w:(드라이브 문자:)"라고 입력하면 안 된다.

잘못된 예시
의도한대로 작동하지 않음

위와 같이 오류가 난다.

 


여담으로 Cipher가 소거를 진행하는 도중 'Ctrl+C'를 이용하여 소거를 중단할 수 있다.

 


참고 자료

더보기

https://namu.wiki/w/%EC%86%8C%EA%B1%B0%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8#s-3.2

 

소거 프로그램 - 나무위키

Peter Gutmann's Algorithm : 랜덤 데이터로 4차례로 덧쓰고, 010101..., 101010..., 100100..., 010010..., 001001...로 덧쓴 뒤 0x00, 0x11,...0xFF로 덧쓰고, 100100..., 010010..., 001001..., 011011..., 101101..., 110110...으로 덧쓴 뒤 랜

namu.wiki

https://learn.microsoft.com/ko-kr/windows-server/administration/windows-commands/cipher

 

cipher

NTFS 볼륨에서 디렉터리 및 파일의 암호화를 표시하거나 변경하는 암호 명령에 대한 참조 문서입니다.

learn.microsoft.com

https://support.microsoft.com/ko-kr/topic/%ED%8C%8C%EC%9D%BC-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%95%94%ED%98%B8%ED%99%94%EB%A5%BC-%EC%9C%84%ED%95%9C-cipher-exe-%EB%B3%B4%EC%95%88-%EB%8F%84%EA%B5%AC-56c85edd-85cf-ac07-f2f7-ca2d35dab7e4

 

파일 시스템 암호화를 위한 Cipher.exe 보안 도구 - Microsoft 지원

요약 Cipher.exe는 EFS(파일 시스템 암호화)를 사용하여 암호화된 데이터를 관리하는 데 사용할 수 있는 명령줄 도구(Windows 2000에 포함)입니다. 2001년 6월에 Microsoft는 하드 디스크에 있는 모든 삭제된

support.microsoft.com

https://syki66.github.io/blog/2020/08/10/make-disk-irrecoverable.html#2-hdd

 

저장장치에서 포렌식으로도 복구 불가능하게 파일 및 폴더 완전 삭제하기 - syki66 blog

일반적인 상황에서는 파일을 삭제하거나 저장장치의 포맷을 진행하였을 때, 그 파일을 완전 삭제하는게 아니라 저장장치에 연결된 주소값만 삭제함으로써 불필요한 속도 저하를 일으키는 것을

syki66.github.io

https://quasarzone.com/bbs/qc_plan/views/30995

 

컴덕 모여라, SSD 파헤치기! 파트 2 - 심화편

    지난 1편에서는 SSD의 기본적인 내용을 살펴보았습니다. SATA, NVMe 인터페이스와 mSATA,…

quasarzone.com

 

 

728x90
반응형

댓글