协议验证

2024-05-15

协议验证(精选7篇)

协议验证 篇1

0 引 言

密码协议安全性的证明问题一直是信息安全领域研究的热点和难点。协议的设计和分析的主要任务可简化为:一是用于获得特殊安全目标的原理;二是用于判断是否达到了这些目标的规则。本文主要探讨使用形式化的规则来获得密码协议安全属性的方法。这些规则基于传统的等级和信息流的思想, 通过将其扩展后用来处理密码协议中的并发进程。在安全协议的分析中, 该方法要求标记出所有的数据片和其相应的通信信道的安全等级:public或secret。secret级别的数据不应当在public的信道上发送, secret级别的信道不应当被所有人无差别地使用。本文的规则是基于Spi演算扩展语法的一种类型规则。通过这些规则可以向用户担保, 如果协议通过了类型检测, 则该协议没有泄漏任何秘密的信息。

1 Spi演算的扩展语法

本文所构造的类型系统中使用了在Spi演算的基础上提出的一种扩展语法。扩展的Spi演算具体语法形式如下:

在扩展Spi演算的限制、输入以及加密进程中, 变量x的受限制情况与Spi演算是相同的, 用于描述一个完整协议运行的扩展Spi演算的进程也一定是闭的。

类似于Spi演算, 在扩展Spi演算中也定义了两种进程间的关系。

简化关系f是一种公理化的形式, 描述了进程通过其本身的计算所达到的另一种状态, 类似于Spi演算中的反应关系。结构等价关系≡也是一种公理化的关系, 该关系用于转换进程, 使之可以进一步使用简化关系。简化关系f和结构等价关系≡都是定义在闭进程上的进程间关系, 可看作是扩展Spi演算的操作语义。

这两种进程间关系的具体形式定义如下:

结构等价关系

简化关系

a¯Μ.Q|a (x) .ΡfQ|Ρ{Μ/x}RedΙ/Ο

case{M}k of {x}k in P else Q f P{M/x} Red Sdec1

L{Μ}kcaseLof{x}kinΡelseQfQRed Sdec2

case {[M]}k of {[x]}k in P else Q f P{M/x} Red Pdec1

L{[Μ]}k+caseLof{[x]}k+inΡelseQfQRed Pdec2

case[{M}]k- of [{x}]k- in P else Q f P{M/x}

Red Checksign1

L[{Μ}]k-caseLof[{x}]k-inΡelseQfQRed Checksign2

if M=M then P else Q ϕ P Red Cond1

ΜΝifΜ=ΝthenΡelseQϕQRed Cond2

ΡϕQΡ|RϕQ|RRed Par

ΡϕQ (υa) Ρϕ (υa) QRed Res

Ρ'Ρ, ΡϕQ, QQ'Ρ'ϕQ'Red

2 基于扩展Spi演算的类型系统

在关于密码协议安全性的分析方法中, 有一种著名的信息流控制方法。该方法依靠将客体和主体划分安全等级, 并且保证没有数据从高安全级别流向低安全级别。本文中, 安全级别被形式化为类型, 信息流的控制需要依靠类型规则来进行。

在扩展Spi演算基础上, 构建了一个基于扩展Spi演算的类型系统, 该类型系统包含基本类型定义、类型操作和类型规则三部分。基本类型定义了数据的安全级别, 类型操作是对类型规则具体应用的说明。通过类型规则该类型系统可以向用户担保, 如果一个描述协议的进程在一定的环境中是类型完善的, 则该协议不会泄漏任何秘密级别的消息。

2.1 基本类型定义

基于扩展Spi演算的语法, 可以构造构建一个类型系统, 其具体类型定义如下:

T ::= 类型

Public 公共数据

Secret 秘密数据

T1 ×. . . ×Tn 类型向量

C[T] 秘密类型的信道

KSecret[T] 秘密类型的对称密钥

EKSecret[T] 秘密类型的非对称加密密钥

DKSecret[T] EKSecret[T]对应的解密密钥

EKPublic[T] 公共类型的非对称加密密钥

DKPublic[T] EKPublic[T]对应的解密密钥

下面, 进一步定义该类型系统中子类型关系≤:

C[T]≤Secret KSecret≤Secret DKSecret[T]≤Secret

EKSecret[T] ≤Secret DKPublic[T] ≤Secret EKPublic[T] ≤Public

如果∀i∈{1, ..., n}, Ti=Public, 则T1×…×Tn≤Public。

如果∀i∈{1, ..., n}, Ti=Secret, 则T1×…×Tn≤Secret。

如果T1≤T′1, ..., Tn≤T′n, 则T1×…×Tn≤T′1×…×T′n。

在基本类型定义的基础上, 可将TPublic类型表示为:

TPublic={T|T≤Public}

={Public, EKPublic[T]}∪{T1×...×Tn|∀i∈{1, ..., n}, Ti∈TPublic}。

2.2 类型操作

该类型系统中定义的类型操作有:

(1) 如果T ≤ Public, 则conveys (T) =TPublic。

(2) conveys (C[T]) ={T′|T′ ≤ T}。

(3) Ontuple (T1, …, Tn) =T1×…×Tn。

(4) 如果T1 ≤ Public, T2 ≤ Public, 则Osenc (T1, T2) = Public。

(5) 如果T′ ≤ T, 则Osenc (T′, KSecret[T]) =Public。

(6) 如果T1≤Public, T2≤Public, 则Openc (T′, KSecret[T]) =Public。

(7) 如果T′ ≤ T, 则Openc (T′, EKL[T]) =Public。

(8) Oithn (T1×…×Tn) ={Ti}。

(9) 如果T ≤ Public, 则Osdec (Public, T) = TPublic。

(10) Osdec (Public, Ksecret[T]) ={T′|T′ ≤ T}。

(11) 如果T ≤ Public, 则Opdec (Public, T) = TPublic。

(12) Opdec (Public, DKSecret[T]) ={T′|T′ ≤ T}。

(13) Opdec (Public, DKPublic[T]) ={T′|T′ ≤ T}∪TPublic。

(14) 如果私钥k-的级别为DKL (T) , 则对应公钥k+的级别为EKL (T) 。

如果私钥k-的级别为Public, 则对应公钥k+的级别为Public。

(15) 如果T′ ≤ T, 那么OH (T) =Public。

(16) 若T既不是Public类型, 也不是C[T]类型, 则conceys (T) =Ø。

(17) 若Of (T1, …, Tn) 未定义, 则Og (T1, …, Tn) =Ø。

函数Of和Og给出了加密操作和解密操作的应用规则, 它们以类型作为参数, 返回的结果是加密操作f和解密操作g运行结果的类型。

2.3 类型规则

下面进一步给出基于扩展Spi演算类型系统的类型规则, 符号u表示名和变量, 符号T代表具体的类型。

· 关于环境的规则

|-¯Env

E|-udom (E) E, u:Τ|-Env atom

· 关于项的规则

E|- (u:Τ) EE|-u:ΤAtom

E|-Μ:ΤΤΤ'E|-Μ:Τ'Subsumption

E|-E|-Μ:ΤE|-Η (Μ) :Οhash (Τ) Ηash

E|-E|-Μ1:Τ1, E|-Μ2:Τ2E|-{Μ1}Μ2:Οsenc (Τ1, Τ2) Senc

