集群软件心跳机制的安全性
谭毓安(北京理工大学计算机科学与工程系100081) 摘要:在集群系统中,心跳是碧点之间的通信手段.本文从心跳数据l
的鉴别和抵御重发攻击两个方面讨论丁心跳的安生性为适应寨群荼统不l
间断运行的特点,实现丁鉴别密钥的在线替换.l 关键词:机群通信机制计算机安叠【
集群是一种由软硬件相配合而构成高可用系统的解 决方案一组计算机互连起来并相互监控,若其中任一 计算机发生故障,集群系统会将其应用和服务切换到其 他计算机上运行其中,心跳机制的任务是在集群结点 之间传送集群系统的有关信息,如结点失败,结点恢复,
在结点上启动或停止某项服务等. 加入或删除一十结点,
在由多个结点组成的集群系统中,心跳可通过广播或多 点播送的方式传送.在收到心跳后,根据心跳附带中的 信息,集群结点上远行的集群软件将采取对应的
. 在集群软件的设计中,在强调对应用的保护和对系 统资源检测功能的同时,心跳信息的安垒性是易被忽略 的一个方面.如果攻击者侵人网络,发送伪造的心跳信 息,将导致集群软件采取错误的行动甚至造成灾难性的 后果.因此,有必要在集群软件的心跳机制中加人安垒 性处理.
1心跳的鉴别
结点之间传送心跳的介质可以是专有的,仅仅被集 群结点所使用,也可以是共享传输介质(如以太网等). 为防止心跳传输成为单点故障,集群系统支持结点之间 建立多条心跳传输路径,在某条心跳故障时仍能维持结 点之间的通信.因此,除使用专有介质(如RS一232
NUMA等)以外,集群系统还使用共享介质作传输心跳. 在共享介质中可能存在的窃听和欺骗同样对集群系统构 成威胁.
在集群系统中,结点在发生故障时能够将应用切换 到其他结点上,结点之间的心跳会导致集群软件执行敏 感操作,例如,增加或删除结点的IP地址,重启动或关 掉结点,挂接或卸载文件系统等.攻击者通过在心跳网 络上伪造心跳信息,就有可能实现其目的.
在集群系坑中,需确保只有事先指定的集群成员结 点发送出的心跳才是有效的.因此,在心跳的传送中需 要使用鉴别技术来验证心跳的合法性.
所有集群成员结点共享一个秘密密钥k,结点A在 发送心跳信息in到结点B时,根据密钥k计算出信息I]1 的鉴别码a,随心跳信息m发送给结点B.结点B在收到 tl跳信息//I和鉴别码a后,根据与结点A相同的计算方 法,根据密钥k计算出信息m的鉴别码a,比较a和a. 如相等则证实心跳信息来自集群结点,否则说明心跳信 息在传送过程中出现错误,或者是攻击者伪遣的鉴别 的过程如图1所示.MAC为MessageAuthenticationCode.
图1心跳信息的鉴别过程
在集群软件的实现中,采用了HMAC?SHAI算法. 以保密散列算法SHA—l作为报文摘要函数,可以直接调 用已发布的SHA一1库函数来计算鉴别码,不必在集群软 件中重写此算法.HMAC的描述有如下的形式【]I HMACk(x)=F(kGopad,F(I商ipad】)
其中F为保密散列算法,对于SHA一1,生成的摘要 为160位若k的位数不足160位,需加0补足.ipad和 opad为160位常量.ipad规定为莲续20十字节的0x36, opad规定为连续20个字节的0x5C.在调用SHA?1库函
数的基础上,HMAC可自行实现井用RFC2202提供的 测试数据来验证其正确性.
MD5是另一个广泛使用的选择报文摘要函数,在心 跳信息鉴别中选择使用SHA一1而不是MD5有两个理由. 首先,SHA一1的摘要为160位,比MD5长32位,具有更 好的安全性.其趺,SHA-1的计算量开销比MD5大,但
由于心跳信息在结点之间的流量很小,不超过1KB/s,因 此采用SHA-1并不会给系统带来很大负担【. 2在线更新鉴别密钥
用于鉴别结点心跳信息的密钥由各结点共享.而定 期更换密钥是安全策略的基本要求.在更新密钥时.一 个简单的做法是停止集群软件,更新密钥到各个结点.再 启动集群软件.这种做法违背了集群软件的设计初衷,集 群软件运行在美键性场台,需不间断运行,甚至长达数 年之久.因此,需设计一种机制,在集群软件运行时在 线更换心跳鉴别密钥.
设原心跳鉴别密钥为kl,需更换为k2.分发密钥时 指定一个密钥对(kakb),其中,ka为发送鉴别密钥, kb为接收鉴别密钥.发送心跳时使用ka计算鉴别码,接 收心跳时使用kb验证鉴别码.更换过程中分为7十步骤: (1)将(kl,kl/k2)分发到所有结点
(2)在所有结点上启用(k1,k1/k2)密钥对
(3)将(k2,kl/k2)分发到所有结点
(4)在所有结点上启用(k2,k1/k2)密钥对
(5)将(k2,k2)分发到所有结点
(6)在所有结点上启用(k2,k2)密钥对
在初始状态,所有结点在发送和鉴别心跳时使用鉴 别密钥k1.在步骤1和2完成后,结点发送时使用kl计
算鉴别码,接收时使用k1和k2验证鉴别码,实际上,此 时收到的心跳信息的鉴别垒部使用k1即可,设置k2的目 的是能够识别步骤4后结点发出的心跳.在步骤3和4完 成后,结点发送时使用k2计算鉴别码,接收时使用k1和 k2验证鉴别码.此时,由于步骤2已经设置了k2为接收 鉴别密钥,因此以k2为密钥鉴别码的心跳能够被结点所 认可.步骤5和6执行完成后,在接收心跳时结点不再认 可以k1为鉴别码的心跳,因为所有心跳发送时均使用k2 为鉴B码.密钥使用的变化过程如表1所示.
表l密钥更新过程
从上述步骤可知,在集群软件的心跳验证机制中.在更新 密钥时需必须兜许发进鉴别密钥和接收鉴别密钥不同.并且接 收心跳后需使用新旧两个鉴别密钥来计算鉴别码. 除更换密钥外,还可用这种方法来更换鉴别过程中使用的 散列保密算法,如将SHA?1替换为MD5.在舟发密钥对时,需 同时指出其数列保密算法.散列保密算法的实现置于动态连接 库中,若引^原集群软件未实现的新的数列保密算法还可替 换其动态连接库.
3抵翻t发攻击
主动攻击者可
心跳网络上传送的信息及其鉴别 码,将其存储起来,在某一时机重发此心跳信息,导致 集群结点执行攻击者希望的操作.因为鉴别码也随心跳 信息一同出现在网络上,攻击者已获得该心跳的鉴别码, 因此靠心跳鉴别的手段不能抵御重发攻击.
对付重发攻击的一个有效办法是在心跳信息上加时 间戳,并指定其有效期.对超过有效期的心跳信息,可 认为是攻击者的重发动作,予以丢弃.但这种方式要求 结点之间的始终必须保持严格同步,在集群结点数量很 多或由多种异构系统组成时,保持时间同步的要求是苛
刻而不易实现的.
在考虑安全性问题之前,为避免收到网络中因为超 时,拥塞等原因导致的心跳重发,心跳信息中已经包括 了一个顺序号,每发送一次顺序号加1结点重新启动后, 顺序号从0重新开始.
顺序号的机制不能对付重发攻击,因为攻击者可记 录心跳信息及其顺序号,在结点重新启动后,攻击者记 录的心跳信息中所含的顺序号即被认可,通过重发这些 心跳信息可导致集群软件采取错误动作.
因此,在心跳信息中,除顺序号外还需引入实例号. 在结点重新启动后,在顺序号归0的同时,实例号加1. 因此,心跳信息中的<实例号,顺序号>组合绝不会重复. 与最近一次接受到的有效心跳(实例号,顺序号>相比较, 攻击者所重发的心跳信息在任何时刻均能被识别出来. 结点收到的一tL,JJIs信息可分为以下几种情况: 表2重发攻击的判别
(下转摹57页)
虚拟专用网
连锁企业中的应
摘要:虚拟专用罔(VirtualPrivateNetworkVPN)是当前网络疆域的研究热点.
具有非常广阔的应用前景.本文对VPN进行了垒面的阐述.并且在对当曹建镶企
业的妊
营特点和管理需要以噩传统连锁企业用络结构的不成功地爿' VPN应用于连锁企业的网络设计和经营管理实践寰明,VPN的应用极大地增曩了
建镶
企业的市场竞争能力.
关键词:VPNInternet罔络安垒连镶经蕾
作者通过对一家大型连锁企业实施VPN,成功地将
VPN应用于连锁企业的网络设计和经营管理.实践证明, VPN的应用能够极大地提高连锁企业的市场竞争力和经 济效益.
1连镶企业的经蕾管理特点
连锁经营是现代化商业的经营和组织方式,它是以 现代化的大规模组织为原则,通过提高协调动作能力来 达到规模效益的目的.连锁企业通常由一个总店,一级 或多级配送中心以及多个门店组成,总店,配送中心门 店在地域上通常是非常分散的.
在连锁企业中,总店是连锁企业经营管理的核心, 具备采购管理,财务管理,质量管理,^事管理,营销 策略等功能门店是连锁企业的基础,主要职责是按照 总店的指示和服务规范承担13常的销售业务;配送中心 是连锁企业的物漉机构,承担门店所需商品的入库,存 储,配货,铺货等任务.总之,连锁企业的经营管理可 店以及供应商之间的数据交换,设计连锁企业的网络结 构如图1所示.
在传统的连锁企业网络结构中,考虑到总店,门店 及供应商与不同配送中心之间业务联系的复杂性,建立 连锁企业信息中心,总店,各门店及供应商与配送中心 的数据交换均通过信息中心进行.从数据传送量,速度 要求和成本三方面来考虑,门店及供应商与信息中心的 数据交换通过公用网实现,而总店.配送中心与信息中 心的数据交换采用DDN专线.
简要概括为"一多五统一",即一个总店拥有多个门店,图1传统方式下连锁企业的
网络结构
实行统一进货,统一储存,统一销售,统一运输统一 彤纂.从业务梳程看,门店通过公用网向总店发送销售信 息和订货信息总店对门店销售信息进行}亡总和分析,及
2传统连制I企业网络结构时做出科学决策以指导门店经营总店对门店订货信息
在传统方式下,为完成连锁企业总店,配送中心,门进行收集并与信息中心的库存
信息相比较,若缺货则通