使用iptv进行流媒体点播的方法与系统的制作方法_2

文档序号:9263767阅读:来源:国知局
用户终端发起的流媒体点播请求,流媒体点播请求中携带IPTV平台反馈给用户终端的URL;
[0048]具体地,用户终端在接收到IPTV平台反馈的URL地址后,直接将其转发给⑶N。
[0049]SI 10,CDN自接收的URL中提取用户访问信息,对提取的用户访问信息进行解密;
[0050]具体地,⑶N按照与IPTV平台约定的位置自URL中提取用户访问信息,并利用公钥对用户访问信息进行解密。
[0051]需要指出的是,可以周期性地更新IPTV加密与⑶N解密所使用的公钥,以进一步保证安全性。
[0052]S112,CDN根据流媒体点播请求对解密后的用户访问信息进行校验,在校验成功后向移动终端发送所请求点播的流媒体;
[0053]具体地,可以将解密出的用户访问信息逐项与流媒体点播请求中携带的信息进行比较,以验证流媒体点播请求的合法性。
[0054]在该实施例中,由于IPTV平台将用户访问信息加密后添加到了所请求的URL中,使得用户终端自IPTV平台获取的URL中不仅仅包括访问流媒体的地址还包括加密信息,因此用户终端不能盗用利用该URL。CDN在接收到包含加密信息的URL后,首先对其中的加密信息进行验证,在验证通过后再向用户终端提供所点播的流媒体,进而保证了视频链接的安全性。
[0055]其中,在步骤S112中,CDN根据流媒体点播请求对解密后的用户访问信息进行校验,在校验成功后向移动终端发送所请求点播的流媒体的步骤可以包括:
[0056]由于用户终端向CDN发起流媒体点播请求时会携带用户ID,因此,可以将解密后的用户访问信息中的用户ID与流媒体点播请求中携带的用户ID进行比较,以确保发起播放URL请求和发起流媒体点播请求的用户为同一用户;
[0057]由于CDN可以根据用户终端向其发起的流媒体点播请求获知发送该请求的用户终端的IP地址,因此,如果两个用户ID相同,则将解密后的用户访问信息中的用户终端所使用的IP地址与发送流媒体点播请求所使用的IP地址进行比较,以确保发起播放URL请求和发起流媒体点播请求的用户终端为同一终端;
[0058]如果两个IP地址相同,则判断当前系统时间与解密后的用户访问信息中的访问时间戳的差是否在有效时效内,如果在有效时效内,则向移动终端发送所请求点播的流媒体,这样可以防止用户无限期地点播同一流媒体内容。
[0059]此外,在步骤S104中,IPTV平台对提取的用户访问信息进行加密的步骤可以包括:
[0060]利用AES算法对提取的用户访问信息进行加密;
[0061]基于Base64方式将加密后的用户访问信息转换为字符串;
[0062]判断字符串中是否包含预设字符;
[0063]如包含,则利用URLEncode对字符串进行重编码;
[0064]其中,该预设字符为“/”,为了防止加密信息与URL地址中的“/”混淆,因此需对含有“/”字符的字符串进行URLEncode。
[0065]需要指出的是,上述实施例中的用户终端可以为电脑(PC)、STB (Set-Top Box,机顶盒)或移动终端。
[0066]在一个实例中,由IPTV平台在IPTV播放URL中增加的加密字符串,再由⑶N对加密字符串进行校验的方式实现防盗链,用户访问IPTV时会上报用户ID、IP地址及时间戳,并将这些信息加密成加密字符串添加到点播节目URL的参数中,用户采用包含防盗链信息的URL到⑶N中请求内容播放时,⑶N对URL进行检查,即,从播放URL中获取URL参数中的加密字符串,通过公钥解密出加密字符串对应的用户ID、IP地址及访问时间戳后,再进行校验。当合法用户通过了防盗链机制检验后,CDN立即进行流媒体发送,否则CDN将拒绝推送流媒体。IPTV平台与CDN所使用的密钥支持定期更新,使用密钥加密防盗链信息包含用户ID、IP地址、访问时间戳等用户信息,加密串的生成算法如下:加密串(Key) = AES(USERID +“$$” + IP +“$$” + TimeStamp,密钥)。
[0067]图2是本公开另一实施例的使用IPTV进行流媒体点播的方法的流程示意图。
[0068]如图2所示,该实施例可以包括两个方面:防盗链流程与防盗链机制。
[0069](一)防盗链流程
[0070]( I) IPTV平台生成加密字符串:
[0071]由IPTV平台对用户信息及访问信息进行加密生成加密串,并添加到访问URL中,其中,加密串的生成格式如下:加密串(Key) = AES (USERID +“$$” + IP +“$$,,+TimeStamp,密钥)。其中,
[0072]USERID:用户ID,用于校验登陆用户ID的合法性;
[0073]IP:当前用户登陆使用的IP地址;
[0074]TimeStamp:用户访问IPTV平台的时间,由IPTV平台生成时间戳;
[0075](2 )⑶N校验用户信息:
[0076]当用户按照给定URL访问时,⑶N将校验URL携带的加密字符串。⑶N通过密钥从加密字符串中解析出用户IP地址和时间戳的值,并对这些信息进行合法性校验:
[0077]首先校验登录⑶N的用户ID是否正确;
[0078]接下来,校验当前访问用户所使用的IP地址与加密字符串中解析出的IP地址是否一致;
[0079]查看当前系统时间与加密字符串中解析出的时间戳的时间差是否在有效时效内;
[0080]如上述三个校验点都符合要求,则允许用户访问;否则拒绝该访问请求。
[0081](3)⑶N返回检查结果:
[0082]合法用户通过检验后,CDN立即向用户终端进行流媒体发送,不允许再次通过返回重定向消息的方式通知客户端再次访问。
[0083](二)防盗链算法
[0084](I) IPTV平台加密URL的格式如下:
[0085]RTSP://GSLB/PhysicalContentID?AuthInfo=% 加密字符串 % ;
[0086]对GSLB解析后如下:
[0087]RTSP://IP:P0RT/H0ST/CMSID
[0088]/PhysicalContentID?AuthInfo=% 加密字符串 %
[0089]其中,
[0090]PhysicalContentID:媒体文件的统一 ID,CDN根据它找到相应内容;
[0091]AuthInfo =IPTV平台产生的防盗链字符串;
[0092]加密字符串:由IPTV平台根据用户ID、IP地址及时间戳生成的加密字符串;
[0093](2)加密方法如下:
[0094]密钥为128位,AES算法使用ECB (Electronic Code Book Mode,电子代码本模式)模式,PKCS7填充模式。
[0095]加密后数据以Base64方式转换为字符串,对于特殊字符进行URLEncoder转义。
[0096](3)字符串加密示例:
[0097](3a)参数
[0098]128 位的密钥:0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,OxOc,OxOd,OxOe,OxOf ;
[0099]用户ID:0xFF1234 ;
[0100]用户IP 地址:183.60.187.40 ;
[0101]访问时间的TimeStamp=1382107131000 (即,2013 年 10 月 18 日 14:38:51);
[0102](3b)根据参数可得到加密字符串的明文:
[0103]16716340$$183.60.187.40$$1382107131000
[0104](3c)通过AES加密后的结果(十六进制表示):
[0105]ff5697b42ee76a324e8239c955a46a92d91806686b6710784b4al9b3c7867elf273758ee3839072b3354ea983fe660al
[0106](3d)加密结果用BASE64编码:
[0107]/laXtC7najJ0gjnJVaRqktkYBmhrZxB4S0oZs8eGfh8nNlju0DkHKzNU6pg/5mCh
[0108](3e) URLEncode对加密后结果进行重编码:
[0109]%2FlaXtC7najJ0gjnJVaRqktkYBmhrZxB4S0oZs8eGfh8nNlju0DkHKzNU6pg%2F5mCh
[0110]本领域普通技术人员可以理解,实现上述方法实施例的全部和部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算设备可读取存储介质中,该程序在执行时,执行包括上述方法
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1