최근 수정 시각 : 2024-11-28 10:41:30

TrueCrypt

1. 개요2. 알고리즘3. UEFI와 GPT 미지원4. 국가 기관의 암호화 해제 실패 사례
4.1. Operation Satyagraha4.2. United States v. John Doe4.3. David Miranda4.4. James DeSilva4.5. Lauri Love4.6. 드루킹 특검
5. 개발 중지 이유6. 숨김 볼륨7. 활용 방법
7.1. 암호화폐 보관
8. 보안 위협
8.1. 채굴기를 통한 무차별 대입 공격8.2. 메모리에서 비밀번호 추출 가능
9. 관련 문서

1. 개요

오픈 소스 암호화 소프트웨어이다. 주요 기능으로 파일 형태의 암호화된 저장소(volume)를 만들 수 있고, 파티션을 통째로 암호화하거나, 물리 하드 디스크 드라이브를 통째로 암호화할 수도 있다. 리눅스, , 윈도우를 지원한다.

TrueCrypt는 미국 NSA의 세계 각국 지도자들에 대한 도청 사건을 에드워드 스노든과 몇몇 사람들이 폭로했을 때 폭로자들이 사용하여 유명해졌다. 2014년까지 TrueCrypt는 NSA, FBI, CIA 등 세계적인 정보기관들도 뚫지 못했다고 한다.[1][2] [3]

공식 웹사이트 주소는 http://www.truecrypt.org이지만 현재는 http://truecrypt.sourceforge.net으로 자동으로 넘겨준다. 이 페이지로 가면 TrueCrypt 개발이 중단되었으며 취약점이 고쳐지지 않은 채로 포함되어 있을 수 있으니 BitLocker를 사용하라는 설명이 있다. 또한, 복호화만 가능한 7.2 버전 프로그램이 게시되어 있는데 암호화가 가능한 마지막 버전인 7.1a 버전 실행 프로그램과 소스 코드 이곳에서 받을 수 있다.[4]

TrueCrypt는 개발이 중단되었지만 소스 코드는 공개되어 있기 때문에 다른 사람들이 포크하여 개발한 암호화 소프트웨어로 VeraCrypt CipherShed가 있다.

2. 알고리즘

암호화 알고리즘(encryption algorithm), 즉 암호화 복호화 대칭 키 암호 방식인 AES, Serpent, Twofish를 사용한다.

해시 알고리즘(hash algorithm), 즉 암복호화 키를 만들 때 암호학적 해시 함수(cryptographic hash function)를 쓸 수 있는데 트루크립트는 RIPEMD-160, SHA-512, Whirlpool을 쓴다.

미국 정부 표준인 AES와 SHA-512 조합을 가장 많이 쓴다.

트루크립트에서 AES는 256 비트, RIPEMD-160은 160비트, SHA-512는 512비트를 사용한다. 여러분의 개인정보는 안녕하십니까?

RIPEMD-160은 한스 도베르틴(Hans Dobbertin), 안톤 보셀라르스(Antoon Bosselaers), 바르트 프레넬(Bart Preneel)이 개발했다. 1996년에 공개되었으며 160비트의 키 파일을 만든다.

3. UEFI와 GPT 미지원

윈도우의 C 드라이브 암호화는 BIOS MBR만 지원하며 UEFI GPT는 지원하지 않는다.

VeraCrypt의 경우 윈도우즈의 C 드라이브 암호화는 BIOS와 MBR만 지원했었으나, 2016년 8월 17일 릴리즈된 버전 1.18a부터는 UEFI와 GPT도 지원하기 시작했다.

4. 국가 기관의 암호화 해제 실패 사례

사법 기관인 브라질 경찰, 미국 FBI, 영국 NCA와 정보 기관인 미국 CIA, NSA, 영국 GCHQ 등에서 트루크립트 암호화 해제에 실패하였다.

4.1. Operation Satyagraha

브라질 경찰과 미국 FBI가 트루크립트의 암호화를 못 풀었다.

Brazilian banker's crypto baffles FBI (28 Jun 2010)

FBI hackers fail to crack TrueCrypt (Jun 30, 2010)

4.2. United States v. John Doe

미국 FBI가 트루크립트의 암호화를 못 풀었다.

Court: Fifth Amendment Protects Suspects from Having to Decrypt Hard Drives (Feb 23, 2012)

FORCING DEFENDANT TO DECRYPT HARD DRIVE IS UNCONSTITUTIONAL, APPEALS COURT RULES (02.24.12)

IN RE: GRAND JURY SUBPOENA DUCES TECUM DATED MARCH 25 (February 23, 2012)

