CN102065083A - 一种安全协议形式化验证方法 - Google Patents

一种安全协议形式化验证方法 Download PDF

Info

Publication number
CN102065083A
CN102065083A CN2010105789472A CN201010578947A CN102065083A CN 102065083 A CN102065083 A CN 102065083A CN 2010105789472 A CN2010105789472 A CN 2010105789472A CN 201010578947 A CN201010578947 A CN 201010578947A CN 102065083 A CN102065083 A CN 102065083A
Authority
CN
China
Prior art keywords
goal
layering
sub
security protocol
security
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010105789472A
Other languages
English (en)
Other versions
CN102065083B (zh
Inventor
薛锐
彭建华
刘峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN 201010578947 priority Critical patent/CN102065083B/zh
Publication of CN102065083A publication Critical patent/CN102065083A/zh
Application granted granted Critical
Publication of CN102065083B publication Critical patent/CN102065083B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种安全协议的形式化验证方法,其步骤包括:1)在设定的网络环境下,给定一个安全协议;2)根据安全协议执行步骤实现的功能对安全协议进行分层;3)将期望的安全目标分解为与各分层对应的子目标;4)依次对各分层进行建模,对各子目标进行描述;5)分别在步骤4)构造的分层模型上验证是否满足与之对应的子目标,若满足则完成对安全协议的验证。本发明的方法将层次式与模型检测方案结合起来,通过将安全协议划分成层次分明的模块分别进行验证,降低了准确建模的复杂性;在不影响验证结果正确性的前提下,极大地削减了检测过程中状态空间的规模。

Description

