首页> 中国专利> 一种基于用户模式文件系统的安全网络文件系统

一种基于用户模式文件系统的安全网络文件系统

摘要

本发明涉及一种基于用户模式文件系统的安全网络文件系统,包括文件服务器、解密服务器、身份管理系统及由文件客户端、虚拟文件系统驱动构成的用户模式文件系统驱动;用户模式文件系统驱动将文件服务器中的文件及文件目录映射到用户计算机的文件系统的一个虚拟文件盘或虚拟文件目录,并将针对虚拟文件盘或虚拟文件目录中文件的操作转化成针对文件服务器上对应文件的操作,以及在获得许可的用户的程序读写虚拟文件盘或虚拟文件目录中的文件时自动对文件服务器上的对应文件进行解密或加密;对文件解密进行控制的文件解密策略由文件创建者或者创建者授权的用户在用户端创建,使得文件服务器的运维者在没有受到授权的情况下也无法获取保密文件的内容。

著录项

  • 公开/公告号CN103841113A

    专利类型发明专利

  • 公开/公告日2014-06-04

    原文格式PDF

  • 申请/专利权人 武汉理工大学;

    申请/专利号CN201410104937.3

  • 发明设计人 龙毅宏;唐志红;

    申请日2014-03-20

  • 分类号H04L29/06;H04L29/08;

  • 代理机构武汉开元知识产权代理有限公司;

  • 代理人潘杰

  • 地址 430070 湖北省武汉市洪山区珞狮路122号

  • 入库时间 2023-12-17 00:06:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-03-07

    未缴年费专利权终止 IPC(主分类):H04L29/06 专利号:ZL2014101049373 申请日:20140320 授权公告日:20170104

    专利权的终止

  • 2017-01-04

    授权

    授权

  • 2014-07-02

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20140320

    实质审查的生效

  • 2014-06-04

    公开

    公开

说明书

技术领域

本发明属于信息安全技术领域,特别是一种使得程序和用户能够 按通常访问和操作文件系统中的文件的方式访问和操作存放在网络 文件存储系统中的文件并能防止网络文件存储系统的运行维护者(运 维者)窃取文件的适合于云存储的基于用户模式文件系统的安全网络 文件系统。

背景技术

文件云存储系统是一种通过网络提供文件存储和访问服务的系 统。文件云存储系统通常由两部分组成:云端系统和云存储客户端, 其中,云端系统用于存放文件,云存储客户端用于用户进行文件云存 储操作,包括向云端系统上传文件和从云端系统下载文件。文件云存 储使得用户能够在不同位置、不同计算终端上使用文件,给用户带来 了极大方便,日益受到人们的欢迎。但目前的文件云存储系统普遍存 在如下问题:

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解密获得的随机对称密钥加密(从任一个群 体解密策略的密文部分解密得到的随机对称密钥都可以),然后返回 结果确认当前用户被允许解密应用程序或系统程序要读取或要存写 的加密文件并同时返回用当前用户的公钥加密的随机对称密钥;或 者,返回结果确认当前用户被允许解密应用程序或系统程序要读取或 要存写的加密文件并同时通过其他安全传输方式(如Secure Socket  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获取用户的公钥数字证书,或者从身份管理系统获取用户的 公钥数字证书。

其他未说明的具体技术实施,对于相关领域的技术人员而言是众 所周知,不言自明的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号