In RE: GRAND JURY SUBPOENA DUCES TECUM DATED MARCH 25, 2011 (FEBRUARY 23, 2012)

4.3. David Miranda

스노든의 협력자였던 데이비드 미란다 글렌 그린월드의 사건에서 영국 정보 기관인 GCHQ와 미국 정보기관인 CIA NSA도 트루크립트의 암호화를 풀 수 없다는 게 드러났다.

UK asked N.Y. Times to destroy Snowden material (AUGUST 31, 2013)

Miranda: Where is the UK Government getting its numbers from? (August 31, 2013)

4.4. James DeSilva

미국 애리조나 주의 Maricopa County Sheriff's Office에서도 제임스 더실바(James DeSilva) 사건에서 트루크립트 암호화를 못 풀었다.

"True Crypt" Encryption Software Stumps MCSO Detectives in Child-Porn Case (FEBRUARY 4, 2014)

4.5. Lauri Love

영국의 National Crime Agency ( NCA)에서도 로리 러브(Lauri Love) 사건에서 트루크립트 암호화를 못 풀었다.

Briton Lauri Love faces hacking charges in US (29 Oct 2013)
Briton Lauri Love faces new US hacking charges (27 February 2014)

Hacker Charged with Breaching Multiple Government Computers and Stealing Thousands of Employee and Financial Records (July 24, 2014)

Judge Rejects Attempt To Force Lauri Love To Decrypt His Computers, Despite Never Charging Him With A Crime (May 10th 2016)

4.6. 드루킹 특검

드루킹 트루크립트를 사용하였어도, 드루킹 특검팀이 일부 암호화를 풀어내어 증거를 확보하였다.

드루킹 일당이 암호에 사용했을 것으로 추정되는 패턴을 대입해 풀어내는 방식을 사용하였다. 드루킹이 신봉한 것으로 알려진 자미두수 경제적 공진화 모임을 지칭하는 'KKM' 등을 조합하여 암호에 대입해서 넣어보는 사전 공격과 비슷한 방식을 사용하였다.[5] [6]

5. 개발 중지 이유

최신 버전은 7.2지만 7.2 버전에는 복호화( 암호화 해제) 기능만 있기 때문에 그전 버전인 7.1a를 사용해야 한다. 공식 웹사이트는 폐쇄되었으며 공식 배포처에서는 현재 7.2 버전만 배포하고 있다. SourceForge의 공식 배포처에서 트루크립트는 더 이상 업데이트가 안 되어 보안상 위험하니 마이크로소프트 BitLocker를 사용하라고 해서[7] 여러 가지 루머가 많다.

현재는 개발이 중지되었지만 오픈 소스 소프트웨어이기 때문에 소스 코드는 여전히 배포되고 있다. 개발 중단 이유로 에드워드 스노든 사건으로 주요 동맹국들과도 불편한 관계가 되고, 결국 미국 대통령까지 사과하고서야 사태가 수습되고서, 그때 쓴맛을 본 NSA CIA에서 개발자를 압박했기 때문이라는 루머와 마이크로소프트에 팔렸다는 루머가 서양 메이저 언론사에서도 제기될 정도로 많이 돌았다. ZDNet 보도에 따르면 마이크로소프트의 BitLocker CIA에 의해 정보를 탈취당하지만 트루크립트는 공개 감사(public audit)에도 불구하고, NSA에 의해 심어진 백도어나 심각한 보안 결함을 찾지 못했다고 한다.[8]

트루크립트가 NSA의 압박에 의해 프로젝트가 중단됐다거나, 마이크로소프트에 팔렸다는 것은 명확한 증거가 없기 때문에, 자금 지원이 들어오지 않는 개발 프로젝트를 10년 이상 진행해오던 개발자가 더 이상의 소프트웨어 유지 관리를 포기해서 그렇다는 설이 현재로서는 가장 설득력이 있다.

TrueCrypt는 개발이 중단되었지만 이 TrueCrypt를 기반으로 한 VeraCrypt라는 오픈소스 프로젝트가 비공식적으로 이어받고 있다. 속도는 다소 느려졌지만 보안이 더욱 강력해졌으며 아직도 한창 지원 중이므로 TrueCrypt 사용자들을 흡수하는 중이다.

6. 숨김 볼륨

트루크립트의 숨김 볼륨(hidden volume) 기능[9]을 사용하면 암호화 볼륨 속에 숨김 볼륨을 숨길 수 있어 고문이나 협박에 의해 비밀번호를 토해내야 할 때도 비밀 자료를 숨길 수 있다.[10]

