基于安全日志的问责技术的研究

2014-07-19 18:13高翔郭新东逢晓燕张凤兰
现代电子技术 2014年10期
关键词:哈希证人日志

高翔 郭新东 逢晓燕 张凤兰

摘 要: 分布式系统发展至今,规模越来越大,网络中故障节点的查找更加困难。在此针对这种问题提出了一种新的基于安全日志的问责方法。通过维护一个系统安全日志以记录节点过去的行为,节点间依赖此安全日志中的记录来确定其他节点行为的正确性。通过在NS?3环境下对问责机制的模拟,得出结论:使用问责机制可以确保分布式环境下任意发生故障的节点最终能被至少一个正确的节点检测出来,并且存在至少一个正确的节点持有该节点发生故障的确凿证据。

关键字: 分布式系统; 故障节点; 安全日志; 问责机制

中图分类号: TN964?34 文献标识码: A 文章编号: 1004?373X(2014)10?0092?04

Abstract: With the development of distributed systems, their scale is becoming larger and larger, but it is more difficult to find the fault nodes in network. A new accountability method based on the security log is proposed in this paper. The previous behaviors of nodes are recorded by maintaining a security log in the system, and the nodes rely on the record in this security log to determine the correctness of other nodes' behaviors. Through simulating the accountability mechanism in NS?3 environment, a conclusion is obtained in this paper. That is, the application of the accountability mechanism is able to ensure any fault node can be detected by at least one correct node in the distributed environment, and at least one correct node holds the conclusive evidence of the fault that has occurred in the node.

Keywords: distributed system; fault node; security log; accountability mechanism

0 引 言

分布式系统发展至今,规模越来越大,组件越来越多,只有每一个组件协调合作,才能保证整个系统的正常运行。如果其中的一个组件出现故障,则有可能威胁到整个系统的安全。由于系统规模的不断扩大,复杂度和风险性也日益变大,系统安全面临前所未有的挑战。系统管理者迫切需要通过可靠的网络举证技术来帮助解决故障发现,系统调试,问责和损害评估等问题。

在分布式系统中查找故障通常是极其困难的,这往往也是由分布式系统的复杂程度决定的。假如怀疑其中的一些节点出现故障,可能是由于设备硬件损坏、或是管理员的配置失误、再或是节点被黑客攻击或更改了其中运行的软件,但是由于地域分布问题,并不知道具体哪些是故障节点,也不知道故障的具体表现症状。而且,当规模较大时,节点因误配或安全性较低而使这些问题更加明显。尤其在跨多个管理域的系统中,由于缺乏总的管理域,上述问题会更加严重。这类多管理域的系统如提供网络服务的DNS,NTP和SMTP等,再如信息系统,网格计算系统,Web Service和P2P系统等。

1 问责机制的基础

针对上述问题,提出一种新的基于安全日志的“问责”方法加以解决。在一个具备问责机制的系统中,所有的节点行为都经过加密后被链接到相关的实施节点上。系统中维持一个安全记录以记录过去的行为,系统中的节点可以使用此记录相互检查以确定其正确性。

假定节点的行为正常称之为正确节点,否则称之为错误节点。

首先引出系统的模型如图1所示。

如图1所示,每个节点可以被建模为一个状态机S、一个检测机D、和一个应用A的模型。状态机代表所有需要被问责机制检测的服务或应用,而应用服务则代表其他的不需要被检测的功能,如图形用户界面GUI[1]。检测机是对问责机制的具体实现,它可以观测到状态机S的所有输入和输出,并且还可以与其他节点的检测机通信。我们假设正确节点的状态机S和检测机D依照指定的规范实现,而错误的节点则可能表现出任意行为。

检测机向其本地应用层报告其他节点的错误标示。通常,当节点i发现节点j具有异常行为时,就会发出exposed(j)信号。当节点i怀疑节点j未发送其本应该发送的消息时,就会发出suspected(j)对节点j表示置疑,其他情况则以trusted(j)来表示[2]。

2 问责机制的实现技术

问责机制的实现主要包含了安全日志、提交协议、一致性协议、审计协议、挑战\回复协议、证据传输协议。

2.1 安全日志

为了强制实现“问责性”,系统必须为每个节点的输入和输出维持一条记录,并且在记录被篡改的情况下有能力检测出来。使用一种只增型安全日志作为记录工具[4]。

