Encryption 使用mmap对加密文件系统读/写数据

Encryption 使用mmap对加密文件系统读/写数据,encryption,linux-kernel,filesystems,vfs,ext4,Encryption,Linux Kernel,Filesystems,Vfs,Ext4,我正在开发一个加密的文件系统,它在将数据写入磁盘之前加密数据,并在从磁盘读取数据之后立即解密。如果不先解密,磁盘中的任何文件都是无用的。到目前为止,我改变了文件系统保留的标准读写方法 问题从用于内存映射文件开始。例如,在ext4文件系统中,据我所知,它不使用标准I/O,所以应该像读/写系统调用一样进行加密/解密。那个么,当从磁盘读取数据时,如何解密数据,当内核想要更新内存映射文件时,如何加密数据呢 如果可能的话,我想留在文件系统特定的模块中 更新:读/写操作在终端中完美运行。但是: 我无法在加

我正在开发一个加密的文件系统,它在将数据写入磁盘之前加密数据,并在从磁盘读取数据之后立即解密。如果不先解密,磁盘中的任何文件都是无用的。到目前为止,我改变了文件系统保留的标准读写方法

问题从用于内存映射文件开始。例如,在ext4文件系统中,据我所知,它不使用标准I/O,所以应该像读/写系统调用一样进行加密/解密。那个么,当从磁盘读取数据时,如何解密数据,当内核想要更新内存映射文件时,如何加密数据呢

如果可能的话,我想留在文件系统特定的模块中

更新:读/写操作在终端中完美运行。但是:

  • 我无法在加密分区中执行二进制文件
  • 当我使用基于GUI的文件系统(例如pcmanfm)复制文件时,结果文件已损坏

那么,我是否应该像读/写那样编辑任何其他系统调用?

你在问什么?当映射文件将被读取时,页面将发生错误,这将导致真正的读取,当您将解密时。同步时,更改的页面缓存数据将被写入磁盘,然后进行加密。@AlexHoppus so。。你是说我根本不需要担心mmaped数据的读写方式吗?我建议,如果不需要,请纠正我work@AlexHoppus好的,谢谢。我想我需要做一个长期的测试。我将在运行一些测试后发布结果。我注意到在终端中复制文件是可以的。但在文件管理器中,它会损坏文件。