BitLocker本身支持多种加密和解密的方式。有RecoveryKey, RecoveryPassword ,password。在工作中遇到一个需求是利用脚本来解锁Bitlocker机密过的磁盘。 针对前两种方式可以调用manage-bde -unlock -pk 或者 manage-bde -unlock -pw 将RecoveryKey 和RecoveryPassword作为参数传入即可。 但是对于使用password来解密的情况,方法要复杂一些。下面简单介绍一下我和同事在解决这个问题的采取的方法。
在输入 manage-bde -unlock -pw 这个命令来解锁时,会要求你输入密码。很自然的我就想到重新定向标准输入的方法。但是manage-bde 提示句柄错误 (The handler is invalid). 在网络搜索了好久之后,我猜测manage-bde并不是从标准输入来得到用户输入的密码. 有人提到Linux 上的ssh client 和telnet client 通常也不是从标准输入来读取密码。类似的还有Linux passwd命令有一个 -stdin 的flag来表示从标准输入读取密码。所以对于密码这类敏感的数据,manage-bde也非常可能不是从stdin读取用户输入。
所以我们的解决方案是模拟键盘输入,利用程序来模拟按键。例如使用Java的 awt库来做。这篇文章只是说下思路,具体代码实现就不贴了。
网友评论