内容加密防火墙系统的制作方法

文档序号:6568110阅读:269来源:国知局
专利名称:内容加密防火墙系统的制作方法
技术领域
本发明一般涉及数据通信领域,更具体地,涉及以加密安全的方式和 在一般化策略的规定下对存储设备与计算站之间的数据通信进行管理的 方法。
背景技术
传统上,在组织内部,与用户关联的数据会存储在与用户的计算机关 联的硬盘上或与服务器关联的硬盘上。如果个人想要访问存储在硬盘驱动 器上的数据,则他们需要首先登录到计算机上。在用户登录后,而且在被
允许访问适当的多^it驱动器后,该用户便能访问上述内容。
在当今的计算环境中,在各组织之间和在组织内部的用户之间传送和 交换的数据量一直在增加。因此,利用新的数据存储的方法来扩展传统的
盘驱动器。对数据的可移动性需求导致了可移动存^i殳备的发展。这些可 移动存^i殳备的示例包括USB存储设备、外部硬盘驱动器、CD以及DVD 。 这些可移动存^i史备方便了各用户与计算站之间的信息流动。
存在与存储设备的使用相关的固有危险。本文中使用的存储设备是指 具有能被电子访问的数据内容的物理或逻辑实体。本文中使用的内容是指 具有专用逻辑数据结构的逻辑实体,该结构包含能被电子访问、存储和发 送的数据(例如,类似字处理文件、电子表格文件或数据库文件等的电子 应用文件)和描述该结构的相关元数据。本文中使用的策略是指控制对计 算站和存储设备的访问以及计算站与存储设备之间的数据通信的一组规 则。在组织内,组织专有的内容必须加以保护以防止不允许对其进^r问 的个体/实体对其进行访问。
为了力图抵御滥用内容或数据的潜在威胁, 一些组织已禁止使用某些 类型的存^fti殳备。尽管这确实抵御了某些安全风险,但妨碍了操作效率和 生产率,因为可移动存储设备是提高数据传输和存储的容易程度的很有效 工具。 一些组织在认识到完全禁止使用可移动存储设备不能被证明有效或 高效时,已实行根据其自己的安全协议允许受限制地使用可移动存^i殳备 的策略。然而,这些策略缺乏使这些策略自动生效的有效控制机制。所以, 往往是让终端用户去遵循与涉及可移动存储装置的数据传输有关的一项 或多项策略。没有自动生效机制的策略不能应对下列由于使用可移动存储
设备而产生的威胁1)当含有保密信息的可移动存^i殳备被盗或丟失时; 2)当保密数据从可移动存^fti殳备拷贝到未被授权的计算设备时;3)当保 密数据从计算设备拷贝到可移动存^i殳备时。

发明内容
一种管理计算站与存储设备或内容之间的各种操作的系统和方法。计 算站可以是个人台式计算机、工作站计算机、服务器计算机、膝上计算机 或可移动手持计算机。存储设备是具有能被电子访问的内容或数据的物理 或逻辑实体。物理存储设备可以是在计算站内部,或者可以在外部以通过 外部接口与计算站相连接。物理存储设备的示例包括USB闪存驱动器、 CD、 DVD、 ZIP盘,硬盘驱动器、网络驱动器、软盘、PCMCIA驱动器。 逻辑存^i殳备的示例是文件。内容是一个逻辑实体,其具有包含数据和相 关的元数据的专用逻辑数据结构。内容的示例包括XML文件、HTML 文件、图像文件、字处理文件、电子表格文件、数据库文件及其中内容/ 数据的子集。
涉及或可能导致存储设备与计算站之间的内容(数据)交换或访问的 任何操作都可以被管理。上述操作可以包括但不限于读内容、写内容、 拷贝内容、删除内容、执行文件、安装存^i更备从而使其可被计算站访问、 以及允许内容通过特定接口进行传输。
管理员和客户应用程序被用来管理计算站与存储设备之间可能发生 的操作。将管理员应用程序安装在可信赖的计算站如服务器上,使得访问 限于可信赖用户。客户应用程序将被安装在计算站如膝上计算机上,使得 可以对该计算站与存储设备的交互进行管理。
客户应用程序将根据计算站与存储设备之间允许的操作,针对每个计 算站被进行定制。利用定义的各项策略来定制客户应用程序。所定义的策 略将提供控制和管理在计算站与存储设备之间可能发生的操作的 一组规 则。策略将由管理员或其他正^f吏用管理员应用程序的可信赖的个体/实体 确定。
策略可以根据各种规则来定义。更具体地说,规则可以根据存储设备
类型、接口、内容类型、元数据信息、操作以及各种认证标识符来指定。
存储设备可以是其上能够存储数据的任何部件。存储设备可以与计算 站在内部连接,或者可以是在外部以使其通过接口连接。存储设备不一定 是一个物理设备,而是可以包括一个或多个存储设备。
接口是提供计算站与存储设备之间的连接的部件。这样的接口的示例 包括数据总线如PCI、 USB、 SCSI,以及网络接口如以太网和光纤通 道。
内容类型是存储设备所包含的内容(数据)的格式。由于可能有不同 类型的内容,所以可能定义与特定内容类型关联的规则,例如,根据内容 是与图像应用程序相关还是与文档处理应用程序相关来定义规则。
元数据信息是关于内容的信息。例如,元数据信息可能是与内斜目关 的属性,包括该文件创建的日期、文件名、文件的所有者以及可能与该文 件关联的任何访问许可。
认证标识符可以包括与用户、实体或内容本身关联的标识符。例如,
针对特定用户,用户标识符允许定义对计算站与存储设备之间的数据操作
进行管理的规则。认证标识符还可以包括安全域和安全子域,它们允许定 义计算站和存储设备可以被分配给的域,使得这些规则可以根据计算站和
存储设备被分配给的安全域或安全子域来管理在计算站和存储设备之间 可能发生的操作。
客户应用程序将使已定义的、与特定计算站关联的规则生效。客户应 用程序将监视与计算站连接的所有接口 ,并根据所定义的规则确定应允许 的正由存储设备作出的和正对存储设备作出的请求。
管理员应用程序还用于向存储设备提供预防措施。向存储设备提供预 防措施是指这样的过程向存储设备写入加密的信息,使得当试图与已釆 取预防措施的存储设备对接时,计算站的客户应用程序能根据已定义的规 则确定在该存储设备与计算站之间允许的操作(如果有的话)。


