一种基于TTCB的容侵原子多播协议研究.doc

上传人:吴起龙 文档编号:1592100 上传时间:2018-12-26 格式:DOC 页数:13 大小:20.43KB
返回 下载 相关 举报
一种基于TTCB的容侵原子多播协议研究.doc_第1页
第1页 / 共13页
一种基于TTCB的容侵原子多播协议研究.doc_第2页
第2页 / 共13页
一种基于TTCB的容侵原子多播协议研究.doc_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一种基于TTCB的容侵原子多播协议研究.doc》由会员分享,可在线阅读,更多相关《一种基于TTCB的容侵原子多播协议研究.doc(13页珍藏版)》请在三一文库上搜索。

1、一种基于的容侵原子多播协议研究?丶?词:入侵容忍;原子多播协议;一致性;可信实时计算基 Study on atomic multicast protocol for intrusiontolerance based on TTCB ZHOU Hua,MENG Xiangru,ZHANG Li (Telecommunication Engineering Institute, Air Force Engineering University, Xian 710077, China) Abstract:This paper studied the architecture of a distrib

2、uted intrusiontolerance system based on trusted timely computing base(TTCB), and proposed an atomic multicast protocol for intrusiontolerance using TTCB services to solve the consensus problem in distributed intrusiontolerance system. When the total of processes is more than twice the number of mali

3、cious processes, the protocol can satisfy the consensus and achieve the intrusiontolerance. It proved the Correctness of the protocol. Key words: intrusiontolerance; atomic multicast protocol; consensus; trusted timely computing base(TTCB) 世界范围内系统的广泛互连在计算机服务行业产生了重要的社会经济价值,然而这种价值却受到了网络恶意攻击的影响1。传统的网络安

4、全技术已不能完全保护网络系统不受攻击,因此产生了一种新的安全措施入侵容忍。入侵容忍的主要思想就是承认系统中存在可以被攻击者利用的脆弱点,并构建一种可以容忍一定数量故障(包括攻击和入侵)的系统2。目前许多容侵系统均采用了分布式的体系结构。然而,分布式容侵系统的一个困难就是一致性问题3。一致性协议要求所有复制品的进程均提议一个值,然后对最终决定某个值达成一致。但是系统中因入侵而产生的任意行为的恶意进程可能会影响结果的一致性。假定分布式系统中进程总数为 n,最大恶意进程个数为 f。文献4需要 n3f+1才能保证结果的一致性;文献5要求 n2f+1,但其体系结构中客户端与服务器直接交互,存在恶意客户端

5、对服务器进行攻击的缺点;文献6中进程总数减少到 nf+2,但是没有解决sender是恶意进程以及各个进程提交消息的全序(total order)问题。 ?疚牟捎昧嘶?于TTCB的容侵分布式体系结构,并在客户端与服务器之间引入了代理服务器,可以有效阻止恶意客户端对服务器的直接攻击。系统中实现了容侵原子多播协议,在最大恶意进程个数为 f的条件下,该协议只需要n2f+1就能保证结果的一致性。该协议还克服了sender是恶意进程的问题,并可以保证各个进程以相同的顺序提交消息。 1 体系结构与TTCB ?疚牡娜萸窒低持饕?由客户端、代理服务器和服务器组成。主代理与服务器以及服务器之间通过负载网络进行连接

6、。笔者认为负载网络是可靠通道,即如果发送方与接收方均是正确的,它满足两个条件:a)消息最终被接收;b)传输通道中的消息内容不会被窜改。系统的时间模型总体上是异步的,除了服务器的本地安全内核可信实时计算基(TTCB)7,所有的TTCB通过专有控制通道进行连接。容侵系统的体系结构如图1所示。 11 TTCB TTCB是一种安全的实时分布式模块,它植入在主机内部并与操作系统隔离,协助分布式协议的正确执行。将每个主机内部的TTCB叫做本地TTCB,所有本地TTCB通过控制通道进行连接。本地TTCB是failsilent的,它们只会因为崩溃才失效。任何应用进程均不能破坏TTCB的正确运行,TTCB之间的

