1.06k likes | 1.21k Views
安全协议理论与方法. 基于攻击结构性方法. 攻击结构性方法 --- 简介. ■ 从协议的初始状态开始,对合法主体和一个攻击者的所有可能的执行路径进行穷尽搜索以期找到协议可能存在的错误。下面 FDR,Mur 以及特殊目的的 NRL 分析器等工具非常有效,但存在如下问题: ■ 主体数目的有限性 ( 限制 ) 。主体数目很大和数目较少发现的问题可能不同。 ■ 无法解决状态空间爆炸问题。. 一般目的的验证语言.
E N D
安全协议理论与方法 基于攻击结构性方法
攻击结构性方法---简介 ■从协议的初始状态开始,对合法主体和一个攻击者的所有可能的执行路径进行穷尽搜索以期找到协议可能存在的错误。下面FDR,Mur以及特殊目的的NRL分析器等工具非常有效,但存在如下问题: ■主体数目的有限性(限制)。主体数目很大和数目较少发现的问题可能不同。 ■无法解决状态空间爆炸问题。
一般目的的验证语言 ■并非专门为安全协议形式化分析而设计的。其主要思想是将安全协议视为一般的目标,在不考虑其独有的特质的前提下验证其正确性。此类形式化分析工具往往用到状态机的概念,它提供了描述和控制应用逻辑的非常强大的方法。 ■有限状态机FSM应用可达性分析技术来对认证协议进行分析。 ■缺陷:只考虑正确性,不考虑安全性。
一般目的的验证语言续—可达性技术 ■使用方法: ■1. 对于每一次迁移,使用主体和主体之间的信道状态来描述系统的全局状态。 ■2. 分析每一个全局状态并判断其性质,如死锁、正确性等。如果分析表明一个主体在某一已知状态下应接收到某一消息却并未接收到时,则说明协议是有问题的。可达性技术可通过对协议的说明来判断协议的正确与否,但它并不能够保证协议的秘密性不受到主动攻击。
一般目的的验证语言—形式化 ■此类技术的第一部是将协议描述为验证工具所使用的形式化语言: Kemmerer认为协议的形式化目标有两个: • 形式化地验证安全协议满足其所说明的安全需求; • 发现其说明中存在的漏洞。 ■方法:协议系统由不同状态组成,每个状态具有不同的状态变量值,状态值的变化是由良好定义的状态转换来决定的。 ■实现:使用一阶谓词逻辑扩展。
一阶谓词逻辑扩展-基本逻辑操作 &: 逻辑与。 →:逻辑推断。 :成员归属。 {a,B,c…}: 元素集合。 {set description}:集合说明。 : 所有。 :存在 N”: 表示变量的新值。 T”:定义了给定类型 T的子类型。
终端1 K=0 K=1 主机密码设备 主机 终端2 会话密钥表 终端密钥表 终端3 终端n 包含终端密钥的终端密码设备
一阶谓词逻辑扩展-实例说明 • 每个终端确保有一个永久密钥用于每次会话建立时的会话密钥的分配。 • 终端的永久密钥和会话密钥都以密文形式存放在主机处。 ■终端密钥常量:永久密钥。 ■终端会话密钥:变量。 ■变换:ECPH, DCPH,RFMK和Generate_session_key
一阶谓词逻辑扩展-实例说明 公理:加解密操作的相互抵消性不变式: ■AXIOM tTEXT ■k1,k2:KEY(Encrypt(k1,Decrypt(k2,t))=Decrypt(k2,Encrypt(k1,t))) Ina Jo 准则给出了系统的所有状态将要达成的目标的说明,应当是贯穿协议运行始终而不发生改变的性质的说明---不变式。 ■攻击者不能获得解密密钥的不变式: ■CRITERION:kkey(kintruder_infokkey_used)
一阶谓词逻辑扩展-实例说明 证明的步骤: ■1.初始子句描述系统初始应满足的目标。 ■2.通过验证系统是否满足不变式要求发现问题。 ■3.例如证明初始状态是满足不变式说明的,之后证明由满足的状态触发的迁移后的状态也是满足不变式的,由此递归证明所有可达状态都是满足不变式的说明,否则系统有漏洞或不完整。 Kemmerer发现前述密钥分配结构有漏洞。
Mur验证系统 ■多处理器缓存同步协议和多处理器内存模式等领域应用的协议验证工具。 ■已验证TMN 和Kerberos V5有缺陷。 • 协议形式化。 • 在系统中加入一个攻击者。 • 说明正确性成立的关键条件。 • 确定协议规模之后运行协议。 • 对协议进行反复的检测 。
Mur验证系统 Mur描述语言: 描述非确定性有限状态自动机的高级语言。 ■说明的常量和类型 ■变量说明 ■转换规则 ■初始状态生成规则 ■不变式描述
s2 s0 s1 s3 s4 状态图例
系统的应用例(审查) ■模型的状态定义为所有全局变量取值的集合。 ■状态的转换由规则决定。 ■系统的执行由一个有限或无限的状态序列s0,s1,…,sn组成。 SiSi+1 : Si+1的获得可通过应用在状态si中的条件为真规则,即状态si的迁移由此种规则触发。由于一个状态允许多个行为的执行,因此Mur模型有多种执行的可能(非确定性)。例如攻击者选择重放的消息的行为是非确定性的。
Mur验证系统 2.语义和验证算法 系统状态图 (Q, Q0, error, ) Simple-on-the-fly-Algorithm() Begin reached=unexpanded={q|qstartstate}; while unexpanded do remove a state from unexpanded; for each transition rule t
Mur验证系统 • Mur的局限性及发展 为协议运行定义所有可能的状态,并为此产 生非确定有限状态自动机模型。 状态可能太多,需要优化,否则时间和空间 消耗太大。
CSP与安全性质 ■ 通讯顺序进程CSP是 C.A.R.Hoare 提出的为解决并发现象而提出的代数理论,是一个专为描述并发系统中通过消息交换进行交互的通信实体行为而设计的一种抽象语言。它将所分析的协议性质与具体的协议形式加以区别,并在CSP总体框架下对协议的性质进行分析和验证。 ■ CSP可应用于网络安全协议的描述与分析: 将安全协议的问题规约为CSP进程是否满足其CSP说明的问题。
CSP与安全性质 ■ 1.CSP基本术语 • 事件(Event) • 进程(Process) • 路径(Trace) • 规约(Specification)
CSP与安全性质 ■(1)事件(Event) 所有可能的事件记为。 c.i.j.m: c:信道 i:消息源 j: 目的地 m:消息 {m.n| mM nN},M,N消息集合。 c.m:c上传送的消息是M类型的,c.mM。 event put.5:信道put上的数值5.
CSP与安全性质 ■(2)进程(Process) 用进程可能涉及的事件来描述进程。 • 停止进程STOP • 输出进程 • 输入进程 • 选择进程 • 并发进程 • 递归进程
CSP与安全性质 ■停止进程STOP STOP进程不包括任何事件,它等价于死锁。 ■输出进程 c!vP:表示在信道c上输出v之后行为表现为P。 ■输入进程 c?x:TP(x):表示在信道c上可接收类型为T的任意输入x之后行为表现为P(x)。
CSP与安全性质 ■选择进程 PQ: 表示行为在P和Q之间做选择,结果或为P或为Q。 iIPI:表示行为可为变量Pi的任何值。 • 并发进程P|[D]|Q: 表示P和Q是并发执行的,并且它们是与同步集合D中的事件同步执行的。 如果同步集合D中事件发生,则P,Q同步执行; 如果发生的事件不属于D,则P,Q分别执行。 如果P,Q之间没有任何同步事件,表示为P||Q。
CSP与安全性质 ■递归进程 LIGHT=onoffLIGHT:表示进程LIGHT交替执行on 和off。 COUNT(0)= upCOUNT(1) COUNT(n+1)=(upCOUNT(n+2)) (downCOUNT(n)) COUNT(0)可执行任意个up和不超过up的down事件。
CSP与安全性质 ■(3) 路径 进程P定义为其可能执行的事件的序列,用路 径表示 (trace(P))---tr(P)。 前述LIGHT进程可能的路径: <on-off-on>。 空路径<>。
CSP与安全性质 ■ trD:表示tr中由D中事件组成的最大子序列。如果D是由一个事件组成{d},那么 tr{d}等价于trd。 ■ trc:表示在信道c上传输的最长消息序列。 ■ trc:表示在c中某些信道上传输的消息集合。 ■ (tr):表示在路径tr上出现的事件集合。 (P):表示在进程P的某些路径上出现的事件集合。
CSP与安全性质 ■(4) 规约 一个进程满足一个规约S当且仅当其所有路径 满足S,描述如下: PsatS trtrace(P).S 例如:事件a必须在事件b之前发生,描述为: tr1,tr2. tr=tr1<b>tr2tra<> 简化:trb<>tra<> 表示如果 事件b在某路径tr中发生,事件a必定已发生。
CSP与安全性质 网络高度抽象图 outi out1 ini in1 out1 in0
CSP与安全性质 ■ MESSAGE:表示由任一用户发送的所有消息。 ■ USER={0,1,…,n}。 ■ in.i 类型为 USER.MESSAGE。 ■ in.i.j.m: 表示用户i向用户j发送消息m。 ■ out.j: 类型为USER.MESSAGE。 ■ out.i.j.m:表示用户i接收用户j的消息m。
CSP与安全性质 用户仅需了解与网络的交互行为: 1. 从网络用户的角度考虑,用户不知道网络中哪些用户是可信的。 用户的通信模式不与协议目标相矛盾。例如任何共享秘密不应泄漏给第三方。
CSP与安全性质 2. 从高层角度考虑,用户被视为忠实执行其协议的节点,并能够识别协议中的漏洞。 当采用这一角度时,必须注意此特定消息是不能未加考虑地出现在协议的说明中的,一个节点的响应不应依赖于只在高层看来有效的消息。 本书从2)考虑,用0USER作为攻击者进程名字。
CSP与安全性质 • 保密性 如果除了意定消息接收者外任何用户都不可能从集合M中计 算出任何消息,那么特定的消息集合M的保密性是成立的。 换言之:如果有输入in.i.j.m,那么任何输出out.h.l.m都是发自用户j的。因此已知用户j和消息m,如果有一个输出out.j.k.m,则在此之前必有in.i.j.m的输入。因此j不能获得任何发给其他主体的消息。 从一个高层的角度考虑,唯一能够获得发给其他主体的消息的用户是user0,因此保密性可描述为:user0的任何输出消息必定是在此之前已发送给user0的消息。
CSP与安全性质 ■定义4.1NET为消息集合提供保密性,当且仅当 NET sat m:M. trout.0.USER.m<> tr in.USER.0.m<> 用CSP进程代数表示为: m:M. NET | [in.USER.0.M] |STOP= NET |[out.0.USER.m] |STOP in.USER.0.m(此处有问题?)
CSP与安全性质 CONF(tr) = messages(trout.0.USER.M) messages(trin.USER.0.M) ■表示user0输出的消息必是发送给它的消息的子集。换言之,user0不能从不是发给它的消息M中获得任何消息。
CSP与安全性质 • 认证性:消息和消息源不能被伪造。 定义4.2在进程p中事件b认证事件a,当且仅当: p sat AUTH(tr),其中 AUTH(tr) = trb <> tra<> 如果只有在事件a发生后事件b才发生,则称事件b认证事件a。 P | [a,b] | STOP = P |[a] | STOP
CSP与安全性质(此页有问题) ■对于一个包括媒介、攻击者和节点的系统,认证性可描述为: NET |[in.i.j.m]|STOP= out.j.i.m NET | [in.i.j.m] 缓冲区进程 COPY=in?xout!COPY
CSP与安全性质 ■定义4.3 在进程P中B认证A,当且仅当 P | [AB] | STOP = P | [A] | STOP 如果B中的任何消息已出现,那么A中的一个消息必定在此之前已出现。
CSP与安全性质 ■ 3.CSP网络模型 体系结构: 可借助媒介彼此发送消息而进行异步通信的节点网络。由于用户不能控制媒介,因此攻击者有可能会干扰或截获网络通信。 模拟: 将节点集连接到媒介上,并将每个节点视为一个独立的进程。
CSP与安全性质 ■用CSP描述DY模型。 该模型中, 通信媒介完全受控于攻击者之下, 可拦截、重放、复制以及伪造消息。 S├m:表示S中消息的所有知识可生成消息m。 ENEMY: 不安全网络的化身(攻击者和不安全网络媒介) (USERi)trans.irec.i
CSP与安全性质 ■整个通信网络可描述为: NET=(║| jUSERj) |[trans,rec] | ENEMY trans和rec类型为: USER.USER.MESSAGE (trans和rec没有给出定义) trans.i.j.m: 源节点i发送消息m给目的节点j。
CSP与安全性质 CSP描述网络 ■消息空间描述 ■ENEMY描述 ■网络通信主体的描述
CSP与安全性质 ■(1) 消息空间描述 RAW := USER | TEXT | NONCE | KEY MESSAGE:= RAW | KEY(MESSAGE) | MESSAGE.MESSAGE KEY := PUBLIC | SECRET
CSP与安全性质 ■生成消息的规则 A1if mS then S├m A2ifS├mand SS’ then S’├m A3if S├mi for each miS’and S’├m then S├m M1 S├m S├k S├k(m) M2 S├m1 S├m2 S├m1,m2 K1 E(pi:E(si:m)) ├m ??? K2 E(si:E(pi:m)) ├m ???
CSP与安全性质 ■(2) ENEMY描述 MEDIUM(T)= tT rec!tMEDIUM(T\{t}) trans?i?j.mMEDIUM(T{j,i,m}) t T leak!tMEDIUM(T) add?i?j?mMEDIUM(T{j,i,m}) kill?tMEDIUM(T\{t}) T是在被动媒介上传递的消息集合。
CSP与安全性质 ■INTRUDER(U)= leak? uINTRUDER(U{u}) (U├m),I,j add!i.j.mINTRUDER(U) (U├m),I,j kill!i.j.mINTRUDER(U) 将INTRUDER和MEDIUM二合一描述网络环境: MEDIUM(T) | [leak,add,kill] | INTRUDER(U)\{leak,add,kill}
CSP与安全性质 ■ENEMY(S)= trans?i?j?mENEMY(S{m}) I,jUSER,S├m rec.i.j.mENEMY(S) 解释:ENEMY可读取在trans任一信道上任一用户输出的消息,并且它可以向任一用户发送它可生成的任何消息。集合S中包括ENEMY知道的所有消息,并且每当有新消息发送时,S将得到更新。
CSP与安全性质 ■ENEMYsat (INIT(trtrans))├trrec ■INIT:ENEMY初始知识集合,其中包括用户名、公钥以及一些攻击者用到的随机数。
CSP与安全性质 ■(3) 协议主体的描述 修改后的NSL • AB: E(Kb: Na, A) • BA: E(Ka: Na,Nb,B) • AB: E(Kb: Nb)
CSP与安全性质 协议主体A的进程USERa描述为: ■USERa=iUSERtrans.A! i! E(Ki: Na, A) rec.A.i? E(Ka: Na, x, i) trans.A! i! E(Ki: x)STOP ■USERb=jUSERrec.B? j? E(Kb: y, j) trans.B!j!E(Kj:y,Nb,B) rec.B. j. E(Kb: Nb)STOP
CSP与安全性质 ■ (4) CSP对NSL公钥协议的形式化分析 步骤: • 建立安全协议的CSP模型。 • 用CSP描述安全协议的安全性质。 • 验证协议的安全性质是否满足。
CSP与安全性质 ■认证性的目标: 如果在进程P中R的一些事件在T的一些事件之前发生,则T认证R,其中T,R为不相交的事件集合。 T authenticates R = trR=<>trT=<> 对于进程P: Psat T authenticates R P | [R] | STOP sat trT=<> ■如果P满足T认证R且RR’, 那么P满足T authenticates R’