Windows DPAPI 암호화 키 관리 기능이있는 BitLocker


8

Hyper-V 가상 머신 내에서 액세스 할 수있는 iSCSI LUN에서 휴지 암호화를 시행해야합니다.

SAN의 LUN에 iSCSI로 액세스 할 수있는 Hyper-V 가상 서버에서 Windows Server 2012를 사용하여 BitLocker를 사용하여 작동하는 솔루션을 구현했습니다. 이 POST에 정의 된 "플로피 디스크 키 저장소"핵을 사용하여이 작업을 성공적으로 수행 할 수있었습니다 . 그러나이 방법은 나에게 "하키"인 것 같습니다.

계속해서 조사한 결과, Amazon Corporate IT 팀 은 "플로피 디스크 핵 (floppy disk hack)"없이보다 우아한 솔루션에서 찾고있는 것을 정확히 설명 하는 WHITEPAPER 를 발표했습니다 . 이 백서의 7 페이지에는 BitLocker 키를 안전하게 관리하기 위해 Windows DPAPI 암호화 키 관리 를 구현했다고 나와 있습니다. 이것은 내가하고자하는 일이지만, 그들은 이것을하기 위해 스크립트를 작성해야한다고 말했지만 스크립트를 작성하거나 스크립트를 작성하는 방법에 대한 포인터는 제공하지 않습니다.

누구나 BitLocker 볼륨을 관리하고 자동 잠금 해제하기 위해 "서비스와 함께 스크립트 및 서버의 머신 계정 DPAPI 키로 보호되는 키 저장소 파일" (백서 에 설명 된대로)을 만드는 방법에 대한 세부 정보가 있습니까? 조언을 부탁드립니다.

--- 편집 1 ---

아래의 Evan의 답변을 바탕으로 내가 알아 낸 내용이 있지만 여전히 붙어 있습니다.

PsExec 을 사용 하고 다음 명령을 실행하면 PowerShell이 ​​시스템 계정으로 실행 중이고 Evan이 언급 한대로 "컴퓨터 계정 암호를 사용하여 문자열을 암호화"한다고 가정합니다. 이 올바른지?

PsExec.exe -i -s Powershell.exe

그런 다음 PS 내에서 ( 이 게시물 을 참조로 사용하여 )이 명령을 실행하여 SecureString 암호를 생성합니다.

ConvertTo-SecureString -String "MyBitLockerPassword" -AsPlainText –Force | ConvertFrom-SecureString | Out-File C:\securestring.txt

그러면“01000000d08c…”(총 524 자) 형식의 보안 문자열이 포함 된 파일이 제공됩니다. 그런 다음 부팅시 다음을 사용하여 암호를 SecureString으로로드하고 Unlock-BitLocker 명령에 전달하는 예약 작업을 만들 수 있습니다 .

$SecureBitLockerPassword = Get-Content C:\securestring.txt | ConvertTo-SecureString
Unlock-BitLocker -MountPoint "E:" -Password $ SecureBitLockerPassword

그러나 암호화 된 암호를 하드 드라이브에 파일로 저장하는 경우 암호를 암호화하고 해독하는 시점은 무엇입니까? 암호를 일반 텍스트로 저장하고 다음을 사용하는 것 (보안 문자열 파일을 만들 필요없이)만큼 안전하지 않습니까?

$SecureString = ConvertTo-SecureString " MyBitLockerPassword " -AsPlainText –Force
Unlock-BitLocker -MountPoint "E:" -Password $SecureString

다른 접근 방법은 무엇입니까? 시스템 계정 만 액세스 할 수 있도록 SecureString 키를 어디에 저장할 수 있습니까?

답변:


6

모든 Amazon이 Bitlocker 키를 SYSTEM 컨텍스트의 DPAPI에 저장하는 것 같습니다. TPM이 가상 시스템에 노출되지 않은 경우 SYSTEM으로 실행되는 서비스와 복구 할 수없는 TPM에 저장된 키로 일반 텍스트 키를 검색 할 수 있기 때문에 TPM에 키를 저장하는 것보다 보안 수준이 훨씬 낮습니다. 이것은 아마도 유일한 옵션입니다.

그들이 설명하는 것과 비슷한 것을 달성하기 위해 아마도 ConvertFrom-SecureString무료 ConvertTo-SecureStringPowerShell API를 사용할 것입니다 . Microsoft 문서마다 ConvertFrom-SecureString정적 키가 지정되지 않은 경우 cmdlet은 DPAPI를 사용합니다. SYSTEM 컨텍스트에서 스크립트를 실행하면 DPAPI는 컴퓨터 계정의 비밀번호로 문자열을 암호화합니다.

이때부터는 manage-bde검색된 비밀번호를 사용하여 드라이브를 잠금 해제하기 위해 도구를 사용하는 것이 중요 합니다 (예 :manage-bde -unlock x: -password )


에반, 게시물 주셔서 감사합니다. 당신은 나를 올바른 방향으로 향하고 있지만 여전히 암호화 된 키가 어디에 또는 어떻게 저장되는지 결정하는 데 붙어 있습니다. 위의 원래 게시물에서 내 업데이트를 참조하십시오.
bigmac

1
@bigmac-편집 한 첫 번째 단락에 "훨씬 덜 안전하다"는 문구가 포함되어 있습니다. 이 방법이 제공하는 유일한 보호 기능은 SYSTEM 권한을 가진 공격자로부터 키를 보호하며 일단 SYSTEM이 있으면 키에 대한 "게임 오버"입니다. 적어도 TPM에서는 키를 공개 할 수 없습니다. 메모리에서 Bitlocker 키를 수집하는 것은 물리적 하드웨어에 대한 콜드 부팅 메모리 공격과 관련이있을 수 있지만 TPM 키를 손상 시키지는 않습니다. 아마존의 백서는 보안 시어터입니다.
Evan Anderson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.