虚拟加密磁盘实现
1. 背景
我们知道,将数据保存到硬盘上面是很不安全的,例如如果有一个公司的核心文档保存在员工电脑上面,虽然这个员工可以对自己的电脑进行一定的防护,例如封掉USB,禁止上网等等,但是一旦有人将硬盘拔走的话,还是比较危险的,因此这里产生了两种安全解决方案:
- 文档加密系统。
- 磁盘加密系统。
这里要讲的是第二种,磁盘加密,不过这里我们不加密硬件磁盘,我们利用一个文件虚拟出一个虚拟的磁盘,然后当应用程序往虚拟磁盘写入内容的时候,我们就加密写入的数据,当读取数据的时候,我们先解密数据然后再返回。
2. 原理
整体的框架信息如下:
这里我们实现一个虚拟的文件磁盘驱动,然后再这个驱动中实现一个加解密通过,我们读取真实的文件内容的时候就通过这个通道来完成。这样
- 当向磁盘中写入数据的时候,我们通过加密通道加密写入。
- 当从磁盘中读取数据的时候,先通过解密通道解密数据,然后再返回给应用程序。
3. 效果
在虚拟的加密磁盘中写入数据之后,如下:
然后我们取出文件,挂载文件到磁盘,此时的结果如下:
因此我们可以发现这个磁盘中的数据无法获取到,如果直接通过读取磁盘中的原始数据也是不行的,因为数据是通过加密保存的。