为更好理解这里描述的系统和方法的实施例,以及更清楚地示出这些 实施例可以如何实现,将通过示例参考以下附图,其中
图l是示出与内容加密防火墙系统有关的部件的方框图; 图2是示出管理员应用程序的部件的方框图3是一个安全域和多个安全子域的图4是示出客户应用程序的部件的方才匡图5是示出安全域创建方法的步骤的流程图6是示出规则指定方法的步骤的流程图7是示出采取预防措施的方法步骤的流程图8是示出采取预防措施的模块的方框图9是示出客户应用程序部件与计算站之间的交互的方框图;
图IO是示出内容访问方法的步骤的流程图;以及
图11是示出规则评估方法的步骤的流程图。
具体实施例方式
参考图1,图中示出本发明的内容加密防火墙系统(CCFS)10。CCFS IO包括 一个或多个管理员站12,其上已安装管理员应用程序14,或者 管理员应用程序可以访问上述一个或多个管理员站12;以及多个计算站 16,其上会安^户应用程序18。管理员站12可通过网络与计算站相连。 管理员12和计算站16可连接到存储设备20。存储设备20含有内容22 并利用接口 24与管理员站12和/或客户机站16相连。
管理员站12是计算机,如服务器类计算机,其中,访问被限于网络 内的可信赖个体如网络管理员。在管理员站12上安装管理员应用考呈序14, 其在下面将更详细说明。
计算站16可以是任何类型的计算设备,如个人台式计算机、工作站 计算机、服务器计算机、膝上计算机或可移动/手持计算机。在计算站16 上安^户应用程序18,其在下面将进一步详细描述。
管理员站12和计算站16可以具有与之关联的存储设备20。存储设 备20可包含内容22。存储设备20的示例包括但不限于硬磁盘、闪速 盘、软盘、CD、 DVD、 ZIPTM盘、iPodsTM,外部火线驱动器、外部USB 驱动器、PCMCIA闪存驱动器、网络驱动器以及文件。存储设备20可在 计算站16内部或外部。存储在存^i殳备20上的内容22可以采取不同的 格式。与存储在存储设备20上的特定文件关联的内容22具有指示该文件
的格式的文件名。例如,内容可以与图像、文本文档、多媒体文件等关联。
内容或数据具有相关联的元数据。元数据是描述内容22的信息。元 数据可包括诸如文件名、文件的创建日期、文件的创建者等信息,以及与 可能对文件设置的任何访问限制有关的任何信息。元数据的存在取决于用 来创建该文件的特定应用程序或操作。应该指出, 一些软件应用程序可能 不具有与其创建的文件相关联的元数据。
存储设备20可利用接口 24与管理员站12或计算站14相连接。接口 24可包括但不限于PCI、 USB、火线(IEEE1394 )、 ATA(IDE)、 SATA、 SCSI、以太网或光纤通道。
参考图2,其中,在示例性实施例中示出管理员应用程序14的部件。 管理员应用程序14包含安全域模块30、策略定义模块32和预防措施提 供模块34。安全域模块30允许定义各种域,其中,管理员站12、计算站 16、存^i史备20或内容22以及网络的用户可以与一个或多个域关联。图 3中示出各域,其在下面进一步详细描述。策略定义模块32允许管理员 或其他可信赖个体/实体来定义对计算站16与存储设备20或内容22之间 的交互进行控制的策略。所定义的策略确定在计算站16与存^i殳备20 之间可能发生的各种交互。下面详细描述定义策略、然后使策略生效的方 法。策略管理各种交互,包括但不限于安装操作、拷贝操作、删除操作、 安全删除操作、读操作、写操作、传送操作和执行操作。安装操作使存储 设备20或内容22可被计算站16访问。拷贝操作涉及从存^i史备20拷贝 某块内容(数据),通常是文件。删除IMt^l从存^i殳备20或内容22中 去除内容或数据的过程。删除内容或数据通常涉及将存储着要删除的内容
的特定存^i殳备块指定为未分配的存储,使得该特定存Mi殳备块在以后能 被重写。安全删除操作与删除操作不同,其中,安全删除操作对存^i殳备 20的上述块进行覆写。读操作涉及从存^i殳备20中获取内容。写操作涉 及将内容或数据记录在存^i殳备20上。传送操作涉及通过特定接口 24 从存^i更备20或内容22向连接到接口 24的装置发送数据。执行操作涉 及读W^fti殳备中存储的可执行指令形式的内容(如.exe文件)。
策略模块32用于指定对计算站16与存储设备20或内容22之间的交 互进行控制的规则。利用客户应用程序18将规则安装在计算站上。策略 被定义为一组规则,该组规则基于所谓的控制准则。控制准则用于指定在 计算站16与存储设备20或内容22之间允许的交互的准确性质。控制准 则包括存储设备20类型、接口类型、内容类型、与内容关联的属性(元
数据)、i人证标识符以及上文讨论过的^Mt。 i^证标识符用于统指可用来 定义策略的标识符,且包括安全域和安全子域以及用户名。
预防措施提供模块34用于将釆取预防措施的模块安装在存储设备20 上。采取预防措施的模块26及其内容在下面进一步详细描述。当采取预 防措施的模块26安S^存^i史备20或内容22上时,存^fti殳备20或内容 22即被称作采取预防措施的。尚未安装采取预防措施的模块26的存储设 备20或内容22将被称作未釆取预防措施的。采取预防措施的模块26包 括加密的数据,并将使写入存^i殳备20或内容22的任何数据^密,采 取预防措施的模块26将使得计算站16能够确定计算站16与存储设备20 或内容22之间的哪些操作(如果有的话)可以被执行。
参考图3,图中进一步详细示出安全域。图3示出组织网络50,其通 常是指与组织关联的一组计算站16。作为安全域成员的一些计算站16以 及管理员站12可通过计算机网络相连,但不一定要求计算站16或管理员 站12只有作为计算机网络的一部分才能是安全域的一部分。在图3中示 出组织50内的所有计算站都属于一个安全域60。系统10将要求创建至 少一个安全域60。系统10可以有一个或多个安全子域。在图3中示出有 两个安全子域,即安全子域62a和安全子域62b。通常,组织安全子域, 以便包括在部门内或者在计算i殳备之间可能存在某种其他逻辑关系的地 方可以相关联的所有计算设备。计算设备利用安装在所有计算装置16上 的客户应用程序18与安全域和任选的安全子域关联。如下文中将进一步 详细解释的那样,客户应用程序18被安装在计算设备16上,使得利用密 码和数字签名对其进行加密保护。客户应用程序18不能在未被察觉的情 况下被篡改,结果,与计算站16关联的安全域和安全子域不能改变,除 非由管理员指定。
参考图4,其中,在示例性实施例中示出客户应用程序18的组成部 件。客户应用程序18安装在作为CCFS 10—部分的所有计算站16上。 客户应用程序是通过创建策略而针对计算站16定制的软件应用程序。客 户应用程序用于对它所安装在的各个计算设备分配安全域或任选的安全 子域。在一个实施例中,客户应用程序18包括策略模块70、防火墙模块 72以n视模块74。策略模块70包括关于特定计算站16指定的规则。 指定上述规则的方法在下面详细描述。防火墙模块72控制在计算站16 与存储设备20或内容22之间可能发生的操作。防火墙模块72使已经定 义并包括在策略模块70中的规则生效。这些规则或者允许或者拒绝由某 存^i殳备20或内容22做出的或者对某存^i殳备20或内容22作出的、对 要执行的特定操作的请求。防火墙模块72从监*块74接收信息,监视 模块74检测存^i殳备20或内容22的要与计算站对接的企图。监M块 74确定在计算站16与存储设备20或内容22之间所作的请求的性质(即, 所请求的是什么类型的操作,是上述读操作、写操作还是其他操作)。如 下面将进一步详细解释的那样,客户应用程序18安装在计算站16上时是 受到加密保护的,使得应用程序的内容(特别是含有规则的策略模块70 ) 不可以被改变。客户应用程序18的每个组成部件一旦安装在相应的计算 站16上,则可以由管理员替换或改变而不影响客户应用程序18的其他部 件。
参考图5,其中示出安全域创建方法100的步骤。域创建方法100是 管理员应用程序14的一部分,更具体地说,是安全域模块30的一部分。 如上所述,要求管理员为系统IO创建至少一个安全域。安全域的创建以 及此后的对安全域和安全子域的管理由管理员应用程序14来承担。
安全域创建方法100在步骤102开始,其中,管理员将被提^ij建新 的安全域或创建新的安全子域(假设存在安全域)的选项。如果用户选择 创建新的安全域,则方法100iiyV步骤104。在步骤104,由用户指定安 全域的名称,并且安全域模块产生安全域密码。该安全域密码是用于加密 的全局唯一的标识符。它与用户指定的安全域名称无关,并且将不再由管 理员应用程序14重新产生。
一旦用户指定了新的安全域,则方法100进到步骤106。在步骤106, 提供用于指定新的安全子域的选项,该新的安全子域将与步骤104中指定 的安全域相关联。步骤106是任选的步骤。在步骤106中,可以针对安全 域定义一个或多个安全子域。对于由用户定义的每个安全子域,安全域模 块产生安全子域密码,该安全子域密码是全局唯一的标识符,且不同于所 产生的任何其他安全域密码或安全子域密码。
一旦用户在步骤104中指定安全域,并任选地在步骤106中创建安全 子域,则安全域名称和密码以及安全子域的名称和密码便被加密存储在管 理员站12上。
如果在步骤102中用户选择了针对已存在的安全域定义安全子域的 选项,则方法100进到步骤108。在步骤108中,用户将指定要为其定义 新安全子域的安全域。在步骤108中,将向用户呈现已创建的安全域,且 用户将选择上述安全域之一。
用户在步骤108中选择了安全域后,方法100进到步骤110。在步骤 110中,用户指定他们希望创建的新的安全子域。用户创建新的安全子域 后,已创建的安全子域名称和密码被安全存储在管理员站12上。
方法100可由管理员在任何时候调用,所以安全域和安全子域可以在 任何时候创建。策略可以由管理员或者可访问管理员应用程序14的其他 可信赖用户来指定。在系统10中,可以定义一个或多个策略。策略是指 对已与相应策略相关联的计算站16与存储设备20或内容22之间的交互 进行控制的一组规则。策略被安装在计算站16上作为客户应用程序18 的一部分,更具体地,作为策略模块70的一部分。
管理员应用程序14包含策略定义模块32,其允许管理员或其他可信 赖个体定义一组规则。这组规则对计算设备16与存储设备20或内容22 之间的交互进行控制。
参考图6,其中,在示例性实施例中示出规则指定方法150的步骤。 规则指定方法150由管理员或其他可信赖个体在管理员站上进行。规则指 定方法150产生被定义的策略,其中,策略包括一组规则。然后,该策略 可被包括在客户应用程序18中,更具体地说,是作为策略才莫块70的一部 分。策略和规则指定方法还可用于编辑先前已创建的策略和规则。
规则指定方法150在步骤152开始,其中,要创建的规则的名称将由 管理员指定。
然后,方法150前进到步骤154,在这里指定控制准则。如前文所述, 控制准则可以包括但不限于存^i殳备类型、内容类型、接口、以及关于 元数据、认证标识符、操作符(例如与、或、非以及其它逻辑标识符)的 信息。
然后,方法150前进到步骤156,在这里选择逻辑操作符。逻辑操作 符可以是但不限于与、或、非、或非、异或、是(等于)、不是、小于、 大于、是其成员、非其成员。在步骤154中指定的控制准则与在步骤156 中指定的逻辑操作符相结合,以创建逻辑表达式,该逻辑表达式能够根据 布尔代数的标准规则被评估为真或假。逻辑表达式的一个示例是"存储设 备是被采取过预防措施的",其中,"存^i殳备,,是控制准则,"被采取过 预防措施的,,是存^i殳备的可能的属性,而逻辑操作符为"是"。该表达 式被评估为真或假。
然后,方法150前进到步骤158,在这里,如果要指定额外的控制准
则,则方法150返回到步骤154。如果没有要选择额外准则,则方法150 前进到步骤160。在步骤160,管理员指定在规则中指定的所有逻辑操作 均为真的情况下要采取的动作。可能的动作可以包括但不限于准许、准 许只读、拒绝、加密、通知。准许动作允许对由规则中指定的控制准则所 标识的存^i殳备20或内容22的所有访问。准许只读动作允许读操作但阻 止诸如写等其他操作。拒绝动作阻止所有操作。加密动作规定写入的数据 被加密,而读出的数据被解密。通知动作规定如果所指定的控制准则为真 则发送信息消息。通知动作可以利用消息文本和消息接收者来实现。可能 的接收者可以是日志文件、电子邮件地址或电话号码。
步骤160结束后,规则已被定义。在存储设备未釆取预防措施的情况 下阻止对USB存^i殳备的访问的规则的示例为"如果存^i殳备是USB并 且未釆取预防措施,则拒绝(If (Storage Is USB) And (Provisioned Is False) ThenDeny)"。在元数据类别净皮标注为"通用"的情况下允许从已采取预
示例为"如果操作为读并且内容类型为字处理文档文件并且元数据类别为 "通用",则准许(If (Operation Is Read) And (ContentType Is WordDoc) And (MatadataCategory Is "General") Then Permit)"。在程序不在应用程 序的授权列表上的情况下阻止该程序运行的规则的示例为"如果操作为执 行并且内容类型不是应用程序列表的成员,则拒绝(If (Operation Is Execute) And (ContentType Is Not a Member of ApplicationList) Then Deny)"。
策略可以通过指定将构成该策略的所定义规则的列表来创建。然后, 可利用客户应用程序18将该策略安装在要成为系统10 —部分的计算站 16上。然后,客户应用程序因其包含策略模块70而用于使针对该特定计 算站16或针对登录到该计算站的特定用户的合适策略生效。由于管理员 应用程序14,特别是策略定义模块32,被用于定义策略,所以,当针对 管理员站12定制客户应用程序18时,已定义的策略可包括在客户应用程 序18的策略模块70中。客户应用程序18以及相应的策略可通过网络安 装或其他常规手段进行安装。客户应用程序18,特别是策略模块70,在 安装到计算站20上时,提供加密手段,不管是非对称的还是对称的,以 便检测对策略的任何未授权篡改或改变。
如前所述,存^i殳备20或内容22可以是采取预防措施的或未釆取预 防措施的。采取预防措施的存^i殳备20或内容22将釆取预防措施的模块
26写入其中。在图8中描述的釆取预防措施的模块26使得客户应用程序 18能够确定是否要与特定的采取预防措施的存储设备20或内容22进行 通信,如果是,则确定在采取预防措施的存储设备20或内容22与计算站 16之间允许什么操作。
参考图7,其中,在一个示例性实例中示出预防措施提供方法300的 步骤。通过参考图8进一步描述预防措施提供方法300,图8详细说明釆 取预防措施的模块26的内容。预防措施提供方法300是通过采取预防措 施的模块26将策略信息安装在存^i更备20或内容22上的过程。预防措 施提供方法300在步骤305开始,在步骤305,管理员指定已在方法150 中创建的策略,以及针对存储设备20或内容22的安全域和任选的安全子 域。
然后方法300前进到步骤310。在步骤310中,产生加密资料如图8 所示的加密密钥366,且加密资料随后用于保护存Mi殳备20或内容22。
然后方法300前进到步骤315,其中,对采取预防措施的模块26应 用加密保护。加密保护包括对加密密钥366加密和计算与釆取预防措施的 模块26相关的签名368。
然后方法300前进到步骤320,其中,采取预防措施的模块26被写 入到存^i殳备20或内容22。
再次参考图8,其中,存^i更备20或内容22被示出为其上安装有采 取预防措施的模块26。采取预防措施的模块26〗吏得客户应用程序18能 够控制对存^&备20或内容22的访问和使针对存^i殳备20或内容22的 策略生效。采取预防措施的模块26中包含的信息基于在预防措施提供方 法300中所作的选择。
在一个实施例中,釆取预防措施的模块26包括唯一标识符352,使 用该标识符352以便标识釆取预防措施的模块26。采取预防措施的模块 26包括预防措施提供信息355,其提供标识信息,如安全域、安全子域、 用户提供的标识符、期满信息,以及用于保护加密密钥366和采取预防措 施的模块26本身的附加加密资料。在预防措施提供方法300的替代实施 例中,可以指定采取预防措施的模块26的期满日期。期满日期是在其之 后存^i更备20或内容22的内容将对任何计算站16都不可读的日期,这 样的日期可以是预防措施提Wt息355的一部分。加密密钥366用于对写 入存储设备20或内容22的数据加密,而签名368用于g采取预防措施
的模块26的完整性。在一个实施例中,当加密密钥366第一次被写入存 ^i殳备20或内容22中时,利用使用动态密钥产生方法如PKCS弁5产生 的加密密钥对该加密密钥366进行加密。如下文所述,缺省的口令和安全 域密码被用作密钥导出函数的输入。密钥导出函数动态产生用于对加密密 钥366加密的密钥。当已经采取预防措施的存^^i殳备20或内容22接着被 用于与作为系统10 —部分的计算站16对接时,要求用户输入其自己的口 令并且改变已经指定的缺省口令,并且输入的口令与安全域密码一起,用 于使用与对缺省口令指定的手段相同的手段来对加密密钥366加密。在一 个实施例中,签名字段368包含HMAC SHA256签名,系统10使用该 HMAC SHA256签名来确定采取预防措施的模块26的内容是否可能已经 被改变。
作为将加密密钥366存储到存^i殳备20或内容22上的结果,写入存 ^f^i殳备20或内容22 (如果相应的策略及其规则允许这样的操作)的任何 数据将被加密密钥366加密。结果,如果用户试图使用非系统10—部分 的计算站16来访问釆取预防措施的存储设备20或内容22,则该计算站 16将不能访问上述数据,原因是它是被加密的,而且没能进行合适的解 密。
参考图9,在这里,在一个实施例中示出说明计算站16和存^i殳备 20或内容22的各部件之间的交互的方框图。应用程序400可以表示驻留 在计算站16上的或者与计算站16相连接的、可能需要来自存储设备20 或内容22的数据的任何应用程序。为示例目的提供这样的应用程序的示 例,并且这些示例可以包括字处理应用程序、万维网浏览器以及数据库程 序。文件系统405是安装在计算站16上的操作系统的组成部分,且用于 接收和响应来自应用程序400的数据请求。在传统系统中,文件系统405 将接收来自应用程序400的从指定位置获取数据的请求,然后将该请求发 送给存^f^i殳备/内容驱动器410。存^i殳备/内容驱动器410是首先接收来 自存^i殳备20或内容22的数据的操作系统驱动器。存^i殳^V内^^区动 器410可包含多于一个驱动器,例如海量级驱动器(volume class driver )、 盘级驱动器(disk class driver )以及端口驱动器可全都是存^i殳4^/内容 驱动器410的组成部分。在系统10中,客户应用程序18,更具体地说, AJ^^块74,将接收文件系统405与存^i殳备/内容驱动器410之间的 所有请求。监員块74将向防火墙模块72发送所作请求的性质,而防火 墙模块72将根据策略模块70中已指定的规则,确定是否允许这样的请求。 因此,客户应用程序18将使作为策略模块一部分而被包括进来的策略生
效,然后将只允许该策略支持的那些操作。
参考图10,其中示出设备访问方法500的步骤。设备访问方法500 由客户应用程序18执行,用于确定计算站16是否可以与存^i殳备20或 内容22交互。为举例说明,针对访问采取预防措施的存^i殳备20或内容 22的尝试来示出i殳^^访问方法500。
方法500在步骤502开始,在步骤502,客户应用程序18接收数据 请求。方法500可以接收来自文件系统405的数据请求,其中,文件系统 405用作就一个实施例而言的示例。
然后,方法500前进到步骤504,在步骤504中,客户应用程序18 的监视器模块74检测被请求数据的存储设备20或内容22,更具体地说 是检测采取预防措施的模块26,。然后方法500前进到步骤506,在步骤 506中,从策略模块70获取安装在计算站16上的策略。
然后,方法500前进到步骤508,在步骤508中,从釆取预防措施的 模块26获取预防措施提供信息355。于是方法500前进到步骤512,在步 骤512,从步骤506获取的安全域信息与在步骤508中获取的安全域信息 进行比较。如果它们匹配,则方法500前进到步骤520。如果它们不匹配, 则方法500前进到步骤516。此外,在步骤512中还可以进行检查安全子 域(如果安全子域已经指定)是否匹配的任选步骤。在步骤516中,针对 要在计算站16与存储设备20或内容22之间进行的操作的请求将被拒绝, 请求进行该操作的适当应用程序400将被告知该操作不可以进行。因此, 这将保证,为了能访问采取预防措施的存^i殳备20或内容22,上述釆取 预防措施的存^i殳备20或内容22必须和与计算站16相同的安全域关联。 在一个实施例中,策略模块70包含安全域密码,而预防措施提儉ft息355 包含该安全域密码的哈希值(SHA-256)。步骤512中的匹配是通过计算 策略模块70中的安全域密码的哈希值并将其与预防措施提供信息355中 的哈希值进行比较来完成的。
然后,方法500前进到步骤520,在步骤520,获取与被请求的操作 有关的控制准则信息。与该请求有关的控制准则将提供可与访问所请求的 数据有关的元数据以及其他内斜目关的信息。
然后,方法500前进到步骤524,在步骤524,使用步骤520中的内 容标识信息,评估在506中获取的构成策略的规则。规则评估的细节在图 11中描述。如果确定规则不允许进行所请求的操作,则该请求将被方法
500拒绝,从而前进到步骤516。否则,方法500前进到步骤526,在步 骤526,该动作得到准许。
参考图11,其中示出规则评估方法600的步骤。方法600用于评估 与特定策略关联的所有规则。
方法600在步骤602开始,在步骤602,从客户应用程序18,更具体 地说,是从策略模块70获取策略。然后,方法600前进到步骤604,其 中,作为默认情况,规则评估方法的结果被i殳置为拒绝所请求的动作。
然后,方法600前进到步骤606,在步骤606,进行检查以确定该策 略中是否还剩余另一规则待评估。如果在步骤606中确定没有剩余待评估 的规则,则方法600前进到步骤608。在步骤608中,进行检查以确定规 则评估方法的结果是否被设置为"拒绝"。如果该结果被设置为"拒绝", 则方法600前进到步骤610,在步骤610,方法600结束,且所请求的操 作被拒绝。如果在步骤608中,检查表明结果由于得到准许而没被设置为 "拒绝",则方法600前进到步骤612,其中所请求的操作得到准许。
如果在步骤606中确定有规则剩余以待评估,则方法前进到步骤614, 在步骤614中评估规则。如果该规则评估为"真",则方法600前进到步 骤616,其中确定与该规则关联的动作是否被设置为拒绝所请求的操作。 如果该动作,皮设置为拒绝所请求的^Mt,则方法600前进到步骤610,在 步骤610,所请求的^Mt被拒绝,且方法600结束。
如果在步骤616中确定动作不是拒绝请求,则方法600前进到步骤 618,在步骤618进行检查以确定是否准许该动作。如果准许该动作,则 方法600前进到步骤620,在步骤620,结果祐:设置为"准许"。如果在步 骤618中检查的结果是动作未被设置为"准许,,(而先前已确定其不是被 设置为"拒绝,,),则方法600进入步骤622,在步骤622进行该动作。在 步骤622中,执行该动作,因为该动作可以既不是准许操作也不是拒绝操 作,原因是可能是与所请求的通知有关。
不管步骤618中所进行的检查的输出如何,在步骤620和622结束后, 方法600回到步骤606以确定是否还剩余其他规则待评估。
上述在数据加密中使用的密钥通过使用密钥管理系统中采用的密钥 导出体系导出。称作根密钥的密钥与系统10关联。根密钥可以是对称密 钥或非对称密钥,由系统10用于导出用于加密的密钥(例如,作为采取 预防措施的模块26的一部分的加密密钥366 )。在以下题为"密钥管理"的部分中提供对密钥管理系统的描述。
密钥管理
CCFS使用安全密钥进行认证、完整性检查、加密/解密,所以密钥 管理是在CCFS整个生命周期中负责其总体安全性的很重要的部件。
CCFS密钥管理协i义支持1)强加密(strong encryption); 2 )充足 吞吐量(adequate throughput); 3)密钥恢复;4) 一步式电子曰期切碎 (one-step electronic date shredding); 5)良好的密钥不可预知性;以及 6)策略驱动的数据访问。
CCFS密钥管理(KM)使用分层密钥模型在顶端是一个主密钥 (MK),在下面是附属密钥树。在层N上的每个密钥依赖于它的来自层 N-l的父密钥以及由层N安全官(security officer)产生的种子消息,可 能还依赖于其他层N密钥持有者(层0是最高层,层1次之,依此类推)。 来自层N的密钥又必须用于导出其层N + 1子密钥。除了 MK之外,每 个密钥恰好有一个父密钥,但能有许多子密钥与之关联。"关联"的意思 是将其父密钥应用到种子消息、票据(见下文),并且特殊的密钥导出函 数(Key Derivation Function, KDF )能够导出子密钥。
除了 MK之外,每个密钥都有垂直依赖关系和水平依赖关系两种(见 下文中的公式)。作为KDF, KMS使用基于口令的密钥导出函数-PBKDF (例如,在PKCS弁5v2标准中描述的PBKDF2)。 PBKDF提供良好的密 钥熵(key entropy )。作为用于PBKDF的种子,KMS支持Shamir密钥 分离方案(Shamir key-splitting scheme)以从M个私有口令产生种子; 这些私有口令中的任何K个能用于重新产生该种子(M和K (K<=M-1) 的值是可配置的),或者支持非私有口令(straightpassword),这将实现 特征6。 KMS协议通过利用对称高级加密标准-AES (例如通过使用 AES-256)实现(l)。 AES加密既非常强,又允许相当大的吞吐量,可以 仅由软件实现(特征l、 2)。密钥使用PBKDF存储在利用用户登录和口 令加以包封的介质上。这将有利于密钥分发。
为了易于实现轻松的一步式秘密切碎,除了 MK外,每层密钥都具 有共享票据-半SHA尺寸的字节消息,其与种子(对于每个密钥是唯一 的)一起用于导出在该层次的密钥。通过消灭某层次的票据,从该层次向 下(含该层次)的所有密钥都是实际不可恢复的。
每一层的票据或者存储在HSM并且可通过用户ID和口令来访问, 或者存储在本地并且能够使用例如PKCS # 5协议而被包封。无论何时, 在某N+l层的密钥需要恢复时,密码持有者必须提供他们的密码,而且 还要获得相关联的票据。存在由特殊应用程序支持的过程,其一次性获得 该层次的票据,于是能够针对该层次创*/恢复所有密钥。
下面给出在密钥管理系统中釆用的密钥导出函数的示例。 PrK、 PubK是MKP的私有密钥和^^开密钥;
Pl、 P2.......是来自口令持有者的口令,用于为MK产生种子(在
Shamir的术语中是共享密码)。
SHAMIR—Shamir的密钥分离过程。
SHA—安全哈希函数(例如产生32字节的指紋的SHA2 );
PBKDF—基于口令的密钥导出函数;
AESn—来自层N的AES密钥。
于是,密钥导出过程如下
导出MK:
PBKDF (PrK (SHA (SHAMIR (Pl, P2,......, PM) ) )) = AES0
并且MK指紋(MKF)计算如下
PubK (SHA(SHAMIR (P1,P2,……,PM))) =MKF
MKF是用于^ii MK被正确恢复的公开知识。
为了^HiMKF:
1 ) HSM使用PrK来解密MKF以得到SHA (SHAMIR (PI,
P2,……));
2)应用SHAMIR函数以得到种子SHAMIR (Pl, P2,……);
3 )针对种子计算SHA;
4)将步骤3的结果与1)进行比较。
在HSM中必须应用这两个公式,唯一的输入是P1,……,Pk。 针对N+l层的密钥导出通过以下>^式实现
PBKDF (AESn ( < SHA (种子IT)的前半部> ))=AESn+1
其中T是层N的票据,操作T是指字节流的串接。
种子可以是由负责将受密钥AESn+1保护的数据的安全官所选择的密 码,或者是由SHAMIR过程基于来自N+l层密码持有者的输入而产生的 一个共享密码。密钥管理系统会给出选择。
每个根密钥开始密钥分层,从而定义安全域—受到从根直接或间接导 出的密钥保护的一组对象。来自不同域的对象不能被解密,所以是不可访 问的。各个域代^密边界,所述加密边界对于符合许多安全规定是重要 的。通过应用相同的加密机制,能创建任何数量的安全子域。例如,如果 一些票据有相同的字节子集,它们实际上便落入同一子域。通过拒绝知道 共享票据信息,各对象变为不可访问。所以,对密钥进行加密操作的任何
应用程序能基于域约束和子域约束两者应用访问策略。通过应用足够长的 票据,能实现任何期望数目的层次。为便于域/子域约束,可在产生密钥
的同时(例如以大的、唯一整数的形式)产生J^/子域ID。
除了MK之外,每个层N密钥都要有策略文件与被包封的密钥一起 本地存储在^h质上(参见关于密钥包封的分发密钥部分)。密钥策略文件 可以被编码为X.509 v3证书或二进制文件。
策略文件包含下列字段中的一些或所有策略创建日期;密钥期满曰 期;访问级别(或者是CCFS管理员,或者是外部用户);加密形式的安 全域ID或者其SHA;加密形式的安全子域ID或者其SHA;检查日程(检 查策略的时间间隔);与该密钥关联的用户登录名(若干用户可关联于同 一密钥,但一个用户只有一个密钥与其关联);该密钥所关联的巻;管理 员登录名;激活状态;密钥的哈希值(驱动器的ID);签名(其例如基于 HMAC-SHA )。
如果密钥策略文件被编码为二进制文件,则未加密字段的布局可能如 下。编码可^f吏用ASN.l方法每个字段有一个字节的标签、 一个字节的 长度以及值字节{tag, length—byte, value—bytes }。
使用例如PKCS#5协议,利用包封密钥加密整个策略。包封密钥是 使用特殊的包封口令创建的,该包封口令不在任何地方存储,而在每次分 发密钥和策略文件时都应用。在包封前,利用包封口令将策略文件重新签 名。
所以,包封需要两个口令-已用于创建密钥的口令,以及包封口令。 这提供针对包封过程的认证。然而,将密钥和策略文件拆封以及检查策略 的签名只需要包封口令。
密钥恢复是一种在无需知道针对包封密钥的口令的情况下重构加密 密钥的能力。这是一种允许在口令丟失的情况下恢复数据的很重要的特 性。另一方面,终端用户不能进行密钥恢复,从而对数据提供强加密保护。
只有被授权的密码持有者能借助特殊的应用程序恢复除MK之外的任何 密钥。
密钥恢复特性被构建到密钥方案中使针对所需层次的票据和足够的 密码持有者通过应用Shamir的阈值方案和应用密钥导出公式,以及通过 针对该特性的特殊应用程序来重新创建种子,则能恢复除MK之外的任
何密钥。该应用程序将通过發汪密码持有者的证书或个人档案文件来首先 验证密码持有者凭证。
任何密钥通过密钥擦除或者通过使保持该密钥的HSM置零而被销 毁。另夕卜,销毁一些密码保持密码可保证密码持有者即使得到了票据也不 能恢复该密钥。被销毁的密码数量必须超过阈值。通过销毁密钥,以它加 密的数据变为不可使用。
电子切碎(electronic shredding)是指不可恢复地毁灭密钥,于是以 该密钥加密的数据实际上成为无用的,成为"电子垃圾"。为了电子切碎 整个层次,首先要销毁用于该层次的票据,然后需要将足够长的密码与针 对特定节点的物理密钥一起销毁以使Shamir阈值方案无效。为便于大量 电子切碎,需要特殊的分层结构(见下节)。
关于有利于密钥管理和电子切碎的密钥层次结构,存在若干建议。例 如,如果一些数据要异地存档,则上述数据应该由代表从^^p节点开始的 子树的密钥/多个密钥进行加密。于是,销毁用于该节点的密钥将实际上 切碎上述数据。可替选地,如果在存档巻中的一些数据具有不同的生命周 期(不同的生命限度或有效时间),则有效时间相同的数据应由单独的密 钥/多个密钥的子树来加密。在密钥层次结构中的每个节点应该开始一个 新的密钥子树,以便对有效时间不交错的数据进行加密。没有期满日期的 数据可以通过第一层密钥加密。通常,密钥层次结构ii^得越深,则数据 的生命越短。
对称加密要求输入数据长度可被例如8子节(对于DES/DES3)或 16/32字节(对于AES-128/256)整除,所以,如果lt据具有不兼容的长 度,则在加密之前必须增加一些额外的数据,以及在提交解密的数据之前 把额外的数据去掉。该过程称作填充。尚没有标准的填充方案,但有个方 案的^f吏用如此广泛,以至于已成为事实上的标准。该方案在来自RSA安 全的PKCS#1标准中与RSA密钥编码一起加以描述。
上述方案工作如下,其中,在加密之前,总是对输入数据进行填充。
这意味着在AES的情况下即使数据的长度可被16整除,也要添加附加的 16个字节。更确切地说,添加的字节数N能通过以下等式计算 tv = 16-(z%16),其中L是以字节为单位的数据长度;。/。是将L对16求余 数。N的范围是[l-16。通过增加N个字节,L+N变为可被16整除。每 个所增加的字节含有相同的值,等于N。然后,填充后的数据被加密。
解密之后,在提交解密的数据之前,必须将填充部分去掉。其算法可 描述如下l)得到最后一个字节的值一N; 2)1HiE至少最后N个字节的 值都为N; 3)"删除"最后N个字节,并通过将数据长度减去N来更新 该数据长度("删除,,可以通过仅仅更新该长度来完成)。
上述填充方案已使用相当长的时间,如果我们需要互操作性,如其他 加密提供商需要处理我们的数据,他们理解PKCS針填充。
为支持上述密钥管理系统,需要下列支持l)哈希函数-SHA1或 SHA2; 2) ECB/CBC模式的AES-256 (将把AES-256/ECB模式与 TWEAK相结合以防止"剪切&粘贴"攻击);3) TWEAK实现;4)在 PKCS#5 v2中所描述的PBKDF2密钥导出函数;5)根据PKCS#1标准 的PKCS#1填充;6) HMAC-SHA签名/發汪;以及7) Diffie-Hdlman 密钥共享支持。
如果密钥管理系统必须与客户的PKI M设施集成或者支持证书以 分发用户的密钥和策略,则需要PKI和RSA支持。
PKI密钥管理系统需要l)ASN.l解析器;2)支持PKCS1, 5, 8, 9, 10,以及可能支持PKCSll和PKCS12; 3 )支持标准的X.509证书扩 展和属性;4)利用用户专有属性和扩展以及世界范围的名称,支持X.509 v3证书;5 )可能支持Diffie-Hellman密钥交换(PKCS#3 )、 CBC模式的 TripleDES以及PKCS針1,以便与第三方加密提供商无缝工作。
需要由需要任何类型的加密支持的所有部件共享的共同加密接口(加 密抽象层一CAL)。这层必须允许不同的加密提供商容易插入,例如我们 有远见的客户可能已经在使用的第三方加密库,因此这些客户信任这些第 三方加密库并想要继续使用。CAL将能够支持多个硬件加密提供商和加 密加速器连同第三方加密库。CAL将允许针对不同的任务(例如一个针 对AES,另 一个针对SHA1和HMAC-SHA1)注册不同的加密提供商(或 者是软件,或者是硬件)。
每个安全系统具有至少一个很重要的安全密钥,称作根密钥(RK)
或主密钥(MK),其用于保护最重要的数据一通常是其他密钥或根证书。 保护上述密钥本身就是一个挑战。有三种基本方法来保护MK: 1)采取 一切可用保护措施的安全物理位置;2 )将MK存储在FIPS-140.1层2及 以上安全硬件模块上;以及3 ) Shamir密钥分离方案。
保护MK只是上述问题的一方面;另一方面是当需要MK时能容易 地得到它。只有一个MK导致另一个问题一如果该密钥丟失怎么办?制 作额外的副本是緩解这一问题的常用方法,这又引起附加的安全风险并增 加了密钥撤销的复杂性。理论上,前两个方法能够实现MK的高度存储 安全性,但缺少便利的可获得性和简单的撤销过程。Shamir密钥分离方 案(SKS)被引入以有效解决后两个问题。
SKS的思路是将共享密码(S)(为任意的位串,其可以是密钥、口令 等等)分离成N个部分,相对于K<N,分离釆用如下方式具有少于K 个的部分无助于恢复S,但是具有任何K个或更多个的部分便允许确定地 恢复S。
SKS方案有许多数学实现,但是最简单的、由Shamir本人提出的是 称作阈值密码共享的概念,其描述如下
概率算法PA定义阈值密码共享。从某个有限集合Fs中取出密码S 作为输入,输出n个共享值,即位串Sl,……,Sn。最后,该密码共享 方案产生阈值K, 0<K<N。该算法必须符合下文中概括描述的私有性和 正确性要求。关于私有性取尺寸最大为K-l的符号{1, 2,……11}的任何 子集I,并对任何输入S,运行该算法,则WI^"的概率分布独立于s,。 关于正确性取尺寸至少为K的符号U,2,……iU的任何子集J,该算法
根据^l/e乃计算S,而事实上,存在根据WI^乃计算s的高效算法。
举例来说,假定我们针对某个素数P设定S = ZP,其中P>N,且K 是我们想要的阁值。于是我们如下描述由Shamir提出的算法
1) 随机选择元素&, a2,…,anezp,并设f(x)为多项式 f(x) = S + ai*x +a2*(x"2) +...+ak*(x"k)。换言之,选择关于Zp的、至多为 K度的多项式,如f(O) =S。
2) 关于1 = 1,......,N, ifitSi = f(i)modP,定义上述共享值。
仅仅由于扭格朗日内插的经典结果,该方案具有上述属性。关于M 朗日内插对于任何场F和任何的对集合"xi, yi) I 0 < i < K+1} GFxF,其中 Xi彼此不同,则关于F 'l^存在一个至多为K度的多项式g(x),使得
g(xi) = yi , i = l......., K+l。该多项式的所有系数能被有效地计算出
来。为证明这一点,记多项式为
gi(x) = Qy,—力O2 — .0…(j:,」——"…("w -力
满足g(xi) = 1 , g(xj) = 0, j#,而且度至多为K。由此得出
g(x)= 乂g",00 +…+ A+^,^)有正确的属性。通过构建,可直接得出g 能被有效地计算出来。只可能存在一个解,因为如果有两个不同的多项式 g(x)、 g,(x)都是解,则g(x)-g,(x)将A^至多为K的具有K+l个才艮的非 零多项式,这不可能存在。
权利要求
1.一种管理可移动存储设备的存储设备或内容与计算站之间的交互的方法,该方法包括a)确定是否已做出针对可移动存储设备的所述存储设备或内容与所述计算站之间要进行的操作的请求; b)从存储设备或内容获取预防措施提供信息; c)将与所述存储设备或内容和所述计算站相关联的安全域信息进行比较;以及d)评估与所述计算机站相关联的一个或多个规则,以根据所请求的操作确定实施动作。
2. 如权利要求l所述的方法,其中,所请求的操作可选自由下列操 作构成的组安装操作、拷贝操作、删除操作、安全删除操作、读操作、 写操作、传送操作以及执行操作。其中
3. 如权利要求1所述的方法 标识符。
4. 如权利要求1所述的方法,其中
5. 如权利要求4所述的方法,其中 子域信息。
6. 如权利要求1所述的方法,其中 确定存^i殳备或内容的类型。
7. 如权利要求1所述的方法,其中 确定所述存^i更备或内容上存储的内容类型
8. 如权利要求7所述的方法,其中,评估所述预防措施提儉ft息包括唯一的 预防措施提供信息包括安全域 预防措施提供信息可包括安全评估所述一 评估所述个或多个规则包括 个或多个规则包括一个或多个规则包括
9. 如权利要求l所述的方法,其中,评估所述一个或多个规则包括 确定与所述存^i史备或内斜目关联的接口类型。
10. 如权利要求l所述的方法,其中,所述实施动作可以是允许所请 求的操作。
11. 如权利要求l所述的方法,其中,所述实施动作可以是拒绝所请 求的操作。
12. 如权利要求l所述的方法,其中,所述实施动作可以是以只读方 式允许所请求的操作。
13. 如权利要求l所述的方法,其中,所述预防措施提供信息在所述 存^i殳备或内容上是加密保护的。
14. 一种对控制计算站与存储设备或内容t间的交互的策略进行部署 的方法,该方法包括a) 定义与策略相关联的一个或多个规则,其中,所述一个或多个规 则是基于所请求的操作、 一个或多个控制准则、 一个或多个逻辑操作以及 一个或多个动作而定义的;b) 基于定义的所述一个或多个规则创建策略模块;以及c) 将所述策略模块安装在所述计算站上。
15. 如权利要求14所述的方法,其中,所请求的操作可选自包括下 列^Mt的组安装操作、拷贝操作、删除操作、安全删除操作、读操作、 写操作、传送操作以及执行操作。
16. —种对可移动存储装置上的存储设备或内容采取预防措施的方 法,该方法包括a) 指定策略,该策略由要与所述存^fti殳备或内容相关联的一个或多 个规则组成;b) 产生加密密钥和签名;以及c) 产生预防措施提供信息,并将所述加密密钥、签名和预防措施提 皿息写到存^i殳备或内容上。
17. 如权利要求16所述的方法,其中,所述预防措施提供信息包括 安全域信息。
18. 如权利要求16所述的方法,其中,所述预防措施提供信息包括 安全子域信息。
19. 如权利要求16所述的方法,其中,所述预防措施提供信息包括 期满信息。
全文摘要
一种对计算站与存储设备或内容之间的各种操作进行管理的系统和方法。对涉及或可能导致存储设备或主机内容包含部件与计算站之间的内容(数据)交换或访问的任何操作可以通过包括一组规则的策略来管理。规则可根据特定准则来定义,所述准则包括存储设备类型、内容类型、内容属性、以及与存储设备和/或内容相关联的其它属性。策略将针对特定用户在计算站上被动态安装/更新,并将根据策略的评估来对计算站与存储设备或内容之间可能发生的数据操作进行管理。根据该策略的评估,所请求的操作被允许、被限制在某些区域或被拒绝。
文档编号G06F21/00GK101366034SQ200680025358
公开日2009年2月11日 申请日期2006年5月15日 优先权日2005年5月13日
发明者丹尼尔·萨诺斯, 利奥尼德·尼古拉耶夫, 卡·辛·特奥, 埃内斯特·代诺 申请人:克赖普托米尔技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1