具体实施方式
本发明实施例的应用场景中IMS based IPTV的业务功能架构,如图1a所示,主要包括:UE(User Equipment,用户设备),如手机,机顶盒等;SDF(Service Discovery Function,业务发现功能实体),用于给UE提供业务附着信息,如EPG(Electronic Program Guide,电子节目指南)服务器地址信息等;SSF(Service Selection Function,业务选择功能实体),用于给UE提供业务菜单信息;SCF(Service Control Function,业务控制功能实体),用于处理用户业务请求;UPSF(User Profile Server Function,用户签约服务功能),用于存储用户签约信息;Core IMS(核心IMS),为IMS子系统中的P-CSCF、I-CSCF和S-CSCF的总称;MF(Media Functions,媒体功能实体),负责到UE媒体流的控制与交付媒体,从功能角度分解为MCF(Media Control Function,媒体控制功能实体)和MDF(Media Delivery Function,媒体交付功能实体),MCF用于,控制MDF发送媒体流,MDF,在MCF的控制下分发媒体给UE。
本发明实施例中使用的密钥体系如图1b所示,包括:TEK(TrafficEncryption Key,媒体加密密钥),为媒体流提供机密性和/或完整性保护,对于使用传统CA保护的MPEG2TS(Moving Picture Expert Group 2 TransportStream-Conditional Access,MPEG2TS模式下的条件接入保护方式)对应的密钥是CW。SEK(Service Encryption Key,业务加密密钥),保护TEK下发信息的机密性和/或完整性,对于使用传统CA保护的MPEG2TS传输方式对应的密钥是SK,SK保护CW下发的机密性和/或完整性。URK(User Root Key,用户根密钥),用于保护SEK下发信息的机密性和/或完整性,用户根密钥可以使用GBA的方式建立,或者预先配置。对于使用传统CA保护的MPEG2TS传输方式对应的密钥可以是现有的PDK,也可以是使用GBA的方式来建立,或者是预先配置好的URK。实施例中的密钥统一使用URK、SEK、TEK进行描述,对于CA系统的PDK、SK、CW的实施例也适用。
本发明实施例中功能实体如图2所示,包括:KMF(Key ManagementFunction,密钥管理功能实体),用于向UE或其它功能实体提供媒体保护所需的密钥,KMF可以作为一个独立的功能实体,或者作为一个功能模块集成到SCF或者其它功能实体之中。CEF(Content Encryption Function,媒体加密功能实体),用于对媒体进行加密、完整性保护等操作,对于MCF/MDF完成媒体加密功能的情况,MCF/MDF完成CEF的功能。结合图2实现IPTV组播业务媒体安全的方法包括以下步骤:
步骤201,业务部署过程:KMF与MCF/MDF(完成CEF功能)传递以下的一种或者几种信息SEK、TEK、SEK加密的TEK,将SEK加密的TEK部署到MDF上。
另外一种使用CEF进行加密的方法包括:
步骤201a,KMF与CEF将以下信息的一种或几种传递给CEF:SEK、TEK、SEK加密的TEK;
步骤201b,CEF再将SEK加密的TEK发送给MCF/MDF(不具有CEF功能)。
对于MCF/MDF上已经拥有SEK加密的TEK的条件下,则步骤201(步骤201a和步骤201b)不需要。
步骤202,UE从KMF获得SEK。
具体实施中,该SEK还可以被URK加密保护,URK通过加密SEK或者URK加密整个携带SEK的消息来完成对SEK的加密保护。UE接收到加密的SEK后,使用URK解密出SEK。
在UE获取SEK前,如果UE没有TEK密钥流的会话描述协议SDP描述信息和/或媒体安全描述信息,还需要UE通过SSF或者SCF从媒体服务功能实体获取媒体安全描述信息。
步骤203,MDF在发送加密组播媒体时,将加密组播媒体对应的被SEK加密的TEK通过IP组播发送给UE。
步骤204,UE接收加密的组播媒体和组播发送的TEK密钥流,使用SEK解密出TEK,并使用TEK解密组播媒体。
实施例步骤202中提到的媒体安全描述信息包括以下信息的一种或几种:媒体保护类型标识、SEK密钥标识、获取SEK的地址信息。其中,媒体保护类型标识用来指示发送给UE的媒体流的保护类型,例如使用SRTP(SecurityReal-time Transport Protocol,安全实时传输协议)的类型保护,或使用MPEG2TS的CA保护类型。TEK密钥流的会话描述协议SDP描述信息和/或媒体安全描述信息下发的方式包括以下几种:
1、使用SDP携带媒体保护类型信息,具体可以采用SDP的一个新a属性携带:
例如,a=Media-Protection-Typt:MPEG-TS-CA;
或者使用a=fmtp属性携带:
例如,a=fmtp:media-protection-typt:SRTP
对于使用SRTP的保护类型可以使用SRTP作为标识;对于MPEG2TS的CA保护类型可以使用MPEG2TS-CA作为标识。
例如,一个使用SRTP保护的音频流的SDP为:
m=Audio 49168 RTP/AVP 96
c=IN IP4 224.2.17.12/127
a=rtpmap:96 H264/90000
a=fmtp:Media-Protection-Typt:SRTP;
对于媒体的保护类型为MPEG2TS-CA的情况,还可以进一步携带算法参数,用来指示UE该媒体保护使用的算法,具体的可以使用一个SDP的a属性来携带:
a=Media-Protection-Typt:MPEG2TS-CA;安全算法标识;
或者a=fmtp:Media-Protection-Typt:MPEG2TS-CA;安全算法标识;
例如,一个使用MPEG2TS-CA保护的视频媒体流对应的128位密钥的AES-Counter Mode算法表示为:
m=video 53810 RTP/AVP n1
a=rtpmap:n1 TS
a=fmtp:Media-Protection-Typt:MPEG2TS-CA;AES-CM-128;
2、SDP中携带SEK的信息:
组播媒体的SDP中携带SEK的密钥标识(ID)和/或获取SEK的地址信息(URI)。
UE使用SEK的密钥标识(ID)到KMF处获取该ID对应的SEK密钥;
UE使用“获取SEK的地址信息(URI)”请求该业务包和/或频道标识对应的SEK。例如:
具体的实现中,使用会话级的SDP描述中携带,或者在媒体级的SDP描述中或者密钥流的SDP描述中携带,例如,使用SDP中的一个a属性来携带密钥标识,或者使用SDP的k头域来携带获取SEK的地址信息。例如,下面使用密钥流的SDP进行携带:
m=application 49230 udp IPTV.TISPAN.TEKM
c=IP4 224.2.17.12/127
k=URI;或者a=SEK-ID;
此外,TEK密钥流的SDP描述中还可以携带相邻2个TEK组播密钥更新的间隔时间,用来指示UE多长时间获取一次更新的TEK,具体的实现中使用一个a属性来携带,例如:
m=application 49230 udp IPTV.TISPAN.TEKM
c=IP4 224.2.17.12/127
a=fmtp:traffic_key_Interim_Time
3、使用XML携带媒体保护类型信息:使用SDP携带的媒体保护类型信息、媒体的保护类型、SEK的密钥标识(ID)、获取SEK的地址信息(URI)、相邻2个TEK组播密钥更新的间隔时间中的一种或几种都可以使用XML的一个元素发送给UE:
例如媒体保护类型(protection-type)和SEK标识(SEK-ID)如下:
<Media-Protection-Descryption>
<Service-ID1>
<protection-type>SRTP</protection-type>
<SEK-ID>SEK-ID1</SEK-ID>
</Service-ID1>
</Media-Protection-Descryption>
步骤202中UE获取TEK密钥流的SDP描述信息和/或媒体安全描述信息的具体实施例包括以下几种:
实施例一,通过SSF的EPG下发过程,下发各个业务包标识和/或频道标识(或者业务标识)对应的TEK密钥流的SDP描述信息和/或媒体安全描述信息,如图3所示,包括以下步骤:
步骤301,UE向SSF发送EPG请求消息。其中请求消息可以使用HTTP(HyperText Transfer Protocol,超文本传输协议)中的GET或者POST请求消息。如果EPG通过广播方式发给UE,例如使用3GPP中定义的FLUTE方式广播发送,步骤301的请求消息不需要。
步骤302,SSF向UE发送消息,例如HTTP的200响应消息,其中携带各个业务包标识和/或频道(或者业务)对应的SEK的密钥标识和/或获取SEK的地址信息。
此外,还可以携带对应的媒体保护类型信息和/或TEK密钥流的SDP描述信息,以上各个信息与上述的SDP方式或者XML表示方式和携带的方法相同。
实施例二,通过SIP(Session Initial Protocol,会话发起协议)会话下发初始频道(或者业务)对应的TEK密钥流的SDP描述信息和/或媒体安全描述信息,如图4所示,包括以下步骤:
步骤401~402,UE经Core IMS向SCF发送INVITE业务请求消息,其中携带初始频道(或者业务)的标识信息。
步骤403~404,SCF经Core IMS向UE发送业务响应(183或者200)消息,其中携带初始频道(或者业务)标识对应SEK的密钥标识和/或获取SEK的地址信息。
步骤405,UE继续执行后续的会话流程。
此外,步骤403和步骤404中,还可以携带对应的媒体保护类型信息和/或TEK密钥流的SDP描述信息,以上各个信息与上述的SDP方式或者XML表示方式和携带的方法相同。
步骤202中UE获取SEK的具体实施例包括以下几种:
实施例一,UE直接到KMF请求SEK,具体可以使用HTTP请求携带,基于图5中的K1接口从KMF获取SEK,具体流程如图6所示,包括以下步骤:
步骤601,UE向KMF发送请求消息,例如,使用HTTP中的GET或者POST请求消息,其中携带以下信息的一种或几种:业务包标识、频道(业务)标识、SEK的密钥ID标识;
如果在上述实施例中通过EPG或者SIP会话过程获得了SEK密钥ID信息,则此处携带SEK的密钥ID信息。
步骤602,KMF向UE发送响应消息,例如,HTTP的200响应消息,其中携带对应的SEK。
对于EPG中没有发给UE算法或者没有默认算法的情况下,KMF向UE发送业务响应消息中还携带算法参数。对于UE在获取EPG或者SIP会话过程中没有获得媒体保护类型的标识(SRTP或者MPEG2TS-CA)的情况,则KMF在响应消息中还可以携带对应的媒体保护类型标识信息,便于UE根据媒体保护类型标识使用对应的解密方式处理加密的媒体。
实施例二,UE使用HTTP请求SEK,KMF单独下发SEK,如图7所示,包括以下步骤:
步骤701,UE向KMF发起SEK密钥请求消息,例如,HTTP中的GET或者POST请求消息,其中携带以下信息的一种或几种:业务包标识、频道(业务)标识、SEK的密钥ID标识,接收SEK的IP地址,接收SEK的端口号信息。如果KMF使用UE发送请求消息的IP地址发送SEK,则消息中不必携带IP地址的信息;如果使用UE与KMF事先约定好的端口号发送SEK,则消息中不必携带端口号信息。
步骤702,KMF向UE发送业务响应消息,例如HTTP的200响应消息。
步骤703、KMF向UE发送SEK,该SEK与请求中携带请求中的业务标识和/或SEK的密钥ID标识对应的SEK。
步骤703中,对于EPG中没有下发给UE算法或者没有默认算法的情况,KMF向UE还需要发送算法参数。步骤702中,对于UE在获取EPG或者SIP会话过程中没有获得媒体保护类型的标识(SRTP或者MPEG2TS-CA)的情况,则还要携带对应的媒体保护类型标识信息,便于UE根据媒体保护类型标识使用相应的解密处理。
步骤202中UE获取SEK的其它具体实施例如下:
使用SDP携带业务包对应的SEK,具体包括以下方式:
1、SDP携带业务包对应的SEK,使用一个a=key-mgmt头域携带,例如:
a=bc_service_package:service package 1
a=key-mgmt:mikey XXXX(SEK1)
对于SDP中包含多个业务包的情况,每个业务包下面可以对应一个a=key-mgmt头域来携带对应的SEK,例如:
a=bc_service_package:service package 1
a=key-mgmt:mikey XXXX(SEK1)
a=bc_service_package:service package 2
a=key-mgmt:mikey YYYY(SEK2)
2、SDP中携带获取SEK的地址信息(URI),
例如:在每个Service Package标识的下面增加一个k字段来携带获取密钥SEK的地址。
a=bc_service_package:service package 1
k=http://ltv.example.com/service-package1-SEK1
a=bc_service_package:service package 2
k=http://ltv.example.com/service-package2-SEK2
UE使用该“获取SEK的地址信息(URI)”来继续获取该业务包和/或频道标识对应的SEK。
3、SDP中携带SEK的密钥标识(ID),在每个Service Package标识的下面增加一个SDP的a属性来携带获取密钥SEK的ID。
a=bc_service_package:service package 1
a=IPTV-SEK-ID:service-package1-SEK1
a=bc_service_package:service package 2
a=IPTV-SEK-ID:service-package2-SEK2
UE使用SEK的密钥标识(ID)继续到KMF处获取该ID对应的密钥。
实施例三,具体的应用于IPTV中的组播业务:SCF使用如图8架构中的K2接口获取SEK,或者使用图9中的SCF-ISC-Core IMS接口和Core IMS-ISC-KMF接口获取密钥,具体过程如图10所示,包括以下步骤:
步骤1001~1002,UE经Core IMS向SCF发送INVITE请求消息,其中携带一个或者多个业务包标识和/或内容标识信息。
步骤1003,SCF向KMF发起请求消息,其中携带INVITE消息中的业务包标识信息和/或内容标识信息。
步骤1004,KMF向SCF发送响应消息,携带该业务包标识和/或内容标识对应的密钥SEK。
步骤1005~1006,SCF经Core IMS向UE发送业务响应消息(200或者183响应消息),携带一个或者多个业务包标识对应的SEK。
步骤1007,UE继续后续的会话流程。
步骤1004、1005和1006中,对于EPG中没有下发给UE算法或者没有默认算法的情况下,步骤1004中KMF还需要返回算法参数,步骤1005~1006中,SCF向UE还发送算法参数。对于UE在EPG中没有获得媒体保护类型的标识的情况,步骤1004、1005和1006中还携带媒体保护类型的标识,用来指示UE具体的保护方式。例如:SRTP的保护类型:SRTP;或者MPEG2TS的CA保护类型:MPEG2TS-CA)。具体的可以采用SDP中的a属性来携带,例如:a=fmtp:media-protection-type=SRTP或者MPEG-TS-CA。
业务包密钥的携带方法可以使用上述的SDP方法携带,也可以使用XML的方式来携带。
实施例四,SIP订阅下发SEK的方式,使用图11中的IMS Core-ISC-KMF接口,过程如图12所示,包括以下步骤:
步骤1201,UE通过IMS Core向KMF发送Subscribe消息,其中携带业务包标识和/或频道标识(或者业务标识)。订阅一个或多个业务包对应的SEK,或者一个业务包中各个频道标识(或者业务标识)对应的SEK。
步骤1202,KMF通过IMS Core向UE返回200OK消息。
步骤1203,KMF通过IMS Core向UE发送Notify消息,其中携带一个或多个业务包对应的SEK,或者一个业务包中各个频道标识(或者业务标识)对应的SEK。
步骤1204,UE通过IMS Core向KMF返回200OK消息。对于EPG中没有下发给UE算法或者没有默认算法的情况下,步骤1203中,KMF发送SEK的同时,还可以携带算法参数。UE还可以向SCF订阅,SCF向KMF获取密钥SEK后以Notify同样的方法发送给UE,方法和参数类似。
步骤201中KMF和MCF(或者CEF,或者称为媒体服务功能实体,以下统一称为MCF)间传递以下信息的一种或几种(SEK、TEK、SEK加密的TEK)的架构包括两种:架构一:通过直接接口传递信息,如图13所示,KMF和MCF(或者CEF)之间使用直接的接口N1传递信息。以下信息的一种或几种可以直接在KMF和MCF之间传递:SEK、TEK、SEK加密的TEK;或者以下信息的一种或几种先传递给CEF:SEK、TEK、SEK加密的TEK,CEF再传递给MCF/MDF。架构二:通过KMF-ISC-Core IMS-Y2-MCF接口传递信息,如图14所示。实施方法包括以下几种:
实施例一,MCF/MDF(CEF)产生TEK,KMF产生SEK加密的TEK,如图15所示,对架构一和架构二的传递信息的接口都适用:包括以下步骤:
步骤1501,MCF/MDF(CEF)产生TEK;
步骤1502,MCF(CEF)向KMF发送TEK加密请求,其中携带内容标识和/或频道(业务)标识信息和密钥TEK。
步骤1503,KMF收到请求消息后,使用对应的SEK加密TEK。
步骤1504,KMF向MCF发送响应消息,其中携带SEK加密的TEK。
步骤1502中,还可以携带媒体保护方式的指示(指示使用SRTP进行媒体加密SRTP,或者是指示使用MPEG2TS的条件接入CA作为媒体保护方式MPEG2TS-CA),KMF收到指示后,可以根据不同的媒体保护方式进行不同的处理,例如,如果媒体保护方式指示为SRTP媒体保护方式,KMF可以使用MIKEY封装携带SEK加密的TEK;如果媒体保护方式指示为MPEG2TS-CA保护方式,KMF使用现有CA系统中的ECM格式携带SEK加密的TEK。对应处理后的SEK加密的TEK在步骤1504中发送给MCF/MDF。
实施例二,MCF/MDF(CEF)产生TEK,并使用KMF发送的SEK加密TEK,如图16所示,包括以下步骤:
步骤1601,MCF(CEF)向KMF发送请求SEK密钥的消息,其中携带内容标识和/或频道(业务)标识信息;
步骤1602,KMF收到请求消息后,将对应的SEK发送给MCF(CEF);
步骤1603,MCF/MDF(CEF)使用返回的SEK加密TEK。
此外,步骤1603中,MCF/MDF(CEF)还可以根据媒体保护方式来使用SEK加密TEK,如果媒体保护方式为SRTP,MCF/MDF(CEF)可以使用MIKEY封装SEK加密的TEK;如果媒体保护方式为MPEG2TS-CA,MCF/MDF(CEF)使用现有CA系统中的ECM格式携带SEK加密的TEK。
实施例三,KMF产生TEK和SEK加密的TEK,如图17所示,包括以下步骤:
步骤1701,MCF(CEF)向KMF发送请求消息,其中携带内容标识和/或频道(业务)标识信息。
步骤1702,KMF收到请求消息后,使用内容标识和/或频道(业务)标识信息对应的SEK加密对应的TEK。
步骤1703,KMF将SEK加密TEK,未加密的TEK发送给MCF/MDF(CEF)。
步骤1701中,还可以携带媒体保护方式的指示(指示使用SRTP进行媒体加密SRTP,或者是指示使用MPEG2TS的条件接入CA作为媒体保护方式MPEG2TS-CA),KMF收到指示后,可以根据不同的媒体保护方式进行不同的处理,例如,如果媒体保护方式指示为SRTP媒体保护方式,KMF可以使用MIKEY封装携带SEK加密的TEK;如果媒体保护方式指示为MPEG2TS-CA保护方式,KMF使用现有CA系统中的ECM格式携带SEK加密的TEK。对应的SEK加密的TEK在步骤1703中发送给MCF/MDF。
实施例四,MCF/MDF(CEF)使用KMF发送的SEK加密TEK,如图18所示,包括以下步骤:
步骤1801,MCF(CEF)向KMF发送请求密钥的消息,其中携带内容标识和/或频道(业务)标识信息;
步骤1802,KMF收到请求消息后,将对应的SEK和TEK发送给MCF(CEF);
步骤1803,MCF/MDF(CEF)使用返回的SEK加密TEK。
此外,步骤1803中,MCF/MDF(CEF)还可以根据媒体保护方式来使用SEK加密TEK,如果媒体保护方式为SRTP,MCF/MDF(CEF)可以使用MIKEY封装SEK加密的TEK;如果媒体保护方式为MPEG2TS-CA,MCF/MDF(CEF)使用现有CA系统中的ECM格式携带SEK加密的TEK。
实施例一、实施例二、实施例三、实施例四中的具体消息的携带方式可以采用:
方式1、HTTP+XML的方式,各个参数都作为XML的一个元素来携带;
方式2、Diameter扩展新的AVP
例如,TEK和媒体保护方式的AVP可以按照如下的方法表示。
<STKM-Info-Request>::=<Diameter Header:XXX,REQ,YYY,ZZZ>
…
{STKM-Service-Identifier};Service identifiers
{TEK};TEK AVP
{Media protection method};媒体保护方式AVP
{Algorithem};加密算法AVP
实施例五,对于加密操作由MCF/MDF来执行的情况,MCF和MDF间需要传递密钥TEK,使用接口Xp如图19所示,
方法1、MCF将TEK发送给MDF,如图20所示,包括以下步骤:
步骤2001,MCF向MDF发送请求消息,其中携带业务标识和/或内容标识,密钥TEK,加密算法;
步骤2002,MDF使用TEK和对应的算法加密业务标识和/或内容标识对应的媒体内容,并返回确认消息。
方法2、MCF发送媒体保护方式给MDF,如图21所示,包括以下步骤:
步骤2101,MCF向MDF发送请求消息,其中携带业务标识和/或内容标识,媒体保护方式标识,其中媒体保护方式标识指示使用SRTP作为媒体保护的类型(SRTP),或者是使用MPEG2TS的条件接入CA作为媒体保护方式(MPEG2TS-CA),媒体保护使用的TEK。
步骤2102,MDF使用TEK和对应的算法,按照媒体保护方式指示的媒体保护方式对业务标识和/或内容标识对应的媒体内容加密处理,并返回确认消息。
方式1和方式2中的参数的具体携带方式:
1)MCF和MDF之间采用RTSP协议:
TEK使用Keymgmt头域携带,其中的data字段携带TEK,例如:
Keymgmt:prot=mikey;uri=″rtsp://movie.example.com/action″;
data=″AQEFgM0XflABAAAAAAAAAAAAAAYAyONQ6g...″
RTSP消息可以使用DESCRIBE请求消息和对应的响应消息。
2)MCF和MDF之间采用SDP携带密钥:
TEK可以使用SDP中的a=key-mgmt属性头域携带,TEK携带在MIKEY消息中的密钥字段,例如:
a=key-mgmt:mikey XXXXXX
可以使用H.248协议或者RTSP协议对应的请求消息和Reply消息携带SDP和密钥。
本发明实施例还提供一种实现IPTV组播业务媒体安全的KMF的结构示意图,如图22所示,包括:
SEK发送模块2201,用于向用户设备发送SEK;
TEK部署模块2202,用于向MCF或者CEF传递以下信息的一种:SEK、TEK或者SEK加密的TEK。
本发明实施例还提供一种实现IPTV组播业务媒体安全的用户设备的结构示意图,如图23所示,包括:
SEK获取模块2301,用于从密钥管理功能实体获得SEK;
TEK获取模块2302,用于从所述媒体服务功能实体接收组播发送的被所述SEK加密保护的TEK密钥流;
解密模块2303,用于使用所述SEK解密出TEK,并使用所述TEK解密所述由TEK加密的组播媒体。
本发明的实施例中,通过分发密钥SEK和TEK给UE和媒体服务功能实体,实现基于IMS的IPTV架构的LTV组播媒体传输安全。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。