一种基于PDRR模型的静态数据完整性保护方案

来源:岁月联盟 作者:熊小兵 时间:2010-08-30
 摘 要  本文在简要介绍静态数据的完整性保护及PDRR模型的基础上,提出了基于PDRR模型的静态数据完整性保护解决方案。    关键词   静态数据  数据完整性  PDRR模型 

1  数据完整性保护

    在机系统中,数据通常有两种状态:存储状态和传输状态。长期以来,数据传输时的完整性得到了人们更多的关心。笔者认为,不论是在存储状态,还是在传输状态,数据既容易遭到人为的主动攻击,又容易遭受非人为的异常变化。与传输状态相比,处于存储状态的数据的完整性更应受到关注,这主要有三方面的原因:一是存储状态的数据既有用户数据又有系统数据,而传输状态的数据则基本上是用户数据;二是系统的工作主要依赖存储状态的数据,而不是传输状态的数据;三是存储状态的数据少有系统级的完整性保护,而传输状态的数据则由网络的传输机制提供了一定程度上的完整性保护。    存储状态可以看成是静态,而传输状态则可以认为是动态。下面主要讨论处于存储状态——即静态——的数据的完整性保护。    为保证数据的完整性,可以采取多种措施,包括管理的和技术的。一般的系统都采用系统“准入”(即口令机制等)和资源访问控制两种措施。这两种措施能对数据的完整性起到很好的保护作用,尤其是能对人为的主动攻击起到积极的防御作用。但是,也应该意识到,不论是从管理上讲,还是从技术上讲,要想绝对避免数据的完整性遭到破坏是不可能的。在这种情况下,我们应该做的也是能够做的,就是要找到一种办法能够对数据的完整性进行检测,一旦发现数据遭到破坏,能够马上恢复其本来面目。这也是我们最后的武器。    数据校验技术就是这一要求的产物。根据数据校验技术,可以对要保护的数据按照一定的规则产生一些校验码,并且把这些校验码记录下来。以后,在任何时候,我们可以按照同样的规则生成新的校验码,并与原来的校验码做比较。根据比较结果,即新校验码和原来的校验码是否一致,我们就能够知道数据是否发生了变化并且采取相应的措施。这一工作也叫做完整性检查。    数据校验的方法很多,不管采用何种方法都必须至少保证两点:校验码对数据的变化比较敏感,即校验码会随数据块的不同而不同;根据校验码很难还原出原始数据。

2  PDRR模型

    PDRR模型是目前得到较多认可的一个安全保障模型。在这个模型中,网络的安全保障系统被分成四个部分:防护(Protection)、检测(Detection)、响应(Response)和恢复(Recovery)。    从工作机制上看,这四个部分是一个顺次发生的过程:首先采取各种措施对需要保护的对象进行安全防护,然后利用相应的检测手段对安全保护对象进行安全跟踪和检测以随时了解其安全状态。如果发现现安全保护对象的安全状态发生改变,特别是由安全变为不安全,则马上采取应急措施对其进行处理,直至恢复安全保护对象的安全状态。    PDRR模型如图1所示。按照这个模型,信息网络的安全建设是这样的一个有机的过程:在信息网络安全政策的指导下,通过风险评估,明确需要防护的信息资源、网络基础设施和资产等,明确要防护的内容及其主次等,然后利用入侵检测系统来发现外界的攻击和入侵,对已经发生的入侵,进行应急响应和恢复。

图1  PDRR模型    PDRR模型是一个比较具有普遍意义的安全模型,因此利用它也可以解决数据的完整性保护问题。

3  静态数据完整性保护方案

    根据PDRR模型,对处于存储状态的数据的完整性保护可以采取如下方案:    (1)以文件为单位确定保护对象并做好记录;    (2)对每一个保护对象进行某种哈希运算,并记录其哈希值;    (3)对每一个保护对象进行备份;    (4)对每一个保护对象进行访问检测,记录其被修改的情况;    (5)在以后的任何合适的时候对每一个保护对象再做相同的哈希运算,并用新的哈希值与原来的哈希值做比较:如果一致,则不必做任何处理;否则:如果是正常修改,则用新的哈希值取代原来的哈希值并启动备份系统;否则,启动恢复系统。

3.1  数据结构

    为了实现上述方案,必须记录和利用一些相关信息。为此,可以设计四张表:一张为保护对象记录表,一张为对象校验码记录表,第三张为对象备份记录表,第四张为对象访问记录表。    保护对象认定子系统用来认定需要保护的对象。    对象校验码记录表用来记录各保护对象的哈希运算结果,即校验码。    对象备份记录表用来记录各保护对象的备份情况。    对象访问记录表用来记录进程或用户对各保护对象的访问情况,主要是保护对象被进程或 用户修改的情况,即进程或用户对保护对象的写操作。    它们的主要结构如图2所示。    (1)保护对象记录表
路径文件名对象ID
………………
………………
     (2)对象校验码记录表
对象ID校验码时间
………………
………………
     (3)对象备份记录表 
对象ID备份路径时间
………………
………………
      (4)对象访问记录表
对象ID时间合法否
………………
………………
  图2  各表的结构示意图

3.2  系统模型

    完整性保护系统可以由以下功能模块构成:    (1)保护对象认定模块;    (2)对象备份模块;    (3)对象恢复模块;    (4)对象校验码生成模块;    (5)对象完整性检测模块;    (6)对象访问检测模块。    各功能模块以及各记录表之间的关系如图3所示。


    其中:    对象认定、备份和校验码生成构成保护对象认定子系统;    完整性检测、备份、校验码生成和恢复构成对象完整性检测子系统;    访问检测单独构成对象访问检测子系统。    因此,整个系统由三个子系统构成,这三个子系统的工作相对独立:保护对象认定子系统可以在任何需要的时候由人工启动;完整性检测子系统既可以在任何需要的时候由人工启动,也可以由系统在系统启动的时候自动启动;访问检测子系统则应由系统在系统启动的时候自动启动。需要指出的是,保护系统用到的数据——包括各种表格以及保护对象的备份——应该放在安全的地方。

    以上讨论的是基于PDRR模型的静态数据的完整性保护方案。对于静态数据,除了完整性需要得到有效的保护外,有些时候其机密性也是一个不容忽视的问题。     为了同时保证静态数据的完整性和机密性,可以先对保护对象进行加密处理,然后同样按照上述方式对其完整性进行保护。为此,保护系统只需要增加相应的加密/解密子系统即可。

    [1]张千里,陈光英.《安全新技术》.北京:人民邮电出版社,2003年    [2]李克洪,王大玲,董晓梅.《实用密码学与机数据安全》.沈阳:东北大学出版社,1997年    [3]袁津生,吴砚农.《计算机网络安全基础》.北京:人民邮电出版社,2002年    [4] [以色列]Oded Goldreich著,《Foundations of Cryptography:Basic Tools》,北京:机械出版社,2003年    [5] [美]William Stallings著,杨明等译.《密码编码学与网络安全:原理与实践》(第2版).北京:工业出版社,2002年    [6] 卢开澄著.《计算机密码学——计算机网络中的数据保密与安全》(第2版).北京:清华大学出版社,1998年

图片内容