时间:2016-02-25 10:47 文章来源:http://www.lunwenbuluo.com 作者:张江,罗建光,杨士强 点击次数:
摘要:为了解决现有的对等网络流媒体组播方案缺乏安全通信机制的问题,提出了一种基于对等网络的大规模视频安全组播协议(P2P-SMP)。该协议第一次给出了基于随机传播和数据驱动对等网络的安全视频组播方案,通过将密钥更新消息嵌入于流调度协议在节点间通过接力的方式传递,不需构建专门的密钥分发网络,并可提高密钥分发的可靠性和保证密钥与视频数据的同步性;通过采用批量密钥更新方案,可以进一步降低用户频繁加入/退出导致的密钥更新开销。
关键词:数据安全;组密钥管理;对等网络组播
近年来对等网络组播技术迅速发展并广泛应用于视频直播、视频点播等流媒体组播应用中。相比于早期采用树形的对等网络组播协议,基于随机传播和数据驱动的对等网络组播方案能够有效地改善系统的稳定性,提高系统的吞吐量,从而支持高质量超大规模的流媒体直播应用。然而目前这些方案普遍没有考虑到流媒体数据传输的安全性,无法防止非授权用户非法使用流媒体内容。
流媒体组播的安全传输控制通常采用组播密钥管理的方式来实现。目前提出的组密钥管理方案,如LKH等,基本上都是基于IP组播的,需要IP组播路由器的支持,不能直接应用于对等网络组播系统中。中提出了一种针对NICE等基于树型的对等网络组播协议的安全组播方案,在组播协议的基础上进行扩展实现密钥管理,不用增加大量额外的协议开销,实现简单。但该方法主要针对树型的对等网络组播协议,而且未考虑在对等网络环境中密钥分发和数据同步的问题。提出一种可适用于对等网络流媒体组播的密钥管理机制,其采用基于分布式哈希表(DHT)的特定逻辑结构来构建专门的密钥分发网络,对组用户动态地加入和退出具有较强的鲁棒性,但该方案对原对等网络组播协议改动很大,需增加较大的协议开销。
为了解决上述问题,本文提出了基于对等网络的大规模视频安全组播协议(P2P-SMP),给出了基于随机传播和数据驱动的对等网络安全视频组播方案。
1、P2P-SMP协议
在基于随机传播和拉模式数据驱动流调度策略的对等网络组播协议中,媒体内容被切分成一个个数据包,并按照先后顺序进行编号。每一个节点都有一个交换窗口和一个缓冲区位图。前者标识该节点与邻居节点交换数据的范围,后者标识缓冲区中交换窗口内所拥有的数据包,每一个比特表示对应的数据包是否在缓冲区内。交换窗口将按照时间不断向前移动,同时每一个节点都周期性地与邻居节点交换缓冲区位图信息(BMMessage),以告知邻居节点自己拥有数据包的情况。每一个节点根据邻居节点的数据情况,将自己缓冲区中缺失的数据从其他声明拥有该数据的邻居节点处请求过来,以补全自己缓冲区中的数据。本文提出的P2P-SMP直接在基于随机传播和拉模式数据驱动的对等网络组播协议上进行扩展,不需构建专门的密钥分发网络。
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密钥协商算法建立安全通道,协商得到安全通道密钥KU-GC,并通过安全通道向GC发出加入申请消息(包含U的公钥pkU),GC对该用户的身份进行认证,认证成功后,GC为新用户分配全局唯一的id。
2)GC→U:EKU-GC(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:EKU-GC(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,EKGC-W(GK|SGC(GK))〉并分别向指定的邻居节点(设为W)发送。
4)用户节点W收到GC发送的嵌入密钥更新消息的BMMessage后,用其拥有的安全通道密钥KGC-W解密获得更新的GK,并向其邻居节点(设为X)发送嵌入〈Seqnum-GK-change,EKW-X(GK|SGC(GK))〉的BMMessage。
5)X收到密钥更新消息后,以步骤4)类似的方式向其邻居节点(除W外)转发密钥更新消息。最终通过节点间接力的方式,所有组用户可收到GK。
1.2批量密钥更新方案
为了进一步降低用户频繁加入/退出导致的密钥更新开销,在基本方案的基础上提出了批量密钥更新方案,将整个处理时间划分为若干等长的时间片,在一个时间片内批量处理上一个时间片内组用户的加入和退出请求,生成新的组密钥并分发。具体的流程如下:
1)在一个时间片内,申请加入通信组的用户(设为U)通过安全通道向GC发出加入请求消息,GC对该用户的身份进行认证成功后,为新用户分配标识符id。GC记录新用户的加入请求,并通过安全通道向新用户单播消息id|EskGC(id|pkU)。离开通信组的用户向其所有邻居节点发送离开消息,其邻居节点将离开节点从各自的邻居节点列表中删除。离开节点向GC发送退出请求消息,GC记录组用户的退出请求。
2)在下一个时间片的开始,GC集中处理上一个时间片内的新用户加入请求和组用户的退出请求,GC从其维护的节点列表中分别随机选取固定数目的节点信息传送给新用户,构成新用户的邻居节点初始列表。各个新用户收到GC的消息后和其邻居节点列表中的邻居建立安全通道,并通过随机传播协议交换信息。
联系方式
随机阅读
热门排行