7、交互不会发生故障,也不会产生错误结果。每个本地TTCB拥有一个时钟,并且所有的时钟均是同步的。 TTCB通过接口向进程提供有限的服务,这些服务主要分为两类,即安全服务和时间服务7。本文中的原子组播协议使用了TTCB的三个服务: a)本地认证服务(LA)。该服务允许进程与本地TTCB安全通信。服务在进程运行之前认证本地TTCB,并为TTCB与进程建立一个共享的对称密钥。这个密钥可以作为两者之间的安全通道,用来加密和认证它们之间的通信。 b)可信块协商服务(TBA)。该服务是安全协议的主要组成部分。在对一组进程提议的值协商之后,该服务就将达成一致的某一个值提交给进程。TBA服务只应用于协议中的重要

8、步骤。 c)可信绝对时间戳服务(TAT)。该服务提供了具有全局意义的时间戳。 12 代理服务器 ?我庋褚桓龃?理服务器作为主代理,用来接收客户端的服务请求,并将请求转发给服务器中的sender;接收所有服务器返回的结果,将f+1个不同服务器返回的相同值作为最终结果返回给客户端。因为系统中最大恶意进程个数为 f,所以 f+1个值中至少有一个是正确进程返回的,保证了结果的正确性。主代理转发给sender的消息格式为 REQUEST,addr,num,cmd,vec。其中:REQUEST表示消息的类型;addr表示客户端的地址;num表示请求消息的序列号,在主代理中设置一个计数器,以连续递增的方式给

9、同一个客户端的请求加上序列号;cmd表示需要执行的请求命令;vec是消息认证码(MAC)5,8向量。服务器向主代理返回的消息格式为REPLY,addr,num,rst。其中:REPLY表示消息类型;addr表示服务器的地址;num表示请求消息的序列号;rst表示返回的结果。 ?糁鞔?理在转发请求消息之后,在时间 Ttimeout内没有收到 f+1个不同服务器返回的相同值,那么它就将请求消息发送给另外 f个不同的服务器。这样可以保证至少有一个正确的服务器进程接收到请求消息,因而在服务器之间转发该消息。 ?了防止恶意的sender窜改消息,在请求消息中加入了MAC向量。主代理通过MAC算法与它和各

10、个服务器之间的共享密钥计算出MAC值并加入到请求消息中,每个服务器通过验证自身的MAC值来判定消息是否被sender窜改。 代理服务器中存在安全检测机制,用于检测客户端的恶意请求或攻击行为,以及主代理是否出现故障或被攻克。若主代理出现故障或被攻克,则随机选择另一个代理服务器作为主代理。 13 服务器 ?每个服务器抽象为一个进程 pi,则 P=p0,p1,pn-1表示所有服务器的集合。任意选择 pkP为sender,用来接收主代理的请求消息,并采用多播方式将请求消息转发给其他进程。每个进程接收到消息后,首先验证其有效性,然后采用同样的方式转发给除sender外的所有进程。每个进程发送od1次以保

11、证所有正确进程均能接收到请求消息。其中od称为冗长度6。如果一个进程在发送者发送od+1次后还没有收到消息,那么就认为这个进程出现了故障或受到攻击。od的具体大小需要根据实际情况确定。关于进程之间转发消息的过程将在协议算法实现中具体论述。 2 可信块协商服务(TBA) ?尚趴樾?商服务由TTCB_propose,TTCB_decide和decision函数实现。现在详细介绍一下服务中的前两个接口函数。 ? 进程在提议一个值时调用TTCB_propose。其中:eid是进程在调用之间通过本地认证服务获取的惟一标志符;elist是所有参与该服务的进程标志符列表;tstart是通过时间服务获取的时间

