1. 개요
BitLocker 구동 화면 |
시스템 드라이브 암호화, 이동식 디스크 암호화(BitLocker to go)를 지원하며 Windows Vista부터 지원하기 시작했다. Bitlocker To Go는 XP/Vista에서 읽기만 가능(쓰기 불가)하였다. 윈도우 7에서는 Ultimate와 Enterprise 에디션, 윈도우 8 이후로는 Pro 에디션부터 사용할 수 있다. 서버 제품군의 경우 Windows Server 2008부터 사용 가능하다. 윈도우 8.1 이후로는 USB 메모리외에도 SD 카드도 BitLocker to go로 보호할 수 있게 되었다. 윈도우 10 이후로는 "XTS-AES" 방식의 암호화를 지원하며, 이전 버전의 윈도우와의 하위호환(이동식 디스크 용도)을 위해서 AES-CBC를 선택할 수도 있다.
2. 특징
이미 사용중인 디스크를 포맷할 필요 없이 암호화 할 수 있어서 편리하다. AES 128-bit 암호화를 기본적으로 사용하며, 윈도우 10 버전 1511에서부터 XTS-AES라는 새로운 암호화 방식을 사용할 수 있다. 다만 해당 방식을 사용할 경우 이전 버전의 Windows와의 호환성은 보장받지 못한다. 필요한 경우 그룹설정에서 변경할 수 있다.잠금을 해제하기 위한 수단으로 다양한 방법을 지원한다. 패스워드, TPM, 키파일, 스마트카드를 사용할 수 있으며 시스템 암호화의 경우 USB를 꽂으면 부팅이 된다든가 하는 식으로 운용이 가능하다. TPM이 달린 시스템의 경우는 TPM칩이 스스로 시스템의 무결성을 체크한 후 부팅되게 하는 식으로 작동된다. 다만 TPM을 사용할 시 듀얼부팅을 사용하면 TPM이 초기화되기 때문에 이런 경우에는 VeraCrypt를 사용하는 편이 나을 수도 있다.
암호화에 사용할 드라이브가 OPAL 표준을 지원한다면 디스크 컨트롤러 내부의 자체 하드웨어 기반 암호화를 사용할 수 있으며 그렇지 않으면 소프트웨어 기반 암호화를 사용할 수 있어 특별한 요구 조건 없이 사용이 가능하다. 다만 보안 취약점의 발견으로 인해 이 방식은 사실상 사용되고 있지 않다.
소프트웨어 방식을 사용하게 되는 경우 CPU의 AES-NI가속을 사용하기 때문에 요즘 시스템을 사용하고 있다면 시스템을 전부 비트라커로 암호화해도 퍼포먼스 저하는 거의 없다. 파일단위로 암호화 하는게 아니라 파티션을 통째로 AES로 암호화 시켜버리기 때문에 매우 안전하다. USB 메모리를 암호화 시키면 잃어버려도 습득한 사람이 암호를 모르는 한
3. 장치 암호화
BitLocker가 제공되지 않는 Windows 10 Home 및 Windows 11 Home에서는 장치 암호화라는 기능이 제공되는데, BitLocker의 축소판이라고 보면 된다. 이 기능은 도난이나 분실이 발생했을 경우 장치 내의 개인 파일에 다른 사람이 무단으로 접근하는 것을 차단하기 위한 것이다.장치 암호화는 다음과 같은 조건이 총족되었을 때, 자동으로 활성화되고 활성화 시에는 드라이브에 자물쇠 아이콘이 나온다. 파티션 관리에서 확인해보면 BitLocker로 암호화되었다고 나온다.
- Windows Modern Standby를 지원하는 제품
- 마이크로소프트 계정에 로그인되어 있음
- TPM이 메인보드에 장착되어 있거나 CPU에 내장되어 있고 활성화되어 있을 경우
- 메인보드 펌웨어가 UEFI이고 Secure Boot가 활성화되어 있을 경우
장치 암호화가 켜진 경우 외장 드라이버를 제외한 모든 드라이브에 BitLocker 암호화를 적용하며, 암호화를 해제하기 위한 복구키는 마이크로소프트 계정에 저장된다. 물론 외장 드라이브에 백업해 둘 수도 있다. 만약 윈도우 부팅 불능이라 Windows RE와 같은 외부 OS로 부팅해서 해결해야 할 경우 복구키를 입력해야 내부 드라이브에 접근할 수 있다.
장치 암호화는 설정에서 끌 수 있다. 끌 경우 해독하는데 시간이 걸리지만 윈도우는 계속 사용할 수 있다.
4. 사용법
이동식 저장장치를 암호화 하는 기능과 시스템 드라이브를 암호화하는 기능이 있다. 내 컴퓨터에서 그냥 암호화할 드라이브를 마우스 오른쪽 클릭하면 암호화 메뉴가 나타난다. 커맨드라인에서 사용할 경우 더 세부적인 기능들을 사용할 수 있다. 명령어는 manage-bde다. 암호화를 시작하면 파티션의 용량에 따라 완료 되기까지 시간이 좀 걸린다. 암호화하는 과정에서 복구키(recovery key)를 만들어 줄 건데, 이것이 있으면 드라이브의 암호화를 해제할 수 있으니 아무데나 두면 암호화의 의미가 없어질 수도 있다. 윈도우 서버에서도 사용이 가능하며 서버 관리자에서 BitLocker기능을 추가해 줘야 한다.참고로 부팅 시 복구키만(≠ Windows 계정의 암호, PIN[1]) 요구하는 경우가 생기므로 복구키 백업은 필수이다. 한 번 윈도우에서 복구키를 요구하기 시작하면[2], 이후부터는 아무리 유저가 암호나 PIN을 알고 있더라도 복구키 이외에 드라이브의 잠금을 해제할 방법은 없다. 복구키로 최소 한 번은 해제해야 이후부터 암호나 PIN을 통한 해제가 가능하다. 아래 복구키 항목 참조.
4.1. 복구키 문제
많은 사람들은 "나는 암호를 잊어먹을 일이 없다"고 생각하겠지만, 만약 C드라이브에 BitLocker를 걸었을 경우 암호 기억 여부와 상관없이 복구키를 따로 보관해야 한다. 매일 암호키 입력이 문제 없던 컴퓨터라도 윈도우 버전 업데이트, 윈도우+리눅스 듀얼부팅, BIOS/UEFI 업데이트, 하드웨어 변동[3] 등 장치에 변동이 생길 경우 아래 기타 항목에서 서술한 대로 복구키만 요구하는 경우가 있기 때문. 그러므로 위와 같은 변동에 앞서 복구키를 보관하거나, OS의 BitLocker를 해제할 필요가 있다.이때는 복구키만 요구하기 때문에 암호를 알더라도 못쓴다. 이는 특히 SecureBoot가 켜져있을 때 발생할 가능성이 높다.[4] 복구키는 가급적 오프라인으로 보관해야 한다. 또한, 윈도우 업데이트 이후 복구키를 요구하고, 기존 복구키가 먹히지 않는 경우도 있다.
여러 디스크를 사용하는 경우, 운영체제(OS)가 설치된 드라이브가 아닌 드라이브의 복구키를 요구하여 부팅이 불가능한 경우가 있는데, 다른 컴퓨터의 비트라커 드라이브를 가져올 때 가끔 일어난다. 윈도우 설치 USB로 들어가 cmd에서 BCD를 적당히 만져주면 된다. BitLocker 복구키는 MS계정 로그인 시 복구키를 클라우드에 업로드하는 옵션이 있기때문에 설정 시 주의를 요한다.
5. 문제점
비트로커는 2024년의 시점에서는 여러가지 문제점들을 보유한 구식 암호화 도구이다. 그리고 대중적인 암호화 프로그램 중 하나다보니 수사기관 또는 정보기관에서 이를 해제하기 위한 취약점을 보유하고 있을 가능성이 높다.[5] 거기다 비트로커는 오픈 소스가 아니라 클로즈드 소스이기 때문에 마이크로스프트 측에서 정부의 압력 등으로 백도어를 심어놨을지도 모를 일이다.[6] 따라서 민감한 보안을 요구하는 자료를 보관하는데는 적합하지 않을 수 있다. 그러나 비트로커가 일상적인 상황에서 충분히 강력한 보안성을 가지고 있기에 일반 개인 사용자나 기업의 일상적인 정보를 보관하는 용도로는 해결책이 될 수 있다. 특히 Windows와 가장 호환성이 좋은 암호화 프로그램이라는 점에서 사용을 고려해보는 것도 좋다.ZDNet 보도에 따르면 마이크로소프트의 BitLocker는 CIA에 의해 정보를 탈취당하지만 트루크립트는 공개 감사(public audit)에도 불구하고, NSA에 의해 심어진 백도어(backdoor)나 심각한 보안 결함을 찾지 못했다고 한다.[7]
5.1. 콜드 부트 공격 취약성
시스템 전원이 꺼지더라도 짧은 시간 동안은 메모리 안의 데이터가 보존되는데, 컴퓨터를 끈 직후 툴을 사용하여 메모리 전체를 이미지화하고 암호키를 추출하는 방법이다. 특히 RAM에 냉동 스프레이(freeze spray)을 뿌리는 등 급랭시키면 RAM에 저장된 내용이 장기간 휘발되지 않는다는 특성을 악용하기도 한다. 참고로 이 취약점을 방지하기 위하여 VeraCrypt는 버전 1.24부터 Cold Boot Attack Protection 기술을 도입했지만, BitLocker는 아직까지 별다른 소식이 없는 상태.5.2. 저장장치 내장 암호화 기능의 취약점
저장장치 제조사에서 제작한 암호화 하드웨어 가속 기능에 보안 취약점이 있다는 것이 밝혀진 이후 소프트웨어 방식 비트라커 암호화가 권장된다. # 윈도우 pro 버전에서 gpedit.msc를 사용하고, cmd에서 gpupdate 명령어를 사용하면 된다. 자세한 사항은 블로그를 검색하라. gpedit.msc를 관리자 권한으로 실행해 운영체제 드라이브, 외장 드라이브, 고정 드라이브에 대한 암호화 기본 설정을 소프트웨어 방식으로 변경하는 일이 가능하다. C드라이브 등 시스템 파티션에 BitLocker를 걸었다면, 시작 시 추가 인증 요구 설정을 바꿀 필요가 있다.최근에는 윈도우 업데이트로 인해 기본값이 소프트웨어 암호화로 변경되었다. 하드웨어 암호화 이슈는 TPM과는 무관하므로 소프트웨어 방식으로 비트라커를 사용하더라도 TPM을 사용하는 것이 좋다. 단, TPM은 컴퓨터의 전원 차단, CMOS 배터리 탈거, 바이오스 업데이트, 윈도우 업데이트 등의 영향을 받는 경우가 있다. BitLocker 적용 전 디스크 상태가 정상인지 확인하지 않으면 데이터의 유실 가능성이 있다.
5.3. FDE 관련 취약성
비트락커는 FDE(전체 디스크 암호화)를 사용한다. FDE는 암호화하려는 디스크 파티션 전체를 동일한 암호키로 암호화하는 방식이다.윈도우 커널과 부팅 시 자동 실행되는 애플리케이션 등이 설치되어 있는 폴더도 당연히 암호화 파티션에 포함되어 있으므로, 사용자의 비밀번호 입력을 기다리지 않고 컴퓨터를 부팅하기 위해서는 디스크 암호키를 평문으로 저장해 두어야 한다.
하지만 이를 그냥 하드디스크에 보관한다면 암호화를 하는 의미가 없기 때문에 TPM이라는 보안 프로세서에 평문으로 저장해 두고[8], 부팅 시 시스템 무결성 검사 후 이상이 없으면 TPM은 저장된 암호키 출력하고, 부트로더는 암호화된 디스크를 마운트한다. 그러면 정상적인 운영체제가 부팅되어 로그인을 요구한다. 그러나 이 방법을 사용하면 시스템 취약점을 통한 공격으로 인해 TPM을 통한 무결성 검사를 무력화하거나 로그인 화면을 건너뛰는 등의 공격이 가능해진다.
부팅 시 직접 디스크 비밀번호를 입력하는 방법을 사용하면 FDE을 사용해도 안전하겠지만, 비밀번호 입력 전 자동 실행되는 앱이 전혀 작동하지 않고 원격 부팅 같은것을 사용하기 어려워 사용이 번거로워진다. 다만 키가 시스템에 저장되어 있지 않아 시스템 취약점 공격을 통한 키 탈취는 어렵다.[9]
이 문제를 완전히 해결하기 위해선 파일시스템 기반 암호화를 비트락커에 적용하여 운영체제와 자동 실행되는 앱의 암호키만 TPM에 저장하고, 일반 파일 암호화에는 계정 로그인 비밀번호를 직접 사용하도록 하여야 한다. 그러나 그에 맞추어 자동 실행되거나 백그라운드에서 작동하는 앱을 새로 개발해야 하므로 그 전까지는 호환성 문제가 발생할 여지가 있다.[10]
사실 이런 방식의 보안이 등장할때부터 우려가 있었고, 실제 해킹된 경우도 있었기 때문에 MS에서 이 문제를 인지하지 못하고 있을 리는 없다. 차기 윈도우에서도 해결이 안되면 영영 고칠 생각이 없다는 뜻이니 그냥 VeraCrypt 같은 다른 암호화 도구를 사용하는 게 낫다. 다른 유명 암호화 툴 중에서 콜드 부트 공격에 가장 취약하다는 문제점도 마찬가지이다.
5.4. TPM 관련한 잠재적 취약성
TPM 자체도 상당히 오래된 보안체계이다보니 상당한 취약점을 가지고 있을 가능성이 있다. 따라서 앞으로 출시될 차세대 윈도우의 경우 비트락커에 마이크로소프트 플루톤을 사용하게 될 가능성도 있다.5.5. 호환성 문제
윈도우즈에서만 사용 가능하다는 단점이 있다. dislocker라는 오픈 소스 툴을 이용하면 리눅스에서도 일단 사용할 수는 있다. 여러 OS에서 호환 되기를 원한다면 TrueCrypt를 이어받은 VeraCrypt 등 다른 암호화 도구를 사용하는게 나을 수도 있다.6. 기타
마이크로소프트의 서피스 시리즈 등 몇몇 비즈니스용 컴퓨터[11]에는 BitLocker가 활성화된 상태로 출고되는 경우가 있다. 이럴 경우 필히 자신/소속된 조직의 MS계정에 연동해두거나 복구 키를 받아놓고 안전한 곳에 보관해두자. 이는 옵션이 아닌 필수사항이다. 이는 부팅 불능 등의 이유로 메인보드를 교체해야 하는 상황이 될 경우 안에 있는 자료를 계속 사용하기 위함이며, 특히 UEFI+GPT+SecureBoot+BitLocker가 전부 적용된 C 드라이브의 경우, 메인보드 교체나 듀얼부팅 등 변동이 발생하면 윈도는 자신을 복구키로만 해제하도록 요구한다. 만약 위에 서술한 방법대로 대비해두지 않았다면 그 자료들은 영영 사용할 수 없게 된다. 보드가 교체되면서 해당 ID가 바뀌었기 때문에 TPM에서 키가 사라졌기 때문이다. 그리고 메인보드의 전지를 건들거나 새로운 하드웨어를 연결하는 작업[12][13] 등을 하고나서 TPM이 잠기는 경우가 드물게 있는데 이때 복구 키가 없다면 자료를 영영 되찾을 수 없다.자신이 기업용 노트북을 구입했거나 직장에서 수령받았을 때 내 PC의 로컬 디스크[14] 아이콘에 자물쇠 모양이 있다면 BitLocker가 활성화되었음을 의미한다. 그러므로 구입/수령즉시 필히 확인해서 자신의 MS계정에 연동 혹은 관련 부서에 문의해서 조치받거나 복구 키를 받아 안전한 곳에 보관해두도록 하자.
컴퓨터의 전체적인 성능이 향상된 근래에는 윈도우 서비스 최적화를 하는 경우가 별로 없긴 하지만, 비트라커의 작동에는 BitLocker Drive Encryption Service 서비스 외에도, Shell Hardware Detection 서비스가 작동에 필요[15]하다. 시작 유형(E) 기본값은 자동이다. 이 서비스가 켜져있지 않을 때의 주요 증상은 내 PC에서 로컬 디스크 (C:) 등에서 우클릭을 했을 때 BitLocker 켜기(B) 항목이 사라지고, 제어판에서 BitLocker 드라이브 암호화 항목이 사라진다. 또한, 작업 표시줄 검색에서 직접 BitLocker를 검색해서 클릭하면 먹통이 되며, 설정 -> 시스템 -> 정보에서 BitLocker 설정을 클릭하면 설정 창이 몇 초 후에 팅기게 된다.
윈도우 11 버전 24H2 부터는 '기본 옵션' 으로 bitlocker 옵션이 활성화 되어 있는 정책이 적용되어 사용시 주의가 필요하다. 개인이 직접 조립한 컴퓨터에는 문제가 없지만 정작 완제품으로 판매되는 PC의 경우 'UEFI 암호화 기본 옵션'+'윈도우 설치 판매' 때문에 사용자가 컴퓨터를 처음 사용하면서 계정을 연결하는 과정에서 자동으로 bitlocker가 드라이브에 적용되는 사례가 많다.
문제점은 위에도 있듯이, PC에 대해 어느 정도 알고 있는 조립컴 유저에는 적용되지 않으면서 정작 컴퓨터에 대해 잘 모르거나 간편하게 쓰고자 하는 완제품 사용자들이 bitlocker가 자동으로 켜진 상태로 사용하게 된다는 것이다. 해외에서는 이전부터 계정 로그아웃이 되거나 다른 컴퓨터로 디스크를 떼어 옮겨야 할 때 암호화된 자료를 꺼내지 못해 곤란에 빠진 어르신들이 많다는 제보가 있었다. 유일한 방법은 마이크로소프트의 지원을 받아 계정에 로그인하는 것이지만, 시스템에 관심이 없는 순수 사용자들이라 컴퓨터를 처음 사용할 때 임의로 암호를 넣고 잊어버리는 경우가 대부분이고, 컴퓨터 안에 MS에 전달하면 비밀번호를 찾을 수 있는 정보가 저장되지만 '그 정보 자체가 bitlocker로 암호화된 상황' 이라 이도저도 못하는 경우가 허다하다고. 예방하는 방법은 문제가 생기기 전에 bitlocker를 미리 꺼서 암호화를 풀어 두는 것 뿐이다.
7. MS 공식 문서
- Windows 보안
- 하드웨어 보안
- 운영체제 보안 / 암호화 및 데이터 보호
- BitLocker - 전체 볼륨/드라이브 암호화 (Win 7 / 10 차이)
- PDE(개인 데이터 암호화) - 파일 암호화
≠ EFS(Encrypted File Service, 파일 시스템 암호화) 설정/차이
8. 관련 문서
[1] TPM + 전체 디스크 암호화를 사용하는 비트락커는 Windows 계정 사용자 암호를 드라이브 암호화에 전혀 사용하지 않고 있다.[2] 간단히 메인보드 자체의 버그로도 발생할 수 있다. # 저 경우는 fTPM 기능을 다시 활성화하는 것으로 원상복구되지만, 이외의 대부분의 경우는 저걸로 끝나지 않는다.[3] 메인보드 수리, CPU 업그레이드, 글카 업그레이드 등.[4] 비트락커를 설정한 후 다른 운영체제를 로드한 적이 있다면 100% 복구키를 요구한다.[5] 실제로 가끔씩 비트로커의 취약점을 보완하는 윈도우 업데이트가 진행된다.[6] 당연히 마이크로스프트측은 백도어가 존재하지 않는다고 말하지만 100% 신뢰할 수는 없다는 것.[7] 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/[8] TPM에 보관되는 키는 TPM 내부에서 암호화 과정을 거치지만 결국 이 암호화에 사용되는 키도 별다른 설정을 하지 않는다면 시스템 내부에 있다. 즉 평문으로 저장한 것과 다름없다.[9] TPM이 없는 컴퓨터에서는 이 방법을 통해 BitLocker 사용이 가능하다.[10] 안드로이드도 전체 디스크 암호화를 쓰다가 파일시스템 기반 암호화로 넘어가는데 시간이 오래 걸렸다. 하드웨어 자체는 구글이 강제로 넘어가게 유도했으나 애플리케이션이 제대로 지원하지 않는 경우가 많았다.[11] 하지만 HP 파빌리온 x360 2021년 모델 등 일부 개인용 제품에서도 BitLocker가 활성화되어 출고되기도 한다.[12] 가끔 USB 만 연결해도 막히는 경우가 있다.[13] TPM이 펌웨어 방식이라면 노트북의 배터리가 끝까지 떨어지는 경우에도 잠겨버릴 수 있다. 이 지경이 되기 전에 절전모드가 되는 게 일반적이긴 하다.[14] C드라이브나 D드라이브 등[15] 이 서비스의 시작 유형(E)를 사용 안 함으로 바꾼 후에 재부팅을 하면 비트라커 자체가 시스템에서 사라지는 걸 볼 수 있다. 재부팅 전에는 이 서비스를 직접 중지해도 작동에는 이상이 없다. 그래서 이 서비스가 비트라커 작동에 관여한다는 사실을 모른 상태에서는 서비스에서 항목을 키고 끄는 등, 원인 규명에 애를 먹을 수 있다.[16] 즉 반대로 읽어보면, 일반적인 BitlLocker 설명은 C 드라이브 암호화에 초점이 맞춰져 있다는 것을 알 수 있다.