CPN tool形式化建模通信协议存在的疑点

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模型。

 

文献

[1] http://cpntools.org/

[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

猜你喜欢

转载自www.cnblogs.com/xinxianquan/p/12165323.html
今日推荐