Anduin2017 / AnduinOS

AnduinOS is a custom Debian-based Linux distribution that aims to facilitate users transitioning from Windows to Ubuntu by maintaining familiar operational habits and workflows. AnduinOS is built on the Ubuntu Jammy package base.
https://www.anduinos.com
GNU General Public License v3.0
50 stars 1 forks source link

关于' Bitlocker 加密分区'相关实现的咨询 #18

Closed rdfsource closed 2 months ago

rdfsource commented 2 months ago

您好, 在某一预设场景中, 需要将一枚空 的U盘, 使用windows的Bitlocker 加密功能, 改造成加密U盘,并将秘钥打印/备份到其他位置. 将数据资料拷贝进u盘后, 通过邮寄投送等形式提供给第三方/对方; 并将秘钥 通过专门渠道给出,实现信息加密后的物理输送.

在这一预设场景下,当我使用anduinOS时, 借由linux.cn社区帖子 ,我将尝试在anduinOS操作系统内,将USB存储设备挂载和解密; 此时, 期望咨询 ,想要将一枚空的USB存储设备,实现Bitlocker 加密(全盘加密,或仅使用的存储部分加密), 写入数据, 并提供给使用windows 7, windows 10操作系统的用户时, 如何优雅地实现这一行为?

Anduin2017 commented 2 months ago

在AnduinOS中使用BitLocker加密并实现数据传输的场景下,你可以通过以下几种方式来完成从加密到解密的整个流程:

1. 在Windows中加密U盘

由于BitLocker是Windows特有的加密技术,最理想的情况是在Windows环境中对U盘进行加密,再将加密后的U盘用于传输数据。流程如下:

在Windows 10或Windows 7中进行BitLocker加密:

  1. 插入U盘:将空的USB存储设备插入Windows电脑。

  2. 启用BitLocker加密

    • 右键点击U盘的图标,选择“启用BitLocker”。
    • 选择“使用密码解锁驱动器”并设置解密密码。
    • 选择备份恢复密钥的方式,可以选择“保存到文件”或“打印恢复密钥”。
    • 完成加密过程,BitLocker将加密U盘(可以选择加密整个U盘或只加密使用部分)。
  3. 备份密钥:BitLocker会提示你备份恢复密钥。你可以选择将密钥保存为文件或打印出来。这个密钥可以通过安全渠道发送给接收方,确保对方可以解密U盘。

  4. 拷贝数据:将数据拷贝到加密后的U盘中。

  5. 发送U盘:加密后的U盘可以通过物理方式(如邮寄)发送给第三方。

  6. 提供密钥:将密钥通过安全的数字方式(如加密邮件、信使等)发送给对方,用于解密U盘。

优点:

2. 在Ubuntu中挂载BitLocker加密的U盘

Ubuntu中默认不支持直接挂载BitLocker加密的U盘,但你可以使用开源工具dislocker来实现对BitLocker加密驱动器的挂载和访问。

在AnduinOS中解密和挂载BitLocker加密U盘:

  1. 安装dislocker: 打开终端,安装dislocker

    sudo apt install dislocker
  2. 创建挂载点

    • 创建一个用于解密的挂载点:
      sudo mkdir /media/bitlocker
      sudo mkdir /media/mountpoint
  3. 解密U盘

    • 假设U盘设备路径为/dev/sdb1,你可以使用以下命令来解密U盘:
      sudo dislocker -r -V /dev/sdb1 -uYourBitLockerPassword -- /media/bitlocker

      -uYourBitLockerPassword是你在Windows上设置的解密密码。

  4. 挂载解密后的文件系统

    • 挂载解密后的文件系统:
      sudo mount -o loop /media/bitlocker/dislocker-file /media/mountpoint

      现在,你可以访问加密的U盘文件内容。

访问数据后:

3. 在Linux中进行BitLocker加密

虽然BitLocker加密只能在Windows中完成,但在Linux上你可以选择使用LUKS(Linux Unified Key Setup)等替代加密方案。如果对方必须使用Windows,你仍然需要使用BitLocker。然而,如果接收方也可以使用Linux系统,你可以考虑LUKS作为更为优雅的方案。

