首页 > 范文大全 > 正文

Geopriv协议形式化分析与模型检测

开篇:润墨网以专业的文秘视角,为您筛选了一篇Geopriv协议形式化分析与模型检测范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:在协议的形式化检测中,欧共体支助的基于TLA的大型项目AVISPA,其以HLPSL为描述语言,本文实现了基于TLA的geopriv协议形式化分析与检测,通过检测,发现Geopriv协议在一定条件下,是可以攻破的,并发现该协议的攻击,给出了攻击路径。

关键词:Geopriv协议;形式化分析;模型检测

中图分类号:TP301

模型检测是一种用于有限状态并发系统自动验证技术。模型检测未来的研究方向:研究利用抽象技术,组合推理,和对称性来减少状态爆炸的问题。对验证参数化设计方法进行研究。开发实时和混合系统实用工具。结合演绎验证。为系统设计适合于开发的工具界面。

1 行为时序逻辑概述

行为时序逻辑(TemporalLogicofActions,简称TLA)[2]由美国学者LesilieLamport提出。行为时序逻辑TLA是一种对并发系统进行描述与验证的逻辑。

2 AVISPA概述

AVISPA工具提供了一套建立和分析协议安全的应用软件[3]。协议用高级协议说明语言HLPSL来建模,以描述协议和协议的的安全性质。

AVISPA工具有四个后台:OFMC,CL-AtSe,SATMC和TA4SP;IF就是被设计来方便这些后台分析这些输入的语言。而且,这些分析方法是部分互补的而不是等价的,所以,不同的分析方法可能产生不同的分析结果。

3 Geopriv协议的形式化与AVISPA检测

Geopriv协议有目标(T)、位置信息(LI)、位置服务器(LS)、位置接收端(LR)。他们之间的信息交换如图1所示。

图1 Geopriv协议结构图

因篇幅原因,下面仅给出部分基本角色的定义,具体用HLPSL建模该协议的描述语言如下:

roletarget(

T,LS,LR:agent,

K_T,K_LS,K_LR:public_key,

H:hash_func,

Snd_LR,Snd_LS,Rcv:channel(dy))played_byTdef=

local

State:nat,

N1:text,

P_T:public_key,

Psi_LR:hash(public_key),

LI,TS:text,

GR:hash_func

initState:=1

transition

1.State=1/\Rcv({LR}_K_T.{{T.N1'}_K_T.Psi_LR'}_inv(K_LR))

=|>State':=3/\P_T':=new()

/\Snd_LR({{N1'}_K_LR.H(P_T')}_inv(K_T))

/\witness(T,LR,lr_T_N1,N1')

/\wrequest(T,LR,t_LR_Psi_LR,Psi_LR')

/\GR':=new()

/\Snd_LS({GR'.Psi_LR'.H(P_T')}_inv(P_T').P_T')

/\witness(T,LS,ls_T_GR,GR')

/\LI':=new()

/\secret(LI',li,{T,LS,LR})

/\secret((GR'(LI')),filtered_LI,{T,LS,LR})

/\TS':=new()

/\Snd_LS({TS'.{LI'.H(P_T')}_K_LS}_inv(P_T').P_T')

/\witness(T,LR,lr_T_filtered_LI,(GR'(LI')))

/\witness(LS,LR,ls_LR_P_LR,LS)

endrole

rolelocationServer(

T,LS,LR:agent,%butLSdoesnotactuallyuseidentityofTandLR

Psi_Table:(hash(public_key).hash(public_key).hash_func)set,

K_LS:public_key,

H:hash_func,

Snd,Rcv:channel(dy))played_byLSdef=

localState:nat,

P_T,P_LR:public_key,

N2:text,

Psi_LR:hash(public_key),

LI,TS:text,

GR:hash_func

initState:=5

transition

5.State=5/\Rcv({GR'.Psi_LR'.H(P_T')}_inv(P_T').P_T')

=|>State':=7/\Psi_Table':=cons(Psi_LR'.H(P_T').GR',Psi_Table)

7.State=7/\Rcv({TS'.{LI'.H(P_T)}_K_LS}_inv(P_T).P_T)

=|>State':=9

9.State=9/\Rcv({H(P_LR').H(P_T).N2'}_inv(P_LR').P_LR')