详细描述
在该描述中,参考附图,这些附图可能以说明的方式示出形成了本发明可实现的特定实施例一部分。要理解的是,可能使用其它实施例,且可以在不偏离本发明的范围情况下作出逻辑和结构变化。下面的详细描述不应带有限制地理解,本发明的范围是由附加的权利要求书定义的。
在描述实施例前,需要描述一些用到的概念。补充内容是由单独文件组成的。这些单独文件的集合称为应用。一般在有补充内容的电视内,应用开始于一开始文件。开始文件是描述执行一相关应用的参数的文件或数据结构。应用文件的子集称为群。群对于分组有逻辑组织性的文件有用,这些文件可以一起被签名。例如,所有代表Web网页对象的文件可能组成逻辑群。类似地,所有的组成电子报纸内的一部分的Web网页可能组成另一逻辑群。主群是包括在此描述的安全信息资源文件的应用文件子集。
如果在某时段内文件内容不变,则在该时段内该文件被称为静态的。如果在某时段内文件内容至少改变一次,则在该时段内该文件被称为动态的。例如,每日电子报纸可能在一天的生存期时段内维持应用(日报)。在生存期时段内,一些文件可能改变其内容且因此被称为在时段内是动态的。说明性地,包括电子报纸内的最新新闻的页面可能在文件有标题时段时连续更新标题。其它可能不改变且因此称为该时段内静态。
如果在某时段内一个应用内的每个文件内容不变且构成该应用的文件集合保持不变,则在该时段内该应用被称为静态的。如果在某时段内应用不是静态的,则在该时段内该文件被称为动态的。在应用生存期内,可以建立或包含应用的新文件。例如,在电子商务交易中,服务器可能事先不知道用户观看时可能感兴趣的商品类型。在请求时,服务器可能根据用户的偏好和兴趣动态建立Web网页。
如果在某时段内群内的每个文件内容不变,且群内文件的集合保持不变,则在该时段内该群被称为静态的。如果在某时段内它不是静止的,则该群不是静态的。
Web网页或Web网页群是一组可能一起以单一页面显示的文件(例如,文本文件、图像文件、脚本文件)。Web网页文件是包括超文本标记语言(HTML)或可扩展超文本标记语言(XHTML)(或其它标记表示)的文件,且它描述Web网页群的表示与布局。
分离的签名是作为分离文件存在的签名,它用于对一个或多个应用文件签名,诸如每个组成群的文件。附加的签名是作为文件内部数据存在的签名,且用于对包括签名的文件签名。如果包含签名的文件是组成Web网页群的Web网页文件,则可以使用同样的签名以对在Web网页群内的文件签名。
在此描述的是对补充电视内容应用签名的结构和方法。该结构包括两种签名应用的结构,集中结构和分散结构,两种都会被描述。这两种结构可能用于同一应用的不同部分。
集中结构使用开始文件以指明数字签名的位置。在集中结构中,一个称为安全信息资源文件的文件包括对在安全信息资源文件内引用的每个文件群的签名文件位置规定。在一实现中,开始文件包括安全信息资源文件。在另一实现中,开始文件包括到安全信息资源文件位置的引用(或链接)。
分散结构并不使用开始文件以指明数字签名的位置,而是在应用文件内包括数字签名作为附加文件,或包括来自应用文件内附加的文件的数字签名的引用。集中结构可能使用安全信息资源文件以提供其它应用签名信息。集中和分散结构的说明性实施例在此描述。
安全信息资源文件
图1说明了示范安全信息资源文件100。安全信息资源文件100是提供关于对应用签名的总体信息的表达式的集合。集中结构内的安全信息资源文件100可能作为开始文件内的附加数据存在,或作为从开始文件引用的分开文件。分散结构内的安全信息资源文件100可能作为应用文件或Web网页内的附加文件存在。
在一实现中,安全信息资源文件100是使用诸如可扩展标记语言(XML)的标记语言实现的。XML是灵活的建立公共信息格式并在万维网、内联网或其它地方分享格式和数据的方式。在一实现中,安全信息资源文件100经签名以防止未经授权的对信息的修改。
在集中结构中,安全信息资源文件100包括对每个定义的应用的群的群信息元数据表达式110以标识每个群。群用于组文件使得一个数字签名用于对群签名,而不是分开地对群的每个文件签名。在集中结构中,安全信息资源文件100包括用于对每个标识的群的签名位置元数据表达式120,诸如该群的经分离签名的统一资源定位器(URL)或链接。
安全信息资源文件100可能包括其它描述关于经数字签名的应用的信息元数据表达式130。在一实现内的其它信息元数据表达式130可能包括带有到描述安全政策文件的引用的安全政策元数据表达式140。在一实现中的其它信息元数据表达式130可能描述代表元数据表达式150,它标识可能对主签名人外的至少一个经标识的群可能签名的代表,或标识可能在主签名人外对应用签名的代表。应用的一些元件可能由除主实体外的其它方生成。在一实现中,补充应用的接收机识别这些由始发实体授权的其它方。例如,分配软件到成百个分支机构的网络可能允许分支机构插入本地商业广告的软件部分。代表是指除主要源实体外的其它方,它对使用分离群签名、附加文件签名或附加消息签名的应用的部分签名。
集中和离散结构安全信息资源文件100以及集中和离散结构系统的例子在下面给出。
集中结构
在一实施例中,安全信息资源文件100使用XML方案被描述。在集中结构中,安全信息安全文件100包括对于每个描述的群的数字签名的引用以及应用群的描述。
在一实施例中,安全信息资源文件100可能还包括其它信息。该其它信息可能包括到描述安全政策的文档的引用以及标识、性质以及代表(如果有的话)的限制,它可能在主签名人之外对群或应用签名。
图2说明集中结构的实现,其中到数据字签名数据的引用被包括在开始文件内。现在参考图2,开始文件202包括集中结构安全信息资源文件100。集中结构安全信息资源文件100是提供关于应用签名的总体信息的表达式的集合。
集中结构安全信息资源文件100包括群信息元数据表达式110i,对每个群“i”,i=1到n以命名每个群“i”。集中结构安全信息资源文件100包括对每个已标识的群214i的签名位置元数据表达式120i,i从1到n。签名位置元数据表达式120i描述群214i的分离签名文件210i的位置,诸如URL或链接。每个群214i都与相应的文件220相关。说明性地,群214i与文件2201-220m相关且群210n与文件220t-220v。分离签名文件211i包括群214i的数字签名211i。该签名211i可能包括每个组成群的文件的哈希码,以及对每个文件的至少哈希码签名的数字签名。对群签名的过程必然伴有计算群数字签名211i。对于静态群,群签名可能只计算一次。对动态群,群签名可能在每次群的一个文件改变时被计算。因此,群的选择必须反应群内文件的数量,以及群内文件的动态性质。数字签名文件210,可能包括到群文件212i的引用,该群文件是对包括群214的文件220的位置或标识的引用。在一实现中,到文件的引用存贮在签名文件210i外,诸如安全信息资源文件100。数字签名文件210i可能包括时间确认记录213i,用于描述签名的版本作为组成群214i文件220i的函数。这可能用于确定签名211i是否反应当前动态群的群文件。在一实现中,时间确认记录213i存储在签名文件210i之外,诸如在安全信息资源文件100内。
图3说明集中结构的实现,其中用于访问对数字签名数据的引用的引用被包括在开始文件内。参考图3,开始文件302包括到集中结构安全信息资源文件100的引用。如参考图2描述的,集中结构安全信息资源文件100包括群1到n的群信息元数据表达式,以及群1到n的指定群签名文件2101到210n的位置的签名位置元数据表达式,每个签名文件210i包括与相应的群214i相关联的分离的数字签名211i。在一实现中,集中结构安全信息资元文件100还包括其它信息源数据表达式130,诸如到描述安全政策的文档的引用以及标识、性质以及可以对应用签名的代表(如果有的话)的限制。
图4表示说明性的定义集中结构安全信息资源文件100的示范文档根的结构和分量408的XML元数据方案400。元素AppSecurityInfo 404在文档根内。分量408包括元素MainCluster412、元素Delegate 416以及元素ClusterList420。
图5表示指定元素MainCluster 412(图4)的结构的说明性元数据方案500。元素MainCluster 504指定分离签名文210i(图2或图3)的位置。属性Loc 508指示可能得到主群的签名文件的位置,它被格式化为统一资源标识符(URI)。属性Id 512是可选项,并用于从父文档或其它文档的其它部分引用元素MainCluster。
图6表示指定元素Delegate 416(图4)的结构的说明性元数据方案700。元素Delegate 416指定能对应用的主源实体允许的应用的签名部分的代表实体的名字标识。该元素可能出现在集中结构签名信息元数据100内的群列表之内或之外。
出现在群列表外可能指明命名的代表可能不受限制地对应用的不同部分签名。代表可能使用群签名文件、附加文件签名或附加消息签名而对文件签名。特别是,代表可能对触发资源签名(一种附加文件签名)。出现在群列表内可能指示所命名的代表可只能对对应的群签名文件签名。
元素Dname604提供代表的不同的名字,以与代表的证书内的类似信息匹配。零个或更多名为Constraint 608的元素可能描述对应用部分签名的能力的限制。定义元素Dname的方案是:<element name=“Dname”type=“string”。准确表示不同文本串的名字的规则类似于对在XML数字签名标准,RFC3275,内描述的元素X509SubjectName的编码规则“XML-Signature Syntax andprocessing”,Internet Engineering Task Force(IETF),2002年三月。
图7表示指定元素Constraint 704的结构的说明性元数据方案700。元素Constraint 704指定可能加在代表上的限制。NotBefore元素708以及notAfter元素712是提供对代表对应用一部分签名的能力的时间界限的一实现。
图8说明指定元素ClusterList 420(图4)的说明性元数据方案800。元素ClusterList 420定义对所有组成应用的群的壳。
图9说明指定元素Cluster 904的说明性元数据方案900。属性Loc 908指示从哪个URI检索群签名文件。属性ID 912是任选项且用于从父文档或其它文档的其它部分引用元素Cluster 904。
分散结构
安全信息资源文件100是用XML方案描述的。分散结构描述作为附加文件的安全信息资源文件100。分散结构签名数据或者是附加签名数据或分开的分离签名文件,其中Web网页文件内的附加链接指向分离签名文件。
在此描述的结构的特征之一是对动态应用签名能力。在以上描述的参考集中结构的一实施例中,动态应用使用带有对应的随文件变化而变化的签名文件的群而被签名。在另一实现中,使用随相关文件变化而变化的附加的文件签名或到附加的文件签名的引用。分散结构使得签名能直接与个别Web网页相关。分散结构能用于基于应用的标记语言的静态或动态Web网页,以及用于在用户端用过程应用动态地建立的Web网页。分散结构并不依靠群。因此在分散结构内,安全信息资源文件包括签名数据但不需要包括应用群的描述。在一实施例中,安全信息资源文件100包括其它关于数字签名应用的信息,诸如到描述安全政策的文档的引用和可能在主签名者外对应用签名的代表的标识。
图10说明分散结构的实现,其中建立安全信息资源文件10081以及签名数据10091为附加文件。参考图10,文件10021-002n组成Web网页1004。文件10021可能包括安全信息资源文件1008。安全信息资源文件1008包括关于对Web网页1004签名的任选项信息,诸如到描述安全政策以及如果有任何可能对应用签名的代表的标识、特性以及限制的文档的引用。文件1002i包括对Web网页1004的附加签名数据10091。在一实施例中,签名数据10091可能被包括为安全信息资源文件10081的分量。
图11说明了分散方法的实现,其中安全信息资源文件100被建立为附加文件。参考图11,文件11021-1102n组成Web网页1104。文件11021可能包括安全信息资源文件100。安全信息资源文件100包括关于对Web网页1104签名的任选项信息,诸如到描述安全政策以及如果有任何可能对应用签名的代表(如有的话)的标识、特性以及限制的文档的引用。文件11021包括到分离的签名文件1112引用(链接)的签名链接数据11091。
图12表示分散结构安全信息资源文件的说明性XML元数据表示。XML元数据表示1200开始并结束于<AppSecurityInfo>元素1204,如同与图4内说明的集中结构方案400相关的说明性集中方式所表示的。要注意的是不同于集中结构方案400,分散表示1200不带有任何关于群的信息,这是因为分散结构不预先需要群信息。在一实现中,政策和代表的信息可能存在于<AppSecurityInfo>元素1204内。
说明性地提供了两种政策声明。第一政策声明1206指定PRF(允许请求文件)1210的位置。PRF一般指明对于应用的允许和不允许的操作。要注意的是称为“Status”1212的属性指明是否由于安全的原因必须对方案1200进行解释和解码。第二政策声明1216定义了可能包含从应用开发者来的隐私声明的文件的位置。可能类似地包括其它政策文件。
方案1200包括Delegates(代表)1220的列表。代表是除主签名者外可能对应用的部分签名的实体(个人或组织)。要注意的是<Constraint>1224以不同于图7的方式被格式化。这仅是格式偏好而与无技术含义。
当分散结构用于对Web网页(或Web网页群)签名时,且当分离签名用于该目的时,需要定义使Web网页和带有分离签名的文件相关的方法。XHTML链接元素的语义扩展用于提供XHTML文档、其相关对象以及群签名文件间的反向链接。一个或多个链接元素具有以下形式:
<link rev=“ClusterSignature”type+“text/xml”href=“...”/>
href属性提供群签名文件的绝对或相对的位置。当Web网页引擎遇到带有在文档头部该种类型的引用元素的XHTML(或HTML)Web网页时,它恢复相关签名文件用于签名确认。如果确认了签名,则Web网页引擎运行并显示XHTML或HTMLWeb网页。
签名文件格式
在一实现中,签名文件的格式由XML数字签名标准,RFC 3275,的元素的子集组成“XML-Signature Syntax and Processing”,Internet EngineeringTask Force(IETF),2002年3月。
表1是包括元数据表达式和注释的说明性子集。
表1
[XML-DSIG]元素 |
支持条件 |
Signature |
是。它定义根元素 |
SignedInfo |
是。它定义摘要和签名的引用组 |
SignatureValue |
是。它携带文档的实际签名 |
KeyInfo |
是。它定义证书获得机制 |
0bject |
是。它会携带特殊的时戳版本。 |
CanonicalizationMethod |
是。但算法可能限于单一标准化算法(不带注释的C14n) |
SignatureMethod |
是。但算法限于有SHA1的RSA |
Reference |
是。它提供外部文件和签名构造内的内部对象间的引用功能 |
Transforms |
是。但可能仅允许有限数目的变换:标准化和移去附加签名 |
DigestMethod |
是。它定义标准SHA-1算法作为提供消息哈希的方法 |
DigestValue |
是。它携带用于给定引用的实际摘要值 |
KeyName |
对初始实现不一定必须 |
KeyValue |
对初始实现不一定必须 |
RetrievalMethod |
是。它用于从某个位置获得原始X.509证书 |
X509Data |
是。它的一些子元素应被用于支持X.509证书和CRLs |
PGPData |
不必须。PGP在该类型数字签名范围外。 |
SPKIData |
不必须。SPKI项在该类型数字签名范围外。 |
MgmtData |
不必须。用[XML-DSIG]反对 |
DASKeyValue |
对初始实现不必须 |
RSAKeyValue |
对初始实现不必须 |
P、Q、G、J、Y、Seed、PgenCount er |
不必须。DSA和密码属性在该类型的数字签名初始范围外 |
Modules、Exponent |
对初始实现不必须。如果使用证书,则RSA密码属性的分开声明不一定必要 |
X509IssuerSerial |
对初始实现不必须。X509信息会使用证书被携带 |
X509SKI |
对初始实现不必须。X509信息会使用证书被携带 |
X509SubjectName |
对初始实现不必须。X509信息会使用证书被携带 |
X509Certificate |
是。用于必要时的证书插入 |
X509CRL |
是。必要时用于CRL插入 |
PGPKeyId |
不必须。PGP在该类型数字签名范围外 |
PGPKeyPacket |
不必须。PGP在该类型数字签名范围外 |
SPKISexp |
不必须。SPKI项在该类型数字签名范围外。 |
Manifest |
是。它定义核心确认过程中摘要和文件间的较少的联接 |
SignatureProperties |
是。它将用于携带签名文档时戳版本 |
子集包括多个<Reference>元素,每个定义文件位置,且还定义了用于签名的变换和算法。<KeyInfo>元素定义提供签名的附加公共密钥基础结构(PKI)分量的位置。附加PKI分量包括证书和证书撤销列表。<DigestValue>提供将单向数学哈希函数应用到文件的结果。在接收文件后,接收机在接收到的文件上实现类似的操作。相同的摘要值对于签名确认是必须的。<SignatureValue>元素带有从合适的变换和签名算法导出的实际签名字节。变换过程包括标准化、最小化并在应用数字签名前去除文件内的非必须信息的方法。
<VersionNumber>元素是标识数字签名的最新版本的。该元素不在XML数字签名标准内定义,而是新实现以能够通过接收设备跟踪旧文件。当签名的多个版本由接收设备缓冲时,需要确定这些版本中哪个是最近的。
时戳版本
在一实施例中,时戳用于提供签名文件的版本,但也用于提供源非否定操作。在带有动态群的实现中,时戳版本提供签名文件的版本,还用于提供非否定操作。该构造可能被包括在群签名文件以及附加文件签名内。参考图13,方案1300可能被包括在签名文件内在分开的名空间下,使用XML数字签名标准,RFC 3275,的<SignatureProperties>元素“XML-Signature Syntax andProcessing”,Internet Engineering Task Force(IETF),2002年3月。
建立和确认补充内容的实施例
图14A-14B说明了将应用和它们的数字签名相关的方法1400。在一实施例中,在至少一个补充电视内容服务器内的至少一个处理器包括当由处理器执行时,使处理器执行方法1400的指令。
操作1404用至少一个群标识应用文件(如果有)的至少一部分。该操作确定应用的哪些文件会被归入群(如果有),哪些会用每个群被标识,以及哪些文件(如果有)会有附加签名或到附加签名的引用。在一实施例中,与群相关的文件的标识受与群相关的文件是静态或动态的影响。
如果文件被归入群,它们会有引用一个群签名文件的安全信息资源文件。一个实现中的安全信息资源文件被包括在应用开始文件中。在一个实施例中,到安全信息资源文件的引用被包括在应用开始文件中。
操作1408存储对组成在群签名文件中的每个群的文件的引用,诸如组成群的文件的位置或标识。在一实现中,对文件的引用被存储在签名文件外,诸如安全信息资源文件。在一实现中,签名确认记录被存储在群签名文件内。在一实现中,时间确认记录被存储在签名文件外,诸如在安全信息资源文件内。时间确认记录被用于描述签名的版本作为组成每个群的文件的功能,并用于确定签名是否反映动态群的当前群文件。
操作1412确定在签名文件内的每个群的群签名。如参考图2所描述的,在一实现中,分离的签名文件包括组成群的每个文件的哈希码,以及用于对每个文件的至少哈希码签名的数字签名。
操作1416建立包括要被归入群的文件的签名文件位置的表达式。在一应用中,这是参考图1,以及图4-9和13描述的安全信息资源文件100。在一实现中,安全信息资源文件100是XML元数据表达式。如参考图1描述的,安全信息资源文件可能包括群信息表达式、签名位置表达式以及其它信息表达式。在一实现中,安全元数据资源文件经签名以防止未经授权的对信息的修改。操作1420在开始文件内存储表达式或到表达式的引用。
操作1424标识组成至少一个Web网页的应用文件(如果有)的至少一部分。如在描述分散结构部分的部分内描述的,分散结构使得签名直接与个别Web网页相关。Web网页可能是基于标记语言应用的静态或动态Web网页。动态Web网页可能在客户或服务器端被建立。
操作1428确定用于每个Web网页的签名。对每个Web网页,操作1432在Web网页或对签名或对到分离的签名的链接进行编码。操作1436可选地在每个Web网页内对有安全信息的表达式编码。在一实现中,这是参考图1和12描述的安全信息资源文件100。在一实现中,安全信息资源文件100是XML元数据表达式。如参考图1描述的,分散结构的安全信息资源文件包括关于数字签名的应用的其它信息,诸如到描述安全政策和可能在主签名者外对应用签名的代表的标识的文档的引用。在一实现中,安全信息资源文件经签名以防止未经授权的对信息的修改。
图15说明在接收补充电视内容应用文件时处理数字签名的示范方法1500。在一实现中,补充电视内容客户处的至少一个处理器包括当由处理器执行时,使得处理器执行方法1500的指令。
操作1504确定对于一个集中结构实施例中是否有任何文件被组织在群内。在一实现中,检索应用开始文件并对其解码。如果应用开始文件包括或引用到(指向)安全信息资源文件,签名源文件指明群内有文件。开始文件是初始文件或带有运行参数的数据结构,且一般引用开始应用的实际执行的应用引导文件。
如果群内有任何文件,则从操作1504采取YES分支。操作1508为每个群确定群签名的位置。在一实现中,每个群的签名在签名文件210内。在一实现中,签名信息源文件100经解码以获得群签名的位置。操作1512确定组成群的文件。这些文件一般在签名文件或安全信息资源文件内。
操作1512确定组成每个簇的文件。在一实现中,对组成每个群的文件的引用存储在签名文件内且操作1512对签名文件解码以获得文件的标识。在一实现内,安全信息资源文件包括与每个群相关的文件,操作1512对安全信息资源文件解码以获得文件的标识。
操作1516通过包括确认每个群的签名的操作而确认群内每个文件的完整性。在一实现内,签名信息源文件包括代表列表以及对代表签名数据(如果有)的限制,以及可应用政策数据(如果有)的列表。在一实现内,由于计算了签名,安全资源文件或签名文件包括时间确认信息以确定组成群的文件是否有改变。在一实现中,签名通过检索相关证书和撤销列表而被确认,确认所检索的证书和撤销列表的状态,对文件进行合适的变换过程,计算文件摘要值,并将文件摘要值与签名文件内的摘要预置比较。签名可能由代表提供。如果签名由代表提供,则检查代表限制。如果提供时间确认信息,则该信息用于确认每个群的签名。在一实现中,安全信息资源文件经签名且安全信息资源文件签名经确认。
如果群内没有任何文件,则从操作1504处采取NO分支。操作1520确定是否有任何文件组成分散结构实施例的Web网页。如果从操作1520处采取YES分支,则操作1524对每个Web网页解码以确定Web网页是否有Web网页签名或到Web网页签名的引用。如果Web网页有Web网页签名或到Web网页签名的引用,则从操作1528处采取YES分支,在操作1532处读签名。在操作1536处确认签名。在一实现中,签名通过检索相关的证书和撤销列表而经确定,确认被检索的证书和撤销列表的状态,对文件进行合适的变换,计算文件摘要值,并将文件摘要值与签名文件内的摘要预置比较。签名还能由代表提供。在一实现中,Web网页包括签名信息源文件,它被解码以获得签名信息诸如代表信息以帮助确认签名。如果签名由代表提供,则检查代表限制。
如果在操作1520或1528,采取NO分支,则剩余的文件(如果有)被认为是未经签名的,这是由于不存在数字签名的引用元素,不存在附加的数字签名,且文件是应用群的一个分量。客户机操作系统一般会警告用户文件尚未被签名或签名无效。用户可能决定是继续安装过程或中止。操作系统可能丢弃文件。如果目的是要安装并自动运行是一般交互电视应用的软件,则标准规定未经签名的应用对系统资源的访问有限制。这意味着未经签名的应用可能能在屏幕上显示一些东西,但不能有更具威胁性的操作诸如访问本地文件或通过因特网连到一些计算机上。一般,未经签名的应用在沙箱内运行,只有经签名的应用能在沙箱外有所操作。
这里使用的措辞和属于为描述之用而不视为限制。发明权利要求书内的语言可能不能覆盖所有细微差别,或完全精确地描述发明的范围。而且,可以理解的是在任何描述的方法内的经描述行为不一定按顺序的,在实现中可插入动作。
一些其它实现是可能的,包括以下从图15导出的:(1)应用可能不经过从操作1504到操作1516,因为它不包括集中签名方案,(2)应用可能在运行时间内而不在初始化时进行操作1520到操作1536,(3)应用可能在初始化时使用操作1504到操作1516处理一些群,而在运行时间时只是在需要时处理其它群。
本发明不限于以上描述与示出的。特定的特征和操作作为实现经权利要求的主题的示范形式而被揭示。要理解的是本发明不一定限于特定的描述的特征或图表。本发明的范围由以下的权利要求书而定义。