다만 이처럼 TrueCrypt의 보안 특성이 부분적으로 사용자 행동에 의존하기 때문에 다음과 같은 문제를 유발한다. 보안 관점에서 TrueCrypt가 순수한 소프트웨어 솔루션이라는 사실은 원칙적으로 모든 관련 위협으로부터 보호할 수 없다는 것이다. 비활성화된 상태에서 암호화된 디스크를 분실하거나 도난당한 경우에만 효과적인 보호가 가능하다. 그리고 TrueCrypt는 키로거 또는 맬웨어(악성 소프트웨어로서, 사용자의 이익을 침해하는 모든 소프트웨어를 포함) 설치와 같은 활성 공격 시나리오에 대한 보호 기능을 제공하지 않는다. 이를 방지하려면 TPM 또는 스마트카드에서 제공하는 것과 같은 하드웨어 기반 보안 조치가 요구된다.

7. 활용 방법

공인인증서, 비트코인, 기밀정보, 야동? 등을 도둑, 해커, 스파이, 수사기관, 정보기관 등에서도 찾지 못하게 안전하게 숨겨놓을 수 있다. 에드워드 스노든 사건 때 사용되면서 미국 FBI, CIA, NSA로부터도 안전하다는 사실이 입증되었다.

야한 동영상/은폐와 탐지에 있는 방법 중 FBI나 NSA 레벨에서도 안 뚫릴 만한 방법은 TrueCrypt처럼 데이터를 통째로 암호화하는 방법 밖에 없다. 거기 실려있는 다른 방법들은 전문가에 의해 쉽게 뚫린다. 데이터를 통째로 암호화하면 컴퓨터의 연산력을 이용하여 사전 공격 브루트포스 공격에 의해 비밀번호를 파훼하는 방법을 써야 하는데 영어 소문자, 대문자, 숫자, 특수문자를 섞어서 20자리 이상의 비밀번호를 만들면 양자 컴퓨터라도 상용화되지 않는 이상, 이 지구 상의 어떤 슈퍼 컴퓨터를 동원하더라도 수십 년 안에는 비밀번호를 풀어낼 수 없기 때문이다.

7.1. 암호화폐 보관

거래소에서 구입한 비트코인 Electrum 등으로 생성한 자신의 컴퓨터의 지갑으로 전송한 후, 송금에 필요한 개인 키(private key)를 TrueCrypt로 암호화한 공간에 저장하면 안전하다. 암호화된 볼륨을 여러개 복사하여 USB 메모리, SD 카드, 이메일, 클라우드 컴퓨팅 등에 저장하면 USB 메모리 분실이나 고장에 대비할 수 있다. 암호화 볼륨의 암호를 영어 소문자, 대문자, 숫자, 특수문자를 모두 넣어서 12자리 이상으로 만들면 USB 메모리를 분실해도 꽤 안전하다. 이러한 오프라인 암호화폐 저장소를 콜드 스토리지라고 부른다.

암호화폐 거래소을 목적으로 하는 해커들이 가장 선호하는 목표물 중 하나라 해킹을 자주 당하며, 마운트 곡스( Mt. Gox) 파산 사태처럼 거래소 파산이나 BTC-e처럼 당국의 암호화폐에 대한 출금 규제 등으로 언제든지 계좌에 있는 비트코인이 내 비트코인이 아니게 될 수 있다. 하지만 일렉트럼 등으로 자신의 컴퓨터에 생성한 지갑으로 비트코인을 옮겨놓으면 외부 요인과 상관없이 안전하게 보관할 수 있다. 자신의 컴퓨터도 거래소보다는 안전하지만 해킹 등의 위험이 있으므로 거액의 암호화폐는 오프라인 보관소인 콜드 스토리지에 보관하는 것이 더 안전하다.

전쟁이 났을 때 해외로 대량으로 가지고 나갈 수 없는 달러과는 달리 암호화폐전 세계의 컴퓨터에 내 비트코인이 저장되어 있는 것이나 마찬가지이므로 종이 등에 직접 키를 적어서 들고 다니거나 클라우드 등에 키 파일을 TrueCrypt 등으로 암호화하여 업로드한다면 몸만 부지해서 외국으로 나가도 해외로 거액의 자금을 안전하게 가지고 나가는 것과 같은 효과를 가진다.

8. 보안 위협

8.1. 채굴기를 통한 무차별 대입 공격

대량의 그래픽 카드를 병렬로 연결할 경우 예상 외로 빨리 깨질 수도 있다. 비트코인 채굴이 이런 암호화 수식의 답을 찾는 것이니만큼 슈퍼컴퓨터보다도 암호화 해제에 최적화되어 있기 때문이다. 그럴 경우 암호화에 키 파일도 사용하고, 비밀번호도 최대한 길고 어렵게 만들어야 상대방에 의한 강제적 암호화 해제를 막을 수 있다.

