本发明属于iptv网络电视技术领域,具体涉及一种iptv组播内容防篡改方法。
背景技术
传统iptv采用专用网络传送组播视频,在提高播出稳定性的同时也提高了播出安全性。但随着iptvott化的深入改造、iptv公网访问需求的不断增加及公网组播的不断推进,专用网络和公用网络之间的安全边界不断被突破,来自公网的网络攻击、内容篡改等网络攻击不断威胁iptv的播出安全。
iptv组播内容防篡改技术是防范iptv组播视频安全播出风险的重要手段,目前主要有两种实现思路:
(1)视频加密:有线电视通过对直播流加密进行内容防篡改,有较高的安全性,但由于视频的加密及解密均依赖硬件,灵活性差且对iptv平台及终端的改造太大,难以满足iptv组播内容防篡改需求。
(2)视频流中插入固定的签名信息:该方法将固定的签名并插入视频流中,之后在播放端对视频签名信息进行校验。由于不依赖硬件,该方法较视频加密方法灵活性高,但由于签名信息与视频内容无关、签名信息易被伪造,导致该方法安全性较差。
由上述分析可见,现有iptv组播内容防篡改方法尚存在不足,难以满足iptv安全播出要求。
技术实现要素:
针对现有iptv组播内容防篡改方法难以满足iptv安全播出要求的问题,本发明提出了一种新的iptv组播内容防篡改方法;本发明提高了iptv组播内容防篡改的安全性,且不依赖于硬件,对现有系统改造较小。
为实现上述目的,本发明采取的技术方案是:一种iptv组播内容防篡改方法,在直播源侧,对ts复用器进行改造,并增加了防篡改生成模块;当ts复用模块检测到pes携带为i帧后,调用防篡改生成模块,传入pes并将获取的防篡改信息封装到ts传输流中;在终端侧,对ts解复用器进行改造,并增加了防篡改校验模块;ts解复用模块实时检测i帧的pes及对应的防篡改信息,并调用防篡改校验模块完成防篡改校验。
进一步的,所述直播源侧防篡改生成模块实现流程如下:
步骤a、解析pes包;接收到视频pes包后,按照pes格式规范对pes包进行解析;
步骤b、获取pts和dts;解析pes包头后,从中提取pts和dts;
步骤c、解析es包头;从视频pes包体解析视频es包,从中提取帧类型:i帧、b帧、p帧的信息;
步骤d、i帧判断;判断该pes中携带的帧是否为i帧;
步骤e、生成防篡改信息;若pes中携带的帧为i帧,则采用sha1算法对pes进行加密生成校验码,并生成防篡改信息;
步骤f、将防篡改信息插入ts封装流中;将防篡改信息封装成188字节的ts包,采用pid为0x1fff,不足188字节部分全部填充为0xff;并将防篡改信息插入在视频pes的ts包之前。
更进一步的,所述步骤e中,校验码生成算法为:校验码=sha1(pes包+sha1密钥),sha1密钥为8字节自定义扰码串。
更进一步的,防篡改信息定义格式如下:
(1)pts:视频pes包的显示时间戳,该字段长度为5字节;
(2)dts:视频pes包的解码时间戳,该字段长度为5字节;
(3)版本号:版本号不同,相应的sha1扰码也不同;通过该字段进行sha1密钥升级,防止密钥泄露;该字段长度为1字节,取值范围为[1-255];
(4)校验码:即对携带i帧的pes包进行sha1加密得到的数据;该字段长度为20字节。
进一步的,所述终端侧,即iptv机顶盒侧防篡改校验模块实现流程如下:
步骤a、解析pat、pmt,获取视频pid;从ts流中针对188字节的ts包进行检查,通过解析pid为0x00获取pat,通过pat提取pmt的pid,最后从pmt中提取视频pid;
步骤b、根据pid过滤ts包;通过视频pid过滤ts流中视频包,并过滤pid为0x1fff的防篡改信息包;
步骤c、组装视频pes包,并解析防篡改信息包;将过滤得到的视频ts包进行组装,得到视频pes包;
步骤d、判断pes包是否完整;对视频pes包的完整性进行检查,若pes包不完整,则不进行防篡改校验;否则进入下一步骤;
步骤e、是否i帧;判断视频pes包中是否携带i帧,若不携带i帧,不进行防篡改校验;否则进入下一步骤;
步骤f、计算防篡改校验码;若pes中携带的帧为i帧,则采用sha1算法对pes进行加密,生成校验码;
步骤g、校验防篡改信息;校验ts流是否携带防篡改信息,并对防篡改信息进行校验,当校验失败时通知上层应用进行处理。
更进一步的,所述步骤f中,校验码生成算法为:校验码=sha1(pes包+sha1密钥),sha1密钥为8字节自定义扰码串。
更进一步的,所述步骤g中主要处理环节如下:
(1)判断ts中是否携带防篡改信息;通过视频pes中pts和dts两个字段,查找对应的防篡改信息;若未查找到防篡改信息,则校验失败,该视频可能为非法视频;
(2)校验防篡改信息中的版本号;若防篡改信息中的版本号信息在终端侧不存在,则校验失败,该视频可能为非法视频;
(3)校验防篡改信息中的校验码;若防篡改信息中的校验码与终端根据视频pes包计算出的校验码不一致,则校验失败,该视频可能为非法视频。
相比于现有技术,本发明的主要优点包括:
1、对视频i帧提取防篡改校验码,实现了组播内容防篡改。
在直播源侧,本发明通过解析pes、es检测视频i帧,结合pts、dts等信息生成防篡改信息,将防篡改信息封包在ts包中,并插入ts传输流中;在iptv终端侧,本发明通过解析ts、pes,提取i帧、pts、dts等信息,并对比防篡改信息进行校验。如校验失败,则判定视频为非法视频。
此外,本发明对视频i帧提取防篡改校验码,既达到了防篡改的安全效果,又提高了处理性能。
2、对校验码进行加密,避免防篡改校验码生成方法被破解。
本发明在提取防篡改校验码时,通过在sha1摘要算法加入扰码(即sha1密钥),防止防篡改校验码生成方法被破解。
3、可通过密钥版本号更新密钥,避免密钥泄露。
本发明通过密钥版本号实现了直播源侧与iptv终端侧的sha1密钥保持一致,并可通过密钥版本号实现密钥更新,避免密钥泄露。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明系统模块架构示意图。
图2是本发明防篡改信息生成流程图。
图3是本发明防篡改信息结构定义图。
图4是本发明防篡改信息校验流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
在直播源侧,本发明主要对ts复用器进行改造,并增加了防篡改生成模块;当ts复用模块检测到pes携带为i帧后,其调用防篡改生成模块,传入pes,并将获取的防篡改信息封装到ts传输流中。在终端侧,本发明主要对ts解复用器进行改造,并增加了防篡改校验模块;ts解复用模块实时检测协调i帧的pes及对应的防篡改信息,并调用防篡改校验模块完成防篡改校验。若发现视频被篡改,防篡改校验模块主动通知上层应用进行处理。系统模块架构示意图如图1所示。
1、直播源侧防篡改生成模块实现流程如下:
本发明实现防篡改生成模块的流程如图2所示,包括以下步骤:
步骤a、解析pes包。接收到视频pes包后,按照pes格式规范对pes包进行解析。
步骤b、获取pts和dts。解析pes包头后,从中获取pts(显示时间戳)和dts(解码时间戳)。
步骤c、解析es包头。从视频pes包体解析视频es包,从中获取帧类型(i帧、b帧、p帧)信息。
步骤d、i帧判断。判断该pes中携带的帧是否为i帧(关键帧)。
步骤e、生成防篡改信息。若pes中携带的帧为i帧,则采用sha1算法对pes进行加密,生成校验码,并生成防篡改信息。
校验码生成算法为:校验码=sha1(pes包+sha1密钥),sha1密钥为8字节自定义扰码串。
步骤f、将防篡改信息插入ts封装流中。将防篡改信息封装成188字节的ts包,采用pid为0x1fff,不足188字节部分全部填充为0xff;并将防篡改信息插入在视频pes的ts包之前。
2、防篡改信息定义格式如下:
本发明定义的防篡改信息格式如图3所示,包含以下字段:
(1)pts:视频pes包的显示时间戳。该字段长度为5字节。
(2)dts:视频pes包的解码时间戳.该字段长度为5字节。
(3)版本号:版本号不同,相应的sha1扰码也不同。通过该字段进行sha1密钥升级,防止密钥泄露。该字段长度为1字节,取值范围为[1-255]。
(4)校验码:即对携带i帧的pes包进行sha1加密得到的数据。该字段长度为20字节。
3、iptv机顶盒侧防篡改校验模块实现流程如下:
本发明实现防篡改校验模块的流程如图4所示,包括以下步骤:
步骤a、解析pat、pmt,获取视频pid。从ts流中针对188字节的ts包进行检查,通过解析pid为0x00获取pat,通过pat获取pmt,最后通过pmt获取视频pid。
步骤b、根据pid过滤ts包。通过视频pid过滤ts流中视频包,并过滤pid为0x1fff的防篡改信息包。
步骤c、组装视频pes包,并解析防篡改信息包。将过滤得到的视频ts包进行组装,得到视频pes包。
步骤d、判断pes包是否完整。对视频pes包的完整性进行检查,若pes包不完整,则不进行防篡改校验;否则进入下一步骤。
步骤e、是否i帧。判断视频pes包中是否携带i帧,若不携带i帧,不进行防篡改校验;否则进入下一步骤。
步骤f、计算防篡改校验码。若pes中携带的帧为i帧,则采用sha1算法对pes进行加密,生成校验码,校验码生成算法为:校验码=sha1(pes包+sha1密钥),sha1密钥为8字节自定义扰码串。
步骤g、校验防篡改信息。校验ts流是否携带防篡改信息,并对防篡改信息进行校验,当校验失败时通知上层应用进行处理。本步骤主要处理环节如下:
(1)判断ts中是否携带防篡改信息。通过视频pes中pts和dts两个字段,查找对应的防篡改信息。若未查找到防篡改信息,则校验失败,该视频可能为非法视频。
(2)校验防篡改信息中的版本号。若防篡改信息中的版本号信息在终端侧不存在,则校验失败,该视频可能为非法视频。
(3)校验防篡改信息中的校验码。若防篡改信息中的校验码与终端根据视频pes包计算出的校验码不一致,则校验失败,该视频可能为非法视频。
本发明中,各参数含义如下:
es--elementarystreams(原始流)是直接从编码器出来的数据流。
pes--packetizedelementarystreams(分组的es),es形成的分组称为pes分组,是用来传递es的一种数据结构。
pts--presentationtimestamp(显示时间标记)表示显示单元出现在系统目标解码器(h.264、mjpeg等)的时间。
dts--decodingtimestamp(解码时间标记)表示将存取单元全部字节从解码缓存器移走的时间。
ts--transportstream(传输流)由定长的ts包组成(188字节),而ts包是对pes包的一个重新封装。
以上显示和描述了本发明的基本原理、主要特征和优点。本领域的普通技术人员应该了解,上述实施例不以任何形式限制本发明的保护范围,凡采用等同替换等方式所获得的技术方案,均落于本发明的保护范围内。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。