E|-E|-Μ1:Τ1, E|-Μ2:Τ2E|-{Μ1}Μ2:Οpenc (Τ1, Τ2) Ρenc

E|-E|-Μ1:Τ1, E|-Μ2:Τ2E|-{Μ1}Μ2:Οsign (Τ1, Τ2) Sign

· 关于进程的规则

E|-E|-0Νil

E|-ΡE|-QE|-Ρ|QΡarallel

E|-ΡE|-!ΡReplication

E, a:Τ|-ΡE|- (υa) ΡRestriction

E|-Μ:ΤE|-Ν:ΤΤconveys (Τ) E|-ΡE|-Μ¯Ν.ΡΟutput

E|-Μ:ΤΤconveys (Τ) , E, x:Τ|-ΡE|-Μ (x) .ΡΙnput

E|-Μ:ΤE|-Ν:ΤifΤ=ΤthenE|-ΡE|-QE|-ifΜ=ΝthenΡelseQCond

E|-L:Τ1, E|-k:Τ2, ΤΟsdec (Τ1, Τ2) , E, x:Τ|-Ρ, E|-QE|-caseLof{x}kinΡelseQSdec

E|-L:Τ1, E|-k-:Τ2, ΤΟpdec (Τ1, Τ2) , E, x:Τ|-ΡE|-QE|-caseLof{[x]}k+inΡelseQΡdec

E|-L:Τ1, E|-k+:Τ2, ΤΟchecksign (Τ1, Τ2) , E, x:Τ|-ΡE|-QE|-caseLof[{x}]k-inΡelseQCheckSign

3 基于扩展Spi演算类型系统的安全属性

构建一个基于扩展Spi演算的类型系统的目的在于, 利用类型系统的特点分析密码协议的安全属性。本文主要是利用该类型系统证明协议的秘密性, 即如果一个描述完整协议的进程在该类型系统中是类型完善的, 那么该进程不会泄露任何秘密级别的数据。

在给出关于密码协议秘密性的定理之前首先需要证明几个引理:

引理1 如果存在E, E′|-M:T, E, x:T, E′|-M′:T′, 那么E, E′|-M′{M/x}:T。如果存在E, E′|-M:T, E, x:T, E′|-P, 那么E, E′|-P{M/x}。

证明 由函数Of (T1, …, Tn) 和Og (T1, …, Tn) 的定义。如果在环境E, E′中存在一个T类型的项, 那么使用该项替代具有相同类型的变量后对函数Of (T1, …, Tn) 和Og (T1, …, Tn) 的参数没有影响, 因此Of (T1, …, Tn) 和Og (T1, …, Tn) 返回值不变。所以, 对项M′而言, 替代后的项M′{M/x}仍保持与项M′有相同类型;对进程P而言, 如果P在环境中是类型完善的, 那么进程P{M/x}也是类型完善的。

引理1第一句话的含义是如果项M′中含有变量x, 在x具有确定类型的情况下, 使用环境中具有相同类型的项M代替x, 项M′{M/x}的类型不变。第二句话的含义是假设进程P在一个环境中是类型完善的, 那么如果P含有变量x, 在x具有确定类型的情况下, 使用环境中具有相同类型的项M代替x后所得进程P{M/x}在该环境中仍是类型完善的。

引理2 如果E|-P, P≡Q, 那么E|-Q。

证明 从P≡Q情况的归纳可证明该结论。

例如对结构一致性关系:

(υa1) (υa2) P≡ (υa2) (υa1) P a1≠a2

若E|- (υa1) (υa2) P, 由 (Restriction) 规则可知存在E, a1:T1, a2:T2|-P。

定义E′@E, a1:T1, a2:T2, E″@E, a2:T2, a1:T1。

显然E′与E″是一样的, 所以E|- (υa2) (υa1) P。

结论成立。

同样, 对所有结构一致性情况都可证明该定理是正确的, 引理2成立。

引理3 如果E|-P, P f Q, 那么E|-Q。

证明 该引理的证明需要对P f Q出现的情况进行归纳。

下面举出几种较复杂的情况, 证明如下:

· Red I/O情况下, a¯Μ.Q|a (x) .ΡfQ|Ρ{Μ/x}

假设E|-a¯Μ.Q|a (x) .Ρ, 由Parallel规则可知, 存在E|-a¯Μ.Q和E|-a (x) .P。由E|-a (x) .P和input规则可得:存在E|-a:T, ∀T′∈conveys (T) , E, x:T′|-P。由E|-a¯Μ.Q和output规则可得:存在E|-a:T, E|-M:T′, T′∈conveys (T) , E|-Q。由引理1可得, E|-P{M/x}。由Parallel规则可知E|-Q|P{M/x}。

· 对Red Cond1, if M=M then P else Q f P。

· 假设E|-if M=M then P else Q, 由cond规则, 存在 E|-M:T, E|-if T=T then P 和E|-Q, 因此满足E|-P。

· 对Red Sdec1, case {M}k of {x}k in P else Q f P{M/x}。

设E|-case {M}k of {x}k then P else Q, 由Sdec规则可知:E|-{M}k:T1, E|-k:T2。由解密函数的属性可知, ∃T∈Og (T1, T2) , 满足E|-x:T。

由函数Sdec () 的定义Sdec (N1, N2) =N可得, 存在替代σ满足{M}k=σN1, k=σ (N2) , M=σ (N) 。记N1和N2中所有变量为Xj, 则σxj为项{M}k和项k的子项, 设σxj的类型为Txj, 即E|-σxj:Txj。假设E′为所有Xj到类型Txj的环境, 则存在E′|-N1:T1和E′|-N2:T2。因为sdec (N1, N2) =N, 由解密函数的属性可知, ∃T∈Og (T1, T2) , 满足E′|-N:T。得E|-M:T。由于E, x:T|-P, 由引理1可得:E|-P{M/x}。结论成立。

Red Checksign1与Red Pdec1情况类似, 此处不再详细叙述。

通过上述分析可知, 引理3结论成立。

引理3说明如果一个进程是类型完善的, 那么该进程简化后的进程也是类型完善的。

引理4 对进程P, 如果fn (P) ⊆{a1, ..., an}, fv (P) ⊆{x1, ..., xm}, Ti≤Public, i∈{1...m}, Ti≤Public, i∈{1...m}, 则a1:Public, ..., an:Public, x1:T1, ..., xm:Tm|-P。

证明 首先证明对项M的情况, 即假设fn (M) ⊆{a1, ..., an}, fv (M) ⊆{x1, ..., xm}, Ti≤Public, i∈{1...m}, 那么a1:Public, ..., an:Public, x1:T1, ..., xm:Tm|-M:T。M的形式有以下几种:

· 若M为名和变量, 由atom规则, 结论显然成立。

· 若M={x}y, 则x:public, y:public。由加密函数属性可知x:public, y:public|-{x}y:T, T∈TPublic。

· 公钥加密, 数字签名, 以及哈希函数的证明类似于{x}y。

假设存在进程P, fn (P) ⊆{a1, ..., an}, fv (P) ⊆{x1, ..., xm}, i∈{1...m}, 满足:

E@a1:Public, ..., an:Public, x1:T1, ..., xm:Tm, E|-P

