一种文件透明加解密方法和系统技术方案

技术编号:33778561 阅读:31 留言:0更新日期:2022-06-12 14:32
一种文件透明加解密方法和系统,方法包括:在内核态创建共享缓存,用于缓存文件的读写内容;在内核态拦截文件读操作,获取读操作参数;根据所述读操作参数判断所述文件是否为加密文件,若是,则根据读操作参数从共享缓存中读取文件内容发送至用户态进程;否则,采用系统函数读取文件内容将所述文件内容发送至用户态进程;在内核态拦截文件写操作,获取写操作参数;将写入内容存储在共享缓存中;当共享缓存空间已满或写入内容为文件尾时,根据所述写操作参数判断所述文件是否为加密文件,若是,则在用户态对共享缓存中存储的文件内容进行加密,在内核态将加密后的内容写入文件,否则,直接在内核态将写入内容写入文件。直接在内核态将写入内容写入文件。直接在内核态将写入内容写入文件。

【技术实现步骤摘要】
一种文件透明加解密方法和系统


[0001]本专利技术涉及文件加解密
,尤其涉及一种文件透明加解密方法和系统。

技术介绍

[0002]随着个人计算机、办公自动化的普及,保护敏感文件不被泄漏成为人们关注的热点问题。目前各个公司的办公业务系统都会有使用各自的安全管控手段对办公文件实行加密和解密操作,反正机密文件和信息的泄漏。由于办公文件对内部人员是公开的,因此通常采用透明加解密技术来实现。透明加解密是指用户在操作过程中,加解密过程不会被用户察觉到,即在用户无感知的情况下,实现对文件的加解密操作。
[0003]目前,基于文件的透明加解密方法,要么完全在用户态实现的,要么完全内核态实现。基于用户态的透明加解密方法,往往存在安全隐患和速度慢的问题;基于内核态的透明加解密方法,会导致系统的不稳定和系统升级困难的问题。

技术实现思路

