Bitlocker是微软的磁盘加密工具,仅支持Windows Vista以上的Windows操作系统,而微软也未公开其相关参数。
有一开源实现,dislocker,可以实现在Linux上以多种方式(用户密码/恢复密钥/BEK格式的恢复文件…)解密并访问由Bitlocker加密的卷。
- 编译安装dislocker
$ git clone https://github.com/Aorimn/dislocker
$ cd dislocker
$ apt install build-essential cmake libfuse-dev libmbedtls-dev ruby-dev
// 修复ruby找不到header文件的问题
# ln -s /usr/include/x86_64-linux-gnu/ruby-2.5.0/ruby/config.h /usr/include/ruby-2.5.0/ruby/ruby/config.h
$ cmake
$ make
# make install
2.使用
假设使用Bitlocker加密的卷为/dev/sda3
,且该卷可用密码解密.
# mkdir /mnt/.dislocker-sda3 /mnt/sda3
# dislocker -v -V /dev/sda3 -u -- /mnt/.dislocker-sda3
// 在交互界面输入Bitlocker密码
# mount -o rw /mnt/.dislocker-sda3 /mnt/sda3
解除挂载
# umount /mnt/sda3
# umount /mnt/.dislocker-sda3
3.配合fstab
完成自动挂载
在fstab文件中添加一行即可。
/dev/sda3 /mnt/sda3 fuse.dislocker user-password={bitlocker_password},nofail 0 0
警告:在未全盘加密的系统上使用或泄露Bitlocker卷的密码/恢复密钥
4.可能存在的问题
该实现最后一次commit是在2017年2月,不确定其能否支持Windows 10引入的、不提供向前兼容的新Bitlocker算法。
笔者测试时使用的是由Windows 7创建的Bitlocker卷,使用(默认的)AES-128加密,能正常地完成读取和写入,不会造成文件或卷损坏。