-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement FVEAutoUnlock key unwrapping #37
Comments
@marcan interesting, thx for the update.
I want like to keep the functionality of the library as scoped to BDE itself as possible. I think it would be possible to extend libbde to handle 'AUTO_UNLOCK_KEY + FVEAutoUnlock blob' similar to the start-up key. Doing the 'AUTO_UNLOCK_KEY + FVEAutoUnlock blob' extraction process IMHO would be more something for dfVFS volume scanner. |
Yeah, I don't think the registry part belongs in libbde. I think it should do the two steps around that: puling the AUTO_UNLOCK_KEY from the OS volume (which is just decrypting key 0x000b just like the FVEK is right now, but dumping it to a file or hex instead) and taking in that key + FVEAutoUnlock blob to unlock a subvolume (which is just an extra decryption step and then works like a normal external key). |
I'm trying to playing with this and found that it seems that the
|
See #36 for what a "tag" is, why the nonce is opaque and there's no point in trying to interpret is, and how libbde currently botches CCM decryption and thus makes this confusing. |
Remember that metadata entry 0x000b? This is what that is for.
Windows supports auto-unlocking BitLocker fixed volumes (which are unlocked before user login). This works only when the OS drive is itself using BitLocker. It works like this:
LIBBDE_ENTRY_TYPE_AUTO_UNLOCK_KEY
AUTO_UNLOCK_KEY
, yielding an aes_ccm_encrypted_keyHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FVEAutoUnlock\{volume identifier guid}
and a binary value namedData
is created with the following format:So the question here is how should this be implemented in libbde? It involves somewhat complex interaction between two volumes and the registry. The steps would have to be something like this:
Any hints as to what this should look like in libbde? I can give a shot at implementing it once the right way forward is clear.
The text was updated successfully, but these errors were encountered: