CN103841113B - 一种基于用户模式文件系统的安全网络文件系统 - Google Patents
一种基于用户模式文件系统的安全网络文件系统 Download PDFInfo
- Publication number
- CN103841113B CN103841113B CN201410104937.3A CN201410104937A CN103841113B CN 103841113 B CN103841113 B CN 103841113B CN 201410104937 A CN201410104937 A CN 201410104937A CN 103841113 B CN103841113 B CN 103841113B
- Authority
- CN
- China
- Prior art keywords
- file
- user
- decryption policy
- decryption
- individual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于用户模式文件系统的安全网络文件系统,包括文件服务器、解密服务器、身份管理系统及由文件客户端、虚拟文件系统驱动构成的用户模式文件系统驱动;用户模式文件系统驱动将文件服务器中的文件及文件目录映射到用户计算机的文件系统的一个虚拟文件盘或虚拟文件目录,并将针对虚拟文件盘或虚拟文件目录中文件的操作转化成针对文件服务器上对应文件的操作,以及在获得许可的用户的程序读写虚拟文件盘或虚拟文件目录中的文件时自动对文件服务器上的对应文件进行解密或加密;对文件解密进行控制的文件解密策略由文件创建者或者创建者授权的用户在用户端创建,使得文件服务器的运维者在没有受到授权的情况下也无法获取保密文件的内容。
Description
技术领域
本发明属于信息安全技术领域,特别是一种使得程序和用户能够按通常访问和操作文件系统中的文件的方式访问和操作存放在网络文件存储系统中的文件并能防止网络文件存储系统的运行维护者(运维者)窃取文件的适合于云存储的基于用户模式文件系统的安全网络文件系统。
背景技术
文件云存储系统是一种通过网络提供文件存储和访问服务的系统。文件云存储系统通常由两部分组成:云端系统和云存储客户端,其中,云端系统用于存放文件,云存储客户端用于用户进行文件云存储操作,包括向云端系统上传文件和从云端系统下载文件。文件云存储使得用户能够在不同位置、不同计算终端上使用文件,给用户带来了极大方便,日益受到人们的欢迎。但目前的文件云存储系统普遍存在如下问题:
1)应用程序或系统程序不能直接访问
目前的云存储系统通常是通过一个专用的云存储客户端向用户提供文件存储和使用的功能。一个应用程序或系统程序要使用保存在云端系统中的文件,用户需先使用的云存储客户端将文件从云端系统下载到用户本地计算机上后再使用,应用程序或系统程序不能按通常访问和操作文件系统中的文件的方式直接访问和操作保存在云端系统中的文件(如程序通过操作系统提供的文件I/O操作API打开、读取、存写文件),这给用户带来了极大不便。
2)与用户通常使用文件的习惯不相符
云存储系统通过一个专用的云存储客户端向用户提供文件存储和使用的功能,而不同的云存储系统提供的客户端往往各不相同,用户要使用不同的云存储系统需熟悉不同的客户端,这不但给用户带来不便,也与用户熟悉的通过操作系统的文件管理器或文件系统“外壳”程序(SHELL程序,如Windows的Explorer)访问文件、操作文件的习惯不相符。
3)不能防止文件云存储系统的运维者包括云存储系统管理员对文件的非授权访问
目前的文件云存储系统通常是通过在云端系统实施访问控制来防止对文件的非授权的访问,但这种方案不能防止文件云存储系统的运维者包括云存储系统的管理员对文件的非授权访问,而这正是广大云存储用户,特别是企业用户非常担心的一个问题,也是妨碍云存储业务发展的一个重要障碍。
对于第1、2个问题,可通过网络文件系统技术将存储在网络文件存储系统上的文件映射成用户计算机文件系统的一部分(网络文件存储系统与网络文件系统是不同的,前者是个存储系统,后者是个文件系统)。常用的网络文件系统技术包括Unix、Linux和Windows系统中使用的NFS(Network File System)。但NFS只适合于内网,不适合于互联网。另一种可行的方案是采用用户模式文件系统技术加以解决(这也正是本发明所采用的技术)。用户模式文件系统(User Mode File System,FUSE)最初是在Linux的虚拟文件系统(Virtual File System,FUSE)技术基础上发展的一种文件系统技术,之后该技术被推广到其他操作系统包括Windows、Unix(不同操作系统下的FUSE在实现方案上略有差别)。用户模式文件系统的技术特点是通过一个文件系统驱动或文件系统的过滤器驱动将应用程序或系统程序针对一个(虚拟)文件盘或文件目录中的文件或文件目录的操作请求转发到一个运行在计算机系统的用户模式下的文件操作处理程序,由该用户模式下的文件操作处理程序完成针对具体文件或文件目录的操作。在用户模式文件系统中,具体的文件和文件目录可根据需要存放在任何地方,包括云存储的云端系统。
对于第3个问题,可以采用在用户端进行文件加密和解密的方案加以解决:在文件从用户端将文件上传到云端系统前先由云存储客户端对文件进行加密,在将文件从云端系统下载到用户计算机本地使用文件前,先由云存储客户端对文件进行解密(由云端系统在文件上传、下载时对文件进行加密、解密的方案不能防止云存储系统的运维者非授权访问文件,因此是不可取的)。采用在用户端对文件进行加密和解密的方案需满足如下要求:
1)不给用户使用文件带来额外的操作
即对文件的加密和解密应该是自动,换言之,对用户或使用文件的程序是“透明”的。
2)安全且适合于文件共享使用
保存在云端系统中的文件常常需要供不同的用户共享使用,因此,采用的文件加密方案不但要安全,而且要适合于文件共享使用。对于共享文件,采用对称密钥加密方案显然不合适,因为在不同用户之间分发对称密钥很麻烦,还有,如果对称密钥由共享口令产生,那么面临的问题是一方面简单口令不安全,另一方面复杂口令不易记忆;再有,若存在大量的共享文件,则它们都使用同一个对称密钥或口令显然很不安全的,而使用不同的对称密钥或口令则更不方便。但是,采用通常的非对称密钥加密方案在共享用户数量少的时候是可以的,而在共享用户多的时候,比如数十人、上百人的时候,显然也不合适。所谓通常的非对称密钥加密方案,即将文件用一个随机对称密钥,然后再用每个共享用户的公钥分别对随机对称密钥,然后将用每个共享用户的公钥分别加密的随机对称密钥同加密后的文件一起保存在云端系统;一个共享用户在使用加密文件前先使用自己的私钥解密用自己的公钥加密的随机对称密钥,然后再用解密后的随机对称密钥解密用随机对称密钥加密的文件。提出一种既安全又适合于文件共享的文件加密方案是本发明重点要解决的问题之一。
发明内容
本发明的目的是提出一种使得程序和用户能够按通常访问和操作文件系统中的文件的方式访问和操作存放在网络文件存储系统中的文件,并能防止网络文件存储系统的运维者窃取文件的适合于云存储的安全网络文件系统。
为了实现上述目的,本发明所采用的技术方案是:
一种基于用户模式文件系统的安全网络文件系统,所述安全网路文件系统包括文件服务器、虚拟文件系统驱动、文件客户端、解密服务器及身份管理系统,其中:
文件服务器:一个通过网络提供文件存储服务的系统(如云存储系统的云端系统);存放在所述文件服务器上的文件是加密文件,简称文件,每一个加密文件由一个随机生成的对称密钥加密;所述随机生成的对称密钥称为随机对称密钥;所述文件服务器对文件服务器上存放的加密文件实施有访问控制;除了实施访问控制,文件服务器上存储的每个加密文件都附加有一条或多条解密策略,称为文件解密策略;所述解密策略分为针对个人的解密策略,称为个人解密策略,以及针对群体的解密策略,称为群体解密策略;所述个人解密策略指示解密策略中指定的用户具有解密(文件解密策略所针对的)加密文件的权限;所述群体解密策略指示具有群体解密策略中给定特征的用户或满足群体解密策略中给定条件的用户具有解密(文件解密策略所针对的)加密文件的权限(如属于某个用户群或组的用户、具有某种角色的用户、属于某个部门的用户或具有某种身份特性的用户等);加密文件的解密策略由加密文件的创建者设置,或者由允许解密加密文件并从文件服务器所实施的访问控制的角度对加密文件具有文件修改权限的用户设置;一个加密文件的解密策略同加密文件一起保存在文件服务器上;一条解密策略的数据包括两部分:明文部分和密文部分;明文部分以明文形式包含有解密策略表示数据(如解密规则),密文部分由解密策略表示数据和对文件加密的随机对称密钥经加密后得到;明文部分和密文部分包含的解密策略表示数据指示相同的解密许可信息(指示相同的人或人群能够解密文件,但数据格式不必相同),其中,明文部分用于用户查看,密文部分用于解密授权,当明文部分和密文部分包含的解密策略表示数据所指示的解密许可信息不一致时以密文部分指示的解密许可信息为准(作为决策依据);一个加密文件的一条个人解密策略的密文部分由解密策略所针对的个人用户的公钥加密;一个加密文件的一条群体解密策略的密文部分由策略加密公钥加密;所述策略加密公钥是用于对群体解密策略的密文部分进行加密的公钥;
虚拟文件系统驱动:一个加载到用户计算机操作系统中的文件系统驱动(即计算机文件系统驱动)或一个插入到用户计算机操作系统的文件系统驱动栈中的过滤器类型的文件系统驱动(即文件系统过滤器驱动,简称文件过滤器驱动或文件过滤器);所述虚拟文件系统驱动借助文件客户端将所述文件服务器上存储的文件和文件目录映射到用户计算机的文件系统的一个虚拟文件盘中或虚拟文件目录中;所述虚拟文件盘是用户计算机的文件系统中的一个对用户和程序显现为文件盘并具有单独的文件盘符的文件组织结构(即由文件和文件目录组成的文件组织结构),但该文件盘中的文件和文件目录不是对应于用户计算机的一个真实存在的磁盘分区或磁盘驱动器或磁盘卷(Disk Partition或Disk Drive或Disk Volume)中的文件和文件目录,而是对应于所述文件服务器上存储的加密文件和文件目录(所述对用户和程序显现为文件盘指用户通过计算机操作系统的文件管理器或文件系统“外壳”程序,如Windows Explorer,看到的是一个文件盘,用户和程序按操作使用文件盘及盘中文件和文件目录的方式操作使用虚拟文件盘及虚拟文件盘中的文件和文件目录);所述虚拟文件目录是用户计算机的文件系统中的一个对用户和程序显现为文件目录的文件组织结构,但该文件目录中的文件和文件目录不是存在于用户计算机的永久存储介质上而是存在于所述文件服务器上(所述对用户和程序显现为文件目录指用户通过计算机操作系统的文件管理器或文件系统“外壳”程序,如Windows Explorer,看到的是一个文件目录,用户和程序按操作使用通常文件目录的方式操作使用虚拟文件目录及虚拟文件目录中的文件和文件目录);通过映射,虚拟文件盘或虚拟文件目录中的一个文件或文件目录(虚拟的文件或文件目录)被映射到或对应到文件服务器上保存的一个加密文件或文件目录;所述虚拟文件系统驱动将用户或应用程序或系统程序针对所述虚拟文件盘或虚拟文件目录中文件或文件目录的操作请求(文件I/O操作请求,用户通过文件管理器或文件系统外壳程序对文件操作)转交给文件客户端,由文件客户端转化成针对文件服务器上对应文件或文件目录的操作;
文件客户端:一个运行在用户计算机的计算机系统用户模式(user mode)下的用于对文件服务器上的加密文件和文件目录进行操作的用户端程序(如云存储系统的客户端;与用户模式相对的是内核模式,kernel mode);所述文件客户端将所述虚拟文件系统驱动转发的用户或应用程序或系统程序针对虚拟文件盘或虚拟文件目录中文件或文件目录的操作请求(包括文件创建、读取、存写、删除操作,文件目录创建、删除操作)转化成针对所述文件服务器上对应文件或文件目录的操作;
解密服务器:一个根据用户的身份(或帐户)信息以及加密文件的群体解密策略确定用户是否被允许解密要访问(要读取或存写)的加密文件并解密和返回群体解密策略中的对加密文件加密的随机对称密钥的系统;在用户对加密文件的群体解密策略的密文部分的加密公钥(即策略加密公钥)进行更新操作时,所述解密服务器同时负责对群体解密策略的密文部分的加密公钥进行更新处理;
身份(或帐户)管理系统:对用户的身份(或帐户)信息进行管理的系统;所述身份(或帐户)信息包括用户的身份标识(如帐户名、身份ID等)、所属用户群或组、角色以及其他证明或描述用户的信息;
所述文件客户端和虚拟文件系统驱动构成了(本发明的)用户模式文件系统驱动;所述用户模式文件系统驱动的所述虚拟文件系统驱动接收用户或应用程序或系统程序针对所述虚拟文件盘或虚拟文件目录中的文件和文件目录的操作请求,并通过所述文件客户端转化成针对所述文件服务器上的对应文件和文件目录的操作;在(用户计算机上的)应用程序或系统程序针对虚拟文件盘或虚拟文件目录中的文件进行读写操作时,所述用户模式文件系统驱动自动对读写的(文件服务器上的对应文件的)文件数据进行解密和加密处理(读时解密,写时加密);所述针对文件数据的解密和加密处理由所述用户模式文件系统驱动中的文件客户端完成,或者由所述用户模式文件系统驱动中的虚拟文件系统驱动完成;当用户计算机上所运行的应用程序或系统程序要使用一个加密文件而用户不是要使用的加密文件的解密策略中的任何一条个人解密策略所针对的用户时,所述用户模式文件系统驱动通过文件客户端与解密服务器交互确定用户是否被加密文件的群体解密策略许可解密加密文件;
所述用户模式文件系统驱动向用户提供有鼠标右键菜单,用于针对虚拟文件盘或虚拟文件目录中的(加密)文件的解密策略进行操作,包括添加、查看、修改和删除解密策略;
当用户启动所述用户模式文件系统驱动时(即启动所述文件客户端及虚拟文件系统驱动时),用户模式文件系统驱动的文件客户端连接所述文件服务器,提示用户提交或选择身份凭证(如提交用户名+口令,或选择数字证书)在文件服务器完成身份鉴别,即在文件服务器完成登录操作;完成登录操作的用户成为通过应用程序或系统程序(包括文件管理器或文件系统外壳程序)对所述虚拟文件盘或虚拟文件目录中的文件和文件目录进行操作的当前用户。
当用户通过应用程序或系统程序(包括文件管理器或文件系统外壳程序)在所述虚拟文件盘或虚拟文件目录上创建一个文件时,所述用户模式文件系统驱动进行如下操作处理:
在所述文件服务器上新创建一个与在虚拟文件盘或虚拟文件目录上要创建的文件相对应的文件(具有同样的文件名及扩展);随机生成一个对称密钥;生成一条允许当前用户解密新创建的文件的个人解密策略并形成针对当前用户的个人解密策略的明文部分;将生成的个人解密策略连同随机生成的对称密钥一起用当前用户的公钥加密形成针对当前用户的个人解密策略的密文部分;将形成的个人解密策略的明文部分和密文部分组合形成针对当前用户的一条完整的个人解密策略;将形成的针对当前用户的个人解密策略同在文件服务器新创建的文件一起保存;若在文件服务器上新创建的文件的所在文件目录设置有缺省的文件解密策略(包括个人解密策略和群体解密策略),则缺省的解密策略作为新创建的文件的解密策略的一部分同新创建的文件一起保存,即新创建的文件的解密策略中包含有缺省的解密策略(如何设置缺省的解密策略属于本发明之外的问题)。
当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件进行解密策略查看操作时,所述用户模式文件系统驱动从所述文件服务器读取用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择查看解密策略的文件在所述文件服务器上的对应文件的所有解密策略,然后将获取的解密策略的明文部分通过人机界面向用户展示,供用户浏览。
若用户通过鼠标右键菜单查看虚拟文件盘或虚拟文件目录中的一个文件的解密策略时针对查看解密策略的文件执行添加一条解密策略的操作,则所述用户模式文件系统驱动针对用户通过鼠标右键菜单选择查看解密策略的文件按如下方式进行操作处理:
步骤一:通过文件的解密策略的明文部分,检查确定当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入步骤二;否则(即不是任何一条个人解密策略所针对的用户),提示用户无添加解密策略的权限,不再继续本次添加解密策略的操作处理;
步骤二:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分再获取针对当前用户的个人解密策略(表示数据)以及对加密文件加密时所用的随机对称密钥;
步骤三:进一步检查确定步骤二从个人解密策略的密文部分解密获得个人解密策略是否是针对当前用户的,若是,则转入步骤四;否则,提示用户无添加解密策略的权限,不再继续本次添加解密策略的操作处理;
步骤四:弹出用户交互界面,让用户输入并提交针对个人或群体的解密策略;
步骤五:若用户输入的是针对一个个人用户的个人解密策略,则以用户输入的个人解密策略形成文件的一条(新的)个人解密策略的明文部分,使用用户输入的个人解密策略所针对的个人用户的公钥加密用户输入的个人解密策略及步骤二获得的随机对称密钥形成针对文件的个人解密策略的密文部分,之后将形成的个人解密策略的明文部分和密文部分组合形成一条完整的个人解密策略,然后将形成的完整个人解密策略添加到用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择查看解密策略的文件在文件服务器上的对应加密文件的解密策略中;
若用户输入的是针对群体用户的群体解密策略,则以用户输入的群体解密策略形成文件的一条(新的)群体解密策略的明文部分,使用策略加密公钥加密用户输入的群体解密策略及步骤二获得的随机对称密钥形成针对文件的群体解密策略的密文部分,之后将形成的针对文件的群体解密策略的明文部分和密文部分组合形成一条完整的群体解密策略,然后将形成的完整的群体解密策略添加到用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择查看解密策略的文件在文件服务器上的对应加密文件的解密策略中。
若用户通过鼠标右键菜单查看虚拟文件盘或虚拟文件目录中的一个文件的解密策略时对其中的一条解密策略执行删除操作,则所述用户模式文件系统驱动针对用户通过鼠标右键菜单选择查看解密策略的文件按如下方式进行操作处理:
第I步:通过文件的解密策略的明文部分,检查确定当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入第II步;否则(即不是任何一条个人解密策略所针对的用户),提示用户无删除文件解密策略的权限,不再继续本次删除解密策略的操作处理;
第II步:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分获得个人解密策略,并进一步检查确定从解密的个人解密策略的密文部分得到的个人解密策略是否是针对当前用户的,若是,则转入第III步;否则,提示错误,不再继续本次删除解密策略的操作处理;
第III步:进一步检查用户要删除的个人解密策略是否是针对当前用户的,若是,则提示不能进行删除操作,不再继续本次删除解密策略的操作处理(一个用户不能删除针对本人的个人解密策略);否则,删除文件的解密策略中用户要删除的解密策略。
若用户通过鼠标右键菜单查看虚拟文件盘或虚拟文件目录中的一个文件的解密策略时对其中的一条解密策略执行修改操作,则所述用户模式文件系统驱动进行的解密策略修改操作处理等同于先删除要修改的解密策略,然后再添加修改后的解密策略。
当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件目录进行添加解密策略操作时,所述用户模式文件系统驱动弹出用户交互界面,让用户输入并提交针对个人或群体的解密策略,在用户输入并提交针对个人或群体的解密策略后,所述用户模式文件系统驱动对用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择添加解密策略的文件目录中的每个文件包括选择添加解密策略的文件目录的下级文件目录中的文件进行如下操作处理:
步骤I:从文件服务器获取虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应文件的解密策略;
步骤II:通过文件的解密策略的明文部分,检查确定当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入步骤III;否则(即不是任何一条个人解密策略所针对的用户),不对当前处理的文件作进一步处理(对下一个文件进行处理);
步骤III:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分获得个人解密策略和对加密文件加密时所用的随机对称密钥;
步骤IV:进一步检查确定步骤III从个人解密策略的密文部分解密获得的个人解密策略是否是针对当前用户的,若是,则转入步骤V;否则,不对当前处理的文件作进一步处理(对下一个文件进行处理);
步骤V:若用户输入的是针对一个个人用户的个人解密策略,则以用户输入的个人解密策略形成一条针对个人用户的个人解密策略的明文部分,使用用户输入的个人解密策略所针对的个人用户的公钥加密用户输入的个人解密策略及步骤III解密获得的随机对称密钥形成针对个人用户的个人解密策略的密文部分,之后将形成的针对个人用户的个人解密策略的明文部分和密文部分组合形成针对个人用户的一条完整个人解密策略,然后将形成的完整个人解密策略添加到虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应加密文件的解密策略中;若用户输入的是针对群体用户的群体解密策略,则以用户输入的群体解密策略形成一条针对群体用户的群体解密策略的明文部分,使用策略加密公钥加密用户输入的群体解密策略及步骤III解密获得的随机对称密钥形成针对群体用户的群体解密策略的密文部分,之后将形成的群体解密策略的明文部分和密文部分组合形成针对群体用户的一条完整群体解密策略,然后将形成的完整群体解密策略添加到虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应加密文件的解密策略中(然后对下一个文件进行处理)。
当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件目录进行清除解密策略操作时,所述用户模式文件系统驱动对用户通过鼠标菜单在虚拟文件盘或虚拟文件目录中选择清除解密策略的文件目录中的每个文件包括选择清除解密策略的文件目录的下级文件目录中的文件进行如下操作处理:
步骤A:从文件服务器获取虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应文件的解密策略;
步骤B:通过文件的解密策略的明文部分,检查当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入步骤C;否则(即不是任何一条个人解密策略所针对的用户),不对当前处理的文件作进一步处理(对下一个文件进行处理);
步骤C:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分获得个人解密策略和对加密文件加密时所用的随机对称密钥;
步骤D:进一步检查确定步骤C解密获得的个人解密策略是否是针对当前用户的,若是,则删除文件的解密策略中除针对当前用户的个人解密策略之外的所有其他解密策略(然后对下一个文件进行处理);否则,不对当前处理的文件作进一步处理(对下一个文件进行处理)。
当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件进行解密策略的加密公钥更新操作时,所述用户模式文件系统驱动和所述解密服务器针对用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择更新解密策略的加密公钥的文件在文件服务器上的对应文件的解密策略进行如下操作处理:
第1步:通过文件的解密策略的明文部分,用户模式文件系统驱动检查确定当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入第2步;否则(即不是任何一条个人解密策略所针对的用户),提示用户无更新解密策略的加密公钥的权限;
第2步:用户模式文件系统驱动使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分获得个人解密策略及随机对称密钥;
第3步:进一步检查确定第2步从个人解密策略的密文部分解密得到的个人解密策略是否是针对当前用户的,若是,则转入4步;否则,提示用户无更新加解密策略的加密公钥权限;
第4步:检查确定用于对针对当前用户的个人解密策略的密文部分加密的公钥是否是当前有效的公钥,若是,则转入第5步;否则,用户模式文件系统驱动使用当前用户的当前有效公钥更新针对当前用户的个人解密策略的密文部分,即用当前用户的当前有效公钥重新对第2步解密获得的针对当前用户的个人解密策略和随机对称密钥进行加密,重新形成针对当前用户的个人解密策略的密文部分,然后用重新形成的针对当前用户的个人解密策略的密文部分替换文件中的针对当前用户的个人解密策略的原有密文部分;
第5步:用户模式文件系统驱动(的文件客户端)将正在处理的文件的所有原有群体解密策略提交到解密服务器请求对文件的群体解密策略的加密公钥进行更新;
第6步:解密服务器接收到用户模式文件系统驱动(的文件客户端)提交的对文件的群体解密策略的加密公钥进行更新的请求后,依次对请求中提交的每个原有群体解密策略按如下方式进行操作处理:
检查用于对原有群体解密策略的密文部分进行加密的策略加密公钥是否是当前有效的公钥,若是,则不更新当前检查的原有群体解密策略的加密公钥;否则,使用对原有群体解密策略的密文部分加密时所用的策略加密公钥所对应私钥解密原有群体解密策略的密文部分(其中的数据包括群体解密策略和随机对称密钥),然后用当前有效的策略加密公钥对解密后的原有群体解密策略的密文部分重新加密,然后将重新加密后的密文部分同原群体解密策略的明文部分一起形成已更新加密公钥的群体解密策略;
第7步:在完成对用户模式文件系统驱动提交的所有原有群体解密策略的加密公钥的更新处理后,解密服务器将已更新加密公钥的群体解密策略全部返回;
第8步:用户模式文件系统驱动用解密服务器返回的已更新加密公钥的群体解密策略替换文件的原有群体解密策略;
当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件目录进行解密策略的加密公钥更新操作时,所述用户模式文件系统驱动和解密服务器对用户通过鼠标右键菜单选择更新解密策略的加密公钥的虚拟文件盘或虚拟文件目录中的文件目录中的每个文件包括选择的文件目录的下级文件目录中的文件在文件服务器上的对应文件的解密策略执行第1步到第8步的操作处理;
所述当前有效的公钥指在有效使用期限内的公钥。
当应用程序或系统程序打开并读取或存写在所述虚拟文件盘或虚拟文件目录中的一个文件时,所述用户模式文件系统驱动进行如下操作处理:
第一步骤:(通过文件客户端)从所述文件服务器获取应用程序或系统程序在虚拟文件盘或虚拟文件目录中打开的文件在文件服务器上的对应文件的解密策略;
第二步骤:通过文件的解密策略的明文部分,检查当前用户是否是获取的文件解密策略中的一条个人解密策略所针对的用户,若是,则转入第三步骤;否则(即不是任何一条个人解密策略所针对的用户),转入第四步骤:
第三步骤:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,若解密成功,则从解密的个人解密策略的密文部分获得对文件加密时所用的随机对称密钥,然后转入第六步骤;否则,报告错误;
第四步骤:(通过文件客户端)连接解密服务器,提交第一步获取的文件的解密策略中的所有群体解密策略及当前用户的身份标识,请求确定当前用户是否被允许解密应用程序或系统程序要读取或要存写的加密文件(即便是文件存写操作也通常是先解密,后加密);若解密服务器返回的结果是确认当前用户被允许解密应用程序或系统程序要读取或要存写的加密文件,则转入第五步骤;否则,报告错误;
第五步骤:用当前用户的私钥解密返回结果中的用当前用户的公钥加密的随机对称密钥,或者从返回结果中获取解密服务器通过其他安全传输方式返回的随机对称密钥,然后转入第六步骤;
第六步骤:在应用程序或系统程序对虚拟文件盘或虚拟文件目录中的文件进行读取或存写的过程中,使用第三步骤或第五步骤获得的随机对称密钥对应用程序或系统程序读取的虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应文件的文件数据进行解密,或者对应用程序或系统程序存写的虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应文件的文件数据进行加密;
所述用户模式文件系统驱动在连接解密服务器请求确定当前用户是否被允许解密应用程序或系统程序要读取或要存写的文件的文件数据时,从用户启动所述用户模式文件系统驱动登录文件服务器时提交的身份凭证中获取当前用户的身份标识(如用户名/口令中的用户名或数字证书中的主题甄别名),或者从用户端的配置信息中获取当前用户的身份标识,或者通过人机界面由当前用户输入身份标识,或者通过人机界面由用户选择身份凭证(如数字证书)然后从身份凭证中获取当前用户的身份标识(第一种方案适合于用户在文件存储服务器登录的身份标识与用户在所述身份管理系统登录的身份标识是同一个或共用的情况,采用哪种方式与具体的实施方式有关)。
所述解密服务器接收到所述用户模式文件系统驱动(的文件客户端)提交的请求确定当前用户是否被允许解密应用程序或系统程序要读取或要存写的文件的文件数据的请求后,按如下方式进行操作处理:
步骤1:利用请求中提交的用户身份标识,查询所述身份管理系统,获取当前用户的身份信息;
步骤2:利用策略加密公钥所对应的私钥解密请求中提交的每条群体解密策略的密文部分,从解密的密文部分获得群体解密策略以及对文件加密的随机对称密钥(每条群体解密策略的密文部分解密获得随机对称密钥相同);
步骤3:根据步骤2从每条群体解密策略的密文部分解密获得的群体解密策略和步骤1查询获得的身份信息确定是否允许当前用户解密应用程序或系统程序要读取或要存写的加密文件(多条群体策略之间是逻辑“或”关系还是逻辑“与”关系还是其他关系,取决于实施方案),若是,则转入步骤4;否则,返回结果,指示不确认当前用户被允许解密应用程序或系统程序要读取或要存写的加密文件;
步骤4:利用当前用户的公钥(通过身份标识可知道当前用户是谁,并从而得到当前用户的公钥,如何获取与加密技术的具体实施方案或技术有关)对步骤2解密获得的随机对称密钥加密(从任一个群体解密策略的密文部分解密得到的随机对称密钥都可以),然后返回结果确认当前用户被允许解密应用程序或系统程序要读取或要存写的加密文件并同时返回用当前用户的公钥加密的随机对称密钥;或者,返回结果确认当前用户被允许解密应用程序或系统程序要读取或要存写的加密文件并同时通过其他安全传输方式(如SecureSocket Layer,SSL)在返回结果中返回步骤2解密获得的随机对称密钥加密;
若根据预定的安全策略所述解密服务器在处理请求前需要对用户进行身份鉴别,则解密服务器在执行步骤1前先对当前用户进行身份鉴别,身份鉴别通过后才继续进行操作处理。
从以上发明内容描述可以看到,通过采用用户模式文件系统技术,用户或应用程序或系统程序能够按通常使用文件系统中的文件的方式使用存放在文件服务器上的文件,比如,应用程序或系统程序按通常调用操作系统提供的文件I/O操作API的方式访问并使用保存在文件服务器上的文件(如创建、读取、存写、删除文件),用户能按通常使用计算机操作系统的文件管理器或文件系统“外壳”程序(SHELL程序,如Windows的Explorer)的方式访问并使用保存在文件服务器上的文件,没有改变程序和用户使用文件的方式,符合用户操作使用文件的习惯;由于本发明对文件解密进行控制的文件解密策略由文件创建者或者创建者授权的用户在用户端创建,使得文件服务器的运维者在没有受到授权的情况下也无法获取保密文件的内容,从而防止了网络文件存储系统(文件服务器)的运维者对保密文件内容的非授权获取。当把本发明的基于用户模式文件系统的安全网络文件系统用于云存储系统时,本发明的文件服务器对应于云存储系统的云端系统,本发明的文件客户端或者文件客户端连同虚拟文件系统驱动一起构成的用户模式文件系统驱动对应于云存储系统的客户端,而本发明的解密服务器和身份管理系统可以由一个独立于云存储系统运行维护机构的第三方机构运行维护,或者由使用云存储服务的组织、机构自己运行维护。
需指出的是,本发明的安全网络文件系统的客户端采用的是用户模式文件系统技术及计算机操作系统提供的文件系统人机交互界面(文件管理器或文件系统外壳程序);若采用的是专用客户端及专用人机交互界面,则本发明的很多内容同样适用,比如文件解密策略的设置、更新以及使用,以及对文件服务器上的文件的加密、解密处理等,只是这时用户对加密文件及其解密策略的操作处理是通过专用客户端的人机交互界面进行(这种方式下应用程序或系统程序无法通过专用客户端对文件服务器上的文件进行操作)。
附图说明
图1为本发明的系统结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细描述。
本发明的文件客户端和虚拟文件系统驱动的具体实施方案与它们运行的操作系统有关。下面以Windows操作系统为例加以说明。
虚拟文件系统驱动可基于Windows文件系统的过滤器驱动(Filter Driver)或微过滤器驱动(mini-Filter Driver)技术开发实现(而不是基于文件系统驱动技术开发)。虚拟文件系统驱动,即过滤器驱动或微过滤器驱动,拦截应用程序和系统程序针对虚拟文件盘或虚拟文件目录中文件的所有I/O操作请求(包括用户通过Windows的文件管理器即Windows Explorer针对虚拟文件盘或虚拟文件目录中文件的I/O操作请求),并转交文件客户端处理,然后将文件客户端返回的结果返回。
文件客户端可使用任何一种Windows的程序开发技术(开发语言及开发环境)开发实现,如C/C++。对读取或存写的文件的文件数据的解密和加密处理,对文件解密策略的处理,以及同文件服务器的交互,由文件客户端完成。
将文件服务器中的文件和文件目录映射到一个虚拟目录可通过如下两种方式之一实现:
方式一:
虚拟文件目录(名)是用户计算机文件系统中的一个已存在的文件目录(名),虚拟文件系统驱动(即过滤器驱动或微过滤器驱动)将针对该已存在的文件目录及其中的文件和文件目录的所有文件I/O操作请求通过文件客户端转化为针对文件服务器上的文件和文件目录的I/O操作(并忽略该已存在的文件目录中的原有文件和文件目录)。
方式二:
虚拟文件目录(名)是用户计算机文件系统中的一个不存在的文件目录(名),虚拟文件系统驱动(即过滤器驱动或微过滤器驱动)假定虚拟文件目录位于某个已存在的文件目录之下,当应用程序或系统程序通过Windows文件系统的I/O调用或用户通过Windows操作系统的文件管理器或文件系统外壳程序(Windows Explorer)枚举该已存在的文件目录下的文件和文件目录时,虚拟文件系统驱动将虚拟文件目录列在枚举的信息之中,当应用程序或系统程序对虚拟文件目录下的文件和文件目录的进行文件I/O操作时,虚拟文件系统驱动将这些文件I/O操作请求通过文件客户端转化为针对文件服务器中的文件和文件目录的I/O操作。
将文件服务器中的内容(文件和文件目录)映射到一个虚拟文件目录后,可通过Windows的subst[drive1:[drive2:]Path]命令将虚拟文件目录进一步映射成为一个虚拟文件盘(实际上是将虚拟文件目录的路径映射成了一个盘符)。
虚拟文件系统驱动与文件客户端之间的信息和数据交互,可使用Windows提供的内核层与应用层(用户层)之间信息和数据的交互、通信的机制。
用户模式文件系统驱动提供的鼠标右键菜单功能,则可利用Windows提供的鼠标右键菜单开发技术实现。
关于Windows文件系统的过滤器驱动或微过滤器驱动,内核层与应用层(用户层)之间的数据交互,以及鼠标右键菜单开发技术,在微软的MSDN(msdn.microsoft.com)以及大量的公开资料中都有介绍。
数据加密采用基于标识的密码算法(Identity-Based Cryptography,IBC)。这时,用户的一个身份标识(如电子邮箱、手机号码等)就是用户的公钥(确切地说是用户的一个身份标识结合一组公开参数就构成了用户公钥);用户的一个身份标识对应的私钥从一个称为私钥生成器(Private Key Generator,PKG)的密钥服务系统获得。关于IBC算法可参见相关论文和国际技术规范(包括IEEE相关标准、IETF的相关标准)。IBC私钥生成器的实现可在相关论文和国际技术规范的基础上采用合适的软件开发技术(如C/C++)开发。
在采用IBC加密技术的情况下,对一条个人解密策略的密文部分加密的公钥即简单地是该个人解密策略所针对的个人用户的身份标识。但有些问题还需要解决:1)用户模式文件系统驱动在对针对当前用户本人的个人解密策略的密文部分进行加密时从哪获取作为公钥的当前用户本人的身份标识?2)用户模式文件系统驱动在对针对其他用户的个人解密策略的密文部分进行加密时如何获取作为公钥的其他用户的身份标识?这两个问题的解决同个人解密策略加密时所用的用户身份标识与用户在文件服务器和身份管理系统所用的身份标识(登录时的身份凭证)有关。
若用户在文件服务器和身份管理系统进行登录的身份标识是同一个,比如是同一个电子邮箱地址,那么,可以用这个共同的身份标识作为个人解密策略的密文部分的加密公钥:在对针对当前用户本人的个人解密策略的密文部分进行加密时,作为公钥的当前用户本人的身份标识即是用户启动用户模式文件系统驱动登录文件服务器时所用的身份标识;在对针对其他用户的个人解密策略的密文部分进行加密时,作为公钥的身份标识即是添加个人解密策略的用户输入的其他用户的身份标识得到。
若采用的方案是用于对个人解密策略的密文部分加密的身份标识与用户登录文件服务器和身份管理系统的身份标识无关,则由用户为用户模式文件系统驱动配置要用作公钥的用户身份标识(比如一个电子邮箱地址),用户模式文件系统驱动在需要时通过其配置信息获取当前用户的身份标识作为公钥(比如在加密针对自己的个人解密策略的密文部分时或连接解密服务器获取文件的随机对称密钥时)。在对针对其他用户的个人解密策略的密文部分进行加密时,作为公钥的其他用户的身份标识仍然是添加个人解密策略的用户输入的其他的用户身份标识(一个用户自己配置的自己的身份标识与其他用户针对他或她所用的身份标识不必完全相同)。
对群体解密策略的密文部分加密的策略加密公钥也是一个IBC(或IBE)标识公钥,可用以解密服务器的标识(如域名)作为公钥。
在进行加密公钥更新时判断一个IBC公钥是否是当前有效的公钥的方案如下:
在IBC(或IBE)加密中作为公钥的身份标识是如下一个加上时间段信息的扩展身份标识:
身份标识||时间段,
其中的时间段用于限定标识公钥及其对应私钥的有效使用期限(时间段);若一个标识公钥(扩展身份标识)的时间段覆盖了当前时刻,则这个标识公钥是当前有效的公钥。
可以通过在在一个加密文件的文件数据中加入一个具有特别标志的头部用于保存文件解密策略。文件解密策略包括个人解密策略和群体解密策略的数据格式可以自定义。
在具体实施过程中,对于个人解密策略的实施可以简化:个人解密策略的明文部分和/或密文部分不包含任何显式的策略数据;当前用户是否是一条个人解密策略所针对的用户并被允许解密文件以及对文件的解密策略进行操作,取决于当前用户是否有解密该条个人解密策略的密文部分的私钥,若有,则当前用户是该条个人解密策略所针对的用户并被允许解密文件以及对文件的解密策略进行操作;否则,不是该条个人解密策略所针对的用户并不被允许解密文件以及对文件的解密策略进行操作(包括添加、修改、删除)。
文件服务器的实现可采用任何目前常用的网络信息系统开发技术,如J2EE、ASP.NET、C/C++等,实现的功能包括文件的上载、存储、更新、删除、下载以及针对文件的访问控制。
文件服务器和文件客户端之间的交互协议,可以在TCP传输协议的基础上自定义;或者使用HTTP传输协议并在此基础上定义传输交换的内容;或者采用Web Services并定义传输交换的内容。
身份管理系统的实施可以采用常用的网络信息系统及数据库技术开发,如J2EE、ASP.NET、C/C++,以及MySQL、Oracle数据库技术。
解密服务器可采用任何目前常用的网络信息系统,如J2EE、ASP.NET、C/C++等,结合IBC技术进行开发。由于一个用户的身份标识就是用户的公钥,因此,当解密服务器根据群体解密策略许可一个用户解密一个加密文件时,只需用该用户的身份标识对从群体解密策略的密文部分解密获得的对称密钥进行加密即可。
由于采用IBC密码技术,因此,用户模式文件系统驱动(的文件客户端)连接解密服务器请求确认当前用户是否被许可解密加密文件时,在解密服务器进行在线身份鉴别不是必须的(但解密服务器需用根据用户端提交的用户的身份标识结合群体解密策略判断对应的用户是否被许可解密文件),因为,这时用户的身份标识就是公钥被解密服务器用来对随机对称密钥加密,假冒者没有对应的私钥,因此也就无法解密被加密的随机对称密钥,但从防止拒绝服务攻击的角度或以防万一的角度,应该或可以对用户进行在线身份鉴别。
解密服务器与文件客户端之间的交互协议,可以在TCP传输协议的基础上自定义,或者使用HTTP传输协议并在此基础上定义传输交换的内容,或者采用Web Services并定义传输交换的内容。
若用户通过文件客户端访问文件服务器或解密服务器时需要进行身份鉴别,则身份鉴别可采用任何身份鉴别技术,包括用户名/口令、动态口令、数字证书等;若身份鉴别采用了单点登录技术(如Kerberos或Windows AD域登录),那么,文件客户端连接解密服务器时可将包含身份信息的身份令牌(安全令牌)放入请求中一起提交,这样从解密服务器获取群体解密策略中的随机对称密钥时可以免除额外的身份鉴别。
若具体实施中不实施加密文件的群体解密策略,即实施的加密文件的解密策略仅包括个人解密策略,那么就无需实施解密服务器和身份管理系统以及文件客户端与解密服务器的交互。
若文件客户端和虚拟文件系统驱动在Linux操作系统,则可以在Linux提供的用户模式加密文件系统(FUSE)技术的基础上实施本发明的文件客户端和虚拟文件系统驱动,其中,本发明的虚拟文件系统驱动就是Linux的虚拟文件系统驱动,文件可客户端可利用Linux的FUSE动态库和API与Linux的虚拟文件系统驱动进行交互。
若不采用IBC密码技术,则与策略加密有关的实施方案将比较复杂,可以考虑如下方案。
公钥采用公钥数字证书进行发布和传递。用户为用户模式文件系统驱动配置本人要用的公钥数字证书。添加针对个人用户的个人解密策略时,用户模式文件系统驱动根据用户输入的个人解密策略中输入的其他用户的身份标识从证书认证系统的证书发布系统(LDAP)获取其他用户的公钥数字证书,或者从身份管理系统获取添加个人解密策略所针对的其他个人用户的公钥数字证书。解密服务器从证书发布系统LDAP获取用户的公钥数字证书,或者从身份管理系统获取用户的公钥数字证书。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种基于用户模式文件系统的安全网络文件系统,其特征是:所述安全网络文件系统包括文件服务器、虚拟文件系统驱动、文件客户端、解密服务器及身份管理系统,其中:
文件服务器:一个通过网络提供文件存储服务的系统;存放在所述文件服务器上的文件是加密文件,简称文件,每一个加密文件由一个随机生成的对称密钥加密;所述随机生成的对称密钥称为随机对称密钥;所述文件服务器对文件服务器上存放的加密文件实施有访问控制;除了实施访问控制,文件服务器上存储的每个加密文件都附加有一条或多条解密策略;所述解密策略分为针对个人的解密策略,称为个人解密策略,以及针对群体的解密策略,称为群体解密策略;所述个人解密策略指示解密策略中指定的用户具有解密加密文件的权限;所述群体解密策略指示具有群体解密策略中给定特征的用户或满足群体解密策略中给定条件的用户具有解密加密文件的权限;加密文件的解密策略由加密文件的创建者设置,或者由允许解密加密文件并从文件服务器所实施的访问控制的角度对加密文件具有文件修改权限的用户设置;一个加密文件的解密策略同加密文件一起保存在文件服务器上;一条解密策略的数据包括两部分:明文部分和密文部分;明文部分以明文形式包含有解密策略表示数据,密文部分由解密策略表示数据和对文件加密的随机对称密钥经加密后得到;明文部分和密文部分包含的解密策略表示数据指示相同的解密许可信息,其中,明文部分用于用户查看,密文部分用于解密授权,当明文部分和密文部分包含的解密策略表示数据所指示的解密许可信息不一致时以密文部分指示的解密许可信息为准;一个加密文件的一条个人解密策略的密文部分由解密策略所针对的个人用户的公钥加密;一个加密文件的一条群体解密策略的密文部分由策略加密公钥加密;所述策略加密公钥是用于对群体解密策略的密文部分进行加密的公钥;
虚拟文件系统驱动:一个加载到用户计算机操作系统中的文件系统驱动或一个插入到用户计算机操作系统的文件系统驱动栈中的过滤器类型的文件系统驱动;所述虚拟文件系统驱动借助文件客户端将所述文件服务器上存储的文件和文件目录映射到用户计算机的文件系统的一个虚拟文件盘中或虚拟文件目录中;所述虚拟文件盘是用户计算机的文件系统中的一个对用户和程序显现为文件盘并具有单独的文件盘符的文件组织结构,但该文件盘中的文件和文件目录不是对应于用户计算机的一个真实存在的磁盘分区或磁盘驱动器或磁盘卷中的文件和文件目录,而是对应于所述文件服务器上存储的加密文件和文件目录;所述虚拟文件目录是用户计算机的文件系统中的一个对用户和程序显现为文件目录的文件组织结构,但该文件目录中的文件和文件目录不是存在于用户计算机的永久存储介质上而是存在于所述文件服务器上;通过映射,虚拟文件盘或虚拟文件目录中的一个文件或文件目录被映射到或对应到文件服务器上保存的一个加密文件或文件目录;所述虚拟文件系统驱动将用户或应用程序或系统程序针对所述虚拟文件盘或虚拟文件目录中文件或文件目录的操作请求转交给文件客户端,由文件客户端转化成针对文件服务器上对应文件或文件目录的操作;
文件客户端:一个运行在用户计算机的计算机系统用户模式下的用于对文件服务器上的加密文件和文件目录进行操作的用户端程序;所述文件客户端将所述虚拟文件系统驱动转发的用户或应用程序或系统程序针对虚拟文件盘或虚拟文件目录中文件或文件目录的操作请求转化成针对所述文件服务器上对应文件或文件目录的操作;
解密服务器:一个根据用户的身份信息以及加密文件的群体解密策略确定用户是否被允许解密要访问的加密文件并解密和返回群体解密策略中的对加密文件加密的随机对称密钥的系统;在用户对加密文件的群体解密策略的密文部分的加密公钥进行更新操作时,所述解密服务器同时负责对群体解密策略的密文部分的加密公钥进行更新处理;若在具体实施中不实施加密文件的群体解密策略,即实施的加密文件的解密策略仅包括个人解密策略,则不实施解密服务器以及文件客户端与解密服务器的交互;
身份管理系统:对用户的身份信息进行管理的系统;所述身份信息包括用户的身份标识、所属用户群或组、角色以及其他证明或描述用户的信息;若在具体实施中不实施加密文件的群体解密策略,即实施的加密文件的解密策略仅包括个人解密策略,则不实施身份管理系统;
所述文件客户端和虚拟文件系统驱动构成了用户模式文件系统驱动;所述用户模式文件系统驱动的所述虚拟文件系统驱动接收用户或应用程序或系统程序针对所述虚拟文件盘或虚拟文件目录中的文件和文件目录的操作请求,并通过所述文件客户端转化成针对所述文件服务器上的对应文件和文件目录的操作;在应用程序或系统程序针对虚拟文件盘或虚拟文件目录中的文件进行读写操作时,所述用户模式文件系统驱动自动对读写的文件数据进行解密和加密处理;所述针对文件数据的解密和加密处理由所述用户模式文件系统驱动中的文件客户端完成,或者由所述用户模式文件系统驱动中的虚拟文件系统驱动完成;当用户计算机上所运行的应用程序或系统程序要使用一个加密文件而用户不是要使用的加密文件的解密策略中的任何一条个人解密策略所针对的用户时,所述用户模式文件系统驱动通过文件客户端与解密服务器交互确定用户是否被加密文件的群体解密策略许可解密加密文件;
所述用户模式文件系统驱动向用户提供有鼠标右键菜单,用于针对虚拟文件盘或虚拟文件目录中的文件的解密策略进行操作,包括添加、查看、修改和删除解密策略;
当用户启动所述用户模式文件系统驱动时,用户模式文件系统驱动的文件客户端连接所述文件服务器,提示用户提交或选择身份凭证在文件服务器完成身份鉴别,即在文件服务器完成登录操作;完成登录操作的用户成为通过应用程序或系统程序对所述虚拟文件盘或虚拟文件目录中的文件和文件目录进行操作的当前用户。
2.根据权利要求1所述的基于用户模式文件系统的安全网络文件系统,其特征是:当用户通过应用程序或系统程序在所述虚拟文件盘或虚拟文件目录上创建一个文件时,所述用户模式文件系统驱动进行如下操作处理:
在所述文件服务器上新创建一个与在虚拟文件盘或虚拟文件目录上要创建的文件相对应的文件;随机生成一个对称密钥;生成一条允许当前用户解密新创建的文件的个人解密策略并形成针对当前用户的个人解密策略的明文部分;将生成的个人解密策略连同随机生成的对称密钥一起用当前用户的公钥加密形成针对当前用户的个人解密策略的密文部分;将形成的个人解密策略的明文部分和密文部分组合形成针对当前用户的一条完整的个人解密策略;将形成的针对当前用户的个人解密策略同在文件服务器新创建的文件一起保存;若在文件服务器上新创建的文件的所在文件目录设置有缺省的文件解密策略,则缺省的解密策略作为新创建的文件的解密策略的一部分同新创建的文件一起保存,即新创建的文件的解密策略中包含有缺省的解密策略。
3.根据权利要求1所述的基于用户模式文件系统的安全网络文件系统,其特征是:当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件进行解密策略查看操作时,所述用户模式文件系统驱动从所述文件服务器读取用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择查看解密策略的文件在所述文件服务器上的对应文件的所有解密策略,然后将获取的解密策略的明文部分通过人机界面向用户展示,供用户浏览。
4.根据权利要求3所述的基于用户模式文件系统的安全网络文件系统,其特征是:若用户通过鼠标右键菜单查看虚拟文件盘或虚拟文件目录中的一个文件的解密策略时针对查看解密策略的文件执行添加一条解密策略的操作,则所述用户模式文件系统驱动针对用户通过鼠标右键菜单选择查看解密策略的文件按如下方式进行操作处理:
步骤一:通过文件的解密策略的明文部分,检查确定当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入步骤二;否则,提示用户无添加解密策略的权限,不再继续本次添加解密策略的操作处理;
步骤二:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分再获取针对当前用户的个人解密策略以及对加密文件加密时所用的随机对称密钥;
步骤三:进一步检查确定步骤二从个人解密策略的密文部分解密获得个人解密策略是否是针对当前用户的,若是,则转入步骤四;否则,提示用户无添加解密策略的权限,不再继续本次添加解密策略的操作处理;
步骤四:弹出用户交互界面,让用户输入并提交针对个人或群体的解密策略;
步骤五:若用户输入的是针对一个个人用户的个人解密策略,则以用户输入的个人解密策略形成文件的一条个人解密策略的明文部分,使用用户输入的个人解密策略所针对的个人用户的公钥加密用户输入的个人解密策略及步骤二获得的随机对称密钥形成针对文件的个人解密策略的密文部分,之后将形成的个人解密策略的明文部分和密文部分组合形成一条完整的个人解密策略,然后将形成的完整个人解密策略添加到用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择查看解密策略的文件在文件服务器上的对应加密文件的解密策略中;
若用户输入的是针对群体用户的群体解密策略,则以用户输入的群体解密策略形成文件的一条群体解密策略的明文部分,使用策略加密公钥加密用户输入的群体解密策略及步骤二获得的随机对称密钥形成针对文件的群体解密策略的密文部分,之后将形成的针对文件的群体解密策略的明文部分和密文部分组合形成一条完整的群体解密策略,然后将形成的完整的群体解密策略添加到用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择查看解密策略的文件在文件服务器上的对应加密文件的解密策略中。
5.根据权利要求3所述的基于用户模式文件系统的安全网络文件系统,其特征是:若用户通过鼠标右键菜单查看虚拟文件盘或虚拟文件目录中的一个文件的解密策略时对其中的一条解密策略执行删除操作,则所述用户模式文件系统驱动针对用户通过鼠标右键菜单选择查看解密策略的文件按如下方式进行操作处理:
第I步:通过文件的解密策略的明文部分,检查确定当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入第II步;否则,提示用户无删除文件解密策略的权限,不再继续本次删除解密策略的操作处理;
第II步:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分获得个人解密策略,并进一步检查确定从解密的个人解密策略的密文部分得到的个人解密策略是否是针对当前用户的,若是,则转入第III步;否则,提示错误,不再继续本次删除解密策略的操作处理;
第III步:进一步检查用户要删除的个人解密策略是否是针对当前用户的,若是,则提示不能进行删除操作,不再继续本次删除解密策略的操作处理;否则,删除文件的解密策略中用户要删除的解密策略。
6.根据权利要求1所述的基于用户模式文件系统的安全网络文件系统,其特征是:当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件目录进行添加解密策略操作时,所述用户模式文件系统驱动弹出用户交互界面,让用户输入并提交针对个人或群体的解密策略,在用户输入并提交针对个人或群体的解密策略后,所述用户模式文件系统驱动对用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择添加解密策略的文件目录中的每个文件包括选择添加解密策略的文件目录的下级文件目录中的文件进行如下操作处理:
步骤I:从文件服务器获取虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应文件的解密策略;
步骤II:通过文件的解密策略的明文部分,检查确定当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入步骤III;否则,不对当前处理的文件作进一步处理;
步骤III:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分获得个人解密策略和对加密文件加密时所用的随机对称密钥;
步骤IV:进一步检查确定步骤III从个人解密策略的密文部分解密获得的个人解密策略是否是针对当前用户的,若是,则转入步骤V;否则,不对当前处理的文件作进一步处理;
步骤V:若用户输入的是针对一个个人用户的个人解密策略,则以用户输入的个人解密策略形成一条针对个人用户的个人解密策略的明文部分,使用用户输入的个人解密策略所针对的个人用户的公钥加密用户输入的个人解密策略及步骤III解密获得的随机对称密钥形成针对个人用户的个人解密策略的密文部分,之后将形成的针对个人用户的个人解密策略的明文部分和密文部分组合形成针对个人用户的一条完整个人解密策略,然后将形成的完整个人解密策略添加到虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应加密文件的解密策略中;若用户输入的是针对群体用户的群体解密策略,则以用户输入的群体解密策略形成一条针对群体用户的群体解密策略的明文部分,使用策略加密公钥加密用户输入的群体解密策略及步骤III解密获得的随机对称密钥形成针对群体用户的群体解密策略的密文部分,之后将形成的群体解密策略的明文部分和密文部分组合形成针对群体用户的一条完整群体解密策略,然后将形成的完整群体解密策略添加到虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应加密文件的解密策略中。
7.根据权利要求1所述的基于用户模式文件系统的安全网络文件系统,其特征是:当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件目录进行清除解密策略操作时,所述用户模式文件系统驱动对用户通过鼠标菜单在虚拟文件盘或虚拟文件目录中选择清除解密策略的文件目录中的每个文件包括选择清除解密策略的文件目录的下级文件目录中的文件进行如下操作处理:
步骤A:从文件服务器获取虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应文件的解密策略;
步骤B:通过文件的解密策略的明文部分,检查当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入步骤C;否则,不对当前处理的文件作进一步处理;
步骤C:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分获得个人解密策略和对加密文件加密时所用的随机对称密钥;
步骤D:进一步检查确定步骤C解密获得的个人解密策略是否是针对当前用户的,若是,则删除文件的解密策略中除针对当前用户的个人解密策略之外的所有其他解密策略;否则,不对当前处理的文件作进一步处理。
8.根据权利要求1所述的基于用户模式文件系统的安全网络文件系统,其特征是:当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件进行解密策略的加密公钥更新操作时,所述用户模式文件系统驱动和所述解密服务器针对用户通过鼠标右键菜单在虚拟文件盘或虚拟文件目录中选择更新解密策略的加密公钥的文件在文件服务器上的对应文件的解密策略进行如下操作处理:
第1步:通过文件的解密策略的明文部分,用户模式文件系统驱动检查确定当前用户是否是文件的解密策略中的一条个人解密策略所针对的用户,若是,则转入第2步;否则,提示用户无更新解密策略的加密公钥的权限;
第2步:用户模式文件系统驱动使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,从解密的个人解密策略的密文部分获得个人解密策略及随机对称密钥;
第3步:进一步检查确定第2步从个人解密策略的密文部分解密得到的个人解密策略是否是针对当前用户的,若是,则转入第4步;否则,提示用户无更新加解密策略的加密公钥权限;
第4步:检查确定用于对针对当前用户的个人解密策略的密文部分加密的公钥是否是当前有效的公钥,若是,则转入第5步;否则,用户模式文件系统驱动使用当前用户的当前有效公钥更新针对当前用户的个人解密策略的密文部分,即用当前用户的当前有效公钥重新对第2步解密获得的针对当前用户的个人解密策略和随机对称密钥进行加密,重新形成针对当前用户的个人解密策略的密文部分,然后用重新形成的针对当前用户的个人解密策略的密文部分替换文件中的针对当前用户的个人解密策略的原有密文部分;
第5步:用户模式文件系统驱动将正在处理的文件的所有原有群体解密策略提交到解密服务器请求对文件的群体解密策略的加密公钥进行更新;
第6步:解密服务器接收到用户模式文件系统驱动提交的对文件的群体解密策略的加密公钥进行更新的请求后,依次对请求中提交的每个原有群体解密策略按如下方式进行操作处理:
检查用于对原有群体解密策略的密文部分进行加密的策略加密公钥是否是当前有效的公钥,若是,则不更新当前检查的原有群体解密策略的加密公钥;否则,使用对原有群体解密策略的密文部分加密时所用的策略加密公钥所对应私钥解密原有群体解密策略的密文部分,然后用当前有效的策略加密公钥对解密后的原有群体解密策略的密文部分重新加密,然后将重新加密后的密文部分同原群体解密策略的明文部分一起形成已更新加密公钥的群体解密策略;
第7步:在完成对用户模式文件系统驱动提交的所有原有群体解密策略的加密公钥的更新处理后,解密服务器将已更新加密公钥的群体解密策略全部返回;
第8步:用户模式文件系统驱动用解密服务器返回的已更新加密公钥的群体解密策略替换文件的原有群体解密策略;
当用户通过鼠标右键菜单对虚拟文件盘或虚拟文件目录中的一个文件目录进行解密策略的加密公钥更新操作时,所述用户模式文件系统驱动和解密服务器对用户通过鼠标右键菜单选择更新解密策略的加密公钥的虚拟文件盘或虚拟文件目录中的文件目录中的每个文件包括选择的文件目录的下级文件目录中的文件在文件服务器上的对应文件的解密策略执行第1步到第8步的操作处理;
所述当前有效的公钥指在有效使用期限内的公钥。
9.根据权利要求1所述的基于用户模式文件系统的安全网络文件系统,其特征是:当应用程序或系统程序打开并读取或存写在所述虚拟文件盘或虚拟文件目录中的一个文件时,所述用户模式文件系统驱动进行如下操作处理:
第一步骤:从所述文件服务器获取应用程序或系统程序在虚拟文件盘或虚拟文件目录中打开的文件在文件服务器上的对应文件的解密策略;
第二步骤:通过文件的解密策略的明文部分,检查当前用户是否是获取的文件解密策略中的一条个人解密策略所针对的用户,若是,则转入第三步骤;否则,转入第四步骤:
第三步骤:使用当前用户的私钥解密针对当前用户的个人解密策略的密文部分,若解密成功,则从解密的个人解密策略的密文部分获得对文件加密时所用的随机对称密钥,然后转入第六步骤;否则,报告错误;
第四步骤:连接解密服务器,提交第一步获取的文件的解密策略中的所有群体解密策略及当前用户的身份标识,请求确定当前用户是否被允许解密应用程序或系统程序要读取或要存写的加密文件;若解密服务器返回的结果是确认当前用户被允许解密应用程序或系统程序要读取或要存写的加密文件,则转入第五步骤;否则,报告错误;
第五步骤:用当前用户的私钥解密返回结果中的用当前用户的公钥加密的随机对称密钥,或者从返回结果中获取解密服务器通过其他安全传输方式返回的随机对称密钥,然后转入第六步骤;
第六步骤:在应用程序或系统程序对虚拟文件盘或虚拟文件目录中的文件进行读取或存写的过程中,使用第三步骤或第五步骤获得的随机对称密钥对应用程序或系统程序读取的虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应文件的文件数据进行解密,或者对应用程序或系统程序存写的虚拟文件盘或虚拟文件目录中的文件在文件服务器上的对应文件的文件数据进行加密;
所述用户模式文件系统驱动在连接解密服务器请求确定当前用户是否被允许解密应用程序或系统程序要读取或要存写的文件的文件数据时,从用户启动所述用户模式文件系统驱动登录文件服务器时提交的身份凭证中获取当前用户的身份标识,或者从用户端的配置信息中获取当前用户的身份标识,或者通过人机界面由当前用户输入身份标识,或者通过人机界面由用户选择身份凭证然后从身份凭证中获取当前用户的身份标识。
10.根据权利要求9所述的基于用户模式文件系统的安全网络文件系统,其特征是:所述解密服务器接收到所述用户模式文件系统驱动提交的请求确定当前用户是否被允许解密应用程序或系统程序要读取或要存写的文件的文件数据的请求后,按如下方式进行操作处理:
步骤1:利用请求中提交的用户身份标识,查询所述身份管理系统,获取当前用户的身份信息;
步骤2:利用策略加密公钥所对应的私钥解密请求中提交的每条群体解密策略的密文部分,从解密的密文部分获得群体解密策略以及对文件加密的随机对称密钥;
步骤3:根据步骤2从每条群体解密策略的密文部分解密获得的群体解密策略和步骤1查询获得的身份信息确定是否允许当前用户解密应用程序或系统程序要读取或要存写的加密文件,若是,则转入步骤4;否则,返回结果,指示不确认当前用户被允许解密应用程序或系统程序要读取或要存写的加密文件;
步骤4:利用当前用户的公钥对步骤2解密获得的随机对称密钥加密,然后返回结果确认当前用户被允许解密应用程序或系统程序要读取或要存写的加密文件并同时返回用当前用户的公钥加密的随机对称密钥;或者,返回结果确认当前用户被允许解密应用程序或系统程序要读取或要存写的加密文件并同时通过其他安全传输方式在返回结果中返回步骤2解密获得的随机对称密钥;
若根据预定的安全策略所述解密服务器在处理请求前需要对用户进行身份鉴别,则解密服务器在执行步骤1前先对当前用户进行身份鉴别,身份鉴别通过后才继续进行操作处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410104937.3A CN103841113B (zh) | 2014-03-20 | 2014-03-20 | 一种基于用户模式文件系统的安全网络文件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410104937.3A CN103841113B (zh) | 2014-03-20 | 2014-03-20 | 一种基于用户模式文件系统的安全网络文件系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103841113A CN103841113A (zh) | 2014-06-04 |
CN103841113B true CN103841113B (zh) | 2017-01-04 |
Family
ID=50804245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410104937.3A Expired - Fee Related CN103841113B (zh) | 2014-03-20 | 2014-03-20 | 一种基于用户模式文件系统的安全网络文件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103841113B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125069B (zh) * | 2014-07-07 | 2017-07-25 | 武汉理工大学 | 一种面向共享的安全文件目录文件加密系统 |
CN105183799B (zh) * | 2015-08-25 | 2019-12-24 | 苏州浪潮智能科技有限公司 | 一种权限管理的方法及客户端 |
CN106559392A (zh) * | 2015-09-28 | 2017-04-05 | 北京神州泰岳软件股份有限公司 | 一种文件共享方法、装置和系统 |
CN105656949A (zh) * | 2016-04-01 | 2016-06-08 | 浪潮(北京)电子信息产业有限公司 | 一种网络文件系统的访问权限控制方法及系统 |
CN106254442A (zh) * | 2016-07-29 | 2016-12-21 | 北京北信源软件股份有限公司 | 一种基于虚拟加密磁盘的云盘数据传输方法及装置 |
CN108632206A (zh) * | 2017-03-19 | 2018-10-09 | 上海格尔软件股份有限公司 | 一种加密云存储与资源管理器结合的系统 |
CN110069454A (zh) * | 2017-09-11 | 2019-07-30 | 中兴通讯股份有限公司 | 一种网络文件管理方法、终端及计算机可读存储介质 |
CN109840421A (zh) * | 2017-11-24 | 2019-06-04 | 深圳市优必选科技有限公司 | 一种操作系统的权限管理方法、装置及终端 |
CN110535829B (zh) * | 2019-07-24 | 2022-06-07 | 视联动力信息技术股份有限公司 | 一种数据交互方法及一种视联网系统 |
CN111339034B (zh) * | 2020-05-18 | 2020-08-11 | 湖南天琛信息科技有限公司 | 一种密文存储明文访问的系统、密文存储和明文访问方法 |
CN112667172B (zh) * | 2021-01-19 | 2024-06-18 | 南方电网科学研究院有限责任公司 | 磁盘操作方法、装置、系统、存储介质及计算设备 |
CN114417381A (zh) * | 2021-08-31 | 2022-04-29 | 统信软件技术有限公司 | 一种文件访问控制系统、方法及计算设备 |
CN114861207A (zh) * | 2022-05-12 | 2022-08-05 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
CN115378659B (zh) * | 2022-07-28 | 2024-04-16 | 中国电子科技集团公司第三十研究所 | 基于用户身份的高可靠文件加密和细粒度访问控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120079069A1 (en) * | 2009-05-26 | 2012-03-29 | Zte Corporation | File Uploading Realization Method and System for WEB Application |
CN103561034A (zh) * | 2013-11-11 | 2014-02-05 | 武汉理工大学 | 一种安全文件共享系统 |
-
2014
- 2014-03-20 CN CN201410104937.3A patent/CN103841113B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120079069A1 (en) * | 2009-05-26 | 2012-03-29 | Zte Corporation | File Uploading Realization Method and System for WEB Application |
CN103561034A (zh) * | 2013-11-11 | 2014-02-05 | 武汉理工大学 | 一种安全文件共享系统 |
Non-Patent Citations (3)
Title |
---|
一种网络文件安全存储系统的设计与实现;王博等;《微型电脑应用》;20090831;第25卷(第08(2009)期);全文 * |
安全共享文件系统的研究与实现;王斌;《中国优秀硕士学位论文全文数据库信息科技辑》;20080515(第05(2008)期);全文 * |
安全网络文件系统设计与实现;游东海;《中国优秀硕士学位论文全文库信息科技辑》;20111215(第12(2011)期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103841113A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103841113B (zh) | 一种基于用户模式文件系统的安全网络文件系统 | |
CN111343001B (zh) | 一种基于区块链的社交数据共享系统 | |
CN111191286B (zh) | Hyperledger Fabric区块链隐私数据存储与访问系统及其方法 | |
CN105378649B (zh) | 多权限数据安全和访问 | |
US20200119904A1 (en) | Tamper-proof privileged user access system logs | |
CN110535833B (zh) | 一种基于区块链的数据共享控制方法 | |
Ibáñez et al. | On blockchains and the general data protection regulation | |
Wan et al. | HASBE: A hierarchical attribute-based solution for flexible and scalable access control in cloud computing | |
CN103561034B (zh) | 一种安全文件共享系统 | |
CN105103488B (zh) | 借助相关联的数据的策略施行 | |
CN104871172B (zh) | 用于连接的设备的编配框架 | |
CN108898389A (zh) | 基于区块链的内容验证方法及装置、电子设备 | |
US11250142B1 (en) | System and method for protecting data in business transactions | |
CN111316278A (zh) | 安全身份和档案管理系统 | |
CN110120869A (zh) | 密钥管理系统及密钥服务节点 | |
CN105122265B (zh) | 数据安全服务系统 | |
CN103888467B (zh) | 一种面向共享的安全文件夹加密系统 | |
US20200401734A1 (en) | Encrypting data associated with decentralized identifier | |
CN104145446B (zh) | 操作计算设备的方法、计算设备及计算机程序 | |
CN103916480B (zh) | 一种面向共享文件的文件加密系统 | |
EP1714459A1 (en) | Accessing protected data on network storage from multiple devices | |
CN109067528A (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
EP3997606A1 (en) | Cryptoasset custodial system with custom logic | |
US20220337388A9 (en) | Decentralized Methods and Systems for Storage, Access, Distribution and Exchange of Electronic Information and Documents over the Internet using Blockchain to protect against Cyber attacks and Theft | |
JPWO2019082442A1 (ja) | データ登録方法、データ復号方法、データ構造、コンピュータ、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170104 |