내보내기(0) 인쇄
모두 확장

BitLocker 드라이브 암호화 작업 가이드: AD DS로 암호화된 볼륨 복구

업데이트 날짜: 2008년 5월

적용 대상: Windows Server 2008, Windows Vista

이 문서에서는 조직에서 AD DS(Active Directory 도메인 서비스)에 저장된 BitLocker 복구 정보를 사용하여 BitLocker로 암호화된 데이터에 액세스하는 방법을 보여 줍니다. BitLocker 배포를 계획하는 동안 BitLocker 복구 모델을 완전히 만드는 것이 좋습니다.

이 문서의 내용

이 문서에는 Windows Vista® Enterprise, Windows Vista® Ultimate 및 Windows Server® 2008의 BitLocker 복구 프로세스를 계획하는 동안 사용할 수 있는 자세한 정보가 수록되어 있습니다.

이 문서를 적절하게 이해하고 적용하려면 BitLocker 복구 정보를 자동으로 백업하도록 AD DS를 설정하는 방법과 AD DS에 저장되는 복구 정보의 유형을 이해해야 합니다.

이 문서에 포함된 항목은 다음과 같습니다.

이 문서에 포함되지 않은 내용

이 문서에서 BitLocker 복구 정보를 저장하도록 AD DS를 구성하는 방법은 설명하지 않지만 조직에서 복구 프로세스를 계획하는 방법에 대해서는 중요하게 소개하고 있습니다. 또한 Windows RE(Windows 복구 환경)를 사용하고 시작 중에 복구 암호를 입력하여 BitLocker 사용 볼륨을 복구할 수도 있습니다.

