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

在此之前先介绍一下 LUKS:

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

1.环境

OS:Gentoo

内核:4.9.95

工具:cryptsetup

2.内核配置(可选)

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

配置 device mapper 和 crypt target:

[*] Enable loadable module support

Device Drivers --->

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

<*> Device mapper support

<*>   Crypt target support

配置加密 API:

[*] Cryptographic API --->

<*> XTS support

<*> SHA224 and SHA256 digest algorithm

<*> AES cipher algorithms

<*> AES cipher algorithms (x86_64)

<*> User-space interface for hash algorithms

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

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

# make -j9 && make modules_install && make install

3.安装软件

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

# emerge --ask sys-fs/cryptsetup

4.创建加密分区

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

# cryptsetup -s 512 luksFormat /dev/sdd

WARNING!

========

This will overwrite data on /dev/sdd irrevocably.

Are you sure? (Type uppercase yes): YES

Enter passphrase:

Verify passphrase:

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

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

5.1.生成随机密钥文件

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

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

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

Enter any existing passphrase:

6.移除解密密码

移除普通密码:

# cryptsetup luksRemoveKey /dev/sdd

Enter LUKS passphrase to be deleted: ...

移除 key file 密码:

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

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

7.解密与挂载

7.1.密码解密

# cryptsetup luksOpen /dev/sdd myusb

Enter passphrase for /dev/sdd:

7.2.key file 解密

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

7.3.创建文件系统

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

# mkfs.ext4 /dev/mapper/myusb

mke2fs 1.43.6 (29-Aug-2017)

Creating filesystem with 488448 4k blocks and 122160 inodes

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

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Allocating group tables: done

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

7.4.挂载

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

# mount /dev/mapper/myusb /mnt/

# df -h

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

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

# umount /mnt

# cryptsetup luksClose myusb

8.总结

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

使用LUKS加密你的磁盘的更多相关文章

  1. Linux下磁盘加密luks使用

    使用luks加密磁盘,磁盘需要映射才可以挂载,映射的时候需要输入密码验证.luks相对于是对硬盘上了一把锁,要想打开就得有相应的钥匙,如果打开了就可以随意操作了,和普通硬盘一样. 使用方法如下: 0. ...

  2. 用luks方式对磁盘进行加密以及加密磁盘的自动挂载

    1.关于luks加密 LUKS(Linux Unified Key Setup)为Linux硬盘分区加密提供了一种标准,它不仅能通用于不同的 Linux发行版本,还支持多用户/口令.因为它的加密密钥独 ...

  3. openstack havana块存储Cinder磁盘加密方法研究

    http://blog.csdn.net/cloudresearch/article/details/19092219 在openstack havana的release note中有如下介绍“Att ...

  4. android全磁盘加密

    android 全磁盘加密 什么是全磁盘加密? 全磁盘加密是使用一个密钥来为android设备上全部的用户数据加密的过程.一旦设备被加密,全部的用户创建的数据都将会在提交的磁盘之前自己主动加密,在读取 ...

  5. linux初学者-磁盘加密篇

    linux初学者-磁盘加密篇 因为保密需要,一般系统中会在文件和磁盘中进行加密,但是文件的加密比较容易破解,不安全.所以在特殊需要下,会对磁盘进行加密,磁盘加密后在磁盘损坏的同时,其中的数据也会损坏, ...

  6. Windows中的权限设置、文件压缩、文件加密、磁盘配额和卷影副本

      目录 权限设置 文件夹的NTFS权限 文件的NTFS权限 NTFS权限的应用规则 文件压缩 文件加密 磁盘配额 卷影副本 权限设置的应用 遇到的一个权限问题的小bug 权限问题的实际应用 权限设置 ...

  7. ubuntu下如何快速加密可移动存储设备

    ubuntu下可以快速加密U盘和其他移动存储设备.访问的时候会要你输入密码,这样就比较安全了. ubuntu的磁盘工具使用的是LUKS加密,虽然这个加密方法不跟其他系统兼容,但可以在其他试用GNOME ...

  8. 技术分析 | 新型勒索病毒Petya如何对你的文件进行加密

    6月27日晚间,一波大规模勒索蠕虫病毒攻击重新席卷全球. 媒体报道,欧洲.俄罗斯等多国政府.银行.电力系统.通讯系统.企业以及机场都不同程度的受到了影响. 阿里云安全团队第一时间拿到病毒样本,并进行了 ...

  9. 有关 Azure IaaS VM 磁盘以及托管和非托管高级磁盘的常见问题解答

    本文将对有关 Azure 托管磁盘和 Azure 高级存储的一些常见问题进行解答. 托管磁盘 什么是 Azure 托管磁盘? 托管磁盘是一种通过处理存储帐户管理来简化 Azure IaaS VM 的磁 ...

随机推荐

  1. 以聊天的形式解决traefik2.1.X的一个问题

    海口-老男人 17:24:48 大哥,这个是啥报错呀 海口-老男人 17:27:04 E0413 09:23:13.134144 1 reflector.go:153] pkg/mod/k8s.io/ ...

  2. Simulink中Scope数据保存至Workspace制图

    0 问题 通常情况下,仿真模型中scope波形可编辑程度并不高,尽管高版本MATLAB中已经可以将其直接导出到figure,但效果并不是特别理想.在需要高质量输出波形图场合,就需要将其中数据导出到wo ...

  3. 2020 OO 第二单元总结

    只要跑得够快即使从头关到尾你也喜欢吗? 一.设计策略 1.1 总体策略概述 在多线程的协同和同步控制方面,我三次作业都是采用生产者/消费者模式(还憨憨地在内部分了customer.producer.t ...

  4. html页面自定义文字水印效果案例

    在系统开发过程中,一些数据或页面比较敏感的地方,客户会要求实现水印效果,防止内部人员截图或拍照泄露信息. 自定义文字水印顾名思义就是利用js在完成页面渲染的同时,往页面的最底层动态生成多个带水印信息的 ...

  5. 对不起,“下一代ERP”仍旧是现在的ERP

    最近数字化转型太火了,到处都是相关数字化的网文.很多人又说在数字化转型时代,ERP早就落伍了云云,取而代之的是什么"下一代ERP",叫什么"ARP"." ...

  6. [Skill]从零掌握正则表达式

    前言 无论你是出于什么原因需要掌握正则表达式(诸如爬虫.文本检索.后端服务开发或Linux脚本),如果之前从没接触过正则表达式(比如我)很容易在如山般的公式中迷失,以至于你在项目写的正则表达式很可能会 ...

  7. Java8中的Optional操作

    作者:汤圆 个人博客:javalover.cc 前言 官人们好啊,我是汤圆,今天给大家带来的是<Java8中的Optional操作>,希望有所帮助,谢谢 文章纯属原创,个人总结难免有差错, ...

  8. 全网最清楚的:MySQL的insert buffer和change buffer 串讲

    目录 一.前言 二.问题引入 2.1.聚簇索引 2.2.普通索引 三.change buffer存在的意义 四.再看change buffer 五.change buffer 的限制 六.change ...

  9. kubernetes node SchedulingDisabled

    问题: k8s 集群的节点处于 SchedulingDisabled 解决方案 kubectl patch node NodeName -p "{\"spec\":{\& ...

  10. 关于 下载 nfs-utils时的 gssproxy conflicts with selinux-policy-3.13.1-102.el7.noarch 错误

    使用 yum install nfs-utils -y 时 出现如下错误: 错误:gssproxy conflicts with selinux-policy-3.13.1-102.el7.noarc ...