Нам необходимо обеспечить принудительное шифрование на логическом устройстве iSCSI, доступном из виртуальной машины Hyper-V.
Мы внедрили работающее решение с использованием BitLocker, используя Windows Server 2012 на виртуальном сервере Hyper-V, который имеет доступ iSCSI к LUN в нашей сети SAN. Мы смогли успешно сделать это, используя хак «Хранилище на дискетах», как определено в ЭТОМ ПОЧТЕ . Тем не менее, этот метод мне кажется «нелепым».
В ходе моих дальнейших исследований я обнаружил, что ИТ-команда Amazon Corporate опубликовала WHITEPAPER, в которой было изложено именно то, что я искал, в более элегантном решении, без «взлома дискет». На странице 7 этого документа говорится, что они реализовали Windows DPAPI Encryption Key Management для безопасного управления своими ключами BitLocker. Это именно то, что я собираюсь сделать, но они заявили, что для этого им нужно было написать сценарий, но они не предоставляют сценарий или даже указатели о том, как его создать.
У кого-нибудь есть подробности о том, как создать «сценарий вместе со службой и файлом хранилища ключей, защищенным ключом DPAPI учетной записи компьютера» (как указано в техническом описании) для управления и автоматической разблокировки томов BitLocker? Любой совет приветствуется.
--- РЕДАКТИРОВАТЬ 1 ---
Основываясь на ответе Эвана ниже, вот что я понял, но я все еще застрял.
Я предполагаю, что при использовании PsExec и выполнении следующей команды PowerShell работает под системной учетной записью и будет «шифровать строку с паролем учетной записи компьютера», как сказал Эван. Это правильно?
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, чтобы только системная учетная запись могла получить к нему доступ?