12、戳(理想情况下服务应该在elist中所有进程均提议一个值之后才能执行,但是恶意进程可能无限期地延迟提议时间导致服务不能执行。为了避免这种情况,在tstart时间后服务立即执行并不再接受任何其他提议);decision表示如何计算即将决定的值;value表示提议的值。TTCB_propose返回一个含有两个字段的结构体outp:outp.error表示返回的错误码;outp.tag表示服务执行的惟一标志符。TTCB通过(elist,tstart,decision)可知道不同进程调用的TTCB_propose是否属于同一个服务执行。 ?程通过调用TTCB_decide函数获取服务的结果值。Tag是

13、由TTCB_propose返回的惟一标志符,用于标志一个服务执行实例。Outd是由四个字段组成的记录:outd.error是返回的错误码;out.value是决定的值;outd.proposedok是由Nelist(Nelist表示elist中进程总数)位组成的掩码,每一位表示elist中其相应进程提议的值是否就是最后决定的值;out.proposedany也是掩码,但它表示的是哪些进程提议的是任意值。 3 容侵原子多播协议的实现 31 容侵原子多播协议 ?务器进程通过原子多播协议提交消息。该协议具有以下四个特性: a)有效性。如果一个正确进程以多播方式发送消息M,所有的MAC均为有效,那么某

14、一个正确进程最终将提议M。 b)一致性。如果一个正确进程提议消息M,那么所有正确进程最终将提交M。 c)完整性。对于任意一个标志符ID,每个正确进程最多只能提交一次标志符是ID的消息M。如果M的发送者是正确的,那么M先前就是由该发送者转发的。 d)全序性。如果两个正确进程均提交消息M1和M2,那么这两个进程将以相同的次序提交这两条消息。 ?议算法主要由三部分组成,即初始化、sender协议以及接收方协议。 ?惴?1 原子多播协议(对于所有 piP,i=(0,1,,n-1)) Initialization: 1: elist all eids of processes in P 2: msg_i