对所有可能进程形式的进行归纳:

· 空进程0是满足该条件的, 因为由Env Ø规则可知空环境是形式完善的。

· 对输出进程Μ¯Ν.ΡΜ和N的类型为Public

由Output规则可得:

E, M:Public, N:Public|-Μ¯Ν.Ρ

因此进程Μ¯Ν.Ρ满足:

a1:Public, ..., an:Public, x1:T1, ..., xm:Tm, M:Public,

N:Public|-Μ¯Ν.Ρ

· 对输入进程M (x) .P, M的类型为Public, 变量x的类型为Tx, Tx≤Public。

由Input规则可得:E, M:Public, x:ΤΡublic|-Μ¯Ν

因此进程M (x) .P满足:

a1:Public, ..., an:Public, x1:T1, ..., xm:Tm, M:Public, x:TPublic|-M (x) .P

对其它进程结构的归纳同上, 证明情况类似, 本文不再详述, 因此引理4结论成立。

引理4说明对所有进程, 如果进程中出现的所有自由名和变量的类型为Public, 那么该进程是类型完善的, 也就是说所有描述攻击者的进程都是类型完善的。

在上面四个引理的基础上, 下面给出基于扩展Spi演算类型系统关于秘密性的定理。

定理 (秘密性) 闭进程P, 假设E|-P, E|-s:Secret, S={a|E|-a:T, T∈TPublic}, 那么进程P从S中保持了s的秘密性。

证明 反证法, 假设P没有保持s的秘密性,

由秘密性的定义可知, 一定存在进程Q使得P|Q在信道c上输出了s, c∈S。

假设Q=Q′{a′1/x1, ..., a′m/xm}, 其中fn (Q′) ={a1, ..., an}, fn (Q′) ⊆S, fv (Q′) ⊆{x1, ..., xm}, a′i∈S, i∈{1, ..., m}。

由进程输出的形式化定义可得, Ρ|Qf*RRc¯s|R

因为fn (Q′) ⊆S, 由S和TPublic的定义可知, E|-aj:Public, j∈{1, ..., n}。

同理, 设E|-a′i:T′i, i∈{1, ..., m}, 满足T′i≤Public。

由引理4可得, a1:Public, ..., an:Public, x1:T′1, ..., xm:T′m|-Q′。

由引理1可得, E|-Q′{a′1/x1, ..., a′l/xl}, 即E|-Q。

因为E|-P和E|-Q, 由parallel规则可得E|-P|Q。

因为P|Qf*R, 由引理3可知, E|-RE|-c¯s|R

因为c∈S, 且E|-c¯s, 由Output规则可得E|-s:T, 且T∈TPublic, 与条件矛盾。

因此假设不成立, P从S中保持了s的秘密性。

定理成立。

定理表明了该基于扩展Spi演算的类型系统, 如果在一个环境E中闭进程P是类型完善的, 名s的类型不属于TPublic, S为具有TPublic中类型的所有名的集合, 那么在环境E中进程P保持s的类型。也就是说, 闭进程P保持了所有类型不属于TPublic的名的秘密性。定理是基于扩展Spi演算的类型系统对密码协议秘密性进行分析的基础。

集合S形式化的描述了攻击者的知识。本文中所有关于进程P保持了s的秘密性的结论, 均是指在一个确定S的条件下P保持了s的秘密性。

4 类型系统实例对安全属性的验证

下面通过一个具体密码协议的实例, 利用基于扩展Spi演算类型系统的类型规则, 结合扩展Spi演算对该协议的形式化描述来介绍类型系统对密码协议秘密性的分析方法。

该协议包含如下三条消息:

消息 1:A→B:{k, kA+}k+B

消息 2:B→A:{k, kAB}k+A

消息 3:A→B:{s}KAB

该协议的主要目的是在用户A、B之间建立会话密钥KAB, 并使用该密钥传递秘密的消息s。

由于本文中类型系统主要是针对密码协议的秘密性进行分析, 因此在使用扩展Spi演算对该协议的描述中没有加入begin和end事件。协议的具体描述如下:

A= (υk) e¯{[k, kA+]}kB+.e (z) .casezof{[x, y]}kA+in

ifx=kthene〈{s}y〉

B=e (z) .casezof ({[x, y]}kB+) in (υkAB) e¯{[x, kAB]}y.

e (z′) .case z′ of {u}kAB in 0

Ρ= (υkA-) (υkB-) e¯kA+.e¯kB+. (A|B)

使用基于扩展Spi演算的类型系统可对上述协议的秘密性证明如下:

首先, 定义环境E为:E@s:Secret, e:Public。

由于KAB是用于加密Secret级别的对称密钥, 因此其类型为KSecret[Secret]。

同样由用户A和B的公钥k+A和k+B加密内容的类型可知其类型为:

TK+A@EKPublic[Secret×KSecret[Secret]]

TK+B@EKPublic[Secret×EKPublic[Secret×KSecret[Secret]]]由类型操作 (14) 可得其对应私钥的类型分别为:

TK-A@DKPublic[Secret×KSecret[Secret]]

TK-B@DKPublic[Secret×EKPublic[Secret×KSecret[Secret]]]在E的基础上, 引入环境E′的定义如下:

E′@E, sKA:DKPublic[Secret×KSecret[Secret]]

sKB:DKPublic[Secret×EKPublic[Secret×KSecret[Secret]]]

pKA:EKPublic[Secret×KSecret[Secret]]

pKB:EKPublic[Secret×EKPublic[Secret×KSecret[Secret]]]

因为TK+A和TK+B为Public类型的子类型, 因此TK+A∈conveys (Public) , TK+B∈conveys (Public) 。

由Restriction规则, 要证明P在环境E中是类型完善的, 需先证明 (A|B) 在环境E′中是类型完善的。

下面证明E′|-A:

由Penc规则可得:

E′, k:Secret|-{k, kA+}k+B:Public

因此, 由output规则可知:e¯{k, kA+}kB+是类型完善的。

对输入进程e (z) , z可以是Public类型的任意子类型, 因此需要先证明case z of{x, y}kA+thene¯{s}y在一个环境中是类型完善的。

即需要证明:

E′, k:Secret, x:Tx, y:Ty|-if x=k thene¯{s}y

而Tx和Ty存在如下两种可能:

Tx≤Secret, Ty≤KSecret[Secret]或Tx≤Public, Ty≤Public

对第一种情况, 因为x和k的类型都是Secret, 且e¯{s}y是类型完善的, 因此cond规则的条件满足, 即E′, k:Secret, x:Secret, y:Secret|-if x=k thene¯{s}y; 对第二种情况, 因为x和k不是相同类型, 所以if x=k thene¯{s}yf0, 而空进程0是类型完善的, 因此E′, k:Secret, x:Tx, y:Ty|-if x=k thene¯{s}y也是成立的。

所以E′, k:Secret, x:Tx, y:Ty|-if x=k thene¯{s}y是成立的。

由Pdec规则, E′|-case z of {[x, y]}k+A in if x=k thene¯{s}y

由上分析可知, 进程A在环境E′中是类型完善的。

同样可证进程B在环境E′中也是类型完善的。

由Parallel规则, 进程 (A|B) 在E′中是类型完善的。

因此由Restriction规则可知, 进程P在环境E中是类型完善的。

