本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。
完整性原则指用户、进程或者硬件组件具有能力,能够验证所发送或传送的东西的准确性,并且进程或硬件组件不会被以任何方式改变。 [1] 

完整性目的

完整性的目的是通过阻止威胁或探测威胁,保护可能遭到不同方式危害的数据的完整性和数据相关属性的完整性。许多开放系统应用都有依赖于数据完整性的安全需求。这类需求可以提供包括用于其它安全服务(如认证、访问控制、机密性、审计和不可否认性)中的数据完整性保护。这里所阐述的完整性是以一个数据值的恒定特性来定义的,数据值恒定性的概念包括了数据值被认为等效的不同表达式的所有情况。
完整性服务的目标是保护数据免受未授权的修改,包括数据的未授权创建和删除。通过如下行为,完成完整性服务:
(1)屏蔽,从数据生成受完整性保护的数据。
(2)证实,对受完整性保护的数据进行检查,以检测完整性故障。
(3)去屏蔽,从受完整性保护的数据中重新生成数据。
这些行为不一定使用密码技术。当使用密码技术时,就不必对数据进行变换。例如,屏蔽操作可以通过对数据添加封印或者数字签名完成。在这种情况下,在成功证实之后,去屏蔽通过拆去密封或数字签名实现。 [2] 

完整性完整性信息

为了对数据进行屏蔽、证实或去屏蔽操作,可能使用辅助信息。这些辅助信息称为完整性信息。完整性信息包括:
(1)屏蔽完整性信息,它用于屏蔽数据的信息,包括私钥、密钥、算法标识等、相关密码参数、时变参数(如时间戳)等。
(2)变换检测完整性信息,它用于证实受完整性保护数据的信息,包括公钥和私钥。
(3)去屏蔽完整性信息,它用于对完整性保护数据去屏蔽的信息,包括公钥和私钥。 [2] 

完整性分类

我们可以依据所发生的数据行为(创建、删除、修改、插入或重放)、所需的保护措施(阻止威胁或对违规进行检测)或依据在完整性违规操作事件中是否支持恢复功能,对各种完整性服务进行分类。
1.根据防范的违规分类
根据防范的违规操作分类,完整性服务可分为防止未授权的数据修改、防止未授权的数据创建、防止未授权的数据删除、防止未授权的数据插入以及防止未授权的数据重放。
2.依据提供的保护方法分类
依据提供的保护方法分类,完整性服务可分为阻止完整性损坏和检测完整性损坏。
3.依据是否包括恢复机制分类
依据是否包括恢复机制,完整性服务分为两种情况:在具有恢复机制的情况下,去屏蔽操作在证实操作一旦发生改变时,能够恢复原始数据(并可能发出恢复活动已发生的信号,或者指示出错信号以作审计之用);在不带恢复功能的情况下,一旦证实操作指示发生改变,去屏蔽操作就不能恢复原始数据。 [2] 

完整性完整性机制

1.测试字
测试字利用双方协定来使交易字段(例如账号名称、日期、总量等)受到保护,这种方法通常需要一个静态密钥和一个随机数发生器。发送者通过一个双方认同的算法将信息转化成一个字符串(称为测试字)附加在交易中,接收者用接收到的交易数据重复同样的步骤,从而能够验证交易的完整性。测试字是封装的一个早期的技术实现。
2.封装和签名
最普遍的封装和签名技术包含用加密办法产生一个作为明文的附件传送的值。当需要特定的数据完整性要求时,这样一个附件通常被称为完整性校验值。
封装和签名机制的应用需要解决几个问题,例如在算法的选择上、填充要求上和密钥管理过程上都需要建立共识。大多数用于机密性目的的加密机制都适用于为实现数据完整性目的的封装和签名机制。
3.加密
加密既可用于保证数据的机密性,又可用于保证其完整性。假定被保护的数据项拥有一些冗余,加密传输冗余能保证数据完整性的效果,这就使得如果一个入侵者不知道加密的密钥而修改了密文的一部分,会导致在解密的过程中产生不正确的信息。
在一些情况下,数据项拥有充分自然的冗余。相应地,冗余能优先于加密通过扩展数据项得到,一个校验值称为修改检测码。由Hash函数产生的数据摘要,或一个循环冗余校验,都是修改检测码的例子。
不是所有的加密机制都能用在此处。例如,在加密模式中,可逆的公钥算法不能保证数据的完整性。假定一个入侵者能知道公钥,那么他就能产生并且加密一个假的数据项。
4.序列完整性
序列完整性为检测数据项的重放、重排或丢失提供了一种方法,它形成了一个序列的通信网安全与保密一部分。假定每一个数据项内部的完整性已经得到保护。有两种方法可以提供序列的完整性。一种方法是在封装、签名或加密等保护之前,给数据项附加一个完整性序列号;另一种方法是在封装、签名或加密等过程中利用在数据项的序列上扩展的链产生一个加密链。
5.复制
一个数据完整性的度量能由复制在多存储区域的存储信息或通过在不同的路径中传输数据的多个备份来提供。可以假想攻击者不能同时危及所有的备份,那么原始数据就可从未被危及的备份中恢复。
6.完整性恢复
支持完整性恢复所需的机制是一个简单的标准通信错误恢复机制。通常的方法是在检测到破坏发生和重新发送所有数据之前,要重新同步到检测位置。任何密码处理过程,不管是为了机密性还是为了完整性,均需要同时重新同步到同一个检测位置。 [2] 
参考资料
  • 1.    (美)斯旺米那沙 (美)埃尔登著 王超译.无线安全与保密:最佳实践与设计技巧:清华大学出版社,2003年09月
  • 2.    王景中,徐小青,曾凡锋编著.通信网安全与保密:西安电子科技大学出版社,2008.9