使用LUKS进行U盘加密:

  1. 格式化U盘

    sudo umount /dev/sdb1
    sudo cryptsetup luksFormat /dev/sdb1
  2. 打开LUKS设备

    sudo cryptsetup luksOpen /dev/sdb1 my_encrypted_usb
  3. 格式化并挂载

    • 格式化U盘为EXT4:
      sudo mkfs.ext4 /dev/mapper/my_encrypted_usb
    • 创建挂载点并挂载:
      sudo mkdir /mnt/my_usb
      sudo mount /dev/mapper/my_encrypted_usb /mnt/my_usb
  4. 拷贝数据:将文件拷贝至U盘中。

  5. 关闭和卸载

    sudo umount /mnt/my_usb
    sudo cryptsetup luksClose my_encrypted_usb

这种方案适合Linux用户,但如果对方只使用Windows,还是推荐使用BitLocker。

在Linux中,LUKS2 是主流的磁盘加密方案之一。它不仅提供了强大的加密功能,还可以结合内核支持直接挂载加密分区。下面是如何使用 LUKS2 对U盘进行加密的详细步骤:

步骤 1:检查并备份数据

步骤 2:安装必要工具

大部分现代Linux发行版已经默认安装了用于加密的工具。如果没有,可以使用以下命令安装相关工具:

sudo apt install cryptsetup

cryptsetup 是一个常用的LUKS加密工具,它支持LUKS1和LUKS2。

步骤 3:查找U盘设备

插入U盘后,可以使用以下命令查看设备名称:

lsblk

输出类似如下:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 238.5G  0 disk 
└─sda1   8:1    0 238.5G  0 part /
sdb      8:16   1  29.3G  0 disk 
└─sdb1   8:17   1  29.3G  0 part

假设U盘设备为/dev/sdb,接下来的操作将基于这个设备名。

步骤 4:卸载U盘

如果U盘已经被自动挂载,需要先卸载它:

sudo umount /dev/sdb1

步骤 5:加密U盘

使用cryptsetup对U盘进行加密。这里我们选择LUKS2格式:

sudo cryptsetup luksFormat /dev/sdb

你会被提示确认并设置解密密码。该密码是以后访问加密数据所需的。

步骤 6:打开加密卷

使用下面的命令打开加密卷:

sudo cryptsetup luksOpen /dev/sdb my_encrypted_usb

my_encrypted_usb 是你选择的一个卷名称,你可以使用任何名称。

步骤 7:格式化加密卷

加密卷需要格式化为一个文件系统(例如EXT4),以便之后存储文件:

sudo mkfs.ext4 /dev/mapper/my_encrypted_usb

步骤 8:挂载加密卷

现在可以将加密后的卷挂载到某个目录,例如:

sudo mkdir /mnt/my_usb
sudo mount /dev/mapper/my_encrypted_usb /mnt/my_usb

步骤 9:写入数据

你可以像往常一样将数据写入挂载的目录 /mnt/my_usb

步骤 10:卸载和关闭加密卷

完成数据操作后,先卸载卷,再关闭加密设备:

sudo umount /mnt/my_usb
sudo cryptsetup luksClose my_encrypted_usb

步骤 11:解密和挂载加密U盘(以后使用)

当你再次插入这个加密U盘时,可以按照以下步骤解密并挂载它:

  1. 打开加密卷:

    sudo cryptsetup luksOpen /dev/sdb my_encrypted_usb
  2. 挂载:

    sudo mount /dev/mapper/my_encrypted_usb /mnt/my_usb

完成数据操作后,仍然需要使用umountluksClose来安全移除U盘。

优势:

  1. 兼容性:LUKS2支持在所有Linux发行版中使用,并且可以选择不同的加密算法。
  2. 安全性:LUKS提供了高强度的加密算法(例如AES),保证数据的安全性。
  3. 灵活性:可以轻松更改密码,支持多个密钥槽(允许不同的用户密钥解密同一设备)。

总结:

LUKS2提供了高效的磁盘加密方案,适合Linux用户的安全需求。通过cryptsetup工具,可以快速对U盘进行加密和解密操作,保证数据的安全性和完整性。