데이터 암호화 · 8 min read · Jan 04, 2026
TrueCrypt 튜토리얼: 진정으로 휴대 가능한 데이터 암호화
TrueCrypt 튜토리얼: 진정으로 휴대 가능한 데이터 암호화
프로그램 기능 간단 소개
TrueCrypt는 데이터를 “온더플라이”로 암호화하는 무료 소프트웨어입니다. 현재 출시된 최신 버전은 4.3입니다. TrueCrypt를 사용하여 암호화된 하드 드라이브, 별도의 파티션 또는 디렉토리를 만들 수 있습니다. 파일의 내용뿐만 아니라 파일 이름과 해당 파일이 있는 디렉토리 이름도 암호화합니다. 또한 암호화된 디렉토리/HDD/파티션의 크기를 확인할 방법이 없습니다. TrueCrypt는 Windows와 Linux에서 사용할 수 있습니다.
TrueCrypt의 장점:
- 암호화된 하드 드라이브를 생성하고 마운트합니다.
- 전체 드라이브, 선택한 파티션/디렉토리 및 USB 플래시 드라이브를 암호화합니다.
- 암호화는 자동으로, 온더플라이로 이루어지며 사용자에게 투명합니다.
- 암호화된 파티션/디렉토리의 크기를 확인할 방법이 없습니다.
- AES -256, Serpent, Twofish와 같은 암호화 알고리즘을 사용합니다.
- 숨겨진 볼륨 생성을 가능하게 합니다.
- 사용 중에는 생성된 볼륨과 일반 데이터를 구별할 수 없습니다.
- 사용하기 매우 간단합니다.
- TrueCrypt로 생성된 가상 드라이브는 운영 체제와 완전히 독립적입니다.
- 인증 키는 USB 스틱에 보관할 수 있습니다.
- 그리고 더 많은 기능이 있습니다…
암호화된 데이터를 보호하는 방법은 세 가지입니다:
- 비밀번호로,
- 특별한 키로,
- 비밀번호와 키를 모두 사용하여.
이 키는 무엇인가요? 키는 하드 드라이브의 어떤 파일일 수 있습니다. 예: *.avi, *.mpg 또는 *.txt 및 몇 개의 파일이 포함된 전체 디렉토리도 가능합니다. 경고! 키로 *.txt 파일을 사용하는 것은 주의해야 합니다. 수정하면 키가 변경되어 데이터를 복호화할 수 없습니다. 키를 잃어버리면 어떻게 되나요? 데이터를 복구할 수 없습니다! 그래서 저는 키와 비밀번호를 모두 사용하는 것이 가장 좋은 방법이라고 제안합니다. 이 경우 키를 잃어버리면 올바른 비밀번호를 입력하여 변경할 수 있고, 그 반대도 가능합니다. 물론 이상적인 해결책은 없습니다. 비밀번호를 잊어버리거나 키를 동시에 잃어버릴 수 있습니다.
TrueCrypt와 DM-Crypt 간의 간단한 비교
사실 이 두 프로그램 중 어느 것이 더 나은지 말하기는 매우 어렵습니다. 두 프로그램의 옵션 설명을 면밀히 검토한 후, 두 프로그램을 결합하는 것이 최선의 해결책이라는 것을 깨달았습니다. 두 프로그램 모두 “컨테이너”라는 암호화된 파일을 생성할 수 있으며, 이는 개인 파일을 저장할 수 있는 디렉토리처럼 작동합니다(전체 파티션을 암호화하고 싶지 않을 때 매우 유용한 기능입니다). 이 프로그램들의 큰 장점은 CD/DVD에 데이터를 굽는 동안 암호화할 수 있다는 것입니다. TrueCrypt의 약간의 단점은 커널을 다시 로드한 후 TrueCrypt 모듈을 다시 설치해야 할 수 있다는 것입니다. 반면 TrueCrypt에서는 서로 다른 암호화 알고리즘을 동시에 사용할 수 있습니다! 또한 Windows에서 실행되므로 두 시스템을 모두 사용하는 경우 TrueCrypt가 더 나은 선택이 될 것입니다.
최고의 키를 선택하는 방법은?
개인적으로 하드 드라이브의 어떤 파일이나 디렉토리를 키로 선택하는 것을 추천하지 않습니다. 가장 좋은 방법은 TrueCrypt에 내장된 특별한 키 생성기를 사용하는 것입니다. RNG - Random Number Generator - 기능은 최대 320 바이트의 무작위 데이터를 생성하고 이를 미리 선택한 파일에 저장합니다. 무작위 데이터는 어떻게 생성되나요? Linux의 경우, RNG는 /dev/random 또는 /dev/urandom을 사용하여 PC에 연결된 장치에서 생성된 모든 소음을 나타냅니다. 예를 들어 마우스와 키보드입니다.
TrueCrypt는 어떻게 작동하나요?
전체 암호화 과정은 사용자에게 투명합니다. 암호화된 드라이브에 파일을 복사할 때, 그 구성 조각(큰 파일인 경우)이 RAM으로 복사된 다음 암호화되어 대상 파일에 저장됩니다. 복호화 과정도 동일합니다. 먼저 파일이 조각으로 RAM에 복호화되고 다음 사용자에게 전달됩니다. TrueCrypt는 암호화되지 않은 데이터를 드라이브에 저장하지 않으며, 암호화된 데이터는 항상 RAM에 저장됩니다. 이는 파일에 대한 우발적인 접근을 방지하는 매우 안전한 방법입니다.
TrueCrypt 다운로드
프로그램의 최신 버전은 항상 http://www.truecrypt.org에서 찾을 수 있습니다. TrueCrypt가 올바르게 작동하려면 dmsetup라는 도구가 필요합니다. Dmsetup은 장치 매퍼 드라이버로 매핑된 논리 드라이브와 작업할 수 있게 해주는 도구입니다. dmsetup의 최신 버전은 http://sources.redhat.com/dm/에서 사용할 수 있습니다. 소스를 다운로드한 후 첫 번째로 해야 할 일은 dmsetup을 설치하는 것입니다:
tar -zxvf device-mapper.*your_version_no*
cd device-mapper.*your_version_no*
./configure
make
make install (root 또는 sudo로)모든 것이 잘 진행되었다면 TrueCrypt를 설치해 보세요:
tar -zxvf truecrypt-*your_version_no*
cd truecrypt-*your_version_no*linux 디렉토리로 들어가서 설치합니다:
cd linux
./build.sh빌드 요구 사항 확인 중...
커널 모듈 빌드 중... 완료.
truecrypt 빌드 중... 완료.스크립트는 시스템이 모든 요구 사항을 충족하는지 확인하고, 패키지의 위치를 찾을 수 없으면 정보를 표시합니다. 경고! TrueCrypt를 올바르게 설치하려면 커널 2.6.5 이상이 필요합니다.
다음으로 실행합니다:
./install.sh *(root 또는 sudo로)*설치 요구 사항 확인 중…
truecrypt 테스트 중… 완료.
바이너리를 [/usr/bin]에 설치: [Enter]를 누르세요.
매뉴얼 페이지를 [/usr/share/man]에 설치: [Enter]를 누르세요.
사용자 가이드와 커널 모듈을 [/usr/share/truecrypt]에 설치: [Enter]를 누르세요.
비관리자 사용자가 TrueCrypt를 실행할 수 있도록 허용 [y/N]: 비루트 사용자가 TrueCrypt를 사용하도록 허용하려면 [y]를 누르세요. 그렇지 않으면 [N]을 누르세요.
커널 모듈 설치 중… 완료.
/usr/bin에 truecrypt 설치 중… 완료.
/usr/share/man/man1에 매뉴얼 페이지 설치 중… 완료.
/usr/share/truecrypt/doc에 사용자 가이드 설치 중… 완료.
/usr/share/truecrypt/kernel에 백업 커널 모듈 설치 중… 완료.
모든 것이 위와 같이 진행되었다면 계속 진행할 수 있습니다.
키 생성
키를 생성하려면 다음을 입력하세요:
truecrypt --keyfile-create key.txt물론 다른 키 이름과 확장자를 선택할 수 있습니다.
TrueCrypt가 실행 중인 컴퓨터에 마우스가 직접 연결되어 있습니까? “Y”를 누르세요. 그러면 마우스를 움직이라는 메시지가 표시됩니다.
모든 것이 괜찮았다면 다음 텍스트가 표시됩니다: 키 파일이 생성되었습니다.
가상 볼륨 생성
새 볼륨을 생성하려면 이름과 유형을 고려해야 합니다. 이러한 볼륨에는 정상과 숨겨진의 두 가지 유형만 있습니다. 이들 간의 차이는 무엇인가요? 숨겨진 것은 그저 숨겨져 있습니다(위치가 다릅니다 - TrueCrypt 홈페이지에서 더 많은 정보를 확인하세요).
터미널에 입력하세요:
truecrypt -c home.txthome.txt라는 이름의 볼륨을 생성합니다. 확장은 사용자의 재량에 따라 다르며, 저는 *.txt를 선택했습니다. 왜냐하면 잠재적인 해커가 볼륨임을 발견하기 더 어렵기 때문입니다.
볼륨 유형:
- 정상
- 숨겨진
[1] 선택: 1 선택
파일 시스템:
- FAT
- 없음
[1] 선택: 2 선택, FAT이 아닌 다른 파일 시스템을 생성할 것이므로 기본값은 FAT입니다.
볼륨 크기 입력(바이트 - size/sizeK/sizeM/sizeG): 10M -
이제 볼륨의 크기를 지정합니다. 저는 10MB를 선택했습니다.
해시 알고리즘:
- RIPEMD-160
- SHA-1
- Whirlpool
[1] 선택: 해시를 선택하세요. SHA-1을 추천합니다. 기본값은 RIPEMD-160입니다.
암호화 알고리즘:
1 ) AES
2 ) Blowfish
3 ) CAST5
4 ) Serpent
5 ) Triple DES
6 ) Twofish
7 ) AES-Twofish
8 ) AES-Twofish-Serpent
9 ) Serpent-AES
10 ) Serpent-Twofish-AES
11 ) Twofish-Serpent [1] 선택: 알고리즘을 선택하세요. 기본값은 AES입니다.
새 볼륨 ‘home.txt’의 비밀번호 입력: 비밀번호를 원하지 않으면 [Enter]를 누르세요.
비밀번호를 다시 입력하세요: 다시 [Enter]를 누르세요.
키 파일 경로 입력 [없음]: 여기에서 키에 대한 전체 경로를 입력하거나 키가 없으면 비워두세요.
키 파일 경로 입력 [완료]: 다시 경로를 입력하라는 메시지가 표시됩니다. 키가 여러 개 있는 경우 다른 경로를 입력하고, 모든 키 경로를 입력한 경우 비워두고 [Enter]를 누르세요.
TrueCrypt가 이제 무작위 데이터를 수집합니다.
TrueCrypt가 실행 중인 컴퓨터에 마우스가 직접 연결되어 있습니까? “Y”를 누르세요. 마우스가 PC에 직접 연결되어 있지만 “n”을 눌러서 어떤 일이 발생하는지 확인해 보세요.
최소 320개의 무작위로 선택된 문자를 입력한 다음 Enter를 누르세요: 요구되는 수보다 적게 입력하면 프로그램이 얼마나 부족한지 표시합니다.
이제 프로그램이 볼륨을 생성하기 시작합니다. 이 작업에 필요한 시간은 CPU와 볼륨의 크기에 따라 다릅니다. 스크립트가 완료되면 알려줍니다(볼륨이 생성되었습니다). 루트의 홈 디렉토리에 home.txt 파일이 있어야 합니다. 텍스트 프로세서에서 열어보세요. 읽을 수 있다면 축하합니다.
볼륨 매핑 및 파일 시스템 생성
기억하시겠지만, 볼륨 생성 과정에서 파일 시스템을 선택하지 않았습니다. 그래서 지금 해야 합니다. 이는 TrueCrypt가 볼륨을 마운트하기 위해 Linux 도구인 mount를 사용하기 때문에 필요합니다.
입력하세요:
truecrypt /root/home.txt -k /root/key‘/root/home.txt’의 비밀번호 입력: 이 볼륨에 비밀번호가 없으면 [Enter]를 누르세요.
좋습니다. 매핑이 잘 되었는지 확인하려면 입력하세요:
truecrypt -vl(매핑된 장치에 대한 정보를 표시합니다)
정보가 없으면 뭔가 잘못된 것입니다.
이제 파일 시스템을 생성합니다:
mkfs.ext3 /dev/mapper/truecrypt0어떤 파일 시스템이든 선택할 수 있습니다.
파일 시스템이 생성되었습니다.생성된 볼륨 마운트
이제 볼륨에 파일 시스템을 생성하고 매핑했으므로 이를 어떤 디렉토리에도 마운트할 수 있습니다.
이를 위해 입력하세요:
truecrypt -d /dev/mapper/truecrypt0볼륨의 매핑을 해제합니다.
mkdir encrypted -“encrypted”라는 이름의 디렉토리를 생성합니다. 이곳이 볼륨을 마운트할 디렉토리입니다.
truecrypt /root/home.txt -k /root/key /root/encrypted볼륨을 암호화된 디렉토리에 마운트합니다.
완료! 이제부터 “encrypted” 디렉토리에 저장된 모든 데이터는 암호화됩니다.
하지만 이미 존재하는 디렉토리를 암호화하려면 어떻게 해야 할까요? 매우 간단합니다. 이 디렉토리에서 데이터를 이동한 다음 볼륨을 이 디렉토리에 마운트하고 데이터를 다시 이 디렉토리로 이동하면 됩니다. 볼륨의 크기를 지정할 때 적절히 크게 설정해야 합니다. 그렇지 않으면 모든 데이터를 수용할 수 없습니다. 볼륨의 크기는 디렉토리의 크기보다 약간 더 커야 합니다.
재부팅 후 자동 마운트
재부팅 후 볼륨을 다시 마운트해야 한다는 것을 알게 될 것입니다. 이를 위한 간단한 방법이 있습니다. TrueCrypt 홈페이지의 포럼을 탐색하면서 두 가지 다른 해결책을 발견했습니다:
- /etc/init.d 또는 /etc/rc.d에 스크립트 추가,
- 홈 디렉토리에 .profile라는 구성 파일을 생성하고 적절히 편집합니다.
아래에서 설명하는 두 번째 방법을 사용하는 것을 추천합니다. 왜냐하면 한 가지 간단한 이유가 있습니다. 예를 들어, 볼륨을 키와 비밀번호로 보호했거나 비밀번호만으로 보호한 경우, init.d 또는 rc.d 디렉토리에 있는 부팅 스크립트를 실행하면 TrueCrypt를 -p 매개변수로 초기화해야 하며 비밀번호가 명시적으로 거기에 기록되므로 가장 현명한 해결책이 아닙니다. 이 방법으로 누구나 비밀번호를 읽을 수 있습니다.
홈 디렉토리에 이미 .profile 파일이 있을 수 있지만, 없다면:
touch .profile - 새 파일 .profile을 생성합니다.편집기에서 .profile을 열고 다음 줄을 추가합니다:
truecrypt /root/home.txt -k /root/key /root/encrypted변경 사항을 저장하고 편집기를 종료합니다. 이제 시스템에 로그인할 때마다 TrueCrypt가 비밀번호를 요청합니다(이 예에서는 키로만 식별되므로 비밀번호가 없으므로 [Enter]를 누르세요). 그러면 가상 볼륨이 마운트됩니다.
키를 USB 드라이브에 보관할 수 있나요?
네, 그런 옵션이 있으며 믿어주세요, 그렇게 어렵지 않습니다. 첫 번째로 해야 할 일은 USB 드라이브를 시작 시 자동으로 마운트하는 것입니다. 이를 위해 /etc/fstab을 편집해야 합니다. 그런 다음 /mnt에 USB 드라이브를 위한 새 디렉토리를 생성합니다:
mkdir /mnt/pendrive먼저 시스템에서 USB 드라이브가 어디에 있는지 확인해야 합니다. USB 포트에 USB 드라이브를 꽂고 다음 명령을 실행합니다:
dmesg > output.txt파일의 끝에 다음과 같은 줄이 있어야 합니다:
usb 1-1: configuration #1 chosen from 1 choice
uba: uba1제 PC에서는 USB 드라이브가 /dev/uba1에 있습니다. 여러분의 경우 /dev/sda에 있을 수 있습니다. 이제 */etc/fstab을 수정해야 합니다. 다음 줄을 추가합니다:
/dev/uba1 /mnt/pendrive auto defaults 0 0그런 다음 입력하세요:
mount /mnt/pendrive다음 단계는 USB 드라이브로 키를 이동하고 .profile 파일에서 키의 경로를 /mnt/pendrive로 변경하는 것입니다. 완료!
이제 시스템이 재부팅 후 가상 볼륨을 자동으로 마운트합니다. 자동 마운트의 단점은 무엇인가요? 예를 들어, 매우 호기심 많은 형제가 있고 시스템의 일부에 접근하지 못하게 하고 싶다면(Windows 또는 Linux에서 작업하든 상관없이) 키로만 인증하면 HDD 어딘가에 키가 저장되어 부팅 후 데이터가 복호화됩니다. “하지만 USB 드라이브에 키를 보관하고 있습니다.” 작업 후 PC에서 USB 드라이브를 빼는 것을 잊어버리면 어떻게 될까요?
미래
가까운 미래에 TrueCrypt 개발자들은 기능을 확장할 계획입니다:
- MAC OS 버전,
- 외부 인증 추가(네트워크/인터넷을 통한 복호화 가능성),
- TrueCrypt를 위한 공식 GUI 구축,
- 그리고 더 많은 기능…
TrueCrypt에 대한 비공식 GUI 레이어가 있나요? 물론 있습니다. 다음 웹 페이지를 확인해 보세요: GoogleCode의 TruecryptGUI. 더 많은 정보는 TrueCrypt 포럼을 방문하세요.
영어로 번역: Borys Musielak
수정: T_ziel
저자: Marcin Lipiec aka “lipiec”
이 텍스트는 polishlinux.org에 처음 게시되었습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.