由定理1可知, 进程P在环境{e}中保持了s的秘密性。

5 总 结

本文通过对Spi演算语法和语义进行扩充和改进, 获得了扩展Spi演算语法。并利用该扩展Spi演算构造了一种类型系统, 定义了该类型系统中的基本类型, 类型规则以及类型操作。通过该类型系统, 研究了类型检测对密码协议保密性的分析方法, 并以一个典型的三步协议为例, 利用该类型系统证明了其保密性。该类型系统也可以用于对一些较复杂安全协议的保密性验证。

摘要:探讨使用一组形式化的规则来验证密码协议安全属性的方法。这些规则基于传统的等级和信息流的思想, 通过将其扩展后用来处理密码协议中的并发进程。通过这些规则可以向用户提供一种检测方法, 该方法用于判断:如果协议通过了检测, 则可以认为该协议没有泄漏任何秘密的消息。

关键词:信息安全,密码协议,安全属性,秘密性

参考文献

[1] Abadi M, Blanchet B.Analyzing Security Protocols with Secrecy Types and Logic Programs[J].Journal of the ACM 52.1, 2005:102-146.

[2] Abadi M, Blanchet B.Computer-Assisted Verication of a Protocol for Certied Emai[J].Science of Computer Programming 2005, Special issu SAS`03.

[3] Laud P.Handling Encryption in an Analysis for Secure Information Flow[C]//P.Degano, editor, Programming Languages and Systems, 12th European Symposium on Programming, ESOP'03, volume 2618 of LNCS, pages 159{173.Springer, Apr.2003.

[4] Abadi M.Secrecy by typing in secureity protocols[J].Journal of the ACM, 1999, 46 (5) :749-786.

[5]Abadi M, Blanchet B.Secrecy Types for Asymmetric Communication[C]//F.Honsell and M.Miculan, editors, Foundations of Software Sci-ence and Computation Structures (FoSSaCS 2001) , volume 2030 ofLecture Notes on Computer Science, pages 25--41, Genova, Italy, Apr.2001.Springer Verlag.

[6]Abadi M, Grodon A D.A calculus for Cryptographic Protocols:The Spicalculus[J].In theProceedings of the Fourth ACMConference on Com-munication Security, 1997, 04.

[7]Volpano D, Irvine C, Smith G.A sound type system for Secrure flowa-nalysis[J].Journal of Computer Security, 1996, 4:167-187.

协议验证 篇2

JS 错误

DOM 简介

JavaScript. 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证,

JavaScript. 表单验证

JavaScript. 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。

被 JavaScript. 验证的这些典型的表单数据有:

用户是否已填写表单中的必填项目?

用户输入的邮件地址是否合法?

用户是否已输入合法的日期?

用户是否在数据域 (numeric field) 中输入了文本?

必填(或必选)项目

下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):

function validate_required(field,alerttxt)

{

with (field)

{

if (value==null||value==“”)

{alert(alerttxt);return false}

else {return true}

}

}

下面是连同 HTML 表单的代码:

Email:

E-mail 验证

下面的函数检查输入的数据是否符合电子邮件地址的基本语法,

意思就是说,输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @ 之后需有至少一个点号:

function validate_email(field,alerttxt)

{

with (field)

{

apos=value.indexOf(“@”)

dotpos=value.lastIndexOf(“.”)

if (apos<1||dotpos-apos<2)

{alert(alerttxt);return false}

else {return true}

}

}

下面是连同 HTML 表单的完整代码:

Email:

完成一个较为完整的用户注册页面。

1:要求用户输入用户名时只能够输入英文、数字和下划线

2:要求用户输入的密码和确认密码必须一致

3:要求用户上传本地磁盘中的一个图片文件作为头像

4:要求用户输入验证邮箱,通过javascript代码验证邮箱格式是否正确

5:要求页面实现验证码功能,点击“注册”按钮后,无论是否完成注册,验证码都能够自动刷新

PPP协议中的验证分析 篇3

随着网络应用的普及,我们需要保证网络上信息的安全性,只允许被授权的用户访问网络信息,是一种安全解决方法。PPP (Point-to-Point Protocol点到点协议)就是为在两个对等实体间传输数据包建立简单连接而设计的协议。这种连接提供了全双工操作,并且假定数据包是按顺序传递的。

PPP协议中提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。一个典型的链路建立过程分为创建、认证和网络协商三个阶段。其中远程用户登录到服务器进行身份认证就变得很重要。因此人们提出了多种身份认证的方法,最常用的认证协议有口令验证协议(PAP, Password Authentication Protocol)和挑战握手验证协议(CHAP, Challenge-Hand-shake Authentication Protocol)ㄢ

1、PAP协议

PAP是一种简单的明文验证方式。用户端发起认证请求,服务器端要求用户提供用户名和口令,PAP以明文方式返回用户信息。通过二次握手验证登录用户的身份。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与服务器端建立连接获取服务器提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。

2、CHAP验证协议

CHAP是一种加密的验证方式,如图1所示,在三次握手中通过互验,并采用加密措施验证登录用户身份。CHAP能够避免建立连接时传送用户的真实密码。从而进一步保证了网络的安全性。

二、CHAP认证分析

1、MD5算法

在CHAP认证中用到了MD5算法,而MD5算法是杂凑函数的应用,杂凑函数(hash function)是将任意长的数字串M映射成一个较短的定长输出数字串H的函数,以h表示,h (M) 易于计算,称H=h (M) 为M的杂凑值,h是多对一映射,因此不能从H求出原来的M,但可以验证任一给定序列M'是否与M有相同的杂凑值。MD5的计算过程简单概括如下。

1)对明文输入按512位分组,最后要填充使其成为512的整数倍。且每一分组又被划分为16个32位的字。

2)经过了4轮的压缩处理,各轮逻辑函数不同,每轮又要进行16步迭代运算,4轮共需64步完成,算法的输出由4个32位字组成,将这4个32位字级联后将生成一个128位消息摘要。

2、CHAP协议认证过程

CHAP协议认证过程简单概括如下。

1) S==>A:CH

PPP连接建立阶段完成后,服务器向客户端用户A发送一个随机数CH,作为"挑战"消息,并保存该CHㄢ

2) A==>S:A, H (s||CH)

客户端用户接收到CH后,计算H (s||CH),然后将(A, H (s||CH))作为应答发送给服务器Sㄢ

3) S==>A:ACK

服务器S收到A发送来的应答消息后,根据它存储的用户A的口令s和CH计算H (s||CH),并与接收到的消息摘要比较。如果两者相等,则给用户发送认证成功的回执ACK;否则,断开与用户的连接。

4)随机认证客户端

认证成功后,服务器可能会不定时地发送新的"挑战"消息给客户端用户,重复步骤1~3,以便在通信过程中随时验证用户身份的合法性。

其中A为用户身份标识;S为认证服务器的身份标识;CH用作"挑战"消息的随机数。H (m) 用MD5算法计算机消息m的消息摘要;||为连接操作;S==>A:CH表示从S向A发送随机数CHㄢ

CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用询问口令以杂凑算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每次验证任意生成一个询问字串来防止受到重复攻击。在整个连接过程中,CHAP将不定时的向客户端重复发送询问口令,从而避免第三方冒充远程客户进行攻击

3、CHAP的安全性

CHAP协议认证过程的安全性与下列因素有关:

1)使用的杂凑函数具有足够的密码强度,即它在计算上是安全的;

2)用来计算应答的用户口令具有足够的强度来抵抗字典攻击;

3)服务器发送到客户端的"挑战"消息是真正随机的,攻击方不可预测。还假设同一个"挑战"消息在一个时间段尤其是在重启动后不能发送两次,即随机数池足够大。

但是在CHAP协议的实际使用过程中,用户为了便于记忆,往往使用容易记忆的口令,这样的口令不能有效地抵抗攻击者的字典攻击;而在服务器端,用户的口令是以明文的形式存放,如果攻击者攻破服务器,那么就能轻而易举取得用户的口令。这些都是CHAP协议使用过程中的隐患。

三、PPP协议在网络配置中的实现

以H3C设备为例,拓扑图及CHAP验证主要配置命令如图2所示。

其中,RTA是客户端,RTB是服务器端,PPP作为具有CHAP认证功能的数据链路层协议,为网络的层的包传送提供服务。

四、结束语

PPP的验证为广域网提高了安全性能,为网络用户有了进一步的安全保证,其算法通过软件便可高速实现。PPP协议不仅可以应用在互联网中,通过路由器配置实现;也可以在单片机等设备中设置实现。

摘要:由于网络安全问题越来越受到人们的关注, 本文对PPP协议中的认证协议作了介绍, 对其中的CHAP协议介绍了算法原理, 对安全性进行了分析, 并结合H3C设备给出了在路由器配置实现CHAP的实例。

关键词:PPP协议,验证,CHAP协议,MD5算法

参考文献

[1]刘建伟, 王育民.网络安全-技术与实践.北京:清华大学出版社, 2005.6

[2]赵艳玲.计算机网络案例教程.北京:北京大学出版社, 2008.7

协议验证 篇4

一、短信验证码服务具体应用功能:

手机短信验证码服务应用范围广泛,比如:网站用户注册、用户安全认证、手机号验证、手机注册开通服务、网站产品、订单发货、促销提醒、网站客户留言、在线支付短信提醒、其他一些可以通过手机短信来认证的应用

二、时效性与自动化的工作方式:

短信/验证码接口可实现以上应用功能的全天候、全自动化运行。只要有用户进行注册、验证、认证等操作,系统将自动触发验证码的发送。

三、接口申请/接入步骤:

1、接口提供方提供相应的接口文件和接入说明,同时提供全程的技术支持,有问题可以协助解决。

2、用户接入网站或APP应用,正式使用。

三、具体应用案例:

协议验证 篇5

两岸《标准检测认验证合作协议》的主要内容分析

在性质上, 两岸《标准检测认验证合作协议》属于类似ECFA的架构协议, 系为两岸针对标准、计量、检验、验证和消费品安全等五大领域建立合作机制做出方向性、原则性的规定, 同时制订出未来合作互动的组织安排。具体而言, 两岸《标准计量检验认证合作协议》将建立标准、计量、检验、验证认证和消费品安全等五大领域的合作机制。兹简述其具体工作项目如下:

两岸共通标准合作

促进两岸合作制定推动共通标准, 将有助于缩减标准内容差异, 使两岸产业界于设计、生产相关商品时能提前将相关标准资讯纳入考量, 通过产品规格标准的合作, 降低成本与消除贸易障碍, 以活络两岸商品流通与拓展商机, 并协助产业升级。其具体工作项目包括建立标准资讯交流平台, 以及掌握台湾各机构组织所推动的两岸标准沟通管道, 并协调、配合办理两岸共通标准合作事宜, 推动两岸共通标准交流研讨与标准制定相关行动等。

两岸检测验证交流合作

由于台湾高科技产品与检测技术较为成熟, 建立两岸检测验证交流合作将缩小两岸产品检测及验证程序等的差异性, 减少厂商重复检测及验证资源的耗费, 促进两岸双方产品的流通性, 进而为产品品质把关。其具体工作项目包含建立两岸检测验证资讯交流平台, 进行有关技术法规及检测验证资讯交换、推动两岸检测验证交流合作, 以及依据国际符合性评鉴机制的运作原则与要求, 建置两岸商品检验源头管理合作机制, 以建立双方相互之间对产品测试、工厂检查报告及品质管理系统验证证书的信心。

两岸认证合作机制

依国际符合性评鉴架构, 建立两岸试验室认证机构, 特别是台湾的认证基金会与中国合格评定国家认可委员会的合作管道, 推动商品检测及认验证机制的相互承认, 加强两岸认证技术交流, 使两岸检测报告及验证证书皆能获得双方主管机关或使用者接受, 并增进两岸经贸活动的便捷化。其中具体工作项目, 尚包含建立两岸认证机构交流平台, 以及运用认证机构交流平台, 共同发展具弹性且可减少符合性评鉴成本的认证方式, 进而使得双方所认证的实验室、检验机构及验证机构的报告或证书能够获得彼此承认等。

促进两岸法定计量及量测标准合作

促进两岸法定计量及量测标准交流, 推动法定计量交流及度量衡器测试实验室的相互合作, 协助岛内传统度量衡业者根留台湾, 生产布局中国大陆。此外更整合两岸检测资源, 强化岛内产业发展所需的量测基础建设, 有助于未来中国大陆能基于相同计量基础而直接承认台湾的检测报告。在具体合作事项上, 包含建立计量资讯交流平台、推动两岸法定计量技术交流合作, 以及促进两岸量测标准实验室交流合作, 以增进两岸量测标准的相容性。

建立两岸消费商品监督预警机制

建立两岸权责机关对话管道, 推动两岸市场监督合作, 进行消费商品安全资讯交换、不安全消费商品讯息通报及市场监督管理等法规合作, 将有效防止不安全商品输入台湾市场, 落实源头管理, 确保消费者生命财产的安全。其中主要工作项目, 包含推动建立两岸消费商品安全资讯交流平台, 以了解、分析两岸市场监督制度及相关法规、执行单位、分工等资讯, 并安排市场监督人员互访、经验分享、培训、短期研究, 进而建置两岸市场监督资讯共通平台, 以及推动建置两岸不安全消费商品快速通报机制, 藉由双方不安全消费商品资讯通报联络窗口, 就重大突发事件指定紧急联络机关相互通报, 并建置两岸不安全消费商品资讯通报网及建构快速通报协处机制, 并掌握已输入消费商品流向, 进而即时采取停产、下架、召回等相关必要措施。

两岸《标准检测认验证合作协议》的重要性分析

标准、计量、检验、验证和消费品安全这五大领域都是两岸经贸进一步密切互动的关键配套措施。以标准来说, 固然无论是国际或国家标准, 原则上都属自愿采用性质, 但厂商自愿适用标准进行生产后, 便能开发出具有相容性且能够互通的产品, 降低研发与生产成本, 同时也可确保产品的品质与增加产品的价值与流通性。另一方面, 自愿性标准也是许多强制性法规的基础。例如在强制性商品检验制度中, 便常常需要纳入相关标准成为法规的一部份, 作为评估商品是否符合卫生、安全和环境的要求的内容。再如当局采购的规格要求, 也常会引用相关标准作为依据。从这个角度观察, 标准虽然是自愿性质, 但却是确保产品品质、增加产品价值的软基础设施。

虽然目前已有许多国际、国家或产业标准可资依循, 且WTO相关规范也要求应以国际标准为依归, 但对于尚未形成标准的新兴产品, 若能通过各种机制, 引导形成中的标准朝向对自身产业有利的方向发展 (最好包含自己所拥有的专利权) , 以享有“先行者优势”, 向来为美日等国重要的经贸策略。观诸两岸的产业发展结构, 对于如LED照明、数字电视、TFT液晶面版等尚未形成国际标准的新兴利基产品, 若能通过两岸合作机制, 发展出两岸“共通”标准, 即在同一技术架构下, 仍可就自身产业需求制定可相容、互通的标准, 并先于欧美日韩等国家推动形成国际标准, 则小至两岸经贸, 大至国际市场, 台湾厂商除可在产品销售获取优势外, 且可藉由全球专利授权扩大利益 (使用内含专利的标准时, 仍须取得权利人授权) , 更有助于这些新兴产品通过两岸与全球的强制检验与政府采购。

就产业发展而言, 通过两岸合作参与标准制定工作及开发大陆内需市场可协助产业升级, 使台湾产业摆脱过往OEM或ODM的代工型态。两岸可针对尚未形成国际标准且具备合作利基的新兴科技产业进行标准合作, 帮助台湾产业拓展大陆市场, 形成优势互补的产业链, 进而布局全球、分散风险。但目前台湾产品输往大陆市场时, 由于在检测标准、检测程序、认验证及市场监督等符合性评鉴体系基础架构运作机制上仍存在许多差异, 且各主管机关间也缺乏对话管道, 因而常需重复检验或验证, 平白耗费不少时间与成本。故若能藉由验证认证合作来降低两岸贸易的技术性障碍, 将有助于台湾产品加速拓展大陆庞大内需市场。而在此一过程中, 计量技术的交流与合作, 也可收提高两岸量测技术水准, 进而促进计量产业发展的效果。特别是通过计量技术提升精密仪器的精确度与稳定度, 则是提升检验服务, 以及维持高科技产业品质稳定与可靠的关键。

其次, 近年来各国和地区通过双边合作机制, 强化计量与标准等事项的双边合作的机制, 成为一种常见的发展。如《美国与加拿大计量与标准合作备忘录》、《美日测量合作备忘录》等即为显例;日本也与中国大陆通过中日计量标准合作委员会的架构, 建立起进行定期对话与合作关系;而美国也与中国大陆于2008年签订了《中美关于计量、标准和认证领域合作议定书》。由此可知, 国际间双边计量与标准合作机制的盛行。

事实上, 在检验与认验证合作方面, 通过双边 (如相互承认协定) , 以及与区域合作机制 (如APEC的电信相互承认机制) 等安排, 早已为国际间认为具有弹性且可减少符合性评鉴成本的方式。例如台湾与美国、加拿大、澳大利亚、新西兰、新加坡等签署相互承认协定, 相互承认强制性领域的电机电子产品符合性评鉴结果 (测试报告和证书) ;与美国消费产品安全委员会 (CPSC) 签署备忘录, 进行不安全产品资讯交换;并分别与若干国家签署一般性合作协议/备忘录, 交换分享相关经验与资讯, 并进行技术交流, 均属于通过双边协定降低不必要成本, 促进贸易的例子。

最后, 在消费安全方面, 近年来中国大陆不安全消费商品问题严重, 往往造成消费者的恐慌与不安, 并持续引发消费者心理恐慌的连锁效应。随着两岸经贸关系的正常化, 为避免再度发生不安全消费商品流通造成民众恐慌等类似事件, 确有必要推动两岸消费商品安全合作。除了一方面加强外贸商品管制及市场抽查等措施外, 两岸如能建立起市场监督法规合作机制, 促进不安全消费商品讯息交流, 以落实源头管理, 将可有效降低不安全产品危害事件的发生。事实上, 欧盟与中国大陆在2006年便已建立类似合作机制 (也即欧盟消费商品快速警示系统, 简称RAPEX-China制度) 。在RAPEX-China机制下, 双方除资讯交换外, 中国大陆尚将依据欧盟的通报案件进行调查, 追踪其境内不安全商品来源, 并自出口端即采取如强化出口检验与限制出口等必要预防措施。

此外, 大陆相关强制性检测验证法规、制度比台湾繁复, 权责分工及执行方式也有所不同, 两岸如能建立商品资讯交流平台, 进行双方消费商品安全有关法规、行政措施及不安全商品资讯交换, 将可更加了解相关不安全消费商品处理机制, 使双方能即时采取加强检验措施。

依据前述分析, 倘若两岸能在标准、计量、检验、验证认证、消费品安全领域进行双边合作, 不仅将可强化双方对彼此法规制度的了解, 也可有效回应产业需求, 也建构消费商品安全合作的机制。特别是任何经贸互动关系原本就是利弊互见的发展, 而除产业利益外, 消费者权益的确保, 更是必须纳入考量的因素。因此, 两岸除了市场开放外, 还必须通过许多配套措施, 方足以建构一个兴利防弊的经贸关系。就算没有ECFA, 两岸商品在WTO架构下正常互动, 仍然需要建立这样的合作机制, 以消除不必要的贸易成本与障碍, 并为消费者权益把关。

总之, 为进一步落实两岸《标准检测认验证合作协议》的价值, 建议除在推动过程中, 应通过如定期公告技术讨论文件、标准草案、开放参与技术讨论等方式, 强化制订过程中各阶段的透明性, 以强化程序的正当性, 强调产业参与及透明化, 以避免双方因公权力介入引发产业争议外, 合作的范围也应以具有强烈潜在商机与发展潜力的商品为优先考量, 并应以产业界已形成共识的产品, 通过由下而上的方式, 由产业界通过对话机制提出范围, 并宜避免由当局通过由上而下的方式选择, 以维持其中立性, 避免发生“选择赢家”后所生的排挤效果与外界的质疑。

协议形式化描述与一致性验证研究 篇6

1 SDL、TTCN概述

目前协议的形式化描述语言主要有Estelle、LOTOS和SDL。其中Estelle是pascal语言的扩充,是面向协议实现技术的语言。LOTOS是面向协议验证技术的语言,抽象级别较高。而SDL则是一种基于扩展状态变换图和抽象数据类型的混合技术,采用事件驱动的激励响应机制来描述系统,特别适合于描述协议。

70年代初期,CCITT开始研究协议的规范与描述语言SDL。1976年CCITT提出了SDL的初步定义文本———建议Z.101-Z.103,之后进行了多次修改,由非形式化版本进行到了形式化版本,它包括两种等价的表达形式:图形形式SDL/GR和语法形式SDL/PR,其中SDL/PR采用扩展的巴科斯—诺尔范式表示。SDL采用层次结构来对系统进行描述和说明。系统是最高级实体,由系统实例(System Instance)来表示,在这一层次上表示的是整个系统与外部环境的交互情况。系统可以分为多个功能块(Block),功能块表示系统内部功能相对独立的几个模块,它们之间通过信道(Channel)相连。根据系统规模的大小,每个功能块还可以分为子功能块或进程(Process)。进程是系统行为表示的基本单元,一个进程就是一个有限状态机(FSM)。SDL的这种层次结构特别适合用来描述开放系统互连参考模型,即能够很好的建模通信协议。典型的SDL协议描述的层次结构如图1所示。

树表结合表示法(TTCN),顾名思义,就是采用以树和表格为表现形式的测试表示法,其中表格主要用于数据类型、原语、协议观察点、约束等,树则用于描述测试集、测试例、测试步。根据ISO/IEC 9646的定义,TTCN满足以下几项需求:第一点,测试系统能够定义、构造发送和接收被测试实体(IUT)的抽象服务原语(ASP);第二点,能够定义和构造嵌入在ASP中的协议数据单元(PDU);第三点,在指定控制和观察点(PCO)上,能够规定ASP的发送或接收顺序和能够构造测试例[2]。

2 协议的形式化描述

描述一个协议有时候可以等同于构造一个协议,要精确地描述好一个协议应该要遵循以下步骤:协议环境分析包括用户要求、通道性质、工作模式等;协议功能分析包括根据环境分析的结果,明确协议应具备的功能;协议的元素分析包括服务原语和时序、协议数据单元和交换时序、协议状态、协议事件、协议变量、协议的动作和谓词等;最后使用形式化描述语言建模协议[1,2]。具体到使用SDL语言时,由于SDL语言本身的特性以上一些步骤可以相应简化。拿协议的元素分析来说,由于SDL语言是以激励响应的方式来描述系统的,因此协议的元素分析只需要分析协议的激励和响应事件即可。下面以AB(Alternating Bit)协议为例说明协议形式化描述过程。

2.1 协议形式化描述过程

1)AB协议是一个数据链路层协议,上层用户是网络层。

2)通道为永不会断路的全双工通道。报文在通道中可能丢失,报文内容可能出错,但是一个报文重复发送n次,至少有一次是正确的。确认报文不会丢失,不会出错,不会重复。

2.2 协议功能分析

1)将网络层用户要发送的报文编码为数据帧传递给物理层通道,并通过超时重发机制保证报文可靠传输到目的地。

2)将从物理层通道接收的数据帧解码为报文,报文验证后若正确就交给网络层用户,否则丢弃报文。

2.3 协议的元素分析

1)激励事件包括从网络层输入的报文(FromNetworkLayer)和从物理层输入的数据帧(FromPhysicalLayer)。

2)响应事件包括向网络层提交的报文(ToNetworkLayer)和向物理层输出的数据帧(ToPhysicalLayer)。

2.4 协议的SDL/GR描述

根据前面的分析,结合典型的SDL/GR协议描述的层次结构,建立AB协议的SDL/GR描述就变得很模式化。首先建立系统实例,这是最高级的抽象描述只需要描述出和上层用户的激励响应(输入输出)信号即可。然后套用典型层次结构图,将(n)层用户描述为AB协议的上层用户网络层实体、(n)层协议描述为协议实体、(n-1)层通道描述为物理层实体。最后按照协议功能,实现每一个实体的进程描述。

2.4.1 系统实例描述

系统实例描述如图2所示。

使用系统实例描述了协议系统和上层用户的交互作用。从用户看来,只关心数据报文的发送和接收,协议系统则负责报文的可靠传递。

2.4.2 典型层次结构描述

典型层次结构描述如图3所示。

图中C1是用以模拟用户层的测试观测点,C2是用来控制信道丢包特性的测试观测点。

2.4.3 进程级描述

进程级描述如图4所示。

这里对通道描述做一点说明:lose_next是用来控制信道特性的信号量,该信号使得一致性测试时可以控制信道的丢包特性。协议实体和上层用户的进程描述与此类似不再赘述。

3 协议的一致性验证

协议建模完成后,就可以对系统进行一致性测试了。不同的测试方法大体上可以分为两类。一类称为“黑盒”测试,此时被测系统(IUT)从外面几乎看不到。该方法将适当的输入事件或向量混合在一起激励IUT,根据从外部观察到的反应来评估系统的性能,它将IUT显示的实际结果记录下来,与我们所期望的性能相比较,如有任何差异则说明存在错误,产生的根源是协议不满足一致性。另一类称为“白盒”测试,即监控被测系统的内部结构,以便找出源代码出错位置。一般来说,采用黑盒测试和白盒测试相结合是最有效的方法。TTCN的测试是一种典型的黑盒测试,把整个IUT看作一个测试实体来考虑[2]。

在进行一致性测试之前先简单介绍一下用到的几个概念:采用TTCN作为测试环境,TTCN与IUT之间的接口称为测试观测点PCO,运行测试用例,通过观测和检查PCO的服务原语(ASP)和协议数据单元(PDU)的正确性来达到验证测试例的正确性。在TTCN中测试用例的编写流程包括类型声明、约束声明、PCO声明、ASP声明、PDU声明、测试用例声明和行为定义。具体的协议一致性验证的过程是通过编写测试用例,使用SDL和TTCN的协同仿真功能来进行测试。这里用到两个测试用例如表1所示。

测试用例TC_01针对信道没有丢包的情况,测试用例TC_02针对信道出现丢包时的情况。如果通过仿真最后能够到达PASS状态,那么就说明协议达到了测试用例所要求的一致性。通过协同仿真,跟踪消息时序图(MSC)我们还能够清楚的观察到协议内部的执行流程。测试用例TC_02的消息时序图如图5所示。

4 结束语

本文主要介绍了基于SDL的协议形式化描述以及基于TTCN的协议一致性验证,通过AB协议为例给出了给出了协议形式化描述与一致性验证的一般方法。

参考文献

[1]International Engineering Consortium(2001),Specification and Description Language(SDL)[EB/OL].http://www.iec.org,Telelogic.

协议验证 篇7

节点自身定位是整个无线传感器网络(WSN文献[1][2][3])应用的一个支撑技术之一,由于节点自身定位过程容易遭受到来自内部和外部的攻击,又由于WSN节点自身资源的限制,所以在受限的WSN中,如何进行安全的定位和获取正确的位置信息,是一个非常具有挑战性的安全问题。

2 多点验证协议

可验证测距协议是一种采用基于测距的距离界定协议,不只可以用于抵抗各种距离攻击,还可以对节点进行安全定位。

2.1 距离界定协议

距离界定最早由Brands和Chaum提出(文献[4]),其基本思想是通过测量和计算验证者(verifier)与被验证者(claimant)之间距离的上界,防止以缩小测量/估算距离为目的的测距欺骗攻击,如虫洞攻击等。

2.2 距离界定协议

多点验证协议是一种改进型的距离边界协议,采用记录收发时间的策略来降低对被验证者实时处理能力的要求。其伪代码(如图1)所示,其中u是待验证节点(普通节点),v为验证者(信标节点),tus/tur和tvs/tvr分别是u和v发射和接收信号的时刻。

3 可验证测距协议的形式化研究

多点验证协议是一个基于距离界限协议的VM机制。VM利用可验证测距协议和三角形校验技术来提高测距安全,前者将基于RF的TOA技术[文献6]和距离界限协议[文献4]结合起来,能有效抵抗各种缩短测距的攻击,而后者在前者的基础上利用3个校验点的共同约束可以防止增大测距的攻击。下面我们将用形式化语言object-z(文献[5])对其展开建模研究分析。

3.1 可验证测距协议的模型组件

3.1.1 定义数据类型

我们假定给定的ITEM为会话层构造的比特流或字节流。所有信息的MSG的集合是所有可能的消息队列的集合,有MSG:seq ITEM。据此,我们定义几个在协议中使用的不同数据项类型ITEM的子集,代理标识符AID,密钥KEY,随机数NON:,加密数据ENC,如下图所示,P ITEM表示ITEM的子集。

3.1.2 定义函数模型

函数enc表示信息MSG经过密钥KEY加密成ENC类型数据项。函数mac表示信息MSG经过密钥KEY通过消息认证生成MAC类型数据项。函数commit表示随机数NON使用信息MSG单向抗碰撞哈

3.2 多点验证协议的角色模型

多点验证协议的角色模型正如前文表示可抽象成两种类型:Claimant待验证节点和Verifier验证者,使用object-z对两个角色进行建模,每个角色是类对象,包含状态变量和操作模式。

3.2.1 待验证节点的模型

待验证角色由状态模式、初始状态、操作模式GenerateC和操作模式ReceiveMsg组成的。状态模式定义该角色用到的变量,其中u、v为设备标识(u表示待验证节点,v表示验证者),Nu、Nv分别表示u、v产生的随机数,以及u和v共享的密钥Kuv,以及消息msg、c和d,时间t。初始状态msg=<>表示没有任何消息在发送。

操作模式GenerateC对应图1的1、2、3,表示验证者对确认者发起距离界定请求。其中,符号“!”表示请求的信息,符号“?”表示要求得到的信息。操作模式ReceiveMsg对应图1的6、7,表示对信息进行加密,对应于图1的5的接收。其中,变量t和t`表示前状态变量和后状态变量,表示时间变化。