一种安全协议形式化验证方法
技术领域
本发明主要涉及信息安全的安全协议形式化验证领域,确切给出一种基于模型检测的安全协议形式化验证方法。
背景技术
随着网络技术的不断发展,网络信息的交互越来越频繁。为了让网络通讯更加安全可靠,人们引入了安全协议来保障传输信息的安全秘密交互。不同的应用场景和应用目的决定了安全协议需要具备某些安全性质。但由于网络环境的复杂性,安全协议的安全性质往往难以得到保证。因此,人们需要一种有效的途径来对安全协议进行全面而严格的分析和验证。安全协议的形式化验证方法应运而生。
应用形式化方法对安全协议进行分析和验证时,首先需要对安全协议运行的网络环境作某些假设,并基于这些假设对安全协议行为及其期望的安全目标分别进行形式化建模和描述,再用数学或者计算机的方法验证该假设环境下安全协议是否达到了期望的安全目标。近年来比较流行的安全协议形式化验证方法主要包括基于Dolev-Yao模型刻画的网络环境假设,使用模型检测或者定理证明来对安全协议进行分析和验证。由于定理证明需要使用者拥有非常高的证明技巧来人工参与证明过程,因此限制了其普及的程度。而模型检测由于其自动化程度高的优势得到了广泛的应用。
应用模型检测分析安全协议时,需要使用某种规范语言对协议行为和安全目标进行建模和描述,然后使用模型检测器来检测是否存在不满足安全目标的状态。由于模型检测需要对状态进行检测,而协议的并发性往往导致状态空间中状态的指数级增长,引发状态爆炸,从而导致检测过程崩溃,因此需要引入必要的措施来解决或者延缓状态爆炸。此外,由于模型检测需要首先对安全协议行为进行形式化建模,形式化方法本身具有的复杂性增加了准确建模的困难性。特别是在对某些复杂协议进行建模时,如果缺乏丰富的经验,要得到安全协议的精确模型变得相当困难。
总的来看,目前模型检测方法的局限性主要在于容易引发状态爆炸和准确建模的复杂性。
发明内容
为了解决现有技术中模型检测存在的问题,本发明提出了一种可以降低准确建模复杂性并且不容易引发状态爆炸的安全协议形式化验证方法。
本发明依据的理论基础分析
Amir Herzberg和Igal Yoffe共同提出了使用层次式规范来对分布式算法进行分析,目前这一方法主要被用来设计复杂实用的安全电子商务系统。该方法主要通过手动证明的方式来证明一些分层特征比较明显的分布式算法的某些性质,该方法首先证明底层规范的某些性质,通过归约将高层规范的性质归结到底层规范性质是否满足上,从而证明高层规范性质是否能够满足。因此,人们可以将对简单构件(如单层规范)的分析应用到复杂构件(如多层规范)的分析上。
引理1协议πL和πH通过唯一的公共接口i进行交互,假设在某次执行X中,协议πH满足
Figure BSA00000378117000021
,协议πL满足
Figure BSA00000378117000022
,其中SL(X)和SH(X)是否满足不依赖于公共接口i上发生的事件,则将协议πL和πH进行复合后,得到的协议满足
Figure BSA00000378117000023
本发明中的方案将层次式的方法与模型检测结合在一起,通过对安全协议进行层次划分,降低形式化建模的复杂性,再将期望的安全目标分解为与各分层联系密切的子目标,分解后的各个子目标必须满足通过引理1可以复合成原目标,然后我们只需要在各分层中验证对应于该层的子目标即可。若该分层不满足其对应的子目标,则导出相应的反例,如果该反例是由协议设计存在的问题引起,可根据该反例进而构造出对应于期望安全目标的反例。
为了实现本发明的目的,采用的技术方案概述如下:
一种安全协议的形式化验证方法,其步骤包括:
1)在设定的网络环境下,给定一个安全协议;
2)根据安全协议执行步骤实现的功能对安全协议进行分层;
3)将期望的安全目标分解为与各分层对应的子目标;
4)依次对各分层进行建模,对各子目标进行描述;
5)分别在步骤4)构造的分层模型上验证是否满足与之对应的子目标,若满足则完成对安全协议的验证。
所述步骤2)安全协议实现某一功能的所有步骤划分为一层。
所述步骤3)将期望的安全目标分解为与各分层对应的子目标,分解后得到的子目标根据复合定理能够推导出安全目标。
所述步骤4)对分层建模采用任意的能够用来描述协议行为的语言;对子目标采用规范语言进行描述。
所述步骤5)使用基于模型检测的协议验证平台进行验证。
以各分层模型和对应子目标描述为验证平台输入,验证分层模型是否满足与之对应的子目标。
所述步骤5)某分层模型与各子目标之间不满足,则导出相应的反例,判断该反例是该分层的一个反例,则根据该反例来构造安全目标的反例;判断该反例是由于该分层模型不准确引起,则修改该分层的模型并重新进行验证。
与现有技术相比,本发明的方法具有的技术效果有:
1、本发明提出的验证方法,将层次式与模型检测方案结合起来,通过将安全协议划分成层次分明的模块分别进行验证,降低了准确建模的复杂性;
2、同时由于分别对协议的各个模块进行验证,在不影响验证结果正确性的前提下,极大地削减了检测过程中状态空间的规模,能够大大降低状态爆炸的几率,有效地延缓状态爆炸的到来。
附图说明
图1为本发明方法流程图;
图2为本发明具体实施例中Kerberos协议分层后的各层次间的逻辑关系图。
具体实施方式
以下结合附图和具体实施方式对本发明的方法进行详细的说明。
如图1所示,在给定一个设定网络环境的条件下,给出一个安全协议,本发明的验证方法流程包括:协议分层、目标分解、层次式建模和描述以及分层验证等步骤。
1)协议分层具体的协议为了实现安全目标都使用了一定的安全手段,具体到实际协议中,体现为协议中包括某些步骤来实现这些安全保障。因此,我们可以根据协议步骤实现的功能对协议进行分层,分层应尽量保证使得不同的层之间功能相对独立或者底层功能是上层功能实现的基础并尽量实现高内聚、低耦合,确保协议的每个步骤都包含于且只包含于某一个分层。例如,大多数密钥建立协议都包含了对各主体的认证阶段和在认证基础上进行的密钥分发阶段,对此我们可将实现主体认证的协议步骤划分为一层,将实现在认证基础上进行的密钥分发的协议步骤划分为另一层。
2)目标分解将期望的安全目标分解成与各分层相关联的子目标,但应保证所有子目标根据引理1可以复合出原安全目标。如在步骤1提到的密钥建立协议中,若该协议期望的安全目标为“敌手不能通过非法途径获得密钥”,则我们可以将该目标分解为认证阶段待验证的子目标“敌手无法通过非法途径获得认证”和在密钥分发阶段待验证的子目标“未获得认证的敌手不能获得密钥”。
3)层次式建模和描述依次对各分层进行建模、对子目标进行描述。对分层建模可以采用任意的能够用来描述协议行为的语言,如CoreASM语言或者CSP语言等;对子目标进行描述可以采用多种规范语言,如命题逻辑、时序逻辑和一阶逻辑等,具体如CTL公式或者LTL等。分层进行建模降低了对协议准确建模的复杂性。
4)分层验证在各分层模型上验证与之相关联的子目标,使用基于模型检测的协议验证平台(如ASM-SPV、FDR和OFMC等);若分层模型不满足与之相关的子目标,则导出相应的反例,若该反例是由协议设计引发,则根据该反例构造出与安全目标对应的反例,否则修改该分层模型使之与协议行为一致并重新进行验证。
下面以对Kerberos IV协议为例,对本发明中的方案做进一步的详细描述。KerberosIV协议具体表示如下:
1.A→Kas:A,Tgs,T1
Figure BSA00000378117000041
Figure BSA00000378117000042
Figure BSA00000378117000043
Figure BSA00000378117000044
6.B→A:{T3+1}servK
Kerberos IV协议维护了一个保存有各用户和终端服务器密钥的数据库,同时使用了两个可信服务器Kas和Tgs,Kas和Tgs都拥有对该数据库的访问权。若用户A需要使用终端服务器B提供的服务,则A首先需要通过Kas的认证,只有经过认证并拥有Kas颁发的合法认证票据的用户才可能获得Tgs的授权;只有获得授权并拥有Tgs颁发的合法服务票据的用户才可能获得终端服务器B提供的服务。
对Kerberos IV协议使用本发明中的方法进行形式化验证过程如下:
1)协议分层 我们根据用户获得服务分别需要经历认证、授权和服务三个阶段,将Kerberos IV协议划分为认证层、授权层和服务层三个层次,即将Kerberos IV协议的第1步和第2步划分成认证层,将第3步和第4步划分成授权层,将第5步和第6步划分成服务层。根据Kerberos IV协议的规定,通过认证的用户可以在认证票据的有效期内多次申请不同终端服务器提供的服务;而获得授权的用户可以在服务票据的有效期内与指定的终端服务器交互获得相应的服务。协议分层后的各层次间的逻辑关系见图2。
2)目标分解 若我们期望的安全目标为“攻击者如果不按照协议描述的步骤来执行协议,将无法获得终端服务器的服务”和“合法主体按照协议描述步骤来执行协议,在保证消息能够按时到达通信另一方的前提下,最终可以获得终端服务器的服务”,分别记为安全目标1和安全目标2,我们分别将安全目标分解为与认证层、授权层和服务层相关联的子目标。对于安全目标1,则我们在认证层上只需要验证“敌手无法通过伪装成其他合法主体的身份来通过Kas的认证”,在授权层上只需要验证“未通过Kas认证的主体,无法获得Tgs对指定终端服务器的授权”,在服务层上只需要认证“未获得Tgs对指定终端服务器授权的主体,无法获得该终端服务器提供的服务”。对于安全目标2,我们在认证层上只需要验证“合法主体使用自己的身份标识,在保证消息能够按时到达Kas的前提下,能够通过Kas的认证”,在授权层上只需要验证“通过Kas认证的主体按照协议第3步正确执行协议,在保证消息能够按时到达Tgs的前提下,能够获得Tgs对其指定服务器的授权”,在服务层上只需要验证“获得Tgs授权的主体按照协议第5步正确执行协议,在保证消息能够到达指定终端服务器的前提下,能够获得该终端服务器提供的服务”。根据引理1,分解后的子目标依然可以推导出原安全目标。
3)层次式建模 我们使用CoreASM语言分别对认证层、授权层和服务层进行建模,使用CTL公式来分别描述子目标。
4)分层验证 我们使用协议验证平台ASM-SPV来对各分层进行验证。以各分层模型和对应子目标描述为输入,在对授权层验证子目标“未通过Kas认证的主体,无法获得Tgs对指定终端服务器的授权”时,发现了授权层中的一个漏洞:当Tgs在给某一通过Kas认证的主体颁发服务密钥和服务票据时,若当认证密钥过期时,服务密钥仍未过期,如果攻击者能够获得过期的认证密钥,则攻击者可以使用该认证密钥来获得未过期的服务密钥和对应的服务票据,这样尽管攻击者不需要通过Kas的认证就可以获得授权,并进而通过伪装成合法主体获得与服务票据相关联的终端服务器的服务。我们通过这一反例可以导出Kerberos IV协议中与“攻击者如果不按照协议描述的步骤来执行协议,将无法获得终端服务器的服务”这一安全目标的反例:攻击者无须发起对Kas的认证,只需要监视合法主体与Tgs的交互并记录下交互的信息内容,当某一认证密钥过期时,视为攻击者可以获得该认证密钥,则攻击者可以利用该认证密钥来解密已经记录下的信息,若能成功获得与某一终端服务器进行连接的为过期服务密钥和对应的服务票据,攻击者就可以通过使用该服务密钥和服务票据与该终端服务器进行交互,从而获取该终端服务器提供的服务。这样攻击者没有按照Kerberos IV协议描述的步骤来执行协议,但其最终获得了终端服务器的服务。这样我们就通过授权层上发现的反例,最终构造出了Kerberos IV协议的一个反例。
本发明的方法降低了状态爆炸发生的几率。以Kerberos IV协议为例,协议每执行一步会产生多个后继状态,假定每个状态平均有20个后继状态,则将Kerberos IV协议作为一个整体进行检测时产生的状态总数为1+20+…206个;而采用分层后对Kerberos IV协议进行验证时,由于每个分层只包含协议的两个步骤,则每检测一层产生的状态数目为1+20+400=421个,在内存能同时容纳的状态数目一定的情形下,采用分层进行检测显然能够减少需要生成和检测的状态数目,从而达到了降低状态爆炸几率的效果。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (7)

