打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用 LUKS 加密你的磁盘
LUKS (Linux Unified Key Setup)是 Linux 硬盘加密的标准。 通过提供标准的磁盘格式,它不仅可以促进发行版之间的兼容性,还可以提供对多个用户密码的安全管理。
-- Locez



致谢
转载自 | http://locez.com/linux/cryptography/encrypt-your-disk/
 作者 | Locez

数据的安全,保密性在现在的生活中显得越来越重要。随着数字化的时代的来临,越来越多的数据被数字化,特别是更多有关于我们隐私的数据在不断生成,甚至还有我们需要离线保存的密钥等。而且通常我们使用磁盘,USB 闪存,SD 卡等存储介质进行存储,即便我们已经离线存储,仍然不能保证该存储介质不会丢失,如果丢失那么对于我们来说有可能是灾难性的事件。因此对这些离线存储的重要数据,再次进行进行加密是非常有必要的,本文将告诉你如何加密你的移动存储介质。

在此之前先介绍一下 LUKS:

LUKS (Linux Unified Key Setup)是 Linux 硬盘加密的标准。 通过提供标准的磁盘格式,它不仅可以促进发行版之间的兼容性,还可以提供对多个用户密码的安全管理。 与现有解决方案相比,LUKS 将所有必要的设置信息存储在分区信息首部中,使用户能够无缝传输或迁移其数据。

1. 环境

◈ OS: Gentoo
◈ 内核:4.9.95
◈ 工具:cryptsetup

2. 内核配置(可选)

通常来说,大部分发行版的内核都已经配置了相关的加密部分,因此非 gentoo 用户可以跳过此部分。

配置 device mapper 和 crypt target:

  1. [*] Enable loadable module support

  2. Device Drivers --->

  3.    [*] Multiple devices driver support (RAID and LVM) --->

  4.        <*> Device mapper support

  5.        <*>   Crypt target support

配置加密 API:

  1. [*] Cryptographic API --->

  2.    <*> XTS support

  3.    <*> SHA224 and SHA256 digest algorithm

  4.    <*> AES cipher algorithms

  5.    <*> AES cipher algorithms (x86_64)

  6.    <*> User-space interface for hash algorithms

  7.    <*> User-space interface for symmetric key cipher algorithms

编译新内核并配置应用,然后重启:

  1. # make -j9 && make modules_install && make install

3. 安装软件

通常的发行版已经预装了该软件包,可以直接使用,下面是 Gentoo 的安装方法

  1. # emerge --ask sys-fs/cryptsetup

4. 创建加密分区

注意,该操作会清空你选择分区或设备上的所有数据,请谨慎操作,输入大写的 YES 确认

  1. # cryptsetup -s 512 luksFormat /dev/sdd

  2. WARNING!

  3. ========

  4. This will overwrite data on /dev/sdd irrevocably.

  5. Are you sure? (Type uppercase yes): YES

  6. Enter passphrase:

  7. Verify passphrase:

5. 利用密钥文件加密分区

除了密码之外,还可以选择使用密钥文件解密你的硬盘,也就是相当于一个密钥,当然可以也可以只使用密钥文件或者同时使用密码与密钥文件。

5.1 生成随机密钥文件

  1. # dd if=/dev/urandom of=/root/enc.key bs=1 count=4096

5.2 添加密钥文件作为密码之一

  1. # cryptsetup luksAddKey  /dev/sdd /root/enc.key

  2. Enter any existing passphrase:

6 移除解密密码

移除普通密码:

  1. # cryptsetup luksRemoveKey /dev/sdd

  2. Enter LUKS passphrase to be deleted: ...

移除 key file 密码:

  1. # cryptsetup luksRemoveKey -d /root/enc.key /dev/sdd

注意:千万不要将所有密码移除,至少需要留有一个密码访问设备,移除操作不可撤销

7. 解密与挂载

7.1 密码解密

  1. # cryptsetup luksOpen /dev/sdd myusb

  2. Enter passphrase for /dev/sdd:

7.2 key file 解密

  1. # cryptsetup luksOpen -d /root/enc.key /dev/sdd myusb

7.3 创建文件系统

在挂载使用之前,我们仍然需要对设备创建文件系统才可以使用,可以选择任何你喜欢的文件系统,例如 btrfsext4vfatntfs 等

  1. # mkfs.ext4 /dev/mapper/myusb

  2. mke2fs 1.43.6 (29-Aug-2017)

  3. Creating filesystem with 488448 4k blocks and 122160 inodes

  4. Filesystem UUID: 995e172a-2bc6-432c-a60f-2d4d7093e748

  5. Superblock backups stored on blocks:

  6.    32768, 98304, 163840, 229376, 294912

  7. Allocating group tables: done

  8. Writing inode tables: done

  9. Creating journal (8192 blocks): done

  10. Writing superblocks and filesystem accounting information: done

7.4 挂载

现在可以像正常分区一样挂载我们的加密分区设备了

  1. # mount /dev/mapper/myusb /mnt/

  2. # df -h

  3. /dev/mapper/myusb  1.9G  5.7M  1.7G   1% /mnt

7.5 卸载挂载点并关闭加密分区

  1. # umount /mnt

  2. # cryptsetup luksClose myusb

8. 总结

在完成整个步骤以后,您现在需要做的就是妥善保管您的加密存储,可采用同样的方式加密多个设备进行备份,因为谁也不能保证这移动设备会不会在什么时候丢掉。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
linux使用luks对分区加密
Kali Linux Live USB Persistence | Kali Linux
非交互式全盘加密系统设计与实现
ubuntu加密算法“AES256”的问题
迅雷网心云x86版虚拟机硬盘解密
USB存储 [OpenWrt Wiki]
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服