基于对等网络的大规模视频安全组播协议

  • 格式:pdf
  • 大小:639.84 KB
  • 文档页数:4

ISSN100020054CN1122223󰃗N 清华大学学报(自然科学版)JTsinghuaUniv(Sci&Tech),2008年第48卷第10期2008,Vol.48,No.10w33http:󰃗󰃗qhxbw.chinajournal.net.cn 

基于对等网络的大规模视频安全组播协议

张 江, 罗建光, 杨士强(清华大学计算机科学与技术系,北京100084)

收稿日期:2007206226基金项目:国家自然科学基金资助项目(60432030);国家“九七三”基础研究基金项目(2006CB303103)作者简介:张江(1972—),男(汉),江苏,博士研究生。通讯联系人:杨士强,教授,E2mail:yangshq@tsinghua.edu.cn摘 要:为了解决现有的对等网络流媒体组播方案缺乏安全通信机制的问题,提出了一种基于对等网络的大规模视频安全组播协议(P2P2SMP)。该协议第一次给出了基于随机传播和数据驱动对等网络的安全视频组播方案,通过将密钥更新消息嵌入于流调度协议在节点间通过接力的方式传递,不需构建专门的密钥分发网络,并可提高密钥分发的可靠性和保证密钥与视频数据的同步性;通过采用批量密钥更新方案,可以进一步降低用户频繁加入󰃗退出导致的密钥更新开销。关键词:数据安全;组密钥管理;对等网络组播中图分类号:TP309.2文献标识码:A文章编号:100020054(2008)1021659204Securemulticastprotocolforlarge-scalestreamingmediaoverP2PnetworksZHANGJiang,LUOJianguang,YANGShiqiang(DepartmentofComputerScienceandTechnology,TsinghuaUniversity,Beijing100084,China)Abstract:Asecuremulticastprotocolforlarge2scalestreamingmediaoverpeer2to2peer(P2P)networks,P2P2SMP(securemulticastprotocol),wasdevelopedtoaddressthechallengesofaddingconfidentialitytoP2Pmulticasts.Theprotocolincludesasecuremulticastschemeforthepull2baseddata2drivenP2Pmulticastprotocol.Byembeddingtherekeyingmessageintothestreamingprotocol,theprotocoldoesnotneedaspecialkeydistributionnetwork,thusmakingthekeydistributionmorereliableandguaranteeingthattheupdatedgroupkeyisalwaysreceivedbythegroupmembersaheadoftheencrypteddata.Inaddition,theprotocolemploysagroupbatchrekeyingscheme,whichfurtherreducesthegrouprekeyingoverheadinahighlydynamicenvironment.Keywords:datasecurity;groupkeyagreement;P2Pmulticast近年来对等网络组播技术迅速发展并广泛应用于视频直播、视频点播等流媒体组播应用中。相比于早期采用树形的对等网络组播协议,基于随机传播和数据驱动的对等网络组播方案能够有效地改善系统的稳定性,提高系统的吞吐量,从而支持高质量超大规模的流媒体直播应用[1]。然而目前这些方案普遍没有考虑到流媒体数据传输的安全性,无法防止非授权用户非法使用流媒体内容。流媒体组播的安全传输控制通常采用组播密钥管理的方式来实现。目前提出的组密钥管理方案,如LKH[2]等,基本上都是基于IP组播的,需要IP组播路由器的支持,不能直接应用于对等网络组播系统中。文[3]中提出了一种针对NICE[4]等基于树型的对等网络组播协议的安全组播方案,在组播协议的基础上进行扩展实现密钥管理,不用增加大量额外的协议开销,实现简单。但该方法主要针对树型的对等网络组播协议,而且未考虑在对等网络环境中密钥分发和数据同步的问题。文[5]提出一种可适用于对等网络流媒体组播的密钥管理机制,其采用基于分布式哈希表(DHT)的特定逻辑结构来构建专门的密钥分发网络,对组用户动态地加入和退出具有较强的鲁棒性,但该方案对原对等网络组播协议改动很大,需增加较大的协议开销。为了解决上述问题,本文提出了基于对等网络的大规模视频安全组播协议(P2P2SMP),给出了基于随机传播和数据驱动的对等网络安全视频组播方案。1 P2P-SMP协议在基于随机传播和拉模式数据驱动流调度策略的对等网络组播协议中,媒体内容被切分成一个个数据包,并按照先后顺序进行编号。每一个节点都有一个交换窗口和一个缓冲区位图。前者标识该节点与邻居节点交换数据的范围,后者标识缓冲区中交换窗口内所拥有的数据包,每一个比特表示对应的数据包是否在缓冲区内。交换窗口将按照时间不断向前移动,同时每一个节点都周期性地与邻居节点交换缓冲区位图信息(BMMessage),以告知邻居节点自己拥有数据包的情况。每一个节点根据邻居节点的数据情况,将自己缓冲区中缺失的数据从其他声明拥有该数据的邻居节点处请求过来,以补全自己缓冲区中的数据。本文提出的P2P2SMP直接在基于随机传播和拉模式数据驱动的对等网络组播协议上进行扩展,不需构建专门的密钥分发网络。1.1 基本方案基本方案直接对基于随机传播和拉模式的数据驱动对等网络组播协议进行扩展,在节点间定期交换的BMMessage中嵌入密钥更新消息并在节点间通过接力的方式传递。通常原BMMessage的格式是〈Seqnum-first-segment,Indicate-bits〉,其中Seqnum-first-segment指示节点缓冲区中第一个数据包的序列号,而Indicate-bits指示当生成缓冲区位图信息时,后续数据包是否在缓冲区中。为了在节点间传输密钥更新消息,在BMMessage中需附加参数,即〈Seqnum-GK-change,GK-Rekeying-Message〉,其中Seqnum-GK-change指示采用更新的组密钥(GK)加密的第一个数据包的序列号,而GK-Rekeying-Message为密钥更新消息,包含更新后的组密钥(GK)和组控制器(GC)的签名。当有新用户U加入通信组时,新用户发送加入申请消息至GC,经GC认证成功后,可加入通信组,GC为新用户授予全局唯一的节点标识符id。GC生成新的GK,并用更新后的GK加密流媒体数据进行组播。具体的新用户加入过程如下:1)新用户U与GC通过DH密钥协商算法建立安全通道,协商得到安全通道密钥KU2GC,并通过安全通道向GC发出加入申请消息(包含U的公钥pkU),GC对该用户的身份进行认证,认证成功后,GC为新用户分配全局唯一的id。2)GC→U:EKU2GC(id󰃜EskGC(id󰃜pkU)),其中GC→U:M表示GC单播消息M给U,EK(M)表示用密钥K加密消息M,skGC表示GC的私钥,M1󰃜M2表示消息M1和M2的合并。3)GC从其维护的节点列表中随机选取固定数目的节点信息传送给新用户U,构成新用户U的邻居节点初始列表。4)新用户U向其邻居节点发送消息JF󰃜id󰃜EskGC(id󰃜pkU)󰃜pkU,其中JF为加入标志。其邻居节点验证U为合法组用户后与其建立安全通道,并通过随机传播协议交换信息。5)GC生成新的组密钥GK,并用GK加密流媒体数据。设Seqnum-GK-change为采用GK加密的第一个数据包的序列号。6)GC通过安全通道向U单播密钥更新消息GC→U:EKU2GC(Seqnum-GK-change󰃜GK󰃜SGC(GK)),其中SGC(M)表示用GC的私钥对消息M进行签名。7)GC用原组密钥oldGK加密更新后的GK,并将〈Seqnum-GK-change,EoldGK(GK󰃜SGC(GK))〉嵌入在BMMessage中向其邻居用户节点发送。8)用户节点收到嵌入密钥更新消息的BMMessage后,用其拥有的oldGK解密消息可获得GK,并通过与其邻居节点交换BMMessage转发组密钥更新消息,最终所有的用户节点均可获得更新后的GK。当组用户U退出时,U首先通过随机传播协议向其所有的邻居节点发送退出消息,邻居节点在收到消息后,将它从邻居节点列表中删除。然后U向GC发送退出请求消息。GC收到后,生成新的GK,并用GK加密流媒体数据。具体的处理流程如下:1)申请退出的组用户U(设其标识符为id)通过安全通道向其邻居节点发送退出消息LF󰃜id󰃜EskGC(id󰃜pkU)󰃜pkU,其中LF为退出标志。其邻居节点收到消息后,将U从其邻居节点列表中删除。2)U向GC发送退出请求消息。GC收到后,生成新的GK,并用GK加密流媒体数据。设Seqnum-GK-change为采用更新的GK加密的第一个数据包的序列号。3)GC在BMMessage中嵌入密钥更新消息〈Seqnum-GK-change,EKGC2W(GK󰃜SGC(GK))〉并分别向指定的邻居节点(设为W)发送。4)用户节点W收到GC发送的嵌入密钥更新消息的BMMessage后,用其拥有的安全通道密钥KGC2W解密获得更新的GK,并向其邻居节点(设为X)发送嵌入〈Seqnum-GK-change,EKW-X(GK󰃜SGC(GK))〉的BMMessage。5)X收到密钥更新消息后,以步骤4)类似的方式向其邻居节点(除W外)转发密钥更新消息。最终通过节点间接力的方式,所有组用户可收到GK。1.2 批量密钥更新方案为了进一步降低用户频繁加入󰃗退出导致的密0661清华大学学报(自然科学版)2008,48(10)钥更新开销,在基本方案的基础上提出了批量密钥更新方案,将整个处理时间划分为若干等长的时间片,在一个时间片内批量处理上一个时间片内组用户的加入和退出请求,生成新的组密钥并分发。具体的流程如下:1)在一个时间片内,申请加入通信组的用户(设为U)通过安全通道向GC发出加入请求消息,GC对该用户的身份进行认证成功后,为新用户分配标识符id。GC记录新用户的加入请求,并通过安全通道向新用户单播消息id󰃜EskGC(id󰃜pkU)。离开通信组的用户向其所有邻居节点发送离开消息,其邻居节点将离开节点从各自的邻居节点列表中删除。离开节点向GC发送退出请求消息,GC记录组用户的退出请求。2)在下一个时间片的开始,GC集中处理上一个时间片内的新用户加入请求和组用户的退出请求,GC从其维护的节点列表中分别随机选取固定数目的节点信息传送给新用户,构成新用户的邻居节点初始列表。各个新用户收到GC的消息后和其邻居节点列表中的邻居建立安全通道,并通过随机传播协议交换信息。3)GC生成新的GK,并用更新后的GK加密流媒体数据。4)GC以基本方案中组用户退出的方式将加密的密钥更新消息嵌入在BMMessage中通过节点间接力的方式传送至所有的组用户。2 协议的性能评价P2P2SMP协议通过将密钥更新消息嵌入在BMMessage中在节点间传递密钥更新消息和加密的视频数据。用户节点收到BMMessage时,先检测其中是否嵌入〈Seqnum-GK-change,GK-Rekeying-Message〉消息,如果有则可解密还原出更新的组密钥GK和第一个用GK加密的数据包的序列号。用户节点再检测其收到的BMMessage中的〈Seqnum-first-segment,Indicate-bits〉,根据其指示将自己缓冲区中缺少的数据包从声明拥有该数据包的邻居节点处请求过来,以补全自己缓冲区中的数据。因此,更新后的组密钥GK肯定在以GK加密的数据包之前被用户节点接收,从而确保密钥更新和加密视频数据之间的同步性。设计实现了一个事件驱动的数据包级的模拟器,该模拟器先实现了一个基于随机传播和拉模式数据驱动的对等网络组播系统,然后在此基础上通过对流调度协议进行扩展实现了P2P2SMP安全组播协议。在模拟器中,通信组的最大规模为1万个用户节点,节点的平均在线时间为1500s。模拟实验的性能评价指标描述如下:●GC的密钥通信开销:GC发送密钥更新消息的流量占GC总流量的百分比。●平均用户节点密钥通信开销:用户节点密钥分发通信流量占节点全部流量的百分比。●GC的计算开销:GC与用户节点建立安全通道和加密组密钥所用的计算开销,用实际运算的时间表示(s)。●平均用户节点计算开销:用户节点建立安全通道和加解密组密钥所用的平均计算开销,用实际运算的时间表示(s)。●平均密钥更新消息丢失率:当端到端传输存在一定的丢包率时,密钥更新消息的丢失率。图1和图2分别比较了在用户节点的邻居节点数Ucnt=30,批量密钥更新的时间周期Tbatch=1s时基本方案和批量密钥更新方案中GC的密钥通信开销和平均用户节点的密钥通信开销。在基本方案中,随着组规模N的增长,GC的密钥通信开销和平均用户节点的密钥通信开销线性增长,而在批量密钥更新方案中GC的密钥通信开销和平均用户节点的密钥通信开销基本保持不变,而且要远小于基本方案中相应的开销。这是因为在批量密钥更新方案中,在一个时间片内GC批量处理多个用户加入󰃗退出请求事件,只需更新一次组会话密钥,可以大大降低由用户频繁加入或退出导致的密钥通信开销。从图1和图2中可知,批量密钥更新方案中GC和用户节点的密钥通信的流量占其总通信流量的比例非常低,不到1%。