1.一种安全协议的形式化验证方法,其步骤包括:
1)在设定的网络环境下,给定一个安全协议;
2)根据安全协议执行步骤实现的功能对安全协议进行分层;
3)将期望的安全目标分解为与各分层对应的子目标;
4)依次对各分层进行建模,对各子目标进行描述;
5)分别在步骤4)构造的分层模型上验证是否满足与之对应的子目标,若满足则完成对安全协议的验证。
2.如权利要求1所述的方法,其特征在于,所述步骤2)安全协议实现某一功能的所有步骤划分为一层,协议的某一步骤都包含于且只包含于某一分层。
3.如权利要求1所述的方法,其特征在于,所述步骤3)将期望的安全目标分解为与各分层对应的子目标,分解后得到的子目标根据复合定理能够推导出安全目标。
4.如权利要求1所述的方法,其特征在于,所述步骤4)对分层建模采用任意的能够用来描述协议行为的语言;对子目标采用规范语言进行描述。
5.如权利要求1所述的方法,其特征在于,所述步骤5)使用基于模型检测的协议验证平台进行验证。
6.如权利要求5所述的方法,其特征在于,以各分层模型和对应子目标描述为验证平台输入,验证分层模型是否满足与之对应的子目标。
7.如权利要求1所述的方法,其特征在于,某分层模型与各子目标之间不满足,则导出相应的反例,判断该反例是该分层的一个反例,则根据该反例来构造安全目标的反例;判断该反例是由于该分层模型不准确引起,则修改该分层的模型并重新进行验证。
CN 201010578947 2010-12-03 2010-12-03 一种安全协议形式化验证方法 Expired - Fee Related CN102065083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010578947 CN102065083B (zh) 2010-12-03 2010-12-03 一种安全协议形式化验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010578947 CN102065083B (zh) 2010-12-03 2010-12-03 一种安全协议形式化验证方法

