从上述定义可以确定这样的性质:如果在明确推理系统中建立攻击者,并且攻击者的初始知识集不包含对于类型T成员(除了常数C)的非等价测试,那么该进程满足PosConjEqT′c条件(并且因此,整个协议模型满足网络其他部分的条件)。
可以看出系统成分是否满足上述性质对研究至关重要。只有满足这些条件才能够在协议分析的CSP模型中构造更为复杂的事件。
(3)Roscoe数据独立技术的意义
Roscoe在文献中引入了NM进程,负责产生系统所需的无眼新鲜值。那么在以前运行中,一个进程要在每一次输出通信时产生一个新鲜值v;而现在就会将这次通信变为向该进程输入v,并且要求其与相应的NM进程同步。
为了满足新鲜值的惟一性和新鲜性,引入的NM进程需进行下列操作:存储所有发送的新鲜值,相同的新鲜值只发送一次,不发送属于攻击者的新鲜值。显然这些操作并不满足PosConjEqT条件。
Roscoe没有单独使用NM进程进行无限新鲜值的分发,而是应用数据独立技术,在NM进程中执行Collapse转换,通过转换从有限集生成无限新鲜值。
Roscoe的数据独立技术提供了这样的理论基础:若系统的所有成分满足PosConjEqT′c条件,则大协议系统中转换前的全部行为(就系统迹而言)可以用经过映射的相应的有限系统描述。这一技术保证了可以在大协议中应用非单映射转换,将问题简化为相应的有限系统。
3 数据独立技术在CSP协议模型中的设计
数据独立技术使模型检测器的证明更加完整,因为它的应用使大协议的建模成为可能。
3.1 协议模型的扩展
为了解决验证的局限性,需要系统代理能够在实际类型保持有限的情况下,调用无限的不同的新鲜值。沿用Roscoe的方法,引入Manager进程扩展CSP协议模型。与以前的协议模型相比,该模型引入了Manager进程。此进程与Intruder进程相互配合以实现新鲜值的循环利用,因此可视为新鲜值的循环机制。可以说,该模型是对Roscoe文献的一个扩展和细化,可以证明其满足PosConjEqT′c条件:
(1)进程中的数据类型随机数Na、Nb和密钥Kdo均为数据独立类型。
(2)可信代理进程为标准类型进程,满足PosConjEqT′c条件。
(3)攻击者进程在明确推理系统中建立,并且其初始知识集不包含对类型T成员(除了常数C)的非等价测试,满足P0sConjEqT′c条件。
因此该系统中转换前全部行为可以用经过映射的、相应的有限系统描述。也正基于此,可以在无限新鲜值的产生过程中应用非单映射转换,从而将其简化为相应的有限过程,以形成完整的形式化描述。
3.2 协议各对象的描述
对于每一个新鲜值引入对应的Manager进程,取消可信代理分发新鲜值的能力,只在单次运行期间存储新鲜值,并要求其在完成协议一次运行时“遗忘”所有存储的新鲜值。当新鲜值v不再被可信参与者所知(存储)时,称v被“遗忘”。攻击者能够存储在网络中所见的所有新信息。为了能够产生无限的新鲜值,可以对攻击者存储的新鲜值应用collasphag函数,从而启动所提出的新鲜值循环机制。即当新鲜值v在网络中被“遗忘”时可以被循环再利用。一旦该值被循环利用,相应的Manager进程可以在网络中再次将其作为新鲜值使用。
(1)可信进程
在扩展的CSP协议模型中,进程描述如下:
扩展后的描述主要有三处变动:第一,进程被定义为递归进程,表示Initiator可以执行无限数量的序列运行;而在之前的模型描述中,进程在SKIP终止。第二,新鲜Nonce NA不再是参数,而是来自集合NonceF(通过定义,进程可以接收该集合中的任意值);之后将会介绍Manager进程如何终止这些值的产生。第三,添加了close事件表示进程重新开始执行初始状态。该事件标志着进程一次运行的结束,在新鲜值的循环机制中发挥重要作用。