BitLocker dengan Manajemen Kunci Enkripsi Windows DPAPI

8

Kami memiliki kebutuhan untuk menegakkan resting enkripsi pada LUN iSCSI yang dapat diakses dari dalam mesin virtual Hyper-V.

Kami telah mengimplementasikan solusi yang berfungsi menggunakan BitLocker, menggunakan Windows Server 2012 pada Hyper-V Virtual Server yang memiliki akses iSCSI ke LUN di SAN kami. Kami berhasil melakukan ini dengan menggunakan retasan "penyimpanan kunci floppy disk" sebagaimana didefinisikan dalam POST INI . Namun, metode ini tampaknya "tipu" bagi saya.

Dalam penelitian lanjutan saya, saya menemukan bahwa tim IT Korporat Amazon menerbitkan WHITEPAPER yang menguraikan secara tepat apa yang saya cari dalam solusi yang lebih elegan, tanpa "floppy disk hack". Pada halaman 7 dari buku putih ini, mereka menyatakan bahwa mereka menerapkan Manajemen Kunci Enkripsi Windows DPAPI untuk mengelola kunci BitLocker mereka dengan aman. Inilah yang ingin saya lakukan, tetapi mereka menyatakan bahwa mereka harus menulis skrip untuk melakukan ini, namun mereka tidak memberikan skrip atau bahkan petunjuk tentang cara membuatnya.

Adakah yang memiliki perincian tentang cara membuat "skrip bersama dengan layanan dan file penyimpanan kunci yang dilindungi oleh kunci DPAPI akun mesin server" (sebagaimana dinyatakan dalam whitepaper) untuk mengelola dan membuka otomatis volume BitLocker? Setiap saran sangat dihargai.

--- EDIT 1 ---

Berdasarkan jawaban Evan di bawah, inilah yang saya ketahui, tapi saya masih buntu.

Saya berasumsi bahwa menggunakan PsExec dan menjalankan perintah berikut, bahwa PowerShell berjalan di bawah akun Sistem dan itu akan "mengenkripsi string dengan kata sandi akun mesin" seperti yang dinyatakan Evan. Apakah ini benar?

PsExec.exe -i -s Powershell.exe

Kemudian dari dalam PS, (menggunakan posting ini sebagai referensi) saya menjalankan perintah ini untuk menghasilkan kata sandi SecureString:

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

Itu memberi saya file yang berisi string aman dalam format "01000000d08c ..." (total 524 karakter). Kemudian, saya sekarang dapat membuat Jadwal Tugas untuk dijalankan pada boot yang menggunakan yang berikut ini untuk memuat kata sandi (sebagai SecureString) dan meneruskannya ke perintah Unlock-BitLocker :

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

Namun, jika saya hanya menyimpan kata sandi terenkripsi sebagai file pada hard drive, apa gunanya mengenkripsi dan mendekripsi kata sandi? Bukankah itu sama tidak amannya seperti menyimpan kata sandi dalam teks biasa dan menggunakan yang berikut ini (tanpa perlu membuat file string aman)?

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

Bagaimana lagi Anda mendekati ini? Di mana saya dapat menyimpan kunci SecureString sehingga hanya akun Sistem yang dapat mengaksesnya?

bigmac
sumber

Jawaban:

6

Sepertinya semua yang dilakukan Amazon menyimpan kunci Bitlocker di DPAPI dalam konteks SISTEM. Meskipun ini jauh lebih tidak aman daripada menyimpan kunci dalam TPM (karena kunci plaintext dapat diambil oleh setiap layanan yang berjalan sebagai SISTEM versus kunci yang disimpan dalam TPM yang tidak dapat dipulihkan) jika TPM tidak terpapar ke mesin virtual ini mungkin satu-satunya pilihan Anda.

Untuk mencapai sesuatu yang mirip dengan yang mereka gambarkan, saya mungkin akan menggunakan API PowerShell ConvertFrom-SecureStringdan gratis ConvertTo-SecureString. Per dokumen Microsoft, ConvertFrom-SecureStringcmdlet menggunakan DPAPI jika tidak ada kunci statis yang ditentukan. Jalankan skrip dalam konteks SISTEM dan DPAPI akan mengenkripsi string Anda dengan kata sandi akun mesin.

Dari titik itu masalah menggunakan manage-bdealat untuk membuka kunci drive menggunakan kata sandi yang diambil (misalnya manage-bde -unlock x: -password)

Evan Anderson
sumber
Evan, terima kasih atas kiriman Anda. Anda mengarahkan saya ke arah yang benar, tapi saya masih terjebak dengan menentukan di mana atau bagaimana kunci terenkripsi disimpan. Silakan lihat pembaruan saya di posting asli di atas.
bigmac
1
@bigmac - Hasil edit Anda adalah alasan mengapa paragraf pertama saya memiliki frasa "jauh lebih tidak aman" di dalamnya. Satu-satunya perlindungan yang ditawarkan metode ini adalah mengamankan kunci dari penyerang yang mungkin mendapatkan hak istimewa SISTEM, dan begitu mereka memiliki SISTEM itu "permainan berakhir" untuk kunci Anda. Di TPM, setidaknya, tidak dapat dibuat untuk mengungkapkan kuncinya. Memanen kunci Bitlocker dari memori tentu saja memungkinkan, serangan memori boot dingin terhadap perangkat keras fisik, tetapi itu tidak membahayakan kunci TPM. Anda datang ke realisasi yang saya harapkan untuk Anda - whitepaper Amazon adalah teater keamanan.
Evan Anderson