BitLocker mit Windows DPAPI-Verschlüsselungsschlüsselverwaltung


8

Wir müssen die Ruheverschlüsselung auf einer iSCSI-LUN erzwingen, auf die von einer virtuellen Hyper-V-Maschine aus zugegriffen werden kann.

Wir haben eine funktionierende Lösung mit BitLocker implementiert, die Windows Server 2012 auf einem virtuellen Hyper-V-Server verwendet, der über iSCSI-Zugriff auf eine LUN in unserem SAN verfügt. Wir konnten dies erfolgreich tun, indem wir den in DIESEM POST definierten Hack "Diskettenschlüsselspeicher" verwendeten . Diese Methode erscheint mir jedoch "hokey".

Bei meinen fortgesetzten Recherchen stellte ich fest, dass das IT-Team von Amazon Corporate ein WHITEPAPER veröffentlichte , das genau darlegte , wonach ich in einer eleganteren Lösung ohne den "Disketten-Hack" suchte. Auf Seite 7 dieses White Papers geben sie an, dass sie die Windows DPAPI-Verschlüsselungsschlüsselverwaltung implementiert haben , um ihre BitLocker-Schlüssel sicher zu verwalten. Dies ist genau das, was ich tun möchte, aber sie gaben an, dass sie ein Skript schreiben müssen, um dies zu tun, aber sie liefern weder das Skript noch irgendwelche Hinweise, wie man eines erstellt.

Hat jemand Details zum Erstellen eines "Skripts in Verbindung mit einem Dienst und einer Schlüsselspeicherdatei, die durch den DPAPI-Schlüssel des Computerkontos des Servers geschützt ist" (wie im Whitepaper angegeben) zum Verwalten und automatischen Entsperren von BitLocker-Volumes? Jeder Rat wird geschätzt.

--- BEARBEITEN 1 ---

Basierend auf Evans Antwort unten habe ich Folgendes herausgefunden, aber ich stecke immer noch fest.

Ich gehe davon aus, dass bei Verwendung von PsExec und Ausführen des folgenden Befehls PowerShell unter dem Systemkonto ausgeführt wird und "die Zeichenfolge mit dem Kennwort des Computerkontos verschlüsselt" wird, wie Evan angegeben hat. Ist das richtig?

PsExec.exe -i -s Powershell.exe

Dann führe ich innerhalb von PS (unter Verwendung dieses Beitrags als Referenz) diesen Befehl aus, um das SecureString-Kennwort zu generieren:

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

Das gibt mir eine Datei mit der sicheren Zeichenfolge im Format „01000000d08c…“ (insgesamt 524 Zeichen). Dann kann ich jetzt eine Schedule Task erstellen, die beim Booten ausgeführt wird. Dabei wird Folgendes verwendet, um das Kennwort (als SecureString) zu laden und an den Befehl Unlock-BitLocker zu übergeben :

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

Wenn ich das verschlüsselte Passwort jedoch einfach als Datei auf der Festplatte speichere, wozu dient das Ver- und Entschlüsseln des Passworts? Wäre das nicht genauso unsicher wie das Speichern des Passworts im Klartext und die Verwendung der folgenden Informationen (ohne dass die sichere Zeichenfolgendatei erstellt werden muss)?

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

Wie würden Sie das sonst angehen? Wo kann ich den SecureString-Schlüssel speichern, damit nur das Systemkonto darauf zugreifen kann?

Antworten:


6

Es sieht so aus, als würde Amazon lediglich die Bitlocker-Schlüssel in DPAPI im SYSTEM-Kontext speichern. Dies ist zwar viel weniger sicher als das Speichern der Schlüssel in einem TPM (da der Klartextschlüssel von jedem als SYSTEM ausgeführten Dienst abgerufen werden kann, im Gegensatz zu einem in einem TPM gespeicherten Schlüssel, der nicht wiederhergestellt werden kann), wenn das TPM nicht für die virtuelle Maschine verfügbar ist Dies ist wahrscheinlich Ihre einzige Option.

Um etwas Ähnliches wie das zu erreichen, was sie beschreiben, würde ich wahrscheinlich die ConvertFrom-SecureStringkostenlosen ConvertTo-SecureStringPowerShell-APIs verwenden. ConvertFrom-SecureStringGemäß den Microsoft-Dokumenten verwendet das Cmdlet DPAPI, wenn kein statischer Schlüssel angegeben ist. Führen Sie das Skript im SYSTEM-Kontext aus, und DPAPI verschlüsselt Ihre Zeichenfolge mit dem Kennwort des Computerkontos.

Von diesem Punkt ist es eine Frage, die unter Verwendung von manage-bdeWerkzeug , um das Laufwerk mit dem abgerufenen Passwort (zB zu entsperren manage-bde -unlock x: -password)


Evan, danke für deinen Beitrag. Sie weisen mich in die richtige Richtung, aber ich kann immer noch nicht feststellen, wo oder wie der verschlüsselte Schlüssel gespeichert ist. Bitte beachten Sie mein Update im Originalbeitrag oben.
Bigmac

1
@bigmac - Ihre Bearbeitung ist der Grund, warum mein erster Absatz den Ausdruck "viel weniger sicher" enthält. Der einzige Schutz, den diese Methode bietet, schützt den Schlüssel vor Angreifern, die möglicherweise SYSTEM-Berechtigungen erhalten. Sobald sie über SYSTEM verfügen, ist das Spiel für Ihren Schlüssel "vorbei". Zumindest bei TPM kann man nicht dazu gebracht werden, seinen Schlüssel preiszugeben. Das Ernten des Bitlocker-Schlüssels aus dem Speicher ist sicherlich möglich, auch wenn Kaltstartspeicher Angriffe auf physische Hardware ausführen, aber dies beeinträchtigt nicht den Schlüssel des TPM. Sie kommen zu der Erkenntnis, dass ich von Ihnen erwartet habe ... Das Whitepaper von Amazon ist Sicherheitstheater.
Evan Anderson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.