袁三男, 杜小敏
(上海电力学院 电子与信息工程学院, 上海 200090)
IPTV监测平台EPG优化方案中的信息提取
袁三男, 杜小敏
(上海电力学院 电子与信息工程学院, 上海 200090)
针对IPTV监测平台的电子节目指南(EPG)“逐级查询”的缺点,提出了对EPG进行“即点即播”的优化方案,并实现了对目标EPG信息的提取.该方案采用3DES加密算法模拟机顶盒访问服务器以获取认证登录,并通过爬虫技术对EPG信息进行筛选组合,进而实现EPG界面的优化.实验结果表明,该方案系统搭建简便易行,工作量小,可在EPG界面上完成调用.
IPTV监测平台; 电子节目指南优化; 3DES加密算法; 爬虫技术
随着三网融合的不断推进以及用户对电视各方面要求的提高,IPTV在国内发展较为迅速.相应地,国家对IPTV运营系统的安全监测也是必不可少的.无论是模拟电视监测、广播电视监测还是数字电视监测,都包含无视频、无伴音、图像静止、无载波、低射频、黑场,以及彩条检测模块、PC显示模块、报警模块等.如今,先进的监测系统已采用分布式监测,或植入GPRS短信通知模块以方便监测[1].然而由于IPTV与模拟电视及数字电视运行机理、传输形式的不同[2],监测系统不能完全移植.因此,IPTV监测系统的建设需要研究开发,特别是“电子节目指南”(Electronic Program Guide,EPG)界面设计的人性化,有助于准确及时收集系统各种故障信息进行报警提示,以确保地区内IPTV系统运行畅通.
目前,IPTV监测平台原有的EPG界面虽然与动态Web界面类似,但在执行过程中,EPG界面的操作需要遥控器控制.尤其是对于层次化结构的子菜单需要多次翻页,逐级查找,操作过程有些繁琐,会耽误最佳故障处理时间.本文设计了一种EPG的优化方案,并完成优化后EPG所需信息的提取,实现监测平台EPG的简单快捷操作.通过PC软件编程模拟机顶盒访问电信服务器以获取认证,在数据库中利用爬虫技术搜取直播、点播、回看等IPTV业务的EPG信息,并保存成相应的格式,供前端调用.
为方便IPTV监测平台的人机交互,EPG界面的制作方法有模型-视图-控制器(Model-View-Controller,MVC)模式[3].这种模式需要搜集IPTV不同业务下的各种节目信息并进行整理归纳.EPG系统的制作工作量大,开发成本高,且所用模板不能满足客户要求.鉴于现有EPG源自电信端EPG服务器数据库中,一般用户是通过机顶盒对服务器进行访问以获取已授权的节目.因此,本文提出在PC机中虚拟遥控器的配合下模拟机顶盒访问服务器获取信息的方法,通过对EPG信息的重新组合,设计客户操作要求的界面信息,实现界面的优化.EPG优化方案中信息提取的设计框图如图1所示.
图1 EPG优化方案的设计示意
EPG优化方案的步骤如图2所示.该方案的基本思想是:先建立“样本系统”,即测试机顶盒在虚拟遥控器控制下访问服务器,同时采用HUB抓取认证过程的IP包;然后分析与服务器间的交互信息,了解交互过程的步骤和原理,进行编程模拟,获取服务器端的认证;最后对EPG服务器提供的信息进行爬虫筛选,分别获取IPTV各业务EPG的URL,供给监测前端进行调用,以满足监测系统的实时性.
图2 EPG优化方案的步骤
IPTV监测系统监测对象是IPTV的6级终端,即IPTV用户中h.264格式视频流及音频信息的播出状况.根据所提出的优化方案,首先,获取机顶盒访问服务器认证的“样本”信息;其次,PC机对该过程和算法进行编程,模拟机顶盒访问服务器获取认证登录;最后,需要对服务器所提供的信息进行爬虫,筛选组合出符合优化标准的EPG信息.
2.1 抓取机顶盒认证过程信息
由于IPTV机顶盒与服务器的交互采用的是TCP/IP 协议,可采用迷你封包抓包器minisiniffer对机顶盒的访问认证过程进行交互信息的抓包.为此,机顶盒和服务器之间不使用交换机而是采用集线器HUB,利用其多端口转发的优势,使PC机与其相连,抓取访问过程中二者的交互信息,并进行TCP包的存储.
经分析,机顶盒和服务器之间采用HTTP方式进行交互,其基本方法是post和get方式[4],因二者的发送机制不同,故不同场合按需要选用.get方式传输容量小、安全性低,但效率高;而与其相反的post方式,容量较大,安全性好,适于传输大量数据.认证过程中二者之间HTTP协议的3次握手,使用get方式传送非机密性数据,使用post方式传送3DES加密后的数据,以防止数据丢失,确保认证登录过程的安全.
2.2 3DES算法的原理及应用
由分析可知,电信IPTV机顶盒可采用ECB式3DES算法进行加密认证,3DES加密算法是基于DES算法与多密钥联合建立的.DES采用了混乱和扩散的组合技术[5],对数据进行代替、置换、异或和移位,以增加数据的复杂程度及抗攻击性,提高安全性.
DES算法原理如下:对明文数据按8 B进行分组处理,即明文按64位分组,密钥长度与其相同.首先,使用一个IP置换表对明文进行初始置换,对64位二进制数按位重新组合,并分成左32位L0和右32位R0两部分.然后,使用一个f函数对L0和R0实施16轮迭代运算,并与原来位进行异或.最后,使用一个IP-1逆置换表对数据作逆置换,给出加密结果[6],DES加密流程如图3所示.
图3 DES加密流程
在16轮迭代运算过程中,每次加密迭代使用的子密钥是不一样的.所用子密钥由64位密钥经过计算得到,先分为左右两半进行置换选择1,然后根据轮数进行不同位数的循环左移,每轮移动的位数如表1所示.将与明文位数相同的数再进行置换压缩并进行异或,可获得16个子密钥,分别为K1,K2,K3,…,K16,依次用于16轮迭代运算中.DES子密钥计算过程如图4所示.
表1 移位表
图4 DES子密钥计算流程
3DES算法是在DES算法基础上的一种增强型加密算法,相当于是对每个数据块应用3次DES加密算法[7].同时,通过增加DES的密钥长度来避免外来的暴力攻击,其安全性比DES高.3DES加密算法分为3DES-CBC密码分组链接和3DES-ECB电子密码本式两种类型[8],二者的算法流程前半部分都一样,不同之处在于CBC式3DES算法要求在加密之前,明文分组时必须先将其与前一组加密结果进行异或,再进行加密处理.下面以EBC式3DES算法为例进行分析,其加密过程为:
(1)
式中:EK(*)——DES加密过程;DK(*)——DES解密过程;P——明文;C——密文.
3DES的密钥需要进行3轮的子密钥计算,把所得的48个子密钥存放在一个变量中,以esk(1),dsk(2),esk(3)的方式存放.其中,esk(1)是加密密钥,dsk(2)是解密密钥,esk(3)是加密密钥.加密密钥和解密密钥的算法相同.由于3DES加密算法和DES加密算法都是对称加密算法[9],解密过程的密钥排列顺序与加密相反,即esk(3),dsk(2),esk(1).3DES密钥的排列方式如图5所示.
图5 3DES密钥的排列方式
电信服务平台利用3DES较强的加密性,自设密钥保证信息的授权安全.机顶盒采用get方式访问服务器,将服务器端返回的数据,用户ID,机顶盒ID,目的IP地址,物理地址,附加信息进行排序组合,作为明文.例如:17750$AB45 8979013EF22231C4670E2BDD0580A5D7D66 E$ad123456789$1110010012340010000000188BDB21 7C$192.168.222.201$00:09:6B:2D:FB:EB$$CT C.系统对于明文字符串自动识别为ASCII码值,每8个一组,即8 B(64位)进行加密,末尾不足8 B的要用0补齐,使得输入数据都得到加密.
采用64位密钥对132个字符进行3DES加密后,密文长度为136 B,用十六进制数表示是272个.其加密结果为:53CA93C14D8306CEBBB 5CBCE079BC19151E51F2EB131BF9113D5B3CF7 F5038CB6DEE25A9C97E4CFB26D3AF6BD705B FBC6B82C54199ADEC4F75D4B25D164D161A36 05FB7C2EAE84EE7013664EDA99BC6AEBA9229 EC60CE33A82254C132B68C534FA1BB8B2B9575 6D3CA615C866B4990721ACCB683C7D2E30BA7 2F3966AE6AA9A79EC99FB2218AD162.之后,采用post方式将加密结果提交给服务器.服务器对数据进行解密,并进行数据是否可以认证通过的判定.若为合理请求,则认证通过,通知EPG服务器下发相应信息;否则,提示请求错误,认证未通过.
2.3 爬虫获取URL
获取服务器认证后,需要在数据库中进行爬虫,才可获取EPG的相关信息.爬虫就是从一个或若干初始网页的URL开始,获得初始网页上的URL,并从当前页面上抽取新的URL放入队列中,直到满足系统的一定停止条件[10],即自动的“目的性数据搜索”.最典型的,就是应用于网络搜索引擎.IPTV监测平台EPG信息的提取引进了“爬虫技术”,从电信EPG服务器的网络数据中,根据“关键字”进行搜索,得到所需要的URL.
由于IPTV较强的双向交互性以及电信端EPG服务器的资源特性,节目搜索以“主题”搜索为主.所以爬虫函数采用了聚焦网络爬虫,选择性地爬行那些与预先定义好的主题相关页面.与通用网络爬虫相比,其优势在于只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,并且聚焦爬虫保存的页面数量少、更新快,适合该方案的工作环境,可以很好地满足EPG信息提取的需求.
IPTV可实现点播、直播、回看等功能.以点播节目EPG信息提取为例,点播节目种类和数量比较多,点播业务的EPG信息提取进行主题搜索时,需要进行多次聚焦爬虫并保存.同理,回看EPG信息的采集过程相同.然而回看节目的EPG的时间标记与点播不同,回看节目单可按照监测前端、采集日期进行聚焦爬虫,对回看节目数量进行自动统计.根据前端EPG界面设计的需要,将采集的信息进行编辑整理,并符合回看节目标准的URL格式要求.回看节目有一定的限制,只能看当日之前两天的存储节目.因此,监测模块需要定时对服务器端的可回看节目进行爬虫采集,以便进行更新.
该系统设计的目的是方便监测中心工作人员对节目故障做出及时处理,当进入到诸多节目列表时,可直接点击进入,克服逐级查找的缺点.前端显示平台若有故障提示,工作人员可切换到手动查询状态下,通过鼠标点击EPG界面上的菜单项目.例如,电影频道的《暗战2》影片播放出现马赛克现象,工作人员点击“电影频道”列表中的节目名称,下发指令给监测模块.该指令即为上述爬虫获取的URL,由于IPTV的EPG菜单采用的是“树”型结构,URL信息的获取需要经过多级进入.例如:电影《暗战2》的URL的提取需要经过首页→点播→电影→动作电影→暗战2→播放等多级过程,提取出该电影播放的URL信息内容为:$HD-暗战2new"$1-1$
该信息支持EPG界面中的《暗战2》按钮模块,点击即可播放.与《暗战2》同级别的影片URL的提取过程与其相同.即接下来返回到动作电影,爬虫获取电影频道内的其他节目所有信息,筛选出影片播放的URL以及演员、导演、电影简介等信息,传给前端显示平台.用鼠标点击电影频道的子菜单列表中节目,即可在屏幕的显示区域进行播放,也可直观地查看故障情况,进而做出相应处理.同理,工作人员可以根据自己需求来选择播放内容,不涉及遥控器,方便快捷.
以点播《西游记》第5集故障为例.当监测系统故障报警提示《西游记》第5集出现故障时,工作人员即刻点击“电视剧”中的“西游记”,支持该节目的EPG信息是经过爬虫综合提取出来的内容,即:
/frame38/program_tv_choose.jsp?programtype=14&programcode=0000000030140004873 089&contentcode=00000020140000092976&colum ncode=0B0502&returnURL=http%3A//10.39.71.13%3A8080/iptvepg/frame38/list_recreation.jsp%3FparentTypeId%3D0B05%26returnURL%3Dhttp%253A//10.39.71.13%253A8080/iptvepg/frame38/vod.jsp%253Fback%253D1%2526 back%253D1";
var series = new Array();var serieindex = 11;var breakpoint = 0;
var tempserie = {name:"《西游记》(86版)第1集猴王初问世",programcode:"0000000030 100004873090",contentcode:"000000200100000 93049",programtype:""};series.push(tempserie);
……
vartempserie = {name:"《西游记》(86版)第25集波生极乐天(大结局)",programcode:"0000000030100004873114",contentcode:"00000 020010000093320",programtype:""};series.push(tempserie).
所提取的EPG信息中包含了《西游记》全部25集的信息.其中vartempserie的programcode:"0000000030100004873114"是节目单号,contentcode:"00000020010000093320"是内容单号,显示坐标、所属类别等.前端平台会根据该信息进行编辑设置,以列表的形式将《西游记》25集的信息呈现给用户,工作人员可点击第5集进行故障查看并进行相应处理,操作简单方便.
同理,直播和回看节目的URL提取过程,比点播稍简单些,菜单级数小,获取方便.直播节目以频道为定值,按照节目规划一直播出,获取首页的同时,各频道节目的URL即可获取.直播节目获取的URL,以北京卫视的URL为例:ChNum="41",ChannelName="北京卫视,ChannelID="907",ChannelURL="http://27.148.240.138/PLTV/88888888/224/3221226059/index.m3u8?rrsip=27.148.240.138&servicetype=1&icpid=SSPID&accounttype=1&limitflux=-1&limitdur=-1&accountinfo=htzbVIFuCCFfuzpikv/0HCq4tJiPIZFY1wvKE88Yn1yWjBErAWXMcOvlDQL0h5VXJNdaryeeOE3CYaW/z8OZIg U+CA6q89mqeOwyaTOmfd3nqvO7xtBGVviDyWU XVnmPT0j5OXyMnZtjVY6jtA6xtg==:2016091 4145637,5912750439132,120.32.126.86,201609141 45637,Umai:CHAN/1326@BESTV.SMG.SMG,383438C2F8D46DA809BB70DC02AB8E9B,-1,0,1,,,2,,,,2,END",ChannelType="1".
回看节目是对特定频道的特定时间下的直播内容进行回放,其检索条件可按照监测前端、采集日期逐级进入选取.以2016年9月13日东南卫视的《天天加油站》为例,其URL内容为:
本文采用3DES算法编程模拟机顶盒访问服务器,通过爬虫技术筛选组合获取IPTV监测平台EPG的URL信息,支持节目信息以列表的形式显示在监测屏幕上.该信息提取的优化算法使得EPG具有“即点即播”的功能,克服了逐级查找的缺点.优化后的EPG操作灵活,更重要的是可以节约时间,提高工作效率和应变能力,具有重要的应用价值.
[1] 李国华,武爱敏.分布式 IPTV 监测监管系统的设计与实现[J].广播与电视技术,2013,39(12):154.
[2] 毛鑫.IPTV 信号监测设计与实现[J].电视技术,2011,35(24):88-92.
[3] 徐文元.电信领域资源的通用呈现的研究和实现[D].吉林:吉林大学,2006.
[4] 单俊丽.基于 Android 的流媒体客户端的研究与设计[D].西安:西安电子科技大学,2013.
[5] 李华.基于 FPGA 的 3DES 加密算法的设计[D].西安:西安电子科技大学,2013.
[6] 王甫莉,陈健,郭晋亮.3-DES IP 核的 VerilogHDL 设计[J].电子技术应用,2007,33(1):133-135.
[7] 张元金.3DES 分组加密算法模型分析[J].计算机与数字工程,2014,42(8):1 468-1 471.
[8] 朱欣欣,李树国.基于 FPGA 的高性能 3DES 算法实现[J].微电子学与计算机,2015,32(9):54-59.
[9] 吴翰明.信息隐藏在智能终端平台上的应用研究[D].北京:北京邮电大学,2013.
[10] 陈哲.垂直搜索中网页抓取技术的研究[J].科技信息,2009(22):182.
(编辑 胡小萍)
Information Extraction of EPG Optimization Schemeon IPTV Monitoring Platform
YUAN Sannan, DU Xiaomin
(SchoolofElectronicsandInformationEngineering,ShanghaiUniversityofElectricPower,Shanghai200090,China)
To overcome the shortcomings of the Electronic Program Guide(EPG) “gradual query” on IPTV Monitoring platform,the “Point-to-play” operation is optimized and a EPG optimization scheme is proposed which has also achieved the extraction of the EPG information.This scheme uses the 3DES encryption algorithms to follow the process in which the set-top box accesses the server to obtain certification,and combines the EPG information with the help of the Crawler technology.In this way it could work the optimization of EPG interface.The experimental results show that the scheme proposed is easy to carry out with a smaller workload,and is called on the EPG interface.
IPTV monitoring platform; EPG optimization; 3DES encryption algorithm; computer robots
10.3969/j.issn.1006-4729.2017.02.015
2016-09-07
袁三男(1967-),男,博士,副教授,江苏苏州人.主要研究方向为通信与信息系统,流媒体网络,数字电视,嵌入式系统等.E-mail:samuel yuan @shiepedu.com.
TN934.3;TN948.43
A
1006-4729(2017)02-0185-06