15、d /set of MREQ.num 3: prepare_deliv /set of M preparing for delivery 4: minnum1 Sender: 5: tstart TTCB_getTimestamp()+T0 6: M (elist, tstart, MREQ) /construct message M 7: propose TTCB_propose(elist, tstart, TTCB_TBA_RMULTICAST, H(M)/propose M 8: multicast M for od+1 times to elist except sender 9:

16、Atomic_deliver(M) Recipients: 10: Get_msg(M)/get message M 11: if verify_mac(MREQ.vecpi) then propose TTCB_propose(M.elist, M.tstart, TTCB_TBA_RMULTICAST,) 12: do decide TTCB_decide(propose.tag)/decide the result 13:while (decide.error TTCB_TBA_ENDED) 14: while (H(M) decide.value) do Get_msg(M) od 1

17、5: multicast M for od+1 times to elist except sender 16: Atomic_deliver(M) When Atomic_deliver(M) is called do: 17: msg_id msg_id MREQ.num 18: prepare_deliv prepare_deliv MREQ 19: minnum min(msg_id) 20: while (MREQ.num=minnum) and (msg_id ) do 21: msg_id msg_idMREQ.num 22: prepare_deliv prepare_deli

18、vMREQ 23: minnum minnum+1 24: deliver(M) od ?跏蓟?过程将所有进程的eid存放在elist中,msg_id是存储请求消息MREQ序列号MREQ.num的数组;prepare_deliv是存储准备提交的消息数组;minnum表示msg_id中序列号的最小值。 ?程之间转发的消息M由(elist, tstart, MREQ)组成。其中:elist是符合TTCB服务格式的eid列表,列表中第一个元素是sender的eid,其他元素为接收方的eid;tstart是服务的时间戳;MREQ表示请求消息。协议的每一次执行实例由惟一的标志符(elist, tstar

19、t)表示。Get_msg()从消息M中读取(elist, tstart, MREQ)。假定存在一个垃圾消息处理器,其作用就是销毁已经提交过的相同消息。 Sender协议首先计算tstart,并根据主代理的请求消息MREQ以及elist,构建消息M(5、6行)。一个服务执行由elist、tstart和decision函数决定(7行)。Sender和所有接收方均使用相同的decision函数TTCB_TBA_RMULTICAST。这个函数表示将选择由elist中第一个进程提议的值作为结果值(即sender提议的值)。Sender提议的值是消息M的哈希值H(M),并通过控制通道发送给接收方。哈希函数

20、是一种单向加密函数,根据哈希函数的性质8,攻击者是不能够通过哈希值获取原始消息的。Sender将消息以多播方式转发给其他进程,然后执行atomic_deliver()提交消息M(8、9行)。接收方调用get_msg()函数等待接收消息,并通过MAC来验证消息的合法性(10、11行);然后调用函数TTCB_propose获取标志服务的tag,接着循环调用TTCB_decide,确保协议等待服务结束(12、13行)。如果接收到的消息与sender转发的消息不同,那么H(M)就会与服务返回的值decide.value不同。在这种情况下,协议需要等待接收到正确的消息(14行);然后采用多播方式将消息转

21、发给除sender外的所有进程,最后执行atomic_deli_ver()提交消息M(15、16行)。当执行atomic_deliver()提交消息M时,先将MREQ.num和MREQ分别存放在数组msg_id和prepare_deliv中,然后找出msg_id中的最小值(1719行)。如果MREQ.num是最小值,则从数组msg_id和prepare_deliv中移出MREQ.num和MREQ,同时将minnum加1,最后提交消息M(2024行)。 32 正确性证明 ?旅娑运惴?1所描述的协议是否满足原子多播协议的四个性质进行证明。 ?理1 有效性。如果一个正确进程以多播方式发送消息M,其中

22、所有的MAC都是有效的,那么某一个正确进程最终将提议M。 ? 设消息M(elist, tstart, MREQ),任意一个正确进程 piP, pi以多播方式发送消息M给其他进程(8行或15行)。设另一个任意的正确进程 pkP,根据可靠通道的性质, pk最终接收到消息M。 pk通过验证其MAC可以证明消息MREQ没有被窜改(11行),又因为 pi是正确进程,那么消息M是正确的,所以可以执行1216行。根据23行,数组msg_id中MREQ.num最终会成为最小值,所以消息M最终将会被 pk提交(24行)。 ?理2 一致性。如果一个正确进程提议消息M,那么所有正确进程最终将提交M。 ? 任意一个正

23、确进程 piP,若 pi提议一条消息M,那么 pi在提议之前以多播方式发送了消息M。根据定理1,存在一个正确进程 pkP最终提交M,而 pk在提交之前同样会转发M,因此所有正确进程都会接收到来自其他正确进程的消息M,并且最终提交M。 ?理3 完整性。对于任意一个标志符ID,每个正确进程最多只能提交一次标志符是ID的消息M。如果M的发送者是正确的,那么M先前就是由该发送者转发的。 ? 消息M的标志符ID是(elist, tstart, MREQ),一个TBA服务执行实例由惟一的标志符(elist, tstart)表示,所以标志符是ID的消息M只能由TBA执行一次,正确进程只能提交一次消息M。根据

24、可靠通道的性质可知,定理后半部分是正确的。 ?理4 全序性。如果两个正确进程均提交消息M1和M2,那么这两个进程以相同的次序提交这两条消息。 ? 因为所有进程都提交msg_id中最小序列号所对应的消息,若M2.M?REQ.numM1.M?REQ.num,那么这两个进程将均先提交M1然后提交M2,所以它们以相同次序提交这两条消息。 4 结束语 ?肭秩萑套魑?信息安全领域的前沿研究课题,正越来越受到各方面的重视。入侵容忍的基本体系结构是分布式的,但是在存在入侵的情况下,如何对分布式结果达成一致是一个重要问题。本文在分布式容侵系统中利用TTCB服务实现了容侵原子多播协议,有效地解决了一致性问题。在最大恶意进程个数为 f的情况下,该协议只需分布式系统中进程总数 n2f+1就可以满足正确结果的一致性要求,达到了入侵容忍的目的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1