BitLocker 드라이브 암호화와 TPM 하드웨어 보안 기술
기존 자료 백업 2010. 2. 3. 23:59 |이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^
- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.
- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)
- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)
- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.
BitLocker 드라이브 암호화
BitLocker 드라이브 암호화를 단 하나의 이미지로 표현하자면 드라이브가 BitLocker 로 보호되고 있음을 의미하는 다음의 이미지 하나로 모든 걸 설명할 수 있을 듯 합니다.
[BitLocker 기본 아이콘]
BitLocker 는 위의 아이콘 이미지를 통해 유추해 볼 수 있듯이 윈도우 비스타부터 윈도우에 포함된 드라이브 암호화 기능입니다. 윈도우 7 에 이르러서는 데이터 드라이브와 이동식 데이터 드라이브까지 BitLocker 를 사용할 수 있는 BitLocker To Go 기능이 추가되어 더욱 강력한 기능을 지원하고 있습니다. 하지만 이러한 BitLocker 는 모든 윈도우 비스타 및 윈도우 7 에디션에서 사용할 수 있는 것이 아닙니다.
윈도우 7 의 경우 오직 Ultimate 에디션과 Enterprise 에디션에서만 사용할 수 있습니다. Professional 에디션 이하 Home Premium 에디션, Home Basic 에디션, Starter 에디션에서는 BitLocker 를 사용할 수 없습니다.
개인의 경우 최상위급 제품인 Ultimate 에디션에서만 BitLocker 기능을 사용할 수 있다는 것은 큰 아쉬움으로 남지만 마이크로소프트사의 입장에서 본다면 이러한 정책도 어찌보자면 납들할 수 있을 만한 정책이 아닐까 생각합니다. 마이크로소프트사는 "끼워 팔기" 라고 수 없이 까이며 수 많은 반독점 관련 소송에 휘말려 엄청난 벌금을 물어야만 했습니다. 대표적으로 웹 브라우저인 인터넷 익스플로러의 분쟁을 들 수 있습니다. 물론 이러한 수 많은 반독점 관련 소송은 아직 끝나지 않았고 많은 곳에서 아직도 관련 소송들이 진행되고 있는 상황입니다.
이러한 상황에서 드라이브 암호화 기능인 BitLocker 까지 일반 가정을 대상으로 하는 에디션에서도 사용할 수 있게 채용되었다면 어떻게 되었을까요? 데이터 암호화도 엄연히 하나의 프로그램 분야이며 이를 통해 밥을 벌어 먹는 회사들도 있습니다. 또한 개인 자료의 보안도 점점 중요시 되어가고 있습니다. 즉, 아직 시장이 충분히 성장할 가능성이 크다는 것이지요. 그렇다면 이제는 드라이브 암호화 기능까지 끼워서 판다고 또 수 없이 많은 질타를 받고 "시장의 공정한 경쟁" 을 방해한 죄로 또 다시 소송에 휘말릴 것은 불을 보듯 뻔 합니다. 윈도우에는 EFS 라는 암호화 기능이 이미 있는데도 말이죠.(그것이 드라이브 암호화는 아니지만) 그래서 마이크로소프트사가 취한 방식은 바로 "우리에게는 BitLocker 라는 훌륭한 드라이브 암호화 기능이 있다. 단! 사용할려면 돈을 더 내고 최고급 제품으로 사라!" 라는 입장을 취할 수 밖에 없었다고 생각합니다. 이러한 정책이 자사를 보호함은 물론 "다른 보안 관련 회사들의 입장도 생각해 주는" 소위 욕 안 쳐 먹을 수 있는 전략이 아닐까 생각합니다. 그렇다고 하더라도 BitLocker To Go 때문에 식겁할 회사들도 많아 보이는 건 사실입니다.
이러한 BitLocker 드라이브 암호화의 핵심 중 하나는 암호화 키를 저장할 수 있는 TPM 1.2 보안 칩과의 연동에 있습니다. TPM 1.2 보안 칩은 BitLocker 드라이브 암호화 중 운영 체제 드라이브의 암호화와 연동하여 사용되어 집니다. 그렇다면 TPM(Trusted Platform Module, 신뢰 플랫폼 모듈) 보안 칩이란 무엇일까요? BitLocker 를 알아보기 전 TPM 보안 칩에 대해서 알아보도록 하겠습니다.
TPM(Trusted Platform Module)
TPM 을 한 줄로 간단하게 말하자면 패스워드나 디지털 인증서, 암호화 키를 저장할 수 있는 공간과 RSA 와 SHA-1 등의 암호화 기법이 포함된 하드웨어 칩을 의미합니다. 이러한 TPM 보안 칩은 메인보드에 장착되어 다른 하드웨어 장치들과 통신 합니다. 노트북의 경우 메인보드에 내장되어 있거나 데스크탑의 경우 고급형 보드의 경우 TPM 보안 칩을 장착할 수 있도록 지원하여 따로 TPM 보안 칩을 구매하여 장착하여 사용하게 됩니다. 또는 노트북과 마찬가지로 TPM 보안 칩 자체가 내장되기도 하지만 흔하지는 않습니다.
TPM 보안 칩을 장착할 수 있도록 지원하는 데스크탑용 메인보드.
데스크탑과 달리 노트북의 경우 TPM 보안 칩 자체가 메인보드에 내장되 나오는 경우가 대부분이다.
TPM 보안 칩을 장착한 모습.
이러한 TPM 보안 칩에는 EK(Endorsement Key) 와 SRK(Storage Root Key) 라는 키가 있습니다. 이 키는 다른 TPM 보안 칩들과 중복되지 않는 고유한 키인데다가 고도의 암호화 기술로 보호되어 칩의 외부에서 절대 해당 키들을 알아낼 수 없게 되어 있습니다. 그리하여 "신뢰할 수 있는" 것 입니다.
TPM 은 이러한 고유한 키를 통해 하드 디스크 자체를 암호화 할 수 있습니다. 즉, 하드웨어적으로(TPM 보안 칩 자체로) 데이터를 암호화할 수 있는 것 입니다. 이렇게 암호화된 데이터는 해당 TPM 보안 칩이 없이는 절대 암호를 해독할 수 없습니다. 즉, 암호화를 진행한 해당 메인보드가 아니고서는 데이터를 해독할 수 없는 것 입니다.
TPM 1.2 는 이러한 TPM 보안 칩 자체로써 뿐만 아니라 다른 암호화 프로그램과 연동되기도 합니다. 대표적인 예가 바로 글에서 알아보고 있는 윈도우 비스타와 윈도우 7 의 BitLocker 기능 중 운영 체제 드라이브의 암호화 기능과 TPM 1.2 보안 칩과의 연동입니다.
BitLocker 데이터 암호화 방식
이 내용은 마이크로소프트 테크넷에 잘 올라와 있으므로 해당 글을 내용을 그대로 인용해 드리도록 하겠습니다.
BitLocker 드라이브 암호화를 사용하여 데이터를 보호하기 위한 핵심 사항 - BitLocker 의 데이터 암호화 방식
BitLocker는 128비트 키와 함께 AES(고급 암호화 표준) 알고리즘을 사용합니다. 그룹 정책이나 BitLocker WMI(Windows Management Instrumentation) 공급자를 통해 128비트 키를 256비트 키로 늘려 데이터를 더욱 안전하게 보호할 수 있습니다.
볼륨의 각 섹터는 개별적으로 암호화되며 암호화 키의 일부는 섹터 번호에서 파생됩니다. 따라서 암호화되지 않은 동일한 데이터가 포함된 두 개의 섹터가 있더라도 디스크에는 서로 다른 암호화된 바이트가 기록되므로 알려진 일부 정보를 만들고 암호화하는 방법으로는 키를 알아내기가 훨씬 어려워졌습니다.
BitLocker는 AES로 데이터를 암호화하기 전에 디퓨저라는 알고리즘도 사용합니다. 간단히 설명하자면 디퓨저는 일반 텍스트가 조금이라도 변경되면 암호화된 암호 텍스트의 전체 섹터를 변경하는 알고리즘입니다. 이 알고리즘 또한 공격자가 키나 데이터를 검색하기 어렵게 만듭니다.
BitLocker는 128비트 키와 함께 AES(고급 암호화 표준) 알고리즘을 사용합니다. 그룹 정책이나 BitLocker WMI(Windows Management Instrumentation) 공급자를 통해 128비트 키를 256비트 키로 늘려 데이터를 더욱 안전하게 보호할 수 있습니다.
볼륨의 각 섹터는 개별적으로 암호화되며 암호화 키의 일부는 섹터 번호에서 파생됩니다. 따라서 암호화되지 않은 동일한 데이터가 포함된 두 개의 섹터가 있더라도 디스크에는 서로 다른 암호화된 바이트가 기록되므로 알려진 일부 정보를 만들고 암호화하는 방법으로는 키를 알아내기가 훨씬 어려워졌습니다.
BitLocker는 AES로 데이터를 암호화하기 전에 디퓨저라는 알고리즘도 사용합니다. 간단히 설명하자면 디퓨저는 일반 텍스트가 조금이라도 변경되면 암호화된 암호 텍스트의 전체 섹터를 변경하는 알고리즘입니다. 이 알고리즘 또한 공격자가 키나 데이터를 검색하기 어렵게 만듭니다.
BitLocker 키 구조
이 내용 역시 마이크로소프트 테크넷에 잘 올라와 있으므로 해당 글을 내용을 그대로 인용해 드리도록 하겠습니다. 아무래도 제가 어설프게 말을 섞을 필요 없이 쉽게 잘 설명이 되어 있으니 이 내용으로도 충분하실 겁니다.
BitLocker 드라이브 암호화를 사용하여 데이터를 보호하기 위한 핵심 사항 - BitLocker 키
암호화 기능을 사용하려면 키에 대해서 잘 알아야 하며 BitLocker도 예외는 아닙니다. BitLocker에서는 정교하지만 다소 복잡한 키 구조를 사용합니다.
암호화 기능을 사용하려면 키에 대해서 잘 알아야 하며 BitLocker도 예외는 아닙니다. BitLocker에서는 정교하지만 다소 복잡한 키 구조를 사용합니다.
섹터 자체는 FVEK(전체 볼륨 암호화 키)라는 키로 암호화됩니다. 하지만 사용자는 FVEK를 사용하지도, 이에 액세스할 수도 없습니다. FVEK는 다시 VMK(볼륨 마스터 키)라는 키로 암호화됩니다. 이러한 수준의 추상화에는 나름대로의 장점도 있지만 이로 인해 암호화 프로세스가 다소 이해하기 어려울 수도 있습니다. FVEK가 노출되면 모든 섹터를 다시 암호화해야 하므로 FVEK는 집중 보호되는 기밀 데이터로 보관됩니다. 이러한 작업은 시간이 많이 소요되므로 FVEK를 사용하고 싶지 않을 수도 있습니다. 이러한 이유로 시스템에서는 대신 VMK를 사용합니다.
FVEK는 VMK로 암호화되어 볼륨 메타데이터의 일부로 디스크 자체에 저장됩니다. FVEK가 로컬에 저장되기는 하지만 암호화되지 않은 상태로 디스크에 기록되는 일은 결코 없습니다.
VMK도 하나 이상의 키 보호기를 통해 암호화되거나 "보호"됩니다. 기본 키 보호기는 TPM입니다. TPM 사용에 대해서는 무결성 검사에 관해 설명하는 다음 단원에서 살펴봅니다. 비상시에 대비해 키 보호기 역할을 하는 복구 암호도 생성됩니다. 복구에 대해서도 뒷부분에서 설명합니다.
TPM을 USB 드라이브에 저장된 부분 키나 숫자 PIN과 함께 사용하면 보안을 강화할 수 있습니다. 이러한 각 방식을 이중 인증의 한 형식이라고 할 수 있습니다. 컴퓨터에 호환 TPM 칩과 BIOS가 없는 경우 키 보호기를 전적으로 USB 드라이브에 저장하도록 BitLocker를 구성할 수 있습니다. 이를 시작 키라고 합니다.
데이터의 암호를 해독하지 않고 BitLocker를 비활성화할 수 있습니다. 이 경우 VMK는 암호화되지 않은 상태로 저장된 새 키 보호기를 통해서만 보호됩니다. 이 일반 키 덕분에 시스템에서는 보호되지 않은 것처럼 보호된 드라이브에 액세스할 수 있습니다.
시스템이 시작될 때 시스템에서는 TPM을 쿼리하고 USB 포트를 확인하여 적절한 키 보호기를 검색합니다. 또는 필요한 경우 사용자에게 키 보호기를 요청하는데 이를 복구라고 합니다. 키 보호기를 찾으면 VMK, FVEK, 디스크에 저장된 데이터의 순서로 암호가 해독됩니다. 이 프로세스는 그림 1에 나와 있습니다.
BitLocker 의 키 보관 옵션
BitLocker 는 드라이브를 암호화를 진행한 후 이 암호를 해독할 수 있는 기본(시작) 키와 응급 상황에서 기본 키의 역활을 하는 복구 키(복구 암호)로 구성이 되어 있습니다. 이 때 기본 키는 운영 체제 드라이브를 암호화한 경우 TPM 과 연동되거나 USB 장치를 사용하는 경우 암호화 된 파일로 저장이 되며 고정 데이터 드라이브 및 이동식 데이터 드라이브는 사용자 지정 암호로 지정이 됩니다. 복구 키(복구 암호)는 48 자리의 랜덤한 숫자로 구성이 되어 있으며 시작 키를 잃어버렸을 경우 최후에 드라이브를 열 수 있는 열쇠 역활을 합니다.
운영 체제 드라이브를 암호화하는 경우 기본 키로 위에서 설명한 TPM 보안 칩을 사용합니다. 하지만 TPM 보안 칩이 장착되지 않은 시스템도 많기 때문에 윈도우에서는 TPM 보안 칩 뿐만 아니라 USB 장치에 저장할 수 있도록 지원하고 있으며 이 때는 사용자가 BitLocker 의 정책을 설정해 주어야 합니다. 또한 USB 저장 장치를 사용하는 경우 BIOS 에서 부팅시 USB 장치를 읽을 수 있어야 합니다(USB 부팅을 지원하면 읽을 수 있다고 보시면 됩니다.)
운영 체제 드라이브 암호화의 경우 다음의 네 가지 옵션을 통해 기본 키를 구성할 수 있습니다.(고정 데이터 드라이브 및 이동식 데이터 드라이브를 암호화하는 경우가 아닙니다.)
- TPM 이 포함된 BitLocker
- USB 장치를 사용하는 BitLocker
- TPM 및 PIN 이 포함된 BitLocker
- TPM 및 USB 장치를 사용하는 BitLocker
TPM 이 포함된 BitLocker 의 경우 TPM 1.2 버전의 보안 칩이 메인보드에 내장되어 있어야 하며 BIOS 에서 이를 지원을 해 주어야 합니다. 최근에 출시되는 노트북들은 TPM 1.2 보안 칩을 내장하여 출시되는 경우가 많기 때문에 노트북 유저라면 자신의 노트북이 TPM 1.2 를 포함하고 있는지 확인해 보시길 바랍니다.
TPM 에 시작 키를 구성하는 경우의 BitLocker 의 암호 해독 과정에 대한 흐름은 아래의 그림과 같습니다.
[TPM 이 포함된 BitLocker 의 암호 해독 과정]
- BIOS가 시작되고 TPM을 초기화합니다. 신뢰할 수 있는/측정된 구성 요소가 TPM과의 상호 작용을 통해 구성 요소 측정 값을 TPM의 PCR(Platform Configuration Registers)에 저장합니다.
- PCR 값이 예상 값과 일치하면 TPM은 SRK(Storage Root Key)를 사용하여 VMK(Volume Master Key)를 해독합니다.
- 암호화된 FVEK를 볼륨에서 읽고 이를 해독할 때 VMK를 사용합니다.
- 디스크 섹터에 액세스할 때 FVEK를 사용하여 해독합니다.
- 일반 텍스트 데이터가 응용 프로그램 및 프로세스에 제공됩니다.
사실 위의 내용을 모두 알 필요는 없고 여러분들이 알고 계셔야 할 것은 하나입니다. TPM 만을 사용하는 경우 사용자가 암호 해독 과정에 관여하지 않고 TPM 이 모든 작업을 처리한다는 것 입니다. 즉, 우리가 실제로 윈도우를 부팅할 때에는 BitLocker 를 사용하지 않을 때와 별반 차이가 없다는 것 입니다. 하지만 실제론 운영 체제 드라이브는 BitLocker 로 보호된 상태이기 때문에 만약 하드 디스크를 분리하여 다른 시스템에서 사용하려고 하면 드라이브의 내용을 확인할 수 없는 것입니다.
이렇듯 TPM 만 사용하는 경우 윈도우의 부팅 과정에 아무런 제한 장치가 없기 때문에 사용자는 필히 윈도우 사용자 계정에 암호를 사용하여 시스템을 보호할 필요가 있습니다. 쉽게 생각해 보시길 바랍니다. 악의적인 사용자가 노트북이나 데스크톱을 통채로 들고 튀었습니다.(누가 하드 디스크 하나씩 풀고 있습니까? 당연히 그냥 들고 뛰죠! 안 그런가요?) 당연히 시작 키인 TPM 까지 통채로 들고간 것이니 악의적인 사용자가 윈도우에 로그온하여 자료를 빼내는 것을 막을 방법은 오직 윈도우에 설정된 사용자 계정 밖에 없는 것입니다. 만약 윈도우 계정에 암호를 사용하지 않는다거나 자동 로그인 상태로 사용 중이라면 악의적인 사용자는 아무런 장애물 없이 운영 체제 드라이브의 데이터에 접근할 수 있게 되는 것 입니다. 즉, BitLocker 가 아무런 역활도 하지 못하는 것 입니다.
만약 윈도우의 사용자 계정에 강력한 암호가 설정이 되어 있다면 악의적인 사용자는 이를 뚫을 수 없음을 파악하고 하드 디스크를 분리하여 다른 컴퓨터에 장착하고 안의 내용을 확인하려 할 것 입니다. 그럴 때 바로 BitLocker 가 제 기능을 발휘하게 되는 것 입니다. 이해하시겠나요?
이런 연유로 TPM 만을 사용하여 운영 체제 드라이브를 보호하는 경우 반드시 사용자 계정도 그에 상응하는 강력한 암호로 보호를 해주셔야 정확한 보안이 이루어지는 것 입니다. 만약 사용자 계정은 자동 로그온 등으로 좀 더 유연하게 사용하고 싶으시다면 TPM + PIN 또는 TPM + USB 와 같은 조합을 통하여 반드시 부팅 과정에서 추가적인 확인 과정을 거치도록 하시길 바랍니다. 뭐 둘 다 귀찮긴 마찬가지입니다.
다음으로 거의 대다수의 데스크톱에서 적용될 내용인 USB 장치를 사용하는 BitLocker 방식입니다. 사실 대다수의 데스크톱 메인보드나 구형 노트북 또는 저가형 노트북의 경우 TPM 1.2 칩이 내장되어 있지 않은 경우가 대부분 입니다. 그럴 경우엔 TPM 과 BitLocker 의 조합을 사용할 수 없습니다. 이럴 때를 대비하여 윈도우 비스타와 윈도우 7 에서는 USB 장치를 사용할 수 있도록 BitLocker 의 정책을 수정하는 것을 지원하고 있습니다. 이 때 바이오스가 부팅시 USB 장치를 읽을 수 있도록 지원을 해야 합니다. USB 부팅을 지원하는 메인보드는 이 역시 지원하고 있다고 생각하시면 빠르실 겁니다.
USB 장치에 시작 키를 구성하는 경우의 BitLocker 의 암호 해독 과정에 대한 흐름은 아래의 그림과 같습니다.
[USB 장치를 사용하는 BitLocker 의 암호 해독 과정]
- 운영 체제가 시작되고 USB 키가 들어 있는 USB 장치를 연결하라는 메시지가 사용자에게 표시됩니다.
- USB 장치의 키를 사용하여 VMK가 해독됩니다.
- 암호화된 FVEK를 볼륨에서 읽고 이를 해독할 때 VMK를 사용합니다.
- 디스크 섹터에 액세스할 때 FVEK를 사용하여 해독합니다.
- 일반 텍스트 데이터가 응용 프로그램 및 프로세스에 제공됩니다.
이럴 경우 BitLocker 는 시작 키를 USB 장치에 저장하게 되며 윈도우 부팅시 USB 장치를 장착해야만 부팅이 진행 됩니다. 즉, TPM 때와는 달리 부팅시 USB 장치를 반드시 컴퓨터에 장착시켜야하는 추가적인 과정을 거쳐야만 하는 겁니다. 그리하여 오직 해당 USB 장치를 가진 사용자만 해당 컴퓨터를 사용할 수 있습니다.
이 방식의 장점이자 단점이라면 시작 키를 여러 벌 복사해 둘 수 있다는 것 입니다. 이는 시작 키를 포함한 USB 장치를 여러 개 만들 수 있으므로 해당 컴퓨터에 접근할 수 있는 사용자를 원하는대로 추가해 줄 수 있지만 이는 곧 시작 키가 유출될 가능성을 높여줍니다.
TPM + PIN 이나 TPM + USB 에 좀 더 자세한 정보는 다음의 글을 참고하실 바랍니다.
http://technet.microsoft.com/ko-kr/library/cc162804.aspx
앞으로 진행될 포스팅에서는 이러한 USB 장치를 사용하는 BitLocker 를 다루게 될 것 입니다. 왜냐하면 제 메인보드에는 TPM 보안 칩이 없고 저는 노트북도 가지고 있지 않기 때문이죠. 제 마음은 TPM 을 비롯하여 모든 경우를 강력하게 다루어 보고 싶지만 그럴 수 없어서 아쉬울 따름입니다. 이 글은 여기까지 입니다.