[0004]鉴于上述的分析,本专利技术实施例旨在提供一种文件透明加解密方法,用以解决现有的文件透明加解密方法存在安全隐患、速度慢并且升级困难的问题。
[0005]一方面,本专利技术实施例提供了一种文件透明加解密方法,包括:
[0006]在内核态创建共享缓存,用于缓存文件的读写内容;
[0007]在内核态拦截文件读操作,获取读操作参数;根据所述读操作参数判断所述文件是否为加密文件,若是,则根据读操作参数从共享缓存中读取文件内容发送至用户态进程;否则,采用系统函数读取文件内容将所述文件内容发送至用户态进程;
[0008]在内核态拦截文件写操作,获取写操作参数;将写入内容存储在共享缓存中;当共享缓存空间已满或写入内容为文件尾时,根据所述写操作参数判断所述文件是否为加密文件,若是,则在用户态对共享缓存中存储的文件内容进行加密,在内核态将加密后的内容写入文件,否则,直接在内核态将写入内容写入文件。
[0009]基于上述技术方案的进一步改进,
[0010]所述读操作参数包括:文件描述符、读取偏移量和读取长度;
[0011]所述写操作参数包括:文件描述符、写入偏移量和写入长度;
[0012]根据所述读操作参数或写操作参数判断所述文件是否为加密文件,包括:
[0013]根据所述文件描述符得到文件名、文件类型和打开文件的进程,若所述文件类型为监控类型或所述打开文件的进程为监控进程,则根据所述文件名获取扩展属性或文件头,根据所述文件扩展属性或文件头判断所述文件是否为加密文件;否则,判断所述文件为非加密文件。
[0014]基于上述技术方案的进一步改进,根据读操作参数从共享缓存中读取文件内容发送至用户态进程,包括:
[0015]根据所述读操作参数判断读取的文件内容是否在共享缓存中,若存在,则从共享
缓存中直接读取所述文件内容发送至用户态进程;否则,在用户态读取加密文件内容,调用解密算法进行解密,将解密内容写入共享缓存,在内核态根据读取偏移量和读取长度从共享缓存中读取解密的文件内容发送至用户态进程。
[0016]进一步地,根据所述读操作参数判断读取的文件内容是否在共享缓存中,包括:
[0017]根据所述文件名判断共享缓存中是否存在该文件,若不存在,则判断所述读取的文件内容不在共享缓存中;否则,
[0018]判断读取偏移量是否大于等于共享缓存区中缓存的偏移量并且读取长度小于读取偏移量到缓存内容结尾的长度,若是,则判断所述读取的文件内容在共享缓存中,否则,判断所述读取的文件内容不在共享缓存中。
[0019]进一步地,在用户态读取加密文件内容,调用解密算法进行解密,将解密内容写入共享缓存,包括:
[0020]在内核态向用户态加解密进程发送消息,消息包括文件名、读取偏移量、读取长度、共享缓存地址;
[0021]用户态加解密进程根据文件名、读取偏移量和读取长度读取加密的文件内容,根据解密算法对加密的文件内容进行解密,将解密的内容存入共享缓存地址中。
[0022]进一步地,将写入内容存储在共享缓存中,包括:
[0023]根据所述文件名判断共享缓存中是否存在该文件,若不存在,则将写入内容直接存入共享缓存中;若存在,则:
[0024]若共享缓存区中缓存的偏移量小于等于写入偏移量且写入偏移量与缓存偏移量的差与写入长度的和小于等于缓存区大小,则将写入内容存入共享缓存中写入偏移量对应的位置;若共享缓存区中缓存的偏移量小于等于写入偏移量且写入偏移量与缓存偏移量的差与写入长度的和大于缓存区大小,则将缓存内容写入文件,删除共享缓存中该文件的内容,将写入内容存入共享缓存;若共享缓存区中缓存的偏移量大于写入偏移量,则删除共享缓存中该文件的内容,将写入内容存入共享缓存。
[0025]进一步地,在用户态对共享缓存中存储的文件内容进行加密,在内核态调用系统函数将加密内容写入文件,包括:
[0026]在内核态向用户态加解密进程发送消息,消息包括未加密文件内容的共享缓存地址、文件内容长度和加密文件内容的共享缓存地址;
[0027]用户态加解密进程从共享缓存中未加密文件内容的存储地址中读取文件内容长度的未加密内容,根据加密算法对未加密内容进行加密,将加密后的内容存入加密文件内容的共享缓存地址中;
[0028]在内核态根据文件描述符、写入偏移量将加密内容写入文件。
[0029]进一步地,所述用户态加解密进程为守护进程,所述用户态加解密进程采用多线程并行的方式进行加密或解密。
[0030]与现有技术相比,本实施例提供的文件透明加解密方法通过在内核态建立共享缓存,缓存加密文件内容,当读取文件时从共享缓存中读取文件内容从而加速文件读取,当写文件时,先将文件放入共享缓存,当写结束或缓存区满后,在用户态对共享缓存区的内容进行加密,再写入文件,通过用户态和内核态的相互配合,提高文件透明加解密的性能和安全性;同时,当加解密算法更新时,只需要在用户态更新相应的算法库即可,升级流程简单,提
高了系统的稳定性。内核态模块直接截获用户的读写操作,无需利用另外的堆叠文件系统和挂载目录的方式,简化了加密文件管理。
[0031]另一方面,本专利技术实施例提供了一种文件透明加解密系统,包括:
[0032]共享缓存创建模块,用于在内核态创建共享缓存,用于缓存文件的读写内容;
[0033]文件读模块,用于在内核态拦截文件读操作,获取读操作参数;根据所述读操作参数判断所述文件是否为加密文件,若是,则根据读操作参数从共享缓存中读取文件内容发送至用户态进程;否则,采用系统函数读取文件内容将所述文件内容发送至用户态进程;
[0034]文件写模块,用于在内核态拦截文件写操作,获取写操作参数;将写入内容存储在共享缓存中;当共享缓存空间已满或写入内容为文件尾时,根据所述写操作参数判断所述文件是否为加密文件,若是,则在用户态对共享缓存中存储的文件内容进行加密,在内核态将加密后的内容写入文件,否则,直接在内核态将写入内容写入文件。
[0035]进一步地,所述文件读模块,根据读操作参数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件透明加解密方法,其特征在于,包括:在内核态创建共享缓存,用于缓存文件的读写内容;在内核态拦截文件读操作,获取读操作参数;根据所述读操作参数判断所述文件是否为加密文件,若是,则根据读操作参数从共享缓存中读取文件内容发送至用户态进程;否则,采用系统函数读取文件内容将所述文件内容发送至用户态进程;在内核态拦截文件写操作,获取写操作参数;将写入内容存储在共享缓存中;当共享缓存空间已满或写入内容为文件尾时,根据所述写操作参数判断所述文件是否为加密文件,若是,则在用户态对共享缓存中存储的文件内容进行加密,在内核态将加密后的内容写入文件,否则,直接在内核态将写入内容写入文件。2.根据权利要求1所述的文件透明加解密方法,其特征在于,所述读操作参数包括:文件描述符、读取偏移量和读取长度;所述写操作参数包括:文件描述符、写入偏移量和写入长度;根据所述读操作参数或写操作参数判断所述文件是否为加密文件,包括:根据所述文件描述符得到文件名、文件类型和打开文件的进程,若所述文件类型为监控类型或所述打开文件的进程为监控进程,则根据所述文件名获取扩展属性或文件头,根据所述文件扩展属性或文件头判断所述文件是否为加密文件;否则,判断所述文件为非加密文件。3.根据权利要求2所述的文件透明加解密方法,其特征在于,根据读操作参数从共享缓存中读取文件内容发送至用户态进程,包括:根据所述读操作参数判断读取的文件内容是否在共享缓存中,若存在,则从共享缓存中直接读取所述文件内容发送至用户态进程;否则,在用户态读取加密文件内容,调用解密算法进行解密,将解密内容写入共享缓存,在内核态根据读取偏移量和读取长度从共享缓存中读取解密的文件内容发送至用户态进程。4.根据权利要求3所述的文件透明加解密方法,其特征在于,根据所述读操作参数判断读取的文件内容是否在共享缓存中,包括:根据所述文件名判断共享缓存中是否存在该文件,若不存在,则判断所述读取的文件内容不在共享缓存中;否则,判断读取偏移量是否大于等于共享缓存区中缓存的偏移量并且读取长度小于读取偏移量到缓存内容结尾的长度,若是,则判断所述读取的文件内容在共享缓存中,否则,判断所述读取的文件内容不在共享缓存中。5.根据权利要求3所述的文件透明加解密方法,其特征在于,在用户态读取加密文件内容,调用解密算法进行解密,将解密内容写入共享缓存,包括:在内核态向用户态加解密进程发送消息,消息包括文件名、读取偏移量、读取长度、共享缓存地址;用户态加解密进程根据文件名、读取偏移量和读取长度读取加密的文件内容,根据解密算法对加密的文件内容进行解密,将解密的内容存入共享缓存地址中。6.根据权利要求2所述的文件透明加解密方法,其特征在于,将...

【专利技术属性】
技术研发人员:朱盼盼石春刚张永静郑宇宁李静
申请(专利权)人:北京京航计算通讯研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1