3.2.2 验证者模型

验证角色由状态模式、初始状态、操作模式GenerateNv和操作模式Compute组成的。

操作模式GenerateNv对应图1中的4、5,表示对验证者对验证者的请求进行响应。操作模式Compute对于图1中的8、9,表示根据结果,验证本次通信是否被篡改,如果没有就进行距离计算。

3.3 多点验证协议模型

对角色建完模之后首先建立距离界定协议,由状态模式、初始模式和操作Protocol组成。表示通过待验证对验证者发起请求得到与其中一个验证者的距离信息。

在状态模式中,待验证者N ode A,验证者N ode B,N ode A.msg=NodeB.msg表示NodeA和NodeB有相同的初始化信息,并且它们能够互相通信。初始化模式中,表示NodeA必须知道NodeB的ID,NodeA和NodeB之间共享相同的密钥。操作Protocol定义了其中一个距离测定实现的整个过程。符号“∧”是Z语言中复合操作符。

VM表示一个可验证测距协议的执行过程,待验证者分别验证者发起距离界定请求,最终验证者将收到的距离信息发给中心节点,中心节点利用这些距离进行坐标计算,最终得到待验证者的位置信息。

4 无线传感器SPINE安全定位算法的形式化验证

我们已经前文中介绍了多点验证协议的形式化建模,接下来,我们将对其在无线传感器中的应用。由于信标节点大量部署代价昂贵,在大型传感器网络中,只需要部署少量信标节点,通过大量传感器间协作定位实现整个传感器网络的定位,我们可以选择一种合作定位机制称为SPINE(Secure Position for sensor NEtworks)算法。SPINE是基于VM安全定位机制的。SPINE通过验证至少三个锚节点的位置来估计未知节点的位置,估计出其他位置的未知节点会升级为锚节点,作为其它未知节点的参考节点。