只增型安全日志是一个只允许增加的链表,该日志按时间先后顺序记录一个特定节点的状态机的输入和输出。安全日志还包含状态机的周期性快照和检测机的部分注释。每条日志记录包括一个序列号[si]、一个类型[ti]、和特定类型的内容[ci],把它表示为[ei=(si,ti,ci)]。该序列号可以是非连续的,但必须是严格递增的。我们可以使用时间戳来作为序列号。另外,每条记录还包括一个递归定义的哈希值[hi],该哈希值可以表示为[hi=hash(hi-1sitihash(ci))],[其中]表示连接,哈希基值hash(i-1)已知。

日志的安全性由合成的哈希链(如图2)和一个认证者集来确保。认证者是经节点的私钥签名后的声明,它的日志条目具有相应的哈希值。以a来表示认证者,以[signj(arg)]表示用节点j的私钥对参数arg进行签名,则一个认证者[aji=signj(si,hi)]表示节点j签名的声明,且该认证者的记录条目[ei]包含哈希值[hi]。

2.2 提交协议

必须确保一个节点的日志不能被加入一个未发生的日志条目,如一条它从未发送或接收的消息。同样,也必须确保节点日志具有完整性,即日志应其包含节点发送或接收的所有消息,或者是来自其他正确节点的消息。

当节点i发送消息m到节点j时,节点i必须提交它发送过消息m,而节点j必须提交它接收到m。它们拥有一个认证者,该认证者由其他节点充当,并在消息中说明,认证者检查相关的日志条目。记录接收消息的日志条目里必须包含相应的认证者,因此,节点无法伪造它并未发送过的消息条目[5]。

仍以节点i向节点j发送一条消息m举例,节点i首先创建一个日志条目([sk], SEND, {j,m}),然后将[hk-1],[sk]和[signk(skhk)]附到m上,再将结果发送至节点j。因此,节点j有足够的信息计算出[hk],并提取出[aik],如果[aik]中的签名无效,j将丢弃m。否则,j创建自己的日志条目([sl],RECV,{i,[sk],m}),并返回一个附有[hl-1],[sl]和[signl(slhl)]的应答。这使得节点i可以提取并验证[ajl],如果i收到的应答无效,就会向j的证人节点发出挑战请求。

2.3 一致性协议

如果节点i收到来自节点j的认证者,它必须再将认证者转发至j的证人集[w(k)],因此,证人节点拥有所有节点j发送或接收的消息的可验证证据[6]。每个证人节点[w∈w(j)]周期性的选取认证者及最小序列号和最大序列号并对节点j进行挑战,以获取节点j的所有处于该序列号范围内的日志条目。如果节点j是正确的,这些日志条目将会构成一条线性的哈希链,该链包含所有其他认证者所持的哈希值。如果上述不满足,证人w将持有j发生错误的确凿证据。

最后,证人可以使用日志条目来提取所有的认证者,这些认证者来自其他节点且被节点j转发至相关证人。这点是必要的,因为节点j可以与其他节点k共同发生错误,这样,它可以转发k的消息到证人集[w(k)]而不转发k的验证者[7]。

2.4 审计协议

可以利用节点的日志来检查该节点的行为是否符合其参考实现。节点i的证人w周期性的检查i的最近的认证者,然后对i发出挑战以获取自上次审计后的所有日志条目。然后证人w将新的日志条目添加到它对i的本地拷贝日志中[8]。

随后,证人w在本地建立i的参考实现的实例,并用来自i的最近一次快照对实例进行初始化。然后,从这个快照处开始重播所有的输入,并比较[Si]的输出和该日志中记录的输出。

因为要求[Si]是确定的,所以任何不符都表示节点i是错误的[8]。这种情况下,证人w可以用[aik]和本地拷贝的下标作为针对节点i的可验证证据,这样,任意正确节点都可以检查此证据。

2.5 挑战/回复协议

如果节点对挑战进行了回复,则该协议可以暴露错误节点。但是,如果节点并未回复挑战或并未回复一个发送给它的消息,除非对同步性做一个强假设,否则我们无法区分一个节点是恶意的错误还是因为网络的问题[9]。

当节点j发现节点i拒绝其合作时,将节点i的状态标记为可疑并对节点i发起挑战。挑战必须包含有足够的证据使其他节点相信,如果节点i是正确的那么它会回复挑战。然后节点j将挑战发送至i的证人集,证人再将挑战发送至节点i。如果节点i对此不予回复,则证人指出节点i是可疑节点。

