BitLocker avec Windows DPAPI Encryption Key Management

8

Nous devons appliquer le chiffrement au repos sur un LUN iSCSI accessible à partir d'une machine virtuelle Hyper-V.

Nous avons implémenté une solution de travail utilisant BitLocker, utilisant Windows Server 2012 sur un serveur virtuel Hyper-V qui a un accès iSCSI à un LUN sur notre SAN. Nous avons réussi à le faire en utilisant le hack "stockage sur clé de disquette" tel que défini dans CE POST . Cependant, cette méthode me semble "hokey".

Dans mes recherches continues, j'ai découvert que l'équipe informatique d'entreprise d'Amazon a publié un LIVRE BLANC qui décrivait exactement ce que je cherchais dans une solution plus élégante, sans le "piratage de disquette". À la page 7 de ce livre blanc, ils indiquent qu'ils ont implémenté la gestion des clés de cryptage Windows DPAPI pour gérer en toute sécurité leurs clés BitLocker. C'est exactement ce que je cherche à faire, mais ils ont déclaré qu'ils devaient écrire un script pour ce faire, mais ils ne fournissent pas le script ni même de pointeurs sur la façon d'en créer un.

Quelqu'un a-t-il des détails sur la façon de créer un "script en conjonction avec un service et un fichier de stockage de clés protégé par la clé DPAPI du compte d'ordinateur du serveur" (comme ils l'indiquent dans le livre blanc) pour gérer et déverrouiller automatiquement les volumes BitLocker? Tout conseil est apprécié.

--- EDIT 1 ---

Sur la base de la réponse d'Evan ci-dessous, voici ce que j'ai compris, mais je suis toujours coincé.

Je suppose que l'utilisation de PsExec et l'exécution de la commande suivante, que PowerShell s'exécute sous le compte système et qu'il «cryptera la chaîne avec le mot de passe du compte d'ordinateur» comme Evan l'a déclaré. Est-ce correct?

PsExec.exe -i -s Powershell.exe

Ensuite, à partir de PS, (en utilisant ce message comme référence), j'exécute cette commande pour générer le mot de passe SecureString:

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

Cela me donne un fichier contenant la chaîne sécurisée au format «01000000d08c…» (524 caractères au total). Ensuite, je peux maintenant créer une tâche de planification à exécuter au démarrage qui utilise ce qui suit pour charger le mot de passe (en tant que SecureString) et le transmettre à la commande Unlock-BitLocker :

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

Cependant, si je stocke simplement le mot de passe crypté sous forme de fichier sur le disque dur, quel est l'intérêt du cryptage et du décryptage du mot de passe? Cela ne serait-il pas aussi peu sûr que de stocker le mot de passe en texte brut et d'utiliser les éléments suivants (sans avoir besoin de créer le fichier de chaîne sécurisé)?

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

Sinon, comment aborderiez-vous cela? Où puis-je stocker la clé SecureString afin que seul le compte système puisse y accéder?

bigmac
la source

Réponses:

6

Il semble que tout ce que fait Amazon consiste à stocker les clés Bitlocker dans DPAPI dans le contexte SYSTEM. Bien que cela soit beaucoup moins sécurisé que le stockage des clés dans un TPM (car la clé en texte brut peut être récupérée par n'importe quel service exécuté en tant que SYSTEM par rapport à une clé stockée dans un TPM qui ne peut pas être récupérée) si le TPM n'est pas exposé à la machine virtuelle c'est probablement votre seule option.

Pour accomplir quelque chose de similaire à ce qu'ils décrivent, j'utiliserais probablement les API PowerShell ConvertFrom-SecureStringcomplémentaires ConvertTo-SecureString. Selon les documents Microsoft, l' ConvertFrom-SecureStringapplet de commande utilise DPAPI si aucune clé statique n'est spécifiée. Exécutez le script dans le contexte SYSTEM et DPAPI cryptera votre chaîne avec le mot de passe du compte d'ordinateur.

À partir de là, il s'agit d'utiliser l' manage-bdeoutil pour déverrouiller le lecteur à l'aide du mot de passe récupéré (par exemple manage-bde -unlock x: -password)

Evan Anderson
la source
Evan, merci pour ton post. Vous me dirigez dans la bonne direction, mais je suis toujours coincé à déterminer où ou comment la clé cryptée est stockée. Veuillez voir ma mise à jour dans le message d'origine ci-dessus.
bigmac
1
@bigmac - Votre modification est la raison pour laquelle mon premier paragraphe contient la phrase "beaucoup moins sécurisé". La seule protection que cette méthode offre sécurise la clé des attaquants qui pourraient obtenir les privilèges SYSTEM, et une fois qu'ils ont SYSTEM, c'est "game over" pour votre clé. Chez TPM, au moins, on ne peut pas faire divulguer sa clé. La récupération de la clé Bitlocker de la mémoire est certainement possible, ala attaques de mémoire de démarrage à froid contre le matériel physique, mais cela ne compromet pas la clé du TPM. Vous vous rendez compte que je m'attendais à ce que vous ... Le livre blanc d'Amazon est un théâtre de sécurité.
Evan Anderson