专利名称:Iptv的升级包结构、升级方法以及开机校验方法
技术领域:
本发明属于数字电视领域,尤其涉及一种IPTV的升级方法、升级包结构以及开机校验方法。
背景技术:
交互式网络电视(Interactive Personality TV,以下简称为IPTV)是一种利用宽带有线电视网,集互联网、多媒体,通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的技术。在IPTV的使用过程中,客户可能会对产品功能提出新的需求,这就需要对IPTV进行相应的在线升级。但是现有的IPTV升级过程中,在升级的过程中系统前端和数字电视终端都无法确认升级数据是否被篡改,也无法保证升级数据不被第三方盗用,另外,由于无法保证数字电视终端可以被强制进行数据升级,从而导致数字电视终端的升级不受管理,存在一些安全方面的问题。因此,在本技术领域,需要一种能对升级数据进行保护,且能对数字电视终端升级进行可控管理的IPTV的升级方法、升级包结构以及开机校验方法。
发明内容
本发明的目的在于提供一种IPTV的升级方法、升级包结构以及开机校验方法,旨在解决现有的升级包被篡改及被盗用的技术问题。本发明是这样实现的,一种IPTV的升级包结构,所述升级包包括升级描述文件, 升级数据文件以及数字签名文件,其中,所述升级描述文件包括加密项,用于定义所述升级包在传输中的加密算法;数字摘要项,用于定义所述升级包在进行数字签名时采用的数字摘要算法;签名项,用于定义所述升级包在进行所述数字签名时采用的签名算法;以及模块名项,用于定义所述升级包中进行了所述数字签名的模块名;所述数字签名文件包括 模块数字签名以及整体数字签名。较优的,所述升级数据文件为加密的数据文件。较优的,所述模块数字签名,包括模块A数字签名以及模块B数字签名,所述模块 A数字签名以及所述模块B数字签名是按照所述升级描述文件中所述模块名项描述的模块顺序,并使用所述数字摘要项描述的数据摘要算法和所述签名项描述的签名算法生成的。较优的,所述整体数字签名,用于对所述升级包中所述整体数字签名之前的所有数据进行数字签名,其中,所述整体数字签名之前的所有数据包括所述升级描述文件、所述升级数据文件、所述模块A数字签名以及所述模块B数字签名。较优的,所述模块A数字签名以及所述模块B数字签名在所述IPTV升级的过程中会被更新到数字电视终端,以用于所述数字电视终端开机的校验中。较优的,所述升级描述文件是明文,并采用ini格式对升级项进行描述,固定长度为4096比特。
本发明另提供了一种IPTV的升级方法,所述IPTV的升级方法包括下载权利要求 1-6中任一项所述的升级包的步骤;匹配所述升级包中的升级描述文件的步骤;获取校验签名的第一密钥,并用所述第一密钥校验整体数字签名的步骤;获取用于解密的第二密钥, 并用所述第二密钥解密升级数据文件的步骤;以及对单个模块进行升级的步骤。较优的,所述IPTV的升级方法还包括校验升级后的数据和更新后的数字签名是否匹配,所述升级后的数据是否完整的步骤;以及当所述升级后的数据和所述更新后的数字签名匹配,或所述升级后的数据完整时,判断是否所有模块均升级完成的步骤。较优的,所述第一密钥校验以及所述第二密钥校验均存储在启动区的一次性可编程区域。较优的,所述下载所述升级包的步骤之前还包括生成原始的数据升级文件的步骤;对关键模块进行数字签名的步骤;在所述原始的数据升级文件前增加所述升级描述文件的步骤,其中,对所述原始的数据升级文件进行加密是采用所述升级描述文件中的所述加密项对应的加密算法;对所述原始的数据升级文件进行加密以形成所述升级数据文件的步骤;以及进行所述整体数字签名的步骤。较优的,所述关键模块包括内核模块以及应用程序模块。较优的,所述对单个模块进行升级的步骤进一步包括将所述单个模块的升级数据写入到Flash上对应区域的步骤;判断所述单个模块是否有数字签名的步骤;如果所述单个模块有数字签名,将所述升级包中该所述单个模块对应的数字签名更新到所述Flash 中的所述模块的签名区域的步骤;以及获取校验签名的第三密钥,以用于校验所述单个模块的数字签名的步骤。较优的,如果所述单个模块无数字签名,校验升级后的数据是否完整的步骤。较优的,所述第三密钥校验存储在启动区的一次性可编程区域。本发明另提供了一种IPTV开机校验方法,所述IPTV开机校验方法包括由开机芯片校验启动区的合法性的步骤;判断启动区是否成功校验内核模块以及应用程序模块的数字签名的步骤,其中,所述内核模块以及所述应用程序模块的数字签名均来自于权利要求 1-6中任一项所述的升级包;以及如果成功校验所述内核模块以及所述应用程序模块的数字签名,判断是否成功启动所述内核模块以及所述应用程序模块,并将所述启动区中保存的密钥传给所述应用程序模块的步骤。较优的,所述密钥包括用于校验整体数字签名的第一密钥;用于解密的第二密钥;以及用于校验模块数字签名的第三密钥。本发明提供的一种IPTV的升级方法、升级包结构以及开机校验方法,能够防止升级包被篡改及被盗用,提高了系统的安全性。
图1是本发明一实施例提供的IPTV的升级包结构示意图; 图2为本发明一实施例提供的升级描述文件的格式示意图3为本发明一实施例提供的数字签名文件的格式示意图; 图4为本发明一实施例提供的形成IPTV升级包的方法流程图; 图5为本发明一实施例提供的IPTV的升级方法的流程图;图6为本发明一实施例提供的对单个模块进行升级的方法流程图; 图7为本发明一实施例提供的IPTV开机校验方法的流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。图1是本发明一实施例提供的IPTV的升级包结构示意图。本发明提供的IPTV的升级方法及系统、开机校验方法均会使用此升级包结构。如图1所示,升级包100包括升级描述文件110、升级数据文件120和数字签名文件130。升级数据文件120包括第一升级数据文件121、第N升级数据文件12N在内的N 个升级数据文件,为了防止被非法用户得到升级数据文件120,第一升级数据文件121、第N 升级数据文件12N均为加密的数据文件。升级描述文件110是明文,于本实施例中,升级描述文件110采用的是通用的ini 格式对升级项进行描述,固定长度为4096比特,但这并非用以限定本发明的保护范围,本领域技术人员在不同的应用环境中,可采用其他的格式对升级项进行描述,升级描述文件 110也可以采用其他的长度。图2为本发明一实施例提供的升级描述文件110的格式示意图。如图2所示,升级描述文件110中包括加密(以下称为ENCRYPT)项111,数字摘要(以下称为DIGEST)项 112,签名(以下称为SIGNATURE)项113以及模块名(以下称为SIGNM0DULE)项114。ENCRYPT项111定义了升级包100在传输中的加密算法,取值名称范围是开放性 SSL协议(以下简称为0PENSSL)加密算法,全部为大写加数字,例如-aeS-U8-CbC取值为 AES128CBC.,升级数据文件120中的第一升级数据文件121、第N升级数据文件12N是采用 ENCRYPT项111定义的算法进行加密的。DIGEST项112定义了升级包100在进行数字签名时采用的数字摘要算法,取值名称范围是0PENSSL数字摘要算法,全部为大写加数字,例如-md5取值为MD5。SIGNATURE项113定义了升级包100在进行数字签名时采用的签名算法,取值名称范围是0PENSSL签名算法,全部为大写加数字,例如rsa取值为RSA。SIGNM0DULE项114定义了升级包100中进行了数字签名的模块名,取值名称范围是模块级部分(Section)的名称,如SAFEKNL。其中,以上所述的0PENSSL为网络通信提供安全及数据完整性的一种安全协议。图3为本发明一实施例提供的数字签名文件130的格式示意图。数字签名文件 130包括模块数字签名131以及整体数字签名132。模块数字签名131包括模块A数字签名131A,模块B数字签名131B等多个模块签名数据。其中,模块A数字签名131A以及模块B数字签名131B是按照升级描述文件110中SIGNM0DULE项114描述的模块顺序,并使用DIGEST项112描述的数据摘要算法和SIGNATURE项113描述的签名算法所生成的数字签名文件。模块A数字签名131A以及模块B数字签名131B在IPTV升级的过程中会被更新到数字电视终端,以用于数字电视终端开机的校验中。整体数字签名132是对升级包100中整体数字签名132之前的所有数据(包括升级描述文件110、升级数据文件120、模块A数字签名131A以及模块B数字签名131B)进行数字签名生成的文件,用来保证在不安全的网络下得到的升级包100是由合法的用户生成,并且在传输的过程中没有被篡改。图4为本发明一实施例提供的形成IPTV升级包100的方法流程图。如图4所示, 形成升级包100的方法包括
步骤410 生成原始的数据升级文件;
步骤420 对关键模块进行数字签名,例如内核模块(Kernel模块)以及应用程序模块 (Application模块,以下简称为App模块),以形成模块A数字签名131A以及模块B数字签名 131B ;
步骤430:在原始的数据升级文件前增加升级描述文件110,其中,升级描述文件110中包括 ENCRYPT 项 111,DIGEST 项 112,SIGNATURE 项 113 以及 SIG匪ODULE 项 114 ;
步骤440 对原始的数据升级文件进行加密以形成升级数据文件120,其中,对原始的数据升级文件进行加密是采用升级描述文件110中的ENCRYPT项111对应的加密算法;
步骤450 进行整体数字签名,S卩,对步骤440中形成的所有数据进行数字签名。整体数字签名仍然采用DIGEST项112中描述的数据摘要算法和SIGNATURE项113中描述的签名^^去。整体数字签名可以确定制作的升级包100没有在传输过程中经过篡改,模块的数字签名可以确定制作升级包100时使用的升级数据是合法的,没有被篡改。于本实施例中, 对关键模块进行的数字签名与整体数字签名所用的密钥可以相同的,也可以是不同的,密钥均存储在启动区(Booter)的一次性可编程(One Time Programable,以下简称为OTP)区域,由于OTP区域具有不可更改的特性,因此一旦密钥被写入,就不可修改,保证了密钥的安全性。由图4所示的形成升级包100的方法可知,所生成的升级包100具有更高的安全性,由于对升级数据进行了加密,即使非法用户截取到升级包100,也无法获取有效的升级数据。另外由于进行了数字签名,若升级包100在传输过程中被篡改,则数字电视终端会校验整体数字签名失败,如果数字电视终端所接收到的是不受认证的升级包,其校验会失败, 保证了系统升级的安全性。图5为本发明一实施例提供的IPTV的升级方法的流程图,如图5所示,IPTV的升级方法包括
步骤510:下载升级包,于本实施例中,可以由用户或者其他条件触发升级程序,以下载升级包文件;
步骤520 匹配升级包中的升级描述文件,此处的匹配主要是针对升级描述文件中的厂商、产品、版本等信息进行比对;
步骤530 获取校验签名的第一密钥(以下简称为Keyl),并用Keyl校验整体数字签名,其中,Keyl存储于Booter的OTP区域;
步骤MO 获取用于解密的第二密钥(以下简称为Key2),并用Key2解密升级数据文件,其中,Key2存储于Booter的OTP区域;
步骤550 对单个模块进行升级,具体升级步骤将于后续进行详细描述;
步骤560:校验升级后的数据和更新后的数字签名是否匹配,升级后的数据是否完整,如果是(即升级后的数据和更新后的数字签名匹配,或升级后的数据完整时),则执行步骤 570 ;否则,执行步骤580 ;
步骤570 判断是否所有模块均升级完成,如果完成,则执行步骤580 ;否则,执行步骤
550 ;
步骤580 退出升级。其中,于步骤560中,校验升级后的数据和更新后的数字签名是否匹配的步骤是针对有数字签名的模块进行的;校验升级后的数据是否完整的步骤是针对无数字签名的模块进行的。图6为本发明一实施例提供的对单个模块进行升级的方法流程图,如图6所示,对单个模块进行升级的方法包括
步骤551 将模块的升级数据写入到Flash上对应的区域;
步骤553 判断该模块是否有数字签名,如果有,则执行步骤555 ;否则(图中未示),执行步骤560中校验升级后的数据是否完整的步骤;
步骤555 将升级包中该模块对应的数字签名更新到Flash中该模块的签名区域步骤557 获取校验签名的第三密钥(以下简称为Key3),用于校验该模块的数字签名,其中,Key3存储于Booter的OTP区域。图7为本发明一实施例提供的IPTV开机校验方法的流程图,如图7所示,开机校验方法包括
步骤710 开机芯片校验Booter的合法性。步骤720 =Booter是否成功校验Kernel模块(即模块A)和APP模块(即模块B) 的数字签名,如果校验成功,执行步骤730 ;否则,执行步骤750,其中,Kernel模块和APP模块的数字签名均来自于升级包100。步骤730 是否成功启动Kernel模块和App模块,并将Booter中保存的Keyl、Key2 和Key3传给App模块,如果是,则执行步骤740 ;否则,执行步骤750。步骤740 开机成功,进入APP模块。步骤750 开机失败,显示启动失败的信息。使用具有高级安全的芯片,需要芯片厂商或者第三方安全机构对Booter进行认证和签名,于步骤710中,未经过认证和签名的Booter在开机时则会校验失败,导致无法启动。步骤720中对Kernel模块(即模块A)和APP模块(即模块B)的数字签名进行校验, 保证了升级后的APP模块再升级时仍然必须符合该升级流程,即如果升级后的APP在再次升级时不更新签名则会导致再升级时无法启动。也就是说,升级方法的流程保证升级包格式的合法性,开机校验方法的流程保证了升级流程的合法性,开机流程的安全性依赖于高级安全芯片的校验。另一方面,KeyU Key2和Key3是进行加扰之后存放在Booter中不可修改的OTP区域,具有高级安全的芯片开机加扰性能之后,即使读取内存中的数据也无法获取到明文的密钥,从而保护了密钥的安全,所有的计算直到进入芯片后才能解扰,这样密钥的安全性也就增强到了芯片级别。这样一来,IPTV系统的安全性就增强到了芯片的级别。本发明以上实施例提供的IPTV的升级方法、升级包结构以及开机校验方法,能够防止升级包被篡改及被盗用,提高了系统的安全性。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种IPTV的升级包结构,其特征在于,所述升级包包括升级描述文件,升级数据文件以及数字签名文件,其中,所述升级描述文件包括加密项,用于定义所述升级包在传输中的加密算法;数字摘要项,用于定义所述升级包在进行数字签名时采用的数字摘要算法;签名项,用于定义所述升级包在进行所述数字签名时采用的签名算法;以及模块名项,用于定义所述升级包中进行了所述数字签名的模块名;所述数字签名文件包括模块数字签名以及整体数字签名。
2.如权利要求1所述的IPTV的升级包结构,其特征在于所述升级数据文件为加密的数据文件。
3.如权利要求1所述的IPTV的升级包结构,其特征在于所述模块数字签名,包括模块A数字签名以及模块B数字签名,所述模块A数字签名以及所述模块B数字签名是按照所述升级描述文件中所述模块名项描述的模块顺序,并使用所述数字摘要项描述的数据摘要算法和所述签名项描述的签名算法生成的。
4.如权利要求3所述的IPTV的升级包结构,其特征在于所述整体数字签名,用于对所述升级包中所述整体数字签名之前的所有数据进行数字签名,其中,所述整体数字签名之前的所有数据包括所述升级描述文件、所述升级数据文件、所述模块A数字签名以及所述模块B数字签名。
5.如权利要求3所述的IPTV的升级包结构,其特征在于所述模块A数字签名以及所述模块B数字签名在所述IPTV升级的过程中会被更新到数字电视终端,以用于所述数字电视终端开机的校验中。
6.如权利要求1所述的IPTV的升级包结构,其特征在于所述升级描述文件是明文,并采用ini格式对升级项进行描述,固定长度为4096比特。
7.—种IPTV的升级方法,其特征在于,所述IPTV的升级方法包括下载权利要求1-6中任一项所述的升级包的步骤;匹配所述升级包中的升级描述文件的步骤;获取校验签名的第一密钥,并用所述第一密钥校验整体数字签名的步骤;获取用于解密的第二密钥,并用所述第二密钥解密升级数据文件的步骤;以及对单个模块进行升级的步骤。
8.如权利要求7所述的IPTV的升级方法,其特征在于所述IPTV的升级方法还包括校验升级后的数据和更新后的数字签名是否匹配,所述升级后的数据是否完整的步骤;以及当所述升级后的数据和所述更新后的数字签名匹配,或所述升级后的数据完整时,判断是否所有模块均升级完成的步骤。
9.如权利要求7所述的IPTV的升级方法,其特征在于所述第一密钥校验以及所述第二密钥校验均存储在启动区的一次性可编程区域。
10.如权利要求7所述的IPTV的升级方法,其特征在于,所述下载所述升级包的步骤之前还包括生成原始的数据升级文件的步骤;对关键模块进行数字签名的步骤;在所述原始的数据升级文件前增加所述升级描述文件的步骤,其中,对所述原始的数据升级文件进行加密是采用所述升级描述文件中的所述加密项对应的加密算法;对所述原始的数据升级文件进行加密以形成所述升级数据文件的步骤;以及进行所述整体数字签名的步骤。
11.如权利要求10所述的IPTV的升级方法,其特征在于所述关键模块包括内核模块以及应用程序模块。
12.如权利要求7所述的IPTV的升级方法,其特征在于,所述对单个模块进行升级的步骤进一步包括将所述单个模块的升级数据写入到Flash上对应区域的步骤;判断所述单个模块是否有数字签名的步骤;如果所述单个模块有数字签名,将所述升级包中该所述单个模块对应的数字签名更新到所述Flash中的所述模块的签名区域的步骤;以及获取校验签名的第三密钥,以用于校验所述单个模块的数字签名的步骤。
13.如权利要求12所述的IPTV的升级方法,其特征在于,还包括如果所述单个模块无数字签名,校验升级后的数据是否完整的步骤。
14.如权利要求12所述的IPTV的升级方法,其特征在于所述第三密钥校验存储在启动区的一次性可编程区域。
15.一种IPTV开机校验方法,其特征在于,所述IPTV开机校验方法包括由开机芯片校验启动区的合法性的步骤;判断启动区是否成功校验内核模块以及应用程序模块的数字签名的步骤,其中,所述内核模块以及所述应用程序模块的数字签名均来自于权利要求1-6中任一项所述的升级包;以及如果成功校验所述内核模块以及所述应用程序模块的数字签名,判断是否成功启动所述内核模块以及所述应用程序模块,并将所述启动区中保存的密钥传给所述应用程序模块的步骤。
16.如权利要求15所述的IPTV开机校验方法,其特征在于所述密钥包括用于校验整体数字签名的第一密钥;用于解密的第二密钥;以及用于校验模块数字签名的第三密钥。
全文摘要
本发明适用于数字电视领域,提供了一种IPTV的升级方法、升级包结构以及开机校验方法。其中,IPTV的升级包包括升级描述文件,升级数据文件以及数字签名文件,其中,所述升级描述文件包括加密项,用于定义所述升级包在传输中的加密算法;数字摘要项,用于定义所述升级包在进行数字签名时采用的数字摘要算法;签名项,用于定义所述升级包在进行所述数字签名时采用的签名算法;以及模块名项,用于定义所述升级包中进行了所述数字签名的模块名;所述数字签名文件包括模块数字签名以及整体数字签名。本发明提供的一种IPTV的升级方法、升级包结构以及开机校验方法,能够防止升级包被篡改及被盗用,提高了系统的安全性。
文档编号H04N21/458GK102572595SQ20121002378
公开日2012年7月11日 申请日期2012年2月3日 优先权日2012年2月3日
发明者庄俊锋 申请人:深圳市同洲电子股份有限公司