在介绍SPINE算法之前首先介绍一种BDV(Basic Distance Verification)表示基本距离验证,它是利用VM机制进行距离界定的,u可以测量出duv,v可以测量出dvu。BDV界定u和v的距离过程如下:1)所有可验证v的三角形集合US,有△(u,v1,v2)、△(u,v1,v4)、△(u,v3,v4)、△(u,v2,v3);2)所有可验证u的三角形集合VS,有△(v,v5,v6)、△(v,v5,v6);3)所有可同时验证u和v的三角形集合UVS,有△(v4,v5,v6)。对于所有△l∈US∪VS∪UVS,可计算出dlvu=VM.Distance(u,v)以及dluv=VM.Distance(v,u),由此,对于所有△l∈US∪VS∪UVS,对于该节点执行δ测试和点再三角形内测试,对于通过测试的位置,就作为未知节点的定位结果,否则,就拒绝该位置,即只要|dluv-duv|<,且|dlvu-dvu|<δ,则{duv,dvu}的测量结果能够被接受。

SPINE算法执行过程如下:1)节点测量与邻居的距离;2)通过VM进行距离界定;3)所有节点间的互相定位采用分布式算法实现。定义集合VD=,表示可信任距离集合,初始为空;定义集合NV,表示所有未验证距离,初始为空;DB={所有距离集合}。那么对于所有dbi∈D B,如果dbi能够被B D V验证那么V D=V D∪{d bi},否则NV=NV∪{dbi}。