挑战的方式有两种:

(1) 审计挑战:审计挑战有2个认证者组成,[aik]和[ail](k

(2) 发送挑战:发送挑战由一条简单的消息m和由一致性协议附加的额外信息组成。通过提取和检查消息m中的认证者,任意正确的节点都确信节点i必须对m进行应答。如果节点i是正确的且从未收到过m,则i可以接受m并返回一个应答。如果i已经收到过m,则它可以简单的重发一下之前的应答即可。

2.6 证据传输协议

为了确保所有正确的节点最终都能对错误节点做出一致的指证,即持有相同的证据,其中包括相同的审计集和相同的挑战信息,允许每个节点i周期性的获取由其他节点j的证人收集到的挑战。在大多数实际的情况中,节点i可能只关心对与它进行直接或间接通信的节点的控告[10]。

如果一个正确的节点i拥有对另一个节点j的挑战,则它的检测机指示suspected(j)。在此状态下,如果i收到一条来自j的消息,则i对j进行挑战[11]。一旦i收到对未判定信息的挑战的有效回复,则i的检测机重新指示为trusted(j)。如果节点i拥有关于节点j行为异常的证据,则节点i的检测机发出exposed(j)。

3 结 果

在NS?3模拟环境下将问责机制在一个覆盖多播环境下进行了仿真实验,实验模拟了单一源点向多个节点发送数据流的情形,因为源节点可能没有足够的带宽或资源为所有的节点发送流,所以需要所有的节点参与其中,将自己收到的数据进行转发,以达到对源节点负载均衡的目的。这样,中间节点就有机会对转发数据进行篡改或不进行转发。

仿真环境的规模为100个节点,并手动的注入了一定数目的错误节点,设置了2条多播,每条只有一个源节点,50个客户节点,每个节点设计2个证人节点。在没有使用问责机制的情况下,错误节点不转发或对数据进行随机篡改,数据完整性无法保证,链路利用率低。使用问责机制后,数据完整性和链路利用率都有明显提高。

4 结 语

本文讨论分布式系统下错误检测的难点所在和需要解决的问题,并提出一种新的解决方法,即问责机制,通过问责可以确保表现错误的节点最终能被至少一个正确的节点指证出来,同时保证正确的节点不被诬告。问责机制需要的一系列条件限制了它只能在规模适度的环境下使用,除非牺牲部分完整性,一旦满足了这些条件,问责机制就可以在较大规模的网络环境下使用了。

参考文献

[1] 潘爱民.计算机网络[M].4版.北京:清华大学出版社,2004.

[2] 张千里.网络安全新技术[M].北京:人民邮电出版社,2003.

[3] 高永强.网络安全技术与应用[M].北京:人民邮电出版社,2003.

[4] 陈鲁生.现代密码学[M].北京:科学出版社,2002.

[5] 韩海东.入侵检测系统实例剖析[M].北京:清华大学出版社,2002.

[6] 刘洪斐,王灏,王换招.一个分布式入侵检测系统模型的设计[J].微机发展,2003(1):92?95.

[7] ARGYRAKI K, MANIATIS P, IRZAK O, et al. An accountability interface for the Internet [R/OL]. [2007?08?10].http://www.infoscience.epfl.ch/record/109957.

[8] BARKER E, BARKER W, BURR W, et al. Recommendation for key management [R/OL]. [2005?08?12].http://csrc.nist.gov/publications/nistpubs/800?57/SP800?57?Part1.

[9] BARRINGER H, GOLDBERG A, HAVELUND K, et al. Rule?based runtime verification [J]. Lecture Notes in Computer Science, 2004, 2937: 44?57.

[10] BAZZI R A, NEIGER G. Simplifying fault?tolerance: providing the abstraction of crash failures [J]. Journal of ACM, 2001, 48(3): 499?554.

[11] BRACHA G. Asynchronous Byzantine agreement protocols [J]. Information and Computation, 1987, 75(2): 130?143.

[12] 阳万安,李振,李彦,等.无线分布式系统中基于移动Agent的日志分析[J].现代电子技术,2007,32(10):91?93.

4 结 语

本文讨论分布式系统下错误检测的难点所在和需要解决的问题,并提出一种新的解决方法,即问责机制,通过问责可以确保表现错误的节点最终能被至少一个正确的节点指证出来,同时保证正确的节点不被诬告。问责机制需要的一系列条件限制了它只能在规模适度的环境下使用,除非牺牲部分完整性,一旦满足了这些条件,问责机制就可以在较大规模的网络环境下使用了。

参考文献

[1] 潘爱民.计算机网络[M].4版.北京:清华大学出版社,2004.

[2] 张千里.网络安全新技术[M].北京:人民邮电出版社,2003.

[3] 高永强.网络安全技术与应用[M].北京:人民邮电出版社,2003.

[4] 陈鲁生.现代密码学[M].北京:科学出版社,2002.

[5] 韩海东.入侵检测系统实例剖析[M].北京:清华大学出版社,2002.

[6] 刘洪斐,王灏,王换招.一个分布式入侵检测系统模型的设计[J].微机发展,2003(1):92?95.

[7] ARGYRAKI K, MANIATIS P, IRZAK O, et al. An accountability interface for the Internet [R/OL]. [2007?08?10].http://www.infoscience.epfl.ch/record/109957.

[8] BARKER E, BARKER W, BURR W, et al. Recommendation for key management [R/OL]. [2005?08?12].http://csrc.nist.gov/publications/nistpubs/800?57/SP800?57?Part1.

[9] BARRINGER H, GOLDBERG A, HAVELUND K, et al. Rule?based runtime verification [J]. Lecture Notes in Computer Science, 2004, 2937: 44?57.

[10] BAZZI R A, NEIGER G. Simplifying fault?tolerance: providing the abstraction of crash failures [J]. Journal of ACM, 2001, 48(3): 499?554.

[11] BRACHA G. Asynchronous Byzantine agreement protocols [J]. Information and Computation, 1987, 75(2): 130?143.

[12] 阳万安,李振,李彦,等.无线分布式系统中基于移动Agent的日志分析[J].现代电子技术,2007,32(10):91?93.

4 结 语

本文讨论分布式系统下错误检测的难点所在和需要解决的问题,并提出一种新的解决方法,即问责机制,通过问责可以确保表现错误的节点最终能被至少一个正确的节点指证出来,同时保证正确的节点不被诬告。问责机制需要的一系列条件限制了它只能在规模适度的环境下使用,除非牺牲部分完整性,一旦满足了这些条件,问责机制就可以在较大规模的网络环境下使用了。

参考文献

[1] 潘爱民.计算机网络[M].4版.北京:清华大学出版社,2004.

[2] 张千里.网络安全新技术[M].北京:人民邮电出版社,2003.

[3] 高永强.网络安全技术与应用[M].北京:人民邮电出版社,2003.

[4] 陈鲁生.现代密码学[M].北京:科学出版社,2002.

[5] 韩海东.入侵检测系统实例剖析[M].北京:清华大学出版社,2002.

[6] 刘洪斐,王灏,王换招.一个分布式入侵检测系统模型的设计[J].微机发展,2003(1):92?95.

[7] ARGYRAKI K, MANIATIS P, IRZAK O, et al. An accountability interface for the Internet [R/OL]. [2007?08?10].http://www.infoscience.epfl.ch/record/109957.

[8] BARKER E, BARKER W, BURR W, et al. Recommendation for key management [R/OL]. [2005?08?12].http://csrc.nist.gov/publications/nistpubs/800?57/SP800?57?Part1.

[9] BARRINGER H, GOLDBERG A, HAVELUND K, et al. Rule?based runtime verification [J]. Lecture Notes in Computer Science, 2004, 2937: 44?57.

[10] BAZZI R A, NEIGER G. Simplifying fault?tolerance: providing the abstraction of crash failures [J]. Journal of ACM, 2001, 48(3): 499?554.

[11] BRACHA G. Asynchronous Byzantine agreement protocols [J]. Information and Computation, 1987, 75(2): 130?143.

[12] 阳万安,李振,李彦,等.无线分布式系统中基于移动Agent的日志分析[J].现代电子技术,2007,32(10):91?93.

猜你喜欢
哈希证人日志
一名老党员的工作日志
“目击证人”长颈鹿(下)
扶贫日志
目击证人
游学日志
基于OpenCV与均值哈希算法的人脸相似识别系统
基于维度分解的哈希多维快速流分类算法
基于同态哈希函数的云数据完整性验证算法
一种基于粗集和SVM的Web日志挖掘模型
一种基于Bigram二级哈希的中文索引结构