张晓秋
(根河市融媒体中心,内蒙古自治区 根河 022350)
一个完整的条件接收系统通常包括前端和后端两个部分,其中前端条件接收系统主要实现对节目流加扰、CA 信息生成以及对节目资源和用户的管理功能,它是条件接收系统实现的技术难点,也是各个 CA 厂商赖以生存的关键;没有发端对节目流的加扰和对 CA 信息的加密管理,也就谈不上什么条件接收。在条件接收系统涉及的众多密码学课题中,最基础和重要的是用户密钥的管理,即如何安全地进行系统的密钥更新,灵活地处理添加新用户,用户取消服务,用户更改订购服务等操作带来的密钥管理问题,是一个如何进行高效密钥分配的问题。用户的密钥管理决定了一个条件系统的用户容量,系统的灵活性和授权的及时性等系统性能。
一个完整的条件接收系统包括三个主要的功能:加扰/解扰功能、授权校验功能和授权管理功能。加扰/解扰功能的目标就是通过把广播信号(图像,声音,数据等)变为不可理解的东西来防止自由接入这个节目中;授权校验功能用来广播接入节目需要的条件,最重要的部分是经过加密的加扰/解扰密钥,并含有允许授权用户解扰节目的加密参数。这些数据嵌入数据流 ECM(Entitlement Control Message)中传送;授权管理功能主要是将授权信息分发给接收机,保证系统对用户群的动态授权管理。相应不同的电视节目接收付费方式有几种授权方式,比如 PP、PPV、IPPV、per programme、per time,所有这些数据通过数据流 EMM 发送。
条件接收前端系统通常分为三层,分别是:1、加扰层,生成加扰节目流。此层通过加扰器对节目流进行加密以防止自由接入该节目,加密过程中以控制字(Control word,CW)为初始化密钥,控制字由控制字发生器提供,为提高安全性,一方面控制字不断发生变化,其有效周期通常 5~30 秒,另一方面不同节目或同一节目的视频、音频和数据流通常使用不同的控制字;2、节目授权控制层,生成节目授权控制消息(Entitlement Control Message,ECM),实现对控制字和节目接入参数的加密。ECM 生成器提交节目号给业务密钥数据库获取该节目的业务密钥(Service Key,SK)和接入条件(Access Conditions,AC),使用 SK 对 CW 和 AC 加密并对加密结果签名,生成 ECM;3、用户授权管理层,生成用户授权管理消息,管理、更新和分发用户授权消息给用户接收机。EMM 信息体现出不同用户的订购付费节目的差异性。EMM 生成器首先从用户管理数据库系统获取用户独有的个人分配密钥和用户授权信息,再利用 PDK 作为密钥对 AP和 SK 加密,经签名生成 EMM。PDK 一般由 CA 系统设备自动产生并严格控制,在终端设备处该序列数一般由网络运营商通过 CA 系统提供的专用设备烧入智能卡的 EPROM 中,不能再读出。为了能提供不同级别、不同类型的各种服务,一套CA 系统往往为每个用户分配好几个 PDK,来满足丰富的业务需求。
在系统的发送端,加扰器对输入的透明节目传输流进行加扰,输出加密的节目流,实现对节目流的保护;控制字发生器提供控制字(ControlWord,实质为密钥)给初始字发生器和ECM 发生器;初始字发生器以控制字为起始密钥生成加扰过程中所需要的多个子密钥;ECM 发生器先根据收到控制字信息,使用节目号为索引从授权密钥数据库中获取某节目流的授权密钥(AK)和接入条件(CP),然后将CW 和AK 发往加密器,加密器以AK 为密钥加密CW,最后ECM 发生器生成ECM;与ECM 发生器相似,EMM 发生器使用用户身份号为索引从分配密钥数据库中获取某用户的分配密钥(DK)和授权信息(AP),然后将DK 和AP 发往加密器,加密器以DK 为密钥加密CW,最后EMM 发生器生成EMM。
在付费数字电视系统,通常大部分频道都是加密的。不同的频道由自己的加扰密钥,即控制字 CW,而且为提高安全性,控制字按固定的时间间隔不断地变化,变化的时间间隔,称为控制字的生命周期。设计条件接收系统的加扰层,需要考虑几个前提:首先,由于数字电视的音视频数据量通常很大,为了保证解扰的实时性和降低接收终端解扰的成本,一般都采用运算速度快的加扰/解扰算法,从密码学的角度考量,需要采用对称的加密算法作为加扰算法,例如 DVB 就定义了通用加扰算法(CSA)作为统一的解扰算法,CSA 就是一种由流加扰和块加扰两个部分组成的对称加密算法;第二,条件系统(CAS)按照一定的周期不断变换控制字 CW(control word)来对每路 TS 流中视频,音频和数据包对应的 TS 包加扰,控制字的生命周期通常很短(一般为 5 秒~30 秒);第三,考虑用户随机开机收视,因此需要控制字高频率地重复广播,通常重复的频率为 2~5 次/秒,因此,在节目加扰的层面,通过频繁地改变控制字来增加破解的难度和系统实现上的漏洞。
在 CAS 的密钥分层结构中,CW 是 CAS 的最顶层的密钥,它们面向的是节目;而 PDK 是最底层的密钥,它们面向的是具体的用户,这是任何 CAS 的密钥分层结构中所不可缺少的,也就是说两级的密钥分层结构是最简单的 CAS 密钥分层模型。对于用户容量大的 CAS,为了更有效地管理这些密钥,减少密钥更新占用的带宽和缩短用户等待授权的时间,通常需要采用更多分级的密钥分配体制。条件接收系统用户管理的一个基本要求就是为用户注册提供友好和灵活的管理机制。
作为一种改进,一些条件接收系统,如“Eurocrypt”,在 ITU Rec. 801的分层结构中增加一层用户独占密钥 UK,UK 被用来安全传输 DK。UK 是每个用户独有的,在用户订购付费电视服务时分配给该用户。同时,在“Eurocrypt”条件接收系统中,运营商按节目供应商对节目进行分组,同一组中的节目使用相同的 AK 和 DK。
1996 年,J.W.Lee 提出改进的四层密钥管理机制:控制字 CW,直接授权密钥 DEK,分配密钥 DK 和主私有密钥 MPK。其中 CW 和 DEK 的功能与 ITU Rec.801 的功能相同;而DK 包含一个私有密钥 PK 和一个组密钥 GK,PK 是每个用户唯一的,而 GK 是每个节目组的组密钥;主私有 MPK 用来加密用户的授权信息。在这四层密钥结构中,Lee 提出 DEK,DK 和 MPK 需要保存在类似智能卡这样的安全性很高的存储设备中,解密的过程中也是在智能卡中完成的,仅将解密得到的控制字返回给解扰模块。在这种方案中,PK 和 MPK 其实在功能上有一些重复。基于 Lee 的四层密钥结构,Tu et al.对 DEK 层进行了修改,并引入接收组和收费组的概念,用一层接收组收费组密钥矩阵的 RGK 替换了 DK 层,详细的机制在下面有分析。
除了以上分层的密钥分配机制之外,还有一些将密钥生成和分配结合的方案,如Y.L. Huang[提出的面向用户组和面向收费级别的方案,这些方案使用巧妙的密钥生成机制,有效减少了用户添加,删除和更新服务带来的密钥更新传输量。但是这种灵活性将密钥生成机制和密钥分配结合在一起,因此密钥的安全性依赖于密钥生成的机制,所以在通常的按频道付费的条件接收系统中,其应用受到限制。
下面我们对分层的密钥分配机制进行一些分析:
二级密钥分配机制是最简单对用户进行节目授权的方式,即使用 CW 对节目进行加扰,并采用每个用户独有的 PDK 直接对 CW 加密,然后将加密后的控制字发送给用户,这样就实现了对用户的简单寻址授权。这种密钥分配机制现在在一些场合使用,比如在主干网上传输节目,往往会采用一种固定控制字的传输,比如在我国的广播结构中,中央台向地方台在主干网上传输节目,就采用了这种方式。
但是,在拥有众多用户的更广泛的应用中,二级密钥分配机制无法适用。假设系统有 S 个 PPC 用户,C 个频道。为了实现对每个用户的授权,系统必须在每个控制字 CW 的生命周期内(5~30 秒),将 CW 及时发送到用户端,因此,前端条件接收系统需要用每个用户的PDK 对当前的每个频道的 CW 加密,产生 CS× 条授权信息,加密的计算量相当的巨大。出于安全的考虑,CW 的按固定的时间间隔变化,在这里假设为 CW 的生命周期为T,则一秒钟产生的授权信息达×TCS/ 条,同时这些授权信息必须在T 内对所有的用户寻址一遍。这需要很大的数据带宽才能实现,如果 CAS 的用户和频道数目较多,则这种机制完全不适用。
二级密钥分配机制,仅仅利用 CW 和 PDK 这两级密钥对用户进行授权,由于耗费大量的带宽,同时降低了 PDK 的安全性,所以不适用于实际的条件接收系统中。为了克服两级密钥的缺点,CAS 通常都在 CW 和 PDK 之间加入一级密钥SK(service key),形成的三级密钥分配结构。每个频道都对应一个 SK,同时 SK也是一个时间变量,SK 的更新周期取决于具体的密钥分配机制,可以是一天、一周或者一个月,但在三层密钥分配机制中,SK 的更新周期通常是一个月。条件接收前端系统利用 SK 对 CW 加密得到所谓的 ECM(entitlement control message)信息,然后利用用户 PDK 对 SK 加密得到 EMM(entitlement manage message)信息。本质上,引入刷新周期很长的 SK 层,用足够的时间来完成所有用户的业务密钥授权;同时,因为 SK 是面向节目的,节目的数量相对是有限的,这样就可以用使用较小的带宽来传递授权信息。因此,对于用户数量较小的条件接收系统,可以使用三层密钥分配体系。
在三级密钥体系中,完成业务密钥 SK 的更新需要用所有授权用户的分配密钥 PDKS 对业务密钥进行加密,因此,设系统有 S 个授权用户和T 套加密节目,因此为了完成业务密钥更新,前端需要广播 TS × 个加密后的数据包。三级密钥分配机制比两级密钥分配机制节约了发布寻址授权所需要的带宽,但随着系统用户数目的进一步增大(几百万甚至上千万)以及节目数的增多(几十套甚至上百套)直接使用三级密钥机制,所产生的授权信息将急剧增加,最后系统将不堪重负。因此,需要在业务密钥层和用户分配密钥层之间再引入一层。
由于业务密钥层和分组密钥层的密钥更新周期都是一个 CTP,当添加新用户、用户退订等业务发生时,前端 CAS 需要更新业务密钥和用户组密钥,在用户数大的 CAS,采用简单的四级密钥分配机制无法有效地处理频繁发生的添加新用户和删除用户的操作;同时,简单四级密钥机制中分组数目的多少,直接影响系统性能。
分级访问控制问题最早由 Akl 等人提出,他们的方案是基于 RSA 加密系统的,它主要适用于那种数据敏感性和用户优先级共存的组织机构中。目前已有多种用于解决这类问题的密码学解决方案。这些方案都是基于为每个安全组生成密钥并满足低级别的安全组的密钥依赖于高级别的组密钥。同时高级别的用户有访问低级别用户能够访问的数据的权利,相反则不能。算法的核心是通过合理地选择指数来生成各级密钥从而保证父节点可以利用自己的私钥以及一些公钥计算出属于它的子节点的私钥,而逆向运算则不能实现。
针对条件接收系统的四级密钥分配体系,Jiang 提出了基于分级访问控制的密钥分配算法,该算法是在对节目频道进行分层分组的基础上,沿用 Fu-Kuan Tu等提出的四级密钥结构(即 CW、SK、RGK 和 PDK),改进了各级密钥之间的嵌套关系,采用分级访问控制技术来解决密钥分配问题。