u和v的定位结果出来,有VD=VD∪{dbuv},同时u和v就成为验证节点,能够验证其他待验证节点,整个网络协同工作,直至整个定位过程完成。

我们已经可以对整个网络进行定位,但是,又是如何保证对整个定位过程是安全的?我们将展开简单的分析。如下图所示,图a是一个正常定位过程;图b中u对v进行距离扩大攻击,根据VM安全定位机制,能够检测出整个定位过程发生距离扩大攻击,抛弃本次定位结果;图c,同时三个入侵节点伪装同一个节点对定位发起攻击,根据VM算法本次攻击成功,定位被干扰。因此,当#VD>3(在object-z中,#表示集合个数)时,表示最少三个三角形同时对一个待验证节点发起验证,可防止如下图所示的各种扩大距离攻击。

4 结语

本文用形式化方法对无线传感器网络的安全定位进行了简单地分析,最后得出#VD>3时,可保证定位是准确且安全的。多点验证协议不仅可以用于无线传感器安全定位,还可以用于其他网络的安全定位,采用形式化方法对无线传感器网络进行安全定位分析在目前还属于少数,还有待继续深入研究。

参考文献

[1]H.A.Oliveira et al.,Directed position estimation:A recursivelocalization approach for wireless sensor networks,”14th IEEEInt’l.Conf.Comp.Commun.And Networks,San Diego,CA,Oct.2005,557 562.

[2]T.He et al.,Range-free localization schemes for large scalesensor networks,MobiCom’03:Proc.9th Annual Int’l.Conf.Mo-bile Comp.and Networking,New York:ACM Press,2003,81 95.

[3]J.Albowicz,A.Chen,and L.Zhang,Recursive position estimationin sensor networks,”9th Int’l.Conf.Network Protocols,Nov.2001,35 41.

[4]S.Brands and D.Chaum,Distance-bounding protocols,in Proc.Workshop on the theory and application of cryptographic tech-niques on ad-vances in cryptology,1994,pp.344 359.

[5]David A.C,David J.D Object-Z:An object-oriented extensionto Z,1989,Second International Conference on Formal Descrip-tion Techniques for Distributed Systems and Communication Pro-tocols 281 296.

上一篇:教材难易度下一篇:治疗泌尿结石