System_Security

[Security]TrueCrypt

Galahaad 2023. 2. 2. 01:48

TrueCrypt(볼륨 암호화 도구)

노출되면 안되는 파일, 기밀유지가 필요한 문서 및 인증서 등을 안전하게 보관하기 위해
키(Key) 혹은 비밀번호(PassPhrase)로 인증 후 마운트하여 사용할 수 있게끔 가상의 볼륨파일을 생성해주는 도구이다.
* 이와 유사한 기술로는 대표적으로 Windows의 BitLocker가 존재
** 디스크 자체를 암호화 하는 것도 가능하다.


여기서 가상의 볼륨파일이란 TrueCrypt 혹은 해당 프로그램과 연관성 있는 도구(Tool)들로 암호화된 볼륨파일을
복호화 하여 사용할 수 있게끔 생성되는 파일형식으로, 설령 파일이 노출되었다고 하더라도
암호화 되어있기 때문에 쉽게 크랙하기 어렵다고 한다.

TrueCrypt는 오픈 소프트웨어로 누구나 간편하게 본인의 중요한 문서들을
암호화된 가상의 볼륨 파일로 저장하여 소유할 수 있다.

* 네트워크 대역 : 10.211.55.0/24
** 실습환경 : M1 Based Mac(ARM64)
*** 해당 실습에서 사용된 가상 머신 : Kali2022(.111), Ubunser20.04(.50)

● TrueCrypt 실습

# Ubunser에서 TrueCrypt 설치를 위한 레포지토리 추가
sudo add-apt-repository ppa:stefansundin/truecrypt
sudo apt update -y && sudo apt install -y truecrypt

 

sudo truecrypt

TrueCrypt를 실행했을 때의 모습, 좌측 하단의 Create Volume 버튼을 눌러 가상 볼륨 파일을 생성한다.

TrueCrypt

좌 : 이번 실습의 목적은 가상의 저장장치 파일을 만드는 것이므로 상단 옵션에 체크된 상태로 Next를 클릭
* 하단 옵션의 경우 물리적인 디스크 자체를 암호화 하는 방식

우 : 상단의 Standard TrueCrypt volume을 선택하여 넘어간다.
* 하단 옵션의 경우 중첩으로 암호화하는 옵션으로 가상 볼륨파일1 안에 가상볼륨2 를 생성하는 옵션

TrueCrypt

좌 : 'Select File...'을 클릭하여 암호화된 가상 볼륨 파일을 저장할 위치를 지정
* 'Encrypt' 라는 이름으로 저장

우 : 윗 부분의 경우는 암호화 알고리즘, 아랫 부분의 경우는 해쉬 알고리즘을 지정할 수 있다.
* 실습에서는 기본 값인 AES와 RIPEMD-160 방식으로 진행해주었다

TrueCrypt

좌 : 생성할 볼륨 파일의 용량을 지정한다.
* 지정한 만큼의 용량이 디스크에 실질적인 파일의 용량이 되므로 이에 유의

우 : 표기된 부분을 확장하여 몇 가지 파일 시스템 선택이 가능하다.
* FAT, NTFS, ext2..3...4 .. 등

TrueCrypt

좌 : 복호화 시 사용할 패스워드를 입력해주며, KeyFile로도 암호화가 가능한 것을 확인할 수 있다.
* 실습의 이해를 위해 쉬운번호를 입력, 실제로는 .. 당연히 권장되지 않음(파일 암호화의 의미가 없음)

우 : 암호화를 진행한다.
* IRQ(Inturrupt ReQuest)를 이용하여 암호화 속도를 향상시킬 수 있음

TureCrypt

앞에서 지정한 경로인 '/home/ubunser/crypted' 경로에 'Encrypt'라는
가상의 암호화 볼륨파일이 생성되었음을 확인

TreuCrypt

콘솔창에서 'sudo truecrypt' 를 입력해 소프트웨어를 실행시켜 마운트를 진행한다.

좌 : Select File 버튼을 눌러 가상 볼륨 파일을 로컬의 11번 디스크에 마운트
* 마운트 디스크 선택 시 사용되지 않는 디스크를 선택해주면 된다(필자는 11번 디스크)
** 운영체제마다, 현재 사용중인 디스크의 갯수에 따라 다르게 표기될 수 있음

우 : 마운트 포인트와 해당 가상 볼륨의 FreeSpace를 확인할 수 있다.
* 마운트 포인트는 df 명령어를 이용하여 확인할 수도 있음

▼ 임의의 파일을 암호화된 가상 볼륨에 생성

# 임의의 비어있는 파일들을 생성
sudo touch /media/truecrypt11/Encrypt{1,2,3,4,5}

# 텍스트 파일의 정상적인 복호화 확인을 위해 텍스트 파일 생성
sudo vim Secret_File

# 텍스트 파일의 내용
This is Secret File

# 파일 생성 작업을 완료한 후 umount 커맨드 OR TrueCrypt GUI에서 마운트를 해제한다.
sudo umount /media/truecrypt11

 

생성된 파일들을 확인

 

sudo scp crypted/Encrypt kali@10.211.55.111:/home/kali

 


복호화를 수행할 원격지로 볼륨 파일을 복사해준다.

▼ 복호화 수행

# ARM 기반 Kali의 경우 TrueCrypt 소프트웨어 지원이 불가하여 zuluCrypt-gui로 대체하여 실습을 진행함
sudo apt install -y zuluCrypt-gui  

# zuluCrypt-gui 실행
sudo zuluCrypt-gui

 

zuluCrypt

scp로 넘겨받은 볼륨 파일을 확인, 파일의 크기도 동일한 것을 확인할 수 있다.

 

zuluCrypt

좌 : Open → Volume Hosted In A File 진입하여 복호화 및 열람할 볼륨 파일을 지정

우 : Volume Type 지정 시 TrueCrypt에서 만들어진 파일이므로 위와 같이 선택 후,
TrueCrypt로 볼륨 생성 시 입력했던 패스워드와 동일한 패스워드를 입력해준다.
* 읽기 전용으로도 마운트 가능

 

zuluCrypt

패스워드 인증이 성공하면 TrueCrypt와 유사하게 마운트 포인트를 확인할 수 있다.
Free Space에 대한 표기가 되어있지 않지만 df 명령어를 이용하여 확인이 가능하다.
* 패스워드 인증 성공 후 알림창이 나오면 Cancel로 닫아준다.

 

zuluCrypt

위 그림처럼 정상적으로 복호화 하여 암호화된 볼륨 안에 있는 파일들이 동일하게 존재하는 것을 확인할 수 있다.