完整性的目的是通过阻止威胁或探测威胁,保护可能遭到不同方式危害的数据的完整性和数据相关属性的完整性。许多开放系统应用都有依赖于数据完整性的安全需求。这类需求可以提供包括用于其它安全服务(如认证、访问控制、机密性、审计和不可否认性)中的数据完整性保护。这里所阐述的完整性是以一个数据值的恒定特性来定义的,数据值恒定性的概念包括了数据值被认为等效的不同表达式的所有情况。
完整性服务的目标是保护数据免受未授权的修改,包括数据的未授权创建和删除。通过如下行为,完成完整性服务:
(1)屏蔽,从数据生成受完整性保护的数据。
(2)证实,对受完整性保护的数据进行检查,以检测完整性故障。
(3)去屏蔽,从受完整性保护的数据中重新生成数据。
这些行为不一定使用密码技术。当使用密码技术时,就不必对数据进行变换。例如,屏蔽操作可以通过对数据添加封印或者数字签名完成。在这种情况下,在成功证实之后,去屏蔽通过拆去密封或数字签名实现。[2]
为了对数据进行屏蔽、证实或去屏蔽操作,可能使用辅助信息。这些辅助信息称为完整性信息。完整性信息包括:
(1)屏蔽完整性信息,它用于屏蔽数据的信息,包括私钥、密钥、算法标识等、相关密码参数、时变参数(如时间戳)等。
(2)变换检测完整性信息,它用于证实受完整性保护数据的信息,包括公钥和私钥。
(3)去屏蔽完整性信息,它用于对完整性保护数据去屏蔽的信息,包括公钥和私钥。[2]
我们可以依据所发生的数据行为(创建、删除、修改、插入或重放)、所需的保护措施(阻止威胁或对违规进行检测)或依据在完整性违规操作事件中是否支持恢复功能,对各种完整性服务进行分类。
1.根据防范的违规分类
根据防范的违规操作分类,完整性服务可分为防止未授权的数据修改、防止未授权的数据创建、防止未授权的数据删除、防止未授权的数据插入以及防止未授权的数据重放。
2.依据提供的保护方法分类
依据提供的保护方法分类,完整性服务可分为阻止完整性损坏和检测完整性损坏。
3.依据是否包括恢复机制分类
依据是否包括恢复机制,完整性服务分为两种情况:在具有恢复机制的情况下,去屏蔽操作在证实操作一旦发生改变时,能够恢复原始数据(并可能发出恢复活动已发生的信号,或者指示出错信号以作审计之用);在不带恢复功能的情况下,一旦证实操作指示发生改变,去屏蔽操作就不能恢复原始数据。[2]
1.测试字
测试字利用双方协定来使交易字段(例如账号名称、日期、总量等)受到保护,这种方法通常需要一个静态密钥和一个随机数发生器。发送者通过一个双方认同的算法将信息转化成一个字符串(称为测试字)附加在交易中,接收者用接收到的交易数据重复同样的步骤,从而能够验证交易的完整性。测试字是封装的一个早期的技术实现。