Publications (2)

Publication Number Publication Date
CN102065083A true CN102065083A (zh) 2011-05-18
CN102065083B CN102065083B (zh) 2013-07-10

Family

ID=44000184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010578947 Expired - Fee Related CN102065083B (zh) 2010-12-03 2010-12-03 一种安全协议形式化验证方法

Country Status (1)

Country Link
CN (1) CN102065083B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780817A (zh) * 2012-07-16 2012-11-14 天津大学 网络协议安全建模方法
CN103036739A (zh) * 2012-12-11 2013-04-10 首都师范大学 一种用于高可靠通信系统验证与性能分析的形式化方法
CN106411635A (zh) * 2016-08-29 2017-02-15 华东师范大学 一种实时协议的形式化分析及验证方法
CN107273764A (zh) * 2017-06-28 2017-10-20 中南民族大学 一种Swift语言实施的安全协议的安全性验证方法
CN108900545A (zh) * 2018-08-14 2018-11-27 广西民族大学 一种针对安全协议的形式化建模及验证方法
CN110198319A (zh) * 2019-06-03 2019-09-03 电子科技大学 基于多反例的安全协议漏洞挖掘方法
CN112015385A (zh) * 2020-07-28 2020-12-01 华东师范大学 面向协议安全性质的形式化协同规约的方法及图形建模系统
CN112153030A (zh) * 2020-09-15 2020-12-29 杭州弈鸽科技有限责任公司 一种基于形式化验证的物联网协议安全性自动分析方法与系统
CN115174143A (zh) * 2022-05-30 2022-10-11 西南交通大学 一种基于安全协议的网络空间安全可信性验证方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094226A (zh) * 2006-06-19 2007-12-26 华为技术有限公司 管理网络安全框架及其信息处理方法
US20090097661A1 (en) * 2007-09-14 2009-04-16 Security First Corporation Systems and methods for managing cryptographic keys

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094226A (zh) * 2006-06-19 2007-12-26 华为技术有限公司 管理网络安全框架及其信息处理方法
US20090097661A1 (en) * 2007-09-14 2009-04-16 Security First Corporation Systems and methods for managing cryptographic keys

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《计算机学报》 20060131 薛锐等 "安全协议的形式化分析技术与方法" 第一页至第18页 第29卷, 第1期 *
薛锐等: ""安全协议的形式化分析技术与方法"", 《计算机学报》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780817A (zh) * 2012-07-16 2012-11-14 天津大学 网络协议安全建模方法
CN103036739A (zh) * 2012-12-11 2013-04-10 首都师范大学 一种用于高可靠通信系统验证与性能分析的形式化方法
CN103036739B (zh) * 2012-12-11 2015-06-17 首都师范大学 一种用于高可靠通信系统验证与性能分析的形式化方法
CN106411635A (zh) * 2016-08-29 2017-02-15 华东师范大学 一种实时协议的形式化分析及验证方法
CN107273764B (zh) * 2017-06-28 2020-03-10 中南民族大学 一种Swift语言实施的安全协议的安全性验证方法
CN107273764A (zh) * 2017-06-28 2017-10-20 中南民族大学 一种Swift语言实施的安全协议的安全性验证方法
CN108900545A (zh) * 2018-08-14 2018-11-27 广西民族大学 一种针对安全协议的形式化建模及验证方法
CN110198319A (zh) * 2019-06-03 2019-09-03 电子科技大学 基于多反例的安全协议漏洞挖掘方法
CN110198319B (zh) * 2019-06-03 2020-09-15 电子科技大学 基于多反例的安全协议漏洞挖掘方法
CN112015385A (zh) * 2020-07-28 2020-12-01 华东师范大学 面向协议安全性质的形式化协同规约的方法及图形建模系统
CN112015385B (zh) * 2020-07-28 2022-02-11 华东师范大学 面向协议安全性质的形式化协同规约方法及图形建模系统
CN112153030A (zh) * 2020-09-15 2020-12-29 杭州弈鸽科技有限责任公司 一种基于形式化验证的物联网协议安全性自动分析方法与系统
CN112153030B (zh) * 2020-09-15 2022-04-12 杭州弈鸽科技有限责任公司 一种基于形式化验证的物联网协议安全性自动分析方法与系统
CN115174143A (zh) * 2022-05-30 2022-10-11 西南交通大学 一种基于安全协议的网络空间安全可信性验证方法
CN115174143B (zh) * 2022-05-30 2024-01-26 西南交通大学 一种基于安全协议的网络空间安全可信性验证方法

