发明内容
本发明的目的是提供一种在数字电视条件接收系统中对用户授权的方法。
授权步骤步骤如下:
1)加密ECM的业务密钥SK用大组的公钥加密;
2)用小组密钥来加密用户的产品授权;
3)用户个人EMM消息用用户智能卡密钥进行加密,每个用户消息需要一个相应的EMM消息;
4)携带AC与产品索引号对应关系的产品映射表,由业务密钥SK加密,生成相应的节目映射EMM消息;
5)把传统的EMMG分为两个模块,一个模块叫做EMMg,放在广电前端,负责生成各种EMM消息,另一个模块叫做EMMB,放在靠近用户侧的分前端,负责EMM消息的周期性播放,一个EMMg对应多个EMMB,采用IP专线连接。
步骤1)中,为了使长时间不看电视的用户开机就得到解密ECM授权控制信息的密钥,加密ECM的SK用大组的公钥加密,一个大组所有用户的IC卡共用一个EMM消息,从而减小携带SK密钥的EMM数据量。
步骤2)中,小组密钥用来加密用户的产品授权,用小组加密的EMM叫做小组授权,每个用户智能卡的节目授权都在小组授权中,同一个小组内的用户智能卡共用一个EMM授权消息。
步骤3)中,只有涉及到用户个人定制的个性化服务,EMM消息用智能卡专有密钥进行加密,每个用户就需要一个EMM消息。
步骤4)中,利用SK加密的产品映射表,反映了AC信息与产品索引号的对应关系,而产品索引号与小组授权信息中的具体授权位对应,从而使CA客户端通过ECM携带的AC信息,产品映射表和小组授权表即确定用户的相应产品授权信息。
步骤5)中,由EMMg负责管理用户和产品信息,ECMG通知的SK更新、用户的产品授权信息更新或者有新的产品定义,EMMg把更新的数据加密成EMM消息,通过IP专线发给EMMB,EMMB根据不同EMM消息的性质,以特定周期发送给复用器,存放各种用户信息、产品信息和授权信息的数据库只是存储在EMMg中,EMMB只是负责按照既定的规则,向其所管理的用户播发EMM数据。
EMM中采用非对称加密方式,在用户的IC中固化保存着解密的私钥,包括大组、小组和个人三种私钥,在EMMg的数据库中保存着相对应的公钥;EMMg通过公钥完成EMM数据的生成。
在终端IC卡通过小组授权表、ECM信息中的AC完成对用户具体授权情况的确认,在产品映射表中依次保存着AC信息,AC按照位置和具体的产品索引号Product Index一一对应;而在小组授权表有相应的用户授权数据,依次每一位代表一个产品的授权信息,当此位为1是表示对应的用户的得到此位所代表产品的授权,当此位为0表示对应的用户的没有此位所代表产品的授权,其具体位置同样与定义的产品索引号一一对应。
当用户访问一个加密的节目时,CA系统客户端程序从该节目PMT“节目映射表中”的CA_descriptor“CA描述符”,得到该节目ECM在TS“传输流”中的PID,并且解密ECM,从ECM获取该节目所对应的AC,根据此AC在产品映射表中的位置,对应到小组授权表中相应的位,如果此位为1,则解密此节目,否则说明用户未得到该节目的授权,不对节目进行解密。
本发明的优异效果是:EMM结构设计和播发机制解决了目前条件接收系统在EMM发送时占用传输带宽大、授权时间长、管理用户数有限等缺点。EMMg可以通过IP专线与多个EMMB进行连接,从而大大降低了干线中重复播发的EMM数据量。
具体实施方式
参照附图对本发明的方法作以下详细的说明:
1、EMMg系统功能设计
EMMg在系统主要作用是产品管理、用户资源管理、用户授权管理、业务密钥管理等功能,EMMg在整个系统中是授权与加密的核心。
(1)用户资源管理
用户资源是指由业务管理工具发送给EMMg的用户智能卡数据,每个用户数据包括:大组ID、小组ID、内部Card_ID、外部Card_ID、10个大组公钥、3个小组公钥、一个智能卡公钥、目前大组工作公钥和目前小组工作公钥、目前智能卡使用状态,如未激活、激活、删除等。每个智能卡还有唯一的外部智能卡ID、一个公钥、一个内部智能卡ID。属于同一个EMMB的智能卡共用一个EMMB_id。这些数据都保存在EMMg的数据库中,用于EMM的加密公钥和相应的管理数据的生成。
(2)产品管理
对于CA系统,一个产品可以是一套、多套节目或者其它业务服务。一个产品对应一个AC、一个产品号和产品索引号。EMMg需要维护一个关于节目网络号、所在传输流的ID、节目ID、节目名称,AC、产品号和产品索引号等信息的数据表。这些信息要保存在相应的数据库产品管理表中。每当有产品变化时,由EMMg根据产品管理表生成相应的产品映射表EMM,并且把生成的新的EMM消息通过IP专线发送到各个EMMB中。
(3)用户授权管理
当用户通过SMS(用户管理系统)订购特定的产品后,SMS就会向EMMg发送一个为用户关于该产品进行授权的请求,EMMg接收到该请求后,把相应的授权数据存放到数据库的用户授权管理信息表中,并且用更新的授权数据生成小组授权EMM消息发送给EMMB。
(4)业务密钥(SK)管理
EMMg获得ECM的加密密钥SK后,用大组当前工作公钥加密生成大组授权EMM,然后发送给EMMB,同时在本地数据库做一个备份。如果EMMB出现故障,EMMg通过接口通知ECMG停止SK变化,直到EMMB恢复正常,通知ECMG恢复SK密钥的更新。
根据以上四方面的功能,EMMg需提供以下接口:授权管理接口,使业务管理工具可以通过此接口对某个用户的某些产品进行授权和删除授权;配置管理接口,配置管理工具通过此接口可以设置一些运行参数,如:EMMB的IP地址与端口号、ECMG的IP地址与端口号等;用户管理接口,通过此接口用户管理工具可以添加、激活、删除用户智能卡数据;产品管理接口,通过此接口,产品管理工具可以定义产品、删除产品;EMMg与ECMG接口:通过这个接口EMMg可以得到加密ECM消息的SK密钥;EMMg与EMMB接口,用于EMMg向EMMB传送各种EMM数据。
2、EMM信息的生成
(1)密钥的分配
每个智能卡代表一个用户,一个用户有一个仅对用户本身起作用的智能卡密钥对;每16个智能卡为一小组,每个小组有3个公/私钥对,小组内的每个智能卡共同拥有这3个公/私钥对的私钥;在CA系统运行中,小组的工作密钥可以改变;
每20到255个小组组成一个大组,根据系统的抗攻击能力,选择大组中小组的个数,如果小组个数少,抗击攻击的能力强,但是发送业务密钥的EMM占用的带宽、业务密钥的更新周期就长一些。每个大组有10个密钥对;大组内的每个智能卡共同拥有这10个公/私钥对;在CA系统运行中,大组的工作密钥可以改变,用户智能卡内相应存储着10个公/私钥对的私钥。这样在一个智能卡内共需10+3+1=14个密钥对的私钥,每个私钥占128个字节。
(2)密钥的使用
1>大组授权信息
为了使长时间不看电视的用户开机就可以得到解密ECM的密钥,加密ECM的SK用大组的公钥采用非对称算法加密,生成EMM的大组授权消息。这样一个大组所有用户的IC卡共用一个EMM消息就可以了。由于加密CW和产品映射表的SK密钥是不断变化的,因此消息需要定期循环,循环播发的周期为1~2秒。EMM大组授权表的数据结构如图2所示,蓝色字体为加密字段。
大组授权表中比较重要的字段包括:big_group_id,大组ID,客户端CA程序根据大组授权所对应的command值,过滤big_group_id与IC卡所属大组一致的EMM信息;continue_count,针对本大组、本命令的连续计数,如果IC中存储的大组授权EMM信息的countine_count与当前的过滤到的EMM消息的continue_count不一致,则认为收到更新的EMM数据,对IC存储的大组授权数据进行更新;security_key_id,SK的ID,与ECM中加密CW的密钥相对应,也与产品映射表中的加密密钥相对应。当需要解密CW或者产品映射表时,用此ID对应的密钥解密;first_key_bytes,second_key_bytes:存储着实际的SK密钥信息;asymmetric_key_id,加密此消息的大组工作公钥ID。
2>小组授权信息
小组密钥用来加密用户的产品授权,用小组加密的EMM叫做小组授权,每个用户智能卡的节目授权都在小组授权表中,在小组授权中有每个用户智能卡占8个字节,字节的每一位代表一个产品的授权,每8个字节的0~63位表示一个用户可以拥有的64个产品;同一个小组中的16个用户卡共用一个EMM小组授权消息。客户端CA程序根据用户IC卡存储的big_group_id和little_group_id,与小组授权信息中的相应数据位比较,进行小组授权EMM的过滤。该消息的数据结构如图3所示,蓝色字体为加密字段,利用小组的当前工作公钥完成非对称加密。
小组授权表中包括的比较重要的字段包括:continue_count,针对本小组、本命令的连续计数,如果IC存储的小组授权EMM信息中的countine_count与当前的过滤到的小组授权EMM消息的continue_count不一致,则认为收到更新的EMM数据,对IC存储的小组授权数据进行更新;authurize_data,共有8×16个字节,其中第一组8个字节表示本小组中,内部card_id为1的产品授权。第二组8个字节表示本小组中内部card_id为2的产品授权,依次类推。每个智能卡的8个字节的授权中,每一位表示一个产品的授权,对应着产品映射表中的相应位置的AC。为1的位表示此产品已经授权,为0表示此产品取消授权;public_key_id,加密此消息的小组密钥对。
3>产品映射表
产品映射表的作用是加密发送小组授权表中每个授权位对应的AC信息。使用SK通过对称算法完成相应数据的加密。在CAS中,每个产品对应一个AC,它是一个两字节的无符号整数。在产品映射表中,AC的位置与产品索引号(Product Index)对应。每次新定义一个产品,AC的ID就加1,AC的计数值放在EMMg相应的数据库中。产品映射表携带的是产品索引号与AC的一一对应关系,即其中的8个字节,0~63位,某一产品的AC所在的位数对应的就是该产品索引号。
产品映射表中的信息来源于EMMg中存储的产品信息表。产品信息表、产品映射表和小组授权表的对应关系,如图4所示。
4>用户个人授权信息
用于传送单个智能卡授权的数据,例如e-mail等数据;智能卡授权可以提供个性化的业务如电子钱包等功能。用户个人EMM消息用用户卡密钥进行加密,如email、通知消息等。这样每个用户消息就需要一个EMM消息。
该EMM信息利用用户智能卡所对应的公钥,对具体的授权数据信息进行非对称加密。授权表中包含的主要字段有:big_group_id,IC卡所属大组ID;little_group_id,IC卡所属小组ID;card_id,IC卡的内部Card_Id;private_data,加密后的授权数据;public_key_id,加密此消息的密钥对等数据信息。
EMMB的工作机制
EMMB负责在用户侧,恢复EMM信息的重复播发,并通过复用器将重复播发的各种EMM信息发送的TS流中。EMMg与多个EMMB之间采用IP专线连接,每个EMMB作为一个分前端,管理特定范围内的用户大组。EMMB启动后,监听相应的端口,等待EMMg的连接。当EMMg连接成功后,根据EMMB与EMMg之间的通讯协议读取EMM消息,然后开始启动播发模块,按照不同EMM消息的播发规则和设定的播发速率,向其负责范围内的用户播发EMM消息,如图5所示。
如果在EMMB运行的过程中出现EMMB和EMMg之间链路中断的情况,EMMB继续播发现在保存在内存中的EMM消息,等链路重新连接时,EMMB向EMMg申请链路中断时,更新的EMM消息。而EMMg负责维护还没有更新给EMMB的EMM消息。同时,在链路中断情况下,EMMg会申请停止SK更新。
各种EMM消息由于其包含的内容不同,CA客户端对各种EMM的时间要求也不一样,因此不同EMM消息需要有不同播发的方式和播发周期。
5>大组授权消息的播发规则
本规则只适用于大组授权消息。在大组授权消息是用大组工作公钥加密的SK,在一个大组授权消息中携带了2个SK,其中一个是当前使用的SK,另一个是下一周期使用的SK;在客户端CA用SK来解密产品映射表、ECM等信息。
大组授权消息需要更新的情况包括:SK更新,这时所有的大组授权消息都要更新;一个新的大组激活,这种情况对于一个大组只发生一次;更换大组工作的工作密钥;根据大组授权信息更新的特点和播发周期的要求情况,大组授权信息在EMMB中播发时,是没有优先级的,在限定的带宽下按顺序、周期性播送,这种播发方式称为轮播方式。
6>小组授权EMM消息的播发规则
在小组授权消息中保存是用户的授权数据,用户的授权数据变化比较缓慢,CA客户端把最新的授权信息保存到IC卡中,因此小组授权信息的实时要求并不高。因此小组授权数据的播发周期要求不高。一个小组的16个用户共享一个小组授权。
小组授权消息需要更新的种情况包括:用户授权发生变化,这种变化并不频繁;一个新的小组激活,这种情况只发生一次;小组更换小组工作密钥,这种情况很难出现;基于对小组授权的实时性要求和更新特点,小组授权的播发规则为:在给定的播出带宽的情况下,根据每个小组授权的更新情况,设置播发的优先级,更新时间距现在越近的小组授权播发周期越短,距现在越远的小组EMM授权播发周期越长。而距现在一定时间,如2天前的更新,其所有的小组授权信息,有相同的播发优先级;这种播发方式称为基于优先级的轮播。
7>产品映射表EMM的播发规则
产品映射表中保存的信息是节目的AC和小组授权位的对应,此信息也被保存在IC卡,只有在有新的产品定义或者删除时IC卡中的数据才被真正更新。由于产品定义后一段时间内才有用户授权,产品删除后一段时间相应的AC才被使用,所以CA用户端对产品映射表的实时性要求并不高,周期为1秒或者更长都可以。所有用户共用一个产品映射表EMM消息。
产品映射表需要进行更新的情况包括:定义/删除产品,此时用户端产品映射表的数据需要更新;SK更新时,如果没有定义/删除产品,虽然加密节目映射EMM消息的SK变化了,但是用户端产品映射表并不需要更新数据,产品映射表的连续计数值不变化。根据对产品映射表的实时性要求和其更新特点,定义以下播发规则:定时每隔1秒发送一次,简称定期轮播。
8>用户个人授权EMM消息
此授权消息用于用户个人业务服务,如个人的Email信息,通知信息等。这些信息在网络内部发送一段时间后,就会失去它的实效性,并且一个用户个人授权消息只是针对一个用户。所以,所有这些消息在其有效期是按照相同优先级,在设定的带宽上进行轮播,这种方式称为有效期轮播。
实施例
EMMg的本地数据库分别保存着用户资源信息表、产品信息表和用户授权信息表。用于分别存放用户智能卡的数据信息、用户智能卡的授权信息和CA系统定义的产品信息。在CA系统中,每个智能卡代表一个用户,一个用户有一个仅对用户本身起作用的智能卡密钥对;
每个用户数据具体包括:大组ID、小组ID、内部智能卡ID、智能卡外部ID、10个大组公钥、3个小组公钥、一个智能卡公钥、目前大组工作公钥和目前小组工作公钥、目前智能卡使用状态等。用户的组织形式为:每个小组有16个智能卡,即包含16个用户,每个大组有255个小组;小组内16个智能卡共用本小组3个小组公钥和小组ID;大组内255×16个智能卡共用本大组的10个大组公钥和大组ID;每个智能卡除了共用的大组公钥、大组ID、小组公钥、小组ID外,还有一个唯一的外部智能卡ID、一个公钥、一个内部智能卡ID。每个小组有3个公/私钥对,小组内的每个智能卡都拥有这3个公/私密钥对的私钥;小组一开始激活时的工作密钥用第一个,在运行中小组的工作密钥可能改变;每个大组有10个密钥对;大组内的每个智能卡都拥有这10个公/私密钥对;大组一开始激活时的工作密钥用第一个,在运行中大组的工作密钥可能改变,智能卡内存储着10个公/私钥对的私钥。这样在一个智能卡内共需10+3+1=14个密钥对的私钥,每个私钥为1024位,占128个字节。
携带SK的EMM信息采用大组工作公钥加密,用户的授权EMM信息采用小组公钥加密,而个人授权EMM主要用于Email等个人信息服务,该EMM信息利用每个智能卡独有的公钥进行加密。
在用户的授权EMM信息中,每个用户智能卡占8个字节,字节的每一个位代表一个产品的授权,一个用户可以有64个产品;在一个小组授权中可以同时对16个智能卡授权,这样一个小组授权数据占用128个字节,1024位。同一小组内的16个智能卡共用一个EMM授权消息。产品映射表反映了CA所管理的64个产品的AC与产品索引号的对应关系,其利用SK加密后生成相应的EMM消息传送到EMMB。
在EMMB中分别利用轮播、基于优先级的轮播、定期轮播和有效期轮播,分别播发EMMg通过IP专线发送过来的大组授权EMM、小组授权EMM、产品映射表EMM和个人授权EMM。
在终端CA系统中,通过小组授权表、产品映射表、ECM中的AC信息与实际节目的授权联系起来进行控制。在产品映射表中依次保存着64个AC,这64个AC按照位置和0-63产品索引号一一对应;而在小组授权表有16个64位,依次每一位代表一个产品,当此位为1是表示对应的用户的得到此位所代表产品的授权,当此位为0表示对应的用户的没有此位所代表产品的授权。其位置0-63和定义的产品号索引号同样一一对应。
当用户访问一个加密的节目时,客户端CA程序从该节目PMT中的CA_descriptor得到该节目对应ECM的PID,得到相应的ECM。从TS流中的CAT表得到智能卡对应的大组授权EMM信息、小组授权EMM和节目映射EMM。用大组工作私钥解密大组授权EMM,得到SK,进而解密ECM,从ECM获取该节目所对应的AC,假定为5,如图4所示。根据此AC值在产品映射表中的位置为第0位,以及用户卡的内部Card_ID,假定为2,对应到小组授权表中授权信息的第9个字节第0位,如果此位为1,则解密此节目,否则说明用户未得到该节目的授权,不对节目进行解密。