CPN tool形式化建模通信协议存在的疑点
CPN tools 不能形式化建模 对称和非对称秘钥加解密问题
1、 CPN Tools:属性
CPN Tools 是一个为构建和分析CPN模型的工业价值的计算机工具,使用CPN tools可以实现模拟的方法调查被建模系统的行为,借助状态空间方法和模型检测来验证系统性能。广泛使用在并发系统建模,商业流程,工作流建模或者逻辑协议建模。[1]
2 、CPN Tools: 广泛使用建模对象
CPN Tools 广泛使用在工业系统逻辑建模方面,在通讯协议方面也有使用,但是很少用来分析通信协议。而通讯协议主要是交换机分流,VLAN划分等基于逻辑函数的问题上。通信协议涉及大量的加解密算法(对称和非对称),使用CPN Tools定义的数据类型没有办法构造一个真正加密的消息。 CPN Tools中定义的数据类型都是简单数据类型和符合数据类型,而符合数据类型是可以被重解析成不同类型的简单数据类型。
所以CPN Tools 中没有数据类型可以表示或者构造密文的数据类型
3 、CPN Tools:可以定义的函数
CPN Tools的函数式基于逻辑属性的,大致分成三类,
1、if –else 结构
Fun DecryptionKey(k : PublicKey)=
Case k of
Pat1=>expl1
| Pat2=>expl2
2、递归函数
Fun fact(0)=1
| fact(i)=i*fact(i-1);
3、函数局部变量
Fun metr(x)=
Let var=mminm=100;
In x div mminm
End;
所以在CPN Tools中没有办法表示一个消息被加密的生成密文的函数。
4、CPN Tools:简单颜色和集合符合颜色集(表示的数据类型)
1、简单颜色集表示的数据类型
Unit 表示一个单一的元素: 示例---colset name=unit mouse;
Boolean 表示布尔值: 示例---colset name=bool with (no,yes);
Integers 表示整形数据: 示例--- colset name=int 1..4;
String 表示字符串: 示例---colset name=string;
Enumerated表示枚举类型 示例---colset name =with id0 | id1 | id2 |…idn;
Indexed 表示索引类 示例—colset name=index id with int-exp1..intexp2
2、复合颜色集表示的数据类型
Product 乘积类型 示例—colset name=product name1*name2….namen;
从乘积类型定义的数据中提取其中一个数据 #i name
Record 记录类型 示例—colset name= record id1:name1* id2:name2*..*idn:namen;
从记录类型定义的数据中提取其中一个数据 #idi name
Alias 别名类型 示例—colset name=name0
所以符合颜色集中的数据类型是可以被提取的,不能表示密文类型数据
5、CPN Tools:如何表示随机数
在CPN tools 定义随机数一共三种方式:
1、自由变量的方式 示例----- colset i=int with 1..3; i 从1到 3 之间。
2、函数 ran的方式
示例---colset range=int with 1..3;
Fun ranRange()=range.ran(); ranRange() 表示 从 1到 3
3、特殊分布函数方式
特殊函数的分布式 数学中的特殊分布函数, 泊松分布、指数分布、伯努利分布等函数。
内蒙古大学[2]中使用CPN Tools建模的NS协议 随机数定义成了一个定值,没有体现随机数的性质。如果修改成随机数,模型发生状态空间爆炸问题。其他国内的文献参考了该文献实现的方法。
6、CPN Tools:实例处理加密解密问题存在疑点
在已有的论文中[2][3], 处理消息的加密解密问题,并没有对传输的消息加密,而是将公钥作为一个复合数据中的一个数据一起发送,接受者分解复合数据提取公钥,使用逻辑关系匹配私钥。如果私钥和公钥匹配(pk, sk),则表示消息解密。这违背了 协议中对认证使用的加密解密原理。
7、CPN Tools:无法更本上解决状态空间爆炸问题
CPN Tools 无法从根本上解决 协议分析时产生的状态空间爆照问题[3] ,只能减少token值的空间大小,劲量减小,无法根除。
9、CPN Tools:分析NS协议存在的协议形式化建模不规范问题
【论文】白云莉. 基于CP-nets模型的安全协议形式化方法研究[D]. 2014
1、论文中使用逻辑函数关系解决 对密文加密解密不符合协议中加密解密原理
fun Decryption( k : PublicKey)=
case k of
puka=>prka | pukb=>prkb |puki=>prki ;
2 定义随机数 没有体现随机数性质 ,而是将随机数定义成一个定值
10、Dolev-Yao模型是一个敌手安全模型概念集合, 不存在改进的DY模型。
文献
[2] 白云莉. 基于CP-nets模型的安全协议形式化方法研究[D]. 2014.
[3]白云莉, 叶新铭. 基于Petri网的密码协议形式化建模[J]. 计算机科学, 2012, 39(8):70-74.
[4] Council of faculty of Information networks Transaction NO 5/Simulation of Telecommunciation Systems with CPN Too