AD DS에 복구 정보를 저장하는 방법에 대한 자세한 내용은 Windows BitLocker 드라이브 암호화 및 신뢰할 수 있는 플랫폼 모듈 복구 정보를 백업하도록 Active Directory 구성(http://go.microsoft.com/fwlink/?LinkId=82827)(페이지는 영문일 수 있음)을 참조하십시오.

BitLocker 복구란?

모든 복구 시나리오에서 AD DS에 저장된 복구 암호는 드라이브에 대한 액세스의 잠금을 해제합니다. 이 저장된 암호는 사용된 인증 방법에 관계없이 BitLocker를 복구할 수 있습니다.

BitLocker 복구의 원인

BitLocker 복구의 원인 중 몇 가지는 다음과 같습니다.

  • 공격자가 사용자 컴퓨터를 수정한 경우. 이는 TPM(신뢰할 수 있는 플랫폼 모듈)에서 시작 중에 부팅 구성 요소의 무결성을 검사하기 때문에 TPM이 있는 컴퓨터에 해당하는 원인입니다.

  • BitLocker로 보호되는 드라이브를 새 컴퓨터로 이동한 경우

  • 새 TPM이 있는 새 마더보드로 업그레이드한 경우

  • TPM을 해제하거나 사용하지 않도록 설정하거나 지운 경우

  • TPM의 유효성 검사 실패 원인인 중요한 초기 부팅 구성 요소를 업그레이드한 경우

  • PIN 인증이 사용될 때 PIN을 잊어버린 경우

  • 시작 키 인증이 사용될 때 시작 키가 포함된 플러그형 USB 플래시 드라이브를 잃어버린 경우

note참고
복구를 시작하기 전에 복구의 원인을 확인하는 것이 좋습니다. 이는 문제가 향후에 다시 발생하는 것을 방지하는 데 도움이 될 수 있습니다. 예를 들어 공격자가 사용자 컴퓨터에 실제로 액세스하여 수정했음을 확인하는 경우 사용자 컴퓨터에 실제로 있는 사용자를 추적하는 새로운 보안 정책을 만들 수 있습니다. 공격자가 사용자 컴퓨터를 수정한 경우 복구를 시작하기 전에 해당 문제를 해결하지 못하면 공격으로 인해 BitLocker 사용 볼륨에서 지속적으로 복구를 수행해야 할 수도 있습니다.

알려진 하드웨어 업그레이드와 같은 계획된 시나리오의 경우 BitLocker 보호를 임시로 사용하지 않도록 설정하여 복구 시작을 방지할 수 있습니다. BitLocker를 사용하지 않도록 설정하면 드라이브가 완전히 암호화된 상태로 유지되므로 관리자가 계획된 작업이 완료된 후 신속하게 BitLocker 보호를 다시 사용하도록 설정할 수 있습니다. BitLocker를 임시로 사용하지 않도록 설정하려면 제어판, 명령줄 도구 또는 해당 WMI(Windows Management Instrumentation) 인터페이스 메서드를 호출하는 배포된 스크립트를 사용합니다.

복구는 계획되지 않거나 바람직하지 않은 동작의 맥락에서 설명되었지만 액세스 제어를 관리하기 위해 의도된 프로덕션 시나리오로 복구를 수행할 수도 있습니다. 예를 들어 기업의 다른 부서나 직원에게 데스크톱 또는 랩톱 컴퓨터를 다시 배포하는 경우 컴퓨터를 새로운 사용자에게 제공하기 전에 BitLocker를 강제로 복구 모드로 전환할 수 있습니다.

복구 테스트

완전한 BitLocker 복구 프로세스를 만들기 전에 최종 사용자(복구 암호를 요청하기 위해 기술 지원팀에게 연락할 수 있는 사용자)와 관리자(최종 사용자가 복구 암호를 얻는 것을 도와줄 수 있는 사용자)에 대한 복구 프로세스의 작동 방식을 테스트하는 것이 좋습니다.

다음 표를 사용하여 조직에서 복구를 테스트하는 최상의 방법을 결정할 수 있습니다. 인증 방법 열에는 BitLocker 인증 방법이 표시됩니다. 테스트 환경에서 구현한 인증 방법에 부합하는 인증 방법을 선택하십시오.

 

인증 방법 복구 시작 방법

TPM + PIN

  • 시작 중에 PIN을 보류합니다.

  • PIN과 연결된 키 보호기를 제거합니다.

TPM + 시작 키

  • 시작 중에 시작 키를 보류합니다.

  • 시작 키와 연결된 키 보호기를 제거합니다.

시작 키

  • 시작 중에 시작 키를 보류합니다.

  • 시작 키와 연결된 키 보호기를 제거합니다.

모든 TPM 기반 인증 방법

  • TPM과 연결된 키 보호기를 제거합니다.

  • TPM을 해제합니다.

시작 중에 PIN 보류

컴퓨터가 시작될 때 PIN을 입력하지 않거나 잘못된 PIN을 입력하여 복구를 시작할 수 있습니다. PIN을 입력하지 않으면 Windows 이전 버전 복구 콘솔에 복구 암호를 입력할 수 있는 화면이 표시됩니다.

시작 중에 시작 키 보류

컴퓨터가 시작될 때 시작 키가 포함된 USB 플래시 드라이브를 넣지 않는 방법으로 복구를 시작할 수 있습니다. 시작 키를 제공하지 않으면 Windows 이전 복구 콘솔에 복구 암호를 입력할 수 있는 화면이 표시됩니다.

TPM과 연결된 키 보호기 제거

TPM 기반 키 보호기가 없는 경우 사용자가 복구 암호나 복구 키만 사용하여 드라이브의 잠금을 해제할 수 있습니다.

로컬 컴퓨터의 복구를 강제로 수행하려면

  1. 시작 단추를 클릭하고 검색 시작 상자에 cmd를 입력한 다음 cmd.exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.

  2. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

  3. 명령 프롬프트에 다음 명령을 입력한 후 Enter 키를 누릅니다.

    cscript manage-bde.wsf -forcerecovery <볼륨>

note참고
<볼륨>은 BitLocker로 보호되는 볼륨을 나타냅니다.

원격 컴퓨터의 복구를 강제로 수행하려면

  1. 시작 단추를 클릭하고 검색 시작 상자에 cmd를 입력한 다음 cmd.exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.

  2. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

  3. 명령 프롬프트에 다음 명령을 입력한 후 Enter 키를 누릅니다.

    cscript manage-bde.wsf -ComputerName <컴퓨터 이름> -forcerecovery <볼륨>

note참고
<컴퓨터 이름>은 원격 컴퓨터의 이름을 나타내고, <볼륨>은 BitLocker로 보호되는 원격 컴퓨터의 볼륨을 나타냅니다.

TPM 해제

TPM 관리 MMC(Microsoft Management Console) 스냅인을 사용하여 TPM을 해제할 수 있습니다.

TPM 관리 스냅인을 사용하여 TPM을 해제하려면

  1. 시작 단추를 클릭하고 검색 시작 상자에 tpm.msc를 입력한 다음 tpm.msc를 클릭합니다.

  2. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

  3. 콘솔 트리에서 TPM을 선택합니다.

  4. 작업 창에서 TPM 해제를 클릭한 다음 마법사에서 TPM 소유자 암호를 입력합니다.

TPM WMI 인터페이스를 사용하여 저장된 TPM 소유자 암호 해시를 자동으로 검색한 다음 해당 해시를 사용하여 TM을 로컬 또는 원격으로 해제하는 스크립트를 작성할 수도 있습니다.

복구 프로세스 계획

BitLocker 복구 프로세스를 계획하는 경우 먼저 현재 조직에서 중요한 정보를 복구하는 최상의 방법을 알아봅니다. 예를 들면 기업에서 손실된 Windows 암호를 처리하는 방법이나 조직에서 스마트 카드 PIN을 다시 설정하는 방법을 알아봅니다. 이러한 최상의 방법과 관련 리소스(사람과 도구)를 사용하여 BitLocker 복구 모델을 용이하게 구성할 수 있습니다.

BitLocker 복구가 시작된 후 사용자는 복구 암호를 사용하여 암호화된 데이터에 대한 액세스의 잠금을 해제할 수 있습니다. 조직의 자체 복구 및 복구 암호 검색 방법을 모두 고려해야 합니다.

복구 프로세스를 결정하는 경우 다음을 수행해야 합니다.

  • 복구 암호를 검색하는 방법을 파악합니다. 자세한 내용은 다음을 참조하십시오.

  • 복구 발생 이유를 분석하고 복구 암호를 다시 설정하는 등의 복구 후 일련의 단계를 결정합니다. 자세한 내용은 다음을 참조하십시오.

자체 복구

경우에 따라 사용자가 인쇄물이나 USB 플래시 드라이브에 있는 복구 암호를 사용하여 자체 복구를 수행할 수 있습니다. 조직에서 자체 복구에 대한 정책을 만드는 것이 좋습니다. 예를 들어 복구의 근본 원인을 파악할 수 있도록 사용자가 자체 복구 수행 전후에 기술 지원팀에 연락하도록 정책을 지정할 수 있습니다.

복구 암호 검색

사용자가 인쇄물이나 USB 플래시 드라이브로 복구 암호를 갖고 있지 않은 경우에는 기술 지원팀에 연락해야 합니다.

note참고
복구 암호 검색 프로세스를 계획하는 경우 전체 지원 프로세스가 전화로 이루어질 수 있음을 고려해야 합니다.

도메인 관리자는 Active Directory 사용자 및 컴퓨터의 BitLocker 복구 암호 뷰어 도구를 사용하여 Active Directory에 있는 특정 컴퓨터 개체의 BitLocker 복구 암호를 볼 수 있습니다. Windows Vista에서는 Active Directory 사용자 및 컴퓨터 스냅인을 아직 사용할 수 없기 때문에 Windows Server 2003 또는 Windows XP 컴퓨터에 이 뷰어 도구를 설치해야 합니다. 이 도구를 구하는 방법과 사용하는 방법에 대한 자세한 내용은 Microsoft 기술 자료(http://go.microsoft.com/fwlink/?LinkId=93476)(페이지는 영문일 수 있음)를 참조하십시오.

복구 암호 검색을 위한 자체 복구 프로세스를 만들 때 다음 목록을 템플릿으로 사용할 수 있습니다. 이 예제 프로세스에서는 Active Directory 사용자 및 컴퓨터의 BitLocker 복구 암호 뷰어 도구를 사용합니다.

사용자 컴퓨터의 이름 기록

사용자의 컴퓨터 이름을 사용하여 AD DS에서 복구 암호를 찾을 수 있습니다. 사용자가 컴퓨터 이름을 모르는 경우 BitLocker 드라이브 암호화 암호 항목 사용자 인터페이스에 있는 드라이브 레이블의 첫 단어를 읽게 합니다. 이 단어는 BitLocker가 사용되었을 때의 컴퓨터 이름이며 현재 컴퓨터 이름일 수도 있습니다.

사용자의 ID 확인

복구 암호를 요청하는 사용자가 정말로 해당 컴퓨터의 권한 있는 사용자인지 확인해야 합니다. 또는 사용자가 제공한 이름의 컴퓨터가 사용자의 소유인지 확인할 수도 있습니다.

AD DS에서 복구 암호 찾기

AD DS에서 이름이 일치하는 컴퓨터 개체를 찾습니다. 컴퓨터 개체 이름이 AD DS 글로벌 카탈로그에 표시되기 때문에 다중 도메인 포리스트가 있는 경우에도 개체를 찾을 수 있습니다.

여러 복구 암호

여러 복구 암호가 AD DS의 컴퓨터 개체 아래에 저장된 경우 BitLocker 복구 정보 개체의 이름에는 암호가 만들어진 날짜가 포함됩니다.

어떤 암호를 제공해야 할지 모르겠거나 잘못된 암호를 제공할 수 있다고 우려되는 경우에는 복구 콘솔에 표시되는 암호 ID를 읽도록 사용자게 요청합니다. 컴퓨터의 암호 중 하나를 선택하기 위해 사용자가 전체 ID를 읽을 필요는 없습니다. 처음 8자나 마지막 6자면 충분합니다.

암호 ID가 AD DS에 저장된 각 복구 암호와 연결된 고유한 값이므로 이 ID를 사용하여 쿼리를 실행하면 암호화된 볼륨의 잠금을 해제하는 올바른 암호를 찾을 수 있습니다.

복구가 발생한 원인을 확인하기 위해 정보 수집

복구 후 분석 중에 근본 원인을 분석하기 위해 사용자에게 복구 암호를 제공하기 전에 복구가 필요한 이유를 확인하는 데 도움이 되는 정보를 수집해야 합니다. 복구 후 분석에 대한 자세한 내용은 복구 후 분석을 참조하십시오.

사용자에게 복구 암호 제공

복구 암호의 길이가 48자이기 때문에 기록하거나 다른 컴퓨터에 입력하여 암호를 기록하라고 사용자에게 지시히는 것이 좋습니다. 복구가 시작되면 컴퓨터가 시작될 때마다 BitLocker 복구 콘솔이 계속 나타납니다. 단, 사용자가 기술 지원팀에 연락한 후 곧바로 시작 키나 PIN을 찾거나 기억해내는 경우는 예외입니다. 복구 후 분석을 수행하기 전에 기술 지원팀에 계속 연락하는 것을 방지하기 위해 기술 지원팀에서는 사용자에게 복구 암호를 기록하여 지갑 등의 안전한 곳에 보관하라고 알릴 수 있습니다. 복구 후 분석 중에 관리자는 시작할 때마다 복구되는 것을 방지하기 위해 드라이브의 BitLocker 보호를 새로 고칠 수 있습니다. 복구 후 분석에 대한 자세한 내용은 복구 후 분석을 참조하십시오.

note참고
48자리 복구 암호가 길고 숫자 조합을 포함하기 때문에 사용자가 암호를 잘못 듣거나 잘못 입력할 수도 있습니다. 부팅 시 복구 콘솔에서는 기본 제공 체크섬 번호를 사용하여 48자리 복구 암호의 각 6자리 블록에서 입력 오류를 검색하고 사용자에게 해당 오류를 수정할 수 있는 기회를 제공합니다.

복구 후 분석

BitLocker는 TPM과 같은 복구 이외의 방법을 사용하여 볼륨 액세스를 처리하는 방식과 동일하게 복구 암호를 사용하여 볼륨 액세스를 처리합니다. 볼륨의 잠금을 해제하면 암호화 키가 해제된 것이며 데이터를 볼륨에 쓸 때 즉시 암호화를 수행하고 데이터를 볼륨에서 읽을 때 즉시 암호를 해독할 준비가 됩니다. 볼륨의 잠금이 해제되면 액세스 권한이 부여된 방식에 관계없이 BitLocker가 동일한 방식으로 작동합니다.

사용자가 컴퓨터를 종료하거나 최대 절전 모드로 전환되도록 하면 BitLocker가 암호화된 볼륨을 다시 잠그고 컴퓨터를 강제로 복구 모드로 다시 전환합니다. 따라서 관리자가 복구 후 분석을 수행하여 복구의 근본 원인을 확인하고 컴퓨터가 시작될 때마다 사용자가 더 이상 복구 암호를 입력할 필요가 없도록 BitLocker 보호를 새로 고칠 때까지 사용자는 복구 암호를 갖고 있어야 합니다. 자세한 내용은 다음을 참조하십시오.

  1. 복구의 근본 원인 확인

  2. BitLocker 보호 새로 고침

복구의 근본 원인 확인

사용자가 드라이브를 복구해야 하는 경우 복구를 시작한 근본 원인을 가능한 한 빨리 확인해야 합니다. 적절하게 컴퓨터의 상태를 분석하고 변조를 검색하면 기업 보안에 폭넓은 영향을 미치는 위협 요인을 찾을 수 있습니다.

경우에 따라 관리자가 복구의 원인을 원격으로 조사할 수 있지만 근본 원인을 자세히 분석하려면 최종 사용자가 복구된 드라이브를 포함하는 컴퓨터를 현장으로 가져와야 할 수도 있습니다.

조직에 대한 다음 질문을 검토하고 답변하십시오.

  1. 적용되는 BitLocker 보호 모드(TPM, TPM + PIN, TPM + 시작 키, 시작 키만)는 무엇입니까?

  2. 사용자가 PIN을 잊어버렸거나 시작 키를 읽어버렸습니까? 토큰을 잃어버린 경우 토큰이 있을 것 같은 곳은 어디입니까?

  3. TPM 모드가 적용된 경우 부팅 파일 변경으로 복구가 발생했습니까?

  4. 부팅 파일 변경으로 복구가 발생한 경우 복구의 원인이 의도된 사용자 작업(예: BIOS 업그레이드) 때문입니까, 아니면 악성 소프트웨어 때문입니까?

  5. 사용자가 마지막으로 컴퓨터를 성공적으로 시작할 수 있었던 때는 언제이고, 그 이후로 컴퓨터에 어떤 일이 발생했을 수 있습니까?

  6. 마지막으로 성공적으로 시작된 후 사용자가 악성 소프트웨어를 발견했거나 컴퓨터를 두고 자리를 비웠을 수 있습니까?

이러한 질문에 쉽게 대답하려면 BitLocker 명령줄 도구를 사용하여 현재 구성과 보호 모드를 확인하거나(예: manage-bde -status), 이벤트 로그를 검사하여 복구가 시작된 이유를 나타내는 이벤트를 찾습니다(예: 부팅 파일이 변경된 경우). 이러한 두 작업은 원격으로 수행할 수 있습니다.

근본 원인 확인

복구의 원인을 확인했으면 BitLocker 보호를 다시 설정하고 시작할 때마다 복구되는 것을 방지할 수 있습니다.

이러한 다시 설정의 세부 사항은 복구의 근본 원인에 따라 달라질 수 있습니다. 근본 원인을 확인할 수 없거나 악성 소프트웨어 또는 루트킷이 컴퓨터를 감염시켰을 가능성이 있는 경우 기술 지원팀은 최상의 바이러스 정책을 적용하여 적절하게 대응해야 합니다.

note참고
볼륨 암호를 해독한 다음 BitLocker를 다시 사용하도록 설정하여 BitLocker를 항상 다시 설정할 수 있습니다. 또한 운영 체제를 제거한 다음 BitLocker를 다시 사용하도록 설정할 수도 있습니다.

PIN을 알 수 없음

사용자가 PIN을 잊어버린 경우 컴퓨터가 다시 시작될 때마다 BitLocker가 복구를 시작하는 것을 방지하기 위해 관리자가 컴퓨터에 로그온되어 있는 동안 해당 PIN을 다시 설정해야 합니다.

PIN을 알 수 없기 때문에 복구가 계속되는 것을 방지하려면

  1. 관리자로 로그온합니다.

  2. 다음을 수행하여 PIN을 다시 설정합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 키 관리를 클릭한 다음 PIN 다시 설정을 클릭합니다.

  3. 부록 B: 복구 암호 다시 설정의 스크립트를 사용자 지정하고 실행하여 복구 암호를 다시 설정합니다.

  4. 다음을 수행하여 복구 암호를 복제합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 키 관리를 클릭한 다음 복구 암호 복제를 클릭합니다.

시작 키를 잃어버림

시작 키가 포함된 USB 플래시 드라이브를 잃어버린 경우 BitLocker를 해제한 다음 다시 설정하여 컴퓨터가 다시 시작될 때마다 BitLocker가 복구 모드로 전환되는 것을 방지해야 합니다.

시작 키를 잃어버렸기 때문에 복구가 계속되는 것을 방지하려면

  1. 시작 키를 잃어버린 컴퓨터에 관리자로 로그온합니다.

  2. 다음을 수행하여 BitLocker를 해제하고 모든 드라이브 암호를 해독합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 끄기를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 모든 드라이브 암호 해독을 클릭합니다.

  3. 다음을 수행하여 BitLocker를 설정하고 모든 드라이브를 다시 암호화합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 켜기를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 새 시작 키와 복구 암호를 만듭니다.

또는 관리자가 BitLocker 명령줄 도구 manage-bde를 사용하여 이전 시작 키를 제거하고 새 시작 키를 추가할 수 있습니다.

부팅 파일이 변경되었고 이유를 알 수 있음

시스템 BIOS를 의도적으로 업데이트한 경우 이 오류가 발생할 수 있습니다. 컴퓨터가 시작될 때마다 BitLocker가 계속 복구 모드로 전환되지 않도록 하기 위해 몇 가지 단계를 수행해야 합니다.

업데이트된 시스템 BIOS 때문에 복구가 계속되는 것을 방지하려면

  1. PIN을 잊어버린 컴퓨터에 관리자로 로그온합니다.

  2. 다음을 수행하여 드라이브 암호를 해독하지 않고 BitLocker를 해제합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 끄기를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 BitLocker 사용 안 함을 클릭합니다.

  3. 다음을 수행하여 BitLocker를 설정합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 켜기를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 새 시작 키와 복구 암호를 만듭니다.

  4. 부록 B: 복구 암호 다시 설정의 스크립트를 사용자 지정하고 실행하여 복구 암호를 다시 설정합니다.

  5. 다음을 수행하여 복구 암호를 복제합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 키 관리를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 복구 암호 복제를 클릭합니다.

부팅 파일이 변경되었고 이유를 알 수 없음

악성 소프트웨어가 시스템 부팅 파일을 수정한 경우 이 오류가 발생할 수 있습니다. 컴퓨터가 시작될 때마다 BitLocker가 계속 복구 모드로 전환되지 않도록 하기 위해 몇 가지 단계를 수행해야 합니다.

알 수 없는 이유로 인한 부팅 파일의 변경 때문에 복구가 계속되는 것을 방지하려면

  1. 컴퓨터에 관리자로 로그온합니다.

  2. 컴퓨터의 중요한 데이터를 모두 컴퓨터 외부의 위치(예: 공유 폴더)에 백업합니다.

  3. Windows Vista를 다시 설치합니다.

  4. 다음을 수행하여 BitLocker를 설정합니다.

    1. 컴퓨터에 관리자로 로그온합니다.

    2. 시작을 클릭하고 제어판을 클릭합니다.

    3. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    4. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    5. BitLocker 제어판 항목에서 BitLocker 켜기를 클릭합니다.

    6. BitLocker 드라이브 암호화 대화 상자에서 새 시작 키와 복구 암호를 만듭니다.

  5. 문제가 해결되었는지 조사합니다. 운영 체제 이전 악성 소프트웨어가 컴퓨터에 설치되어 있으면 사용자에게 새 컴퓨터를 발급해야 할 수 있습니다.

TPM 설정이 잘못되었고 이유를 알 수 있음

TPM을 사용하지 않도록 설정한 경우 이 유형의 오류가 발생할 수 있습니다. 컴퓨터가 시작될 때마다 BitLocker가 계속 복구 모드로 전환되지 않도록 하기 위해 몇 가지 단계를 수행해야 합니다.

알려진 이유로 인한 잘못된 TPM 설정 때문에 복구가 수행되는 것을 방지하려면

  1. TPM에 대한 설정 변경을 취소합니다.

    1. 시작 단추를 클릭하고 검색 시작 상자에 tpm을 입력한 다음 tpm.msc를 클릭합니다.

    2. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    3. 작업 창에서 오류를 발생시킨 TPM 설정을 되돌리는 옵션을 클릭합니다.

      예를 들어 TPM을 사용하지 않도록 설정한 경우 TPM 설정을 클릭하여 TPM을 다시 사용하도록 설정해야 합니다.

  2. 부록 B: 복구 암호 다시 설정의 스크립트를 사용자 지정하고 실행하여 복구 암호를 다시 설정합니다.

  3. 다음을 수행하여 복구 암호를 복제합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 키 관리를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 복구 암호 복제를 클릭합니다.

TPM 설정이 잘못되었고 이유를 알 수 없음

악성 소프트웨어가 TPM을 사용하지 않도록 설정한 경우 이 유형의 오류가 발생할 수 있습니다. 컴퓨터가 시작될 때마다 BitLocker가 계속 복구 모드로 전환되지 않도록 하기 위해 몇 가지 단계를 수행해야 합니다.

알 수 없는 이유로 인한 잘못된 TPM 설정 때문에 복구가 수행되는 것을 방지하려면

  1. 다음을 수행하여 드라이브 암호를 해독하지 않고 BitLocker를 해제합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 끄기를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 BitLocker 사용 안 함을 클릭합니다.

  2. 다음을 수행하여 TPM을 지웁니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. 왼쪽 창의 참고 항목에서 TPM 관리를 클릭합니다.

    5. 작업 창에서 TPM 지우기를 클릭합니다.

  3. 다음을 수행하여 TPM을 초기화합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. 왼쪽 창의 참고 항목에서 TPM 관리를 클릭합니다. TPM 관리 콘솔이 표시됩니다.

    5. 작업 창에서 TPM 초기화를 클릭합니다. TPM 초기화 마법사가 시작됩니다.

      note참고
      TPM이 설정된 적이 없거나 현재 해제되어 있는 경우 TPM 초기화 마법사에서 TPM 보안 하드웨어 설정 페이지가 표시됩니다. 이 페이지의 지침을 읽은 다음 이 절차의 6단계로 이동하십시오. TPM이 이미 설정되어 있으면 TPM 초기화 마법사에서 TPM 소유자 암호 만들기 페이지가 표시됩니다. 다음 단계를 계속 수행하여 TPM의 소유권을 설정합니다. TPM 초기화 마법사에서 Windows Vista 요구 사항을 충족하지 않는 BIOS를 검색하는 경우 마법사를 계속할 수 없으며 컴퓨터 제조업체 설명서의 TPM 초기화 지침을 참조하라는 메시지가 표시됩니다.

    6. 컴퓨터를 다시 시작하고 BIOS 화면 프롬프트를 따릅니다.

    7. 컴퓨터가 다시 시작된 후 Windows에 로그온하기 전에 TPM의 재구성을 허용할 것인지 묻는 메시지가 표시됩니다. 이에 따라 악성 소프트웨어가 TPM을 초기화하려는 것이 아니라 사용자가 실제로 컴퓨터 앞에 있는 것이 확인됩니다.

      note참고
      BIOS 화면 프롬프트와 표현은 컴퓨터 제조업체에 따라 다릅니다.

    8. Windows에 로그온한 후 알림 영역의 Windows Defender 아이콘을 마우스 오른쪽 단추로 클릭하고 차단된 프로그램 실행을 가리킨 다음 TPM 초기화 마법사를 클릭합니다.

    9. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

  4. 다음을 수행하여 TPM의 소유권을 설정합니다.

    note참고
    TPM을 사용하여 컴퓨터를 보호하려면 TPM을 소유도 해야 합니다. TPM의 소유권을 설정하면 권한 있는 TPM 소유자만 TPM에 액세스하고 관리할 수 있도록 암호를 할당하게 됩니다. 더 이상 TPM을 사용하지 않으려는 경우나 컴퓨터가 재활용될 예정일 때 TPM을 지우려는 경우 TPM을 해제하는 데도 TPM 암호가 사용됩니다. 다음 절차는 TPM 초기화 마법사를 사용하여 TPM의 소유권을 설정하는 프로세스를 단계별로 나타낸 것입니다.

    1. TPM 소유자 암호 만들기 페이지에서 자동으로 암호 만들기(권장)를 클릭합니다.

    2. TPM 소유자 암호 저장 대화 상자에서 암호 저장을 클릭합니다.

    3. 다른 이름으로 저장 대화 상자에서 암호를 저장할 위치를 선택한 다음 저장을 클릭합니다. 암호 파일이 <컴퓨터 이름>.tpm으로 저장됩니다.

      Important중요
      TPM 소유자 암호를 이동식 미디어에 저장하는 것이 좋습니다.

    4. 암호의 하드 카피를 인쇄하려면 암호 인쇄를 클릭합니다.

      Important중요
      TPM 소유자 암호의 하드 카피를 인쇄하고 안전한 곳에 저장하는 것이 좋습니다.

    5. 초기화를 클릭합니다. TPM 초기화 프로세스가 완료되려면 몇 분이 걸릴 수 있습니다.

    6. 닫기를 클릭합니다.

      Caution주의
      암호를 잃어버리지 마십시오. 암호를 잃어버리면 TPM을 지우지 않는 한 소유자 암호가 필요한 TPM을 변경할 수 없습니다.

  5. 다음을 수행하여 BitLocker를 설정합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 켜기를 클릭합니다.

  6. 부록 B: 복구 암호 다시 설정의 스크립트를 사용자 지정하고 실행하여 복구 암호를 다시 설정합니다.

  7. 다음을 수행하여 복구 암호를 복제합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 키 관리를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 복구 암호 복제를 클릭합니다.

시스템 상태가 잘못되었음

컴퓨터가 시작될 때마다 BitLocker가 계속 복구 모드로 전환되지 않도록 하기 위해 몇 가지 단계를 수행해야 합니다.

잘못된 시스템 상태 때문에 복구가 수행되는 것을 방지하려면

  1. 복구 콘솔의 오류 메시지를 검토하고 가능한 경우 거기에 설명되어 있는 단계를 수행합니다.

  2. 부록 B: 복구 암호 다시 설정의 스크립트를 사용자 지정하고 실행하여 복구 암호를 다시 설정합니다.

  3. 다음을 수행하여 복구 암호를 복제합니다.

    1. 시작 단추를 클릭하고 제어판을 클릭합니다.

    2. 제어판에서 보안을 클릭한 다음 BitLocker 드라이브 암호화를 클릭합니다.

    3. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

    4. BitLocker 제어판 항목에서 BitLocker 키 관리를 클릭합니다.

    5. BitLocker 드라이브 암호화 대화 상자에서 복구 암호 복제를 클릭합니다.

추가 복구 정보 사용

48자리 BitLocker 복구 암호 외에도 다른 유형의 복구 정보가 Active Directory에 저장됩니다. 이 섹션에서는 이 추가 정보를 사용하는 방법에 대해 설명합니다.

BitLocker 키 패키지

이 문서의 앞부분에서 설명한 복구 방법으로 볼륨의 잠금이 해제되지 않으면 BitLocker 복구 도구를 사용하여 블록 수준에서 볼륨 암호를 해독할 수 있습니다. 이 도구는 BitLocker 키 패키지를 사용하여 심각하게 손상된 드라이브에서 암호화된 데이터를 복구합니다. 올바른 복구 암호를 사용하여 손상된 볼륨의 잠금을 해제하지 못한 후에도 이 복구된 데이터를 사용하여 암호화된 데이터의 손실을 막을 수 있습니다. 하지만 이러한 경우에도 복구 암호를 저장하는 것이 좋습니다. 해당 복구 암호가 없으면 키 패키지를 사용할 수 없습니다.

BitLocker 키 패키지를 사용하려면 BitLocker 복구 도구를 사용해야 합니다. BitLocker 복구 도구를 구하고 사용하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 문서 928201(http://go.microsoft.com/fwlink/?LinkId=91736)(페이지는 영문일 수 있음)을 참조하십시오.

BitLocker 키 패키지는 복구 암호와 동일한 AD DS 위치에 저장됩니다. 작업 볼륨에서 키 패키지를 내보낼 수도 있습니다. 키 패키지를 내보내는 방법에 대한 자세한 내용은 부록 C: BitLocker 키 패키지 검색을 참조하십시오.

TPM 정보

TPM 소유자 암호를 AD DS에 저장할 수 있습니다. 그러나 BitLocker 복구 암호와 달리 컴퓨터별로 TPM 정보를 하나만 저장할 수 있습니다. 이 저장된 TPM 정보를 사용하여 관리자가 TPM 소유자의 승인이 필요한 작업을 수행할 수 있기 때문에 이 정보를 TPM 소유자 권한 부여라고도 합니다. 예를 들어 관리자는 TPM 소유자 권한 부여를 사용하여 원격 네트워크에 있는 역할이 해제된 컴퓨터 그룹에서 TPM을 지울 수 있습니다. 이러한 유형의 작업은 저장된 TPM 정보가 없으면 수행할 수 없습니다.

TPM 관리 시나리오에 대한 자세한 내용은 Windows TPM(신뢰할 수 있는 플랫폼 모듈) 관리 단계별 가이드(http://go.microsoft.com/fwlink/?LinkId=82830)(페이지는 영문일 수 있음)를 참조하십시오.

TPM 소유자 권한 부여가 필요한 지원되는 메서드의 목록을 비롯하여 TPM과 함께 작동하는 스크립트를 작성하는 방법에 대한 자세한 내용은 TPM WMI 공급자 설명서(http://go.microsoft.com/fwlink/?LinkId=91734)(페이지는 영문일 수 있음)를 참조하십시오.

TPM 정보를 저장하는 방법에 대한 자세한 내용은 부록 D: TPM 정보 저장을 참조하십시오.

부록 A: 사용 권한 위임

그룹 정책을 사용하여 액세스 제어를 설정하는 조직은 기술 지원팀 직원과 같은 도메인 관리자가 아닌 사용자에게 사용 권한을 위임하는 것을 고려할 수 있습니다.

도메인 관리자는 대개 이 권한이 없는 사용자에게 BitLocker 복구 암호를 읽어주거나 저장된 TPM 소유자 정보를 읽어줄 수 있는 권한을 위임할 수 있습니다.

이 섹션에서는 세 단계로 사용 권한을 위임하는 방법에 대해 설명합니다.

  1. 새 사용자 그룹을 만듭니다.

  2. 기술 지원팀 직원 등의 구성원을 그룹에 추가합니다.

  3. 액세스 제어 및 속성 읽기 권한을 그룹에 할당합니다.

새로운 사용자 그룹을 만들고 구성원을 그룹에 추가하려면 그룹 관리(http://go.microsoft.com/fwlink/?LinkId=91737)(페이지는 영문일 수 있음)를 참조하십시오.

예를 들어 관리자 권한 명령 프롬프트에서 다음 명령을 입력하면 test.contoso.com 도메인 내에서 BitLocker Recoverers라는 글로벌 보안 그룹이 만들어집니다.

dsadd group "cn=BitLocker Recoverers,cn=Users,dc=test,dc=contoso,dc=com" -desc "Users with access to BitLocker recovery passwords stored in Computer objects." -secgrp yes -scope g

도메인 관리자로 스크립트를 실행하여 액세스 제어 및 읽기 속성 권한을 그룹에 할당할 수 있습니다. 스크립트를 사용하여 Active Directory 보안을 관리하는 방법에 대한 자세한 내용은 스크립트를 사용하여 Active Directory 보안 관리(http://go.microsoft.com/fwlink/?LinkId=79652)(페이지는 영문일 수 있음)를 참조하십시오.

다음 예제 스크립트를 사용하면 BitLocker Recoverers 사용자 그룹이 현재 도메인의 BitLocker 복구 암호를 읽을 수 있습니다.

다음 예제 스크립트를 실행하려면

  1. VBScript 파일에 각 예제 스크립트를 저장합니다. 예를 들어 DelegateBitLocker.vbs에 예제 스크립트를 저장하십시오.

  2. 관리자 권한 명령 프롬프트 창을 엽니다.

    1. 시작 단추를 클릭하고 cmd를 입력한 다음 cmd.exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.

    2. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

  3. 관리자 권한 명령 프롬프트에서 다음과 유사한 명령을 입력합니다.

    cscript DelegateBitLocker.vbs

이름이 다른 사용자 그룹을 만들었거나 다른 도메인의 사용자 그룹을 참조해야 하는 경우 다음 예제 스크립트의 첫 줄을 변경합니다. 예를 들어 "BitLocker Recoverers"를 "DOMAIN\Help Desk Staff"로 변경합니다.

' 다른 그룹을 참조하려면 그룹 이름을 변경합니다. 예를 들어 "DOMAIN\Help Desk Staff") 
strGroupName = "BitLocker Recoverers"로 변경하십시오.  

' -------------------------------------------------------------------------------- 
' ACE(액세스 제어 항목) 상수 
' --------------------------------------------------------------------------------

'- ADS_ACETYPE_ENUM 열거 
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT      = &H5   ' 개체가 작업을 수행하도록 허용합니다.

' - ADS_ACEFLAG_ENUM 열거 
Const ADS_ACEFLAG_INHERIT_ACE                = &H2  ' ACE가 대상 및 상속된 자식 개체에 적용됩니다. 
Const ADS_ACEFLAG_INHERIT_ONLY_ACE           = &H8  ' ACE가 대상(부모) 개체에 적용되지 않습니다.

' - ADS_RIGHTS_ENUM 열거 
Const ADS_RIGHT_DS_CONTROL_ACCESS      = &H100 ' 기밀 특성을 볼 수 있는 권한 
Const ADS_RIGHT_DS_READ_PROP                 = &H10  ' 특성 값을 읽을 수 있는 권한

' - ADS_FLAGTYPE_ENUM 열거 
Const ADS_FLAG_OBJECT_TYPE_PRESENT           = &H1   ' ACE에 대상 개체 유형이 있습니다. 
Const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = &H2   ' ACE에 대상에서 상속한 개체 유형이 있습니다. 

' -------------------------------------------------------------------------------- 
' BitLocker 스키마 개체 GUID 
' --------------------------------------------------------------------------------

' - ms-FVE-RecoveryInformation 개체: 
' BitLocker 복구 암호와 키 패키지 특성을 포함합니다. 
SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION = "{EA715D30-8F53-40D0-BD1E-6109186D782C}"

' - ms-FVE-RecoveryPassword 특성: 48자리 숫자 암호 
SCHEMA_GUID_MS_FVE_RECOVERYPASSWORD = "{43061AC1-C8AD-4CCC-B785-2BFAC20FC60A}"

' - ms-FVE-KeyPackage 특성: 손상 복구를 위한 이진 패키지 
SCHEMA_GUID_MS_FVE_KEYPACKAGE = "{1FD55EA8-88A7-47DC-8129-0DAA97186A54}"

' - 컴퓨터 개체 
SCHEMA_GUID_COMPUTER = "{BF967A86-0DE6-11D0-A285-00AA003049E2}"

' 참조: "플랫폼 SDK: Active Directory 스키마"

' -------------------------------------------------------------------------------- 
' 모든 BitLocker 복구 정보 속성의 읽기를 허용하도록 ACE 설정 
' --------------------------------------------------------------------------------

Set objAce1 = createObject("AccessControlEntry")

objAce1.AceFlags = ADS_ACEFLAG_INHERIT_ACE + ADS_ACEFLAG_INHERIT_ONLY_ACE 
objAce1.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT 
objAce1.Flags = ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT

objAce1.Trustee = strGroupName 
objAce1.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS + ADS_RIGHT_DS_READ_PROP 
objAce1.InheritedObjectType = SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION

' 참고: 위에서 ObjectType은 모든 속성의 읽기를 허용하기 위해 비어 있습니다.

' -------------------------------------------------------------------------------- 
' 도메인 개체의 DACL(Discretional ACL)에 연결 
' --------------------------------------------------------------------------------

Set objRootLDAP = GetObject("LDAP://rootDSE") 
strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' 예: string dc=fabrikam,dc=com

Set objDomain = GetObject(strPathToDomain)

WScript.Echo "Accessing object: " + objDomain.Get("distinguishedName")

Set objDescriptor = objDomain.Get("ntSecurityDescriptor") 
Set objDacl = objDescriptor.DiscretionaryAcl
 
' -------------------------------------------------------------------------------- 
' DACL(Discretionary ACL)에 ACE를 추가하고 DACL 설정 
' --------------------------------------------------------------------------------

objDacl.AddAce objAce1

objDescriptor.DiscretionaryAcl = objDacl 
objDomain.Put "ntSecurityDescriptor", Array(objDescriptor) 
objDomain.SetInfo

WScript.Echo "SUCCESS!"

BitLocker 및 TPM 복구 정보 읽기 권한을 분리하려면 TPM 소유자 정보에 액세스할 수 있는 다른 사용자 그룹을 만듭니다. BitLocker 복구 암호에 액세스해야 하는 기술 지원팀 직원은 일반적으로 TPM 소유자 정보에 액세스할 필요가 없습니다.

다음 예제 스크립트를 사용하면 TPM Owners 사용자 그룹이 현재 도메인의 TPM 소유자 정보를 읽을 수 있습니다.

' 다른 그룹을 참조하려면 그룹 이름을 변경합니다. 예를 들어 "DOMAIN\Help Desk Staff") 
strGroupName = "BitLocker Recoverers"로 변경하십시오.

' -------------------------------------------------------------------------------- 
' ACE(액세스 제어 항목) 상수 
' --------------------------------------------------------------------------------

'- ADS_ACETYPE_ENUM 열거 
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT      = &H5   ' 개체가 작업을 수행하도록 허용합니다.

'- From the ADS_ACEFLAG_ENUM enumeration 
Const ADS_ACEFLAG_INHERIT_ACE                = &H2   'ACE가 대상 및 상속된 자식 개체에 적용됩니다. 
Const ADS_ACEFLAG_INHERIT_ONLY_ACE           = &H8   'ACE가 대상(부모) 개체에 적용되지 않습니다.

' - ADS_RIGHTS_ENUM 열거 
Const ADS_RIGHT_DS_CONTROL_ACCESS      = &H100 ' 기밀 특성을 볼 수 있는 권한 
Const ADS_RIGHT_DS_READ_PROP                 = &H10  ' 특성 값을 읽을 수 있는 권한

' - ADS_FLAGTYPE_ENUM 열거 
Const ADS_FLAG_OBJECT_TYPE_PRESENT           = &H1   ' ACE에 대상 개체 유형이 있습니다. 
Const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = &H2   ' ACE에 대상에서 상속한 개체 유형이 있습니다. 

' -------------------------------------------------------------------------------- 
' TPM 및 FVE 스키마 개체 GUID 
' --------------------------------------------------------------------------------

' - ms-TPM-OwnerInformation 특성: TPM 소유자 암호의 SHA-1 해시 
SCHEMA_GUID_MS_TPM_OWNERINFORMATION = "{AA4E1A6D-550D-4E05-8C35-4AFCB917A9FE}"

' - 컴퓨터 개체 
SCHEMA_GUID_COMPUTER = "{BF967A86-0DE6-11D0-A285-00AA003049E2}"

' 참조: "플랫폼 SDK: Active Directory 스키마"


' -------------------------------------------------------------------------------- 
' TPM 소유자 정보의 읽기를 허용하도록 ACE 설정 
' --------------------------------------------------------------------------------

Set objAce1 = createObject("AccessControlEntry")

objAce1.AceFlags = ADS_ACEFLAG_INHERIT_ACE + ADS_ACEFLAG_INHERIT_ONLY_ACE 
objAce1.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT 
objAce1.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT + ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT

objAce1.Trustee = strGroupName 
objAce1.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS + ADS_RIGHT_DS_READ_PROP 
objAce1.ObjectType = SCHEMA_GUID_MS_TPM_OWNERINFORMATION 
objAce1.InheritedObjectType = SCHEMA_GUID_COMPUTER


' -------------------------------------------------------------------------------- 
' 도메인 개체의 DACL(Discretional ACL)에 연결 
' --------------------------------------------------------------------------------

Set objRootLDAP = GetObject("LDAP://rootDSE") 
strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' 예: string dc=fabrikam,dc=com

Set objDomain = GetObject(strPathToDomain)

WScript.Echo "Accessing object: " + objDomain.Get("distinguishedName")

Set objDescriptor = objDomain.Get("ntSecurityDescriptor") 
Set objDacl = objDescriptor.DiscretionaryAcl

 
' -------------------------------------------------------------------------------- 
' DACL(Discretionary ACL)에 ACE를 추가하고 DACL 설정 
' --------------------------------------------------------------------------------

objDacl.AddAce objAce1

objDescriptor.DiscretionaryAcl = objDacl 
objDomain.Put "ntSecurityDescriptor", Array(objDescriptor) 
objDomain.SetInfo

WScript.Echo "SUCCESS!"

부록 B: 복구 암호 다시 설정

복구 암호가 제공되고 사용된 후에는 복구 암호를 무효화해야 합니다. 복구 암호를 다시 설정한다고 해서 복구의 근본 원인이 해결되지는 않습니다.

두 가지 방법으로 복구 암호를 다시 설정할 수 있습니다.

  • 볼륨에서 BitLocker를 해제(암호 해독)했다가 설정(다시 암호화)합니다. 암호 해독이 완료되면 이전 복구 암호가 제거됩니다. BitLocker 설정 프로세스에서는 새로운 복구 암호가 생성되고 사용자에게 해당 암호를 저장하라는 메시지가 표시됩니다.

  • 스크립트를 실행합니다. 스크립트를 실행하여 볼륨 암호를 해독하지 않고 암호를 다시 설정할 수 있습니다. 다음 예제 스크립트에서는 이 기능을 보여 줍니다. 이 스크립트에서는 새로운 복구 기능을 만들고 다른 암호를 모두 무효화합니다.

예제 복구 암호 스크립트를 실행하려면

  1. VBScript 파일에 다음 예제 스크립트를 저장합니다. 예를 들어 ResetPassword.vbs에 예제 스크립트를 저장하십시오.

  2. 관리자 권한 명령 프롬프트 창을 엽니다.

    1. 시작 단추를 클릭하고 cmd를 입력한 다음 cmd.exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.

    2. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

  3. 관리자 권한 명령 프롬프트에서 다음과 유사한 명령을 입력합니다.

    cscript ResetPassword.vbs

Important중요
이 예제 스크립트는 C 볼륨에 대해서만 작동하도록 구성됩니다. 암호 다시 설정을 테스트할 볼륨과 일치하도록 스크립트를 사용자 지정해야 합니다.

note참고
원격 컴퓨터를 관리하려면 로컬 컴퓨터 이름 대신 원격 컴퓨터 이름을 지정하면 됩니다.

다음 예제 스크립트를 사용하여 VBScript 파일을 만들어 복구 암호를 다시 설정할 수 있습니다.

' 대상 드라이브 문자 
strDriveLetter = "c:"

' 대상 컴퓨터 이름 
' "."을 사용하여 로컬 컴퓨터에 연결합니다. 
strComputerName = "." 


' -------------------------------------------------------------------------------- 
' BitLocker WMI 공급자 클래스에 연결 
' --------------------------------------------------------------------------------

strConnectionStr = "winmgmts:" _
                 & "{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" _
                 & strComputerName _
                 & "\root\cimv2\Security\MicrosoftVolumeEncryption"
                 
                 
On Error Resume Next ' 사용 권한 오류를 처리합니다.

Set objWMIService = GetObject(strConnectionStr)


If Err.Number <> 0 Then 
     WScript.Echo "Failed to connect to the BitLocker interface (Error 0x" & Hex(Err.Number) & ")." 
     Wscript.Echo "Ensure that you are running with administrative privileges." 
     WScript.Quit -1 
End If

On Error GoTo 0

strQuery = "Select * from Win32_EncryptableVolume where DriveLetter='" & strDriveLetter & "'" 
Set colTargetVolumes = objWMIService.ExecQuery(strQuery)


If colTargetVolumes.Count = 0 Then 
    WScript.Echo "FAILURE: Unable to find BitLocker-capable drive " &  strDriveLetter & " on computer " & strComputerName & "." 
    WScript.Quit -1 
End If


' 볼륨이 하나만 검색되어야 합니다. 
For Each objFoundVolume in colTargetVolumes 
    set objVolume = objFoundVolume 
Next


' objVolume은 이제 검색된 BitLocker 가능 디스크 볼륨입니다.


' -------------------------------------------------------------------------------- 
' BitLocker WMI 공급자 기능 수행 
' --------------------------------------------------------------------------------


' 새로운 복구 암호를 추가하여 나중에 삭제되지 않도록 해당 ID 보관 
' ----------------------------------------------------------------------------------

nRC = objVolume.ProtectKeyWithNumericalPassword("Recovery Password Refreshed By Script", , sNewKeyProtectorID)

If nRC <> 0 Then 
WScript.Echo "FAILURE: ProtectKeyWithNumericalPassword failed with return code 0x" & Hex(nRC) 
WScript.Quit -1 
End If

' 다른 "부실" 복구 암호 제거 
' ----------------------------------------------------------------------------------

nKeyProtectorTypeIn = 3 ' "숫자 암호" 보호기와 연결된 형식

nRC = objVolume.GetKeyProtectors(nKeyProtectorTypeIn, aKeyProtectorIDs)

If nRC <> 0 Then 
WScript.Echo "FAILURE: GetKeyProtectors failed with return code 0x" & Hex(nRC) 
WScript.Quit -1 
End If

' 방금 추가한 것과 다른 키 보호기를 삭제합니다. 

For Each sKeyProtectorID In aKeyProtectorIDs

If sKeyProtectorID <> sNewKeyProtectorID Then 
nRC = objVolume.DeleteKeyProtector(sKeyProtectorID)

If nRC <> 0 Then 
WScript.Echo "FAILURE: DeleteKeyProtector on ID " & sKeyProtectorID & " failed with return code 0x" & Hex(nRC) 
WScript.Quit -1 
Else 
' 출력이 없습니다. 
'WScript.Echo "SUCCESS: Key protector with ID " & sKeyProtectorID & " deleted" 
End If 
End If

Next

WScript.Echo "A new recovery password has been added. Old passwords have been removed."

' - 일부 고급 출력(숨겨짐) 
'WScript.Echo "" 
'WScript.Echo "Type ""manage-bde -protectors -get " & strDriveLetter & " -type recoverypassword"" to view existing passwords."

부록 C: BitLocker 키 패키지 검색

추가 복구 정보 사용에 설명된 대로 다음 두 방법을 사용하여 키 패키지를 검색할 수 있습니다.

  • 이전에 저장된 패키지를 AD DS에서 내보냅니다. AD DS에 저장된 BitLocker 복구 암호에 대한 읽기 권한이 있어야 합니다.

  • 잠금 해제된 BitLocker로 암호화된 볼륨에서 새 키 패키지를 내보냅니다. 손상이 발생하기 전에 작업 볼륨에 대한 로컬 관리자 액세스 권한이 있어야 합니다.

다음 예제 스크립트에서는 이전에 저장된 모든 키 패키지를 AD DS에서 내보냅니다.

예제 키 패키지 검색 스크립트를 실행하려면

  1. VBScript 파일에 다음 예제 스크립트를 저장합니다. 예를 들어 GetBitLockerKeyPackageADDS.vbs에 예제 스크립트를 저장하십시오.

  2. 관리자 권한 명령 프롬프트 창을 엽니다.

    1. 시작 단추를 클릭하고 cmd를 입력한 다음 cmd.exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.

    2. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

  3. 관리자 권한 명령 프롬프트에서 다음과 유사한 명령을 입력합니다.

    cscript GetBitLockerKeyPackageADDS.vbs -?

다음 예제 스크립트를 사용하여 VBScript 파일을 만들어 BitLocker 키 패키지를 AD DS에서 검색할 수 있습니다.

' -------------------------------------------------------------------------------- 
' 사용법 
' --------------------------------------------------------------------------------

Sub ShowUsage 
   Wscript.Echo "USAGE: GetBitLockerKeyPackageAD [Path To Saved Key Package] [Optional Computer Name]" 
   Wscript.Echo "If no computer name is specified, the local computer is assumed." 
   Wscript.Echo 
   Wscript.Echo "Example: GetBitLockerKeyPackageAD E:\bitlocker-ad-key-package mycomputer" 
   WScript.Quit 
End Sub

' -------------------------------------------------------------------------------- 
' 인수 분석 
' --------------------------------------------------------------------------------

Set args = WScript.Arguments

Select Case args.Count 
  Case 1 
    If args(0) = "/?" Or args(0) = "-?" Then 
    ShowUsage 
    Else 
      strFilePath = args(0) 
      ' 로컬 컴퓨터의 이름을 가져옵니다. 
      Set objNetwork = CreateObject("WScript.Network") 
      strComputerName = objNetwork.ComputerName 
    End If    
      
  Case 2
    If args(0) = "/?" Or args(0) = "-?" Then
      ShowUsage
    Else 
      strFilePath = args(0)
      strComputerName = args(1)
    End If
  Case Else
    ShowUsage

End Select



' -------------------------------------------------------------------------------- 
' 컴퓨터 이름과 연결된 Active Directory 컴퓨터 개체의 경로 가져오기 
' --------------------------------------------------------------------------------

Function GetStrPathToComputer(strComputerName) 

    ' 글로벌 카탈로그를 사용하여 포리스트에서 컴퓨터를 찾습니다. 
    ' 검색에는 삭제 표식에 있는 삭제된 컴퓨터도 포함됩니다.

    Set objRootLDAP = GetObject("LDAP://rootDSE") 
    namingContext = objRootLDAP.Get("defaultNamingContext") ' 예: string dc=fabrikam,dc=com    

    strBase = "<GC://" & namingContext & ">"
 
    Set objConnection = CreateObject("ADODB.Connection") 
    Set objCommand = CreateObject("ADODB.Command") 
    objConnection.Provider = "ADsDSOOBject" 
    objConnection.Open "Active Directory Provider" 
    Set objCommand.ActiveConnection = objConnection 

    strFilter = "(&(objectCategory=Computer)(cn=" &  strComputerName & "))" 
    strQuery = strBase & ";" & strFilter  & ";distinguishedName;subtree" 

    objCommand.CommandText = strQuery 
    objCommand.Properties("Page Size") = 100 
    objCommand.Properties("Timeout") = 100 
    objCommand.Properties("Cache Results") = False 

    ' 검색된 모든 개체를 열거합니다. 

    Set objRecordSet = objCommand.Execute 
    If objRecordSet.EOF Then 
      WScript.echo "The computer name '" &  strComputerName & "' cannot be found." 
      WScript.Quit 1 
    End If

    ' 이름이 일치하는 개체를 검색합니다.

    Do Until objRecordSet.EOF 
      dnFound = objRecordSet.Fields("distinguishedName")
      GetStrPathToComputer = "LDAP://" & dnFound
      objRecordSet.MoveNext 
    Loop 


    ' 정리합니다. 
    Set objConnection = Nothing 
    Set objCommand = Nothing 
    Set objRecordSet = Nothing 

End Function


' -------------------------------------------------------------------------------- 
' Kerberos를 사용하여 Active Directory 컴퓨터 개체에 안전하게 액세스 
' --------------------------------------------------------------------------------


Set objDSO = GetObject("LDAP:") 
strPathToComputer = GetStrPathToComputer(strComputerName)

WScript.Echo "Accessing object: " + strPathToComputer

Const ADS_SECURE_AUTHENTICATION = 1 
Const ADS_USE_SEALING = 64 '0x40 
Const ADS_USE_SIGNING = 128 '0x80


' -------------------------------------------------------------------------------- 
' Active Directory 컴퓨터 개체에서 모든 BitLocker 복구 정보 가져오기 
' --------------------------------------------------------------------------------

' 컴퓨터 개체의 모든 복구 정보 자식 개체를 가져옵니다.

Set objFveInfos = objDSO.OpenDSObject(strPathToComputer, vbNullString, vbNullString, _ 
                                   ADS_SECURE_AUTHENTICATION + ADS_USE_SEALING + ADS_USE_SIGNING)

objFveInfos.Filter = Array("msFVE-RecoveryInformation")

' 각 복구 정보 개체를 반복하고 기존 키 패키지를 저장합니다.

nCount = 1 strFilePathCurrent = 
strFilePath & nCount

For Each objFveInfo in objFveInfos

   strName = objFveInfo.Get("name")

   strRecoveryPassword = objFveInfo.Get("msFVE-RecoveryPassword") 
   strKeyPackage = objFveInfo.Get("msFVE-KeyPackage")

   WScript.echo 
   WScript.echo "Recovery Object Name: " + strName 
   WScript.echo "Recovery Password: " + strRecoveryPassword

   ' 파일 경로의 유효성을 검사합니다. 
   Set fso = CreateObject("Scripting.FileSystemObject")

   If (fso.FileExists(strFilePathCurrent)) Then 
   WScript.Echo "The file " & strFilePathCurrent & " already exists. Please use a different path." 
   WScript.Quit -1 
   End If

   ' 이진 데이터를 파일에 저장합니다. 
   SaveBinaryDataText strFilePathCurrent, strKeyPackage
   
   WScript.echo "Related key package successfully saved to " + strFilePathCurrent


   ' 기본 이름을 사용하여 다음 파일 경로를 업데이트합니다. 
   nCount = nCount + 1 
   strFilePathCurrent = strFilePath & nCount

Next


'---------------------------------------------------------------------------------------- 
' 이진 데이터를 저장하는 유틸리티 함수 
'----------------------------------------------------------------------------------------

Function SaveBinaryDataText(FileName, ByteArray) 
  ' FileSystemObject 개체를 만듭니다. 
  Dim FS: Set FS = CreateObject("Scripting.FileSystemObject")
  
  ' 텍스트 스트림 개체를 만듭니다. 
  Dim TextStream 
  Set TextStream = FS.CreateTextFile(FileName)
  
  ' 이진 데이터를 텍스트로 변환하고 파일에 씁니다. 
  TextStream.Write BinaryToString(ByteArray) 
  End Function

Function BinaryToString(Binary)
  Dim I, S
  For I = 1 To LenB(Binary)
    S = S & Chr(AscB(MidB(Binary, I, 1)))
  Next
  BinaryToString = S
End Function

WScript.Quit

다음 예제 스크립트에서는 잠금 해제된 암호화된 볼륨에서 새 키 패키지를 내보냅니다.

이 스크립트를 실행하려면 VBS 파일(예: GetBitLockerKeyPackage.vbs)에 코드를 저장하여 시작합니다. 그런 다음 관리자 명령 프롬프트를 열고 “cscript”를 사용하여 저장된 파일을 실행합니다. 예를 들어 "cscript GetBitLockerKeyPackage.vbs  -?"를 입력하십시오.



' -------------------------------------------------------------------------------- 
' 사용법 
' --------------------------------------------------------------------------------

Sub ShowUsage 
   Wscript.Echo "USAGE: GetBitLockerKeyPackage [VolumeLetter/DriveLetter:] [Path To Saved Key Package]" 
   Wscript.Echo 
   Wscript.Echo "Example: GetBitLockerKeyPackage C: E:\bitlocker-backup-key-package" 
   WScript.Quit 
End Sub

' -------------------------------------------------------------------------------- 
' 인수 분석 
' --------------------------------------------------------------------------------

Set args = WScript.Arguments

Select Case args.Count
  Case 2
    If args(0) = "/?" Or args(0) = "-?" Then
      ShowUsage
    Else 
      strDriveLetter = args(0)
      strFilePath = args(1)
    End If
  Case Else
    ShowUsage

End Select

' -------------------------------------------------------------------------------- 
' 기타 입력 
' --------------------------------------------------------------------------------

' 대상 컴퓨터 이름 
' "."을 사용하여 로컬 컴퓨터에 연결합니다. 
strComputerName = "." 

' 사용할 기본 키 보호기 ID입니다. 스크립트에서 선택하도록 하려면 ""를 지정합니다.

strDefaultKeyProtectorID = ""

' strDefaultKeyProtectorID = "{001298E0-870E-4BA0-A2FF-FC74758D5720}"  ' 예제 


' -------------------------------------------------------------------------------- 
' BitLocker WMI 공급자 클래스에 연결 
' --------------------------------------------------------------------------------

strConnectionStr = "winmgmts:" _ 
                 & "{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" _ 
                 & strComputerName _ 
                 & "\root\cimv2\Security\MicrosoftVolumeEncryption"
                 
                 
On Error Resume Next ' 사용 권한 오류를 처리합니다.

Set objWMIService = GetObject(strConnectionStr)


If Err.Number <> 0 Then 
     WScript.Echo "Failed to connect to the BitLocker interface (Error 0x" & Hex(Err.Number) & ")." 
     Wscript.Echo "Ensure that you are running with administrative privileges." 
     WScript.Quit -1 
End If

On Error GoTo 0

strQuery = "Select * from Win32_EncryptableVolume where DriveLetter='" & strDriveLetter & "'" 
Set colTargetVolumes = objWMIService.ExecQuery(strQuery)


If colTargetVolumes.Count = 0 Then 
    WScript.Echo "FAILURE: Unable to find BitLocker-capable drive " &  strDriveLetter & " on computer " & strComputerName & "." 
    WScript.Quit -1 
End If


' 볼륨이 하나만 검색되어야 합니다. 
For Each objFoundVolume in colTargetVolumes 
set objVolume = objFoundVolume 
Next


' objVolume은 이제 검색된 BitLocker 가능 디스크 볼륨입니다.


' -------------------------------------------------------------------------------- 
' BitLocker WMI 공급자 기능 수행 
' --------------------------------------------------------------------------------


' 패키지를 가져오는 데 사용할 수 있는 가능한 모든 유효한 키 보호기 ID 수집 
' ----------------------------------------------------------------------------------

nNumericalKeyProtectorType = 3 ' "숫자 암호" 보호기와 연결된 형식

nRC = objVolume.GetKeyProtectors(nNumericalKeyProtectorType, aNumericalKeyProtectorIDs) 
If nRC <> 0 Then 
WScript.Echo "FAILURE: GetKeyProtectors failed with return code 0x" & Hex(nRC) 
WScript.Quit -1 
End If

nExternalKeyProtectorType = 2 ' "외부 키" 보호기와 연결된 형식

nRC = objVolume.GetKeyProtectors(nExternalKeyProtectorType, aExternalKeyProtectorIDs) 
If nRC <> 0 Then 
WScript.Echo "FAILURE: GetKeyProtectors failed with return code 0x" & Hex(nRC) 
WScript.Quit -1 
End If


' "숫자 암호" 또는 "외부 키" 형식의 첫 번째 키 보호기 가져오기 
' ----------------------------------------------------------------------------------

if strDefaultKeyProtectorID = "" Then

' 첫 번째 숫자 암호가 있으면 저장합니다. 
If UBound(aNumericalKeyProtectorIDs) <> -1 Then 
strDefaultKeyProtectorID = aNumericalKeyProtectorIDs(0) 
End If

' 숫자 암호가 없습니다. 첫 번째 외부 키를 저장합니다. 
If strDefaultKeyProtectorID = "" and UBound(aExternalKeyProtectorIDs) <> -1 Then 
strDefaultKeyProtectorID = aExternalKeyProtectorIDs(0) 
End If 

' 실패하는 경우: 복구 키 보호기가 없습니다. 
If strDefaultKeyProtectorID = "" Then 
WScript.Echo "FAILURE: Cannot create backup key package because no recovery passwords or recovery keys exist. Check that BitLocker protection is on for this drive." 
WScript.Echo "For help adding recovery passwords or recovery keys, type ""manage-bde -protectors -add -?""." 
WScript.Quit -1 
End If

End If

' 선택된 키 보호기 ID에 대한 정보 가져오기 
' ----------------------------------------------------------------------------------

' 형식이 유효합니까?

nRC = objVolume.GetKeyProtectorType(strDefaultKeyProtectorID, nDefaultKeyProtectorType)

If Hex(nRC) = "80070057" Then 
WScript.Echo "The key protector ID " & strDefaultKeyProtectorID & " is not valid." 
WScript.Echo "This ID value may have been provided by the script writer." 
ElseIf nRC <> 0 Then 
WScript.Echo "FAILURE: GetKeyProtectorType failed with return code 0x" & Hex(nRC) 
WScript.Quit -1 
End If

' 설명하는 데 사용할 수 있는 문자열은 무엇입니까?

strDefaultKeyProtectorType = ""

Select Case nDefaultKeyProtectorType 

  Case nNumericalKeyProtectorType 
      strDefaultKeyProtectorType = "recovery password"

  Case nExternalKeyProtectorType 
      strDefaultKeyProtectorType = "recovery key"

  Case Else 
      WScript.Echo "The key protector ID " & strDefaultKeyProtectorID & " does not refer to a valid recovery password or recovery key." 
      WScript.Echo "This ID value may have been provided by the script writer."

End Select


' 선택된 키 보호기 ID를 사용하여 백업 키 패키지 저장 
' ----------------------------------------------------------------------------------

nRC = objVolume.GetKeyPackage(strDefaultKeyProtectorID, oKeyPackage) 
If nRC <> 0 Then 
WScript.Echo "FAILURE: GetKeyPackage failed with return code 0x" & Hex(nRC) 
WScript.Quit -1 
End If

' 파일 경로의 유효성을 검사합니다. 
Set fso = CreateObject("Scripting.FileSystemObject") 
If (fso.FileExists(strFilePath)) Then 
WScript.Echo "The file " & strFilePath & " already exists. Please use a different path." 
WScript.Quit -1 
End If

Dim oKeyPackageByte, bKeyPackage 
For Each oKeyPackageByte in oKeyPackage 
  'WScript.echo "key package byte: " & oKeyPackageByte 
  bKeyPackage = bKeyPackage & ChrB(oKeyPackageByte) 
Next

' 이진 데이터를 파일에 저장합니다. 
SaveBinaryDataText strFilePath, bKeyPackage

' 유용한 정보 표시 
' ----------------------------------------------------------------------------------

WScript.Echo "The backup key package has been saved to " & strFilePath & "."

WScript.Echo "IMPORTANT: To use this key package, the " & strDefaultKeyProtectorType & " must also be saved."

' 복구 암호를 표시하거나 복구 키 파일 저장에 대한 참고 정보를 표시합니다.

If nDefaultKeyProtectorType = nNumericalKeyProtectorType Then

nRC = objVolume.GetKeyProtectorNumericalPassword(strDefaultKeyProtectorID, sNumericalPassword) 
If nRC <> 0 Then 
WScript.Echo "FAILURE: GetKeyProtectorNumericalPassword failed with return code 0x" & Hex(nRC) 
WScript.Quit -1 
End If 
WScript.Echo "Save this recovery password: " & sNumericalPassword

ElseIf nDefaultKeyProtectorType = nExternalKeyProtectorType Then 
WScript.Echo "The saved key file is named " & strDefaultKeyProtectorID & ".BEK" 
WScript.Echo "For help re-saving this external key file, type ""manage-bde -protectors -get -?""" 
End If


'---------------------------------------------------------------------------------------- 
' 이진 데이터를 저장하는 유틸리티 함수 
'----------------------------------------------------------------------------------------

Function SaveBinaryDataText(FileName, ByteArray) 
  ' FileSystemObject 개체를 만듭니다. 
  Dim FS: Set FS = CreateObject("Scripting.FileSystemObject")
  
  ' 텍스트 스트림 개체를 만듭니다. 
  Dim TextStream 
  Set TextStream = FS.CreateTextFile(FileName)
  
  ' 이진 데이터를 텍스트로 변환하고 파일에 씁니다. 
  TextStream.Write BinaryToString(ByteArray) 
End Function

Function BinaryToString(Binary) 
  Dim I, S 
  For I = 1 To LenB(Binary) 
    S = S & Chr(AscB(MidB(Binary, I, 1))) 
  Next 
  BinaryToString = S 
End Function

부록 D: TPM 정보 저장

AD DS에 저장된 TPM 소유자 권한 부여 값은 특정 컴퓨터를 TPM과 연결합니다. AD DS에 저장된 TPM 소유자 암호를 승인하려면 TPM 소유자 권한 부여 값을 제공해야 합니다.

특정 컴퓨터에서 TPM 소유자 권한 부여 값을 사용하려면 먼저 Active Directory에서 이 값을 검색해야 합니다. AD DS에서 컴퓨터 개체의 ms-TPM-OwnerInformation 특성을 확인하여 TPM 소유자 정보를 검색하거나, 이 특성에 액세스하고 기록하는 스크립트를 만들 수 있습니다.

예제 TPM 소유자 권한 부여 값은 다음과 같습니다.

FNVWzNOmxCtHeLWDYeRobK85VDg=

스크립트 내에서 이 값을 직접 사용하거나, TPM 관리 스냅인(TPM.msc)에서 사용할 수 있는 파일에 이 정보를 저장하도록 선택할 수 있습니다.

TPM 관리 콘솔의 마법사는 TPM 소유자 암호가 포함된 백업 파일 형태의 TPM 소유자 권한 부여를 사용하도록 디자인되었습니다.

note참고
TPM 소유자 권한 부여 값은 입력할 수 없습니다. 그러나 이 정보를 사용하여 TPM 소유자 암호 파일을 만들 수 있습니다.

다음 예제 TPM 소유자 암호 파일을 다른 소유자 권한 부여 값으로 새 파일을 만들기 위한 템플릿으로 사용할 수 있습니다.

예제 스크립트를 실행하려면

  1. VBScript 파일에 다음 예제 스크립트를 저장합니다. 예를 들어 tpmOwnerData.vbs에 예제 스크립트를 저장하십시오.

  2. 관리자 권한 명령 프롬프트 창을 엽니다.

    1. 시작 단추를 클릭하고 cmd를 입력한 다음 cmd.exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.

    2. 사용자 계정 컨트롤 대화 상자가 나타나면 대화 상자에서 표시되는 동작이 원하는 동작인지 확인하고 계속을 클릭합니다.

  3. 관리자 권한 명령 프롬프트에서 다음과 유사한 명령을 입력합니다.

    cscript tpmOwnerData.vbs -?

<?xml version="1.0" encoding="UTF-8"?> 
<!-- 
이 페이지는 TPM(신뢰할 수 있는 플랫폼 모듈) 소유자 권한 부여 정보의 
백업입니다. 요청 시 권한 부여 정보를 사용하여 컴퓨터의 TPM 
소유권을 승인합니다. 컴퓨터에 있는 로컬 하드 드라이브 이외의 안전한 곳에 
이 파일을 보관하십시오. 
--> 
<tpmOwnerData version="1.0" softwareAuthor="Microsoft Windows [Version 6.0.5461]" creationDate="2006-07-09T17:41:27-08:00" creationUser="DOMAIN\employee" machineName="EMPLOYEE-PC"> 
<tpmInfo manufacturerId="1112687437"/> 
<ownerAuth>FNVWzNOmxCtHeLWDYeRobK85VDg=</ownerAuth> 
</tpmOwnerData>
note참고
이 예제 파일에는 <ownerAuth></ownerAuth> 요소 사이의 TPM 소유자 권한 부여 값이 포함되어 있습니다. 다른 값은 정보를 제공하기 위해서만 포함되어 있으며 TPM 관리 콘솔에서 유효성이 검사되지 않았습니다.

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft