1相关技术比较
1.1DVB同密
DVB同密技术的目的是将两家或两家以上的CA系统应用于同一网络平台中,从电视台角度实现技术的选择和竞争的环境。同密允许在传输的同一套节目流中携带由不同CAS生成的多个CA信息,以提供给不同CAS的机顶盒用户。这种方案基于DVB统一规定的加解扰算法和广播运营商与各个CA厂商之间关于条件接收的商业协议,适用于CA软件嵌入到机顶盒中的情况。接收机通过ISO-7816标准接口访问CA厂商提供的智能卡,由智能卡实现解密功能,提取解扰码流所需的密钥信息(控制字Control Word,CW)给解扰器。同密技术标准化了加解扰算法和密钥传递框架,使得不同的条件接收系统可以在相同的加/解扰器上运行,有利于共享服务和节目资源及管理方法,促进了条件接收厂商之间的合作。但是由于针对不同CAS,机顶盒中需嵌入不同的CA软件,一款机顶盒一般只能捆绑接收用某特定CAS加密的节目,对用户和运营商存在更换CA就需更换机顶盒的风险。
1.2DVB多密
DVB多密技术的基本思想是将解扰、CA以及其他需要保密的专有功能集中于一个可拆卸的模块(PC卡)中,机顶盒(又称主机)功能可以趋于通用化,其中只包含调谐器/解调器、MPEG-2解码器、解复用等必须的设备,具有接收未加扰或已解扰的MPEG-2视音频、数据的功能,在主机和模块之间定义一个标准公共接口(Common Interface, CI)进行连接和通信。这种方案的好处在于,同一机顶盒可接收任意CA系统加扰控制的节目,当选择更换CA时只需换用相应的CA模块,机顶盒可以保持不变。一般机顶盒扩展有多个公共接口,可同时与多个CA模块相连,并自动或在人机交互的基础上识别哪个CA模块应处于工作状态。采用多密技术,从用户角度讲,不会因购买一家CA的机顶盒而与此CA绑定死,用户还有选择其他CA服务的可能性,同时CA系统的更新升级也十分方便。
1.3POD技术
北美地区制定的Open Cable规定在一张PC卡上装入与保密有关的全部功能,包括认证电路及密钥数据、解扰电路和有线传输数据业务接口规范DOCSIS(Data Over Cable Service Interface Specification)的MAC层电路等,这种PC卡被称为POD模块。Open Cable规范中还包括被称为OOB(Out-Of-Band)的上行和下行控制用数据通道。POD模块与机顶盒主机的接口由PODMIS(Point of Deployment Module Interface Specification)规定。按照1998年6月的规范议案,POD模块首先利用OOB通道与前端通信并进行认证处理,经机顶盒解调得到的比特流一次性全部输入POD模块,如果认证结果正确,则POD模块对接收的比特流进行解扰处理,解扰后的比特流再返回机顶盒。DVB多密的CA模块虽然也使用PC卡,但它并未装入与保密有关的全部功能。另外,POD模块采用OOB进行认证处理(在备有电缆调制解调器的场合不使用OOB,而是使用同一个调制解调器),而DVB的CI则未规定OOB。POD模块不仅符合美国FCC所谓“分离CA功能”的方针,而且也易于处理“破解(Cracking)”,即便密钥数据泄漏也无需改动机顶盒,只需更换POD模块就可以了,但是POD模块造价昂贵,大量更换就不容易了。
多密技术是在主机与模块之间定义一个标准的公共接口,通过这个接口可以在模块中实现CA功能和更多的专有功能。公共接口在物理层上是基于PCMCIA(Personal Computer Memory Card International Association)标准稍加修改而成,公共接口在逻辑上分为两部分:传送流(Transport Stream,TS)接口和命令(Command)接口,前者用于MPEG-2 TS流的传送,主机选择节目并将它们送到模块中,经模块处理之后,这些节目被解扰并送回主机,其他没有被选择的节目则不作处理。命令接口用于实现主机和模块中运行的各种应用之间的通信,它可以支持同一主机和多个模块之间的连接以及各种复杂事务的处理。仅连接单个模块的多密公共接口结构示意图如图1所示。
图1多密系统框图
当然,一个特定的主机设计可以同时支持多个模块,这时TS流接口的连接应采用雏菊链(Daisy-Chain)形式,而主机必须同时保持与所有各个模块之间的单独的命令接口。
2.2命令接口分层
命令接口载有模块中的应用和机顶盒主机之间通信的信息,在模块端和主机端的命令协议基本对称。命令接口在逻辑上可采用分层结构,以使得设计、实现更加容易,层次结构如图2所示。
图2命令接口分层
物理层协议主要负责与硬件相关的操作,包括:模块的连接和拆除、读取/设置模块状态、模块的初始化、发送/接收数据等。
链路层协议主要完成两个任务,一是拆分和重组TPDU(Transport Protocol Data Unit)信息包,以使其适合物理层初始化时协商达成的缓冲区大小,二是多路复用来自各个传输连接的数据包。如果有1个以上传输连接当前有TPDU数据要发送,链路层将轮流发送每个TPDU的块,这样所有的传输连接将公平地分摊到可用带宽。
传输层协议采用命令-响应协议(Command-Response protocol),由主机启动查询或数据发送。传输层主要用于维护主机和模块之间连接建立和拆除的状态过程。传输层的连接只能是在主机和模块之间,是单一主机连接一个或多个模块的体系结构。目前的DVB标准不支持模块之间的直接传输层连接,不支持多个主机之间的连接。
会话层协议为应用提供了利用主机或模块资源的机制。资源是一种在应用层封装的功能单元,可以由主机直接提供,也可以驻留在其他模块中。资源由资源标识识别,资源标识包括:资源级别、资源类型、资源版本号,每个资源支持一套对象以及用于对象交换的协议。与某个资源之间的通信是通过建立与这个资源相关的会话来实现的,资源由和资源之间建立会话的应用所使用,一旦会话建立,应用可以根据定义的协议交换对象并使用相应资源。
应用层使用一整套基于资源的协议,要求主机必须提供的最小资源集包括资源管理器、应用信息、CA支持、主机控制、日期/时间、人机界面(Man-Machine-Interface,MMI)和低速通信资源。
3主机公共接口的设计与实现
3.1公共接口的硬件设计
CI硬件接口设计如图3所示。本文实例基于LSI SC2000 CPU,通过控制外扩的CI控制器芯片,在PCMCIA兼容的接口插槽上产生相应的TS流接口信号和命令接口信号,从而实现对CI模块的各项操作。
TS流接口的连接采用雏菊链形式,而在命令接口上主机与各个模块之间维护一套完全独立的连接和控制,当去除或插入一个模块时,不影响其他模块的正常运行状态,不影响码流的正常播放(在插拔过程中有部分TS包丢失是可以接受的)。
图3主机侧CI硬件接口
3.2公共接口的软件设计
图4主机系统软件框图
主机的系统软件框架如图4所示,采用分层体系结构,易于实现和移植,比如,为了实现某些供上层应用调用的特定功能,CI驱动可能会需要用到设备驱动层中的其他部分,如解复用、AV解码、I2C总线控制驱动等。
CI驱动程序内部的软件规划主要包括命令接口的具体设计,可参考多密技术标准中的建议(如图2),依次实现各层协议。
3.3接口上解扰过程的实现
考虑到实现节目的解扰是通过公共接口技术进行条件接收的最基本和最重要的一项功能,本文就以多模块连接状态下对“CA支持”资源的操作为例,分析整个解扰过程。
主机与模块之间的公共接口连接可以扩展成多个,当主机同时连接多个模块时,主机可根据选定的业务来选择合适的解扰模块,这是通过模块中的CA应用与主机CA支持资源之间的一系列命令交互来完成的,主要包括CA-PMT和CA-PMT-Reply两个对象的协议操作。
基本流程如下:主机向1个或几个连接的CA模块应用发送CA-PMT分段,以指示用户选择了哪个基本流以及如何找到相应的授权控制信息ECM(Entitlement Control Message)。每个CA-PMT分段中包含了选定业务的基本流信息,如果用户选择了多个业务,主机就需要发送多个的CA-PMT对象。如果主机要求,应用将用CA-PMT-Reply作为应答响应,表明本模块是否有解扰能力并列出解扰所需的条件信息,以便主机选择出用于解扰的模块。
在这个过程中,主机有两次选择机会:
(1)主机可以选择是向所有连接的模块应用发送CA-PMT分段,还是仅仅向与选定的基本流中的CA描述子具有相同的CA-system-ID的应用发送CA-PMT分段。
如果在发送任何CA-PMT之前,先按照模块与选定业务的CA-system-ID的匹配进行一次预处理,以缩小下一步操作的对象范围,这在模块种类和数量较多的情况下,能明显减少接口上的数据通信量,提高接口处理的效率。
(2)主机可以强制指定某个或某几个甚至全部的模块直接去进行解扰,也可以先查询一遍所有具有潜在解扰能力的模块(比如满足上述CA-system-ID筛选的模块),分析模块返回的CA-PMT-Reply信息,来选择自认为“最合适”的解扰模块。
主机强制所有经过预处理筛选后的模块都直接去解扰选定业务,这种方案的好处在于:当码流依次经过各个模块时,如果模块能够解扰其中的部分基本流,则立即解扰,并将相应包头中的2比特加扰控制域的值修改成不加扰;如果模块不能解扰任何基本流,则保持码流不变,原样输出,这样就能保证最大程度上的解扰。这种方案的前提是主机能支持的不同的基本流可以由不同的模块去进行解扰,但是这种方案的缺点是没有应答信息,很难分析不能解扰的原因。在目前的测试过程中,只能判断出模块中没有插解密用的智能卡,对于授权或其他技术原因导致的解扰不成功则没有明显的判断依据,可能出现黑屏,在这种情况下,可以在AV解码部分增加一些监测控制,以弥补人机界面上的友好性。
对于主机的查询命令,模块返回的应答信息中包含的解扰条件可能有:①无条件,可以解扰;②需要用户