SHA 해독에 그래픽카드보다 96,000배의 연산력을 보이는 ASIC, FPGA 등을 이용한 비트코인 채굴기가 개발되면서 해시 함수의 보안력이 급격히 떨어졌다. 당장 2017년 현재의 상황을 보면, 라데온 R9 290X를 8대 크로스파이어해서 사용한다고 해도 1.12GH/s 정도의 해시레이트가 나오는데, 1,100달러(126만 원) 정도 하는 ASIC 채굴기인 Antminer S9를 사용하면 13,500GH/s가 나온다. 그래픽카드보다 성능이 9만 6천 배나 나은 채굴기가 있다.

하지만 비트코인 채굴기 ASIC는 아래에 나와있듯이 매우 특별한 연산을 하기 때문에, 트루크립트같이 보통 비밀번호를 뚫는데는 쓸 수 없다. 당장에 암호가 (salt포함) 80바이트여야 하는데 그렇게 긴 비밀번호를 쓸 이유가 없지 않는가. 비트코인 채굴기를 바로 암호를 뚫기 위해 쓸수는 없지만, 비트코인 채굴기처럼 암호 뚫기 전용 ASIC을 만든다면 위험할 수도 있다.

아래와 같은 특별한 경우에만 채굴기를 통한 암호화 해제가 가능하다.
the hashes are generated with SHA-256( SHA-256(X))
salt + password = 80 bytes
the hash starts with 4 zero-bytes
which will probably make them obsolete it seems like a huge waste of hardware.

SHA-256을 2번 사용하여 생성된 해쉬이다.
Hash는 비밀번호 부분과 salt 부분의 합이 80바이트여야 한다.
해시는 4바이트의 0[11]으로 시작한다.
이것은 큰 하드웨어 낭비처럼 보이기 때문에 아마 쓸모가 없을것이다.

8.2. 메모리에서 비밀번호 추출 가능

컴퓨터 전원을 끈 후 수 분 이내라면 메모리에 임시로 저장돼있던 트루크립트의 비밀번호를 복구할 가능성이 있다.

컴퓨터 꺼도 남는 ‘5분 흔적’ 잡아채 암호 단서 포착 2011.01.11

[정리] TrueCrypt Forensics 2014.06.14

9. 관련 문서



[1] New documents reveal which encryption tools the NSA couldn't crack 2014/12/28 https://www.theverge.com/platform/amp/2014/12/28/7458159/encryption-standards-the-nsa-cant-crack-pgp-tor-otr-snowden [2] 비트코인 지갑 TRUECRYPT보안키 사용하기 2014/03/30 http://www.news-btc.com/?p=47 [3] 허나 우리나라 경찰이 비밀번호를 해제한적이 있는데, 이는 이 소프트웨어를 사용한 집단이 일관된, 규칙적인 암호를 사용했기 때문이다. [4] TrueCrypt의 소스 코드는 세 가지 오류 및 약점이 발견되었다. 도구 기반 결과를 수동으로 조사했을때 오버플로와 같이 코드 보안에 잠재적으로 중요한 것으로 플래그가 지정된 의심되는 모든 취약점을 오탐지로 식별할 수 있다. 품질 결함은 주로 소스 코드의 유지 관리 및 문서화에서 식별되고 있다. 정적 코드 분석, 자동으로 계산된 다양한 평가 메트릭 및 소스 코드의 수동 검토에서도 결함과 편차에 대한 수많은 오류가 확인된다. [5] "드루킹 일당이 걸어둔 암호 풀어라"…특검, 전문가 총동원 2018-07-18 https://www.yna.co.kr/view/AKR20180718142500004 [6] "드루킹 댓글조작 1/3 암호…FBI도 못 푸는 트루크립트 사용" 2018.07.19 https://voda.donga.com/3/all/39/1394189/1 [7] http://truecrypt.sourceforge.net [8] TrueCrypt audit shows no evidence of NSA backdoors 2015-04-02 http://www.zdnet.com/google-amp/article/truecrypt-likely-didnt-quit-on-nsa-backdoor-fears/ [9] 절전 모드 방지 기능을 사용해도 유효함. [10] 숨김 볼륨용 비밀번호를 따로 입력해야 하고 비밀번호 입력시 숨김 볼륨용인지 아닌지에 따라 보여지는 데이터가 바뀐다. 이경우 파일내 빈 공간도 임의의 데이터로 채우므로 파일만 봐서는 숨김 볼륨의 존재여부를 알 수 없게 된다. [11] 0x00 00 00 00