Also Published As

Publication number Publication date
CN102065083B (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
CN102065083B (zh) 一种安全协议形式化验证方法
CN107103473A (zh) 一种基于区块链的智能合约实现方法
US9350728B2 (en) Method and system for generating and authorizing dynamic password
Chen et al. Robust blockchained federated learning with model validation and proof-of-stake inspired consensus
CN103944722A (zh) 一种互联网环境下用户可信行为的识别方法
CN104392534B (zh) 一种基于手指静脉特征识别的电子投票方法和装置
CN103236927B (zh) 一种基于动态身份标识的认证方法及系统
CN101344903A (zh) 基于tpm的多实例动态远程证明方法
CN106921640A (zh) 身份认证方法、认证装置及认证系统
CN115292738B (zh) 一种联邦学习模型和数据安全性及正确性的检测方法
He et al. Weaknesses of a Remote User Password Authentication Scheme Using Smart Card.
CN109558724A (zh) 一种软件行为完整性验证方法
CN103312707B (zh) 属性基签名的云服务器辅助验证方法
CN108540447A (zh) 一种基于区块链的证书验证方法及系统
CN103686711B (zh) 网络连接方法和电子设备
Li et al. Aggregated zero-knowledge proof and blockchain-empowered authentication for autonomous truck platooning
HanataniI et al. A study on computational formal verification for practical cryptographic protocol: the case of synchronous RFID authentication
Chow et al. On sustainable ring-based anonymous systems
CN108173658A (zh) 一种区块链一致性维护方法及装置
CN107395623A (zh) 接口访问数据验证方法及装置、计算机存储介质和设备
CN101902472A (zh) 可信网络中基于行为推送远程声明的方法
Chaudhary et al. Blockchain-based secure voting mechanism underlying 5G network: A smart contract approach
Shibly et al. Personalized federated learning for automotive intrusion detection systems
CN116452135A (zh) 基于以太坊的分布式匿名投票方法、装置、设备及介质
Javaid et al. A lightweight and secure energy trading framework for electric vehicles

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130710

Termination date: 20211203

CF01 Termination of patent right due to non-payment of annual fee