用于安全交易管理和电子权利保护的系统和方法

文档序号:7964890阅读:159来源:国知局
专利名称:用于安全交易管理和电子权利保护的系统和方法
技术领域
本发明一般涉及计算机和/或电子安全性。
更具体地说,本发明涉及安全交易管理的系统和技术。本发明还涉及基于计算机或其它电子设备的技术,这些技术有助于确保只能以经过授权的方式访问或使用信息,并维护该信息的完整性、可用性和/或保密性和涉及该使用的进程。
本发明还涉及用于保护电子商业活动以及其他电子的或由电子促进的交易中的各种参与者的权利的系统和方法。
本发明还涉及用于信息内容和用来控制对该信息内容的使用以及所述使用的结果的信息的安全处理和控制链。它还涉及管理—包括计量和/或限制和/或监视—对电子存贮的或传播的信息的使用的系统和技术。本发明特别涉及使用上述系统和/或技术—包括使用上述系统和/或技术的使用结果—的交易、处理和方案。
本发明还涉及分布式的和其他的操作系统、环境和体系结构。它通常还涉及包括(举例来说)基于硬件的防破坏处理器在内的安全体系结构,该安全体系结构可以用来在分布式系统的每个节点建立安全性。
背景技术
和综述目前,电信、金融交易、政府事务、商业运作、娱乐和私人商业生产力等均依赖于电子设备。数以百万计的这种电子设备已经被电子地连接在一起。这些互连的电子设备构成了被日渐称作的“信息高速公路”。许多商业、学术和政府领导都关心着如何保护使用该信息高速公路(也称作“电子高速公路”或“数字高速公路”)的公民和组织的权利。
电子信息内容目前,实际上任何能用文字、数字、图形或命令及指令系统代表的事物都可以被格式化成电子数字信息。电视、有线电缆、卫星传输以及通过电话线进行的联机服务相互竞争,将数字信息和娱乐分发到家庭和商业中。这些信息内容的所有者和市场销售人员包括软件开发人员、动画和录制公司、书籍、杂志及报纸的出版商、以及信息数据库提供者。联机服务的普及也已使得个人计算机用户加入到信息提供者的行列。据Microsoft公司估计,1992年的全球电子信息市场大约为400亿美元,而到1997年可望增至2000亿美元。本发明可以显著增加信息提供者的收益,降低分发成本和信息内容成本,更好地支持广告和使用信息收集,更好地满足电子信息用户的需要。这些改进将显著增加电子信息的数量和种类和分发该信息的方法的数量和种类。
为适应电子信息提供者和用户的需要而开发的传统产品的功能匮乏与本发明形成明显对比。尽管美国最大的电信、计算机、娱乐和信息提供者公司的代表人物对本发明所提及的某些问题给予了关注,只有本发明为可配置的、通用电子商业交易/分发控制系统提供了商业上的安全有效的解决方案。
控制电子信息内容本发明提供了一种新类型的“虚拟分发环境”(在本文件中称为“VDE”),该“虚拟分发环境”保护、管理和审核电子信息使用。VDE还以某些具有根本重要性的功能为其特性,这些功能用来管理“穿过”“信息高速公路”传播的信息内容。这些功能含有服务所有电子团体成员的权利保护方案。这些成员包括信息内容制作者和分发者、财务服务提供者、最终用户以及其他人员。对于计算机、其他电子设备、网络以及信息高速公路的用户来说,VDE是第一个通用的、可配置的交易控制/权利保护方案。
对于电子信息内容提供者来说,一个根本问题在于扩展他们的能力以控制对有产权信息的使用。信息内容提供者常常需要将使用限制在授权的活动和数量的范围内。涉及(举例来说)在光盘上提供电影和广告的业务模型中的参与者包括演员、导演、剧本作者和其他作者、作曲者、制作室、出版商、分发者、零售商、广告客户、信用卡服务机构、和信息内容最终用户。这些参与者需要下面的能力,即将他们的协定和要求范围一包括使用限制—体现到含有整体电子业务模型的“扩展”协定中。这些扩展协定由可以自动强制执行各方同意的权利和义务的电子信息内容的控制信息来代表。在VDE下,一个上述扩展协定可以含有一个涉及所有业务模型参与者的电子合同。作为另一种选择或补充,这种协定可以由在业务模型参与者子集之间达成的协定组成。通过使用VDE,电子商业可以按照与传统商业一样的方式起作用,即可以通过对不同各方之间的一个或多个协定的协商来形成涉及产品和服务的商业关系。
商业信息内容提供者关心确保使用他们的电子信息应支付的合理报酬。在今天,可以较为容易和廉价地拷贝电子数字信息—例如一个CD唱片。类似地,按照国际知识产权协会的估算,对软件程序的未经授权的拷贝和使用使合法所有者的年收入蒙受了几十亿美元的损失。信息内容提供者和分发者已经设计出大量功能有限的权利保护机制以保护他们的权利。鉴别口令和协议、许可服务器、“加锁/解锁”分发方法、以及强加于紧缩包装软件的用户的非电子合同限制等是较为流行的信息内容保护方案中的几个例子。在商业环境下,上述各种尝试是低效的和有限的解决方案。
“电子货币”的提供者也已经为其类型的信息内容创建了保护措施。这些系统没有足够的适用性、有效性或灵活性以支持电子货币的推广使用。而且,它们不提供复杂的审核和控制配置功能。这意味着目前的电子货币工具缺乏许多实际的金融业务模型所需的完善性。VDE提供了用于匿名货币和“有条件”匿名货币的机制,其中,除非在特殊的情况下,否则涉及货币的活动保持匿名。
VDE控制功能VDE允许电子数字信息的所有者和分发者可靠地为电子信息计帐,并且安全地控制、审核和预算对电子信息的使用。它可以可靠地检测和监视对商业信息产品的使用。VDE使用了各种各样的电子信息传递措施,包括(举例来说)数字网络、数字广播以及诸如光盘和磁盘之类的物理存贮介质。VDE可以被较大的网络提供者、硬件厂商、电子信息的所有者、这种信息的提供者、以及收集有关电子信息并对电子信息的使用计帐的票据交换所使用。
VDE提供全面的和可配置的交易管理、计量和监视技术。它可以改变对电子信息产品的保护、销售、包装、和分发方式。如果使用了VDE,那么它将会为信息提供者带来更高的收入,并带来更高的用户满意度以及价值。对VDE的使用通常将会带来降低的使用成本、降低的交易成本、对电子信息的更有效访问、权利保护措施和其他交易管理实现的可重用性、在使用被保护信息方面大大提高的灵活性、以及用于电子交易管理的更为标准化的工具和进程。VDE可以用来创建一个满足电子信息所有者、分发者和用户、财务票据交换所、以及使用信息分析员和再销售者的需要的适用环境。
权利和控制信息一般来说,本发明可以用来保护具有下列利益的团体(a)电子信息所有权或保密利益。本发明(举例来说)有助于确保以授权的方式访问信息;(b)由使用电子分发信息而产生的财务利益。本发明有助于确保信息内容提供者得到被分发信息的使用报酬;以及(c)在包括电子现金、银行业务、和购物等在内的电子信用和电子货币的存贮、传送、和/或使用方面的利益。
保护电子团体成员的权利涉及广泛的技术领域。VDE将这些技术合并成一种创建“分布式”电子权利保护“环境”的方法。该环境对交易和其他对权利保护具有重要性的进程进行安全化和保护。VDE(举例来说)提供了禁止或阻止干扰和/或探察涉及重要权利的交易和进程的能力。在其较佳实施例中,VDE使用专用的防破坏安全处理部件(SPU),它有助于向VDE进程和信息存贮和通信提供高度的安全性。
本发明所解决的权利保护问题是基本社会问题的电子形式。这些问题包括保护所有权、保护隐私权、适当地给予人们和组织一定的报酬以补偿他们所付出的劳动和所冒的风险、保护钱款和信用、以及通常保护信息的安全性。VDE利用使用了通用进程集的系统以有效、可信和成本高效的方式来管理权利问题。
VDE可以用来保护创建诸如唱片或录音带、游戏、电影、报纸、电子图书和参考资料、个人电子邮件、以及机密的记录和通信之类的电子信息的参与者的权利。本发明还可以用来保护诸如出版商和分发者之类的提供电子产品的参与者的权利;诸如票据交换所和银行之类的提供电子信用和货币以支付产品使用费的参与者的权利;使用电子信息内容的参与者(例如消费者、行业人士、政府)的隐私权;以及由电子信息所描述的当事人的隐私权—诸如涉及包含在病历、税务记录、或人事记录中的信息的隐私权。
一般来说,本发明可以用来保护具有下列利益的参与者的权利(a)对电子分发信息的商业利益—本发明(举例来说)有助于确保采用与当事人达成的协定相一致的方式为被分发信息的使用向当事人付费;(b)电子信息的所有权和/或机密性利益—本发明有助于(举例来说)确保对数据的使用只能以授权的方式进行;(c)在包括电子现金、银行业务、和购物等活动在内的电子信用和电子货币的存贮、传送、和/或使用方面的利益;以及(d)对至少部分地从使用其他电子信息中获取的电子信息的利益。
VDE功能特性VDE是一个成本高效的和有效的权利保护解决方案,它为保护和管理交易处理提供了统一的、一致的系统。VDE能够(a)审核和分析对信息内容的使用;(b)确保对信息内容进行使用只能采取授权方式;以及(c)允许对有关信息内容使用的信息只能以由信息内容用户同意的方式使用。
另外,VDE(a)是高度可配置、可修改、和可重复使用的;(b)支持广泛的有用功能,可以采用不同的方式将这些功能合并起来以支持大多数潜在的应用;(c)运行于各种各样的电子设备之上,其范围可以从手持式廉价设备到大型主计算机;(d)能够同时保证大量不同参与者的权利和大量不同权利保护方案;(e)能够通过一系列可以在不同时间和不同地点发生的交易来保护参与者的权利;(f)能够灵活地支持安全地传递信息和汇报使用的多种方式;以及(g)提供对“实际”货币和信息的电子模拟—包括匿名电子现金,以便为产品和服务付帐,以及支持个人(包括家庭)银行业务和其他金融活动。
VDE经济有效地满足了电子团体成员的权利保护需求。VDE的用户将不需要针对不同的信息高速公路产品和权利问题而需要另外的权利保护系统,他们也将不需要为每个新的信息高速公路应用都安装并学会一个新系统。
VDE提供了一个允许所有信息内容制作者、提供者和用户使用同一电子权利保护方案的统一解决方案。在经过授权的情况下,参与者可以自由地交换信息内容和相关信息内容控制集合。这意味着VDE的用户可以在被允许的情况下使用同一电子系统以处理带有不同信息内容控制信息集合的、不同类型的信息内容。由一个群体提供的信息内容和控制信息可以由通常使用其他群体提供的信息内容和控制信息的人们使用。VDE允许信息内容可以被“全局”地交换,并且,本发明的实现的用户可以电子地交互作用,而不必担心信息内容控制的不兼容性、权利的侵犯、以及得到、安装或学习新信息内容控制系统的需要。
VDE安全地管理规定了权利保护的交易。它可以保护的电子权利包括(举例来说)(a)电子信息内容的作者的所有权;(b)信息内容分发者的商业权利;(c)促进了信息内容分发的任何参与者的权利;(d)信息内容用户的隐私权;(e)由被存贮和/或被分发的信息内容描述的当事人的隐私权;以及(f)涉及强制执行电子协定的任何其他权利。
VDE允许十分广泛的、采用电子方式强制执行的商业和社会协定。这些协定可包括采用电子方式实现的合同、许可证、法律、条例、和税收。
与传统解决方案的对比传统信息内容控制机制常常要求用户购买超过其所需要的或所希望的电子信息。例如,紧缩包装软件的不经常用户被要求以与经常性用户相同的价格来购买一个程序,尽管他们可能从他们较为稀少的使用中得到较少的价值。传统系统没有按照使用的程度和特性按比例收费,并且传统系统不能吸引那些认为固定价格太高的潜在消费者。使用传统机制的系统通常不是特别地安全。例如,对于紧缩包装技术而言,一旦软件或者从其物理包装或从其电子包装中被移动出去以后,紧缩包装技术将不能防止不断的非法盗版行为。
传统的电子信息权利保护系统通常缺乏灵活性且效率不高,并且迫使信息内容提供者选择昂贵的分发通道,这类分发通道提高了产品的价格。一般来说,这些机制限制了产品定价、配置和销售的灵活性。这些缺点归因于用于控制信息的技术既不支持不同的信息内容模型,也不支持反映了模型参与者的许多不同要求(如信息内容传递策略)的信息内容模型。这样会限制提供者的下述能力,即传递足够的综合性信息以便从许多潜在用户的角度证明一个给定产品的价格是正当的。VDE允许信息内容提供者和分发者创建反映提供者和用户的优选业务模型的应用和分发网络。它提供给用户唯一地成本高效的并具有丰富特性的系统,该系统支持提供者希望用来分发信息的方式,以及用户希望用来使用该信息的方式。VDE支持确保权利及允许信息内容传递策略为最大商业成效的目的而形成的信息内容控制模型。
处理和控制链VDE可以保护属于在电子信息中具有权利或对电子信息具有权利的参与者的一批权利。该信息可以位于一个地点,也可以分散在多个地点上(或在多个地点之间移动)。该信息可以通过一个分发者“链”和一个用户“链”传递。使用信息也可以通过一个或多个参与者“链”被汇报出去。通常,VDE允许(a)在电子信息中带有权利的当事人,和/或(b)作为在电子信息中带有权利的当事人的直接或间接代理来保证对信息的移动、访问、修改或使用等可以由涉及如何、在何时、在何地、由谁等执行上述活动的规则安全地控制。
VDE应用和软件VDE是用来管理电子活动和商业的安全系统。上述管理由一个或多个参与者放置就位的控制信息来确保。这些参与者可以包括信息内容提供者、电子硬件制造商、财务服务提供者、或诸如电缆或电信公司之类的电子“基础设施”公司。控制信息实现了“权利应用”。权利应用运行在较佳实施例中的“基本软件”之上。该基本软件起一个安全的、灵活的、通用的基础的作用,该基础可以支持许多不同的权利应用,即许多不同的业务模型及其各自的参与者要求。
VDE下的权利应用由专用的部分组成,每一个部分都可以对应于权利保护环境所需要的、一个或多个基本的电子进程。这些进程可以象建筑模块一样被合并在一起,以创建可以保护权利的电子协定,并强制电子信息的用户和提供者履行他们的义务。电子信息的一个或多个提供者可以容易地合并选定的建筑模块以创建一个唯一于特定信息内容分发模型的权利应用。一组这样的模块可以代表执行用户和提供者之间协定所需的功能。这些模块支持电子商业的许多要求,包括使用电子信息许可的分发;控制信息以及管理这些许可的控制信息的集合的持久性;可配置的控制集合信息,这些控制集合信息可以由用户选择以便使用这些信息;电子信息的数据安全性和使用审核;以及用于货币、报酬、和借方管理的安全系统。
对于电子商业,依据本发明较佳实施例的权利应用可以电子化地强制执行所有参与者之间的业务协定。由于可以为不同应用而把不同的部件组放在一起,本发明可以为种类繁多的产品和市场提供电子控制信息。这意味着本发明可以为电子商业和数据安全性提供一个“统一”的、有效的、安全的和成本高效的系统。这可以允许VDE为电子权利保护、数据安全性以及电子货币和银行业务起单一标准的作用。
在VDE中,权利应用及其基础之间的分离允许对适于应用和使用的多种不同类型中的每一种的控制信息集合进行有效地选择。这些控制集合既可以反映电子团体成员的权利,也可以反映他们的义务(例如提供某人使用一个产品或为某人的电子购物活动纳税的历史信息)。VDE的灵活性允许其用户电子地实现和强制执行共同的社会和商业道德规范和惯例。通过提供一个统一的控制系统,本发明支持个人、团体、商业和政府的、范围广阔的、可能的、有关交易的利益和关心。由于它的开放式设计,VDE允许(通常在安全控制的情况下)将使用了由用户独立创建的技术的应用“加入”到系统中,并结合本发明的基础使用该应用。总之,VDE提供了一个可以公平地反映和强制执行各方之间的协定的系统。它是一个广泛的和系统的解决方案,该方案满足了对安全的、成本高效的、和公平的电子环境的迫切需要。
VDE实现本发明的较佳实施例含有允许系统设计者直接将VDE功能插入到其产品中的各种工具。这些工具包括一个应用程序员接口(“API”)和一个权利许可和管理语言(“RPML”)。RPML为使用本发明的特性提供了全面的和详细的控制。VDE还包括用来满足信息内容提供者、分发者和用户的需要的某些用户接口子系统。
利用VDE分发的信息有多种形式。信息可以(举例来说)被分发以供某个人自己的计算机使用,也就是说,本发明可以用来为本地存贮的数据提供安全性。作为另一种选择,VDE可以用于由作者和/或出版商传播给一个或多个接收者的信息。该信息可以有多种形式,包括电影、声音录制品、游戏、电子目录购物、多媒体、培训材料、电子邮件和个人文件、面向对象的库、软件编程资源、以及保存参考/记录的信息资源(如业务、医药、法律、科学、政府、和消费者数据库)。
本发明提供的电子权利保护还可以为可信的和有效的家庭和商业银行业务、电子信用进程、电子购物、真实的或有条件匿名的电子现金、以及EDI(电子数据交换)提供重要的基础。通过提供比基于密钥和口令的“通行/禁行”技术远远有效的“智能”交易管理特性,VDE在提高组织中的数据安全性方面提供重要的加强。
VDE通常使用密码技术和其他安全性技术(如加密、数字签名等)的结合,以及其他的技术,包括部件的、分布式的和事件驱动的操作系统技术,以及相关的通信、对象容器、数据库、智能代理、智能卡、和半导体设计技术。
1.概述A.VDE解决了重要问题并满足了关键需要世界正在朝着电子信息设备的集成化发展。设备的互连为更大规模的电子交互作用和电子商业的发展提供了基础。为实现电子商业环境需要各种功能。VDE是提供许多上述功能的第一个系统,并且因此而解决了有关信息电子传播的基本问题。
电子信息内容VDE允许电子协定的创建涉及双方或多方。这些协定可以本身含有在处于商业价值链和/或数据安全性链模型中的参与者之间达成的、针对处理、审核、汇报、和付款等的一批协定。它可以为安全电子信息内容的分发、使用控制、使用付款、使用审核和使用汇报提供有效的、可重用的、可修改的、和一致的方法。信息内容可以(举例来说)包括诸如电子货币和信用之类的财务信息;诸如参考资料数据库、电影、游戏、和广告之类的采用商业手段分发的电子信息;以及诸如文件、电子邮件、和有所有权的数据库信息之类的由个人和组织产生的电子财产。
VDE准许一个支持不同的、有竞争力业务伙伴关系、协定、以及发展的全面业务模型的电子商业市场。
VDE的特性使它能够作为第一个可信的电子信息控制环境起作用,该环境能够遵守并支持传统电子商业和数据安全性的大量要求。特别地,VDE允许处于业务价值链模型中的参与者创建传统业务协定条款和条件的电子版本,并进一步允许这些参与者形成并演变他们认定为适合其业务要求的电子商业模型。
VDE提供了一个避免反映特殊分发偏见、特殊管理和控制观点、以及特殊信息内容类型的体系结构。相反,VDE提供了一个范围广阔的、从根本上可配置和可移动的、电子交易控制、分发、使用、审核、汇报和付款操作环境。VDE不限在只是一个只涵盖了电子交互活动和参与者的有限子集的应用或特定于应用的工具集。相反,VDE支持这样的系统,即通过该系统,可以创建、修改和/或重用上述的应用。因此,本发明通过提供一个支持标准化控制环境的系统而满足了迫切的、尚未解决的需求,该标准化控制环境通过使用可编程的、安全的电子交易管理基础和可重用的和可扩展执行的部件促进了电子设备的互相协作性、信息内容容器的互相协作性,以及电子商业设备和模型的有效创建。VDE支持一个单一的电子“世界”,在该电子“世界”中可以对大多数形式的电子交易活动进行管理。
为了满足权利所有者和信息内容提供者正在发展的需要,并提供可支持所有可能参与到电子业务模型中的各方(制作者、分发者、管理员、用户、信用提供者、等等)的要求和协定的一个系统,VDE提供了一个有效的、大大透明的、低成本的和充分安全的系统(既支持硬件/软件模型,也支持只有软件的模型)。VDE提供了适合下列需要的、变化多端的安全控制和管理功能1.不同类型的电子信息内容;2.不同的电子信息内容传递方案;3.不同的电子信息内容使用方案;4.不同的信息内容使用平台;以及5.不同的信息内容销售和模型策略。
VDE可以与许多分离的计算机和/或其他电子设备合并在一起,或集成进它们之中。这些设备通常含有一个安全子系统,该安全子系统允许控制对信息内容的使用—例如显示、加密、解密、打印、拷贝、保存、抽取、嵌入、分发、审核使用、等等。较佳实施例中的上述安全子系统含有一个或多个“被保护的处理环境”,一个或多个安全数据库、以及安全“部件组”和其他需要保持安全的项目和进程。VDE可以(举例来说)使用上述的“安全子系统”安全地控制电子货币、付帐、和/或信用的管理(包括电子信用和/或货币接收、付款、留存、和/或分配)。
VDE提供了一个安全的、分布式电子交易管理系统,以便控制对采用电子方式提供的和/或存贮的信息的分发和/或其他使用,VDE控制对电子信息内容和/或设备的使用的审核和汇报。VDE的用户可以包括那些为最终用户组织、个人、以及信息内容和/或设备分发者将涉及信息内容使用、使用汇报、和/或使用付款的控制信息应用到电子信息内容和/或设备的信息内容创建者。VDE还安全地支持一个或多个参与者采用电子信用和/或货币的形式向一个或多个其他参与者支付所欠的款项。
在VDE控制下的电子设备代表安全地处理和控制被分发的电子信息和/或设备使用、控制信息配制、以及相关交易的VDE“节点”VDE可以安全地管理由两个或多个参与者提供的控制信息的集成。因此,VDE可以创建VDE参与者之间的一个电子协定,该电子协定代表了两方或多方的控制要求之间的“协商”,并且制定最终产生的协定的条款和条件。VDE确保了涉及与电子信息和/或设备使用有关的广泛电子活动的电子协定每一参与方的权利。
通过使用VDE的控制系统,传统的信息内容提供者和用户可以建立反映传统的、非电子关系的电子关系。他们可以形成和修改商业关系以支持他们不断变化的需要或他们之间不断变化的协定。VDE不要求电子信息内容提供者和用户变更他们的业务惯例和个人喜好以符合某个支持有限的、基本上固定的功能的计量和控制应用程序。而且,VDE允许参与者开发出对于非电子商业来说是不可行的业务模型,例如,涉及信息内容使用信息的详细汇报,在迄今为止尚不可行的低价位水平上进行的大量显著不同的交易,对在强制执行时无须参与者参与或事先了解的控制信息进行的“传递”、等等。
本发明允许信息内容提供者和用户配制他们的交易环境,以支持
(1)理想的信息内容模型、信息内容控制模型和信息内容使用信息通路;(2)完整范围的电子介质和分发手段;(3)范围广阔的定价、付款和审核策略;(4)非常灵活的隐私和/或汇报模型;(5)现实的和有效的安全体系结构;以及(6)与步骤(1)到(5)一起可以允许包括唯一于电子世界的模型在内的“真实世界”电子商业和数据安全性模型的其他管理过程。
VDE的交易管理功能可以强制执行(1)涉及与用户对电子信息和/或设备的使用相关的信息的用户隐私权;(2)诸如保护信息内容用户的权利或收集从电子交易收入中得到的税款的法律之类的社会政策;以及(3)参与者的所有权和/或其他权利,这些权利涉及电子信息的所有权、分发和/或与电子信息有关的其他商业权利。
VDE可以支持电子形式的“真实”商业活动,也就是说渐进地创建随着时间推移将形成代表价值链业务模型的相互关联协定的网络的商业关系。利用安全创建的和独立提交的信息内容和/或设备控制信息集合之间的交互作用(或协商)使得信息内容控制信息得以发展,这样可以部分地实现上述功能。不同的信息内容和/或设备控制信息集合可以由在本发明允许的电子业务价值链中的不同参与者提交。这些参与者通过使用他们各自的VDE装置创建控制信息集合。可独立安全传递的、基于部件的控制信息允许由不同参与者提供的控制信息集合之间的有效交互作用。
VDE允许在VDE支持的电子价值链模型中的参与者的子集之间形成多个分离的电子协定。这些多个协定一起构成了VDE价值链“扩展”协定。VDE支持上述构成的电子协定以及因此得到的全面VDE扩展协定在另外的VDE参与者参与VDE信息内容和/或设备控制信息处理的过程中逐渐地演变和重新形成。VDE电子协定还可以在已有参与者提交新控制信息时被扩展。使用VDE,电子商业参与者可以自由地组织和再组织他们的电子商业业务活动和关系。作为结果,由于使用VDE能够支持不同的,种类繁多的、使用同一或共享信息内容的业务模型,于是本发明允许竞争性的电子商业市场得到发展。
作为本发明广泛支持电子商业的能力的一个重要方面,本发明能够安全地管理可独立传递的、含有控制信息的VDE部件对象(通常采用含有一个或多个方法、数据或加载模块VDE部件的VDE对象的形式)。可以使用本发明的协商机制将上述可独立传递的控制信息与上级的和其他已有的信息内容控制信息集成在一起以便安全地产生被派生的控制信息。由该派生控制信息规定的所有要求必须在VDE控制信息可以被访问或使用之前得到满足。这意味着(举例来说)由派生控制信息列出来作为必需信息的所有加载模块和任意中间数据必须是可用的,并且他们必须安全地执行所要求的功能。结合本发明的其他方面,安全独立传递的控制部件允许电子商业参与者自由地规定他们的业务要求和折衷方案。结果,与传统的非电子商业十分相似,本发明允许电子商业(通过VDE参与者对各种控制要求的渐进规定)演变成最有效、最具有竞争力和最有用的业务形式。
VDE提供对电子商业和电子交易管理的支持进行合理化的功能。该合理化过程归因于针对种类繁多的、与交易管理有关的活动的控制结构和用户接口的可重复使用。结果,信息内容使用控制、数据安全性、信息审核、和电子财务活动可以由可重用的、方便的、一致的和熟悉的工具进行支持。另外,一种合理的手段—交易/分发控制标准—允许VDE中的所有参与者以硬件控制和安全性、创作、经营以及管理工具的同一基础集合,支持种类繁多的信息、业务销售模型和/或个人目标。
将VDE作为一种通用电子交易/分发控制系统加以使用允许用户在他们各自的计算机、网络、通信节点、和/或其他电子设备中的每一个中维护单一交易管理控制方案。这种通用系统可以满足许多电子交易管理应用的需要,而不是对于不同的用途需要特殊的、不同的装置。结果,VDE的用户可以避免对应于各个不同信息内容和/或业务模型的、不同的、有限用途的交易控制应用所带来的混淆和花费以及其他缺乏效率的方面。例如,VDE允许信息内容制作者对于信息内容创作以及从其他信息内容制作者那里取得信息内容许可以便将该信息内容加到其产品中或实现其他用途,这两种活动均使用同一VDE基础控制方案。票据交换所、分发者、信息内容制作者、以及其他VDE用户都可以不管VDE活动的类型而按照完全一致的方式,(大大透明地)使用或再使用相同的分发工具、机制、以及一致的用户接口与运行于他们的VDE装置中的应用交互作用,以及在相互之间进行交互作用。
通过控制和审核电子地存放和/或传播的信息(或对这些信息进行其他的使用管理),VDE禁止对电子信息进行的许多形式的未经授权的使用。这些信息包括(举例来说)商业分发的信息内容、电子货币、电子信用、业务交易(例如EDI)、机密通信、等等。VDE可以进一步用来允许商业上提供的电子信息内容之中用户定义的部分对用户可用,而不是限制用户只能使用信息内容制作者和/或其他提供者为计帐目的而“预定”的信息内容部分。
VDE(举例来说)可以使用(1)安全的计量手段用来预算和/或审核电子信息内容和/或设备的使用;(2)安全灵活的装置用来支持对信息内容和/或设备的使用费用进行偿付和/或计帐,包括用作付款手段的电子信用和/或货币机制。
(3)安全分布式数据库装置,用来存放有关控制和使用的信息(并使用了确认的划分和标记方案)。
(4)安全的电子设备控制装置;(5)由位于每个用户(包括VDE信息内容容器制作者、其他信息内容提供者、客户用户、以及安全VDE信息内容使用信息的接收者)站点上的节点构成的分布式的、安全的“虚拟黑盒子”。所述虚拟黑盒子的节点通常含有至少带有一个安全硬件元件(一个半导体元件或其他用来安全地执行VDE控制进程的硬件模块)的安全子系统,所述安全子系统被分发在沿信息存贮、分发、付款、使用和/或审核的路径上的各个节点中。在某些实施例中,对于某些或所有节点来说,所述硬件元件的功能可以(举例来说)由电子设备宿主处理环境中的软件执行;(6)加密和解密装置;(7)使用鉴别、数字签名、和加密传送技术的安全通信装置。所述用户节点中的安全子系统使用一个协议,该协议创建和鉴别每个节点和/或参与者的身份,并为安全子系统之间的通信创建一个或多个主机-到-主机的安全加密密钥;以及(8)安全控制装置—该装置可允许各个VDE装置进行VDE信息内容创作(将信息内容与相关控制信息一起放入VDE容器中)、信息内容分发和信息内容使用、以及使用信息内容使用信息的票据交换所活动以及其他管理和分析活动。
VDE可以用来将大多数非电子的传统信息传递模型(包括娱乐、参考资料、目录购物、等等)迁移到充分安全的数字化分发和使用管理和付帐环境中。由VDE配置管理的分发和财务通路包括信息内容制作者;分发者;再分发者;客户管理员;客户用户;财务和/或其他票据交换所;以及/或者政府机构。
这些分发和财务路径还可以包括广告商;市场调查组织,和/或其他对利用VDE安全传递的和/或存放的信息的用户使用感兴趣的参与者。
通常,VDE配置中的参与者使用相同的安全VDE基础。可选实施例支持使用不同VDE基础的VDE系统。这种可选实施例可以使用一些过程来确保某些互相协作性要求得到满足。
安全VDE硬件(也称为SPU-安全处理部件),或使用(由宿主处理环境(HPE)提供的)软件来替代或补充所述硬件的VDE装置,结合安全通信、系统集成软件和分布式软件控制信息以及支持结构一起工作,从而实现本发明的电子合同和/或权利保护环境。这些VDE部件一起构成了一个安全的、虚拟的、对分发的信息内容和/或设备进行控制、审核(或其他管理)、汇报、以及付帐的环境。在某些实施例中,或者在商业上可以接收的情况下,可以允许某些VDE参与者—诸如通常维护具有充分物理安全性的非VDE处理环境的票据交换所—使用HPE而不是VDE硬件元件,并与(举例来说)VDE最终用户和信息内容提供者进行互相协作。VDE部件一起为电子信息内容和/或设备使用的分布式异步控制构成了一个可配置的、一致的、安全的和“可信的”体系结构。VDE支持电子信息内容传递、广泛传播、使用汇报、以及涉及使用的付款活动的一个“通用”环境。
VDE提供了广义的可配置性。这种特性部分地归因于将用于支持电子商业和数据安全性的广义要求分解成广泛的构成性“原子”部件和更高层部件(如加载模块、数据元素和方法),这些部件可以不同地聚集在一起,为电子商业应用、商业电子协定和数据安全性方案产生控制方法。VDE提供了使用VDE基础元素以及允许电子商业模型和关系继续发展的可独立传递的安全VDE部件的安全操作环境。VDE特别支持对下述分发模型的展开在这种分发模型中,随着时间的推移,信息内容提供者可以明确地同意或允许后续的信息内容提供者和/或用户参与对使用电子信息内容和/或设备的控制信息和结果进行塑造。用于支持由简单到特别复杂的电子商业和数据安全性活动的十分广泛的功能属性得到了本发明提供的功能的支持。结果,VDE支持大多数类型的电子信息和/或设备使用控制(包括分发)、安全性、使用审核、汇报、其他管理活动、以及付款方案。
在VDE的较佳实施例中,VDE使用了对象软件技术,并使用对象技术为(至少部分地)被加密的或经过安全保护的信息的传递形成“容器”。这些容器可以含有电子信息内容产品或其他电子信息和某些或所有其他相关许可(控制)信息。可以沿着包含信息内容提供者和/或信息内容用户的路径分发上述容器对象。可以安全地在虚拟分发环境(VDE)的节点之间移动这些容器对象,这些节点运行VDE基础软件并执行控制方法以制定电子信息使用控制和/或管理模型。通过使用本发明的较佳实施例而传递的容器可以用于分发VDE控制指令(信息),并且/或者用于密封和电子地分发已经至少部分地经过安全保护的信息内容。
使用本发明的信息内容提供者可以包括(举例来说)软件应用和游戏发行者、数据库发行者、有线电视、电视和无线电广播者、电子购物销售商、以及电子文件、书籍、期刊、电子邮件和/或其他形式的信息的分发者。充当电子信息的存放者和/或分发者的公司、政府机构、和/或个人“最终用户”也可以是VDE信息内容提供者(在一个受限制的模型中,一个用户只向其自身提供信息内容,并使用VDE来保护自己的机密信息,以防止其他参与者未经授权地使用这些信息)。电子信息可包括供个人或组织内部使用的有所有权的和/或机密的信息,以及诸如提供给其他团体使用的软件应用、文件、娱乐材料和/或参考信息之类的信息。分发可以通过(举例来说)物理介质传递、广播和/或电信手段进行,并且可以采用“静态”文件和/或数据流的形式进行。VDE也可以用于(举例来说)诸如电话会议、交互式游戏或联机公告版之类的多站点“实时”交互作用,在上述活动中实施了对全部或部分被传送信息的使用限制和/或审核。
VDE为强制执行商业协定和支持隐私权保护提供了重要机制。VDE可以安全地将信息从一个参与者传递给另一个关心商业分发的电子信息内容使用的参与者。即使各个参与者被上述信息内容使用信息的处理链(路径)中的若干“步”分开,这些信息也可以由VDE通过加密和/或其他安全处理手段来保护。由于这种保护,VDE可以保证这些信息的准确性,并且这些信息可以被它们送达的所有参与者所信任。而且,VDE保证所有的参与者都可以相信这些信息不会被除预期的、经过授权的参与者之外的其他任何人所接收,因为这些信息经过了加密,因此只有授权的参与者或其代理可以将它解密。这些信息也可以通过在一个以前的处理路径地点中执行一个安全的VDE进程得出,以产生安全的VDE汇报信息,然后该汇报信息被安全地传送给其预期接收方的VDE安全子系统。由于VDE可以安全地传递这些信息,电子协定的参与者不必相信通过除经过VDE控制的装置之外的其他装置传递的商业使用信息和/或其他信息的准确性。
商业价值链中的VDE参与者可以“从商业角度”确信(即为商业目的充分相信)他们通过使用VDE而达成的直接(构成的)和/或“扩展”的电子协定可以得到可靠地强制实施。这些协定可以带有“动态”的、涉及交易管理的方面—例如通过电子信息和/或设备使用情况的预算、计量、和/或汇报而强制执行的信息内容使用控制信息,并且/或者这些信息可以包含“静态”的电子声明,例如最终用户使用该系统来声明他或她同意为服务付费、不会把从信息内容或系统使用情况中得到的电子信息传递给未经授权的参与者,并且/或者该最终用户同意遵守版权法。在本发明控制下,不仅采用电子手段汇报的、涉及交易的信息是可信的,而且通过沿付款路径(该路径与汇报路径可以是同一条,也可以不是同一条)传递付款代价券可以自动地执行付款。付款可以包含在VDE装置为响应控制信息(在较佳实施例中,这些控制信息位于一个或多个许可记录中)而自动创建的一个VDE容器中,这些控制信息规定了根据(例如政府、财务信用提供者以及用户)对VDE控制的电子信息内容和/或设备的使用从电子帐户(例如,由用户的VDE装置安全子系统安全维护的帐户)中“提取”信用或电子货币(例如代价券)的方式。
VDE允许电子商业参与者的需要得到服务,并且它可以将这些参与者合并在一个普遍范围的、可信的商业网络中,该商业网络可以充分安全地支持数量庞大的商业活动。VDE的安全性和计量安全子系统核心将出现在有关VDE的信息内容(1)是被分配了涉及使用的控制信息(规则和协调数据)的所有物理地点以及/或者(2)被使用的所有物理地点。该核心可以在“虚拟黑盒子”中执行安全性和审核功能(包括计量),“虚拟黑盒子”是一批分布的、十分安全的涉及VDE的硬件实例,这些硬件实例被受到安全保护的信息交换(例如电信)进程和分布式数据库装置互连在一起。VDE还含有高度可配置的交易操作系统技术、加载模块的一个或多个相关的库以及附属数据、与VDE有关的管理、数据准备、和分析应用,以及经过设计用来允许将VDE集成进宿主环境和设备中的系统软件。VDE的使用控制信息(举例来说)提供与有所有权的信息内容和/或设备相关的使用授权、使用审核(可以包括审核压缩)、使用计帐、使用付款、隐私过滤、汇报、以及涉及安全性的通信和加密技术。
VDE广泛地使用软件对象形式的各种方法来提高VDE环境的可配置性、可移植性和安全性。它还对携带受保护的信息内容并且还可以既携带可自由得到的信息(如概要、目录)、也可以携带用来确保控制信息性能的受保护信息内容控制信息的VDE信息内容容器使用软件对象体系结构。信息内容控制信息依照由对象的信息内容的权利持有者和/或拥有与分发该信息内容相关联的权利的参与者(如政府、财务信用提供者、和用户)制定的标准来管理信息内容的使用。
本发明所使用的对象方法部分地加强了安全性,因为用来保护对象的加密方案可以有效地进一步用来保护相关的信息内容控制信息(软件控制信息和相关数据)不被修改。所述的对象技术还可以提高不同计算机和/或其它设备环境之间的可移植性,因为信息内容形式的电子信息可以与(用于所述信息内容的)信息内容控制信息嵌入在一起(例如,嵌入到与该信息内容控制信息相同的对象容器中),从而产生一个“公布的”对象。于是,所述控制信息的不同部分可以专用于不同的环境,例如专用于多种计算机平台和操作系统,并且所述不同的部分可以全部由一个VDE容器携带。
VDE的一个目标是支持交易/分发控制标准。在安全性要求和相关硬件和通信问题、种类繁多的环境、信息的类型、信息的使用类型、业务和/或数据安全性目标、参与者的多样性、以及被传递信息的特性的条件下,该标准的开发将遇到许多障碍。VDE的显著特性支持了上述多种的、变化的分发和其他交易变量,其方式是部分地将电子商业和数据安全性功能分解为安全硬件SPU和/或对应的软件子系统中可执行的通用功能模块,并进一步允许运行于VDE装置基础之上的应用在装配、修改和/或替换上述模块方面具有广泛的灵活性。这种可配置性和可再配置性允许电子商业和数据安全性参与者通过对逐渐演变的扩展电子协定(电子控制模型)进行反复加工的进程来反映他们的优先级和要求。该加工可以在信息内容控制信息从一个VDE参与者传递给另一个的时候进行,并且要在“已就位”信息内容控制信息所允许的限度内进行。该进程允许VDE的用户改造现有的控制信息,并且/或者添加必要的新控制信息(包括删除不再需要的元素)。
VDE对商业电子信息内容分发和数据安全性应用两者都支持可信的(足够安全的)电子信息分发和使用控制模型。可以对VDE进行配置以便满足互相间联成网络的参与者的多样化要求,这些参与者可以包括信息内容制作者、信息内容分发者、客户管理员、最终用户、以及/或者票据交换所和/或其他信息内容使用信息的用户。这些参与者可以构成参与到从简单的到复杂的电子信息内容传播、使用控制、使用汇报、和/或使用付款过程中的联网参与者。被传播的信息内容既可以包括被原始提供的信息,也可以包括由VDE产生的信息(例如信息内容使用信息),并且信息内容控制信息可以在通过信息内容和信息内容控制信息处理链(一条或多条路径)以及对信息内容的直接使用过程中持续不变。本发明提供的可配置性对于支持电子商业特别关键,即它允许各行业建立关系和演变策略,以产生有竞争力的价值。不具有内在可配置性和可互相协作性的电子商业工具最终将不能制造出既满足大多数商业应用的基本要求,又满足其不断演变的要求的产品(和服务)。
VDE基本的可配置性将允许广泛的、具有竞争力的电子商业业务模型纷繁多样地出现。它允许业务模型经过塑造以使收入源、最终用户产品价值、以及操作效率最大化。VDE可以用来支持多种不同的模型、利用新的收入机会、并把用户最希望得到的产品配置交付给用户。不能够!支持广泛的、可能的、补充的收入活动!提供消费者最理想的灵活的信息内容使用特性集合,以及!开发提高操作效率的机会的电子商业技术(而本发明则支持上述功能)将导致其产品常常固有地较为昂贵而对消费者的吸引力较差,因此在市场中的竞争力较差。
对本发明内在的可配置性具有帮助的某些关键因素包括(a)利用可移植的API和编程语言工具集成进广泛电子设备的基本控制环境。这些API和编程语言工具能够有效地支持在几乎任意的电子设备环境中合并控制和审核功能,同时维护整体系统安全性;(b)模块化数据结构;(c)广义信息内容模型;(d)基础体系结构部件的一般模块性和独立性;(e)模块化安全结构;(d)可变长度的和带有多个分支的处理链;以及(e)可执行加载模块形式的、独立的、模块化的控制结构,这些加载模块可以维护于一个或多个库中,并且可以被装配进控制方法和模型中,其中,该模型控制方案可以在控制信息通过VDE信息内容控制信息处理路径中的参与者的VDE装置时发生“演变”。
由于本发明所解决问题的广度,本发明可以向正在出现的“电子高速公路”提供单一的交易/分发控制系统,对于十分广泛的商业和数据安全性模型而言,该交易/分发控制系统可以防止对机密的和/或有所有权的信息和商业电子交易的未授权使用。VDE的电子交易管理机制可以强制执行参与到种类多样的业务和数据安全性模型中的所有参与者的电子权利和协定,并且通过在每个VDE参与者的电子设备中实现单个VDE就可以有效地实现上述功能。VDE支持广泛的、在VDE信息内容和/或信息内容控制信息处理路径的各个“级别”中可以包含广泛的参与者的不断变化的业务和/或数据安全性模型。不同的信息内容控制和/或审核模型以及协定可以在同一VDE装置中获得。这些模型和协定控制的信息内容可以与(举例来说)一般的VDE装置和/或用户、某些特定用户、装置、种类和/或装置和/或用户的其他分类相关,并且可以与通常在给定装置中的电子信息内容相关,以及与信息内容的特定有产权产品、有产权产品的部分、种类和/或其他分类相关。
使用VDE的分发可以把电子信息内容和控制信息两者均包装到同一容器中,并且/或者可以包括将位于大量不同的远程地点中的和/或位于大量独立的VDE信息内容容器中的和/或使用大量独立的传递装置的同一VDE管理的有产权产品的不同部分传递给最终用户的站点。信息内容控制信息可以放在一个或多个VDE管理对象中,部分地或全部地与其相关信息内容分开传递到用户VDE装置。所述控制信息的部分可以从一个或多个的源传递出去。通过从用户的VDE装置安全子系统对一个或多个远程VDE安全子系统和/或VDE兼容的、经过验证的安全远程地点的访问也可以得到控制信息以供使用。诸如计量、预算、解密和/或加入指纹等与用户的特定信息内容使用活动相关的VDE控制进程可以在用户本地的VDE装置安全子系统中执行。或者所述的进程可以被划分到大量的安全子系统中,这些安全子系统可以位于同一用户VDE装置中,以及/或者位于网络服务器及用户装置中。例如,一个本地VDE装置可以执行解密,并保存任意或所有与信息内容使用相关的使用计量信息,与/或在这一用户装置上的电子设备使用可采用所述安全子系统之间的安全(如加密)通信而在服务器上执行。所述服务器地点也可以用于近似实时地、频繁地、更为周期性地安全接收来自所述用户装置的信息内容使用信息,而(举例来说)计量得到的信息只是暂时地保存在本地的用户装置中。
对VDE管理的信息内容的传递手段可包括诸如光盘之类的、用于传递所述信息的一部分的电子数据存贮手段以及用来传递所述信息的其他部分的广播和/或远程通信手段。电子数据存贮装置可包括磁介质、光介质、组合的磁光系统、快速RAM存贮器、磁泡存贮器、以及/或者其他存贮手段—例如使用全息、频率和/或极性数据存贮技术的大容量光存贮系统。数据存贮手段也可以使用分层盘片技术,例如使用大体透明和/或半透明的材料,这些材料使光线透过带有数据的盘片层,而这些盘片本身被物理地包装在一起形成一个厚盘片。这些盘片中带有数据的位置可以是至少部分地不透光的。
VDE支持通用的基础用于安全的交易管理,包括使用控制、审核、汇报和/或付款。这些通用的基础称为“VDE功能”(“VDEF”)。VDE还支持一批“原子”应用元素(如加载模块),这些“原子”应用元素可以被有选择地聚合在一起以形成称为控制方法的各种VDEF功能,这些VDEF功能用作VDEF应用和操作系统功能。当一个电子设备的宿主操作环境包含了VDEF功能的时候,该操作环境称为“权利操作系统”(ROS)。VDEF加载模块、相关数据以及方法构成了一个信息体,该信息体相对于本发明中的用途被称为“控制信息”。VDEF控制信息可以特别地与一个或多个电子信息内容相关联,并且/或者它可以用来作为VDE装置的操作系统功能的一个通用部件。
VDEF交易控制元素反映和制定了特定于信息内容的和/或更为通用化的(例如,一般操作系统的)控制信息。VDE参与者可通过使用诸如VDE模板将通常采取或多或少可配置的应用(应用模型)的形式的VDEF功能进行加工以实现特定的功能,这些特定的功能带有功能参数数据,来反映VDE参与者之间关于使用诸如作为商品分发的产品的一个或多个明确电子协议的元素。这些控制功能管理对电子信息内容的使用和/或审核,以及根据信息内容的使用以及对所述的使用进行的任意偿付汇报有关信息。VDEF功能可“演变”以反映接收或提供给定的控制信息组的一个或多个相继的参与者的要求。对于给定信息内容模型的VDE应用(例如采用CD-ROM分发娱乐产品、从Internet存放库中传递信息内容、或电子目录购物及广告、或上述活动的某些结合),参与者通常将能够安全地从可用的、可选的控制方法中作出选择,并应用相关的参数数据。其中,这种对控制方法的选择和/或对数据的提交将构成他们对控制信息的“贡献”。作为选择或补充,某些已经被明确地验证为可以与所述应用安全地互相协作和兼容的控制方法可以被操作员作为上述贡献的一部分独立地提交出来。在最普通的例子中,一个通常经过验证的(经过验证可以用于给定的VDE管理和/或信息内容类别的)加载模块可以由许多或任意的运行于所述方案的节点中的VDE应用使用。这些参与者在他们被允许的限度之内可以独立地和安全地添加、删除和/或修改加载模块和方法的详细说明,并添加、删除或修改相关的信息。
通常,创建VDE信息内容容器的参与者规定将要和/或可能应用到某些电子信息上的VDEF功能的一般特性。一个VDE信息内容容器是一个对象,它既包含信息内容(例如,诸如计算机软件程序、电影、电子出版物或参考材料之类的商业分发的电子信息产品、等等),又包含与该对象的使用相关的某些控制信息。创建的一方可以使一个VDE容器对其他方可用。由VDE信息内容容器传递的控制信息,或者与VDE信息内容容器结合使用的可用控制信息(为商业信息内容分发目的)构成了电子信息内容的VDEF控制功能(以及任何相关的参数数据)。这些功能可以构成一个或多个“被提议”的电子协定(以及/或者可供选择和/或与参数数据一起使用的协定功能),这些电子协定管理对上述信息内容的使用和/或使用结果,并且可以制定涉及多方的协定的条款和条件、以及他们各自不同的权利和义务。
借助于由一个或多个参与者—例如由一个从“上级”参与者收到控制信息的“下级”参与者—所接受的用户接口,VDE电子协定可以是明确的;或者它可以是单独声明其协定的各平等参与者之间的一个进程。协定也可以从一个自动化的电子进程得出,在该进程中,特定的VDE参与者控制信息对条款和条件进行“评估”,这些控制信息评估某些与信息内容相关联的和/或由其他参与者提交的其他电子条款和条件是否是可接受的(没有与可接受的控制信息标准冲突)。这种评估进程可以相当简单,例如它可以是一个比较过程,用来确保条款和条件表中的部分或所有上级控制条款和条件与信息内容控制信息处理路径中的后续参与者所提交的控制信息之间存在兼容性,或者该进程可以是一个更为精细的进程,它评估由两个或多个参与者提交的两个或多个控制信息集合的可能结果,并且/或者在这些控制信息集合之间执行一个协商进程。VDE还支持半自动化的进程,在该进程中,一个或多个VDE参与者借助用户接口通过接受和/或提议对特定控制信息来说是可接受的某些控制信息直接解决控制信息集合之间的“争端”,所述特定控制信息代表一个或多个其他团体的利益和/或对通过特定用户接口进行查询以便在某些替代选项和/或某些参数信息中作出选择的响应,如果对适用的上级控制信息来说是可接受的话,上述响应将被采纳。
当另一个参与者(而不是规则的第一个应用者)可能通过一个协商进程接受、和/或添加、和/或修改“已就位”的信息内容控制信息时,在两方或多方之间的、涉及对该电子信息内容使用的一个VDE协定可被创建出来(只要任何修改符合上级控制信息)。对涉及某些电子信息内容的条款和条件的接受可以是直接的和明确的,或者也可以作为对信息内容的使用结果而采用隐含的形式(取决于(举例来说)法律要求、以前对上述条款和条件的暴露、以及就位控制信息的要求)。
VDEF功能可以被大量的参与者使用,VDE协议可以由大量的参与者达成,而这些VDEF功能不必直接与对某些特定电子信息的控制相关联。例如,特定的一个或多个VDEF功能可以出现在某个VDE装置中,而特定的VDE协定可以在为某个信息内容分发应用进行注册的进程中达成,该协定由上述装置使用以便安全地控制VDE信息内容使用、审核、汇报和/或付款。类似地,当某个特定的用户和/或其设备向某个VDE信息内容或电子设备提供者注册以便成为一个VDE装置和/或用户的时候,该特定参与者可以与该提供者达成一个VDE用户协定。在这种情况下,可供用户VDE装置使用的VDEF就位控制信息可以要求(举例来说)在某些序列中要使用某些VDEF方法,以便能够使用所有和/或某些类型的电子信息内容和/或VDE应用。
VDE确保进行给定交易所需的某些前提条件得到满足。这包括安全地执行所要求的任何加载模块以及使所要求的任何相关数据成为可用。例如(如以某个方法的形式的)所要求的加载模块和数据可能规定必须确认来自一个授权来源的充足信用可供使用。它可能进一步要求特定的一个或多个加载模块在适当的时刻以多个进程的形式执行,以确保为了偿付对上述信息内容的使用而使用上述信用。某个信息内容提供者可能(举例来说)要求计量被制作出来供分发给雇员的给定软件程序拷贝的数目(该程序的一部分可以采用加密的形式被维护起来,并要求VDE装置的存在来运行)。这将要求在每次为另一个雇员制作一个拷贝时,需要为该有所有权的产品的拷贝执行一个计量方法。同一提供者还可以根据用户从他们那里取得使用许可的不同有所有权的产品的总数收取费用,并且要求使用他们获取有所有权的产品使用许可的计量历史以维护上述信息。
VDE提供了组织范围、团体范围、和/或普遍范围的安全环境,该安全环境的完整性由安全地受控于VDE参与者用户装置(节点)中的进程所确保。较佳实施例中的VDE装置可以含有软件的和防破坏硬件半导体元件两者。这种半导体方案至少部分地含有设计成可以保护执行VDE控制功能所用的信息和功能、使之免受破坏或被未经授权的观测的专用电路。本发明提供的专用安全电路含有至少一个称为安全处理部件(SPU)的专用的半导体配置和/或一个标准的微处理器、微控制器、以及/或者支持本发明的要求并且可起到SPU那样的作用的其他处理逻辑。VDE的安全硬件可以安装在(举例来说)传真/调制解调器芯片或芯片封装中、I/O控制器中、视频显示控制器中、以及/或者其他可用的数字处理配置中。预计本发明的VDE安全硬件功能的多个部分最终会成为计算机和各种其他电子设备的中央处理单元(CPU)的标准设计元件。
将VDE功能设计到一个或多个标准的微处理器、微控制器、以及/或者其他数字处理部件中,通过对本发明所预期的交易管理用途以及其他的宿主电子设备功能都使用相同的硬件资源,可以从实质上降低涉及VDE的硬件成本。这意味着VDE SPU可以使用(共享)“标准”CPU的电路元件。例如,如果一个“标准”的CPU可以运行于保护模式,并且作为受保护的活动可以执行有关VDE的指令,那么这种实施例可以向各种应用提供充分的硬件安全性,同时专用处理器的花费也将省去。在本发明的一个较佳实施例的控制下,当在(例如由保护模式微处理器支持的)保护模式下执行有关VDE的指令的时候,某些存贮器(如RAM、ROM、NVRAM)得到维护。这些存贮器与处理逻辑(如处理器)位于同一封装中。最好,该处理器的封装和存贮器采用可增强其防破坏能力的安全性技术进行设计。
VDE系统的整体安全性的程度主要取决于VDE控制进程执行和相关数据存贮活动的防破坏程度和隐蔽程度。使用专用半导体封装技术可以显著地有助于提高安全性的程度。通过在一个SPU封装中使用半导体存贮器(如RAM、ROM、NVRAM)、通过在将数据送入外部存贮器(如外部RAM封装)之前首先加密数据,并且首先解密CPU/RAM封装中被加密的数据然后才执行该数据,可以部分地实现上述半导体存贮器中的隐蔽和防破坏。当某些重要的有关VDE的数据存放在未经保护的媒介上时,例如保存在诸如随机访问存贮器、大容量存贮器、等之类的标准宿主存贮器中时,可以使用上述的进程。在这种情况下,VDESPU在把安全VDE执行的结果存放到外部存贮器之前首先对这些数据进行加密。
按照本发明的VDE所提供的某些重要特性的综述VDE使用了作为一般用途的基础并向分布式电子商业方案提供充分的安全保护的多种功能。VDE实现了支持发散的、有竞争力的业务伙伴关系、协定、以及不断演变的整体业务模型的电子商业市场。例如,VDE具有如下特性!通过使用安全的通信、存贮和交易管理技术,“充分”地阻止对电子信息和/或设备的未授权和/或无偿使用。VDE支持一个模型范围内的、创建了单一安全“虚拟”交易处理和信息存贮环境的、分布式安全性实现。VDE允许分布式VDE装置安全地存贮和传送信息,并远程地控制执行进程以及在其他VDE装置中采用多种方式对电子信息进行的使用的特征。
!支持用于交易控制、审核、汇报、以及相关通信和信息存贮的、低成本、高效率以及有效的安全性体系结构。VDE可以使用涉及标记的安全性技术;解密密钥的时间衰老技术;对被存贮的控制信息(包括对该被存贮的信息进行有差别地标记以防止替换和破坏)和分发的信息内容两者都实行的隔离技术(以便对于许多信息内容应用使用一个或多个唯一于特定VDE装置和/或用户的信息内容加密密钥);诸如三重DES之类的用于加密信息内容的私有密钥技术;诸如RSA之类的公开密钥技术—用来保护通信,并提供数字签名和鉴别的诸多优点以便将VDE配置中的节点安全地结合在一起;对重要交易管理可执行码的安全处理;将少量的、高度安全的、受硬件保护的存贮器空间与大得多的、“暴露的”、用来安全地存放(通常为加密的和加标记的)控制和审核信息的大容量介质存贮器空间结合在一起;VDE使用了分布在VDE实现方案中的某些或所有地点的专用硬件a)所述硬件控制下列的重要元素信息内容的准备(例如使该信息内容被放入一个VDE信息内容容器中,并使信息内容控制信息与该信息内容相关联)、信息内容和/或电子设备使用审核、信息内容使用分析、以及信息内容使用控制;b)所述硬件已经被设计为安全地处理加载模块控制活动,其中所述控制处理活动可以包括所要求的控制因素的一个序列。
!支持对VDE电子信息产品(受VDE控制的信息内容)的信息子集的动态用户选择。该特性与下列的限制相反,这些限制是必须使用几个高层的、独立的、预定义的信息内容提供者信息增量,例如,必须选择整个信息产品或产品段以便获取或使用该产品或段的部分。VDE支持对各种增量(包括“原子的”增量、以及不同增量类型的组合)的计量和使用控制,这些增量由用户特别选择出来,它们代表一批预标识的一个或多个增量(诸如预定义特性的一个或多个块,这些预定义特性的例子包括字节、图像、逻辑相关的块),这些预标识的增量构成了通常为任意的、但对于用户来说是逻辑的、“可传递”的信息内容。VDE控制信息(包括预算、定价、以及计量信息)可以被配置,以便它可以适当地专门应用于信息增量的不同的、变幻莫测的用户选择集合的特别选择,并且,价格标准可以至少部分地根据混合增量选择的数量和/或特性来制定(例如,特定数量的特定正文可意味着相关的图像可以折扣15%;“混合”增量选择中的更大数量的正文可意味着该图像被折扣20%)。所述用户选择的聚合信息增量可以反映用户对信息的实际要求,并且比限制为单一的、或几种更高层次的(如产品、文件、数据库记录)预定增量要更为灵活。所述高层次增量可能含有用户不希望的大量信息,于是比用户所需要的信息子集(如果可以得到该子集的话)更为昂贵。总而言之,本发明允许包含在电子信息产品中的信息按照用户的规定提供。进行剪裁以适应用户的规定允许本发明向用户提供最大的价值,而这样做又产生了最大数量的电子商业活动。用户(举例来说)将能够定义从一个可用信息内容产品的不同部分得到的信息内容的一个聚集,但作为供用户使用的可传递物,所述信息内容聚焦是完全唯一的被聚焦增量。用户可以(举例来说)从一个诸如参考文献之类的信息产品中的不同部分中选择特定数量字节的信息,将这些信息以未加密的形式拷贝到盘上,并且按照全部数量的字节加上对提供这些字节的“文章”的数量的附加计费而接受计帐。信息内容提供者可能适当地对这种用户定义的信息增量收取较少的费用,因为用户没有要求来自含有所需信息的所有文章的所有信息内容。这种定义用户所需信息增量的进程可能涉及人工智能数据库搜索工具,这种工具有助于从一个信息产品中定位信息的最相关部分,并使得描述搜索条件命中的信息被自动显示给用户,以便用户进行选择或自动抽取,以及将上述部分传递给用户。VDE还支持种类繁多的预定义增量类型,包括
!字节,!图像,!对应于声音或视频的一段时间之内的信息内容,或任何可以由信息内容提供者数据映射方法标识的其他增量,例如!句子,!段落,!文章,!数据库记录,以及!代表逻辑相关信息增量的字节偏移量。
对于任何同时存在的预定义增量类型来说,只要对于给定类型的信息内容和业务模型是现实的,都将得到VDE的支持。
!在用户的站点安全地存放反映多种不同信息内容段类型的用户使用的可能非常详细的信息,并在廉价的、“暴露的”宿主大容量存贮器中以加密数据的形式维护详细信息,同时在高度安全的专用VDE装置非易失性存贮器(如果该类型存贮器可用的话)中维护概要信息供安全性测试用。
!支持用于被分发的电子信息的路径和/或与信息内容使用相关的信息的可信处理链功能。该链可以(举例来说)从信息内容制作者延伸到分发者、再分发者、客户用户,并且可以提供一条路径,以供把相同的和/或不同使用信息安全地汇报给诸如一个或多个独立票据交换所之类的一个或多个审核者,然后把这些信息送回包括信息内容制作者在内的信息内容提供者。用于特定信息内容处理以及相关信息内容控制信息和汇报信息处理的相同和/或不同路径也可以用作用来对电子信息内容和/或设备使用进行电子付款处理(本发明中的付款以管理信息内容为其特征)的一条或多条路径。这些路径用来输送所有或部分信息内容和/或与信息内容相关的控制信息。信息内容制作者以及其他提供者可以规定必须部分或完全用来传播采用商业方式分发的有所有权的信息内容、信息内容控制信息、付款管理信息内容、以及/或者相关使用汇报信息的路径。由信息内容提供者规定的控制信息也可以规定哪些特定的参与者必须或可以(包括(举例来说)可以从中作出选择的一组合格参与者)处理被输送的信息。它还可以规定必须或可以使用何种传送装置(例如电信载波或介质类型)以及传输集线器(hub)。
!支持灵活的审核机制,例如使用“位图计量器”,这可以带来高效的运行和吞吐率,并允许采用可行方式对涉及以前的使用活动和相关模式的信息进行保存和迅速取回。这种灵活性适用于种类多样的计帐和安全性控制策略,例如!提高价格(例如成套购买)!价格折扣(包括数量折扣)!与计帐相关的时间段变量,例如根据以往购货的计时对新的购货活动进行折扣!根据经过一段时间段使用的电子信息的不同的、逻辑相关的单元的数量的安全性预算使用位图计量器(包括“常规”和“宽”位图计量器)记录对信息的使用和/或购买,同时结合本发明的较佳实施例中的其他元素,能够唯一地支持对使用历史的有效维护,这些使用历史涉及(a)租借,(b)固定费用的许可使用或购买,(c)根据历史使用变量的许可使用或购买折扣,(d)向用户所做的汇报,汇报方式的特点是允许用户确定某一特定条目是否被获取,或者在特定的时间段内被获取(不需要使用对于这些应用来说极为低效的传统数据库机制)。位图计量器方法记录某些活动,这些活动涉及电子设备、所有物、对象、或它们的部分、和/或独立于特定所有物、对象等的管理活动,这些活动由用户和/或电子设备执行,这样信息内容和/或设备的提供者和/或管理活动的控制者可以判断在过去的某些时刻或某段时间内是否发生了某个活动(例如对商业电子信息内容产品和/或设备的某种使用)。此后,这种判断可以用作信息内容和/或设备的提供者和/或管理活动的控制者的定价和/或控制策略的一部分。例如,信息内容提供者可以决定对访问某一所有物的一部分只收费一次,而不管用户对该有产权物的那一部分访问了多少次。
!支持“可发布的”信息内容,也就是说,该信息内容可以由一个信息内容提供者提供给一个最终用户,然后该最终用户拷贝该信息内容,并将它传递给其他的最终用户方,而不必要求信息内容提供者直接参与进来以注册和/或初始化该信息内容供后续使用。该信息内容以“移动对象”的形式在“(传统分发)通道外”传送。移动对象是安全地携带至少某些许可信息和/或使用这些对象所要求的方法(如果所要求的方法将在或可以直接对目的地VDE装置中可用的话,那么这些方法无须由移动对象携带)的容器。某些移动对象可以在给定VDE配置中的某些或所有VDE装置中使用,因为它们可以使信息内容使用活动所需的信息内容控制信息成为可用信息,而不必要求商业VDE价值链参与者或数据安全性管理员(例如一个控制官员或网络管理员)参与进来。只要用户VDE装置安全子系统中有移动对象控制信息要求(例如具有从授权信用提供者得到的足量财务信用),那么接收方团体可以无须与一个远程VDE授权机构建立连接(直到预算被用光,或信息内容使用报告时间已到),就可以使用至少某些移动对象信息内容。移动对象可以在“通道外”移动,这种方式允许(举例来说)用户将其中的内容为一个软件程序、电影或游戏的移动对象的拷贝送给邻居,而该邻居如果能够得到适当的信用(例如在诸如VISA或AT&T之类的票据交换所开立的电子票据交换所帐户)的话便可以使用该移动对象。类似地,通常可以从Internet或类似网络的存放库中得到的电子信息也可以以移动对象的形式提供出来,该移动对象可以被一个初始下载者下载并接着对之进行拷贝,然后由他传递给其他参与者,而这些参与者又把该对象传给另外的参与者。
!根据个人和装置、用诸如类别之类的分类、以及用功能和使用客户标识级别层次的层次性标识(例如客户组织ID、客户部门ID、客户网络ID、客户项目ID、以及客户雇员ID、或上述ID的任意适当子集)而提供了十分灵活和可扩展的用户标识。
!提供了通用的、安全的、基于部件的信息内容控制和分发系统,该系统起基础交易操作系统环境的作用,该基础交易操作系统环境使用了经过精心编制用于交易控制和审核的可执行码段。这些码段可以被重用以便优化可信的、分布式交易管理方案的创建和运行过程中的效率。VDE支持以“原子”加载模块和相关数据的形式提供该可执行码。许多这种加载模块固有地是可配置的、可聚合的、可移植的、以及可扩展,并且可以在VDE交易管理操作环境中作为控制方法单独地或结合(相关数据)地运行。通过部分地使用上述通用交易管理基础来安全地处理与VDE交易相关的控制方法,VDE可以满足种类繁多的电子商业和数据安全性应用的要求。控制方法主要通过使用一个或多个所述可执行的、可重用的加载模块代码段(通常处于可执行目标部件的形式)以及相关数据来创建。控制方法的部件特性允许本发明作为一个高度可配置的信息内容控制系统而有效地运行。在本发明的控制下,信息内容控制模型可以在一定限度内被反复地和异步地加工,或者被更新以便满足VDE参与者的需求,所述的限度是上述加工和更新活动要遵守由VDE应用施加的限制—如果有这些限制的话,例如,是否新的部件组是可以接受的,如果是的话,对于该部件组存在哪些验证要求,或者是否任意的或特定的参与者可以通过从可选的控制信息(许可记录)控制方法中进行选择而加工任意的或特定的控制信息。上述反复的(或并发的)多个参与者进程将作为安全控制信息部件(诸如加载模块和/或方法之类的可执行码和/或相关数据)的提交和使用的结果而发生。这些部件可以通过对控制信息产生影响的每个VDE参与者VDE装置之间的安全通信被独立地提供出来,并且可能要求验证以便给定应用对它们进行使用,其中,这种验证由一个管理VDE配置的验证服务管理者提供,该管理者确保设备和被提交控制方法之间安全的可互相协作性以及/或者可靠性(如交互作用所引起的错误(bug)控制)。VDE电子设备交易操作环境的交易管理控制功能与非安全交易管理操作系统功能交互作用,以正确地控制与电子信息安全性、使用控制、审核和使用汇报有关的交易进程和数据。VDE提供这种功能以管理涉及安全VDE信息内容和/或设备控制信息执行和数据存贮的资源。
!便利在VDE中对应用和/或系统功能的创建,并便利将按照本发明所创建的加载模块和方法向电子设备环境的集成。为了实现该功能,VDE使用了一个应用程序员接口(API)和/或一个带有内置功能的交易操作系统(例如ROS)编程语言,上述两者都支持对功能的使用,并可以用来有效地和紧密地将VDE功能集成进商业和用户应用中。
!支持用户交互作用,这个功能借助了(a)“弹出式”应用,该应用(举例来说)向用户提供消息,并允许用户采取诸如同意某个交易之类的特定动作;(b)独立VDE应用,该应用向用户活动提供管理环境,所述用户活动的例子包括对下列活动进行规定的最终用户优选规定说明限制每次交易、每单位时间、和/或每次会话的价格,访问有关以前交易的历史信息、审查诸如预算、费用之类的(例如详细的和/或概要的)财务信息以及使用分析信息;以及(c)VDE感知型应用,这些应用作为使用了VDE API和/或交易管理(例如基于ROS的)编程语言的结果把对VDE的“感知”嵌入到商业或内部软件(应用程序、游戏、等等)中,以便VDE用户控制信息和服务可以被无缝地集成到这些软件中,并且可以被用户直接访问,因为底层功能已经被集成进商业软件本来的设计中。例如,在一个VDE感知型字处理器应用中,用户可以将一个文件“打印”到一个VDE信息内容容器对象中,在此过程中,该用户通过从一系列适用于不同用途的不同菜单模板(例如,一个用于组织内部用途的机密的备忘录模板可以将功能限制为“保存”,即制作该备忘录的电子拷贝)中进行选择而应用特定的控制信息。
!使用“模板”来简化对本发明中涉及特定产业或商业的配置功能的进程。模板是本发明下的应用或应用后加部分。模板支持对涉及特定信息内容类型、分发方法、定价机制、用户与信息内容和/或管理活动之间的交互作用、以及/或者诸如此类等等的标准进行有效的规定和/或操作。在本发明所支持的范围广阔的功能和配置的前提下,将配置的可能范围减小到适用于给定业务模型的可管理子集的范围内允许“典型”用户容易地使用本发明的全面可配置能力,否则这些用户将负担复杂的编程和/或配置设计责任。模板应用还可以通过减少与提供独立开发加载模块相关的风险—包括独立模块和应用之间的代码交互作用的不可预测方面,以及减少涉及在这些模块中可能出现病毒的安全性风险,从而确保与VDE有关的进程是安全的并且是最优地无错的。通过使用模板,VDE将典型用户的配置责任减少到适当集中的一系列活动,包括通过菜单选项选择方法类型(如功能),这些菜单选项的例子包括多重选择、图符选择、和/或对方法参数数据的提示(例如标识信息、价格、预算限制、日期、时间段、对特定信息内容的访问权利、等等),上述菜单选项为控制信息的目的提供了适当的和/或必要的数据。通过将典型(非编程)用户的活动限制到一般配置环境(模板)已经经过预置成反映了对应于该用户、某个信息内容或其他业务模型的一般性要求的配置活动的一个有限子集中,可以非常实际地限制涉及信息内容容器化(包括在信息内容上加入初始控制信息)、分发、客户管理、电子协定实现、最终用户交互作用、以及票据交换所活动—包括相关的互相协作问题(例如由安全性、操作系统、和/或验证的不兼容性所产生的冲突)—的困难。使用适当的VDE模板可以向用户保证他们的有关信息内容的VDE容器化、提供其他控制信息、通信、加密技术和/或密钥、等等活动将遵从他们的分布式VDE配置的规范。VDE模板构成了预置的配置,配置通常可以是可重新配置的,以便允许产生新的和/或被修改的模板,这些模板在演变的过程中反映出对新产业的适应性,或者反映出一个现有产业的演变或其他变化。例如,模板的概念可以用来将独立的、全面的框架提供给某些组织和个人,这些组织和个人创建、修改、销售、分发、消费、和/或使用电影、声音录制品和实况表演、杂志、基于电话的零售、目录、计算机软件、信息数据库、多媒体、商业通信、广告、市场调查、通知、游戏、向数控机床提供的CAD/CAM服务、等等诸如此类。在围绕上述模板的上下文变化或演变的时候,按照本发明所提供模板应用可以被修改,以满足上述变化,从而适应更大范围的应用,或适应更集中的活动。一个给定VDE参与者可以带有大量可用的、适用于不同任务的模板。将信息内容放入其初始VDE容器的参与者可以按照与该信息内容相关的信息内容和/或业务模型的类型的不同而带有多种不同的、可配置的模板。一个最终用户可以带有不同的、可配置的模板,这些模板可以适用于不同的文件类型(电子邮件、保密内部文件、数据库记录、等等)和/或用户的子集(将控制信息的不同的一般集合应用到用户的不同群体,例如,选择一系列可以按照某种预定的准则使用某个文件的用户)。当然,在某些情况下,模板可以带有固定的控制信息并且不向用户提供选项或参数数据项。
!支持大量的、不同的、控制对电子信息内容的同一特定拷贝的使用和/或审核、以及/或者区分地控制对同一电子信息内容的不同拷贝(出现)的使用和/或审核的控制模型。用于计帐、审核、和安全性的不同模型可以被应用到同一电子信息内容,并且上述不同的控制信息集合可以为控制的目的使用相同的或不同的电子信息控制增量粒度。这包括对于预算和审核使用支持可变的、适用于多种预定义的电子信息增量的控制信息,包括对于给定电子信息使用多种不同的预算和/或计量增量,可以传递上述给定信息用于计帐的度量单位、信用限制、安全性预算限制和安全性信息内容计量增量、以及/或者市场调查和消费者描述的信息内容计量增量。例如,对于一个带有科学文章数据库的CD-ROM光盘,可以部分地按照基于解密字节的数目、含有所述解密字节的文章的数目的一个公式对之进行计帐,同时安全预算可能把对该数据库的使用限制为该数据库安装所在的广域网中的每个用户每月对该数据库的使用不超过数据库的5%。
!提供机制以便通过充分安全的信息内容和信息内容控制信息处理链并通过对该信息内容的各种形式的使用而持续地维护可信的信息内容使用和/或汇报控制信息,其中所述的控制持续性可以在上述使用中一直保持。控制的持续性包括从一个VDE容器对象中抽取信息的能力,其方式是创建一个新容器,该容器中的信息内容至少部分地受到安全保护并且该容器既含有被抽取出的信息内容又含有至少部分的控制原始容器的信息的控制信息,并且/或者该容器中的信息内容至少部分地由原始容器中的控制信息为上述目的而产生,并且/或者VDE装置控制信息规定应该持续不变并且/或者控制对新创建容器中的信息内容的使用。如果容器被“嵌入”到另一个受VDE管理的对象(例如一个含有大量嵌入VDE容器的对象,而其中的每个容器都含有从不同来源获取(抽取)的信息内容)中,那么上述控制信息可以继续管理对该容器信息内容的使用。
!允许用户、其他价值链参与者(例如票据交换所和政府机构)、和/或用户组织规定涉及他们对电子信息内容和/或设备的使用的优先选择或要求。如果上级控制信息允许的话,诸如使用商业分发的信息内容(游戏、信息资源、软件程序、等)的最终用户消费者之类的信息内容用户可以规定预算和/或其他控制信息以便管理他们自己的、对信息内容的内部使用。这些使用包括(举例来说)用户为电子文件设置在一个他希望在没有事先明确的用户授权的前提下支付的价格上的限制,并且该用户创建他或她允许被收集的计量信息的特性(隐私保护)。这包括向信息内容用户提供手段以保护从他们对VDE装置和信息内容的使用和/或设备使用审核中获得的信息的私有性。特别地,VDE可以防止涉及参与者对电子信息内容的使用的信息在没有得到该参与者默许或明确同意的情况下被提供给其他参与者。
!提供允许控制信息至少部分地按照被独立地、安全地传递的其他控制信息而“演变”并被修改的机制。所述控制信息可以包括已被验证为对于应用于特定VDE应用、应用类别、和/或VDE分布式方案来说是可接受的(如可靠的和可信的)可执行码(如加载模块)。一旦信息内容控制信息(加载模块和任何相关数据)流通到控制信息处理路径中的一个或多个VDE参与者的时候,控制信息的上述修改(演变)便可以发生,或者一旦收到来自一个VDE参与者的控制信息的时候,上述修改(演变)发生。信息内容控制信息处理路径中的处理者在他们中的每一个所授权的限度内可以创建、修改、和/或提供与电子信息内容和/或设备的控制、分析、偿付、和/或使用汇报(例如,这些与受VDE控制的有所有权信息内容的使用相关)相关的许可、审核、付款和汇报控制信息。当信息内容控制信息已经在VDE信息内容控制信息处理序列中从一个参与者流到另一个参与者的时候,(从一个除了对于验证来说为不独立之外的独立来源)独立传递的、至少部分安全的控制信息可以用来安全地修改信息内容控制信息。该修改过程使用了(举例来说)安全地在VDE安全子系统中处理的一个或多个VDE部件组。在一个可选的实施例中,一个上级参与者可以在通常以VDE管理对象的形式从一个“下级”参与者收到被提交的、至少部分地受到安全保护的控制信息之后,通过使用他们的VDE装置安全子系统来修改控制信息。通过VDE路径传递的控制信息可以代表一个混合的控制集合,因为它可以含有在通过控制信息处理者序列时没有发生变化的控制信息、被允许修改的其他控制信息、以及代表新控制信息和/或中间数据的其他控制信息。该控制集合代表了被传播信息内容的控制信息的演变。在本例中,当VDE信息内容容器的整个信息内容控制集合安全地(例如,以加密的形式通信并使用鉴别和数字签名技术)至少部分地传递到一个新参与者的、安全地收到和处理所提出的控制信息的VDE装置时,这些控制集合正在“演变”。借助涉及两个控制信息集合的协商进程,收到的控制信息可以与就位控制信息(通过使用接收方的VDE装置安全子系统)集成在一起。例如,在信息内容提供者的VDE装置的安全子系统中对特定VDE信息内容容器的信息内容控制信息的修改可以是加入了财务信用提供者提供的所要求的控制信息。所述信用提供者可能已经使用了他们的VDE装置准备了所述的所要求的控制信息,并安全地将该信息传送给了所述信息内容提供者。加入所述的所要求的控制信息使信息内容提供者允许信息内容最终用户使用信用提供者的信用以偿付该最终用户对受VDE控制的信息内容和/或设备的使用—只要所述最终用户在所述财务信用提供者那里有一个信用帐户并且所述信用帐户具有充足的可用信用。类似地,信息内容提供者也可以安全地接收要求支付税款和/或提供由电子商业活动产生的收入信息的控制信息。该控制信息可以(举例来说)从一个政府机构收到。法律可能要求信息内容提供者将上述控制信息插入到对应于商业分发的信息内容和/或涉及设备使用的服务的控制信息中。对提议的控制信息的使用要在由上级控制信息允许的限度内,并且该限度由满足每一个集合(接收方的集合和被提议的集合)所规定的优先级的任意协商折衷方案所决定。VDE还适应专门适用于VDE信息内容处理参与者网络中的不同参与者(如个体参与者和/或参与者类别(类型))的不同控制方案。
!支持用于同一信息内容所有权和/或所有权部分的、多个并存的控制模型。这个特性支持(举例来说)依赖于电子商业产品信息内容分发的并发业务活动,例如获取详细市场调查信息和/或支持广告活动,这两种活动都可以增加收入,并给用户带来较低的信息内容成本而给信息内容提供者带来更高的价值。在控制信息的决定或允许下,可以采用不同的方式将上述控制信息和/或整体控制模型应用到信息内容、汇报、付款和/或相关控制信息处理路径中的参与者。VDE允许把不同信息内容控制信息应用到与同一和/或不同信息内容和/或设备使用相关的活动中,并且/或者应用到信息内容和/或设备使用模型中的不同参与者,这样以来,不同的参与者(或(举例来说)VDE用户的类别)将受到管理他们对电子信息内容的使用的不同控制信息的控制。例如,基于作为受VDE控制的信息内容对象的分发者的或作为该信息内容的最终用户的分类的不同控制模型可以产生投入应用的不同预算。作为另一种选择,(举例来说)一个分发者可以有权(从(举例来说)某个光盘上提供的公用信息内容集合中)分发与另一个分发者不同的有产权物集合。与“典型”的信息内容用户相比,最终用户的个人和/或类别或其他分类可以有不同的花销。(例如,可对学生、老年公民、与/或信息内容的贫穷公民提供相同或不同的折扣)!支持通过从所述最终用户和/或提供者向一个政府机构转移信用和/或电子货币而由消费者对信息内容和/或设备的使用中、以及/或者提供者和/或最终用户支付的税款中产生的提供者收入信息,作为上述被接收信息的结果,将“自动”出现上述转移过程,该过程导致生成一个其信息内容包括反映了安全的、可信的收入概要信息和/或详细用户交易记录的消费者信息内容使用信息的VDE信息内容容器(详细的程度可能取决于(举例来说)交易的类型或规模—根据法律规定,涉及向消费者支付的银行利息或大宗(例如超过10000美元)转移的信息可以被自动地报告给政府)。这种涉及可征税的事件和/或货币的、以及贷方货币转移的概要和/或详细信息放在一个VDE容器中可以通过汇报和/或付款路径传递给政府。这种容器还可以用于其他涉及VDE的信息内容使用汇报信息。
!支持信息内容控制信息沿信息内容控制信息处理的不同分支流动,以便在本发明的较佳实施例控制下支持对受VDE控制的信息内容所进行的多样化的、受控制的分发。这允许不同的参与者以不同的(可能是竞争性的)控制策略使用相同初始电子信息内容。在这种情况下,一个首先对信息内容设置控制信息的参与者可以规定某些控制假设,而这些假设将演变成更为专门的和/或充分的控制假设。这些控制假设可以在分支序列在一旦信息内容模型参与者提交信息内容控制信息时而发生变化(举例来说)以便用来与“就位”信息内容控制信息“协商”的过程中演变。这将产生新的或被修改的信息内容控制信息,并且/或者这将涉及选择特定的一个或多个已经“就位”的信息内容使用控制方法,就位的可选方法,以及涉及对相关控制信息参数数据的提交。应用于相同电子所有权信息内容和/或设备的不同拷贝的不同控制信息集合的上述形式的演变是VDE控制信息通过整条处理和控制路径的不同分支向下“流动”,并且在其通过这些不同路径分支向下分散的过程中受到了不同修改的结果。本发明的上述支持用于VDE控制信息和VDE管理的信息内容流动的多个路径分支的功能允许存在这样的电子商业市场,该电子市场支持分散的、竞争性业务伙伴关系、协定、以及正在演变的整体业务模型,该业务模型可以使用被合并(举例来说)到代表至少部分地不同的具有竞争性的产品的信息内容的不同集合中的相同信息内容特性。
!允许用户通过使用该用户的VDE装置中的安全子系统安全地抽取包含在VDE信息内容容器中的至少一部分信息内容,以便产生一个新的、安全的对象(信息内容容器),这样,被抽取的信息在整个抽取进程中维护于一种始终安全的方式中。包含上述被抽取信息内容的新VDE容器的形成应该产生与源VDE信息内容容器的和/或适当的本地VDE装置安全子系统的控制信息相一致的或由上述控制信息所规定的控制信息。诸如至少部分地从父(源)对象的控制信息导出的安全性或管理信息之类的相关控制信息通常将被自动地插入到含有被抽取出来的VDE信息内容的一个新VDE信息内容容器对象中。该进程的发生通常受到父对象的控制框架和/或执行于用户VDE装置安全子系统中的VDE装置控制信息的控制(同时(举例来说)上述被插入控制信息的至少一部分被安全地以加密形式存放在一个或多个许可记录中)。在一个可选实施例中,应用于被抽取信息内容的导出的信息内容控制信息可以部分地或全部地从存放在远离执行上述安全抽取过程的VDE装置的地方的—例如存放在一个远程服务器地点中的—信息内容控制信息中导出或采用该控制信息。对于用于大多数VDE管理的信息内容的信息内容控制信息来说,本发明的特性允许该信息内容的控制信息(a)“演变”,例如信息内容的抽取者可以在信息内容的就位控制信息允许的限度内添加新控制方法和/或修改控制参数数据—例如依从VDE应用的方法。所述的新控制信息可能规定(举例来说)谁可以使用上述新对象的至少一部分,以及/或者如何使用所述被抽取信息内容的所述至少一部分(例如,何时可以使用所述的至少一部分,或者可以使用哪一部分或多少部分);(b)允许用户把诸如抽取者创作的材料和/或从一个或多个其他VDE容器对象中抽取出来的信息内容(例如图像、视频、声音和/或正文)之类的另外的信息内容与所述被抽取信息内容的至少一部分合并起来,供直接放入新容器中;(c)允许用户安全地编辑所述信息内容的至少一部分,同时将所述信息内容以安全形式维护于所述信息内容容器中。
(d)将被抽取的信息内容添加进一个已存在的VDE信息内容容器对象中,并加上相关的控制信息—在上述情况下,用户添加的信息可以受到安全保护,例如被部分地或整体地加密,并且可以受到不同于施加到以前就位对象信息内容的使用和/或审核控制信息的控制。
(e)在对被抽取对象的一个或多个部分进行了各种形式的使用之后,保留了对所述部分的VDE控制,例如,以安全存贮的形式维护信息内容同时允许在屏幕上“暂时”显示信息内容,或者允许以安全的形式维护软件程序,但是暂时地解密所述程序的任何被加密的执行部分(所述程序的全部或仅仅一部分可被加密以便保护该程序)。
通常,本发明的抽取特性允许用户聚合和/或传播和/或使用从信息内容容器源中抽取出来的、被保护的电子信息内容,同时维护安全的VDE功能,从而保护了经过各种信息内容使用进程之后提供者在所述信息内容信息中的权利。
!支持VDE控制的信息内容的部分的聚合,这些部分受到不同的VDE信息内容容器控制信息的控制,其中,各个所述的信息内容可以已经被独立的、不同的信息内容提供者从远离执行上述聚合的用户的一个或多个不同的地点提供出来。在本发明的较佳实施例中,上述聚合可以涉及对于各个所述部分的每一部分都保留控制信息(如诸如加载模块之类的可执行码)的至少一部分,例如,将某些或全部的上述部分作为VDE信息内容容器对象独立地嵌入到整体VDE信息内容容器中,或将某些或全部的上述部分直接嵌入到一个VDE信息内容容器中。在后一种情况下,所述信息内容容器的信息内容控制信息可以(根据所述部分在聚合之前的原始控制信息要求)向各个上述部分施加不同的控制信息集合。每个上述嵌入的VDE信息内容容器都可以带有采用一个或多个许可记录形式的自身控制信息。作为另一种选择,与电子信息内容的各种聚合部分相关的控制信息之间的协商可以产生控制某些或所有上述聚合信息内容部分的控制信息集合。由该协商产生的VDE信息内容控制信息可以是统一的(例如带有同样的加载模块和/或部件组),并且/或者它可以将不同的上述信息内容控制信息施加到构成了VDE控制的信息内容的聚合的两个或多个部分,这些控制信息的例子有不同的计量、预算、计帐、和/或付款模型等。例如,可以通过票据交换所自动为信息内容的使用付款,或者可以为不同的部分直接向不同的信息内容提供者付款。
!允许对电子信息内容和/或电子设备的使用进行灵活的计量,或者对有关上述使用的信息的其他收集。本发明的一个特性使得上述计量控制机制灵活性支持并存的、范围广泛的(a)有关电子信息内容使用的不同参数;(b)该电子信息内容的不同增量单位(字节、文件、特性、段落、图像、等等)和/或其他组织;以及/或者(c)用户和/或VDE装置类型的不同类别,例如客户组织、部门、项目、网络、和/或单独用户。本发明的该特性可以用于信息内容安全性、使用分析(例如市场调查)、和/或基于对VDE管理的信息内容的使用和/或暴露的付款。该计量是一个用于确保对信息内容版税、许可使用、购买、和/或广告进行付款的灵活基础。本发明的一个特性提供了支持灵活的电子货币和信用机制的付款手段,包括安全地维护反映涉及对该货币或信用的使用的审核跟踪的能力。VDE支持客户组织控制信息的多个不同层次,其中,组织的客户管理员分发规定了部门、用户和/或项目的使用权利的控制信息。类似地,一个部门(分部)网络经理可以对部门网络、项目和/或用户等起分发者(分发预算、访问权利等)的作用。
!提供用于范围从廉价的消耗装置(例如电视机顶置设备)和专业设备(以及掌上型PDA)到服务器、主机、通信交换机等的电子设备的、可伸缩的、可集成的、标准化的控制装置。本发明的上述可伸缩的交易管理和/或审核技术将产生在电子商业和/或数据安全性环境中起作用的各电子设备之间的更有效和更可靠的互相协作性。对于在世界范围内发送实际商品而言,标准化的实际容器已经是必不可少的了,它允许这些实际容器普遍地与卸载设备相“吻合”、有效地利用卡车和火车的空间、并以有效的方式容纳已知的物体组(例如箱子),于是,正如本发明所提供的那样,VDE电子信息内容容器可以在世界范围内有效地移动电子信息内容(例如商业发行的所有物、电子货币和信用以及信息内容审核信息)以及相关的信息内容控制信息。对于有效的电子商业来说,互相协作性是基础。VDE基础、VDE加载模块、和VDE容器的设计是允许VDE节点操作环境与范围广泛的电子设备之间兼容的重要特性。(举例来说)基于加载模块的控制方法既能在诸如带有极少量读/写存贮器的环境之类的、非常“小”的并且廉价的安全子系统环境中执行同时也能在可能用于更昂贵的电子设备中的大容量存贮器安全子系统中执行的能力支持跨越许多机器的一致性。这种一致的VDE操作环境—包括其控制结构和容器体系结构—允许在范围广泛的设备类型和宿主操作环境中使用标准化VDE信息内容容器。由于VDE功能可以作为扩展、补充和/或修改而被无缝地集成至电子设备和宿主操作系统的基本功能,因此,VDE容器、信息内容控制信息、以及VDE基础将可以与许多设备类型一道工作,同时这些设备类型将可以一致地和有效地解释和加强VDE控制信息。通过上述集成,用户也可以从与VDE许多功能的透明交互作用中得到好处。与运行于宿主电子设备中的软件进行的VDE集成支持多种功能,如果不进行该集成这些功能将得不到或较不安全。通过与一个或多个设备应用和/或设备操作环境集成,本发明的许多功能都可以作为给定电子设备、操作系统、或设备应用的内在功能被提供出来。例如,本发明的特性包括(a)部分地扩展和/或修改宿主操作系统使之具有诸如支持安全交易处理和电子信息存贮之类的VDE功能的VDE系统软件;(b)部分地代表与VDE操作相关联的工具的一个或多个应用程序;以及/或者(c)要集成到应用程序中的代码,其中,该代码将引用加入到VDE系统软件中以集成VDE功能并使该应用成为VDE感知型应用(例如字处理器、数据库检索应用、电子表格、多媒体展示创作工具、电影编辑软件、诸如MIDI应用之类的音乐编辑软件、诸如与CAD/CAM环境以及NCM软件等相关联的控制系统之类的机器人学控制系统、电子邮件系统、电话会议系统、以及包括上述的组合的其他数据创作、创建、处理、和/或使用应用)。上述的(也可以实现于固件或硬件中的)一个或多个特性可以结合诸如微控制器、微处理器、其他CPU或其他数字处理逻辑之类的VDE节点安全硬件处理功能一起使用。
!使用审核协调和使用模式评估进程。这些进程通过某些通常基于网络的交易处理协调和阈值检查活动来评估是否发生了VDE系统的安全性的某种破坏。这些进程在VDE控制的信息内容的最终用户VDE地点的远方通过评估(举例来说)给定VDE装置购买和/或请求得到电子所有物的活动而执行。用于该协调活动的应用包括评估远程交付的VDE控制的信息内容的数量是否对应于用于对该信息内容的使用的财务信用和/或电子货币的数量。一个信托组织可以从信息内容提供者那里获取与提供给一个给定VDE装置和/或用户的信息内容的价格相关的信息,并将该信息内容价格与所述装置和/或用户的信用和/或电子货币付款相比较。被交付信息内容的数量与付款的数量之间不一致可以证明和/或表明(根据情况的不同)本地的VDE装置是否已经至少在某种程度上受到了破坏(例如某些重要的系统安全性功能,比如通过解开一个或多个密钥而破解了至少对安全子系统的和/或VDE控制的信息内容的一部分的加密)。判断是否出现信息内容使用的异常模式(例如不同寻常的大量要求)、或者一个或多个VDE装置和/或用户(例如其使用活动的聚合模式值得怀疑的相关的用户组)在特定的时间段内要求向他们传送某些类型的VDE控制信息在判断是否上述一个或多个装置的安全性受到了破坏,并且/或者由上述的一个或多个用户破坏等方面也可以是有用的,特别是结合评估由一个或多个VDE用户和/或装置的某些和/或所有其电子信用和/或货币提供者提供给这些用户和/或装置的电子信用和/或货币与由这些用户和/或装置提交的付款相比的结果一起使用上述判断过程将更为有用。
!支持实际增加了“破坏”系统安全性所需时间的安全技术。这包括使用一批将由破坏本发明的安全性特性的某些方面而引起的危害降至最低的技术。
!提供了构成了本发明的可信的/安全的、普遍的、分布式的交易控制和管理系统的部件的一系列创作、管理、汇报、付款、和计帐工具用户应用。这些部件支持与VDE相关的对象创建(包括为信息内容设置控制信息)、安全对象分发和管理(包括分发控制信息、与财务相关的和其他使用分析)、客户内部VDE活动管理和控制、安全性管理、用户接口、付款、以及与票据交换所有关的功能。这些部件被设计为支持高度安全的、统一的、一致的、和标准化的处理、汇报、和/或付款的电子商业和/或数据安全性路径、信息内容控制和管理、以及人的因素(例如用户接口)。
!支持大量票据交换所的操作—包括财务和用户票据交换所活动,例如由大组织中的客户管理员为帮助该组织对VDE配置的使用而执行的活动,所述的活动包括使用信息分析、以及对雇员个人或组的VDE活动的控制,例如规定在VDE控制下对客户人员的某些组和/或个人可用的预算和使用权利特性,而这要受到由客户管理员提交的控制信息的控制信息系列的控制。在票据交换所中,一个或多个VDE装置可以与可信的分布式数据库环境(该分布式数据库环境可包括并发数据库处理装置)一起操作。财务票据交换所通常在其所处位置接收安全传递的信息内容使用信息、以及用户请求(诸如对另外的信用、电子货币和/或更高信用限额的要求)。使用信息的汇报和用户请求可以用于支持与电子货币、计帐、付款和信用有关的活动、以及/或者用户轮廓分析和/或更广泛的市场调查分析和销售(综合的)报告的产生,或其他至少部分地从所述使用信息中导出的信息。可以通过到VDE装置安全子系统的安全的、经过鉴别的加密通信将上述信息提供给信息内容提供者或其他方面。票据交换所处理装置通常连接到专用的I/O装置,该专用I/O装置具有可用于票据交换所与其他的路径参与者之间的安全通信的高速远程通信交换装置。
!安全地支持VDE装置上和VDE装置之间的电子货币和信用使用控制、存贮、和传送。VDE进一步支持包括(例如采用电子货币或信用形式的)付款代价券以及其他付款信息在内的电子货币和/或信用信息通过付款路径的自动化传递,所述的路径可以是也可以不是与信息内容使用信息汇报路径相同的路径。该付款可以被放入一个由VDE装置为响应规定按照使用VDE控制的电子信息和/或设备而产生的应付款项数额从电子信用或货币帐户中“提取”信用或电子货币的控制信息而自动创建的VDE容器中。然后付款信用或货币可自动地以被保护(至少被部分地加密)的形式通过一个VDE容器的电信而被传送到诸如票据交换所、原始所有的信息内容或设备的提供者、或该提供者的一个代理(而不是一个票据交换所)之类的一个适当参与者。付款信息可以与也可以不与诸如计量信息之类的相关信息内容使用信息一起包装在所述VDE信息内容容器中。本发明的一个方面还允许将涉及货币使用的某些信息规定为对特定、某些或所有VDE参与者不可得到的(从“有条件”到完全匿名的货币),并且/或者还可以控制诸如涉及货币和/或信用使用的信息(以及/或者其他电子信息使用数据)之类的某些信息内容信息只在某些严格的条件下才可以被得到,所述条件的一个例子是法庭传票(其本身可以通过使用由法庭控制的VDE装置要求得到授权,这种装置可能被要求“有条件”地安全访问匿名信息)。在本发明的较佳实施例下,货币和信用信息被当作管理内容对待。
!支持向信息内容中嵌入指纹(也称为水印),这样当受本发明保护的信息内容被以明文的方式从VDE对象中发布出来(显示、打印、传送、抽取和/或保存)的时候,表示负责将信息内容转换成明文形式的用户和/或VDE装置的标识信息被嵌入到发布出的信息内容中。指纹的有用性在于它提供一种能力用于识别谁从VDE容器中以明文方式抽取信息,或谁制作了VDE对象的或其信息内容的一部分的拷贝。由于用户的身份和/或其他标识信息可以以一种模糊的或通常为隐藏的方式被嵌入到VDE容器信息内容和/或控制信息中,这样可以阻碍潜在的版权侵犯者进行未授权的抽取或拷贝活动。指纹通常被嵌入到未加密的电子信息内容或控制信息中,尽管它也可以先被嵌入加密的信息内容中,以后当携带该指纹信息的加密的信息内容在安全VDE装置子系统中被解密的时候,再被嵌入到未加密的信息内容中。当诸如VDE容器中的信息内容之类的电子信息离开一个网络(如Internet)地点而准备到达某个接收方的时候,可以向该电子信息中加入指纹。该存放库中的信息在被传送之前可以被维护于未加密的形式,而在其离开该存放库时则被加密。加入指纹的过程最好在信息内容离开存放库的时候但在加密步骤之前发生。可以在一个安全VDE子系统中解密被加密的存放库信息内容、插入指纹信息、然后再加密信息内容,以便进行传送。在信息内容离开(举例来说)某个Internet存放库时,将预期的接收方用户和/或VDE装置的标识信息嵌入到信息内容中,将提供可识别或帮助识别任何设法破坏VDE装置或被传递信息内容的安全性的参与者的重要信息。如果一个参与者制作了经授权的、明文形式的VDE控制的信息内容的拷贝—包括制作了经授权的明文形式拷贝的未授权拷贝,指纹信息将反向地指明那个制作拷贝的个人和/或他或她的VDE装置。该隐蔽信息将充当一个强有力的阻碍措施以阻止大部分潜在信息内容“盗版者”窃取其他参与者的电子信息。可以在解密、复制VDE信息内容对象、或向接收方传送该对象之前、或者在上述活动的过程中将标识接收方和/或VDE装置的指纹信息嵌入到VDE对象中。在加密电子信息内容以便传送给消费者或其他用户之前向该电子信息内容中加入指纹可以提供对于识别谁收到了某些可能已经以未加密形式分发出去或使之对外可用的信息内容十分有用的信息。在跟踪谁可能已经“破坏了”VDE装置的安全性并且正在非法向他人提供某些电子信息内容方面,上述信息将是具有价值的。指纹还可以提供其他的、诸如所述信息内容信息的发布(例如抽取)时间和/或日期之类的可用信息。插入指纹的位置可以由VDE装置和/或信息内容容器控制信息规定。该信息可以规定所有物中诸如信息和/或信息类型的一个或多个特定字段之类的特定区域和/或精确位置应该用来加入指纹。可以通过以一般不可被检测的方式修改某些图像像素的颜色频率和/或亮度、通过稍微地修改某些声音信号的频率、通过修改字体特性构成信息等等将指纹信息加入到所有物中。指纹信息本身应该被加密,这样,将受到破坏的指纹解释为有效的将变得异常困难。对于同一所有物的不同拷贝加入不同位置的指纹;“虚假”指纹信息;以及特定所有物或其他信息内容中的、使用了诸如信息分布模式、频率和/或亮度操纵、以及涉及加密的技术的不同指纹技术的指纹信息多个拷贝,是本发明的特性,这些特性用于提高未授权的个人识别指纹位置以及擦除和/或修改指纹信息的难度。
!提供可以携带请求、数据和/或方法—包括预算、授权、信用或货币、以及信息内容—的智能对象代理。例如,智能对象可以移至和/或移自远程信息资源地点并执行对电子信息内容的请求。智能对象可以(举例来说)被提交给一个远程地点以代表某个用户执行一个特定数据库搜索,或“智能地”搜索一个或多个信息存放库以查找用户所需的信息。当智能对象通过(举例来说)执行一个或多个数据库搜索在一个或多个远程地点识别出所需的信息后,带有检索出的信息的智能对象可以通过向用户的通信以安全“返回对象”的形式返回给用户。可以为信息的远程检索、信息向用户VDE装置的返回、以及/或者对上述信息的使用向用户收取费用。在后一种情况下,可以只对用户实际使用的返回对象中的信息向用户收费。智能对象可以具有请求使用一个或多个服务和/或资源的装置。服务包括定位诸如信息资源、语言或格式翻译、处理、信用(或额外信用)授权等之类的其他服务和/或资源。资源包括参考资料数据库、网络、超级或专用计算资源(智能对象可以携带信息到达另一台计算机,使该信息受到高效地处理,然后将信息返回给发送方VDE装置)、远程对象存放库、等等。智能对象可以有效地使用远程资源(例如集中式数据库、超级计算机等等),同时提供用于根据实际使用的信息和/或资源向用户收费的安全装置。
!支持将VDE电子协定元素“翻译”成用现代语言书面表达的协定元素(例如英语协定),以及将电子权利保护/交易管理现代语言协定元素翻译成电子VDE协定元素。该特性要求维护一个对应于VDE加载模块和/或方法和/或部件组的正文语言库。当一个VDE方法被提议出来和/或被用于VDE协定的时候,一个VDE用户应用将产生正文条款和条件的一个列表,在较佳实施例中,所述VDE用户应用提供已经经过保存并对应于所述方法和/或部件组的短语、句子和/或段落。该特性最好使用人工智能技术以分析并自动确定和/或帮助一个或多个用户确定对应于被选择的方法和/或部件组的库元素之间的正确顺序和关系,以便组成法律的或说明性文件的某些或所有部分。一个或多个用户,以及/或者最好是某个律师(如果上述文件是一个法律的约束协定)将在上述过程产生的文件材料一旦生成完毕后审阅该文件材料,并使用和/或编辑描述该协定中的非电子交易元素所必要的上述附加的正文信息,同时进行其他可能必要的改进。这些特性进一步支持使用允许一个或多个用户从多个选项中作出选择和回答问题、并从该进程中生成一个VDE电子协定的现代语言工具。该进程可以是交互式的,并且VDE协定组成进程可以使用人工智能专家系统技术—所述的人工智能专家系统技术从应答中学习,并在合适的时候或至少部分地根据所述应答,产生进一步的选项和/或问题。于是,上述技术“逐渐形成”所需的VDE电子协定。
!支持在单个VDE装置中使用多个VDE安全子系统。通过在单个VDE装置中采用分布式VDE设计可以实现安全性和/或性能上的多种优点。例如,将一个基于硬件的VDE安全子系统设计到电子设备VDE显示设备中,以及设计所述子系统与所述显示设备的集成以便该子系统尽可能地接近该显示设备,将提高图像资料的安全性,因为基于上述设计,当被解密的图像信息从图像系统外部移到内部时,要“窃取”该信息将变得实际更加困难。最好,(举例来说)VDE安全硬件模块与实际显示器处于同一物理包装中,例如位于视频监视器或其他显示设备的包装中,同时,可以在商业可行的限度内将该设备设计为具有合理的防破坏性。作为另一个例子,从整个系统吞吐量的角度来看,将一个VDE硬件模块嵌入到一个I/O外围设备中可具有某些优点。如果在同一VDE装置中使用多个VDE实例,这些实例将在可行的限度内理想地共享资源,例如VDE实例将某些控制信息和信息内容和/或设备使用信息存放在同一大容量存贮设备中以及同一VDE管理数据库中。
!通过利用预算的耗尽和密钥的时间衰老而要求汇报和付款按规定进行。例如,一个VDE商业配置以及相关的信息内容控制信息可以涉及信息内容提供者的信息内容以及对用来支付最终用户对所述信息内容的使用费的票据交换所信用的使用。涉及该配置的控制信息可以被传递到(所述信息内容的)用户的VDE装置和/或所述财务票据交换所的VDE装置。所述控制信息可能要求所述票据交换所准备好并传递给所述信息内容提供者某种形式的基于信息内容使用的信息以及以电子信用(提供者收到该信用之后可以“拥有”该信用,并使用该信用以代替可用的或足够的电子货币)和/或电子货币的形式的信息内容使用费用。信息和付款的上述传递过程可以使用可信的VDE装置安全子系统,以安全地并且在某些实施例中自动地、以所述控制信息规定的方式提供所述的使用信息和付款信息内容。本发明的特性有助于确保要求票据交换所汇报上述使用信息和付款信息内容的请求必须得到遵守。例如,如果参与VDE电子协定的某个参与者没有遵守上述信息汇报和/或付款义务,另一个参与者可以禁止该违法方成功参与涉及该协定的VDE活动。如果所要求的使用信息和付款没有按照信息内容控制信息的规定被汇报出来,那么“受到侵害”方可以通过不再安全地从其VDE装置安全子系统向外传送信息而不提供继续一个或多个关键进程所必需的安全信息的一个或多个部分。例如,一个票据交换所没有向信息内容提供者汇报信息和/或付款(以及任何安全性故障或其他干扰性异常)将会使信息内容提供者不向该票据交换所提供密钥和/或预算更新信息,而这些信息对于授权使用票据交换所的信用以便使用提供者的信息内容来说可以是必要的,而且该票据交换所在票据交换所和最终用户之间的信息内容使用汇报通信过程中需要将上述信息传递给最终用户。再举另一个例子,一个没有向信息内容提供者提供付款和/或汇报使用信息的分发者可能会发现其用来创建向用户分发信息内容提供者的信息内容所用的许可记录的预算,以及/或者限制这些用户对提供者信息内容的使用的一个或多个其他方面的安全预算,在一旦用尽后或过期(例如在某一预定日期)后没有得到信息内容提供者的更新。在这些或其他情况下,受到侵害的团体可能决定不更新已经“过期”的时间衰老密钥。对时间衰老密钥的上述使用具有不更新预算或时间衰老的授权的类似作用。
!支持本发明的智能卡实现,例如以包括用作安全信用、银行业务、和/或货币卡的卡片在内的便携式电子设备的形式。本发明的一个特征是将便携式VDE用作零售或其他机构的交易卡,其中,所述的卡可以与带有VDE安全子系统的和/或与诸如“可信”财务票据交换所(如VISA、MasterCard)之类的一个VDE安全和/或安全和兼容子系统之间具有联机连接的机构终端进行对接。VDE卡和终端(和/或联机连接)可以安全地交换有关某个交易的信息,同时信用和/或电子货币被转移到销售商和/或票据交换所,而交易信息则流回该卡。这种卡可以用于所有类型的交易活动。诸如PCMCIA连接器或象个人计算机那样的某个电子设备之类的对接站可以在家接纳消费者的VDE卡。可以采用与永久地安装在上述电子设备中的VDE装置相同的方式将上述的站/卡组合用到联机交易中。该卡可以用作一个“电子钱包”,并含有票据交换所提供的电子货币以及信用。该卡可以用作消费者涉及销售商、银行业务、以及联机财务交易的财务活动的会聚点,包括支持家庭银行业务活动。消费者可以通过联机交易接收工资/或投资回报和/或“真实”的、VDE信息内容容器保护的、有关这些接收的详细信息。用户可以向VDE配置中另一个参与者发送数字货币,包括分送该货币。VDE卡可以以高度安全的和按照数据库组织的方式保存交易的详细信息,这样,有关财务的信息被聚集在一起,并且可以十分容易地被检索出来和/或分析。由于VDE的安全性,包括对有效的加密、鉴别、数字签名、以及安全数据库结构的应用,保存在VDE卡配置中的记录可以作为有效的交易记录为政府和/或公司的簿记要求所接收。在本发明的某些实施例中,VDE卡可以使用对接站和/或电子设备存贮装置,并且/或者共享处于所述设备的本地的和/或可以通过网络使用的其他VDE系统的装置,以便通过(举例来说)存贮过时的和/或存档的备份信息来增加VDE卡的信息存贮容量。根据安全地存放在所述VDE卡中并可提供使用的“真实”信息,可以自动地计算出涉及个人的某些或所有财务活动的税款。所述信息可以存放在所述卡中、所述对接站中、相关电子设备中、以及/或者被有效连接上的其他设备中、以及/或者远程地存放—例如存放在一个远程服务器站点中。诸如交易历史之类的卡上的数据可以被备份到个人的个人计算机中或其他电子设备中,而该设备可以带有其自身的、集成的VDE装置。在每次或定期地将卡与站对接以便进行某个财务交易和/或进行诸如用户/销售商交易之类的信息通信时,当前的交易、最近的交易(为冗余的目的)、或者所有的或其他被选择出来的卡上数据可以被备份到诸如财务票据交换所中的与VDE兼容的存放库之类远程的备份存放库中。在与另一个参与者的VDE装置(例如一个也处于某个财务或通用电子网络中的VDE装置)连接的过程中通过将交易信息通知远程的票据交换所和/或银行而备份至少当前交易,可以确保进行了足够的备份,以便在卡失效或丢失的情况下支持VDE卡内部信息的完全重建。
!支持具有下列特征的验证进程,该验证过程确保各种VDE装置之间的、经过授权的互相协作性,以便防止在规范协议方面与其他VDE系统和/或装置存在不可接受的偏差的VDE配置和/或装置以可能引入安全性(VDE保护的信息的完整性和/或机密性)、进程控制、和/或软件兼容性等方面产生问题的方式进行互相协作。验证过程确认VDE装置和/或其部件的、以及VDE用户的身份。验证数据还可以充当有助于确定涉及VDE站点的退出或其他变化的信息。
!通过使用基于事件(触发)的方法控制机制支持基本交易控制进程的分离。这些事件方法触发一个或多个其他VDE方法(这些方法对VDE安全子系统可用),并用来执行VDE管理的、与交易有关的处理。上述被触发的方法包括可独立地(分别地)和安全地处理的部件计帐管理方法、预算管理方法、计量管理方法、以及相关的预算管理进程。作为本发明的上述特性的、以及对计量、审核、计帐、和预算方法的独立触发的结果,本发明能够有效地、并发地支持多种金融货币(如美元、马克、日元)、以及有关信息内容的预算和/或计帐增量,以及非常灵活的信息内容分发模型。
!支持对涉及(1)信息内容事件触发、(2)审核、(3)预算(包括规定没有使用权或无限的使用权)、(4)计帐、以及(5)用户身份(VDE装置、客户名字、部门、网络、以及或者用户等)的控制结构的完全的、模块化的分离。这些VDE控制结构的独立性提供了一个灵活的系统,允许两个或多个上述结构之间存在多重关系,例如能够使一个财务预算与不同的事件触发结构相关联(这些结构被放在适当的地方以允许根据信息内容的逻辑部分对控制信息内容进行控制)。如果在这些基本VDE功能之间没有上述分离,那么下列活动的操作将会变得困难得多即有效地维护对于计量、计帐、预算和用户标识涉及了同样的、不同的(包括重叠的)、或完全不同的信息内容部分的、分离的计量、预算、标识、和/或计帐活动,例如,支付与信息内容使用相关联的费用、开展家庭银行业务、管理广告服务等等。上述基本功能的VDE模块化分离支持对一个或不同信息内容部分(和/或部分单位)与预算、审核和/或计量控制信息之间的大量的、“任意”的关系的编程。例如,在VDE控制下,对于对某一数据库的解密,根据用户选择的货币,可以强制实施每月200美元或300德国马克的预算限制,并且对于所述被解密数据库中的每一个记录可收费2美元或3德国马克。可以计量上述使用,同时,可以准备用于用户轮廓用途的另外的审核,该审核记录每一提交的显示出的标识。另外,还可以进行涉及所述数据库被解密的字节数目的进一步的计量,并且相关安全性预算可防止每年解密的字节数超过所述数据库字节总数的5%。用户也可以在VDE控制下(如果经过上级控制信息允许的话)收集反映了不同个人和客户组织部门对数据库字段的使用的审核信息,并确保不同的访问权利和限制数据库使用的不同预算可以被应用到这些客户个人和群体。允许信息内容提供者和用户实际地使用用户标识、计量、预算和计帐控制信息的上述多种集合部分地归因于使用上述的独立控制功能。于是,VDE可以支持在创建应用于同一电子所有权的大量控制模型、以及应用于不同的或完全不同的信息内容模型的相同的和/或大量的控制模型的过程(例如家庭银行业务对于电子购物)中的高度可配置性。
方法、其他控制信息、以及VDE对象一起控制对VDE管理的所有权(数据库、文件、独立商业产品)的使用的VDE控制信息(如方法)或者(例如在信息内容容器中)与信息内容本身一起发送,并且/或者上述控制信息的一个或多个部分可以在可独立传递的“管理对象”中发送给分发者和/或其他用户。可以部分地将所有权的方法的一个子集与各个所有权一起传递,同时可以将方法的一个或多个其他子集独立地传递给用户,或者使之可用(例如可以通过远程通信手段远程地得到上述方法的子集)。如果要使用VDE控制的信息内容(例如放在一个VDE信息内容容器中分发出去的知识产权产品),那么必须按照要求使必要方法(被说明为所有权和/或设备使用所需要的方法)可用。控制信息内容的方法可以应用于大量的VDE容器对象—例如这些对象的某个类别或其他分类。某些用户或用户类别和/或VDE装置和/或装置类别也可以要求得到方法以便使用一个或多个特定的或种类的对象。
本发明提供的VDE的一个特征是特定的一个或多个方法可以被规定为必要的,以便某个VDE装置和/或用户可以使用某个和/或所有信息内容。例如,“上级”参与者(例如信息内容制作者)可以允许某种类型的信息内容的分发者要求得到某个禁止最终用户电子地保存被解密的信息内容的方法,VDE交易的信用的提供者可以要求得到一个记录电子购买次数的审核方法,并且/或者用户可以要求得到一个总结使用信息(如计帐信息)以便将这些信息以一种不传送涉及详细使用行为的机密的个人信息的方式汇报给票据交换所的方法。
本发明提供的VDE的另一个特征是信息内容的制作者、分发者和用户可以从预定义的方法集合(如果可得到的话)中进行选择,以便控制容器信息内容的使用和分发功能,并且/或者他们可以有权提供新的、定制的方法以控制至少某些使用功能(对于VDE装置和/或一组VDE应用的可信度和互相协作性,可以要求对上述的“新”方法进行验证)。于是,就如何控制对每个所有权或对象(或所希望的和/或适用的的对象或所有权的一个或多个部分)的分发和其他使用活动而言,VDE提供了程度极高的可配置性。信息内容控制信息VDE路径中的每个VDE参与者都可以为VDE容器中的某些或所有信息内容设定方法,只要该控制信息没有与已经就位的上级控制信息在下列方面冲突,即(1)某些或所有的VDE管理的信息内容,(2)特定的一个或多个VDE用户和/或用户组别,(3)特定的一个或多个VDE节点和/或节点组别,以及/或者(4)特定的一个或多个VDE应用和/或配置。
例如,信息内容制作者的特定信息内容的VDE控制信息可以优先于其它被提交的VDE参与者控制信息,并且(举例来说)如果上级控制信息允许的话,信息内容分发者的控制信息本身可以优先于客户管理员的控制信息,而客户管理员的控制信息可以优先于最终用户的控制信息。在一条路径上的分发参与者设置上述电子信息内容控制信息的能力可以被限制到特定控制信息(如协调诸如定价和/或销售日期之类的数据的方法)的范围内,或者这种能力可以仅被限制到参与者提议的一个或多个控制信息与所有权处理链中的参与者以前提交的、或在所述参与者的VDE安全子系统中管理的上级控制信息所设置的控制信息相冲突的限度内。
VDE控制信息可以部分地或全部地(a)代表由VDE信息内容控制信息路径参与者直接放置就位的控制信息,和/或(b)含有被上述的参与者代表某个不直接处理电子信息内容(或电子设备)许可记录信息的参与者放置就位的控制信息(例如由一个参与者代表一个财务票据交换所或政府机构插入的控制信息)。这些控制信息方法(和/或加载模块、和/或协调数据、和/或部件组)也可以被采用电子方式自动化的、或半自动化的和由人协助的控制信息(控制集合)协商进程放置就位,所述的协商过程判断对被提交控制信息的一个或多个部分的使用是否将被集成进或将替代已存在的控制信息(以及/或者根据与就位控制信息的交互作用在可选的控制信息之间进行选择)以及这些控制信息如何被使用。
控制信息可以由一个不直接参与对电子信息内容(和/或设备)和/或该信息内容(和/或设备)的控制信息的处理的团体提供。可以使用在上述不直接参与的一个或多个团体的VDE装置安全子系统与处于一条路径中的VDE信息内容控制信息参与者的VDE装置安全子系统之间的、由VDE装置安全子系统管理的通信(包括(举例来说)对至少部分地加密的控制信息的传送者进行鉴别)将上述控制信息以安全的形式提供出来。该控制信息可以涉及(举例来说)对财务服务提供者提供的信用的访问权、对由政府机构制定的条例或法律的强制执行、消费者对VDE管理的信息内容的使用信息(反映一个或多个参与者而不是该消费者对信息内容的使用)的要求—该使用信息涉及该消费者收到的使用信息的创建、处理、和/或汇报方式。上述控制信息可以(举例来说)强制执行诸如涉及电子商业的法律等社会要求。
VDE信息内容控制信息可以不同地施加到不同路径的信息内容和/或控制信息处理参与者。而且,如果经过允许的话,VDE参与者可以增添、改动和/或删除许可记录权利。VDE参与者的权利定义可以与涉及信息内容和/或信息内容控制信息(如许可记录)处理链中的特定参与者和/或参与者类别和/或其他参与者类别相关。给定的一个或多个合格参与者对控制信息的修改可以在他们可作修改的数目和/或程度上受到限制。
制作者、分发者、作者、票据交换所、客户管理员、和最终用户(要认识到两个或多个的上述类别可以描述单个用户)的电子设备中的至少一个安全子系统为预期的应用提供了“充分”安全的环境,用来1.解密所有物和控制信息;2.存贮与控制和计量相关的信息;
3.管理通信;4.处理构成电子信息内容和/或设备权利保护的控制信息的核心控制程序以及相关数据,包括强制执行VDE参与者的优选和要求。
通常,大多数使用、审核、汇报、付款、以及分发控制方法本身至少部分地被VDE装置的安全子系统加密和执行。这样(举例来说)可以在安全子系统中安全地生成和更新计帐和计量记录,并安全地使用加密和解密密钥。由于VDE在VDE配置中的参与者地点(节点)安全子系统之间传递信息时还使用了安全(如经过加密的和鉴别的)的通信,因而VDE电子协定的重要组成部分可以得到针对所期望商业目的的(充分可信的)充分安全性的可靠强制执行。针对某个价值链的VDE电子协定可以至少部分地由价值链参与者一个或多个子集之间的一个或多个子协定构成。这些子协定由一个或多个确保了VDE参与者的权利保护的电子合同“依从”元素(包括相关参数数据的方法)构成。
VDE配置的可信度主要取决于参与者地点的安全子系统中是否使用了硬件SPU以及SPU硬件安全性体系结构的有效性、当采用软件仿真SPU时的软件安全性技术、以及用于保护信息内容、控制信息、通信、和对VDE节点(VDE装置)安全子系统的访问的加密算法和密钥。在某些节点中可以使用物理设施和用户身份鉴别安全性过程代替硬件SPU,这种节点的一个例子是某个已建成的财务票据交换所,在该票据交换所中,所述的过程可以对与用户节点处使用了硬件SPU的VDE系统之间可信的互相协作性提供充分的安全性。
为了支持新的或经过修改的控制信息而在VDE系统的每个节点中进行的对所有权管理文件的更新执行于VDE安全子系统中,并受到由被保护的子系统执行的安全管理文件更新程序的控制。由于所有的安全通信都至少部分地经过了加密,并且安全子系统内部的处理经过了隐藏而不受外界的探测和干扰,所以本发明确保信息内容控制信息可以被强制执行。于是,每个所有物的制作者和/或分发者和/或客户管理员和/或安全控制信息的其他提供者(例如某个最终用户—该最终用户限制了他或她允许被汇报出去的审核信息的种类,以及/或者某个财务票据交换所—该票据交换所对于支付被分发信息内容的使用费规定了使用其信用的标准)都可以确信他们分发的和接受的控制信息将(在给定VDE安全性实现设计的安全性限度内)被强制执行。该控制信息可以决定(举例来说)(1)如何提供和/或向谁提供电子信息内容,例如,如何分发一个电子所有物;(2)如何直接使用—例如解密、显示、打印、等等—一个或多个对象和/或所有物、或对象或所有物的部分;(3)可以或必须如何处理对于上述信息内容和/或信息内容部分的使用付款;以及(4)应该如何收集、汇报和/或使用有关涉及所有物的至少一部分的使用信息的审核信息。
被提供出来的控制信息的分级特性—包括解决由多个团体提交的信息内容控制信息之间的冲突—通常由下列的方面建立(1)由不同参与者把控制信息放置就位(就位控制信息通常优先于后续提交的控制信息)的次序;(2)VDE信息内容和/或设备控制信息的详细说明。例如,就位控制信息可以规定哪些来自一个或多个参与者或参与者类别的后续一个或多个的控制将优先于由一个或多个不同参与者和/或参与者类别提交的控制信息,以及/或者(3)来自多个参与者的控制信息集合之间的协商,该协商确定对于给定的VDE管理的信息内容和/或VDE装置,什么样的控制信息应该构成其最终控制信息。
电子协定和权利保护VDE的一个重要特征是它可以用来确保对通过使用本发明而实现的电子协定的管理,以及其安全性和权利的保护的充分性。这种协定可以涉及一个或多个(1)电子信息的制作者、出版者、以及其他分发者,(2)财务服务(如信用)提供者,(3)诸如特定于信息内容的人数统计信息和特定于用户的描述性信息之类的、由信息内容使用所产生的信息的用户(非财务服务提供者)。这些用户可包括市场分析人员、为直销和销售导向目的的销售清单编纂人员、以及政府机构,(4)信息内容的最终用户,(5)诸如电信公司和硬件厂家(半导体和电子设备和/或其他计算机系统厂家)之类的基础服务和设备提供者,他们根据对他们的服务和/或设备的使用收取报酬,以及(6)由电子信息描述的某些团体。
VDE支持具有商业安全性的“扩展”价值链电子协定。VDE可以被配置成支持构成该扩展协定的参与者间的各种底层协定。这些协定可以规定重要的电子商业考虑事项,包括(1)安全性,(2)信息内容使用控制,包括电子分发,(3)隐私(有关(举例来说)涉及参与者的、由医疗、信用、税务、人事、和/或其他形式的机密信息描述的信息),(4)财务进程管理,以及(5)用于电子信息内容、信息内容和/或设备控制信息、电子信息内容和/或设备使用信息和付款和/或信用的处理路径。
VDE协定可以规定价值链中两方或多方的电子商业关系,但是该协定有时可能不直接强迫或直接涉及其他VDE价值链参与者。例如,在某个信息内容制作者和某个分发者之间达成的电子协定可以确定分发者对于制作者的某个信息内容(例如放在VDE容器对象中分发出去的某个所有物)的应付价钱以及该分发者可以在一段给定时间内向最终用户分发的对象的拷贝数目。在第二个协定中,一个价值链最终用户可能参与到一个三方协定中,在该协定中,该最终用户同意某些有关使用该分发产品的要求,例如接受分发者针对信息内容的使用而收取的费用,及同意遵守制作者的版权。在分发者和财务票据交换所之间可以存在第三个协定,如果最终用户直接与向该最终用户提供信用的票据交换所之间具有一个单独的(第四个)协定的话,上述第三个协定允许分发者使用票据交换所的信用以便为产品付款。在信息内容控制信息通过其处理链传递的时候,第五个演变着的协定可以在所有价值链参与者之间发展。该演变着的协定可以确定所有参与者对信息内容使用信息的权利,包括(举例来说)每个参与者要收到的信息的特性、以及信息内容使用信息和相关过程的处理路径。本例中的第六个协定可能涉及所有参与者都参与进去以便达成该协定,并且确定诸如安全性技术和可信度(例如,系统的商业完整性可以要求每个VDE装置安全子系统在电子方面保证它们的VDE节点满足了特定的可互相协作性要求)之类的某些一般前提。在上面的例子中,上述六个协定将构成了用于商业价值链实例的扩展协定中的各个协定。
VDE协定支持演变的(“活的”)电子协定配置。通过新提议的信息内容控制信息与已经就位的控制信息之间的、或者由多个参与者提交的同时提议出来的信息内容控制信息之间的、从十分简单到十分复杂的“协商”,当前的和/或新的参与者可以修改上述协定。可以一段时间之内按照已有的上级规则异步地和渐进地修改一个给定的模型,而该修改可以被应用到所有的、某些类别的和/或特定的信息内容、以及/或者某些类别的和/或特定的用户和/或用户节点。给定的信息内容可能受到不同控制信息在不同处理时间或地点的控制,取决于其控制信息的演变(和/或取决于不同的、适用的VDE装置控制信息)。控制信息的演变可以在传递一个或多个含有对象的VDE控制信息的过程中发生,即控制信息可以在控制信息处理链中的一个或多个点接受修改—只要这种修改是经过允许的。于是,VDE管理的信息内容可以带有在信息内容处理链中的不同“位置”施加的以及在该信息内容的不同处理链的相同位置施加的不同的控制信息。控制信息的上述不同施加也可以来源于规定特定参与者或参与者类别应该受到不同于其他参与者或参与者类别的信息内容控制信息控制的信息内容控制信息。例如,用于给定的信息内容的信息内容控制信息可以被规定为上级信息,于是该控制信息不能被改变,并且该控制信息可由信息内容制作者放置就位,该控制信息可以规定其给定的信息内容的国内分发者允许每个季度制作100,000拷贝—只要这些拷贝是提供给真实的最终用户,但是只能向本地零售商传送该信息内容的一份拷贝,并且该控制信息限制该零售商每月为零售给最终用户的目的所制作的拷贝数不超过1,000份。另外,(举例来说)相同的信息内容控制信息可以限制该信息内容的最终用户制作该信息内容的三份拷贝,每份供他或她使用的三台计算机中的每台(一份对应于一台办公地点用的桌上型计算机、一份对应于一台家用的桌上型计算机、一份对应于一台便携式计算机)。
由本发明的较佳实施例支持的电子协定可以从十分简单变化到十分复杂。它们可以支持种类繁多的信息管理模型,这些信息管理模型提供电子信息安全性、使用管理、以及通信,并支持(a)诸如商业著作权之类的信息的安全电子分发,(b)安全的电子信息使用监控和汇报,(c)涉及电子信息和/或设备使用以及其他电子信用和/或货币使用和管理功能的安全财务交易功能,(d)对于用户不希望公开的使用信息的隐私保护,以及(e)“活的”电子信息信息内容传播模型,这些模型灵活地支持(1)广泛的参与者;(2)用于信息内容、信息内容和/或设备的控制信息的处理、与信息内容和/或设备的使用相关的信息的汇报、以及付款的一条或多条路径(链),(3)对加入到信息内容控制信息中的条款和条件的演变的支持,包括对电子协商功能的应用,(4)支持多个信息内容的组合形成新的信息内容聚集,以及(5)多个并发模型。
安全处理部件本发明提供的VDE的一个重要组成部分是核心安全交易控制配置,此处称为SPU(或SPUs),SPU通常必须出现在每个用户计算机中、其他电子设备中、或网络中。SPU提供了一个可信的环境,用于生成解密密钥、加密和解密信息、管理电子设备之间(即VDE装置之间和/或在单个VDE装置中的多个VDE实例之间)对密钥和其他信息的安全传送、安全地积累和管理存放在安全的和/或非安全的非易失性存贮器中的审核跟踪、汇报、和预算信息、维护控制信息管理指令的安全数据库、以及为执行某些其他控制和管理功能提供安全环境。
如果要求为执行某些VDE活动提供高度可信的环境,那么有必要在VDE节点中使用一个硬件SPU(而不是软件仿真)。可以通过使用特定控制软件、诸如半导体或半导体芯片集之类的用于电子设备之中的或用来有效地连接到电子设备的一个或多个防破坏硬件模块(包括(举例来说)一个防破坏的硬件电子设备外围设备)而创建出上述可信环境。在本发明中,可以通过将硬件SPU的某些或所有硬件元件封装在防破坏的包装中,并且/或者通过使用其他防破坏技术(如微熔和/或细线检测技术)来增强硬件SPU的可信度。部分地通过使用防破坏半导体设计而实现的本发明的可信环境含有诸如微处理器之类的、安全地执行VDE进程的控制逻辑。
VDE节点的硬件SPU是VDE安全子系统的核心部件,它可以使用电子设备的某些或所有基本控制逻辑—例如一个微控制器、微计算机或其他CPU系统。该基本控制逻辑还可以用于诸如对电子设备的某些或所有非VDE功能进行控制之类的非VDE目的。当运行于硬件SPU模式时,所述基本控制逻辑必须具有足够的安全性,以便保护和隐藏重要的VDE进程。例如,一个硬件SPU可以使用运行于保护模式同时执行涉及VDE的活动的宿主电子设备微计算机,于是允许VDE进程的部分能够以特定的安全程度进行执行。上述的可选实施例与较佳实施例实施例相反,在较佳实施例中,可信环境是通过使用并非为所述基本控制逻辑的部分的一个或多个防破坏半导体的组合而被创建的。在这两个实施例中,某些控制信息(软件和参数数据)必须被安全地维护在SPU中,而其他控制信息则可以(例如以加密的和经过标记的形式)安全地存放在在外部,并且在需要的时候被装载进所述硬件SPU中。在许多情况下,特别是对于微计算机来说,针对执行所述VDE进程使用专用安全硬件而不是使用所述基本控制逻辑的较佳实施例方式可能是更为安全的和有效的。可信SPU硬件过程所需的安全性和防破坏级别取决于特殊市场或市场环境的商业要求,并且可以相差悬殊。
附图的简要说明通过参看下面结合附图对目前优选的示例性实施例的详述,可以更好地和更完全地理解本发明提供的上述或其他特性和优点,在这些附图中

图1示意了按照本发明的较佳示例/实施例提供的“虚拟分发环境”的示例;图1A是对图1所示的“信息服务中心”示例的更为详细的示意;图2示意了处理和控制链的一个示例;图2A示意了规则和控制信息如何在从图2的处理和控制链中的一个参与者到另一个参与者的过程中保持不变的一个例子;图3示意了可以提供的不同控制信息的示例;图4示意了规则和/或控制信息的某些不同类型的示例;图5A和5B示意了“对象”的一个示例;图6示意了安全处理部件(“SPU”)的一个示例;图7示意了电子设备的一个示例;图8是图7所示电子设备示例的一个更为详细的框图;图9是图6和图8所示安全处理部件(SPU)示例的详细示意图10示意了虚拟分发环境提供的“权利操作系统”(“ROS”)体系结构的一个示例;图11A-11C示意了应用和权利操作系统之间的功能关系的示例;图11D-11J示意了“部件”和“部件组”的示例;图12是图10所示的权利操作系统示例的更为详细的图解;图12A例示了如何创建“对象”;图13是用于图12所示的“受保护处理环境”的软件体系结构示例的详细框图;图14A-14C是由图13所示的受保护处理环境提供的SPU存贮器图的示例;图15例示了图13的通道服务管理器和加载模块执行管理器如何支持一个通道的;图15A示意了图15所示的通道头和通道详细记录的示例;图15B是图13中的受保护处理环境为创建一个通道可能执行的程序控制步骤的一个流程图;图16是一个安全数据库结构示例的框图;图17示意了逻辑对象结构的示例;图18示意了静止对象结构的示例;图19示意了移动对象结构的示例;图20示意了信息内容对象结构的示例;图21示意了管理对象结构的示例;图22示意了方法核心结构的示例;图23示意了加载模块结构的示例;图24示意了用户数据元素(UDE)和/或方法数据元素(MDE)结构的示例;图25A-25C示意了“映射计量器”的示例;图26示意了许可记录(PERC)结构的示例;图26A和26B一起示意了许可记录结构的更为详细的示例;图27示意了发送表结构的示例;图28示意了接收表结构的示例;图29示意了管理事件日志结构的示例;图30示意了图16安全数据库中所示的对象注册表、主题表、和用户权利表之间的相互关系以及对这些表的使用的示例;图31示意了图16所示对象注册表的更为详细的示例;图32示意了图16所示主题表的更为详细的示例;图33示意了图16所示用户权利表的更为详细的示例;图34示意了描述站点记录表和组记录表如何跟踪图16所示安全数据库的部分的一个特定示例;图34A示意了图34站点记录表结构的示例;图34B示意了图34组记录表结构的示例;图35示意了用于更新安全数据库的进程的示例;图36示意了描述新元素如何被插入到图16安全数据库中的一个示例;图37示意了描述如何访问安全数据库的元素的一个示例;图38示意了描述如何保护安全数据库元素的一个流程图示例;图39示意了描述如何备份安全数据库的一个流程图示例;图40示意了描述从备份中恢复安全数据库的一个流程图示例;图41A-41D示意了描述如何利用“交互方法”启动“处理和控制链”的一套示例;图42A-42D示意了“交互”预算方法的示例;图43A-43D示意了“交互”注册方法的示例;图44A-44C示意了“交互”审核方法的示例;图45-48示意了一起使用以便对信息内容或其他信息的发布进行控制的若干方法的示例;图49,49A-49F示意了OPEN方法的示例;图50,50A-50F示意了READ方法的示例;图51,51A-51F示意了WRI TE方法的示例;图52示意了CLOSE方法的示例;图53A-53B示意了EVENT方法的示例;图53C示意了BILLING方法的示例;图54示意了ACCESS方法的示例;图55A-55B示意了DECRYPT和ENCRYPT方法的示例;图56示意了CONTENT方法的示例;图57A和57B示意了EXTRACT和EMBED方法的示例;图58A示意了OBSCURE方法的示例;
图58B,58C示意了FINGERPRINT方法的示例;图59示意了DESTROY方法的示例;图60示意了PANIC方法的示例;图61示意了METER方法的示例;图62示意了密钥“卷积”进程的示例;图63示意了描述如何利用密钥卷积进程生成不同密钥以确定一个“真实”密钥的一个示例;图64和65示意了描述如何初始化受保护处理环境密钥的一个示例;图66和67示意了用来解密分别包含在静止对象和移动对象中的信息的示例过程;图68示意了描述如何初始化受保护处理环境的一个例子;图69示意了描述如何将固件下载到受保护处理环境中的一个例子;图70示意了由网络或其他通信手段连接在一起的多个VDE电子设备的示例;图71示意了便携式VDE电子设备的示例;图72A-72D示意了可以由用户通告和异常界面产生的“弹出式”显示的示例;图73示意了“智能对象”的示例;图74示意了使用“智能对象”的进程的示例;图75A-75D示意了用于电子协商的数据结构的示例;图75E-75F示意了涉及电子协定的结构的示例;图76A-76B示意了电子协商进程的示例;图77示意了处理和控制链的另一个示例;图78示意了VDE“存放库”的示例;图79-83示意了一个说明处理和控制链演变及变换VDE管理的信息内容和控制信息的例子;图84示意了涉及若干类别的VDE参与者的处理和控制链的另一个示例;图85示意了某个组织内部的分发和处理链的另一个示例;图86和86A示意了处理和控制链的另一个示例;以及图87示意了虚拟硅容器模型的示例。
发明详述图1-7和下面的论述对本发明所具特性的几个方面给出了一个概述,在概述之后对根据本发明的实施例进行了更为技术化的详细说明。
概述图1示意了根据本发明可以提供的一个“虚拟分发环境”(“VDE”)100。图1中,信息服务中心200与诸如电话线或有线电视电缆之类的通信设施202相连。电话线或有线电视电缆202可以是“电子信息高速公路”的一部分,它将电子信息在各地间传输。传输线202将信息服务中心200与其它地方的人员相连,举例来说,这些人员可以是消费者208、办公室210、影视制作室204以及出版社214。上述与信息服务中心200相连的每类人员可被称作一个“VDE参与者”,这是因为他们可以参与虚拟分发环境100中所发生的交易。
虚拟分发环境100可以支持几乎任何你能想到的交易类型。下面给出了虚拟分发环境100可以支持的许多交易类型中的几种●家庭银行事务和电子付款;●电子化法律合同;●信息内容分发,这些信息内容可以是电子出版物、影视、声音、图象或计算机程序;●私人信息(如病历和金融信息)的安全通信。
虚拟分发环境100之所以是“虚拟的”,是因为它不需要许多以前所必须的“实物”来保护权利、确保可靠和可预测的分发、以及确保对信息内容创建者和分发者的适当报酬。例如,以前,信息以磁带或磁盘为介质分发,而这类介质难以复制。以前,私人或秘密的信息内容是放在封口的信封或上锁的公文包中由信使传送从而完成分发。为了保证适当的报酬,用户只有付给卖主现金后才能得到商品和服务。尽管信息服务中心200可以通过传送诸如电子存贮介质之类的“实物”来进行信息的交付,虚拟分发环境100则实现了方便的、完全电子化的“处理和控制链”虚拟分发环境的灵活性支持交易活动信息服务中心200可灵活地支持多种不同的信息交易。不同的VDE参与者可以定义和(或)参与一项交易的不同部分。信息服务中心200可以协助发布交易信息,此外它本身即可以是交易参与者之一。
例如,图1右上角的影视制作室204可以创作影视节目。影视制作室204可以通过传输线202发送这些节目,或者使用其它发送途径,例如卫星链路205和CD ROM传送服务216。影视制作室204可以将节目直接发送给消费者206、208、210,或者可以将节目发送到信息服务中心200,信息服务中心200可以先把节目保存起来,以后再发送给消费者。每个消费者206、208、210都能够接收和使用由影视制作室204创作的节目,前提是影视制作室204或信息服务中心200已经为这些消费者安排了具有给予消费者这些节目的使用权的适当的“规则和控制”(控制信息)。
即使消费者得到影视节目的拷贝,如果她没有得到用以授权使用节目的“规则和控制”,她也无法观看或复制这些节目。用户只有经“规则和控制”允许才能使用这些节目。
例如,影视制作室204可能放送半小时体操录像节目,并希望尽可能多的观众将收看该节目。影视制作室204希望每次收看收费2.00美元。影视制作室204可以通过信息服务中心200使体操录像节目以“保护”形式提供给所有消费者206、208、210。影视制作室204也可以提供该录像的“规则和控制”。比方说,这些“规则和控制”可以限定(1)任何消费者,只要具有良好信用,也即在独立金融提供者212(如Mastercard或VISA)提供的信用帐户上存有至少2.00美元,可以收看该录像。
(2)虚拟分发环境100可以在消费者每次收看录像时进行“计量”,并经常地将使用情况报告给影视制作室204。
(3)金融提供者212可以从收看录像的每位消费者的信用卡帐户上以电子方式收取付款(2.00美元),并将这些付款传送给影视制作室204。
信息服务中心200甚至允许一个小的影视制作室向用户销售影视节目,并收取其劳动报酬。而且只要向影视制作室支付适当报酬,其它影视出版商可以使用该影视节目用来增值,或充当二次包装商或二次销售商。
图1还示意了出版社214。出版社214可以充当作者206的分发商。出版社214可以向诸如办公室210之类的消费者分发使用“信息内容”(如计算机软件、电子报纸、出版社214制作的录像节目、声音或任何其它形式的数据)的权利。可以用出版社216分发的“规则和控制”定义这些使用权利。出版社216可以将这些“规则和控制”与信息内容一同分发,但这不是必须的。由于信息内容只能由那些得到适当“规则和控制”的用户使用,信息内容和其相关“规则和控制”可能在不同时间、以不同方式、由不同的VDE参与者分发。VDE能够与“规则和控制”所适用的信息内容分开安全地分发和实施“规则和控制”,其优点是显著的。
由出版商14分发的使用权利可以允许办公室210制作并向其雇员分发该信息内容的拷贝。办公室210可以通过将“处理和控制链”延长至其雇员而充当二次销售商。办公室210可以增加或修改“规则和控制”(要和从出版社214收到的“规则和控制”相容)从而产生办公室内部的控制信息和机制。例如,办公室210可以为办公室中的每个用户和(或)小组设定一个最大使用预算,或者只允许指定的雇员和(或)小组访问特定的信息。
图1中给出了信息传送服务216,信息传送服务216将诸如“CDROM”光盘之类的电子存贮介质传送给消费者206。虽然电子存贮介质本身未经信息服务中心200通过传输线202传送,它们仍然是虚拟分发环境100的一部分。电子存贮介质可以用来分发信息内容、“规则和控制”或其它信息。
信息服务中心200内部组成举例图1中的信息服务中心200可以是许多参与者的集合,这些参与者可以是分发商、金融票据交换所或管理员。图1A示意了信息服务中心200内部组成的例子。每一个信息服务中心参与者200a-200g均可以是一个独立的组织/企业。可以有任意数量的参与者200a-200g。在本例中,电子“开关”200a将信息服务中心200内部各部分相互连接,并将内部各部分与外部参与者相连,或者也可以将各外部参与者相互连接。
信息服务中心200可以包含“交易处理器”200b,它根据来自参与者和(或)报告接收者200e的请求处理交易(如转移电子基金)。信息服务中心200还可以包含“使用情况分析员”200c,他对汇报上来的使用情况信息作出分析。“报告生成者”200d可以根据使用情况生成报告,并且可以将这些报告提供给外部参与者和(或)信息服务中心200内部的参与者。“报告接收者”200e可以从信息内容用户那里接收诸如使用情况之类的报告。“许可代理”200f可以根据用户的信用概况分放批准使用权和分发许可权的“规则和控制”。管理员200h可以发出信息以便使虚拟分发环境100正常工作。信息内容和消息存贮设备200g可以存放信息,以供信息服务中心200内部或外部的参与者使用。
使用处理和控制链分发信息内容的例子如上所述,虚拟分发环境100可以用来管理几乎任何类型的交易。可以用虚拟分发环境100管理的一种重要的交易类型是分发或传送“信息内容”或其它重要信息。图2更加抽象地示意了一个“模型”,该模型说明了如何利用图1的虚拟分发环境100为信息内容的分发提供“处理和控制链”。图2中的每个框对应于图1所示的一个或多个VDE参与者。
在图2中的例子中,VDE信息内容制作者102制作了“信息内容”。信息内容制作者102还可以为分发该信息内容规定“规则和控制”。这些与分发有关的“规则和控制”可以规定谁有权分发信息内容的使用权,以及可以允许多少用户使用该信息内容。
箭头104表示信息内容制作者102通过电子高速公路108(或其它途径,如由美国邮件之类的投递服务传送的光盘)向VDE权利分发者106(“分发者”)发送与信息内容相关的“规则和控制”。信息内容的分发途径可以与发送“规则和控制”所使用的相同或不同。分发者106生成其自己的、与信息内容的使用相关的“规则和控制”。与使用相关的“规则和控制”可以限定用户对信息内容能做什么,不能做什么,以及使用信息内容要花费多少。这些与使用相关的“规则和控制”必须与信息内容制作者102所规定的“规则和控制”相一致。
箭头110表示分发者106通过向诸如消费者等信息内容用户112发送信息内容的“规则和控制”来分发信息内容的使用权。信息内容用户112遵照与使用相关的“规则和控制”使用信息内容。
在图2的例子中,如箭头114所示,与信息内容使用相关的信息被汇报给了金融票据交换所116。根据此汇报,金融票据交换所116可以生成帐单,并通过“报告和付款”网络118将帐单发送给信息内容用户112。箭头120表示信息内容用户112向金融票据交换所116交纳信息内容的使用费用。金融票据交换所116可以根据收到的报告和付款,向分发者106提交报告和(或)付款。如箭头122所示,分发者106可以向信息内容制作者102提交报告和(或)付款。金融票据交换所116可以直接向制作者102提交报告和付款。汇报和付款可以不同地进行。例如,金融票据交换所116可以直接地或通过代理向每个VDE信息内容制作者102以及权利分发者106提交报告和(或)付款,并向信息内容用户112提交报告。
分发者106以及信息内容制作者102可以是同一个人,也可以是不同的人。例如,某个音乐表演小组可以通过制作和分发其本身的音乐录制品从而既充当信息内容制作者102也充当分发者106。另一个例子中,出版社可以作为分发者106而分发由作者型信息内容制作者102制作的作品的使用权。信息内容制作者102可以利用分发者106有效地管理信息内容分发的财务结果。
图2所示的金融票据交换所116也可以是“VDE管理员”。作为管理员的金融票据交换所116向VDE参与者发送“管理”信息。这些管理信息有助于维持虚拟分发环境100正常工作。“VDE管理员”和金融票据交换所的角色可以由不同的人员和公司来担任,并且担任该角色的人员和公司可以多于一个。
有关“规则和控制”的更多内容虚拟分发环境100禁止使用被保护信息,除非使用该信息是“规则和控制”(控制信息)所允许的。例如,图2所示的“规则和控制”可以给予特定的个人或信息内容用户组112对某个信息内容的使用权。这些“规则和控制”可以规定在信息内容的使用类型中哪些是允许的,哪些是禁止的,还可以规定如何交纳信息内容的使用费以及交纳多少。在另一个的例子里,“规则和控制”可以要求将信息内容使用信息的报告返回给分发者106和(或)信息内容制作者102。
“处理和控制链”中的每一个VDE参与者一般均要服从“规则和控制”。“规则和控制”定义了每个不同VDE参与者各自的权利和义务。“规则和控制”提供了在参与者之间建立相互依赖性和相关性的信息和机制。“规则和控制”具有灵活性,允许虚拟分发环境100支持绝大多数“传统”的商业交易,例如 “规则和控制”可以规定哪个(哪些)金融票据交换所116可以处理付款, “规则和控制”可以规定哪个(或那些)参与者可以接收何种使用报告,以及 “规则和控制”可以规定向一定的参与者公开一定的信息,而其它信息对他们保密。
“规则和控制”可以限制其自身是否可以被修改,如何修改。通常,由一个VDE参与者规定的“规则和控制”不能被另一个VDE参与者修改。例如,某个信息内容用户112通常不能修改由分发者106规定的、要求用户按某种价格支付信息内容使用费的“规则和控制”。“规则和控制”可以在通过“处理和控制链”时“保持不变”,而在从一个VDE参与者传递给下一个的过程中被“继承”下来。
根据需要,VDE参与者可以规定他们的“规则和控制”在其本身或其它“规则和控制”所指定的条件下可以被修改。例如,由信息内容制作者102规定的“规则和控制”可以允许参与者106“抬高”使用价格,正如零售店“抬高”批发商品的价格一样。图2A示意了一个例子,其中某些“规则和控制”在从信息内容制作者102传递到信息内容用户112的过程中保持不变;其它“规则和控制”被分发者106修改和删除;而另外一些“规则和控制”则被该分发者添加进来。
“规则和控制”可以对报告给其它VDE参与者的信息进行限制,从而保护信息内容用户的隐私权。例如,“规则和控制”可以规定以匿名方式报告信息内容的使用信息而不暴露信息内容用户的身份,或者根据要求,在允许的前提下只将某些信息暴露给某些参与者(例如从使用情况中得到的信息)。这种功能安全地控制了哪些信息可被暴露以及可向哪些VDE参与者暴露,从而保护了所有VDE参与者的隐私权。
规则和信息内容可以被分开传递如上所述,虚拟分发环境100将信息内容和相应“规则和控制”联系在一起,并禁止在没有一组相应“规则和控制”的前提下使用或访问信息内容。分发者106无需为控制信息内容的分发而传递信息内容。较佳实施例通过保护授以使用权的相应“规则和控制”使之避免被未经授权地分发和使用,从而可以安全地保护信息内容。
在某些例子中,“规则和控制”可以与它们所适用的信息内容一起传送。虚拟分发环境100也可以允许“规则和控制”与信息内容分开传送。由于任何人在未得到相应“规则和控制”的允许时都无法使用或访问被保护的信息内容,因而分发者106可以控制对已经(或将要)传送出去的信息内容的使用。“规则和控制”的传送途径和时间可以与信息内容的不同。信息内容制作者102可以通过电子高速公路108将信息内容传送给信息内容用户112,或者通过该“高速公路”将信息内容传送给所有人。信息内容可以在发出后即可用,也可以存贮起来留待以后使用或再使用。
虚拟分发环境100还允许分开传递付款和报告。例如,信息内容用户112可以具有一个虚拟“信用卡”,该卡可扩大信用(最大到一特定极限)用以支付任何信息内容的使用费。“信用交易”可以发生在用户所在地点,而无需任何“在线”连接或进一步授权。本发明有助于安全地保护虚拟“信用卡”,使之避免被未授权地使用。
规则和信息内容的定义过程图3示意的例子描述了基于“规则和控制”的一个全过程。它包含“事件”过程402,计量过程404、记帐过程406和预算过程408。并非所有图3所示的过程都要被每套“规则和控制”所采用。
“事件过程”402检测发生的事情(“事件”),并决定哪些事件需要其它“过程”作出反应。事件可以包括使用信息内容的请求,也可以产生一个使用许可。某些事件可能需要额外处理,而其它的则不必。事件是否需要额外处理取决于相应于信息内容的“规则和控制”。例如,没有许可的用户其请求将得不到满足(“禁止通行”)。另一个例子中,每个“翻看电子书籍新一页”的用户请求均可得到满足(“通行”),但可能无需对这些请求进行计量、记帐或预算。购买了小说的拷贝的用户可得到许可只要他愿意便可以任意多次地以打开和阅读该小说而不必进行额外计量、记帐或预算。在这个简单例子中,“事件过程”402可以在用户第一次要求打开被保护小说时(于是可以要求用户支付购买费用)对计量、记帐和(或)预算过程发出请求,而将后续的打开同一小说的请求视为“无意义事件”。对于其它信息内容(如检索电子电话簿)则可以要求用户在每次访问时都要交纳费用。
“计量”过程404对事件进行记录,并可将使用情况报告给分发者106和(或)其他适当的VDE参与者。图4示意的是过程404可以建立在大量不同因素的基础上,这些因素的例子包括(a)需收费的使用类型(b)收费所基于的计量单位(c)每个单位需收取的费用(d)何时产生报告(e)如何付款这些因素可以由控制计量过程的“规则和控制”进行规定。
记帐过程406决定对事件收取多少费用。它记录并报告付款信息。
预算过程408对信息内容的允许使用量进行限制。例如,预算过程408可以根据信用卡帐户上的可用金额来限制信息内容被访问或复制的次数,或者限制信息内容可被使用的页数或其它量度。预算过程408记录并报告有关上述限制的财经和其它交易信息。
一旦这些过程成功地执行完毕后,便可将信息内容交付给用户了。
容器和目标图5A示意的是在一个较佳实施例中,虚拟分发环境100如何将信息元素(信息内容)包装到“容器”302中,从而保证在没有其“规则和控制”的提供下无法访问这些信息。通常,容器302是电子的而不是物理的。在一个例子中,电子容器302包含了“数字”信息,该“数字”信息含有严格定义的数据结构。容器302及其信息内容可被称作“对象300”。
图5A中的例子示意了容器302内含和封装的项。然而,容器302也可以包含没有实际存贮在该容器内的项。例如,容器302可以引用保存在任何地方(如在远程的其它容器中)的可用的项。容器302可引用在不同时间上或只在有限的时间中可利用的项。某些内容可能太大以至无法保存在容器302中。可以在特定时间以录像的“实况传送”方式将项传递给用户。即使在这种情况下,本例中容器302即(通过引用方式)“包含”了这种“实况传送”。
容器302可以包含电子(如数字)形式的信息内容304。信息内容304可以是小说正文、图片、音乐表演或朗读之类的声音、电影或其它录像、计算机软件,或你能够想到的任何电子信息。其它类型的“对象”300(如“管理对象”)可以包含“管理”或其它类型信息,作为信息内容304的替代或补充。
在图5A的例子中,容器302也可以包含下列形式的“规则和控制”(a)“许可记录”808(b)“预算”308(c)“其它方法”1000图5B给出了有关许可记录808、预算308和其它方法1000的一些补充细节。“许可记录”808规定了与对象300有关的权利,如谁可以打开容器302,谁可以使用对象的内容,谁可以分发对象,以及应该使其它哪些控制机制生效。举例来说,许可记录808可以规定用户使用、分发和(或)管理容器302及其内容的权利。许可记录808还可以规定由预算308和“其它方法”1000所申请的要求。许可记录808还可以含有有关安全的信息,如加密和解密密钥。
图5B所示的“预算”308是一种特殊类型的“方法”1000,它可以规定的内容包括信息内容304的使用限制,以及使用费用的付款方式。预算308可以规定整个信息内容304可被使用和(或)复制的量有多少。方法310可以禁止使用超过一个特定预算所规定的量。
“其它方法”1000定义了“规则和控制”所采用的基本操作。该“方法”1000可以包含如何计量使用情况,信息内容304和其它信息是否或如何被加密和解密,以及其它与管理和控制信息内容304有关的过程。例如,方法1000可以记录任何打开了电子容器302的人的身份,并可根据“计量”来控制如何收取信息内容的使用费用。方法1000可以适用于一个或多个不同的信息内容304及其相关容器302,也可适用于信息内容304的所有或指定部分。
安全处理单元(SPU)每个“VDE参与者”可以带有一个“电子设备”,该设备可以是或者包含一台计算机。该设备可以通过电子高速公路108进行通讯。图6示意了本例中每个VDE参与者所使用“电子设备”中的安全处理单元(“SPU”)500部分。SPU 500在安全处理环境503中处理信息,并安全地保存重要信息。SPU 500可以由运行于宿主电子设备中的软件进行仿真。
SPU 500封装于“防破坏安全屏障”502中,并受其保护。安全屏障502将安全环境503与外界分隔开来。它防止安全环境503中的信息和过程在非安全条件下被观察、干扰和离开。屏障502还控制外部对SPU 500内部安全资源、过程和信息的访问。在一个例子中,防破坏安全屏障502的组成包括诸如“加密”之类的安全特性和用来检测破坏,以及(或者)在检测到破坏时销毁安全环境503中敏感信息的硬件设施。
本例中的SPU 500是一个集成电路(“IC”)芯片504,它包括“硬件”506和“固件”508。SPU 500通过“设备链”510与其余电子设备相连。本例中的SPU“固件”508是“软件”,例如“嵌入”到芯片504中的“计算机程序”。固件508使硬件506能够工作。硬件506最好含有一个处理器以执行由固件508指定的指令。“硬件”506还包含长有效期和短有效期存贮器,以安全地保存信息,使之避免破坏。SPU 500还可以含有一个受保护的时钟/日历用来对事件计时。本例中的SPU硬件506可以包含经过专门设计的专用电子线路用以快速有效的执行特定过程(如“加密”和“解密”)。
SPU 500的特定应用环境将决定SPU 500应具备处理能力的多寡。本例中的SPU硬件506所提供的处理功能至少足够支持图3所示过程的安全部分。在某些环境中,SPU 500的功能可能需要加强,从而可以执行所有的电子设备处理,而且可以集成到通用处理器内部。在另外的环境中,SPU 500可以与一个通用处理器协同工作,因而只需有足够的能力来完成安全过程即可。
VDE电子设备和权利操作系统图7示意了包含SPU 500的电子设备600的一个例子。电子设备600实际上可以是任何电气或电子设备,例如●计算机●电视“机顶置”控制盒●寻呼机●电话机●声音系统●影像再生系统●视频游戏机●“智能”信用卡本例中的电子设备600可以含有键盘612、声音识别器613和显示器614。用户可以通过键盘612和(或)声音识别器613输入命令,并在显示器614上观看信息。设备600可以通过电子设备中通常使用的任何连接/设备与外界通信。图下部示意了连接/设备的一些例子,它们是“调制解调器”618或其它电信链路;CD ROM盘620或其它存贮介质或设备;打印机622;广播接收装置624;文件扫描器626;以及将设备与网络相连的“电缆”628。
虚拟分发环境100提供了“权利操作系统”602,“权利操作系统”602通过控制设备600和SPU 500两者的硬件资源,对两者进行管理。操作系统620也可支持至少一个“应用”608。“应用”608通常是一个专用于设备600所在环境的硬件和(或)软件。例如,如果设备600是一台个人计算机,那么“应用”608可以是用户装载的一个程序,如一个字处理器、一个通信系统或一个录音系统。如果设备600是一个电视控制器盒,那么应用608可以是某种硬件或软件,它允许用户视频点播,或进行其它操作,如快进或快倒。在本例中,操作系统602提供了一个标准的、严格定义的、通用的界面,以支持多种不同的“应用”608。本例中的操作系统602提供了“权利和检查操作系统功能”604和“其它操作系统功能”606。“权利和检查操作系统功能”604安全地处理与虚拟分发环境100相关的任务。SPU500提供或支持“权利和检查操作系统功能”604中的许多安全功能。“其它操作系统功能”606处理一般的设备功能。可以从头设计整个操作系统602,使之包含“权利和检查操作系统功能”604和“其它操作系统功能”606,或者将“权利和检查操作系统功能”加入到现有的、提供“其它操作系统功能”的操作系统之上。
本例中的“权利操作系统”602可以支持多种不同的设备600。例如,它可以支持大型计算机,“小型计算机”和诸如个人计算机和便携式计算机之类的微型计算机。它也可以支持置于电视机上方的控制盒、小型便携寻呼机、桌上型收音机、立体声系统、电话机、电话交换机或其它任何电子设备。这种既能支持大型设备又能支持小型设备的能力称为“具有可伸缩性”。一个“具有可伸缩性”的操作系统602意味着存在一个标准界面,该界面能够跨越多种不同的设备并完成多种不同的任务。
在本例中,“权利操作系统功能”604是“基于服务的”。例如,“权利操作系统功能”604处理由应用608发来的概要请求,而不是要求该应用不断地发出更详细的“子请求”,或者使之陷入涉及满足一个概要请求所需进行的底层繁琐处理之中。例如,应用608可以简单地请求阅读指定的信息;然后“权利操作系统功能”604可以判断所需信息是否为受VDE保护的信息内容,如果是的话,执行使该信息可用的过程。这种特性称为“透明性”。“透明性”使应用608可以更加容易地执行任务。“权利操作系统功能”604支持的应用可以丝毫“不了解”虚拟分发环境100。知道虚拟分发环境100的应用608可以更深入地利用虚拟分发环境100。
在本例中,“权利操作系统功能”604是“事件驱动”的。“权利操作系统功能”604直接响应设备600中发生的事件,而不是反复检查电子设备600的状态,以确定是否发生了一个事件。
在本例中,由“权利操作系统功能”604完成的某些服务可以根据递送给操作系统602的附加“组件”进行扩展。“权利操作系统功能”604可以收集和使用由不同参与者在不同时间传送来的“组件”。“组件”有助于使操作系统602“具有可伸缩性”。某些组件可以根据设备是小型的还是大型的(如多用户环境)来改变它们在其上的服务工作方式。另外一些组件的设计则可以支持特定应用或某类应用(如某种计量和某种预算)。
电子设备600较佳实施例中的电子设备600可以是任意具有如下特征的电子装置它含有一个或多个微处理器和(或)微控制器,以及(或者)其它完成逻辑和(或)数学计算的设备。这些设备包括计算机、计算机终端、计算机用设备控制器、数字显示设备、电视机、视像和声/像投影系统、广播和(或)有线传送用频道选择器以及(或者)解码器、遥控设备、录像机或录音机、包括光盘播放器、视盘播放器和磁带播放器在内的媒体播放器、声频和(或)视频放大器、虚拟现实机、电子游戏机、多媒体机、收音机、电话、可视电话、传真机、机器人、包括机器工具等在内的数值控制机器、以及其它具有如下特征的(包括那些尚未面世的)设备它含有一个或多个微计算机和(或)微控制器以及(或者)其它CPU。
图8示意了电子设备600的一个例子。该电子设备600含有一个系统总线653。在本例中,总线653连接了一个或多个传统通用中央处理单元(CPU)654。总线653将CPU 654与RAM 656,ROM 658和I/O控制器660相连。系统总线653也可以连接一个或多个SPU 500。系统总线653可以允许SPU 500与CPU 654通信,也可以允许CPU和SPU两者(通过公用地址和数据线)与RAM 656,ROM 658和I/O控制器660通信。电源659可以向SPU 500、CPU 654和所示的其它系统组件提供电源。
在图中的例子中,I/O控制器660与二级存贮设备652、键盘/显示器612,614、通信控制器666和备份存贮设备668相连。备份存贮设备668可以将信息存贮在如磁带670、软盘或可拆卸存储卡等之类的大容量介质上。通信控制器666可以使得电子设备600通过网络672或其它电信链路与其它电子设备通信。对于不同的电子设备600,即使它们采用了不同的CPU或不同的ROS 602实例,而只要通常使用兼容的通信协议和(或)安全措施,它们便可以相互协作。在本例中,I/O控制器660允许CPU 654和SPU 500读取和写入二级存贮器652、键盘/显示器612,614、通信控制器666和备份存贮设备668。
二级存贮器652可以包含一个或多个相同且不安全的二级存贮设备(例如磁盘和光盘驱动器),以供电子设备600完成一般的二级存贮功能之用。在某些实现中,部分或全部二级存贮器652可以包含一个二级存贮设备,该设备被物理地封装在一个安全包装中。然而,由于在许多实现中使用物理措施来保障二级存贮器652的安全并非现实和廉价,因此先将信息加密后再保存到二级存贮器652中,从而使二级存贮器652能够安全地保存信息。如果在存贮前先对信息进行加密,那么对二级存贮器652或其内容的物理存取将不会轻而易举地泄露或破坏该信息。
本例中的二级存贮器652保存了CPU 654和(或)SPU 500所使用的代码和数据,这些代码和数据用来控制电子设备600的整体运行。例如,从图8中可以看到,图7所示的“权利操作系统”(“ROS”)602(包括ROS的部分604以及部分606,其中部分604提供VDE功能,而部分606则提供其它OS功能)可以存贮在二级存贮器652中。二级存贮器652也可以保存一个或多个VDE对象300。从图8中还可以看到,图7所示的安全文件610可以采用“安全数据库”或管理文件系统610的形式存贮在二级存贮器652中。该安全数据库610可以保存和组织由ROS 602使用的、用来执行VDE功能604的信息。这样,二级存贮器652便可以保存用来完成VDE或其它功能604、606的可执行代码,以及与这些功能有关的安全文件610(还包括VDE对象300)。二级存贮器652还可以保存“其它信息”673,例如其它操作系统功能606进行任务管理所使用的信息、非VDE文件等等。在二级存贮器652中所指出的部分元素也可以存贮在ROM 658中,只要这些元素没有修改要求(除了在更换ROM 658的时候)。ROS 602的某些部分尤其以保存在ROM 658中为好(例如,在加电时用来为电子设备600创建操作环境的“引导”程序、POST程序等等)。
从图8可以看到,二级存贮器652也可以用来存贮图7所示的用户应用608所含代码(“应用程序”)。如图8所示,可以有两种通用类型的应用程序608“VDE感知”应用608a,及非VDE感知应用608b。VDE感知应用608a可以在意识到VDE存在的情况下至少对某一部分进行特殊设计,从而能够访问和充分利用VDE功能604的详尽功能。由于ROS 602具有“透明”特性,非VDE感知应用608b(如那些不是专门为VDE 100所设计的应用)也可以访问和充分利用VDE功能604的功能。
安全处理单元500较佳实施例中的每个VDE节点或其它电子设备600都可以含有一个或多个SPU 500。SPU 500可以用来完成VDE 100要求的所有安全处理。例如,SPU 500可用来对VDE保护的目标300进行解密(或解除安全)。它还可以用来管理加密的和(或)安全化的通信(如通过对信息进行验证和(或)纠错有效性检查)。SPU 500还可以完成安全数据管理过程,包括管理VDE对象300的使用、核算以及适时的付款情况(通过使用预付款、信用、银行帐户上的实时电子借方记帐以及(或者)VDE节点代用货币存款帐户等方式)进行控制。SPU 500可以执行与VDE对象300有关的其它交易。
SPU物理封装和安全屏障502如图6所示,在较佳实施例中,SPU 500可以由单个集成电路“芯片”505实现以提供一个安全的处理环境,在该环境中可以对机密的和(或)具有商业价值的信息进行安全地处理、加密和(或)解密。IC芯片505可以包含一个拇指指甲大小的小型半导体“圆片”。该半导体圆片可含有半导体和金属导线通路。这些通路定义了SPU 500的电路,从而也就定义了其功能。某些通路电连通着芯片505的外部“管脚”504。
如图6和图9所示,SPU 500可被一个防破坏硬件安全屏障502所包围。安全屏障502的某些部分由塑料或其它包装材料构成,SPU圆片被置于其中。由于SPU 500内部进行的处理及其存贮的信息不易被外界访问,因而这些处理和信息相对比较安全,可避免受到未授权的访问和干扰。所有信号都需经过由BIU 530提供的受控安全通道才可通过屏障502,该通道限制了外界对SPU 500内部组件的访问。受控安全通道可阻挡外界企图访问SPU 500内部的安全信息和资源。
可以除去IC芯片上的塑料包装,从而可访问到“圆片”。也可以对“圆片”本身进行分析和“反向工程”(如,使用各种逻辑分析仪和微探针在电路工作的同时收集和分析圆片上的信号,使用酸洗或其它技术除去半导体层从而暴露其它层,通过电子显微镜对圆片进行观察和拍照,等等)。虽然没有一种系统或电路能够绝对避免上述侵害,SPU屏障502可以包含附加的硬件保护措施使侵害的成功变得极其昂贵和费时。例如,可使用离子植入和(或)其它制造技术,使实际分辨SPU圆片导线通路变得异常困难,可以制造SPU内部电路使之在暴露于空气和(或)光线中的时候能够“自销毁”。SPU 500可以在那种掉电后内容即消失的内存中保存机密信息。可以在SPU 500中安置某种电路以检测微探针探测或者其它破坏,并在检测到破坏时自销毁(或破坏SPU的其它部分)。这些或其它基于硬件的物理安全措施是防破坏硬件安全屏障502重要技术因素。
为了进一步提高安全屏障502的安全性,可以将SPU 500纳入或包含在一个或多个更进一步的物理封装中,这些封装包括环氧树脂或其它封装化合物;更进一步的模块封装,包含具有附加的、检测到干扰时即激活的自销毁、自禁用或其它功能;更进一步的模块,该模块提供附加的安全保护措施,例如在询问口令或其它验证信息后才工作;以及诸如此类的其它装置。另外,可以进一步向底板添加金属层,以使得酸洗、微探针探测之类的操作更加困难。可以安置将内存清零的电路,以作为自销毁处理的一部分;塑料包装本身可经过设计用来抵御化学以及物理上的侵害;而SPU的内存可带有专用的寻址和刷新电路,该电路将数位的位置进行重新组合,这将使采用电手段判断内存单元的值变得相当复杂。这些或其它措施可以对保证屏障502的安全性发挥作用。
在某些电子设备600中,可以将SPU 500与设备微控制器或同等物,或者设备I/O或通信微控制器一起集成到同一芯片(或芯片集)505中。例如,在一个较佳实施例中,可以将SPU 500与一个或多个另外的CPU(如电子设备的CPU 654)一起集成到单个元件或封装中。另外的CPU 654可以是任意中央控制逻辑配置,如微处理器、其它微控制器和(或)阵列或其它并行处理器。这种集成配置可以使总体成本较低、总体体积较小,以及SPU 500和CPU 654潜在的交互作用速度加快。假如一个集成的SPU/CPU元件成为某个已广泛销售的微处理器产品线中的标准部件,那么集成化还可以拓宽销售范围。将SPU500合并到电子设备600的主CPU 654中(或者合并到其它设备,或设备外围微计算机或其它微控制器中)可以从实质上降低VDE 100的实现开销。集成化所需考虑的的问题可以包括实现成本、生产成本、所需安全级别、以及密集性值。
SPU 500也可以与除CPU之外的其它元件一起集成。例如,对于视频或多媒体应用,(根据总体设计)将SPU 500集成到视频控制器芯片或芯片集之中可以带来性能和(或)安全性的提高。SPU 500也可以直接集成进网络通信芯片或芯片集等之中。将SPU 500集成到调制解调器芯片或芯片集之中也可以为高速通信应用带来一定的性能提高。这将使得在诸如可独立操作的传真机之类的通信设备中安装SPU 500的过程得到简化。SPU 500也可以集成到其它外围设备中,例如CD-ROM设备、机顶置有线设备、游戏设备、以及其它多种电子设备,这些设备使用分布式信息、允许对分布式信息进行访问、完成与分布式信息相关的交易、或者消耗分布式信息。
SPU的内部结构图9是一个SPU 500实例内部结构的详细示意图。本例中的SPU500含有单个微处理器520和容量有限的存贮器,该存贮器配置为ROM532和RAM 534。更详细地说,该SPU 500实例含有微处理器520、加密/解密机522、DMA控制器526、实时时钟528、总线接口单元(“BIU”)530、只读存贮器(ROM)532、随机存取存贮器(RAM)534、和存贮器管理单元(“MMU”)540。DMA控制器526和MMU 540虽是可选的,但如果没有的话,SPU 500的性能将受影响。SPU 500还可以包含可选的模式匹配机524、可选的随机数发生器542、可选的数学运算加速电路544,以及可选的压缩/解压缩电路546。公用地址/数据总线536可以在微处理器520和(或)DMA控制器526的控制之下在上述各种部件之间传送信息。利用附加的或补充的专用通路538可将微处理器520与其它部件相连(如通过连线538a与加密/解密机522相连,通过连线538b与实时时钟528相连,通过连线538c与总线接口单元530相连,通过连线538d与DMA控制器526相连,通过连线538e与存贮器管理单元(MMU)540相连)。
下面将对上述每个SPU部件进行详细说明。
微处理器520微处理器520是SPU 500的大脑。在本例中,它执行由(至少暂时地)保存在ROM 532和(或)RAM 534中的代码所指定的一系列步骤。在较佳实施例中,微处理器520含有一个专用中央处理装置(例如,RISC和(或)CISC处理器单元,微控制器,以及(或者)其它中央处理装置,或者在许多应用中不太想要的过程特有的专用控制逻辑),用以执行保存在ROM 532和(或)其它存贮器中的指令。微处理器520可以是安全SPU 500中的电路设计的独立元件或者独立封装。
在较佳实施例中,微处理器520通常处理电子设备600的操作中与安全性最敏感的方面。例如,微处理器520可以管理VDE加密、解密、特定信息内容和(或)设备使用的控制信息,跟踪VDE中安全化信息内容的使用,以及完成其它与VDE使用控制相关的功能。
在每个SPU 500和(或)电子设备的二级存贮器652中,所保存的内容可以是下述各部分的一个实例,即ROS 620软件;应用程序608;对象300-它含有由VDE控制的所有物的内容及相关信息;以及管理数据库610-它保存与对象和VDE控制信息有关的信息。ROS602含有供SPU微处理器520执行的软件,用来使电子设备600部分地控制对VDE相关对象300的使用。这些SPU程序含有用来完成基本控制功能的“加载模块”,这在后面将要解释到。上述各种程序以及相关数据将主要由微处理器520执行和处理。
实时时钟(RTC)528在较佳实施例中,SPU 500含有一个实时时钟电路(“RTC”)528,它为SPU提供可靠的、防破坏的时基。在较佳实施例中RTC 528记录日期时间(如月份、日期和年份),因而可以含有日历和时钟的组合。对于实现基于时间的使用计量措施、“带有有效期的解密密钥”以及其它基于时间的SPU功能来说,可靠的时基是重要的。
RTC 528必须上电才能工作。最佳情况下,RTC 528的电源可含有一个装载于SPU 500或其它安全封装内部的小型电池。不过,RTC528使用的电源也可以是SPU 500外部的电源,如外部电池。这种外部电源可以向RTC 528提供相对不易中断的电源,也可以使SPU 500中本来易丢失信息的至少部分RAM 534保持信息不丢。
在一种实现中,电子设备电源659也用来为SPU 500供电。将任意一种外部电源作为RTC 528的唯一电源来使用,将显著地降低基于时间的安全技术的有用性,除非SPU 500能够至少识别出外部电源供电的任何中断(或任何部件中断),记录该中断,并做出可能的适当响应,如禁止SPU 500执行某种或所有VDE过程的能力。为识别电源中断,可以使用一个在电源失效时将被触发的电路。该电源失效感测电路可为另外的电路进行供电,而另外的这些电路又含有用以记录一个或多个电源失效事件的相关逻辑。电容放电电路可以提供运行该逻辑所必需的短暂电源。附加或者作为一种替代,如果可以获得宿主电子设备600的时钟输出,那么SPU 500可以经常地将RTC 528的输出与宿主电子设备600的时钟输出进行比较。如果发现误差,SPU 500可以做出适当响应,包括记录该误差,以及(或者)禁止SPU 500在至少某些情况下执行至少某些过程部分。
如果电源失效和(或)RTC 528误差、以及(或者)其它事件表明了出现破坏的可能性,SPU 500可自动地将其所保存的一部分或多部分敏感信息破坏或使之不经过特权的干预便无法访问,此处的敏感信息的例子包括有关执行的信息和(或)有关加密密钥的信息。为再次提供SPU操作,作为一种恰当的作法,上述被破坏的信息将必须由VDE金融票据交换所、管理员和(或)分发者来复原。通过远程下载更新的和(或)复原的数据和(或)代码可以实现上述过程。如果出现上述的过程和/或信息禁用和/或破坏事件,为重新初始化RTC528,电子设备600可请求与管理员、金融票据交换所、和(或)分发者进行一次安全的VDE通信。在此之前,SPU 500的某些或所有安全过程不得运行。
最好提供一种机制以便对RTC 528进行设置和(或)同步。在较佳实施例中,当VDE电子设备600与另外的VDE设备之间发生通信时,在授权为“高级的”、有控制权一方的控制下,可将RTC 528的输出与受控RTC 528的输出时间比较。一旦出现误差将采取适当措施,包括重新设置参加通信的“低级的”受控一方的RTC 528。
SPU加密/解密机522在较佳实施例中,SPU加密/解密机522提供专用硬件(如硬件状态机),以迅速有效地对数据进行加密和(或)解密。在某些实现中,加密/解密功能可以由微处理器520在软件控制下来承担,但是设置专用加密/解密硬件机522通常提高性能。如果需要的话,微处理器520可以包含处理器电路和专用加密/解密逻辑,它们被集成在同一电路布局中,从而比如可以最佳地共享一个或多个电路元件。
通常最好采用具有计算高效性但又高度安全的“批量”加密/解密技术来保护大多数由SPU 500处理的数据和对象。最好使用极为安全的加密/解密技术作为一种方式,对正在建立通信信道的电子设备600的身份进行验证,并保障被传送的许可、方法和管理信息的安全性。在较佳实施例中,加密/解密机522含有对称密钥加密/解密电路(如DES,Skipjack/Clipper,IDEA,RC-2,RC-4等等)和反对称(非对称)或公开密钥(“PK”)加密/解密电路。公开/私有密钥加密/解密电路主要作为一种方式来保障SPU 500与VDE管理员以及其它处于VDE安全子系统间的电子设备600之间通信的安全性。对称密钥加密/解密电路可用来“批量”地加密和解密保存于SPU 500所在电子设备600的二级存贮器662中的大多数数据。该对称密钥加密/解密电路也可用来加密/解密保存于VDE对象300中的信息内容。
DES或公用/私有密钥方法可用于所有加密功能。在另一个实施例中,除DES和公用/私有密钥方法之外的其它加密和解密方法可用于各种有关加密的功能。例如,可用其它类型如使用相同密钥进行加密和解密的对称加密/解密技术来代替DES加密和解密。较佳实施例可以支持多种加密/解密技术,这些技术使用了加密/解密机522中的多个专用电路,并且(或者)使用了SPU 500中的处理结构。
模式匹配机524可选的模式匹配机524可提供专用硬件用以完成模式匹配功能。SPU 500可以执行的一种功能是对VDE对象和其它项进行有效性检查/验证。有效性检查/验证经常涉及对长数据串进行比较,以判断它们是否按照预定方式匹配。另外,某些使用形式(如被访问元素的逻辑和/或物理(连续)相关性)可能需要搜索长数据串,以寻找某些位模式或其它与有意义的模式相关的量度。尽管可以由SPU微处理器520在软件的控制下进行模式匹配,而提供专用硬件模式匹配机524将加速模式匹配的过程。
压缩/解压缩机546SPU 500中可含有可选的压缩/解压缩机546用以压缩和(或)解压缩VDE目标300中保存或发布的信息内容。压缩/解压缩机546可以采用硬件电路来实现一种或多种压缩算法,从而提高压缩/解压缩操作的性能。如果不用硬件电路,则要使用运行于微处理器520上或SPU 500之外的软件来进行压缩/解压缩操作。在视像或声音之类的数据发布时,解压缩有重大意义,这是因为这类数据在发布之前通常是被压缩的,而其解压速度又是很重要的。在某些情况下,将供使用监视目的所用的信息(如记录分隔符或其它分界符)由一个压缩层加以隐藏,该压缩层在SPU内部检测和使用上述信息之前必须被除去。
随机数发生器542可选的随机数发生器542可提供专用硬件电路,用以产生随机数(例如从量子噪声之类的、本来就无法预知的物理过程中产生随机数)。这种随机数在创建加密密钥或唯一的标识符时、或在伪随机数序列生成过程的初始化时特别有用。随机数发生器542可以产生合适长度的数值,包括每次提供小至一个位的数值。通过将随机数发生器542产生的数值串接在一起便可以构造任意大小的随机数。用随机数发生器542产生随机数密钥和种子,再通过加密/解密机522或SPU500中的加密算法对之进行循环加密,就可以产生具有强的保密特性的伪随机数序列。这种序列可以用于私有头信息,以阻止通过加密分析手段来推断密钥。
运算加速器544SPU 500中可设有一个可选的、采用硬件电路形式的运算加速器544,它可以快速地完成数学运算,例如涉及大数的乘法和指数运算。可由(举例来说)微处理器520或加密/解密机522发出执行这些运算的请求,以协助完成进行特定非对称加密/解密运算所需的计算。该运算加速器是此项技术的熟练人员所熟知的。再某些实现中,可以省去单独的运算加速器544,而所有必需的运算均可以在软件的控制下由微处理器520完成。
DMA控制器526DMA控制器526控制信息在地址/数据总线536上传输,而无须要求微处理器520去处理每个单独的数据传输。典型地,微处理器520可向DMA控制器526写入目标和目的地地址以及需传输的字节个数,然后DMA控制器526可自动地在SPU 500的部件之间(如从ROM 532到RAM 534、在加密/解密机522和RAM 534之间、在总线接口部件530和RAM 534之间,等等)传输一块数据。DMA控制器526可以含有多个通道以同时处理多个传输。在某些实现中,可省去单独的DMA控制器526,而所有必需的数据传输均可在软件的控制下由微处理器520完成。
总线接口部件(BIU)530总线接口部件(BIU)530使信息穿过安全屏障502在SPU 500和外界之间进行传送。图9所示的BIU 530加上适当的驱动软件可构成图6所示的“设备链”510。在较佳实施例中,总线接口部件530可能根据USART或PCI总线接口进行设计。在本例中,BIU 530将SPU 500与图8所示的电子设备系统总线653相连。经过设计,BIU 530禁止对SPU 500内部部件及其内容的未授权访问。其实现方法是BIU 530只允许与SPU 500相关联的信号被运行于微处理器520中的控制程序所处理,而不支持对SPU 500内部部件的直接访问。
内存管理部件540内存管理部件(MMU)540如果存在的话,则对内存管理和虚拟内存管理功能提供硬件支持。它也可以通过对安全执行空间实行强制性硬件隔离来提高安全性(例如,禁止不甚可信的任务修改较为可信的任务)。下面将结合讨论SPU 500所支持的安全处理环境(“SPE”)503的体系结构,对MMU 540进行更详细地说明。
MMU 540也可以在硬件层次提供与内存管理有关的支持功能,如地址映射。
SPU存贮器体系结构在较佳实施例中,SPU 500使用3种通用类型的存贮器(1)内部ROM 532;(2)内部RAM 534;及(3)外部存贮器(通常为宿主电子设备提供的RAM和/或盘)。
SPU 500内部的ROM 532和RAM 534提供了安全的操作环境和执行空间。由于成本限制、芯片制造规模、复杂度以及其它限制,在SPU 500中不可能提供充足的存贮器以存贮SPU需以安全方式进行处理的所有信息。由于SPU 500内部可以包含的ROM 532和RAM 534具有容量的实际限制,SPU 500可以将信息保存在外部存贮器中,并根据需要将该信息移入或移出其安全的内部存贮器空间。在此情况下,通常必须将SPU执行的安全处理步骤分成小块的、经过安全封装了的单元,而这些单元可能被“页调入”或“页调出”有限可用的内部存贮器空间。SPU 500外部的存贮器可能没有安全性。由于外部存贮器可能没有安全性,SPU500可以首先对代码和其它信息进行加密并加入密封码,然后再保存到外部存贮器中。类似地,SPU 500通常必须首先对取自外部存贮器中的代码和其它信息进行解密,然后再根据该信息进行处理(如执行)。在较佳实施例中,针对SPU 500中可能的存贮器限制,有两种通用的解决途径。在第一种情况下,小块的、经过安全封装了的单元代表安全数据库610中所包含的信息。在第二种情况下,上述单元可以代表被保护的(如被加密的)虚拟内存页。尽管虚拟内存页可以对应于保存于安全数据库610中的信息单元,而在本例的SPU存贮器体系结构中并不要求如此。
下面将对三种SPU存贮器资源进行详细说明。
SPU内部ROMSPU 500的只读存贮器(ROM)532或具有类似功能的设备为特定程序以及其它信息提供了非易失性的内部安全存贮。例如,ROM 532可能保存“核心”程序,如SPU控制固件508,或者在需要的情况下保存加密密钥信息和某些重要的“加载模块”。“核心”程序、加载模块信息和加密密钥信息启动对SPU 500某些基本功能的控制。可以在ROM 532中装入一些至少部分依赖于设备配置的组成部分(如POST、存贮器分配模块,以及调度模块),以及另外一些经确定为特定安装和应用所需要的加载模块。
在较佳实施例中,ROM 532可以含有带掩模的ROM 532a和EEPROM以及(或者)等价“快速”存贮器532b。EEPROM或快速存贮器532b用来保存需要更新和/或初始化的项,如特定加密密钥。提供EEPROM和/或快速存贮器532b的另一个好处是可以根据特定位置的典型使用情况,对始终保存在SPU 500中的任何加载模块和库函数进行优化。尽管这些项也可以保存在NVRAM 534b中,但EEPROM和/或快速存贮器532b可能更廉价一些。
带掩模的ROM 532a可能比快速存贮器和/或EEPROM 532b更为廉价,它可用来存贮SPU软件/固件的永久性部分。这些永久性部分可以包含硬件部件如RTC 528、加密/解密机522、中断处理器、密钥发生器等的接口代码。操作系统的某些部分、库调用、库函数以及由SPU 500提供的许多核心服务也可以存贮在掩模ROM 532a中。另外,某些较为常用的执行代码也比较适合存入掩模ROM 532a中。那些需要被更新或者在下电后应该从SPU 500中消失的信息不应存贮在掩模ROM 532a中。
在某些情况下,RAM 534a和/或NVRAM 534b(NVRAM 534b可以是(举例来说)被一直供电的传统RAM)可以至少部分地充当ROM 532的角色。
SPU内部RAMSPU 500的通用RAM 534与其它部件一道为安全过程提供了安全的执行空间。在较佳实施例中,RAM 534由不同类型的RAM组成,例如,这些RAM可以是高速RAM 534a和NVRAM(“非易失性”的RAM)534b的组合。RAM 534a可以是易失性的,而NVRAM则最好由电池供电,或采用其它方法使之具有“非易失性”(即在下电后其内容不会丢失)。
高速RAM 534a存贮需要执行的活跃代码及相关数据结构。
NVRAM 534b最好保存在SPU 500与VDE管理员要进行通信的一个初始化过程中预加载的某些密钥和概要数值,它也可以存贮与SPU500操作有关的、可变或正在变化的信息。基于安全的原因,某些特别敏感的信息(例如某些加载模块,以及某些加密密钥的相关信息如内部产生的私有密钥)需要经常装入SPU 500或由SPU 500内部产生,但是,一旦被装入或内部产生,这些信息绝不能离开SPU。在较佳实施例中,SPU 500非易失性随机访问存贮器(NVRAM)534b可以用来安全地保存这种特别敏感的信息。SPU 500也用NVRAM 534b来保存那些可能经常改变的、但在下电或电源故障时最好又不应丢失的数据。
NVRAM最好是一个快速存贮器阵列,但也可以是电可擦除可编程只读存贮器(EEPROM)、静态RAM(SRAM)、磁泡存贮器、三维全息或其它光电存贮器或诸如此类的存贮器、或任何其它可写的(如可随机访问的)、具有非易失性的存贮器,这些存贮器还应具有足够高的速度,并且价格低廉。
SPU外部存贮器SPU 500可以将某些信息存贮在SPU外部的存贮设备中。电子设备600的存贮器如果可用的话也可以用来支持SPU 500软件中任何设备外部部分。允许SPU 500使用外部存贮器可能带来某些好处。作为一个例子,通过使用宿主电子设备600中的非易失性读/写存贮器(如RAM 656和/或ROM 658的非易失性部分),可以减少SPU 500内部存贮器的容量。
这种外部存贮器可用来存贮SPU程序、数据和/或其它信息。例如,一个VDE控制程序可以至少部分地被加载到存贮器中,并在执行前首先传送到SPU 500中进行解密。该控制程序可以被重新加密并传回外部存贮器进行保存,留待SPU 500以后执行。SPU 500可以将“核心”程序和/或部分或全部非核心的“加载模块”保存在其外部存贮器中。由于安全数据库610可以相对较大,SPU 500可以将部分或全部安全数据库保存在外部存贮器中,并且在需要的时候将某些部分调进SPU 500。
如上所述,SPU 500的外部存贮器可以不具安全性。因此,当需要确保安全性的时候,SPU 500必须一方面首先对安全性信息进行加密,然后再将该信息写入外部存贮器中;另一方面首先对取自外部存贮器的安全性信息进行解密,然后再使用该信息。由于该加密层依赖于SPU 500中的安全过程和信息(如加密算法和密钥),所以它有效地“延伸”了SPU安全屏障502,从而保护了SPU 500存贮在其外部存贮器中的信息。
SPU 500可以使用各种不同的外部存贮器。例如,外部存贮器可以包括诸如磁盘之类的电子设备二级存贮器652、外部EEPROM或快速存贮器658、以及/或者外部RAM 656。外部RAM 656可以包括外部的非易失性(如持续供电的)RAM和/或高速缓存RAM。
使用SPU 500本地的外部RAM可以显著地提高对SPU外部所保存信息的访问速度。例如,外部RAM可以用来●首先缓存内存图象页和数据结构,再将之保存到快速存贮器或外部硬盘(假设在发生严重电源或系统故障时需要向快速存贮器或外部硬盘传送数据)。
●为VDE对象300输出的数据提供加密和解密缓冲区。
●高速缓存目前正在被使用的“交换块”和VDE数据结构,作为向SPU 500提供安全虚拟内存环境的一个方面。
●高速缓存其它信息,例如用来减少SPU访问二级存贮器652的频率,以及/或者为其它目的。
双端口外部RAM在提高SPU 500性能方面尤其有效,原因在于它可以减少SPU总线接口部件530和SPU微处理器520的数据移动开销。
使用SPU 500本地的外部快速存贮器可以显著地提高对实际上所有数据结构的访问速度。由于大多数可用的快速存贮设备写入寿命有限,快速存贮器要考虑在快速存贮器的使用寿命期中需要进行多少次写入操作。因而,不主张用快速存贮器来保存那些需要频繁写入的临时内容。如果外部RAM具有非易失性,那么向快速存贮器(或硬盘)传输数据可以是不必要的。
SPU 500使用的外部存贮器可以含有两种类型 SPU 500专有的外部存贮器 与电子设备600共享的存贮器对于某些VDE实现,与CPU 654或电子设备600的其它部件共享存贮器(如电子设备的RAM 656、ROM 658和/或二级存贮器652)可以是一种最廉价的方法用来保存VDE安全数据库管理文件610和需要保存在SPU 500外部的信息。用以完成通用文件存贮功能的宿主系统硬盘二级存贮器652也可用来存贮VDE管理文件610。可以使SPU 500对外部存贮器具有排它的访问权(例如,通过BIU 530提供的局部总线高速连接),还可以同时提供专有的和共享的外部存贮器。
上面对电子设备600一个例子的硬件配置进行了说明。下面将描述由较佳实施例提供的电子设备600软件体系结构的一个例子,包括较佳实施例“权利操作系统”(“ROS”)602的结构和操作。
权利操作系统602较佳实施例中的权利操作系统(“ROS”)602是一个紧凑的、安全的、事件驱动的、基于服务的、面向“部件”的、分布多处理操作系统环境,它将VDE信息安全控制信息、部件和协议以传统的操作系统概念集成在一起。象传统操作系统一样,较佳实施例提供的ROS602是一段程序,它管理计算机系统中的硬件资源,并将管理功能延伸至输入和/或输出设备,包括通信设备。同时,也类似于传统操作系统,较佳实施例ROS 602提供了一致的一组基本功能和抽象层,用来隐藏具体硬件实现之间的差别和有关实现的许多复杂细节。除了许多或大多数操作系统所具有的这些特征之外,ROS 602提供了其它操作系统所不具备的安全VDE交易管理和其它先进特性。下面是一个非穷举的列表,它列举了较佳实施例ROS 602提供的部分先进特性。
标准接口提供了一致的基本功能集 简化了编程 相同的程序可以运行于许多不同的平台上事件驱动 便于功能分解 可扩展 支持状态转换和/或面向进程的事件 简化了任务管理 简化了进程间通信基于服务 支持简化的和透明的可伸缩性 简化了多处理器支持 隐藏了机器相关性 便于网络管理和支持基于部件的体系结构 基于可独立传送的安全部件的处理 处理控制的部件模型支持不同的串行步骤,这些步骤可根据需求重新配置 可以增加、删除和修改部件(需经许可) 针对预定义的和用户定义的应用事件的全面控制信息 事件可由独立的可执行程序进行单独控制安全 安全的通信 安全的控制功能 安全的虚拟内存管理 信息控制结构受到保护而不致泄露 数据元素受到确认、关联和访问控制 部件被单独加密和确认 部件是紧密相关的,从而防止对元素的未授权使用 控制结构和安全化的可执行程序在使用之前首先经过确认,从而防止了破坏 在I/O层集成了安全措施 提供了发布时的快速信息解密 支持安全的商业交易网络 灵活的密钥管理特性可伸缩性 可高度伸缩于多种不同平台之间 支持多处理器环境中的并行处理 支持多个相互协作的处理器 可以支持任意数量的主机或安全处理器 控制结构和核心可以被很容易地移植到各种主平台以及目标平台中的不同处理器上,而无须进行重新编译。
支持远程处理 可使用远程过程调用以实现内部的OS通信高度的可集成性 可以作为操作系统的附加层与宿主平台高度地集成在一起 允许使用位于传统OS平台之上的一个OS层,对安全化的部件和信息进行非安全的存贮 可以与宿主操作系统无缝地集成在一起,从而为交易管理和信息内容访问提供了一个公共使用模式 集成可以采取多种形式用于桌上型计算机的操作系统层(如DOS、Windows、Macintosh);用于网络服务的设备驱动程序和操作系统接口(如Unix和Netware);以及用于“低端”顶置设备的专用部件驱动程序,以上是其中的一些例子
可以与传统的和实时的操作系统集成在一起分布性 提供控制信息的分布和互换控制信息和机制 支持受控进程在分布式异步配置中任何VDE节点上的有条件执行 分布式环境中的受控权利分派 支持处理和控制链 为分布式的、偶尔连接但其它情况下异步的连网数据库提供了管理环境 实时及与时间无关的数据管理 支持“代理”进程透明性 可以无缝地集成进现有的操作系统中 可以支持不是专门为使用它编写的应用网络友好性 内部OS结构可以使用RPC分配处理 可将子网作为单个节点或独立地进行无缝操作有关操作系统的一般背景知识“操作系统”提供了管理计算机系统资源的控制机制,从而允许程序员更加方便地创建计算机系统的应用。为此,操作系统提供了通用的功能,并确保在(可能(举例来说)由不同厂家生产的)不同计算机硬件和体系结构之间的兼容性。操作系统还使得计算机“外部设备”生产厂家更加方便地向计算机生产厂家和用户提供兼容设备。
计算机系统通常由若干不同硬件部件组成。这些硬件部件包括如一个中央处理单元(CPU),用来执行指令;一个主存贮器单元阵列(如“RAM”或“ROM”),用来保存供执行的指令,以及被这些指令所作用的、或充当这些指令的参数的数据;以及一个或多个二级存贮设备(如硬盘驱动器、软盘驱动器、CD-ROM驱动器、磁带机、读卡机或“快速”存贮器),该设备被组织成反映命名的元素(“文件系统”),用来存贮主存贮器单元的映像。
大多数计算机系统还含有输入/输出设备,如键盘、鼠标、显示系统、打印机、扫描仪和通信设备。
为了使CPU的执行功能与可用的RAM、ROM和二级存贮设备组织在一起,也为了向程序员提供通用功能,通常与其它部件一起包含一段称为“操作系统”的软件。通常如此设计该段软件,即使之在计算机系统上电并且硬件诊断完成之后开始执行。此后,所有对CPU、主存贮器和二级存贮设备的使用通常都由该“操作系统”软件进行管理。大多数计算机操作系统还通常含有将其管理功能延伸至I/O及其它外部设备的机制,包括与这些设备相关的通用功能。
通过利用操作系统对CPU、存贮器和外部设备进行管理,可提供出一致的一套基本功能和隐藏硬件细节的抽象层,从而允许程序员更加方便地创建复杂的应用。另外,用操作系统管理计算机的硬件资源,可以使得不同生产厂家之间在设计上和设备要求上的许多差别得到隐藏。此外,可以更加方便地与其它具有相同操作系统的计算机用户共享应用程序,而这只需在支持不同厂家的基本硬件和外部设备方面投入较少的工作。
ROS 602是一个具有显著优点的操作系统ROS 602是一个“操作系统”。它管理电子设备600的资源,并提供通用的功能集合供程序员为电子设备编写应用608。较佳实施例中的ROS 602对SPU 500中的硬件(如CPU、存贮器、安全RTC、以及加密/解密机)进行管理。ROS也对电子设备600的一个或多个通用处理器中的硬件(如CPU和存贮器)进行管理。ROS 602还管理其它电子设备硬件资源,如与电子设备相连的外部设备。例如(参看图7),ROS 602可以管理键盘612、显示器614、调制解调器618、盘驱动器620、打印机622、扫描仪624。ROS 602还可以管理安全数据库610以及用来存贮安全数据库610的存贮设备(如“二级存贮器”652)。ROS 602支持多处理器。较佳实施例中的ROS 602支持任意数量的本地和/或远程处理器。至少可以支持两种类型的处理器一个或多个电子设备处理器654,和/或一个或多个SPU 500。宿主处理器CPU 654可以提供存贮、数据库和通信服务。SPU 500可以提供加密和安全化进程执行服务。由ROS 602所支持的多种控制和执行结构可以要求对控制信息要在可控制的执行空间中进行处理。这种可控制的执行空间可以由SPU 500提供。附加的宿主和/或SPU处理器可以提高处理效率和/或能力。ROS 602可以(如通过网络或其它通信链路)访问、协调和/或管理电子设备600的其它远程处理器,以提供更多的处理器资源和/或能力。
ROS 602是基于服务的。在较佳实施例中,通过使用“远程过程调用”(“RPC”)内部处理请求结构,把利用宿主处理器654和/或安全处理器(SPU 500)所提供的各项ROS服务链接在一起。相互协作的处理器可使用RPC机制请求进程间服务,RPC机制具有最小的时间依赖性,并且可以分布于网络中众多主机的相互协作处理器之中。ROS 602提供的多处理器体系结构易于扩展,以便支持任意数量的主机和安全处理器。这种可扩展性带来了高度的可伸缩性。ROS服务还允许在不同设备上实现不同的功能。例如,对于那种只服务一个用户的、使用水平较低的小型设备来说,在其上实现数据库服务所采用的技术可以大大不同于那种可服务大量用户的、使用水平较高的大型设备。这是可伸缩性的另一个方面。
ROS 602提供了分布式处理环境。例如,它可以如满足用户请求所要求的使信息和控制结构自动、安全地来往于各个地点之间。基于ROS 602的分布式处理特征,VDE节点之间的通信可以包括如上所述的进程间服务请求。ROS 602支持任意VDE节点中受控处理器的有条件和/或状态依赖执行。进程的执行位置以及所使用的控制信息或可位于本地,或可远程访问,或者由进程携带以支持在远程系统中执行。
ROS 602提供控制信息的分布,包括如控制结构的分布,用以支持在远程环境中运行“代理”(agent)。因而,ROS 602提供了一套机制,可以将执行和/或信息控制作为对于“代理”进程出现的请求的一部分进行传递。
如果需要,ROS 602可以独立地通过低带宽连接通路将控制信息分布,这种低带宽连接通路可以是也可以不是“实时”的连接。较佳实施例中的ROS 602具有“网络友好性”,可以用网络协议的任意层来实现。电子邮件和直接连接是其中的一些例子,它们大约实现在ISO模型的“第5层”。
ROS 602的分布进程(以及对分发信息的相关审核)是一个受控事件,它本身使用上述控制结构。这种“映像式”分布处理机制允许ROS 602以受控的方式安全地分发权利和许可,并且有效地限制信息内容的使用特征。这种分布式环境中的受控权利分派以及ROS 602为支持该方式所采用的安全处理技术具有显著的优点。
ROS 602中的某些控制机制是“交互”的。交互控制机制将一个或多个控制部件放置于一个或多个地点,而该控制部件以受控方式与同一或不同地点处的一个或多个部件交互作用。例如,位于用户一方的、与对象信息内容相关的使用控制可以在分发者一方含有交互控制,该分发者一方管理上述使用控制的分布、使用控制的审核以及与使用控制相关的用户请求处理逻辑。位于用户一方的使用控制(除了对使用的一方面或多方面进行控制以外)可以为分发者做审核准备,并对有关使用控制的请求进行格式化,供分发者处理。位于交互控制任何一端的进程都可以进一步被其它进程所控制(例如,分发者可以被使用控制机制所产生的数量的预算所限制)。交互控制机制可以延伸及许多地点和许多层次(例如从制作者到分发者,到用户),并且可考虑到任何关系(例如,制作者/分发者、分发者/用户、用户/用户、用户/制作者、用户/制作者/分发者,等等)。在VDE 100中,交互控制机制在表示分布式环境中的关系和协定方面有许多用途。
ROS 602是可伸缩的。ROS 602控制结构和核心中的许多部分不必重新编译即可方便地移植到各种宿主平台上。如果得到授权允许这种活动的话,任何控制结构都可以被分布(或重新分布)。ROS 602中可执行程序的引用可在目标平台内移植。ROS 602的不同实例使用不同的资源来执行该引用。例如,ROS 602的一个实例可以使用SPU500来执行某个任务,同时ROS 602的另一个实例可以使用宿主处理环境来执行相同的任务,该宿主处理环境运行于受保护的存贮器中并用软件来仿真SPU。ROS 602的控制信息同样是可移植的。在许多情况下事件过程结构都可以在机器和主机平台间进行传送,这与在单个计算机内部各相互协作的处理器之间进行传送一样容易。具有不同使用级别和/或ROS 602功能可用资源的设备可以采用非常不同的方式来实现上述功能。如果没有足够资源的话,某些服务就可以被整个省去。如上所述,ROS 602“知道”哪些服务是可获得的,以及在任何给定事件的前提下如何进行进一步的处理。在资源缺乏或不足的情况下,并非所有的事件都是可处理的。
ROS 602是基于部件的。较佳实施例ROS 602所提供的许多功能都可能是基于“部件”的,“部件”可以(例如,在适当的安全条件和授权前提下)被安全独立地传送,可被替换,并且可被修改。另外,“部件”本身可以由可独立传送的元素构成。ROS 602可以(使用较佳实施例提供的、名为“通道”的结构)在执行时刻将这些元素装配到一起。例如,由SPU 500执行的“加载模块”可以引用一个或多个“方法核心”、方法参数以及其它相关的数据结构,而ROS 602可以将上述这些元素收集和组装在一起以便执行诸如计帐或计量之类的任务。不同的用户可以拥有不同的元素组合,并且在适当的授权之下,某些元素可以由用户来定制。这个特征可以提高灵活性,允许重用元素,并且还具有其它优点。
ROS 602具有高度安全性。ROS 602提供了一套机制,用来保护信息控制结构,使之不被最终用户和管道主机所泄露。利用牢靠的加密和验证机制,ROS 602可以对信息、VDE控制结构和可执行控制程序进行保护。这些加密和验证机制经过设计可充分抵御未探测到的破坏。ROS 602对存贮在二级存贮设备652中的信息进行加密以防止破坏。ROS 602还分别加密和验证其各种部件。ROS 602将控制和数据结构部件关联在一起,以防止对元素进行未授权的使用。这些特征允许ROS 602独立地分布元素,而且还允许将VDE功能604与非安全的“其它”OS功能606集成在一起。
较佳实施例所提供的ROS 602将诸如访问控制表(ACL)结构之类的传统功能延伸到了用户和进程定义的事件,包括状态转移。ROS602可以向预定义和用户定义的应用事件提供全面的控制信息。这些控制机制包括“通行/禁行”许可,还包括可选的、特定于事件的可执行程序,这种执行程序使得对事件进行的处理和/或控制具有完善的灵活性。这样的结构允许事件被单独控制,于是(举例来说)可使用独立的可执行程序进行计量和预算处理。例如,ROS 602扩展了ACL结构以控制任意粒度的信息。传统的操作系统在文件或资源级提供了静态的“通行-禁行”控制机制;ROS 602采用通用方法并使用灵活的控制结构,将上述控制概念从最大的元素扩展到最小的子元素。ROS602可以(举例来说)控制从文档文件中打印出单一的一段。
较佳实施例提供的ROS 602允许对管理各个部件的控制信息进行安全的修改和更新。控制信息可以以诸如方法选项之类的模板格式提供给最终用户。最终用户于是可以定制由分发者或信息内容制作者提供的准则中所使用的实际控制信息。对现有控制结构的修改或更新最好是一个可控制的事件,该事件受到审核和控制信息的控制。
较佳实施例中的ROS 602在使用控制结构和安全化可执行程序之前首先对之进行验证。该验证能够确保控制结构和可执行程序未受最终用户的破坏。该验证还使得ROS 602能够安全地实现包括文件段及其它操作系统结构在内的部件。较佳实施例中的ROS 602将安全性措施集成在操作系统的I/O层(位于访问层之下),并提供了发布时刻的“快速”信息解密。这些特性允许使用位于传统操作系统平台之上的一个OS层对ROS 602的安全化部件和信息进行非安全化的存贮。
ROS 602可以作为操作系统的附加层与宿主平台高度地集成在一起。于是,ROS 602的创建可以通过对现有操作系统进行“添加”来实现。它包括将VDE“添加部分”在设备驱动程序和网络接口层上挂接到宿主操作系统。作为另一种选择,ROS 602可以含有一个全新的操作系统,该操作系统将VDE功能和其它操作系统功能集成在一起。
实际上,至少有3种通用的方法,用来在可能基于现有操作系统前提下将VDE功能集成进一个新操作系统中从而创建权利操作系统602。这3种方法是(1)根据VDE交易管理的要求重新设计操作系统;(2)将VDE API功能调用编译进一个现有的操作系统中;(3)将一个VDE解释程序集成进一个现有的操作系统中。
在设计新操作系统时,或计划对现有操作系统进行重大升级时,第一种方法可能是最有效的适用方法。可以将VDE功能所提供的交易管理和安全要求添加到用来设计新操作系统的设计要求列表中,这样就能够以一种优化的有效方式将“传统”操作系统功能与VDE功能集成在一起。例如,负责设计操作系统新版本或实例的工程师可以将VDE计量/交易管理的要求补充到其它一些他们用以形成设计方法、规范和实际实现的要求(如果有的话)之中。这种方法通过在贯穿整个系统设计和实现过程中穿插进计量/交易管理功能,可以实现VDE功能的无缝集成。
第二种方法将涉及到使用现有的API(应用程序员接口)集合,并且把对操作系统代码的调用纳入VDE功能调用中。这类似于将目前的Windows操作系统与DOS集成的方法,其中,DOS充当Windows操作系统的启动点和重要核心支撑部分两重角色。该方法还可提供高度无缝的集成(尽管“无缝”的程度不象第一种方法那样强)。该方法的优点在于有可能花费不大就可以将计量/交易管理功能纳入操作系统的一个新版本或实例中(通过使用API所含有的现有代码,以及借鉴API功能方法的设计思想来影响纳入了计量/交易管理功能的元素的设计)。
第三中方法区别于前两种的地方在于它没有将有关计量/交易管理和数据安全性的VDE功能直接纳入操作系统代码中,而是向操作系统添加了通用化的新功能,用来执行计量/交易管理功能。在这种情况下,含有计量/交易管理功能的解释程序将采用“独立”的方式与其它操作系统代码集成在一起。该解释程序可以根据脚本或其它输入来决定应该执行哪些计量/交易管理功能,以及按什么顺序或在什么情况或条件下执行。
除了将VDE功能集成进电子设备操作系统中之外,也可以在传统操作系统之上运行一个应用,使该应用提供某些可用的VDE功能。
ROS软件体系结构图10是中的框图示意了较佳实施例提供的权利操作系统(“ROS”)602的软件组织/体系结构示例。在该例中,ROS 602含有操作系统(“OS”)“核心”679、用户应用程序接口(“API”)682、“重定向器”684、“截获器”692、用户通告/异常接口686、以及文件系统687。本例中的ROS 602还含有一个或多个宿主事件处理环境(“HPE”)655和/或一个或多个安全事件处理环境(“SPE”)503(这些环境可通称为“受保护的处理环境”650)。
HPE 655和SPE 503是自包含的计算和处理环境,它们可以含有其本身的操作系统核心688,操作系统核心688包含代码和数据处理资源。给定的电子设备600可以含有任意数量的SPU 503和/或HPE655。HPE 655和SPE 503可以安全的方式处理数据,并为ROS 602提供安全处理支持。例如,它们都可以根据一个或多个VDE部件组690来执行安全处理,而且它们都可以向OS核心680提供安全处理服务。
在较佳实施例中,SPE 503是一个安全的处理环境,其中至少一部分是由SPU 500所提供。因而,SPU 500提供了环绕SPE 503的硬件的防破坏屏障502。较佳实施例中的SPE 503最好具有如下特征 小且紧凑 可被加载进具有资源限制的环境,例如最小配置的SPU 500 可被动态地更新 可被授权用户扩展 可集成进对象或过程环境中 具有安全性在较佳实施例中,HPE 655是一个安全的处理环境,它由除SPU之外的其它处理器所支持,如电子设备CPU 654通用微处理器,或者其它处理系统或设备。在较佳实施例中,由于HPE 655可以用软件来提供本来由SPU硬件和/或固件所提供的部分或全部处理资源,在这个意义上,可以认为HPE 655是用来“仿真”SPU 500的。在本发明的一个较佳实施例中,HPE 655是全功能的,并且与SPE 503完全兼容—这就是说,HPE 655可以处理SPE 503可处理的每个或所有服务调用,这样,从外界接口的角度来看,SPE和HPE是“插接兼容的”(plug compatible)(例外情况是,HPE所提供的安全性可能不及SPE)。
HPE 655可以有两种类型安全的和非安全的。例如,为使电子设备600能够使用快速通用处理器或计算机的全部资源从而有效地运行非敏感性的VDE任务,可希望提供非安全的HPE 655版本。这种非安全HPE 655版本的运行可以受ROS 602的一个实例的监管,而该ROS 602同时还含有一个SPE 503。采用这种方式,ROS 602可以在SPE 503中运行所有安全进程,而只在HPE 655中运行那些无需安全性的进程,但这些进程同时又可能要求使用(或满足高效运行而需要)由支持HPE 655的通用计算机或处理器所提供的、可能较多的资源。非安全的和安全的HPE 655可以与安全的SPE 503一起运行。
(如图10所示)HPE 655可以带有基于软件的防破坏屏障674以增加其安全性。这种基于软件的防破坏屏障674可以由运行于通用CPU 654中的软件来创建。这种“安全”的HPE 655可以被ROS 602用来执行某些进程,这些进程虽然仍需要安全性,但可以不需要SPU500所提供的那种高安全性。在含有SPE 503和HPE 655两者的体系结构中,这个特性将特别有益。SPE 503可以用来执行所有真正的安全处理,而一个或多个HPE 655可以用来执行另外的安全(虽然可能不如SPE安全)处理,HPE 655此处使用了电子设备600中可用的宿主处理器或其它通用资源。这种安全的HPE 655可以提供任何服务。在较佳实施例中,“通道处理”的某些特征看起来比较适合随时从SPE 503转移到HPE 655中。HPE 655提供的基于软件的防破坏屏障674可以有下面的实现方法,如使用时间检查和/或代码修改等手段,使得利用调试程序对含有核心688a部分和/或部件组690部分的代码进行单步跟踪变得相当困难;对存贮设备(如硬盘、存贮器卡等)使用缺陷图而形成内部测试值,从而阻止从HPE 655往其它电子设备600移动或复制内容;使用在控制流中含有伪跳转及其它复杂流程控制的核心代码,从而在一定程度上伪装内部处理过程,使之避免被反汇编或受到其它试图揭示其处理细节的行为的影响;使用“自生成”代码(例如,基于余弦变换的输出),这样一来,不再把详细的和/或完整的指令序列明确地保存在存贮设备和/或活动存贮器中,而是在需要的时候生成这些指令;使用那种基于运算参数而“打乱”了存贮单元的代码,而在这些存贮单元中放有数据,这样就使得对这些数据进行操纵变得相当困难;使用电子设备600所提供的任何软件和/或硬件内存管理资源,以“保护”HPE 655中的操作使之免受其它进程、操作等的破坏。尽管这种基于软件的防破坏屏障674能够提供相当程度的安全性,它通常不如由SPU 500(至少部分)提供的基于硬件的防破坏屏障502安全。在诸如SPU 500所提供的那些硬件安全性措施的帮助下,安全性可以得到更有效地加强,基于此原因(以及其它因素,如SPU 500的专用电路所带来的性能提高),对于许多或大多数安全性较高的应用来说,最好至少提供一个SPE 503。然而,对于那些可允许较低安全性和/或无力支付SPU 500的应用来说,可以需要省去SPE 503,而所有的安全处理都要由执行于通用CPU 654中的一个或多个HPE 655来代替执行。如果未向特定VDE进程提供足够的安全性,那么可能就不允许这些进程在上述那种降低了安全性的电子设备中执行。
只有那些完全在SPE 503(有时候也包括HPE 655)中执行的进程才可能被看作是真正安全的。用来存贮和/或处理安全进程所使用的代码和/或数据的存贮器以及SPE 503和HPE 655的其它外部资源只能以加密的形式接收和处理这些信息,除非SPE 503/HPE 655可以保护安全进程的代码和/或数据以避免遭受非安全进程的破坏。
较佳实施例中的OS“核心”679含有核心680、RPC管理器732和“对象开关”734。API 682、HPE 655以及SPE 503可以通过OS“核心”679相互传送“事件”消息。它们也可以使消息不经过OS“核心”679而直接进行相互间的消息通信。
核心680可以管理电子设备600的硬件。例如,它可以提供适当的驱动程序和硬件管理器以便与输入/输出和/或外部设备进行交互作用。外部设备的例子有键盘612、显示器614、其它设备如“鼠标”指示设备和语音识别器613、调制解调器618、打印机622和网络适配器672。核心680也可以负责初始加载ROS 602的其余部分,并且可以在各种ROS任务执行时对之(及其底层相关硬件资源)进行管理。OS核心680也可管理和访问安全数据库610和文件系统687。OS核心680也可为应用608a(1)、608a(2)等以及其它应用提供执行时的服务。
RPC管理器732为核心680完成信息路由选择和/或资源管理/集成。例如,它接收来自API 682、HPE 655和SPE 503的“调用”,或选择合适的路由将“调用”送至API 682、HPE 655和SPE 503。
对象开关734可管理VDE对象300的创建、拆除及其它操纵。
较佳实施例中的用户通告/异常接口686(可以将之看作是API682的一部分或与该API相结合的另一个应用)在显示器614上提供了“弹出式”窗口/显示。这可以使ROS 602直接与用户通信,而不必使需要传递的信息经过应用608。对于非“VDE感知型”的应用,用户通告/异常接口686可以提供ROS 602与用户之间的通信。较佳实施例中API 682提供给应用608一个标准化的、具有文档说明的软件接口。API 682可以部分地把应用608产生的操作系统“调用”翻译成指定了“事件”的远程过程调用(“RPC”)。RPC管理器732可以将这些RPC按照合适的路由发送至核心680或其它地方(如HPE655和/或SPE 503,或远程电子设备600、处理器或VDE参与者)以供处理。API 682也可以对RPC请求进行服务,其方法是将这些RPC请求发送到经过注册负责接收和处理指定请求的应用608。
API 682提供了一个“应用编程接口”,该接口最好是标准化的且具有文档说明。它提供了一组简明的函数调用,应用程序可使用这组函数调用访问由ROS 602提供的服务。在至少一个优选例中,API682将包括两部分VDE功能604的应用程序接口,以及其它OS功能606的应用程序接口。这些部分可以融合在同一软件中,也可以是二个或多个分离的软件部分(举例而言)。
某些应用,例如图11所示的应用608a(1),可以属于“VDE感知型”的,于是它们可以直接访问API 682中的那两部分。图11A对此进行了示例。“VDE感知型”应用可以(举例来说)包含对ROS 602的明确调用,以便请求创建新的VDE对象300、对VDE对象的使用进行计量、以VDE保护形式存贮信息等等。因此,“VDE感知型”应用可以起动(在某些例子中还可以增强和/或扩展)由ROS 602提供的VDE功能。另外,“VDE感知型”应用可以在用户和ROS 602之间提供更直接的接口(如抑制或消除由用户通告/异常接口产生的“弹出式”显示接口,取而代之的是一个集成了应用和ROS消息的、更加无缝的接口)。
其它应用,例如图11B所示应用608b,可以属于非“VDE感知型”的,因而它可能不“知道”如何直接访问由API 682所提供的VDE功能604接口。为此,ROS 602可以含有一个“重定向器”684,而“重定向器”684可以允许“非VDE感知型”应用608b访问VDE对象300和函数604。较佳实施例中的重定向器684将发向“其它OS功能”606的OS调用翻译成发向“VDE函数”604的调用。举一个简单的例子,重定向器684可以截获发自应用608的“打开文件”调用,然后判断要打开的文件是否位于VDE容器300之中,如果是的话,产生适当的VDE函数调用,将之发向文件系统687,以便打开VDE容器(也可能产生事件,将之发向HPE 655和/或SPE 503,以确定可能存贮在VDE对象300中的文件的名字,建立与VDE对象300相关的控制结构,执行对VDE对象300的注册等等)。本例中如果没有重定向器684,那么“非VDE感知型”应用如608b就只能访问提供其它OS函数606接口的API 682中的一部分,因而无法访问任何VDE函数。
重定向器684的这种“翻译”特性提供了“透明性”。它允许将VDE函数以“透明”的方式提供给应用608(b),而使该应用无需陷入有关生成一个或多个VDE函数604调用的复杂性细节之中。ROS 602这一方面的“透明”特性至少有两个重要优点
(a)它允许不是专门为VDE函数604编写的应用(“非VDE感知型应用”)仍然可以访问关键的VDE函数;以及(b)它减少了应用和ROS 602之间接口的复杂性。
由于第二个优点(减少复杂性)使应用编程人员能更容易地编写应用,甚至可将“VDE感知型”应用608a(2)设计成使得某些对VDE函数604的调用在“其它OS函数”调用层上被请求,然后由重定向器684将之“翻译”成VDE函数调用(在这个意义上,可将重定向器684看作是API 682的一部分)。图11c对此进行了示例。向VDE函数604发出的其它调用则可以被直接发送,而无需经过重定向器684翻译。
回到图10,ROS 602还可以含有一个“截获器”692,“截获器”692传送和/或接收一个或多个实时数据输入694(例如可以通过有线电视电缆628产生这些数据输入),并适当地按照正确路由发送一个或多个这种数据输入,与此同时对电子设备600所发送和/或接收的实时数据进行“翻译”,从而为这类信息提供了类似由重定向器684所产生的那种“透明性”(并且/或者它可以产生一个或多个实时数据输入)。安全的ROS部件和部件组如上所述,较佳实施例中的ROS 602具有基于部件的体系结构。ROS VDE函数604可以基于分段的、可独立加载的可执行“部件组”690。这些部件组690可以被独立安全地传递。较佳实施例中的部件组690含有本身可独立传递的代码和数据元素。因此,较佳实施例中的每个部件组690都包含可独立安全传递的元素,可以使用VDE安全通信技术在VDE安全子系统之间传递这些元素。
这些部件组690是ROS 602所提供的基本功能单元。部件组690经过执行可以完成操作系统或应用的任务。因而,可以将某些部件组690看作是ROS操作系统602的一部分,而将其它部件组690看作是操作系统支持之下运行的“应用”。象所有集成了“应用”和“操作系统”的那些系统一样,上述整个系统的各部分之间的界限可以是非常模糊的。例如,可以将某些通用的“应用”功能(如用来确定信息内容容器结构和/或其它属性的功能)集成到操作系统中去。另外,某些“操作系统”功能(如任务管理或存贮器分配)可由应用进行修改和/或替换。较佳实施例ROS 602中的一个常用思路就是部件组690提供用户执行其预定任务所需的功能,这些功能中的一部分可以“类似应用”,一部分可以“类似操作系统”。
部件组690最好设计成是容易分离的并且可以单独加载。ROS 602首先将各个元素装配成可执行的部件组690,然后再(例如在诸如SPE503和/或HPE 655之类的安全操作环境中)加载和执行该部件组。ROS提供了元素标识和引用机制,该机制包含了必要的信息,用以在执行前或执行中自动以安全方式将元素装配成部件组690。
用以形成部件组690的ROS 602应用结构和控制参数可由不同的团体来提供。由于组成部件组690的各部件可以单独安全地递送,于是这些部件便可以在不同时间并且/或者由不同团体来递送(“递送”可能发生在一个本地VDE安全子系统内部,也就是说,用信息内容控制信息链来控制参与者对已被修改的控制信息集合的制备,在此基础上,通过使用控制信息的安全子系统,便可完成对部件独立安全的递送过程)例如,信息内容制作者可以制作某个ROS 602应用,该应用规定了在何种情况下VDE对象300所含信息内容才可被批准使用。该应用可以引用其它团体提供的结构。这种引用(举例来说)可以采用如下的控制过程使用信息内容制作者的结构对用户行为进行计量;使用金融提供者所创建/拥有的结构处理信息内容分发交易中的金融部分(如规定控制结构中必须出现的信用预算以建立信用值,规定必须由获得准许者才能执行的审核过程,等等)。作为另一个例子,分发者可能把规定了不同定价的不同数据元素传递给不同用户,从而实现对某一用户的定价相对另一用户的定价更为优惠。这种支持多个团体可安全独立地传递控制信息的特性对于电子商业来说是相当重要的,即定义信息内容和/或设备控制信息集合,而该控制信息集合代表了一组独立团体的要求。所述独立团体的例子有信息内容制作者、其它信息内容提供者、金融服务提供者、和/或用户。
在较佳实施例中,ROS 602部分地依据上下文参数(如对象、用户)将可安全独立递送的元素装配成部件组690。因而(举例来说),ROS 602可以把不同元素安全地装配成不同的部件组690,以便使不同的用户可以对同一VDE对象执行同一任务。类似地,ROS 602可把可能含有一个或多个相同重用部件的不同元素集合装配成不同的部件组690,以便使同一用户可以对不同VDE对象300执行同一任务。
ROS 602所提供的部件装配机制是“递归”的,这是因为,部件组690可以含有一个或多个部件“子组”,这些“子组”本身就是可被独立加载和执行的部件组690。这些部件子组又可以包含一个或多个“子子组”。通常,部件组690可以包含N层部件子组。
因此(举例来说),部件组690(k)可以含有部件子组690(k+1),部件子组690(k+1)又可以含有部件子子组690(3)...这样继续下去一直到N层子子组690(k+N)。ROS 602这种从其它部件组创建部件组690的能力(举例来说)在代码/数据可重用性以及允许不同团体管理整个部件中的不同部分等方面具有很大的优点。
较佳实施例中的每个部件组包含了不同的部件。图11D-11H是对各种不同部件的抽象表示,这些部件可以被装配成图11I所示的部件组690(k)。这些相同的部件可以按照不同方式进行组合(如部件数量可以多一些或少一些)以形成不同的部件组690,从而提供完全不同的功能表现。图11J抽象地示意了相同的部件以不同方式(如与添加部件)组合在一起形成不同的部件组690(J)。部件组690(k)和690(j)每个都含有一个共同的装置691,该装置与ROS 602定义的“通道”594互锁在一起。“通道”594将部件组690装配在一起,并且成为它们与ROS 602(其余部分)的接口。
ROS 602以安全的方式生成部件组690。如图11I和11J所示,组成部件组690的不同元素可以是互锁的,这是在VDE参与者创建了这些元素并且/或者限定了该部件组,使这些元素只能按照VDE参与者的意图一起工作的意义上而言的。ROS 602含有安全保护措施,可防止未经授权的人员修改和替换元素可以想象一个未经授权的人员制作了一个新元素使之与图11D-11H中所示的某一元素具有相同的“形状”,然后试图用此新元素替换原有元素。假设图11H中的某个元素用来规定VDE对象300所含内容的使用价格,如果一个未经授权的人员能够以他自己规定的“价格”元素来替换VDE信息内容分发者所规定的价格元素,那么此人可以不使用信息内容分发者所希望的价格,而将价格定为零。类似地,如果某一元素规定了一个电子信用卡,那么假如将之替换成另一元素将会允许某人利用他人的(或一个不存在的)信用卡为其使用行为进行付帐,这就会带来灾难性的后果。这些只是几个例子,它们说明了ROS 602确保以安全方式创建某些部件组690的重要性。ROS 602提供各种各样的保护措施以防止各种各样的“威胁”,从而确保部件组690的安全处理和执行。
在较佳实施例中,ROS 602基于下列元素来装配部件组690许可记录(“PERC”)808;方法“核心”1000;加载模块1100;数据元素(如用户数据元素(“UDE”)1200和方法数据元素(“MDE”)1202);以及其它部件组690。
简要地说,较佳实施例中的PERC 808是一个对应于某个VDE对象300的记录,可用来为ROS 602标记出若干元素,利用这些元素ROS可以装配出某个部件组690。于是PERC 808实际上含有一个“装配指令列表”或者说一个“规划”,用来指定哪些元素602要被装配成部件组,以及如何将这些元素连接在一起。PERC 808本身可以含有数据或将要成为部件组690组成部分的其它元素。
PERC 808可以引用一个或多个方法“核心”1000N。方法核心1000N可以定义基本的“方法”1000(如“控制”、“计帐”、“计量”等)。
在较佳实施例中,方法1000是一组基本指令以及与基本指令相关的信息,它提供上下文、数据、要求、和/或关系,以供执行和/或准备执行基本指令之用。这些基本指令与一个或多个电子设备600的操作有关。基本指令可以包括(举例来说) 计算机编程中的通用机器代码;以及由运行于计算机中的解释程序或其它指令处理程序所使用的伪码; 与电子设备600一起用的、电子化表示的逻辑操作序列; 指令、源码、目标码、和/或伪码的其它电子化表示,这些在本领域中都是众所周知的。
与所述基本指令相关的信息可以包括(举例来说)与基本指令内在相关的数据,如一个用来标识基本指令加上其内部数据、地址、常数等所形成联合体的标识符。该信息也可以(举例来说)包含下列一个或多个信息 标识相关基本指令及上述内部数据的信息,用于完成访问、关联和/或验证等目的; 与基本指令和上述内部数据一同使用的、必要和/或可选的参数; 定义与其它方法之间关系的信息; 可以含有数值、信息字段等的数据元素; 限定和/或定义了数据元素、基本指令和/或内部数据之间关系的信息; 限定了与外部数据元素间关系的信息; 限定了内部的与外部的数据元素、方法等(如果存在的话)之间关系的信息; 用于操作基本指令和内部数据的附加信息,该信息用于完成或准备完成用户或方法的某项目的。在需要时它还包括附加的指令和/或内部数据。
这种与某种方法相关联的信息可以部分或全部地与基本指令和内部数据分开存贮。当分开存贮这些部件时,方法仍然可能含有其它信息、以及基本指令和内部数据的一个或多个集合(之所以包含后者,是因为上述其它信息可以引用基本指令和内部数据的一个或多个集合),而不管上述基本指令和内部数据的一个或多个集合是否能在给定时刻得到及时访问。
“事件代码”可以向方法核心1000提供参数,从而允许方法核心1000以不同方式对不同事件做出响应例如,一个计量(METER)方法为响应“使用”事件,可以将使用信息存贮在计量数据结构中。而同一个计量(METER)方法为响应“管理”事件,可以将计量数据结构报告给VDE票据交换所或其它VDE参与者。
在较佳实施例中,方法核心1000可以“包含”一个或多个“加载模块”1100和一个或多个数据元素(UDE 1200,MDE 1202),这种“包含”或者是明确的,或者是通过引用来实现。在较佳实施例中,“加载模块”1100是某个方法的一部分,该方法反映了基本指令和内部数据。较佳实施例中的加载模块含有可执行码,也可以含有与该可执行码相关的数据元素(“DTD”1108)。在较佳实施例中,加载模块1100提供实际由硬件“执行”的程序指令,以完成由方法规定的进程。加载模块可以包含或引用其它加载模块。
较佳实施例中的加载模块1100是模块化的,并且是“纯代码”,这样一来就可以重入和重用单个加载模块。为了使部件690可被动态更新,可允许在全局公用名字空间内对它们进行访问。从这些设计目标来看,加载模块1100最好是较小的、具有纯代码(及纯类代码)特征的模块,并且可以单独命名和寻址。一个单一方法可以提供不同的加载模块1100,这些加载模块1100能够在不同的平台上完成相同或相似的功能,这样可以使方法具有可伸缩性,并且/或者可以使之在多种不同电子设备之间移植。
UDE 1200和MDE 1202可能存贮某些数据,将其作为可执行部件组690的输入或输出(也可以存贮说明这些输入或输出的数据)。在较佳实施例中,UDE 1200可以与用户有关,而MDE 1202可以与用户无关。
图11E中的部件组690(k)含有方法核心1000、UDE 1200a和1200b、MDE 1202、加载模块1100a-1100d、以及另一个部件组690(k+1)。如上所述,PERC 808(k)定义了部件组690(k)的“装配指令”,并可以含有或引用了要用来装配部件组的部分或全部部件之中的一部分。
本例中的加载模块1000b之一本身含有多个加载模块1000c、1000d。本例中的某些加载模块(如1000a,1000d)含有一个或多个“DTD”数据元素1108(如1108a,1108b)。“DTD”数据元素1108可以用来(举例来说)将MDE 1202和/或UDE 1200a、1200b中数据元素报告给加载模块。另外,DTD 1108还可用来参与生成一个应用部分,该应用部分可以把有关一个或多个加载模块1100或者其它部件元素所需要和/或所处理的信息通知给用户。这种应用程序也可以含有某些功能用来创建和/或处理UDE 1200、MDE 1202、或其它部件元素、子组等等。
部件组690中的部件可以被重用,从而形成另外的部件组。如上所述,图11F抽象地示意了用来装配部件组690(k)的相同部件如何经过重用(例如,添加一些部件进来,这些部件由另一PERC 808(1)所提供的另一“装配指令”集来指定)以产生另一个部件组690(1)。尽管部件组690(1)由用来装配部件组690(k)的一些同样的部件构成,这两个部件组却可以以完全不同的方式执行完全不同的过程。
如上所述,ROS 602提供了若干安全保护层以确保部件组690的安全性。一个重要的安全层涉及确保某个部件组690的生成、加载和执行都只能在诸如由SPU 500中所提供的那种安全执行空间内进行。采用本地SPU 500所生成的密钥和/或分发者所提供的密钥完成加密以后,部件690及/或其所含元素可存贮在外部介质上。
ROS 602还提供了标记和定序措施,用于可加载的部件组690内部,以便探测由替代而造成的破坏。部件组690所含的每个元素都可先被加载进SPU 500,然后经过加密/解密机522解密,再经过测试/比较,从而确保所加载的是正确的元素。可以进行几个不相干的比较过程以确保没有出现非法替换。例如,可以将公开的元素标识和秘密的元素标识进行比较,确保它们相等,这样可以防止对元素的大批替换。另外,可以对保存在可加载元素已加密层之下的某个验证/关联标记进行比较,确保该标记与一个或多个由请求进程所提供的标记相匹配。这样可以防止未经授权就使用信息。作为第三种保护措施,可以检查保存在可加载元素已加密层之下的某个设备赋值标记(如某个序列号),确保该标记与SPU 500所期望的某个相关标记相匹配。这样可以防止对较旧的元素进行替换。通常只用安全的包装物来传递验证/关联标记,这是为了防止由于使用明文而将该信息泄露到SPU 500外部。
ROS 602这种基于安全部件的体系结构带有重要优点。例如,它适应有限资源的执行环境,比如由较低价SPU 500所提供执行环境。它还提供了极高的可配置性。实际上,ROS 602可以适应的信息内容类型、信息内容提供者对象、交易类型和客户要求几乎是不胜枚举的。另外,它还能够在执行过程中根据特定对象和用户的要求动态装配可独立提供的部件,这种能力提供了高度的灵活性,简化或者支持了分布式的数据库、处理和执行环境。
ROS 602基于部件体系结构所具优点的一个方面在于ROS 602可以随着时间的推移而“分阶段地”增加功能和能力。根据设计要求,实现ROS 602所做的工作是有限的。在实际市场情况决定要实现相关的VDE应用功能之前,ROS 602丰富功能的某些方面可能一直无法开发。因此,最初产品实现的投入和复杂性可以是有限的。随着时间的推移,ROS 602在制作、管理和人工智能应用等方面将会不断提供更全面的功能。而且为了适应不断变化的需求,可在任何时间对已有的ROS 602功能进行修改或加强。
权利操作系统602体系结构详述图12示意了图10中的ROS 602的详细体系结构。ROS 602可以含有一个文件系统687,文件系统687包含一个商业数据库管理程序730和外部对象仓库728。商业数据库管理程序730可以对安全数据库610进行维护。对象仓库728可以存贮VDE对象300、为VDE对象300提供访问、和/或维护VDE对象300。
图12还示意了ROS 602可以提供一个或多个SPE 503和/或一个或多个HPE 655。如上所述,HPE 655可以“仿真”SPU 500设备,并且,为了支持需要较高吞吐率的系统,可以将HPE 655进行集成以代替物理SPU 500,或作为物理SPU 500的补充。由于HPE 655通常由操作系统的安全性来保护,所以上述过程可能会损失一部分安全性而不能提供真正安全的处理。因而,在较佳实施例中,至少是为了高安全性应用,所有安全处理都应在SPE 503中进行,这是因为SPE 503在物理SPU 500中拥有一个执行空间,而不象HPE 655那样使用的是电子设备600中随处运行的软件。如上所述,ROS 602的三个基本部件分别是核心680、远程过程调用(RPC)管理器732和对象开关734。下面将就这些部件以及它们与ROS 602其它部分交互作用的原理进行讨论。
核心680核心680管理电子设备600的基本硬件资源,并控制ROS 602所提供的基本任务分配过程。较佳实施例中的核心680可以含有内存管理器680a、任务管理器680b和I/O管理器680c。任务管理器680b可对可执行任务的起动过程进行起动和/或管理,并对任务进行调度,使之可以在运行有ROS 602的处理器(如图8中的CPU 654)上执行。例如,任务管理器680b可以含有一个“引导装入程序”,或与该“引导装入程序”相关联。“引导装入程序”加载ROS 602的其它部分。任务管理器680b可管理所有与ROS 602有关的任务分配工作,包括与应用程序608相关的任务。内存管理器680a可以管理电子设备600的存贮器(如图8中的RAM 656)分配、回收、共享和/或使用,还可以(举例来说)提供虚拟内存功能,如电子设备和/或相关应用所需求的。I/O管理器680c可以管理所有ROS 602的输入和输出,并可以与驱动程序和其它硬件管理器交互作用,其中这些驱动程序和硬件管理器提供了与物理设备进行通信和交互作用。
RPC管理器732较佳实施例中的ROS 602是围绕“基于服务”的远程过程调用体系结构/接口进行设计的。ROS 602所执行的所有功能都可使用这个通用接口来请求服务和共享信息。例如,SPE 503支持对一个或多个基于RPC的服务进行处理。除了支持SPU 500,RPC接口还利用现有操作系统部件,支持对外部服务的动态集成,并提供了一组配置选项。ROS 602也可以通过RPC接口与外部服务进行通信,从而无缝地提供了分布式和/或远程处理。在ROS 602的较小型实例中,为节省资源,可以使用较简单的消息传递IPC协议。这种方法可能限制了ROS 602服务的可配置性,但在某些电子设备中,这点可能的限制还是可以接受的。
采用RPC结构,调用进程在调用或请求服务时,不必知道或指定在物理上的何处提供服务、何种系统或设备将对请求进行服务、以及如何对请求进行服务。该特性可为特定应用对各种服务集进行增减和/或定制。服务请求可由不同的处理器或不同的地点进行传递或服务,这一过程就象本地的服务系统对服务请求进行传递或服务一样容易。由于较佳实施例中的ROS 602使用相同的RPC接口对操作系统之中或之外发出服务的请求,因而对分布式和/或远程处理的请求实质上不会带来额外的操作系统开销。可以容易而简便地将远程处理进行集成,将之加入到ROS 602为请求基于本地的服务所使用的相同服务调用中。另外,使用标准RPC接口(“RSI”)可带来ROS 602的模块化,不同的模块向操作系统其余部分提供的是标准的接口。这种模块化和标准化接口使不同的出售者/操作系统编写人员能够独立地制作操作系统的不同部分,同时还允许根据不同要求和/或平台灵活地更新和/或改变ROS 602的功能。
RPC管理器732对RPC接口进行管理。它接收服务请求,这些服务请求的形式是由服务请求者发出的一个或多个“远程过程调用”(RPC)。接收到之后,它选择合适的路由将这些服务请求转发给能够对之进行服务的服务提供者。例如,当权利操作系统602收到由用户应用通过用户API 682发出的请求后,RPC管理器732可通过“RPC服务接口”(“RSI”)将该服务请求发往一个适当的服务提供者。RSI是RPC管理器732、请求服务者、及资源之间的一个接口,该资源将接受请求并对之提供服务。
在较佳实施例中,RPC接口(RSI)由ROS 602的若干主要子系统所使用。
在较佳实施例中,ROS 602所提供的RPC服务又分成了子服务,子服务即为特定服务的单个实例,每个这样的实例均可被RPC管理器732单独跟踪。采用这种机制,在具有较高吞吐率的系统中一个特定服务可以有多个实例,同时在各种实现之间又存在着共同的接口。子服务的概念加以延伸可以支持多处理器、多SPE 503、多HPE 655以及多种通信服务。
较佳实施例ROS 602提供了下列基于RPC的服务提供者/请求者(每一个提供者/请求者都具有RPC接口或“RSI”,以便与RPC管理器732进行通信)SPE设备驱动程序736(在较佳实施例中,该驱动程序与SPE 503相连);HPE设备驱动程序738(在较佳实施例中,该驱动程序与HPE 738相连);通告服务740(在较佳实施例中,该通告服务与用户通告接口686相连);API服务742(在较佳实施例中,该API服务与用户API 682相连);重定向器684;安全数据库(文件)管理程序744(该安全数据库管理程序或文件管理程序744可以通过高速缓存管理器746、数据库接口748和数据库驱动程序750与商业数据库730和安全文件610进行连接和交互作用);名字服务管理器752;输出管理对象管理器754;输入管理对象管理器756;到达对象开关734的网关(gateway)734(这是一条通路,它用来在RPC管理器732和对象管理器734之间建立直接通信);以及通信管理器776在前面已经论述了HPE 655、SPE 503、用户通告686、API 742和重定向器684所提供的服务类型。现在简要地介绍一下OS资源744、752、754、756和776所提供的服务类型。
安全数据库管理器744对访问安全数据库610的请求进行服务;名字服务管理器752对有关用户、主机或服务标识之类的请求进行服务;输出管理对象管理器754对有关输出管理对象的请求进行服务;输入管理对象管理器756对有关输入管理对象的请求进行服务;通信管理器776对有关电子设备600与外界进行通信的请求进行服务;对象开关734对象开关734(可在局域或远程)对VDE对象300进行处理、控制和递送。在较佳实施例中,对象开关可以含有下列元素流路由器758;实时流接口760(实时流接口760可以与实时数据输入694相连);时间相关性流接口762;截获器692;容器管理器764;一个或多个路由表766;以及缓冲区/存贮区768。
流路由器758负责选择合适的路由以到达/离开分别由实时流接口760和时间相关性流接口762处理的“实时”数据流和“时间无关性”数据流。截获器692截获带有实时信息流(如实时输入694)的I/O请求。流路由器758可根据路由表766来决定路由的选择。缓冲区/存贮区768提供临时的存贮转发、缓冲及相关服务。容器管理器764可以(通常与SPE 603一起)对VDE对象300执行各种处理,如对一部分对象进行构造、销毁和定位处理。
对象开关734通过对象开关接口(“OSI”)与ROS 602的其它部分进行通信。在较佳实施例中,对象开关接口可以类似于(举例来说)Unix的套接字(socket)的接口。图12所示的每个“OSI”接口均能够与对象开关734通信。
ROS 602含有下列的对象开关服务提供者/资源(每个提供者/资源都可以通过“OSI”与对象开关734通信)输出管理对象管理器754;输入管理对象管理器756;网关734(网关734可以将RPC调用翻译成对象开关调用,或反向翻译,这样一来,RPC管理器732就可以与对象开关734或其它任何带有OSI的元素进行通信,从而(举例来说)可以提供和/或请求服务);外部服务管理器772;对象提交管理器774;以及通信管理器776。
简要地说,对象仓库管理器770提供有关访问对象仓库728的服务;外部服务管理器772提供的服务涉及到请求和接收外部服务,例如该服务可以来自某个网络资源或另一个地点;对象提交管理器774提供的服务涉及到用户应用如何与对象开关734交互作用(由于对象提交管理器向应用程序608提供了接口,所以可以将它看成是用户API 682的一部分);以及通信管理器776提供有关与外界通信的服务。
在较佳实施例中,通信管理器776可以含有网络管理器780和邮件网关(管理器)782。邮件网关782可以含有一个或多个邮件过滤器784,用以(举例来说)在对象开关734和外界电子邮件服务之间自动地选择与VDE相关的电子邮件的路由。外部服务管理器772可通过服务传输层786与通信管理器776接口。服务传输层786a可允许外部服务管理器772使用各种协议与外部计算机和系统进行通信,这些协议要通过服务传输层786进行管理。
下面将详细论述图12中ROS 602各个子系统的特性及接口。
RPC管理器732及其RPC服务接口如上所述,ROS 602所提供的基本系统服务要通过使用RPC服务接口(RSI)进行调用。该RPC服务接口向ROS 602中的各种服务系统和子系统提供了通用的标准化接口。
RPC管理器732将RPC所请求的服务选择路由到适当的RPC服务接口。在较佳实施例中,一旦接收到一个RPC请求,RPC管理器732对一个或多个服务管理器进行判断并确定哪一个应该服务该请求。然后RPC管理器732(通过与某个服务相关的RSI)将服务请求路由选择到适当的服务,以便该适当服务管理器提供服务。
例如,如果SPE 503应该服务某个请求,那么RPC管理器732将该请求路由选择到RSI 736a,RSI 736a将该请求传递给SPE设备驱动程序736以便再转发给SPE。同样,如果HPE 655应该服务某个请求,那么RPC管理器732将该请求路由选择到RSI 738a以便再转发给HPE。在一个较佳实施例中,SPE 503和HPE 655可以提供实质上相同的服务,这样,RSI 736a和738a便成了同一RSI的不同实例。一旦SPE 503(或HPE 655)收到了一个服务请求,该SPE(或HPE)通常使用其内部RPC管理器对该请求进行内部调度(后面马上就会讲到这一点)。SPE 503和HPE 655内部的进程也可以产生RPC请求。这些请求可以被SPE/HPE内部处理,但如果不能在内部服务的话,这些请求就会被传出SPE/HPE,由RPC管理器732进行调度。
RPC管理器732可使用“RPC服务表”对远程(或本地)过程调用进行调度。RPC服务表说明了为得到特定服务需将请求路由选择到何处供处理。在较佳实施例中,RPC服务注册表中的每一行都含有一个服务标识、服务的地点以及为服务请求将控制要传递到的地址。RPC服务表还可以含有控制信息,以指明RPC调度者中的哪一个实例应该取得该服务的控制权。RPC管理器732以及连入的任何SPE 503和HPE 655都可以拥有RPC服务表的对称副本。如果某个RPC服务没有出现在RPC服务表中,其原因有二或者它被拒绝,或者它被传送给外部服务管理器772用来进行远程服务。
假设RPC管理器732在RPC服务表中发现某一行与请求相对应,它便可将该请求调度给适当的RSI。接收的RSI从RPC管理器732处接收到一个请求(RPC管理器732可以已经在RPC服务表中查到了该请求),然后根据与特定服务相关的内部优先级对该请求做出处理。
在较佳实施例中,由RPC管理器732支持的RPC服务接口可以是标准化的并且被公布出来,以便支持由第三方厂家开发的增加服务模块,同时还使得对ROS 602编程更加容易,最终带来方便的可伸缩性。较佳实施例RSI严格遵循DOS和Unix为块设备设计的设备驱动程序模块,这样,花费最小的代价就可以开发出适用于许多平台的公用代码。下表列出了可能的公用入口点集合的一个示例。
加载在较佳实施例中,安装引导进程在进行引导时,发出RPC_LOAD指令,服务(以及服务向RPC管理器732提供的相关RSI)可以从此被激活。安装引导进程从配置文件中读出RPC服务表,加载那些运行时可加载的服务模块(“可加载的服务模块”与核心链接的设备驱动程序相对),然后调用服务的加载(LOAD)入口点。来自LOAD入口点的成功返回意味着服务已被正确地加载上,并已做好了接收请求的准备。
RPC加载(LOAD)调用举例SVC_LOAD(long service_id)LOAD接口由RPC管理器732在权利操作系统602初始化时调用。它允许服务管理器加载所有可动态加载的部件,以及根据服务的要求初始化所有相关设备和存贮器。加载服务时所规定的服务号码作为service_id参数来传递。在较佳实施例中,如果初始化进程成功完成,则上述过程返回0;如果出现错误,则返回一个错误号。
安装服务在加载好以后可能不会对所有子服务都能完全地起作用。某些子服务(如基于通信的服务)可能需要建立额外的连接,或者它们可能要求加载附加的模块。如果服务被定义为“可安装”的,RPC管理器732将首先根据被申请的子服务标识来调用安装(MOUNT)子服务入口点,之后再打开子服务的一个实例。
RPC安装(RPC MOUNT)调用举例SVC_MOUNT(long service_id,long subservice_id,BYTE*buffer)MOUNT接口调用命令某个服务使特定的子服务处于就绪状态。这些服务可以涉及网络、通信、其它系统服务、或外部资源。参数service_id和subservice_id可以是被申请的特定服务所特有的。参数buffer是一个内存地址,它指向了与特定服务相关的控制结构。
打开一旦加载和“安装”了某项服务,就可以“打开”服务的特定实例以便进一步使用。为“打开”服务的一个实例,需要分配内存以保存控制和状态信息。例如,在基于BSD套接字(socket)的网络连接,LOAD调用将初始化软件和协议控制表,MOUNT调用将指定网络和硬件资源,而OPEN调用实际上打开了一个通向远方系统的套接字。
某些服务可以不是“可安装”的,如构成安全数据库服务基础的商业数据库管理程序730即是如此。在这种情况下,LOAD调用将建立与数据库管理程序730的连接,并确保其记录是可读的。OPEN调用可以为各种记录类型创建内部高速缓存管理器746的实例。
RPC打开(OPEN)调用举例SVC_OPEN(long service_id,long subservice_id,BYTE*buffer,int(*receive)(long request_id))OPEN接口调用命令某个服务打开特定的子服务。参数service_id和subservice_id是被申请的特定服务所特有的,参数buffer是一个内存地址,它指向了与特定服务相关的控制结构。
可选的receive参数是通告回调函数的地址,每当有消息已准备好供服务检索时,服务将调用该通告回调函数。对于每个收到的消息,需要调用该函数地址一次。如果调用者向该函数接口传递了一个空(NULL)地址,那么对于每个消息,软件将不再进行回调。
关闭、拆除和卸载OPEN、MOUNT和LOAD的相反调用分别是CLOSE、UNMOUNT和UNLOAD。这些接口将所有分配了的资源释放回ROS 602(如内存管理器680a)。
RPC关闭(RPC CLOSE)调用举例SVC_CLOSE(long svc_handle)CLOSE接口调用关闭一个打开服务“句柄”。服务“句柄”说明了用户希望关闭的服务和子服务。如果CLOSE请求成功,该调用将返回0(同时该句柄不再有效),如果失败,则返回一个错误号。
RPC卸载(RPC UNLOAD)调用举例SVC_UNLOAD(void)UNLOAD接口调用由RPC管理器732在权利操作系统602停机或进行资源回收时调用。该调用使服务关闭所有打开的连接、刷新缓冲区,并释放所有分配给它的所有操作系统资源。该服务返回0。
RPC拆除(RPC UNMOUNT)调用举例SVC_UNMOUNT(long service_id,long subservice_id)UNMOUNT接口调用命令某个服务将特定的子服务置为非活动状态。参数service_id和subservice_id是被申请的特定服务所特有的,而且这些任务必须已通过SVC_MOUNT()请求进行了安装。该调用在返回之前将释放所有与子服务相关的系统资源。
读和写读(READ)和写(WRITE)调用提供了一种基本机制,用以向一个已安装和打开了的服务发送信息,以及从该服务接收响应。例如,一个服务具有以RPC请求格式写往它的请求,并在可以产生响应的时候使其响应对RPC管理器732可读。
RPC读(RPC READ)调用举例SVC_READ(long svc_handle,long request_id,BYTE*buffer,long size)READ调用从一个服务读取消息响应。参数svc_handle和request_id唯一地标识了一个请求。请求的结果将被保存在用户指定的缓冲区buffer中,其长度最多为size个字节。如果缓冲区太小,那么将在缓冲区中保存消息中前面size个字节的数据,然后返回一个错误号。
如果消息响应正确地返回到调用者的缓冲区中,该函数将返回0,否则将返回一个错误信息。
RPC写(RPC WRITE)调用举例SVC_READ(long service_id,long subservice_id,BYTE*buffer,long size,int(*receive)(long request_id)WRITE调用向由参数对service_id/subservice_id指定的服务和子服务写一个消息。消息存放在缓冲区buffer中(并且通常按照VDE RPC消息格式),其长度为size个字节。该函数返回该消息的请求id(如果系统同意将其发送出去的话),或者返回一个错误号。如果用户指定了receive回调函数,所有与该请求相关的消息将被发送给该请求特定的回调函数,而不是发送给通用的消息回调函数。
输入/输出控制IOCTL(“输入/输出控制”)调用提供了一种机制,允许查询一个已加载服务的状态,或对该服务进行控制。每个服务类型都要对特定普通型IOCTL请求、所有请求类型IOCTL请求,以及专用服务型IOCTL请求做出响应。
RPC IOCTL调用举例ROI_SVC_IOCTL(long service_id,long subservice_id,intcommand,BYTE*buffer)IOCRL函数向RSI提供了通用的控制接口。用户用参数service_id和可选的subservice_id来指定他们希望控制的服务和子服务。用户要指定控制命令参数command和缓冲区参数buffer,其中参数command可以写入buffer中,或从中读出。下面给出了命令command和相应缓冲区结构的一个列表示例。
上面已经论述了较佳实施例中的通用RPC服务接口,下面将说明ROS 602所提供服务的各种具体示例。
SPE设备驱动程序736SPE设备驱动程序736提供了ROS 602和SPE 503之间的接口。由于较佳实施例中的SPE 503运行于SPU 500内,该设备驱动程序736的职责之一是提供与SPU 500硬件的低层通信服务。该设备驱动程序736的另一职责是提供SPE 503专用的RPC服务接口(RSI)736a(该同一RSI还可以用来通过HPE设备驱动程序638与HPE 655进行通信)。
SPE RSI 736a以及驱动程序736提供了一组基本接口点,这些基本接口点带有一组简明的函数,这样,SPE RSI 736a以及驱动程序736能够将ROS 602中(或ROS 602外部)的调用进程与SPE 503所提供的服务细节进行隔离。这具有若干优点。例如,采用这种方法,可以允许提供全面伸缩的SPU 500,这些SPU 500向外界提供了公用的功能,但其内部的详细组织和体系结构却各不相同。SPU 500的某些特性如设备所含的存贮器容量、处理器速度、以及SPU 500内部所支持的服务数目等等可以由特定SPU生产厂家决定,并且在任何情况下,这些特性可以随SPU配置的不同而不同。为了确保兼容性,SPE设备驱动程序736及其提供的RSI 736a遵循了一个基本公用RPC接口标准,该标准“隐藏”了SPU 500和/或SPU 500所支持的SPE 503各配置细节之间的差异。
为提供这种兼容性,较佳实施例中的SPE RSI 736a遵循了一个基于块的简单标准。在较佳实施例中,SPE RSI 736a可以仿照Ethernet网卡的包界面进行设计。该标准精密地模拟较佳实施例中SPU 500的块模式接口特性。
SPE RSI 736a允许来自RPC管理器732的RPC调用访问由SPE 736提供的特定服务。为此,SPE RSI 736a提供了一套“服务通告地址接口”。这套接口向外界提供了由SPE 503所提供之各个服务的访问接口。通过向SPE RSI 736a发送RPC调用以及在RPC调用中指定一个相应的“服务通告地址”,任何ROS 602中的调用进程都可以访问上述SPE所提供服务。上述的指定的“服务通告地址”使SPE 503将RPC调用在内部地路由选择SPE中的一个特定服务。下面给出了一个列表示例,它列出了可能需要为之提供独立服务通告地址的SPE服务项目通道服务管理器验证管理器/安全通信管理器安全数据库管理程序对于ROS 602的其余部分来说,通道服务管理器是其主要的服务提供者及对SPE 503的访问点。下面将要讲到,(从SPE 503外部进程的角度来看)事件处理主要由该服务进行管理。验证管理器/安全通信管理器可以为ROS 602的用户提供登录/注销服务,并提供直接服务以管理与部件组690、VDE对象300等有关的通信(通常将通信进行加密或保护)。通过向SPE 503内部的安全数据库管理程序发送一个直接服务请求,便可以提供有关显示某些信息(如金融预算中的剩余金额)的请求。验证管理器/安全通信管理器以及安全数据库管理程序的实例(如果确实可用的话)可以只向运行于SPE 503之中的进程提供可得到的信息和/或功能的一个子集。如上所述,绝大多数(可能全部)进SPE的服务请求都被路由选择到通道服务管理器进行处理。后面将要详细讲到,在通道服务管理器的管理之下,绝大多数控制结构和事件处理逻辑都与部件组690相关联。
本例中,必须经过与SPE 503相关的SPE驱动程序736才能访问到SPE 503。响应RPC调用通常要产生对SPE驱动程序736的调用。在本例中,SPE驱动程序RSI 736a可以把用来控制或确定SPE驱动程序736信息的RPC调用翻译成驱动程序调用。SPE驱动程序RSI736a与驱动程序736结合可以将发送给SPE 503的RPC调用传递给SPE。
下表示出了SPE设备驱动程序736调用的一个例子
下面将对上表中列出的各个SPE驱动程序调用进行详细的范例说明。
“SPE信息”驱动程序调用举例SPE_info(void)该函数返回一个指向SPE_INFO数据结构的指针,SPE_INFO数据结构定义了SPE设备驱动程序736a。该数据结构可以提供有关SPE设备驱动程序736、RSI 736a和/或SPU 500的某些信息。下面给出了SPE_INFO数据结构的一个例子
SPE“初始化接口”驱动程序调用举例SPE_initialize_interface(int (fcn *receiver)(void))对于所有从SPE 503收到的包,均要调用以参数形式传递的receiver函数,除非这些包的目的服务已通过set_notify()调用被取代。receiver函数允许ROS 602为RPC管理器732与SPE 503之间的包通信指定一种格式。
在较佳实施例中,如果接口初始化成功完成,该函数将返回“0”,如果失败,则返回一个非0值。如果该函数调用失败,它返回说明失败原因的代码作为函数值。
SPE“终止接口”驱动程序调用举例SPE_initialize_interface(int (fcn *receiver)(void))在较佳实施例中,该函数关闭SPE驱动程序736,清除所有通告地址,并终止SPE和ROS RPC管理器732之间的所有未完请求。在所有请求都得到解决之后,该函数还复位SPE 503(如通过对SPU 500进行一次热重新引导)。
在操作系统正准备关机的时候,ROS 602应当执行对驱动程序736的终止操作。还有一种情况需要执行该调用,那就是SPE 503和ROS602之间的同步严重紊乱,以致必须将SPE中的所有处理过程都复位成一个已知状态。
SPE“复位接口”驱动程序调用举例SPE_reset_interface(void)该函数复位驱动程序736,终止SPE和ROS RPC管理器732之间的所有未完请求,并清除所有统计计数。该函数不对SPU 500进行复位,而只是简单地将驱动程序736恢复到一个已知的稳定状态。
SPE“取统计资料”驱动程序调用举例SPE_get_stats(long service_id)该函数通常返回特定服务通告接口或SPE驱动程序736的统计资料。该函数返回一个指针,该指针指向含有这些资料的一个静态缓冲区。如果无法得到统计资料的话(或者由于接口未初始化,或者由于接收者地址未指定),该函数将返回一个空值(NULL)。下面给出了SPE_STATS结构示例可以含有的定义。
如果用户指定了服务标识,该函数将返回与该服务发送的包相关的统计资料。如果用户以0作为参数,则返回该接口总计的包统计资料。
SPE“清除统计资料”驱动程序调用举例SPE_clear_stats(long service_id)该函数清除与指定SPE服务标识service_id有关的统计资料。如果没有指定service_id(即调用者传递的参数为0),该函数将清除全局的统计资料。如果资料清除成功,该函数返回0;如果出现错误,则返回一个错误号。
SPE“设置通告地址”驱动程序调用举例SPE_set_notify(long service_id,int(fcn*receiver)(void))该函数为指定服务设置一个通告地址(receiver)。如果通告地址被置为空值(NULL),SPE设备驱动程序736将把对指定服务的包的通告发向缺省通告地址。
SPE“取通告地址”驱动程序调用举例
SPE_get_notify(long service_id)该函数返回与命名的服务有关的通告地址;如果没有为服务指定专门的通告地址,该函数将返回空值(NULL)。
SPE“发送包”驱动程序调用举例send_pkt(BYTE *buffer,long size,int(far*receive)(void))该函数将保存在缓冲区(buffer)中长度为size的一个包发送出去。如果包发送成功,该函数返回0;否则返回与失败相关联的一个错误码。
重定向器服务管理器684重定向器684是一段系统集成软件,如前所述,当ROS 602是通过“增加”在前在操作系统上而产生,或需要为某些VDE功能提供“透明性”操作时,需要用到重定向器684。在一个实施例中,核心680、通信管理器776的一部分、文件系统687、以及API服务742的一部分可以是前在操作系统的一部分,这些现有操作系统的例子有DOS、Window、UNIX、Macintosh系统、OS9、PSOS、OS/2、或其他操作系统平台。图12所示的ROS 602的其余部分也可以是对前在操作系统的“增加”。一旦提供了这些ROS子系统或将其“增加”进去以后,集成化后的整体将构成图12所示的ROS 602。
在这种集成化方案中,ROS 602将继续得到前在OS核心680的支持,但有可以用附加的增加部分如虚拟内存管理器来补充(甚至替换)OS核心680的许多功能。
在这种集成化方案中还提供了增加部分API服务742,该部分很容易与现有的API服务进行集成以支持VDE功能调用。现有AP I服务与增加部分集成以后将支持一组功能增强的操作系统调用,这些调用包括对VDE功能604的调用和对VDE功能以外的功能606的调用(参看图11A)。增加部分API服务742可将VDE功能调用翻译成RPC调用以供RPC管理器732进一步选择路由。
ROS 602可以使用现有操作系统提供的标准通信管理器776,或者,它也可以对现有操作系统进行“增加”和/或替换,这些增加部分和/或替换可以非常容易地集成到现有操作系统之中。重定向器684可以提供这种集成功能。
这样,就要求ROS 602与现有的文件系统687集成。重定向器684提供了这种集成功能。
在这种集成化方案中,现有操作系统的文件系统687用来完成对二级存贮器的所有访问操作。但是,VDE对象可以外部对象仓库728或文件系统687的形式存放在二级存贮器中,或通过通信管理器776被远程访问。当对象开关734希望访问外部对象仓库728时,它向对象仓库管理器770发送一个请求,对象仓库管理器770接着将该请求选择路由到对象仓库728或重定向器692(对象仓库728或重定向器692再访问文件系统687中的对象)。
通常,重定向器684将VDE对象仓库728中的内容映射到对文件系统687的前在调用。重定向器684提供了有关VDE对象300的前在操作系统级信息,包括如何将对象映射到现有OS的名字空间。这样以来便可以使用由现有操作系统提供的“常规”文件系统687访问技术对受VDE保护的信息内容进行无缝的访问。
在上述的集成化方案中,每个现有目标OS文件系统687都具有不同的接口要求,而重定向机制684要利用这些接口“挂接”(hook)。通常,由于今天所有商品化的操作系统都支持基于网络的卷、文件系统、以及其它设备(如打印机、调制解调器等),重定向器684可以使用低级的网络和文件访问“挂接”与前在的操作系统进行集成。那些用来支持VDE功能602的“增加”部分可以使用这些现有的挂接与前在的操作系统进行集成。
用户通告服务管理器740用户通告服务管理器740及其相关的用户通告异常(“弹出式”)接口686增强了ROS 602的功能,使之可以与电子设备600的用户进行通信。并非所有应用608的设计都响应来自ROS 602并经过API682的消息通信,因而无论如何,既有重要性又有必要性的一项举措是使ROS 602能够与用户通信而不管应用处于何种状态。用户通告服务管理器740及接口686为ROS 602提供了一种机制使之能够直接与用户通信。ROS 602可以用这种机制来替代或补充另一种通信方式,即通过API 682和应用608传递返回调用。上述机制(举例来说)类似于Windows操作系统能够以“对话框”的形式显示一条用户消息,该对话框显示在正在运行的应用“之上”而不管应用的状态如何。
可以采用应用代码来实现较佳实施例中的用户通告686模块。接口740a的实现最好建立在通告服务管理器740之上,可以将通告服务管理器740实现为API服务管理器742的一部分。较佳实施例中的通告服务管理器740能够通过适当的AP I返回或另外的途径将特定通告发送给相应用户进程。这种机制允许将通告路由选择到任何合法进程,而不是只把它发送回那个指定了通告机制的进程。
API服务管理器742较佳实施例API服务管理器742实现为对RPC服务管理器732的接口。所有的用户API请求都基于该基本接口。API服务管理器742最好对每一个正在运行的用户应用608都提供一个服务实例。
在较佳实施例中,经过某些额外的参数检查,API服务管理器742所支持的绝大多数对ROS功能的RPC调用可以直接映射成服务调用。这种机制允许开发者创建他们自己的扩展API库,使库中含有附加的或改变的功能。
上面讲过,ROS 602是通过将“增加”部分与现有操作系统相集成而产生的。在此方案中,其中API服务742的代码可以共享(如驻留在象Windows DLL这样的宿主环境中),它也可以直接与应用的代码相链接,不过这要决定于应用程序员的实现决策,以及/或者电子设备600的类型。通告服务管理器740可以在API 682之中实现。这些部件与通告服务部件686接口,以实现系统空间与用户空间之间的转换。
安全数据库服务管理程序(“SDSM”)744至少有两种方法可用于管理安全数据库600 商品化数据库方法,及 地点记录编号方法具体选择那种方法要取决于在安全数据库610中某个VDE地点所存记录的数目。
商品化数据库方法利用了商品化数据库,它将经过安全包装的记录存贮在商品化数据库中。当安全数据库610中存有大量记录时这种方法可能是较优的。这种方法支持对主机系统进行高速地访问、有效地更新、以及方便地集成,但其代价是要占用资源(大多数商业数据库管理器要使用许多系统资源)。
地点记录编号方法使用“地点记录编号”(“SRN”)在系统中定位各个记录。当安全数据库610中所存记录数目较少,并且预计随时间推移不会剧烈增减时,优选这种方法。这种方法可以有效地利用资源,但其更新功能有限。SRN支持对相似数据记录的进一步组合,从而提高了访问速度并提高了性能。
由于VDE 100具有高度的可伸缩性,不同的电子设备可能需要在两种方法中作出不同的选择。例如,在诸如顶置系统、PDA或者其它低端电子设备有限的环境中,SRN方法可能比较受欢迎,这是因为它需要的资源有限(存贮器和处理器)。如果更多功能的电子设备600,如桌上型计算机、服务器,或票据交换所中使用VDE,那么商品化数据库方法可能更可取,这是因为这种方法在资源不受限制的环境中能够带来较高的性能。
在两种方法中的数据库记录之间存在着一个差别,它表现在记录是通过完整的VDE ID来指定,还是用SRN来指定。为了在两种方法之间进行翻译,无论何处产生了SRN引用,该引用都可以由VDE ID数据库引用来替代。类似地,用来指定或引用其它项的VDE标识也可以由适当的SRN数值来替代。
在较佳实施例中,使用商品化数据库管理器730来维护安全数据库610。ROS 602通过数据库驱动程序750和数据库接口748与商品化数据库管理器730交互作用。数据库接口748位于ROS 602与外部的、第三方数据库厂家的商品化数据库管理器730之间,它可能是一个开放标准而允许任何数据库厂家为他们的产品实现遵循VDE的数据库驱动程序750。
ROS 602可以对每个安全数据库610记录都进行加密,于是在商品化数据库体系结构之上产生了一个由VDE提供的安全层。换句话说,SPE 736可以按照可保存在数据库记录结构中的大小和格式对安全记录进行写操作,该数据库记录结构由商品化数据库管理器730支持。于是商品化数据库管理器730可以用来对记录进行组织、保存和检索。在某些实施例中,要使用专有的和/或新出现的数据库管理器来代替商品化数据库管理器730。但是,使用商品化数据库管理器730可能具有某些优点,例如,这样就可以使用现有的数据库管理产品。
安全数据库服务管理器(“SDSM”)744调用底层的商品化数据库管理器730以便获得、修改或保存安全数据库610中的记录。在较佳实施例中,“SDSM”744在商品化数据库管理器730的结构之上提供了一个层。例如,所有的VDE安全信息均以加密的形式发向商品化数据库管理器730。SDSM 744与高速缓存管理器746以及数据库接口748一起可在商品化数据库管理器730和/或记录管理器之上提供记录管理、高速缓存(使用高速缓存管理器746)、以及其它相关服务。较佳实施例中的数据库接口748和高速缓存管理器746不提供它们自己的RSI,而是由RPC管理器732通过安全数据库管理器RSI744a与它们通信。
名字服务管理器752名字服务管理器752提供三种子服务用户名字服务、主机名字服务以及服务名字服务。用户名字服务支持用户名字与用户ID(标识)之间的映射和查找,并且还可以支持基于用户的资源和信息安全性等其它方面。主机名字服务支持其它处理资源(如其它主机电子设备)的名字(以及其它信息,如地址、通信连接/路由信息等)与VDE节点ID之间的映射和查找。服务名字服务支持服务名字以及其它相关信息如连接信息(连接信息的例子有远程服务的路由选择以及联络信息)等与服务ID之间的映射和查找。较佳实施例中的名字服务管理器752与外部服务管理器772相连,这样它就可以把外部服务路由选择信息直接提供给外部服务管理器。名字服务管理器752还与安全数据库管理器744相连,名字服务管理器752就可以访问保存在安全数据库610中名字服务记录。
外部服务管理器772和服务传输层786外部服务管理器772可提供协议,以支持与外部服务提供者接口功能。外部服务管理器772可以(举例来说)从名字服务管理器752获取外部服务路由选择信息,然后通过通信管理器776对某个特定外部服务(如另一个VDE电子设备600,一个金融票据交换所,等等)起动联络。外部服务管理器772使用服务传输层786来提供通信协议以及提供通信所必须的其它信息。
有一些重要的外部服务管理器772使用示例。某些VDE对象可以将它们的部分或所有信息内容保存在电子设备600的对象仓库728中,而不是保存在由用户操作的对象仓库728中,所述的用户具有或希望得到该VDE对象的使用权。在这种情况下,外部服务管理器772可以与存有所需VDE对象(或其内容)的电子设备600进行连接。另外,文件系统687可以是一个网络文件系统(如Netware、LANtastic、NFS等),它允许使用重定向器684对VDE对象进行访问。对象开关734也提供这种能力。
如果用外部服务管理器772来访问VDE对象,则可有多种技术可供使用。例如,可以将VDE对象进行格式化,以便与环球网(World WideWeb)协议(HTML、HTTP和URL)共同使用,其方式是添加相关的报头信息、信息内容标记、主机ID到URL的转换(如利用名字服务管理器752),以及HTTP感知型的服务传输层786实例。
在另一个例子中,外部服务管理器772可以用来定位、连接或使用远程事件处理服务、智能代理执行服务(可以既提供服务,又可以定位服务)、对公开密钥的验证服务、远程名字服务、以及其它远程功能,这些远程功能或者由ROS 602RPC(这些RPC带有RSI)支持,或者使用由服务传输层786支持的协议。
输出管理对象管理器754输出管理对象管理器754从对象开关734、对象仓库管理器770或其它来源接收管理对象,以便将其传送给其它VDE电子设备。输出管理对象管理器754负责将输出对象发送到其正确目的地。输出管理对象管理器754可以从名字服务管理器752获取路由信息,并且可能利用通信服务776发送对象。输出管理对象管理器754通常维护(与SPE 503协调)安全数据库610中的记录(如发货表格444),这些记录反映了对象是何时被成功传送的、何时应该传送对象、以及其它与对象传送有关的信息。
输入管理对象管理器756输入管理对象管理器756通过通信管理器776从其它VDE电子设备600接收管理对象。它可以将该对象路由选择到对象仓库770、对象开关734或其它目的地。输入管理对象管理器756通常要维护(与SPE 503协调)安全数据库610中的记录(如收货表格446),这些记录反映了收到的是哪个对象、希望收到的是哪些对象、以及其它与接收到的和/或希望接收的对象有关的信息。
对象仓库管理器770
对象仓库管理器770是数据库或文件管理器的一种形式。它管理VDE对象300在对象仓库728、数据库或文件系统687中的存放。对象仓库管理器770还可以浏览和/或搜索与对象有关的信息(如信息内容概要、摘要、修订者的注释、计划、促销材料等),其途径是(举例来说)使用与VDE对象300相关的信息(INFORMATION)方法。
对象提交管理器774较佳实施例中的对象提交管理器774提供了应用608与对象开关734之间的接口。因此,在某些方面可以将对象提交管理器774看成是API 682的一部分。例如,它可以允许用户应用创建一个新的VDE对象300。它还可以允许输入/输出管理对象管理器756和754创建VDE对象300(管理对象)。
图12A示意了如何使用对象提交管理器774与电子设备600的用户进行通信,以便创建新的VDE对象300。从图12A中可以看到,在较佳实施例中,对象的创建可能分两个阶段对象定义阶段1220和对象创建阶段1230。图12A中两种不同的示意性“用户输入”(774(1),774(2))指出对象提交管理器774充当的角色。
作为第一种角色或实例,对象提交管理器774提供了用户接口774a以允许用户创建一个对象配置文件1240,该配置文件指明了将要创建的VDE对象300所具有的某些特征。该用户接口774a可以(举例来说)允许用户表明他希望创建一个对象,允许用户指明对象将要包含的信息内容,允许用户规定需要纳入对象中的其它某些方面的信息(如规则和控制信息、标识信息等等)。
在较佳实施例中,对象定义任务1220中一部分是对需要纳入对象的信息内容或其它信息进行分析。对象定义用户接口774a可以向对象开关743发出调用,以便对待创建对象所要包含的“信息内容”或其它信息进行分析,以便将该信息内容定义或组织成用户规定的“原子元素”。此处解释一下,这种“原子元素”组织方式可以(举例来说)将信息内容划分为段、页或其它由用户定义的更小部分,它还可能是明确的(例如在各“原子元素”之间插入控制字符)或隐含的。对象开关734可以接收静态的或动态的信息内容(如利用时间无关性流接口762和实时流接口760),并能够访问和检索保存在文件系统687中的信息内容或其它信息。
对象定义1240的结果可以是一个对象配置文件1240,该配置文件规定了与待创建对象有关的某些参数。这些参数可以包括(举例来说)映射表、密钥管理规范以及事件方法参数。对象创建阶段1230可以将对象配置文件1240以及需要纳入新对象的信息或信息内容作为输入,根据这些输入创建一个对象,并将该对象保存在对象仓库728中。
对象创建阶段1230可以使用对象配置文件中的信息来装配或修改某个容器。该过程通常涉及与将一系列事件发送给SPE 503,以便创建一个或多个PERC 808、公开报头信息、私有报头信息,并对信息内容进行加密,所有上述部分都将存储在新的对象300中(或存放在安全数据库610中与新对象相关的记录中)。
对象配置文件1240可以被传送给对象开关734中的容器管理器764。容器管理器764负责根据对象配置文件1240和其它用户输入创建对象300。用户可以通过对象提交管理器744的另一个实例774(2)与对象创建过程1230交互作用。在对象提交管理器744提供的这个再次用户交互作用中,用户可以对适用于或相关于新对象300的许可、规则和/或控制信息作出规定。为了规定许可、规则和控制信息,对象提交管理器744和/或对象开关734中的容器管理器764通常(如上所述)需要(如通过网关734)向SPE 503发送调用请求,使SPE从安全数据库610中获取相应的信息,产生相应的数据库项,并将这些数据库项存放在安全数据库610中,与/或以加密保护的方式将这些数据库项提供给对象开关,以便将之包含进对象中。在这些由SPE503提供的信息中,除了加密的信息内容或其它信息之外,还包括一个或多个PERC 808、一个或多个核心1000’,一个或多个加载模块1100,一个或多个诸如UDE 1200和/或MDE 1202之类的数据结构,以及各种密钥模块、标记、公开和私有报头、及纠错信息。
容器管理器764可以与SPE 503共同协作创建一个对象容器302,这个过程至少要部分地依据由对象配置文件1240规定的、有关信息对象信息内容或其它信息的参数。之后,容器管理器764可以将需要纳入在新对象中的(由SPE 503加密的)信息内容或其它信息插入到容器302中。容器管理器764还可以将适当的许可、规则和/或控制信息插入到容器302中(这些许可、规则和/或控制信息可以至少部分地由用户通过对象提交管理器744交互作用来定义,同时可以至少部分地由SPE 503来处理以便创建安全数据控制结构)。然后容器管理器764可以将新对象写入对象仓库687,同时用户或电子设备可以加入安全数据库610中适当信息,以便“注册”新对象。
通信子系统776如上所述,通信子系统776可以是一个传统的通信服务,它提供网络管理器780和邮件网关管理器782。可以有一个邮件过滤器784,它用来自动确定来自(或去往)外界的对象300或其它VDE信息的路由。通信子系统776可支持来自有线电视、卫星或其它电信链路的实时信息内容输入。安全处理环境503前面已结合图12讨论过,较佳实施例中的每个电子设备600都含有一个或多个SPE 503和/或一个或多个HPE 655。这些安全处理环境都能提供经过保护的执行空间使任务以安全方式执行。它们可以完成ROS传来的服务请求,同时,它们自身可以生成由ROS 602中的其它服务、或另一个VDE电子设备600或计算机提供的服务满足的服务请求。
在较佳实施例中,SPE 503由SPU 500的硬件资源进行支持。HPE655可由通用处理器资源来支持,并依赖软件技术来提供安全性/保护措施。因而HPE 655使ROS 602能够在一个通用CPU上装配和执行特定部件组690,这些通用CPU的例子有微计算机、小型计算机、大型计算机或超级计算机处理器。在较佳实施例中,SPE 503的整体软件体系结构可与HPE 655的软件体系结构相同。HPE 655可以“仿真”SPE 503及相关SPU 500,即每个HPE 655都含有服务和资源,以支持来自ROS 602的相同服务请求集合(尽管可以不允许ROS 602将某些只能运行于SPU 500中的、高度保密的任务传送给HPE)。
在某些电子设备600的配置中可既含有SPE 503又含有HPE655。例如,HPE 655可以用来执行那些需要较低级别(或无)安全保护的任务,而SPE 503可以用来执行所有那些需要较高级别安全性的任务。这种利用多SPE和/或HPE的配置提供串行和并行处理的能力将带来更多的灵活性,并克服了有限资源所产生的限制,而由SPU500提供这些资源是现实并且廉价的。在特定的应用中,SPE 503和HPE 655协同工作可以产生一个更加有效、廉价并依旧安全的综合处理环境,以支持和提供VDE 100所需要的安全处理环境。作为一个例子,HPE 655可以提供全部的处理,使用户可以操纵所发布的对象300的“信息内容”,而用户则使用SPE 503对保密对象进行访问,并从对象中发布信息。图13示意了较佳实施例安全处理环境(SPE)503的软件体系结构。
该体系结构也适用于较佳实施例宿主处理环境(HPE)655。通常用“受保护的处理环境”(“PPE”)650来指代SPE 503和/或HPE655。此处往后,除非上下文中特别指明,只要提及“PPE 650”、“HPE655”和“SPE 503”,所指的就是它们之中的各个。
如图13所示,较佳实施例中的SPE 503(PPE 650)含有下列的服务管理器/主要功能模块核心/调度程序552 通道服务管理器562 SPE RPC管理器550 时基管理器554 加密/解密管理器556 密钥和标记管理器558 概要服务管理器560 验证管理器/通信服务管理器564 随机数发生器565 安全数据库管理程序566 其它服务592下面将详细讨论PPE 650的各个主要功能模块。
SPE核心/调度程序552核心/调度程序552提供了一个操作系统“核心”,该核心运行于SPU 500的硬件资源之上,并管理这些硬件资源。该操作系统“核心”552为SPU 500提供了自含的操作系统;它同时还是整体ROS 602(ROS 602可含有多个OS核心,接受ROS控制/管理的SPE和HPE每一个都有这样一个OS核心)的一部分。核心/调度程序552提供SPU任务和内存管理,支持SPU内部硬件中断,提供某些“低层服务”,管理“DTD”数据结构,并管理SPU总线接口部件530。核心/调度程序552还含有一个加载模块执行管理器568,它可以把程序加载到安全处理空间以便SPU 500执行。
在较佳实施例中,核心/调度程序552可以含有下面的软件/功能部件加载模块执行管理器568任务管理器576内存管理器578虚拟存储器管理器580“低层”服务管理器682内部中断处理程序584BIU处理程序586(HPE 655中可以没有)服务中断队列588DTD解释程序590最好将核心/调度程序552中的至少某些部分存放在加载进SPUROM 532中的SPU固件中。图14A给出了SPU ROM 532的存贮器映象示例。该存贮器映象示意了驻留在SPU ROM 532a和/或EEPROM 532b中的各种核心/调度程序552部件(以及图13所示的其它SPE服务)。图14B给出了NVRAM 534b的存贮器映象示例,该存贮器映象示意了加载在NYRAM中的任务管理器576以及其它信息。
核心/调度程序552所完成的功能之一是接收ROS RPC管理器732发来的RPC调用请求。如前所述,ROS核心RPC管理器732可以(通过SPE设备驱动程序736及其相关RSI 736a)将RPC调用路由选择到SPE 503以便SPE进行处理。SPE核心/调度程序552接收这些调用后,或者对它们进行处理,或者将它们传递给SPE RPC管理器550,由SPE RPC管理器550将这些调用内部地转送给SPE 503。基于SPE503的进程也可以产生RPC请求。某些这类请求可以被SPE 503内部地处理。如果不能内部服务,可以经过SPE核心/调度程序552将这些请求从SPE 503传送给ROS RPC管理器732,由ROS RPC管理器732将这些请求转送给SPE 503外部的服务。
A.核心/调度程序任务管理核心/调度程序任务管理器576对执行于SPE 503(PPE 650)中的任务进行调度和管理。SPE 503支持多种类型的任务。“通道”(在较佳实施例中,“通道”是一种特殊类型的任务,它控制部件组690的执行)被任务管理器576视为一种任务。任务被提交给任务管理器576以便执行。任务管理器576接着要确保执行该任务所需的SPE503/SPU 500资源可以获得,然后安排SPU微处理器520执行该任务。
发向核心/调度程序552的任何调用都使核心有机会对SPE 503进行控制,并切换当前正在运行的任务。于是,在较佳实施例中,核心/调度程序552可以(与虚拟内存管理器580和/或内存管理器578一道)将当前处于活动状态的某些或所有任务从执行空间中“换出”,而将其它的或不同的任务“换入”。
由任务管理器576管理的SPE任务分配可以是“单任务分配”的(指在一个时刻只能有一个任务处于活动状态),也可以是“多任务分配”的(指在一个时刻可以有多个任务处于活动状态)。在较佳实施例中,SPE 503可支持单任务分配也可支持多任务分配。例如,SPE503的“高端”(high end)实现(如在服务器设备中)最好采用“强占式调度”的多任务。桌上型应用虽然仍需要并行地执行某些任务,但一般只需采用更简单一些的SPE 503。顶置型应用可以使用其实现相对比较简单的SPE 503,该SPE 503支持在一个时刻只执行一个任务。例如,典型顶置型应用中SPU 500可以执行简单的计量、预算和计帐处理,它使用组合进单个“聚合”加载模块中的VDE方法子集,从而允许在单任务分配环境中执行多个方法。但是,只支持单任务分配的执行环境可能会限制使用更为复杂的控制结构。SPE 503的这种单任务分配实现方式牺牲了计量和预算操作在数目和类型上的灵活性,但换来了较小的运行时RAM容量要求。这种SPE 503实现可以限制为(取决于存贮器限制)在一个时刻只能对单个对象300进行计量。当然,可以做一些变通和组合以便在简单的单任务分配环境基础上增加一些功能,而又不致为了支持“完善的多任务分配”而导致额外的花销。
在较佳实施例中,SPE 503中的每一个任务都由一个“交换模块”来代表。可以认为“交换模块”是传统多任务体系结构中的一个“任务”。较佳实施例中的“交换模块”是一种管理机制,任务管理器576用这种机制来跟踪任务和子任务。它对应于安置在由SPU 500所提供安全执行环境中的一段代码及其相关引用。在较佳实施例中,“交换模块”含有一个引用表,这些引用指向共享数据元素(如加载模块1100和UDE 1200)、私有数据元素(如方法数据和局部堆栈)、以及被交换进程的“上下文”信息(如进程在非运行时刻的寄存器集合)。图14C示意了SPU RAM 532的快照,它存放了多个示例性的“交换模块”,分别对应于多个不同的任务/方法,如一个“通道”任务,一个“控制”任务,一个“事件”任务,一个“计量”任务,一个“预算”任务,以及一个“计帐”任务。根据SPU RAM 532容量的大小,可以将“交换模块”从RAM中换出,并临时存放到二级存贮器652中,直到下次继续执行。这样,SPE在运行于多任务分配模式时可以使一个或多个任务“睡眠”。在最简单的方式下,SPE可以有一个“活动”任务和另一个“睡眠”任务(如控制任务,在其控制下活动任务才得以运行),前者正在执行,而后者被换出活动执行空间。核心/调度程序552可在任何时刻换出任务。
任务管理器576可使用内存管理器578来协助自己完成交换操作。为将任务换出安全执行空间,从RAM或(举例来说)SPU 500的其它内部存贮器中读取适当信息,然后将“交换模块”写到二级存贮器652中。核心552为了将任务换回安全执行空间,从二级存贮器652中读出交换模块,然后将适当信息写回SPU RAM 532。由于二级存贮器652是非安全的,SPE 503在将交换模块写入二级存贮器652之前必须首先对之进行加密并加密封装(例如使用单向散列函数,该函数由只在SPU 500内部公开的保密数值进行初始化)。SPE 503必须首先对从二级存贮器652读出的交换模块进行解密,并验证其加密封装,之后才能将之送回安全执行空间继续执行。
为将“交换模块”加载到SPU内存中,可能需要进行一个或多个“分页操作”,“分页操作”可能首先保存所有与早先加载的交换模块有关的“脏页”(即由SPE 503改写过的页),然后对这些页进行刷新,之后将新交换模块上下文所需的所有页加载进去。
核心/调度程序552最好使用服务中断队列588来管理“交换模块”。服务中断队列588允许核心/调度程序552跟踪任务(交换模块)及其状态(运行状态、“被换出”状态、或“睡眠”状态)。在较佳实施例中,核心/调度程序552可以含有下列服务中断队列588以协助自己管理“交换模块”运行(RUN)队列交换(SWAP)队列睡眠(SLEEP)队列运行队列中存放的是那些已完全加载进安全执行空间并等候和/或正在使用微处理器502执行周期的任务。交换队列中存放的是那些被“换出”的任务(例如,这些任务正在等待其它可交换部件被加载进来)。睡眠队列存放的是那些正在睡眠的任务(例如,这些任务被除处理器周期之外的另一些资源所“阻塞”,或者当前不需要这些执行任务)。核心/调度程序任务管理器576可以(举例来说)按照“轮转”调度算法在运行队列和交换队列之间转换任务,轮转法选择下一等待服务的任务,将任何需要调页进来的部分交换进来,然后执行任务。核心/调度程序任务管理器576在需要的时候可以在睡眠队列和活动(即运行或交换)队列之间转换任务。
在多任务分配环境中,当两个或多个任务试图对同一数据结构进行写操作时,会出现可能导致“死锁”或“任务饥饿”的情况。可以使用“多线程”任务分配配置以避免“死锁”或“任务饥饿”出现。较佳实施例核心/调度程序552可以支持“单线程”或“多线程”任务分配。
在单线程应用中,核心/调度程序552在单个数据结构被加载的时候将之“锁定”。一旦锁定以后,任何其它SPE 503任务都不能加载这些数据结构,同时被“阻塞”,以等待该数据结构变为可用。作为一个实际情况,使用单线程的SPE 503可以限制外部厂商创建加载模块1100的能力,这是因为不能保证他们创建的加载模块与那些他们知之甚少或毫不知晓的其它VDE进程之间不会发生死锁情况。而且,对只更新了一部分的记录进行上下文交换可能会破坏系统的完整性,纵容了未经计量的使用,以及/或者导致死锁。另外,这种“锁定”机制将给通常具有时间紧迫性的进程带来可能难以预料的延迟,还可能限制SPE 503的吞吐量,并可能增加开销。
除了上述问题难以解决外,实现单线程的SPE 503还带来其它重大处理问题,在某些情况下这些问题可以限制SPE 503的有用性和能力。例如在单线程SPE 503中,多个并行执行的任务如果使用同一个经常被访问的数据结构,就可能无法执行下去。这实际上会把并行任务的数目限制成一个。另外,单线程机制可能无法根据并行任务的数目产生准确的概要预算,这是因为多个并行任务可能无法有效地共享同一个概要预算数据结构。单线程机制还可能会使审核进程无法与其它进程并行执行。举例来说,为了审核跟监控进程有关的预算和计量,可能需要停止某个实时输入处理。
为了提供更加可行的“单线程”功能,一种方法是让核心/调度程序552使用虚拟页处理算法,在数据区被写入时对“脏页”进行跟踪。可以将“脏页”作为交换模块局部数据的一部分与交换模块一起换进或换出。当存在一个任务时,可以使用一种三路合并算法将“脏页”与当前数据结构(该数据结构可能被SPU 500的其它任务更新)进行合并,三路合并算法的过程是将原始数据结构、当前数据结构和“脏页”进行合并以形成一个新的当前数据结构)。在更新处理中,当对页进行比较或交换操作时,可以对数据结构进行锁定。尽管这种虚拟分页方案可能在某些应用中支持单线程机制,由于存在着上面提到的厂家限制,在某些情况下这种单线程实现只适用于某些专用的硬件。任何支持多用户的实现(如“智能家庭”顶置系统、许多桌上型系统和某些PDA应用)都会在某些情况下遭遇单线程设备的限制。
如果不能允许上述限制存在的话,最好使用完备的“多线程”数据结构写功能。例如,可以一种“两阶段提交”处理过程以支持数据结构被多个进程共享,上述“两阶段提交”方法是数据库厂家所使用的处理方法之一。为了实现这种“两阶段提交”过程,每个交换模块可以含有指向附加内存块的页地址,这些附加内存块用来存贮改变了的信息。一个改变页是已被SPE进程定入的某个数据元素片段的的一份局部拷贝。在较佳实施例中,与特定数据结构相关的被改变页引用存放在交换模块的局部区域。
例如,SPE 503可以支持每个数据结构有两个改变页。通过改变交换模块结构的大小并允许更新算法处理所有被改变的页,便可以方便地改变上述限制。当准备丢弃某个引用了被改变页的交换模块时,可以激活“提交”进程。提交进程将被早先加载的原始数据元素(如UDE0),当前数据元素(如UDEn)以及被改变页合并成一个新的数据元素拷贝(如UDEn+1)。DTD解释程序590可以使用数据元素的DTD来解决合并中出现的差异问题。如果没有其它交换模块再引用原始数据元素,那么该数据元素将被丢弃(举例来说,丢弃将取决于其DTD使用计数)。
B.核心/调度程序内存管理在较佳实施例中,内存管理器578和虚拟内存管理器580对SPU500内的存贮器ROM 532和RAM 534进行管理。虚拟内存管理器580提供了完全“虚拟”的内存系统,从而使SPE安全处理环境可用的“虚拟”内存容量超过了由SPU 500提供的物理RAM 534a容量。内存管理器578管理安全执行空间中的内存,控制如何对其访问、分配和回收。在较佳实施例中,如果有SPU MMU 540的话,它将支持虚拟内存管理器580和内存管理器578。在SPU 500的某些“最小”配置中,可以不提供虚拟内存功能,而所有的内存管理工作都由内存管理器578来完成。内存管理还可以用来加强SPE 503所提供的安全性。举例来说,在某些类型的SPU 500中,核心内存管理器578可以使用硬件内存管理部件(MMU)540在SPU内部提供页级保护。这种基于硬件的内存管理系统提供一种有效的机制,用来保护VDE部件组690免受“恶意”加载模块的侵害。
另外,如果内存管理器578的操作至少部分以基于硬件的MMU540为基础,那么它提供的内存管理机制将可以安全地实现和强化一个提供多个保护区域(domain)的内存体系结构。在这种体系结构中,内存被划分为大量的区域,这些区域在极大程度上互相隔离,并在内存管理器578的控制之下只能共享特定的内存区。一个正在执行的进程不能访问其区域之外的内存,并且只能通过特定服务与其它进程进行通信,这些特定服务由SPU 500中特权级核心/调度程序软件552提供和传递。如果至少部分地得到了MMU 540内部硬件的加强,那么上述体系结构就更具安全性,任何运行于SPU 500内部的、基于软件的进程是无法修改MMU 540内部硬件的。
在较佳实施例中,对实现于ROM 532中的服务的访问,以及对诸如NVRAM 534b和RTC 528等物理资源的访问都要受到特权级核心/调度程序软件552和MMU 540内部硬件的中介。ROM 532和RTC 528的请求享有特权,这是为了保护对关键系统部件处理程序的访问(如RTC 528)。
内存管理器578负责分配和回收内存,监督进程间的内存资源共享情况,并强制执行内存访问/使用限制。SPE核心/调度程序内存管理器578通常在初始时将所有的内存都分配给核心552。可以对内存管理器578进行适当配置,以便在页被特定进程加载之后只允许对这些页进行进程级的访问。在SPE操作系统配置的一个例子中,内存管理器578使用一种简化了的分配机制进行内存分配。举例来说,可以用一个位图分配向量来表示SPE 503中由每个可访问内存页组成的表。在一个内存块中,一组连续的内存页可以起始于一个特定的页号。块的大小由它跨越的内存页的数目来计量。可以通过设置/清除分配向量中的相应位来记录内存的分配。
为协助内存管理功能,可在存储器块上预挂一个“内情向量”(dope vector)。“内情向量”可以含有某些信息,以允许内存管理器578对内存块进行管理。在最简单的形式下,一个内存块可以被结构化成一个“内情向量”,以及后跟该块的实际内存区域。该“内情向量”可以含有块号、对数据元素动态调页的支持信息以及检测内存重写的标记。内存管理器578可以根据块号来跟踪内存块,并且可以在使用块之前将块号转换成地址。对内存区的所有访问都可以在从块内存到物理地址的转换过程中自动地偏移“内情向量”的大小。虚拟内存管理器580也可以使用“内情向量”来协助管理虚拟内存。
在较佳实施例中,由内存管理器578执行的ROM 532存贮器管理工作相对比较简单。所有的ROM 532页面都被标记为“只读的”和“不可调页的”。EEPROM 532b存贮器管理可能稍微复杂一些,这是因为需要对每个EEPROM页面的“烧入计数”(burn count)进行维护。
可能需要保护SPU EEPROM 532b使之避免所有未加控制的写入操作,这样可以保证该存贮器特定型号的有限写入寿命不被滥用。另外,在某些例子中,EEPROM的页面可以与内存管理地址页的大小不同。
SPU NVRAM 534b最好是由电池后备供电的RAM,该RAM带有一些访问限制。内存管理器578可以保证需定位到NVRAM 534b中的控制结构在“垃圾收集”过程中不会被重新定位。如上所述,内存管理器578(如果存在MMU 540的话还包括MMU 540)可以在页面级对NVRAM534b和RAM 534a进行保护,使之免受其它进程的破坏。
虚拟内存管理器580为程序和数据提供SPU外部存贮器和SPU内部RAM 534a之间的页调度功能。有可能数据结构和可执行进程会超出所有SPU 500内部存贮器的限度。例如,PERC 808以及其它基本的控制结构可能相当大,并且“位图表”也可能会变得很大。这种突发性问题可以采用两种方法来解决(1)划分加载模块1100;以及(2)支持虚拟页面机制加载模块1100之所以能被“划分”,是因为在许多情况下,它们可以分成独立的部件,而只有其中的一个子集才必须被加载供执行。在本例中,加载模块1100是可调页的最小可执行元素。这种加载模块1100可以划分为独立的部件(如划分为可执行码和大量的数据描述块),为执行简单的加载模块功能,这些独立的部件中只有一个才必须被加载。采用这种结构,可以使加载模块1100在初始时只加载执行码,并根据需要将数据描述块加载到系统其它页面中。许多加载模块1100的可执行部分可能太大,以致无法安放在SPU 500中,这时可将这些加载模块1100重新构造成两个或更多的加载模块。大的加载模块可以被手工“划分”成多个小的加载模块,并通过显式加载模块引用将它们相互“链接”在一起。
虽然可以用“请求式页调度”来放松上述部分限制,而较佳实施例使用了虚拟页调度机制来管理大数据结构和可执行程序。虚拟内存管理器580将信息(如可执行代码与/或数据结构)“换”入或“换”出SPU RAM 534a,并提供了其它相关的虚拟内存管理服务,以支持完备的虚拟内存管理功能。使用虚拟内存管理机制的一个重要原因是该机制允许用SPE 500配置中的有限资源来执行大任务和/或多任务。
C.SPE加载模块执行管理器568SPE(HPE)加载模块执行管理器(“LMEM”)568将可执行程序加载到由内存管理器578管理的内存中,并将之执行。LMEM 568提供了一种机制,用来对当前已加载到受保护执行环境中的加载模块进行跟踪。LMEM 568还提供了对保存在SPE 503中的基本加载模块和代码段的访问机制,这些基本加载模块和代码段对于SPE 503来说是始终可用的。(举例来说,)LMEM 568可以被希望执行其它加载模块的加载模块1100所调用。
在较佳实施例中,加载模块执行管理器568含有一个加载模块执行器(“程序加载器”)570、一个或多个内部加载模块572、以及库例程574。加载模块执行器570(例如从内存管理器578收到一段内存分配之后)将可执行程序加载到内存中以便执行。内部加载模块572可以提供一组(保存于ROM 532或NVRAM 534b中的)通用基本加载模块1100。库例程574可以提供一组通用的代码段/例程(如引导例程)供SPE 503执行。
库例程574可以提供一组存放于ROM 532中的标准库函数。可使用这些标准的库函数及其入口点和参数的一张标准清单。加载模块1100可以调用这些例程(例如使用一个为此保留的中断)。这种库调用机制将代码移到了一个中心位置并支持高度的代码重用,这样可以减少加载模块的大小。所有由SPE 503使用的加载模块1100都最好被加载模块执行管理器568所引用,加载模块执行管理器568维护并扫描一个可用加载模块的表,并选择适当的加载模块以便执行。如果所需的加载模块没有出现在SPE中,那么该任务将进入“睡眠”状态,同时LMEM 586可以请求将该加载模块从二级存贮器652中加载进来。该请求将发出两个调用,一个调用以RPC调用的形式发向安全数据库管理器566,使之检索出该加载模块以及相关数据结构;另一个调用发向加密/解密管理器556,使之首先对该加载模块进行解密,然后再将它存放在由内存管理器578分配的内存中。
说得更详细一点,为执行某个加载模块1100,较佳实施例将所需加载模块1100的名字(如VDE标识)传递给加载模块执行管理器568。LMEM 568首先搜索“存贮器内”的和“内置”的加载模块572表。如果在该表内不能发现所需的加载模块,它便发出一个RPC请求,要求从安全数据库610得到一个拷贝,该RPC请求可以被图12所示的安全数据库管理器744所处理。然后加载模块执行管理器568可以请求内存管理器578分配一个内存页面以存放该加载模块1100。加载模块执行管理器568可以将上述加载模块复制到那个内存页面中,并将该页放入队列中,以便由加密/解密管理器556和密钥及标记管理器558进行解密和安全检查。一旦该页经过解密和检查,加载模块执行管理器568将检查其合法性标记,并将该加载模块插入到调入模块表中,然后将页面地址返回给调用程序。然后调用程序可以直接调用该加载模块1100,或让加载模块执行模块570为其发出调用。
图15a详细地示意了通道头信息596和通道594的可能格式,通道594含有通道详细记录594(1),594(2),...594(N)。通道头信息596可以含有通道标识字段597(1)、用户标识字段597(2)、对象ID字段597(3)、一个包含对“权利”所做引用或所做其它标记(即一组事件,这些事件由PERC 808和/或“用户权利表”464所引用的方法提供支持)的字段597(4)、事件队列597(5)、以及一个或多个字段598,字段598利用通道详细记录(“CDR”)对特定的事件代码进行交叉引用。通道头信息596还可以带有“跳转”表或引用表599,表599允许对相关部件组690中的元素进行寻址。每个CDR594(1),...594(N)都对应于由通道594作出响应的某个特定事件(事件代码)。在较佳实施例中,这些CDR或者显式或者通过引用方式包含了各个方法核心1000N(或其片段)、加载模块1100以及数据结构(如URT、UDE 1200和/或MDE 1202),这些都是处理相应事件所需要的信息。在较佳实施例中,一个或多个CDR(如594(1))可引用一个控制方法和作为数据结构的URT 464。
图15b例示了在较佳实施例中,SPE 503为“打开”通道594所需执行的程序控制步骤。在较佳实施例中,通道594向特定的VDE对象300、特定的授权用户、以及特定“权利”(如事件类型)提供了事件处理。可以将这三个参数传递给SPE 503。执行于“通道0”中的部分SPE核心/调度程序552最初可以通过分配一个由SPE 503处理资源所支持的可用通道(步骤框1125)来响应这个“打开通道”事件,“通道0”是由低层服务582在“引导”例程中创建的。然后该“通道0”“打开通道”任务可向安全数据库管理器566发出一系列请求,以便获取一份“蓝图”(blue print),利用该“蓝图”来创建与通道594相关的一个或多个部件组690(步骤框1127)。在较佳实施例中,“蓝图”可以含有一个PERC 808和/或URT 464。通过使用传向“打开通道”例程的“对象、用户、权利”参数,将对象注册表460记录、用户/对象表462记录、URT 464记录、以及PERC 808记录相互链接在一起,这样就得到了这张“蓝图”。“打开通道”任务最好向密钥和标记管理器588发送调用请求,以便对与上述各种记录相关的标记进行验证和关联,从而确保它们是可信的和匹配的。然后较佳实施进程把适当的信息写至通道头信息596(块1129)。这些信息可以包括(举例来说)用户ID、对象ID、和一个引用,该引用指向了通道将要处理的“权利”。较佳实施例进程将使用“蓝图”访问(例如访问安全数据库管理器566和/或来自加载模块执行管理器库568)适当的“控制方法”,这些“控制方法”可实际用来监控通道594中所有其它方法1000的执行(步骤框1131)。然后该进程把该控制方法与通道相“装配”(bind)(步骤框1133),这个步骤将包括将URT 464的信息作为控制方法的数据结构合并到通道中。接着该过程向通道594传递一个“初始化”事件(步骤框1135)。该“初始化”事件可以由通道服务管理器562创建,通道服务管理器562发出原始调用要求被创建的通道处理某个服务。另外,与通道刚装配的控制方法本身也可以产生一个初始化事件,并实际上将该事件传给自身。
为响应该“初始化”事件,控制方法可以创建通道详细记录594(1),...594(N),这些通道详细记录用来处理除“初始化”事件之外的其它事件。执行于通道内的控制方法可以访问各种部件,这些部件是它根据在步骤1127中访问到的“蓝图”来创建相关的部件组690(步骤框1137)所需要的。通过创建一个相关的通道详细记录将每个上述部件与通道594相装配(步骤框1139),此处的通道详细记录规定了用来响应上述事件的方法核心1000N、加载模块1100和相关数据结构(如UDE 1200和/或MDE 1202)。通道详细记录的数目取决于“权利”能够服务的事件数目,所述“权利”由“蓝图”(即URT 464)来指定。在此过程中,控制方法将创建“交换模块”,以便实际地生成所有需要的任务,并从核心562获取必要的内存分配。做为必要的步骤,该控制方法将向安全数据库610发送请求以检索所需部件,向加密/解密管理器556发送调用以解密检索到的加密信息,向密钥和标记管理器558发送调用以确保所有检索到的部件都是有效的。借助通道头信息事件代码/指针记录598并通过创建由通道详细记录594(1),...594(N)所引用的相应交换块,将每个在前述步骤中创建的不同部件组690与通道相装配。当该进程完成后,通道594就被完全创建好了,并且已经可以响应其它事件了。作为最后的步骤,如果需要的话,图15b中进程将回收“初始化”事件任务以便释放资源。
一旦通道594以按照上述步骤创建好,它就可以在事件到来时进行响应。通道服务管理器562负责将事件调度给通道594。每当一个新的事件(如通过RPC调用)到来,通道服务管理器562将对该事件进行检查,以确定是否存在一个能处理该事件的通道。如果确实存在这样的通道,通道服务管理器562就把该事件传送给这个通道。为处理该事件,任务管理器576有必要将某些“可交换模块”交换进来,这些“可交换模块”被通道详细记录定义为活动任务。通过这种方式,在图15b所示通道打开过程中形成的可执行部件组690被装入活动的安全执行空间中,同时已激活的特定部件组被选择来响应所接收的事件代码。被激活的任务将执行所需功能以响应该事件。
为撤除一个通道,由通道详细记录定义的各种交换模块将被撤消,通道头信息596中信息将被清除干净,并使该通道可被“通道0”“打开通道”任务再分配。
D.SPE中断处理程序584如图13所示,核心/调度程序552还提供了内部中断处理程序584。它可以协助管理SPU 500的资源。对于所有重要的组件,SPU 500最好或者执行于“中断”模式或者执行于“查询”模式。在查询模式,核心/调度程序552可以对SPU 500内部的每个组件/电路进行查询,并为之仿真一个中断。较佳实施例中的SPU 500最好支持下面的中断 RTC 528的“滴答”中断(tick) 来自总线接口530的中断 电源失效中断 监视计时器中断 来自加密/解密机522的中断 内存中断(如来自MMU 540)当出现一个中断时,微处理器520中的中断控制器将使微处理器开始执行一个相应的中断处理程序。中断处理程序是核心/调度程序552提供的一段软件/固件,它使微处理器520在中断发生时执行特定的处理。中断可以被“矢量化”,于是不同的中断源可实际导致执行不同的中断处理程序。
当实时RTC 528“脉动”时会产生“计时器滴答”中断。计时器滴答中断由计时器滴答中断处理程序进行处理,用来计算内部设备日期/时间,并产生一个计时器事件供通道处理。
总线接口部件530可产生一系列中断。在较佳实施例中,仿造USART设计的总线接口530在各种情况下(如“接收缓冲区满”,“发送缓冲区空”以及“状态字改变”)将产生不同的中断。核心/调度程序552为服务发送缓冲区空中断,将从发送队列中传送下一字符到总线接口530。核心/调度中断处理程序584为服务所接收的缓冲区满中断,将读出下一字符,将之附在当前缓冲区之后,并根据总线接口530的服务机状态对缓冲区进行处理。核心/调度程序552最好处理状态字改变中断,并对相应的发送/接收缓冲区进行相应访问。
当SPU 500检测到一个急迫的电源失效状态时,它将产生一个电源失效中断。这可能要求马上采取措施避免信息丢失。例如,在较佳实施例中,电源失效中断将把最近写入的所有信息(即“脏页”)转移到非易失性的NVRAM 534b,将所有交换模块标记为“换出”,并设置相应的电源失效标志,通过采取以上种种措施,可以使将来的恢复处理变得容易一些。然后核心/调度程序552可以定期查询状态字中的“电源失效位”,直到该数据被清除,或者电源被完全切断。
本例中的SPU 500含有一个通常的监视计时器,监视计时器定期地产生监视计时器中断。监视计时器中断处理程序对内部设备进行检查,以确保没有发生破坏现象。将监视计时器和RTC 528的内部时钟进行比较,以确保SPU 500目前没有被暂停或探测,同时,还要对SPU 500的操作进行其它的内部检查以探测破坏。
加密/解密机522在处理了一块数据之后将产生一个中断。核心中断处理程序584对被加密/解密数据块的处理状态进行适当调整,然后传递该数据块进行下一阶段的处理。对于下一需要进行加密的数据块,其密钥被取至加密/解密机522,之后下一加密过程开始。
当一个任务试图访问的内存越过了分配给它的区域,内存管理部件540中断将会产生。内存管理部件540中断处理程序捕获上述请求,并采取必要的处理(例如将控制转移给内存管理器578和/或虚拟内存管理器580)。通常,任务将会失败,同时会产生一个页故障异常,或者相应的虚拟内存页将会调入。
E.核心/调度程序低层服务582在较佳实施例中,低层服务582提供了“低层”功能。举例来说,在较佳实施例中,这些功能可以包括上电初始化、设备通电自检(POST)、以及故障恢复例程。较佳实施例中的低层服务582还可以(或者通过它们自身或者结合验证管理器/通信服务管理器564)提供下载应答-询问式通信协议及验证通信协议,并且可以为SPU 500存贮器设备如EEPROM和FLASH存储器提供某些低层管理(或者通过它们自身或者结合内存管理器578和/或虚拟内存管理器580)。
F.核心/调度程序BIU处理程序586较佳实施例中的BIU处理程序586管理总线接口部件530(如果总线接口部件530存在的话)。举例来说,它可以为BIU 530管理读和写缓冲区,提供BIU起动初始化,等等。
G.核心/调度程序DTD解释程序590在较佳实施例中,TD解释程序590处理数据格式问题。例如,根据DTD内部的格式化指令,DTD解释程序590可以自动打开诸如UDE1200之类的数据结构。
上面讨论的核心/调度程序552支持SPE 503提供的所有其它服务。下面将叙述这些其它服务。
II.SPU通道服务管理器562在较佳实施例中,“通道”是SPE 503(HPE 665)的基本的任务处理机制。ROS 602为“方法”提供了事件驱动接口。“通道”使部件组690可以对事件进行服务。“通道”是一种管道,它用来将“事件”从SPE 503(HPE 665)所支持的服务传送给处理这些事件的各种指定方法和加载模块,它同时还支持部件组690的装配和部件组690之间的交互作用。更详细地说,“通道”594是通道管理器593所维护的一个数据结构,通道管理器593将一个或多个加载模块1100与数据结构(如UDE 1200和/或MDE 1202)“装配”到一起从而形成一个部件组690。通道服务管理器562使加载模块执行管理器569加载该部件组以便执行,同时还负责将事件传递到通道594,以便部件组690作出响应。在较佳实施例中,事件处理是作为向通道服务管理器562发送的消息来处理的。
图15示意了较佳实施例通道服务管理器562创建“通道”594的过程,还示意了通道和部件组690之间的关系。简要地说,SPE通道管理器562创建“通道”及相关的“通道头信息”596。通道594及其头596含有一个数据结构,该数据结构“装配”或引用一个或多个部件组690。于是,较佳实施例中的通道594是一种机制,它将图11E中所示的元素收集或组装在一起,从而形成部件组690,该部件组690可以用来进行事件处理。
为响应某个事件的发生,通道服务管理器562将创建通道594。一旦通道创建好之后,通道服务管理器562可根据通道594向加载模块执行管理器568发送功能调用。加载模块执行管理器568将加载由通道594引用的加载模块1100,并请求核心/调度程序任务管理器576执行该加载模块1100。核心/调度程序552将事件处理请求视为一个任务而执行之,即执行由上述通道引用的加载模块1100所含的代码。
通道服务管理器562可以被传递给一个事件标识码(如事件代码)。通道服务管理器562对一个或多个方法核心1000’进行语法分析。这些方法核心1000’是通道服务管理器准备组装的部件组690的一个组成部分。通道服务管理器562进行语法分析是为了确定针对不同的事件类型应该调用那些方法和数据结构。然后通道服务管理器562(例如向安全数据库管理器566)发出调用以获取创建部件组690所必须的方法和数据。(如果需要的话,)这些被调用方法和数据结构(如加载模块1100、UDE 1200和/或MDE 1202)都要使用加密/解密管理器556进行加密,然后再使用密钥和标记管理器558进行验证。通道服务管理器562创建所有必须的“跳转表”引用,以便实际将上述元素“链接”或“装配”在一起,形成一个紧密结合在一起的可执行程序,从而使加载模块可以引用数据结构和部件组中的其它加载模块。然后通道管理器562向LMEM 568发出调用,以便将该可执行程序作为一个活动任务进行加载。
图15示意了通道594可以引用另一个通道。通道服务管理器562可以创建任意数目的通道594以便与另一个通道交互作用。
较佳实施例中的通道头596是(或引用)一些数据结构和相关控制程序,这些控制程序将来自通道事件源的事件排入队列,处理这些事件,并释放由“通道详细记录”所指定的供处理的相应任务。在较佳实施例中,“通道详细记录”把一个事件与有关该事件的“交换模块”(即任务)链接在一起。“交换模块”可以引用一个或多个加载模块1100、UDE 1200以及私有数据区,它们是对事件进行正确处理所必须的。对于各个通道能响应的不同事件,均要创建一个交换模块和对应的通道详细记录。
在较佳实施例中,通道服务管理器562为支持通道562的创建和维护,可支持下列的(内部)调用
SPE RPC管理器550前面已经结合图12介绍过,在较佳实施例中,ROS 602的体系结构是基于远程过程调用的。ROS 602含有一个RPC管理器732,RPC管理器732在服务之间传递RPC调用,而这些服务必须都具有与该RPC管理器的接口,即RPC服务接口(“RSI”)。在较佳实施例中,SPE 503(HPE 655)同样构筑在相同的RPC概念之上。SPE 503(HPE655)可以含有大量的模块化内部服务提供者,而每个上述内部服务提供者都向(SPE(HPE)内部的)RPC管理器550提供RSI。这些内部服务提供者可以使用RPC服务请求互相进行通信,并且/或者与其它ROS RPC管理器732进行通信(从而可与ROS 602提供的任何其它服务以及与外部服务进行通信)。
SPE 503(HPE 665)内部的RPC管理器550与图12所示的RPC管理器732不相同,但它却在SPE(HPE)内部执行相似的功能它接收RPC请求,将之传递给特定RSI,该RSI由可处理上述请求的服务所提供。在较佳实施例中,通过SPE(HPE)核心/调度程序552在ROS RPC管理器732和外界(即SPE设备驱动程序736)之间传递请求。核心/调度程序552本身也能够服务某些RPC请求,但它通常将收到的RPC请求传递给RPC管理器550以便转送给SPE(HPE)内部的相应服务。在一个可选的实施例中,可以直接将请求在HPE、SPE、API、通告接口以及其它外部服务之间进行传递,而不是通过ROS RPC管理器732进行转送。具体使用哪种实施例可以体现该系统的可伸缩性的一部分。在不同通信负载和系统配置的前提下,某些实施例要比其它实施例更加有效。服务的响应(以及这些服务自身可以产生的附加服务请求)被送至RPC管理器550,以便再转送至SPE 503(HPE655)内部或外部的其它服务。
SPE RPC管理器550及其集成的服务管理器使用两个表格来发送远程过程调用一个RPC服务表,一个可选RPC调度表。RPC服务表描述的是应该将指定服务转送到何处以便处理。在较佳实施例中,该表格构成在SPU RAM 534a或NVRAM 534b中,它列出了SPU 500中每个注册的RPC服务。RPC服务表的每一行都含有一个服务ID(标识)、服务位置和地址、以及一个控制字节。在简单的实现中,控制字节只表明了该服务是内部提供的还是外部提供的。在某些较为复杂的实现中,该控制字节可用来表明服务的一个实例(例如,在一个多任务环境中,每个服务都可以有多个“实例”)。在较佳实施例中,ROS RPC管理器732和SPE 530可以有RPC服务表的对称拷贝。如果某个RPC服务在RPC服务表中没有出现,SPE 503可以拒绝相应的服务请求,或者将它传递给ROS RPC管理器732,以得到其服务。
SPE RPC管理器550接受来自RPC服务表的请求,并按照特定服务的内部优先权对该请求进行处理。在SPE 503中,RPC服务表被一个RPC调度表所扩充。较佳实施例RPC调度表是每个由SPE 503内部支持的RPC服务对加载模块的引用列表。该表中的每一行都含有一个服务该调用的加载模块ID(标识)、以及一个控制字节,该控制字节表明了相应调用是否可以由外部调用程序发出,以及需要对该调用提供服务的加载模块是否永久地驻留在SPU 500中。可以在SPU固件508被加载到SPU 500中的时候把RPC调度表构成在SPU ROM 532(或EEPROM)之中。如果该RPC调度表在EEPROM中,那么它可以灵活地支持对服务的更新,而不会产生加载模块位置和版本控制问题。
在较佳实施例中,SPE RPC管理器550首先对照RPC服务表查阅某个服务请求,以确定可服务该请求的服务管理器位置。然后RPC管理器550将该服务请求转送给相应的服务管理器进行处理。SPE 503中的服务管理器利用RPC调度表来发送该请求。一旦RPC管理器550在RPC调度表中定位了服务引用信息,那么将利用加载模块执行管理器568来调用和加载对相应请求提供服务的加载模块。加载模块执行管理器568将在执行完所有必要的上下文配置之后把控制权转交给被请求的加载模块,或者如果需要的话加载模块执行管理器568首先发出一个调用用以将加载模块从外部管理文件610中加载进来。
SPU时基管理器554时基管理器554支持与实时时钟(“RTC”)528相关的调用。在较佳实施例中,时基管理器554一直被加载,并准备好对基于时间的请求作出响应。
下表列出了时基管理器554可以支持的基本调用示例
SPU加密/解密管理器556加密/解密管理器556支持对SPE 503/HPE 655所支持的各种加密/解密技术进行调用。可用SPU 500内部一个基于硬件的加密/解密机522来支持加密/解密管理器556。SPU加密/解密机522所不支持的那些加密/解密技术可以由加密/解密管理器556采用软件方式来支持。主要的批量加密/解密加载模块最好一直被加载,而其它算法所需的加载模块则最好在需要时调页进来。这样,如果主要的批量加密/解密算法是DES的话,那么只有DES加载模块才需要永久驻留在SPE 503/HPE 655的RAM 534a中。
下面给出了较佳实施例中由加密/解密管理器556所支持的RPC调用示例
传递的调用参数可以包括所使用的密钥、模式(是加密还是解密)、任何需要的初始化向量、所需的加密操作(如反馈类型)、需使用的加密实例标识、以及需要加密或解密的数据块的起始地址、目的地地址和长度。
SPU密钥和标记管理器558SPU密钥和标记管理器558支持的调用包括密钥存贮、密钥和管理文件标记查找、密钥卷积、以及随机密钥、标记和交易号码的生成。
下表示意了SPE/HPE密钥和标记管理器服务558调用示例的列表
在较佳实施例中,密钥和标记可以在SPE 503(HPE 655)中安全地生成。密钥生成算法通常专用于可支持的各类加密方法。在使用生成的密钥之前可以对之进行检查,以确定该密钥在加密上是否存在某种弱点。向密钥和标记管理器558发出的生成密钥、标记和/或交易号请求最好以长度作为其输入参数。密钥和标记管理器558将生成一个具有所请求长度的随机数(或其它适当的密钥数值),并将之作为输出。
密钥和标记管理器558可支持从SPE 500中的密钥存贮区中检索特定密钥的调用,也可支持检索保存在SUP外部的密钥的调用。这些调用的基本格式是以密钥类型和密钥号请求密钥。通过VDE管理员的干预许多密钥将定期更新,这些密钥存放的位置是SPU 500的NVRAM534b或EEPROM,这是因为这些存贮器具有安全性,可以更新,并且具有非易失性。
SPE 503/HPE 655可以支持公开密钥类型的密钥和批量加密类型的密钥。公开密钥(PK)加密类型的密钥保存在SPU 500中,并由密钥和标记管理器558来管理,这种类型的密钥可以包括(举例来说)一个设备公开密钥、一个设备私有密钥、一个PK证明(certifitate)、以及该证明的一个公开密钥。通常,如果愿意的话可以将公开密钥和证明存放在外部的非安全存贮器中,但设备私有密钥和证明的公开密钥只能内部存放在SPU 500的EEPROM或NVRAM534b中。SPU 500使用的某些批量加密密钥可以包括(举例来说)通用批量加密密钥、管理对象私有头密钥、固定对象私有头密钥、移动对象私有头密钥、下载/初始化密钥、备份密钥、轨迹密钥(trailKey)、以及管理文件密钥。
如上所述,较佳实施例密钥和标记管理器558支持调整或卷积密钥以便生成新密钥的请求,举例来说,新密钥是根据地点和/或时间以确定方式产生的。密钥卷积是某种算法过程,该算法对某个密钥以及某些输入参数进行特定操作,最终生成一个新密钥。它可用来(举例来说)增加可用密钥的数量,而又不致占用额外的空间来保存密钥。通过将实时RTC 528的值作为参数,还可用这种算法来“老化”密钥。通过将某个地点标识的某些部分作为参数,还可用这种算法实现密钥对该地点专用化。
密钥和标记管理器558还提供有关标记生成和管理的服务。在较佳实施例中,交易和访问标记最好由SPE 503(HPE 655)保存在安全的存贮器中(如保存在SPU 500的NVRAM 534b中)。这些标记可由密钥和标记管理器558生成。它们用来(举例来说)检查对数据元素的访问权利、检查数据元素的有效性、并对数据元素进行关联。例如,它们可用来确保安全数据结构中的部件未遭受SPU 500外界的破坏。密钥和标记管理器558还可支持轨迹交易标记(trailtransaction tag)和通信交易标记。
SPU概要服务管理器560SPE 503在SPU 500的可编程非易失性存贮器中和/或安全数据库610中维护了一组检查跟踪数据。检查跟踪数据可以包含金融方面使用的预算行为审核概要,以及SPU使用安全性概要。当向SPU发出一个请求后,SPU将对该请求的发生作出记录,然后观察该请求是成功了还是失败了。所有成功请求将经过统计并按照类型存放在SPU500中。失败信息(包括下面列出的元素)将与失败详情一起被保存起来。
可以对这些信息进行分析,以便检测破坏性的企图,或鉴别超过预期(或预算)限额的使用模式。SPU 500中的检查跟踪历史可以一直保存着,直到将它报告给适当方面为止。这样就可以使系统记录对合法失败的分析以及对SPU进行秘密分析的企图。
概要服务管理器560可以存贮和维护这些内部概要审核信息。审核信息可用来检测安全性受到的侵犯或者SPE 503操作的其它方面。SPE 503(HPE 655)或VDE管理员可维护、分析和使用事件概要,以便发现对电子设备600的不合理使用,并可以对这种使用进行限制。在较佳实施例中,这些参数可以存放在安全存贮器(例如存放在SPU 500的NVRAM 534b)中。
在较佳实施例中,概要服务用于两种基本结构中。一种结构(“事件概要数据结构”)是专用于VDE管理员的,它对事件进行跟踪。事件概要数据结构可在VDE管理员的定期干预之中得到维护和审核。另一个数据结构由VDE管理员和/或分发者用来进行总体预算。在初始化电子设备600时,VDE管理员可以注册事件概要和总体预算概要。(举例来说,)在安全管理文件610遭受破坏的时候,VDE管理员可以得到总体预算概要的报告,并使用该预算概要来确定预算使用的分布情况。得到适当许可的参与者可向概要服务管理器560注册他们的过程(如特定的预算),然后概要服务管理器560可以(例如在NVRAM 534b中)保留出一部分安全存贮器空间,并保存所需的使用和/或访问参数。对每个概要的访问和修改都可以由其自身的访问标记来控制。
下表示意了PPE概要服务管理器560服务调用的列表
在较佳实施例中,事件摘要数据结构使用固定的事件号码在查找表中进行检索。查找表含有一个数值,该数值可以被配置为一个计数器或计数器外加极限。VDE管理员可以使用计数器模式来确定设备使用情况。极限模式则可用来限制破坏,或限制对电子设备600的不合理使用企图。如果发生超出极限的事件,SPE 503(HPE 655)将拒绝服务用户的请求,直到VDE管理员复位SPE 503(HPE 655)为止。对系统范围内的事件概要进程所发出的调用最好编入所有负责处理该事件的加载模块中。
下表示意了较佳实施例事件概要数据结构可以独立计量的事件示例
另外,由较佳实施例概要服务管理器560维护的“货币总体预算”概要数据结构允许对VDE电子设备600进行注册。其第一表项代表货币总体预算花费值,该表项由第一个初始化SPE 503(HPE655)的管理员进行注册。某些货币花费加载模块以及对花费的货币预算进行审核处理的审核加载模块可调用概要服务管理器560以更新货币花费值。某些经过特别授权的加载模块可以具有对货币总体概要的访问权。同时,可以为个体提供者注册附加概要。
SPE验证管理器/服务通信管理器564验证管理器/服务通信管理器564支持用户口令验证以及“证明”的产生和有效性检查调用。它还可支持SPE 503与外部节点或设备(如VDE管理员或分发者)之间的安全通信。在较佳实施例中,它可支持下面的有关有效性验证的服务请求示例
上表中没有包含对安全通信服务的调用。管理器564提供的安全通信服务可以(例如如果需要的话与低层服务管理器582一起)提供基于公开密钥(或其它)询问-应答协议的安全通信。本文前面已经详细论述了该协议。在电子设备600可由多个用户使用的情况下,“证明”对电子设备600标识了这些用户。利用证明授予协议(如Kerberos),VDE软件应用程序可以请求并得到证明。为了授权特定服务,VDE部件可以要求提供证明。
SPE安全数据库管理器566安全数据库管理器566对SPE 503外部的存储器上的安全数据库610中的安全数据库记录进行检索、维护、与存贮。许多安全数据库文件610是以加密形式保存的。因而所有被安全数据库管理器566检索的安全信息在使用之前都必须首先解密。对于由SPE 503(HPE655)生成的、必须存放于安全执行环境之外的安全信息(如使用记录),在经由安全数据库管理器566将之保存到安全数据库文件610中以前,也必须由加密/解密管理器556进行加密。
对于每个加载进SPE 503的VDE项,较佳实施例中的安全数据库管理器566可以对一个主表进行搜索以便找到该VDE项ID,然后对照项中交易标记检查主表中的相应交易标记,以确保提供的项是当前项。安全数据库管理器566可以“散列结构”来维护VDE项ID和交易标记的表,“散列结构”可以分页调入SPE 503,以便快速定位相应的VDE项ID。较小的系统可使用查找表这种方法。在两种情况下,上述表都必须组织成可分页的结构,以便快速地定位VDE项ID。
“基于散列”的方法可用来将表排序成“散列表元”(hashbucket),通过访问“散列表元”可以更加快速和有效地定位表中的项。“基于散列”的方法采用整个项ID的一个子集将VDE项ID进行“散列”,并组织成“散列”表的页。对于每个与该“散列”页相关的项,在该页中都可含有其余VDE项ID和当前交易标记。“散列”表页号码可以从VDE项ID的组成部分中推算出来,这些组成部分的例子有分发ID、条目ID、地点ID、用户ID、交易ID、制作者ID、类型和/或版本等等。散列算法(包括算法本身和被散列的参数)可以由VDE管理员按照地点的不同而进行不同的配置,以便提供最佳的散列页使用率。下面给出了散列页面结构的一个例子
在本例中,对于每个散列页来说,如果其中的项具有相同分发者ID、项ID和用户ID域(对于给定的电子设备600来说,地点ID是固定的),那么该页将包含所有的VDE项ID以及交易标记。因而,可将上述四条信息作为散列算法的参数来使用。
“散列”页自身可以被频繁更新,同时它必须含有交易标记。在每次“散列”页被加载的时候,该交易标记都要经过检查。在每次将“散列”页面写出的时候,也可以对交易标记进行更新。
作为“基于散列”方法的一种替代,如果可更新的项一直比较少的话(比如在消费者专用电子设备600中),那么可为每个可更新项分配一个唯一的顺序地点记录号,并将之作为其VDE项ID的一部分,这样就可以采用查找表的方法。对于每个项,只需要较少字节长度的交易标记。而且可以将所有需要频繁更新的项所含的交易标记组织成一个表存放在诸如SPU NVRAM 534b之类的安全存贮器中。
随机数发生器管理器565随机数发生器管理器565可以产生随机数。如果提供了基于硬件的SPU随机数发生器542的话,随机数发生器管理器565可加以使用以协助产生随机数。
其它SPE RPC服务592SPU 500可以包含其它经授权的RPC服务,其实现方式是使这些服务将它们自身“注册”到RPC服务表中,并将它们的表项添加到RPC调度表中。例如,一个或多个部件组690可以用来提供附加的服务,这些服务可作为SPE 503及其相关操作系统的一个整体组成部分。如果某些服务没有注册在这些表中,那么对这些服务的请求将从SPE 503(HPE 655)中传送出去以便得到外部的服务。
SPE 503性能考虑SPE 503的性能为下列因素的一个函数 所采用的部件组的复杂性 同时的部件组操作的数目 可用内部的SPU内存容量 块加密/解密算法的速度部件组进程的复杂性以及同时运行的部件组进程的数目可能是决定性能主要因素。这两种因素结合起来决定了在任意时刻都必须驻留在SPU 500中的代码量和数据量(最小设备容量),因而也就决定了进程必须划分成的设备大小“块”的数目。与较简单的模型相比,分段技术内在地增加运行时长度。当然,具有较少特性的SPU 500在实现方案中可以选用容量相对更少的RAM 534。使用上面提到的“聚合”加载模块可能会失去配置VDE体系结构的灵活性,同时还可能限制参与者独立更新分离元素的能力,但却可以减少最小的设备容量。可以构成一个非常简单的SPU 500计量方案来以最小的设备资源操作。
SPU 500内存RAM 534的容量对SPE 503性能造成的影响比SPU其它方面的因素更为明显。VDE进程的灵活特性允许使用大量的加载模块、方法和用户数据元素。SPU 500的ROM 532只能容纳较少的上述项,如果数量再多一些,在其中存放就不切实际了。当某个VDE进程被调用的时候,该进程绝大部分所需代码和数据结构需要被动态地加载进SPU 500中。于是SPU 500内的操作系统可将必要的VDE项调入以执行上述进程。SPU 500的RAM 534容量将直接决定单个VDE加载模块加上其所需数据总共可以有多大长度,同时还决定了运行一个VDE进程所需的页交换次数。SPU I/O速度、加密/解密速度以及内存532、534的容量将直接影响设备中所需的页交换次数。使用非安全的外部存贮器,可以减少等待将需要加载进SPU 500中的页交换进来的时间,但仍然会带来对每个页进行加密/解密的代价。
为了保证安全性,SPE 503必须将需要交换到支持SPU 500的外部存贮设备上的每个数据块进行加密并加密封装。同样地,在将这些数据块交换进SPU 500时,SPE 503必须对之进行解密,验证其加密封装,并对之进行验证。于是,对于每个交换块所要进行的数据移动和加密/解密开销将大大地影响SPE的性能。
如果SPU微处理器520不负责移动数据经过加密/解密机522的话,那么微处理器520的性能将不会对它所支持的SPU 503的性能产生很大影响。
VDE安全数据库610VDE 100将可独立传送的VDE元素存贮在分配给各VDE电子设备600的一个安全(如加密)数据库610中。较佳实施例中的数据库610可以存放/管理三种基本类型的VDE项VDE对象,VDE进程元素,以及VDE数据结构。
下表给出了由安全数据库610保存和管理的某些VDE项示例
每个电子设备600可以含有安全数据库610的一个实例,该实例用来安全地维护VDE项。图16示意了安全数据库610的一个例子。本例中的安全数据库610含有下列由VDE保护的项
一个或多个PERC 808;
方法1000(包括静态的和动态的方法“核心”1000,还包括MDE 1202);
静态的UDE 1200a和动态的UDE 1200b;以及
加载模块1100。
安全数据库610还可以包含下面的附加数据结构,这些数据结构的使用和维护是针对管理目的的。
“对象注册”450,它引用了含有一个或多个VDE对象的对象存放仓库728;
名字服务记录452;以及
配置记录454(包括地点配置记录456和用户配置记录458)较佳实施例中的安全数据库610不包括VDE对象300,而是对存放在文件系统687和/或独立对象仓库728中的VDE对象进行引用。不过,不妨先讨论一下VDE对象300,作为了解VDE保护信息的“起始点”。
VDE对象300为了封装信息内容,VDE 100提供了一种与介质无关的容器模型。图17示意了较佳实施例提供的、对象300的“逻辑”结构或格式800。
如图17所示,较佳实施例所采用的通用化“逻辑对象”结构800支持借助任何现用介质进行数字信息内容交付。较佳实施例中的“逻辑对象”可集体指代信息内容;用于操作、记录与/或控制所述信息内容的使用的计算机软件和/或方法;以及适用于所述信息内容和/或所述计算机软件和/或方法的许可、限制、管理控制信息和/或要求。逻辑对象可以也可以不存放在任何给定的电子设备600中,它可以出现也可以不出现在任何给定的电子设备600中或由该电子设备600所访问。逻辑对象的信息内容部分可以组织成包含在,也可以不包含在,或者部分包含在一个或多个对象中的信息。
简要地说,如图17所示,较佳实施例中的“逻辑对象”含有公开头802、私有头804和“私有体”806。“私有体”806含有一个或多个方法1000、许可记录(PERC)808(许可记录808可以包含一个或多个密钥块810)、以及一个或多个数据块或数据区812。可以在“容器”302中将这些元素进行“包装”。在较佳实施例中,上述通用化的逻辑对象结构800适用于不同类型的VDE对象300,这些VDE对象300根据其信息内容的类型和位置的不同被分成了不同类别。
“容器”的概念是一种比较方便的比喻,它用来命名一个元素集合,而这些元素是使用信息内容或执行管理操作所必要的。容器302通常含有识别信息、控制结构和信息内容(如所有权或管理性的数据)。术语“容器”通常用来说明一个信息集合(如Bento/Open Doc与OLE),该信息集合保存在计算机系统的二级存贮系统中,或者可以由计算机系统通过通信网络从“服务器”的二级存贮系统中得到对其的访问。较佳实施例中的“容器”302并不局限如此。在VDE100中,不要求上述信息一定要一起存放、同时被接收、同时被更新、只为一个对象所使用、或只由一个实体所拥有。与上不同,在VDE 100中,容器的概念被扩展化和通用化,它包含实时信息内容和/或联机交互式信息内容,这些信息内容通过有线电缆、广播、或者其它电子通信途径被传送到某个电子设备。
于是,在任何时刻,用户方(就这方面来说还包括其它任何地方)可能不存在“完整”的VDE容器302或逻辑对象结构800。“逻辑”对象可以存在一段特定的时间(或多个时间段),而不是转瞬即逝。上述概念含有“虚拟容器”的思想,在“虚拟容器”中,重要容器元素可以分布在大量不同的位置上,并且/或者它们可以存在于一序列时间段中(这些时间段可以重叠也可以不重叠)。当然,也可以将所有必要的控制结构和信息内容一起存放在VDE 100容器中。这就代表了一个连续从所有存放在单个容器中的所有信息内容和控制结构,到本地无法访问的信息内容或容器专有的控制结构。
尽管至少某些代表对象的数据通常要经过加密,而这样会使其结构变得对外不可见,不过在PPE 650中,对象被逻辑地看成是“容器”302,这是因为其结构和部件是被自动地、透明地解密的。
容器模型可以与较佳实施例所提供的事件驱动进程以及ROS 602很好地合并在一块。在这种模型下,信息内容被方便地划分成小的、易于管理的部分,但其存放方式保持了未加密信息内容的内在的结构化优点。面向对象的容器模型(如Bento/OpenDoc或OLE)还提供了许多必要的“挂接点”,这些“挂接点”可用来插入必要的操作系统集成部件,或用来定义特定于信息内容的各种方法。
详细地说,较佳实施例提供的逻辑对象结构800含有一个公开的(或未加密的)的头802,头802标识了对象,并且还可以标识该对象中的一个或多个权利所有者,以及/或者该对象的一个或多个分发者。私有的(或加密的)头804可以含有公开头中的部分或全部信息,另外,在较佳实施例中,头804还含有一些附加数据。当用户向服务票据交换所、VDE管理员、或SPU 500等进行注册,以期作为某对象300的用户时,上述附加数据可用来对该对象进行验证和识别。作为另外一种可选方案,可以将标识了对象的一个或多个权利拥有者和/或分发者的信息以加密形式放置在加密头804中,同时还可放入任何所述附加验证和识别数据。
每个逻辑对象结构800都可以含有一个“私有体”806,“私有体”806包含或引用了一组方法1000(即程序或过程),这些方法1000控制了对象300的使用和分发。这种可选择地将不同方法1000纳入各个对象的能力对实现一个高度可配置的VDE 100来说是重要的。方法1000执行基本的功能,即定义哪些用户(在适当情况下还包括分发者、客户管理员等)可以或不可以操作对象300。因而,一个对象300可以具有相对较为简单的方法,例如可允许以固定的费用(例如报亭的报纸价格即是固定的。在该价格的允许下,用户可在报纸出版之后一周的时间内读阅报纸)在固定时间段内无限制地观看信息内容。同时,可以用更加复杂的方法(如计帐和使用限制)来控制其它的对象。
图17所示的逻辑对象结构800还可以包含一个或多个PERC808。PERC 808对对象300的使用进行控制,它规定了方法或方法的组合,而为了访问或使用对象或其信息内容,必须使用这些方法或方法的组合。对象的许可记录808可以含有密钥块810,密钥块810可存放为访问存于对象300中的加密信息内容所需的解密密钥。
对象的信息内容部分通常划分成一些称为数据块812的部分。数据块812可以含有任意类型的电子信息,例如“信息内容”,其中包括计算机程序、图象、声音、VDE管理信息等等。数据块812的大小和数目可以由信息内容的制作者来选择。数据块812不必都具有相同的大小(影响大小的因素包括信息内容使用情况、数据库格式、操作系统、安全性和/或其它方面)。对象中的每个数据块812都使用至少一个密钥块810可以增强安全性,虽然并不要求这样做。密钥块810也可以采用一致的或伪随机的方式而涵盖大量数据块812的某些部分。这种涵盖方式将一个或多个密钥应用到对象300、数据库或其它信息实体中的分段的或看似随机的信息内容片段中,从而提供了附加安全性。
许多对象300是由物理媒体和/或通过“通道外”途径分发的(如一个消费者收到对象300后将之再分发给另一个消费者),其中用来传送密钥块810所保护信息内容的同一对象300中可以不含有密钥块810。这是因为VDE对象可以包含那种能够在VDE节点限制之外利用电子方式进行复制的数据。如果该信息内容被加密,上述复制的数据也将被加密,而复制者将无法访问该信息内容,除非他带有正确的解密密钥。对于那些特别需要保障安全性的对象,将采用安全通信技术(下面将要对此进行讨论)以电子方式频繁分发许可记录808和密钥块810,上述的安全通信技术由发送者和接收者的VDE节点来控制。因而,在较佳实施例中,许可记录808和密钥块810只频繁地保存于注册的用户的电子设备600中(同时,作为注册/初始化过程的一部分,许可记录808和密钥块810本身也可以被传递给该用户)。在该例中,可以用只存放于SPU 500安全存贮器中的私有DES密钥对适用于各个所有物的许可记录808和密钥块810进行加密,这样可以使该密钥块对任何其它用户的VDE节点来说都是不可用的。作为另外一种选择方案,可以用最终用户的公开密钥对密钥块810进行加密,使这些密钥块只对那些保存了相应公开密钥的SPU 500可用(或者也可以采用其它足够安全的加密/解密机制)。
在较佳实施例中,用来加密各许可记录808或其它管理信息记录的一个或多个密钥将在许可记录808每次更新时(或在一个或多个特定事件发生之后)被修改。在这种情况下,将使用一个或多个新密钥对更新了的记录重新进行加密。作为另外一种方案,用来加密和解密管理信息的一个或多个密钥可以是“时间老化”密钥,经过一段时间以后这些密钥可以自动失效。同时使用时间老化的密钥和其它的事件触发密钥可能是一种较好的选择。例如,密钥可以在特定次数的访问之后改变,并且/或者可以在经过特定时间段或越过某个绝对时间点之后发生改变。可以针对任意给定的密钥或密钥组合应用上述技术的组合。较佳实施例创建时间老化密钥的过程是一个单向卷积算法,其输入参数包括用户和地点信息以及由SPURTC 528所提供实时时间值中的指定部分。也可以使用其它技术来产生时间老化密钥,(举例来说)某些这样的技术只使用用户或地点信息、绝对时间点、和/或与行为子集相关的时间段,上述行为又与对VDE所保密的信息内容的使用或加密或者对VDE系统的使用有关。
VDE 100支持多种不同类型的、具有图17所示逻辑对象结构800的“对象”300。根据保护信息是否与被保护信息装配在一起,可以对对象进行分类。例如,对于一个容器来说,如果它被它的控制装配到一个指定的VDE节点,那么该容器称为“静止对象”(参看图18)。还有一种容器称为“移动对象”,其特征为其控制信息未将其装配到某个特定VDE节点,而该容器带有足够的控制和许可信息,使它可以在某些地点中的任一个地点都可以被部分地或整体地使用(参看图19)。
还可以根据对象所含信息的特性对对象进行分类。含有信息内容的容器称为“信息内容对象”(参看图20)。含有交易信息、检查跟踪数据、VDE结构、和/或其它VDE控制/管理信息的容器称为“管理对象”(参看图21)。某些容器含有运行于VDE控制之下的可执行码(与VDE控制信息相反),这种容器称为“智能对象”。智能对象支持用户代理,并为用户代理在远程地点执行提供控制。根据地点、类型、以及与对象所含信息内容内容相关的访问机制,还有其它的对象分类方式,这些分类方式可以包含上述分类方式的组合。后面将讨论由VDE 100支持的一些对象。图17中的部分或所有数据块812可以包含“嵌入的”信息内容,管理对象、静止对象、移动对象和/或其它对象。
1.静止对象图18示意了较佳实施例提供的“静止对象”结构850示例。“静止对象”结构850只适用于特定的VDE电子设备/装置中,这些VDE电子设备/装置已接收到了明确的许可以允许它们使用静止对象的一个或多个部分。因此,静止对象结构850不带有许可记录(PERC)808,该许可记录则是被独立地提供和/或交付给设备/装置600(例如在不同时间、通过不同途径、以及/或者由团体进行提供和/或交付)。许多不同的静止对象可以使用相同的PERC 808。
如图18所示,公开头802最好是“明文”(即未加密)。私有头804最好使用多个“私有头密钥”中的至少一个进行加密。私有头804最好还包含来自公开头802中的识别元素拷贝,这样一来,如果明文公开头中的识别信息被破坏了的话,系统可以精确地查明破坏者试图改变的是什么。方法1000可以包含在一个称为“私有体”806的部分中,其存放形式可以是本地对象方法、加载模块、以及/或者用户数据元素。私有体(方法)部分806最好使用保存在分开的许可记录808中的一个或多个私有体密钥进行加密。数据块812则包含信息内容(信息或管理数据),这些信息内容可以使用同样由许可记录808提供的一个或多个信息内容密钥进行加密。
2.移动对象图19示意了较佳实施例提供的“移动对象”结构860示例。移动对象带有足够的信息,根据这些信息,当它们到达某个VDE节点以后,它们带有的至少部分信息内容可以至少被部分使用。
移动对象结构860在私有头信息804中带有一个许可记录(PERC)808,除此之外,移动对象结构860与静止对象结构850可以是相同的。移动对象结构860中的PERC 808允许该移动对象可以在任何VDE电子设备/参与者600中使用(按照方法1000和所含的PERC 808)。
“移动”对象是VDE对象300中特别支持“通道外”分发的一类对象。因此,它们包含密钥块810,并且可以从一个电子设备600传送到另一个。移动对象带来的使用预算相当有限,因而用户可以或者全部或者部分地使用其信息内容(如计算机程序、游戏或数据库),并权衡是获取使用许可或进一步使用许可呢,还是购买对象信息内容。作为另一种方案,移动对象PERC 808可以包含或引用预算记录,这些预算可以是(a)反映了先前购买的权利,或反映了将来获取许可或进行购买的所需信用,并且允许对至少一类或多类对象信息内容进行使用的预算,与/或(b)使用(并可以透支)特定的可用信用以允许使用对象信息内容的预算,上述信用保存于本地VDE节点中,并受本地VDE节点控制。与/或(c)在要求向本地VDE节点提交报告(同时也可以选择向票据交换所提交报告)之前,反映一个或多个最大使用限额的预算,在提交上述报告之后,所反映的限额可以被复位,以便允许进一步使用和/或修改原始一个或多个预算之中的一个或多个。
对于标准的VDE对象300,在用户可用的预算已经用完之后,如果用户希望继续使用移动对象,用户可能需要与票据交换所联系,以便获得额外的预算。另外,如果移动对象(或其拷贝)移动到了另一个电子设备中,而新设备没有足够的可用信用预算以满足许可记录808所提出的要求时,可能还需要用户与票据交换所联系以便获得额外预算。
例如,移动对象PERC 808可以含有一个引用,该引用指向了一个所需的预算VDE 1200或某些预算选项,预算VDE 1200或上述预算选项可能存在,并且/或者被预期为可用的。例如,预算VDE可以引用消费者的VISA、MC、AMEX或者其它“一般”预算,这些预算可以是与对象无关的,并且可以适用于某个或某些类移动对象信息内容(例如,一类移动对象中的任何电影对象,该电影对象可能是B1ockbuster录像带出租品)的使用。该预算VDE本身可以限定它可以使用的一类或多类对象,同时,一个对象可以特别引用特定的一个或多个一般预算。在这种情况下,VDE提供者通常以允许对信息进行正确的引用,并支持计帐处理和帐单结付的方式,使信息可以利用。
移动对象可以用在接收VDE节点电子设备600上,其前提条件是或者该设备带有正确的预算或预算类型(如可从票据交换所获得的充足信用,诸如VISA预算),这些预算或预算类型既可以是一般类型的也可以是特定于一个或多个用户或用户类别的;或者该移动对象本身带有充足的预算容许额或适当的授权(比如某个协约,移动对象可以将该协约应用于特定的一个或多个设备或设备类型,或应用于特定的一个或多个用户和用户类型,此处的类型对应于设备或用户的一个指定子集,而这些设备或用户则由存放在安全数据库610中的预定义类型识别码所指代)。收到该移动对象以后,如果用户(和/或设备)不带有适当的预算和/或授权,那么电子设备600可(利用保存在移动对象中的信息)通知用户他们可以与哪个或哪些团体进行联系。这个或这些团体可能含有该移动对象可用的可选票据交换所提供者清单,用户可以从该清单中选择他希望的联系方。
如上所述,移动对象使对象300可以在“通道外”分发。这就是说,未授权的或未明确授权的个体可以将对象分发给另一个体。“通道外”所含的分发渠道(举例来说)允许用户直接将一个对象重新分发给另一个体。例如,一个对象提供者可以允许用户将某个对象的拷贝重新分发给他们的朋友或同事(例如可以借助存储介质进行物理地交付,或借助计算机网络传递)。于是,如果某个朋友或同事满足了使用所述对象的任何特定条件后,他便可以使用该对象。
例如,如果某个软件程序作为移动对象被分发,那么假如该程序的用户希望将该程序或该程序的一个可用拷贝提供给他的朋友,该用户通常可以不受任何约束地这样做。移动对象具有巨大潜力的商业价值,其原因在于,这样可以主要由用户和公告版系统来分发有用的信息内容,而除了需要向“原始”信息内容提供者和/或票据交换所注册以外,通过用户和公告版系统进行分发所需的分发开销很小或者根本没有。
“通道外”分发方式可允许提供者收取再分发对象的使用费用,并且/或者使提供者对再分发对象维持至少一定程度的控制。这里面的某些限制可以包括(举例来说)在用户的VDE节点注册被授权的第三方财务关系(如信用卡),以及使用再分发对象所需的充足信用。
于是,如果用户拥有一个VDE节点,用户可以被允许使用移动对象,其条件是用户在其VDE节点(根据需要也可以是分配给他的VDE节点)中带有适当的可用预算,以及/或者该用户或其VDE节点属于一个经过特别授权的用户组或设备组,以及/或者该移动对象带有自身预算。
由于移动对象的信息内容经过了加密,所以只有在经过授权的情况下才可以使用该对象,除非使用该对象所需的移动对象私有头密钥被破解。破解移动对象的私有头密钥(举例来说)与破解许可和/或预算信息相比,前者可能是相对较为容易一些,这是因为许多对象可共享同一个密钥,这就在密文方面给了破译者更多的信息以供分析,同时更加刺激破译者进行密码分析。
在“移动对象”的情况下,信息内容拥有者可以将封装有该信息内容的对象300中所含的某些或全部密钥块810与信息内容信息一同分发。将密钥放入被分发的对象300中将增大安全保护机制受威胁的程度。(通过确定私有头的加密密钥)破解或密码分析用来保护保密头的加密算法对安全机制造成威胁。这种对安全性的破坏通常需要相当高的技术和相当长的时间,但是如果一旦造成破坏,加密算法和密钥将会被公开出去,而如果大量的人所拥有的对象使用了相同密钥和算法进行加密,那么这些人将因而得以对被保护的信息进行非法使用。所以,将密钥放入被分发的对象300中只限于某些情况,即或者信息内容具有“时间敏感性”(即过了特定的时间以后,这些信息内容的价值将会降低);或者这些信息内容的价值有限;或者将密钥放入对象中带来的商业价值(例如给最终用户带来了方便性、由于省去用远程通信或其它途径传送密钥和/或许可信息而使成本更为降低、以及/或者能够支持利用“通道外”方式传递对象)超过了由于破译高手发现破绽所引起的损失。如前所述,可以采用卷积技术避免将“真正”的密钥存放在移动对象中从而提高密钥的安全性,虽然在大多数情况下,使用VDE管理员提供给大多数或所有VDE节点共用的一个密码作为输入,而不是用站点标识和/或时间作为输入,以便对象与这些值无关。
如图19所示,前面已经讲过,移动对象带有一个许可记录808,该许可记录808最好提供至少某些预算(在通常情况下包括一个预算、其它预算或两者都包括)。如上所述,许可记录808可以含有一个密钥块810,该密钥块810保存了重要的密钥信息。PERC 808还可以含有或引用某些预算,这些预算包含了有潜在价值的数量/数值。这种预算可以存放在移动对象本身之中,或者也可以将这些预算独立交付,并且可以使用高度安全的通信密钥和管理对象以及管理数据库技术对之加以保护。
移动对象所包含方法1000通常含有一个安装过程,该安装过程使用对象中的许可记录808来“自我注册”对象(例如该方法是一个注册方法)。对于某些对象来说,上述特性是特别有用的。这样的对象包括价值受时间限制的对象;最终用户使用免费或缴费极低的对象(或所有物)(例如向广告商和/或信息公布员的使用费用的收取标准要取决于实际访问过被公布信息的那些最终用户的数目);所需的预算在各处都可获得并且通过通道外分发可以获得特别受益的对象(这种预算的例子是由信用卡得到的预算,这些预算适用的范围包括诸如电影、软件程序、游戏等所有物的对象)。这些移动对象可以含有也可以不含有预算UDE。
移动对象的一个用途是公布软件。此时,所含的许可记录可允许潜在消费者在演示模式下使用该软件,同时在支付许可费用之前或除起始试用费之外进行更多支付之前的一段有限时间之内可以使用所有程序特性。例如,结合预安装的少量时间预算,使用基于时间的计帐方法和预算记录,可以允许在短时期内对程序进行完整地使用。可以使用各种各样的控制方法以避免对对象信息内容进行非法使用。例如,通过将移动对象的最短注册间隔适当地设置成一个较长的时间(如一个月、半年或一年),可以禁止用户重新使用同一移动对象中预算记录。
控制对移动对象进行使用的另一种方法是在移动对象的许可记录中放置逐渐衰老的密钥。使用这种方法通常是为了确保在没有重新注册的情况下对移动对象的使用不会超过某个日期,这种方法对于那些通过广播、网络或电信(包括单向的和双向的有线电缆)等电子方式分发的移动对象来说特别有用,这是因为可以将这种移动对象逐渐衰老密钥的交付日期和时间精确地设置成用户开始拥有该对象的时间。
移动对象还可用来简化将对象从一个电子设备100“移动”到另一个的过程。用户可以从一台桌上型计算机中将一个移动对象连同其内置的一个或多个许可记录808一起移动到其笔记本计算机中。移动对象可以在其内部注册其用户,因而只有该用户一个人才能使用该移动对象。移动对象可以维护单独的预算信息,一个用于基本的分发预算记录,一个用于注册用户的“活动”分发预算记录。采用这种方式,该对象可被拷贝并传送给另一个潜在用户,并且成为该用户的可携带对象。
移动对象可以放在一个容器中,而该容器还同时含有其它对象。例如,一个移动对象容器可以包含一个或多个信息内容对象以及一个或多个管理对象,该管理对象用于在最终用户的对象注册处注册对象,并且/或者提供机制以强迫执行许可和/或其它安全性功能。所含的管理对象可用于在最终用户的电子设备中安装必要的许可记录和/或预算信息。
信息内容对象图20示意了VDE信息内容对象结构880的示例。通常,信息内容对象880包含或提供信息信息内容。这种“信息内容”可以是任意类型的电子信息。例如,信息内容可能包括计算机软件、电影、书籍、音乐、信息数据库、多媒体信息、虚拟现实信息、机器指令、计算计数据文件、通信报文和/或信号、以及其它信息,其中的至少一部分是由一个或多个电子设备使用和/或处理。经过配置,VDE还可以用来鉴定、控制和/或审核电子商业交易和通信,这些商业交易和通信的例子有银行间交易,电子购物通信、以及对通过电子签名的合同及其它法律文书进行的传送、审核以及安全的、商业化的存档。这些交易中所使用的信息也可以称为“信息内容”。如上所述,信息内容不一定要物理地存放在对象容器中,它可以在不同的时间被独立地提供(如通过有线电缆发送的实时输入)。
在图20所示的特定例子中,信息内容对象结构880是一类静止对象,这是因为它不带有PERC 808。在该例中,信息内容对象结构880含有至少一个如图5A所示的嵌入式信息内容对象882,并将嵌入式信息内容对象882作为其信息内容812的至少一部分。信息内容对象880还可以包含管理对象770。因而,较佳实施例提供的对象可以含有一个或多个“嵌入式”对象。
管理对象图21示意了较佳实施例提供的管理对象结构870示例。“管理对象”通常含有与VDE 100操作有关的许可、管理控制信息、计算机软件和/或方法。管理对象还可以含有与VDE 100操作有关的使用记录和/或其它信息。管理对象区别于信息内容对象的地方在于它不含受VDE保护的、用以发放给最终用户的“信息内容”。由于对象可以包含其它对象,一个单一对象可能包含一个或多个包含信息内容的对象,及一个或多个管理对象。管理对象可以为更新、使用报告、计帐和/或控制的目的,在电子设备之间传送信息。它们含有的某些信息有助于管理VDE 100,并使之正常运行。通常在两个VDE节点之间传送管理对象。这些VDE节点的例子有VDE票据交换所服务、分发者、客户管理员和最终用户的电子设备600。
本例中的管理对象结构870含有公开头802、私有头804(它带有一个PERC 808)以及包含方法1000的“私有体”806。在图20所示的特定例子中,管理对象结构是一类移动对象,这是因为它带有一个PERC 808。不过管理对象可以不带有PERC 808而变成静止对象。管理对象结构870不保存信息内容,而是保存“管理信息内容”872。管理信息内容872可以(举例来说)包含大量的记录872a、872b,...872n,每个记录对应于一个不同的“事件”。每个记录872a、872b,...872n可以包含一个“事件”字段874,并可以可选地包含一个参数字段876以及/或者一个数据字段878。这些管理信息内容记录872可以由VDE 100用来定义交易过程可能要处理的事件,例如,一个用来向安全数据库增加记录的事件可能包含参数896和数据字段878,其中,参数896表明记录如何存贮和存贮何处站,而数据字段878则包含了需要增加的记录。在另一个例子中,一组事件可以定义在管理对象的制作者和收件人之间的财务交易,例如一项购买、一个订购单或一张发票。每个事件记录872都可以是一组指令,这组指令由最终用户的电子设备600执行,从而对最终用户的安全数据库610进行增加或修改(举例而言)。事件可以执行许多基本管理功能,例如,向对象注册处添加对象,这包括提供相关的用户/组记录、权利记录、许可记录和/或方法记录;删除审核记录(例如将审核跟踪记录聚集成一个更为紧缩的概要表格,或者进行实际删除);为以前注册的对象增添或更新许可记录808;增加或更新预算记录;增加或更新用户权利记录;以及增加或更新加载模块。
在较佳实施例中,管理对象可以由(举例来说)分发者、客户管理员、票据交换所或其它财务服务提供者等发送到最终用户,或者也可以由对象制作者发送给分发者或服务票据交换所。管理对象可以(举例来说)对接收了管理对象的那些VDE节点的预算和/或许可进行增加或调整。类似的,那些在事件记录872的数据区878中包含了审核信息的管理对象可以从最终用户发送给分发者、票据交换所和/或客户管理员,后者可能再将管理对象发送给对象制作者或对象处理链中的其它参与者。
方法较佳实施例中的方法支持在使用对象以及与分发者通信过程中用户所遇到的多种操作。它们还可指定哪些方法字段可以显示给用户(如使用事件、用户请求事件、用户响应事件以及用户显示事件)。另外,如果某个方法支持分发功能,那么该方法可以支持分发活动、分发者与用户进行有关方法、方法的修改、确定哪些方法字段可以向分发者显示、以及对分发数据库的任何检查以及记录保存(如分发事件、分发者请求事件以及分发者响应事件)的通信。
鉴于现有方法结构的一般性,以及装配方法的多种可能性组合,可使用一个通用化的结构来建立方法之间的关系。由于方法1000可以独立于给定会话中需要它的对象,所以不可能在方法本身之中定义上述关系。在较佳实施例中,使用“控制方法”来定义方法间的关系。控制方法可以是特定于对象的,并可以在每次会话中适应单个对象的要求。
对象的控制方法建立与其它方法的关系。当在注册进程中创建记录集合(这些记录集合反映了对应于每个所需方法的所需方法选项)的时候,这些关系由明确的方法标识符参数化。
在较佳实施例中,“聚合方法”代表了一组方法,这些方法可以被看成是一个整体。与特定所有物相关的一组方法可以被存放在一个“聚合方法”中。从实现角度来看,这种聚合方式是有用的,这是因为它可以降低簿记开销并提高数据库的总体性能。在其它情况下,当方法间存在逻辑相关性时,也可以把这些方法聚合起来。例如,两个预算可以会被链接在一起,这是因为其中一个代表了总体限额,而另一个则代表了当前可用的限额。当一个大额预算随着时间以小额形式发放时,上述情况就可能出现。
举例来说,一个含有计量、计帐和预算进程的聚合方法可用来代替独立的三种方法。这个聚合方法可以引用单个“加载模块”1100,而该加载模块1100可执行上述三个独立加载模块的所有功能,而只使用一个用户数据元素,该数据元素包含计量、计帐和预算数据。使用聚合方法而不是三种独立的方法可以最大限度地降低总体存贮器需求、数据库搜索次数、解密次数、以及将用户数据元素回写到安全数据库610的次数。使用聚合方法而不是三种独立的方法的缺点在于在提供者和用户方面将损失一些灵活性,因为许多功能将不能再被独立地替换了。
图16示意了方法1000,这些方法是安全数据库610的一部分。
较佳实施例中的“方法”1000是基本指令和信息的集合,而信息则与基本指令相关联。这些基本指令和信息提供了为执行和/或准备执行基本指令所需的上下文、数据、要求和/或关系,这些基本指令与一个或多个电子设备600的操作相关联。如图16所示,在较佳实施例中,方法1000由安全数据库610中的下列部分表示 方法“核心”1000N 方法数据元素(MDE)1202 用户数据元素(UDE)1200 数据说明元素(DTD)较佳实施例中的方法“核心”1000N可以包含或引用一个或多个数据元素如MDE 1202和UDE 1200。在较佳实施例中,MDE 1202和UDE 1200可以带有相同的一般特性,它们之间的主要区别在于UDE最好与一个特定方法、一个特定用户或一组特定用户结合在一起,但MDE可与一个特定方法结合在一起,而与用户无关。较佳实施例中,MDE和UDE数据结构1200、1202用来向方法1000提供输入数据,或接收方法的输出数据,或者两者兼做。MDE 1202和UDE 1200的传递可以独立于引用它们的方法核心1000N进行,或者这些数据结构可以作为方法核心的一部分进行传递。例如,在较佳实施例中,方法核心1000N可以含有一个或多个MDE 1202和/或UDE 1200(或其中一部分)。作为另一种选择或作为一种补充方式,方法核心1000N可以或另外引用一个或多个MDE和/或UDE数据结构,而这些数据结构是独立于引用它们的方法核心进行传递的。
在较佳实施例中,方法核心1000N还引用一个或多个“加载模块”1100。较佳实施例中的加载模块含有可执行代码,并且还可以包含或引用一个或多个称为“数据说明符”(DTD)信息的数据结构。该“数据说明符”信息可以(举例来说)向DTD解释程序590提供数据输入信息。DTD可使加载模块1100能够访问(如读出和/或写入)MDE和/或UDE数据元素1202,1200。
方法核心1000’还可引用一个或多个包含了其操作正文说明的DTD和/或MDE数据结构,这些操作正文说明适于作为电子合同的一部分。对DTD和MDE数据结构的引用可以出现在方法核心1000’的私有头中,也可以定义成事件表的一部分,后面将要讲到事件表。
图22示意了较佳实施例提供的方法核心1000N的格式示例。较佳实施例中的方法核心1000N含有一个方法事件表1006和一个方法局部数据区1008。方法事件表1006列出了“事件”,这些事件每一个都引用了控制事件处理的“加载模块”1100和/或PERC 808。与表中所列各事件对应的是向加载模块1000或许可记录808提供参数所必须的任何静态数据,以及对方法用户数据区1008的引用,这些引用用来支持事件的处理。为加载模块1100提供参数的数据可以部分地认为是对该加载模块的一个特殊函数调用,而与之相对应的数据元素则可以被认为是上述特殊函数调用的输入和/或输出数据。
方法核心1000N可以由单个用户专用,也可以被大量用户共享(举例而言,这要取决于方法核心和/或特定用户数据元素的唯一性)。特别地,每个用户/组都可以拥有其自己的UDE 1200,并使用共用的方法核心1000N。比起将整个方法核心1000N与一个用户/组关联来说,上述的结构将使数据库的开销更低。为了使用户能用一个方法,可以向用户发送方法核心1000N,该方法核心指定了一个UDE1200。如果所在地的安全数据库610中已经含有了方法核心1000N,那么只需要添加UDE 1200。作为另外一种选择,方法可以在注册的时候创建所有必须的UDE 1200。
在图22中,由较佳实施例所提供的方法核心1000N格式示例包含公开(未加密)头802、私有(加密)头804、方法事件表1006、以及方法局部数据区1008。
下表给出了方法核心1000N公开头802可能的字段布局示例
下表示意了私有头804的可能字段布局示例
再参看图22,较佳实施例中的方法事件表1006可以含有从1到N的方法事件记录1012。每个上述方法事件记录1012都对应于一个不同的事件,由方法核心1000N代表的方法1000对该事件作出响应。在较佳实施例中,根据所响应事件的不同,这些方法1000可以具有完全不同的行为。例如,为响应对应于用户使用一个对象或其它资源的事件,AUDIT(审核)方法可以在审核跟踪UDE 1200中保存某些信息。而同一AUDIT(审核)方法可以将所保存的审核跟踪向VDE管理员或其它参与者进行报告,以作为对管理事件的响应,这种管理事件诸如(举例来说)VDE节点中的计时器计时终止或其它VDE参与者发来了报告审核跟踪的请求。在较佳实施例中,每一个上述不同事件都可以用一个“事件代码”来代表。该“事件代码”可以在某个方法被调用时作为参数传递给该方法,它可以用来在方法事件表1006中“查找”适当的方法事件记录1012。接下来,选定的方法事件记录1012指定用来创建部件组690的适当信息(如加载模块1100,数据元素UDE和MDE 1200、1202,以及/或者PERC 808),该部件组690将响应所发生的事件而投入执行。
于是,在较佳实施例中,每个方法事件记录1012都可以包含事件字段1014、LM/PERC引用字段1016、以及任意数量的数据引用字段1018。较佳实施例中事件字段1014可含有一个“事件代码”或标识相应事件的其它信息。LM/PERC引用字段1016可提供对安全数据库610的引用(或其它“指针”信息),该引用标识了某个加载模块1100和/或某个PERC 808,该加载模块1100和/或PERC 808提供(或引用)了特定的可执行码,该执行码要被加载和执行,以便执行用来响应上述事件的方法。数据引用字段1018可以含有对UDE 1200或MDE 1202的引用信息。这些数据结构可以包含在方法核心1000N的方法局部数据区1008中,也可以作为独立可传递信息而保存在安全数据库610中。
下表示意了方法事件记录1012的一个可能更详细的字段布局示例
加载模块图23示意了较佳实施例提供的加载模块1100示例。通常,加载模块代表了基本功能的集合,这些基本功能用来对操作进行控制。
加载模块1100含有代码和静态数据(静态数据在功能上与代码是等价的),它用来执行VDE 100的基本操作。加载模块1100通常被系统中所有对象的所有控制结构共享,不过也允许独占的加载模块存在。加载模块1100可以在管理对象结构870中在VDE参与者之间传递,并通常保存在安全数据库610中。在上述两种情况中,加载模块1100总要经过加密和鉴别。当方法核心1000N引用加载模块1100时,该加载模块即被调入SPE 503,经过解密后,或者被传送给电子设备微处理器以便在HPE 655中执行(如果HPE 655是它执行的地方),或者保留在SPE中(如果SPE 503是它执行的地方)。如果没有SPE 503的话,该加载模块在执行前可能先要经过HPE 655解密。
由各个团体创建加载模块最好受一个确认进程的控制,或由基于环的SPU体系结构进行控制。于是,创建新加载模块的进程本身即是一个受控进程,和替换、更新或删除已经保存在安全数据库610中的加载模块的进程一样。
加载模块100只有在SPU 503或HPE 655的受保护环境中才能执行其功能,其原因在于,只有这样加载模块才有权访问它需要操作的受保护元素(如UDE 1200或其它加载模块1000)。在该环境中,起动加载模块执行中严格受控于访问标记、确认标记、加密密钥、数字签名和/或关联标记的组合。因此,调用者只有在知道加载模块1100的标识并能确立特定于该加载模块的共享保密关联标记时,才能引用该加载模块。执行解密操作的SPU在解密加载模块之后,可将识别标记和加载模块的本地访问标记进行匹配。采用这种技术,对任何加载模块所做的物理替换都可在下次对之进行访问时检测出来。而且,在较佳实施例中,可以将加载模块1100设置成“只读”。加载模块1100的只读特性将禁止对加载模块进行回写,而在非安全环境中,回写将破坏加载模块。
加载模块不一定由控制它们的PERC 808直接管理,也不一定带有任何时间/日期信息或过期日期。在较佳实施例中,仅有的控制手段体现在一个或多个方法1000使用关联标记(关联标记是由加载模块所有者创建的、有关受保护对象的一个数值,关联标记被传递给经过授权的团体并存放在其方法中,对关联标记访问和使用由一个或多个PERC 808来控制)来引用加载模块。如果某个方法核心1000N引用了一个加载模块1100并能够确立正确的关联标记(并且该加载模块通过了为在SPE 503内执行而进行的内部防破坏检查),那么该加载模块将可以被加载和执行,或可以从其它系统所获取,可以运送给其它系统,或者可以被其它系统所更新和删除。
如图23所示,较佳实施例中的加载模块1100可能包含公开(未加密)头802、私有(加密)头804、包含加密可执行码的私有体1106、以及一个或多个数据说明元素(“DTD”)1108。DTD1108可以存放在加载模块1100中,也可以是对安全数据库610中静态数据的引用。
下表给出了加载模块公开头802可能的字段布局示例
许多加载模块1100含有在SPE 503中执行的代码。而某些加载模块1100含有在HPE 655中执行的代码。这就允许方法可以选择合适的环境执行。例如,可以让一个INFORMATION(信息)方法仅在SPE503安全空间中执行政府类的安全级,而在HPE 655中执行商业应用。如上所述,加载模块公开头802中可含有一个“执行空间代码”字段,该字段表明了加载模块1100需要执行的空间。此项功能还支持不同SPE指令集以及不同的用户平台,同时该功能还使方法的创建不依赖于低层的加载模块指令集。
加载模块1100对三个主要的数据区进行操作,它们是堆栈、加载模块参数和数据结构。执行加载模块1100所需的堆栈和运行内存大小最好在私有头804中说明。与来自关于加载模块调用、返回、以及任何返回数据区的栈图象的数据说明也一样。对堆栈和动态区的说明使用了相同的DTD机制。下表给出了加载模块私有头1104的可能布局示例
每个加载模块1100还可以使用DTD 1108信息产生必要的信息以支持从加载模块中创建方法。DTD信息中含有定义和范围,前者用S6ML之类的语言书写,它描述的是加载模块所支持的所有方法数据字段的名字和数据类型;后者规定了可以放入字段的数值的可接受范围。其它DTD可以英文形式说明加载模块的功能,(举例来说)这些内容是为加入电子合同之用。
加载模块1100的下一部分是一个加密的可执行体1106,可执行体1106包含了一个或多个加密代码块。加载模块1100最好用其执行环境的“原来”指令集进行编码,以便获得较高效率和紧凑性。SPU 500以及平台提供者可以提供标准加载模块1100版本,以便使他们的产品可以与VDE 100计划采用各种分发机制的信息内容协同工作。较佳实施例创建并使用原来模式的加载模块1100来代替“解释的”或“p-代码”实现方案,从而使资源有限的SPU性能达到最优。不过,如果存在充足的SPE(或HPE)资源,并且或者平台具有足够的资源的,也可以采用其它实现方案,以便提高加载模块的跨平台使用能力。
下表给出了加载模块DTD 1108的字段布局示例
加载模块1100对DTD 1108的使用方式包括下面的例子
将数据区DTD4中的数据元素(该数据元素由DTD3中的名字来定义)数值增加DTD1中的数值
将数据区DTD4中的数据元素(该数据元素由DTD3中的名字来定义)数值设置为DTD3中的数值。
按照DTD3中的表格对来自DTD1内事件的原子元素进行计算,并将结果返回至DTD2中
按照DTD3中的公式对来自DTD1内事件的原子元素进行计算,并将结果返回至DTD2中
根据由DTD3引用的加载模块创建模板创建加载模块
使用DTD4中的内容修改DTD3中的加载模块
撤除在DTD3中指名的加载模块如果空间允许的话,可将公用的加载模块1100内置于SPU 500中。使用内置加载模块1100的VDE进程与必须查找、加载、解密外部加载模块的那些进程相比,前者性能更为突出。最为有用而应该内置于SPU中的加载模块1100包括计量加载模块、固定价格计帐加载模块、预算加载模块以及聚合了执行上面三种进程的方法的加载模块。
用户数据元素(UDE)1200和方法数据元素(MDE)1202在较佳实施例中,用户数据元素(UDE)1200和方法数据元素(MDE)1202用来存放数据。较佳实施例提供了多种UDE 1200和MDE1202。在较佳实施例中,每个上述不同类型的数据结构都共享通用的整体格式,这包括通用头定义和命名方案。其它共享该通用结构的UDE 1200包含“局部名服务记录”(下面马上就要对此进行解释)以及连接其它VDE参与者使用的帐户信息。这些元素没有必要与单独的用户相关联,所以被视为MDE 1202。如果需要的话,较佳实施例提供的所有UDE 1200和所有MDE 1202(如图16所示)都可以被存贮在安全数据库610中一个共用物理数据表内。并且,可以共用数据库访问进程来访问所有这些不同类型的数据结构。
在较佳实施例中,PERC 808和用户权利表记录是两种类型的UDE1200。还有其它类型的UDE 1200/MDE 1202,包括计量器、计量器跟踪、预算、预算跟踪、以及审核跟踪。如上所述,上述各种UDE/MDE的各种格式由DTD 1108中的SGML来定义。方法1000使用上述DTD以正确地访问UDE/MDE 1200、1202。
安全数据库610保存两种类型的项静态的和动态的。静态数据结构及其它项用于实质上为静态的信息。这包括加载模块1100、PERC808以及方法的许多部件。这些项不常更新,它们包含过期日期,用来防止“老”的信息拷贝被新接收到的条目所替换。在存储在安全数据库610中时,可使用特定于站点的安全数据库文件密钥对这些项进行加密,然后在将它们加载进SPE的时候用相同的密钥对之进行解密。
动态的项用来支持必须频繁更新的安全条目。许多方法的UDE1200在每次使用之后都必须被更新并从SPE 503中写出。计量器和预算是两个常见的例子。使用过期日期不能有效地防止对预算UDE1200旧拷贝的替换。为了保证这些频繁更新项的安全,当每次更新这些项的时候,将生成一个交易标记并将之纳入被加密的项中。系统将维护所有VDE项ID的清单以及每个项的当前交易标记,并把这些信息作为安全数据库610的一部分。
图24示意了较佳实施例提供的用户数据元素(“UDE”)1200示例。如图24所示,较佳实施例中的UDE 1200含有公开头802、私有头804、以及数据区1206。每个上述用户数据元素1200的组织结构通常都由保存于DTD 1108中的SGML数据定义来定义,而该DTD1108与操作该UDE 1200的一个或多个加载模块1100相关联。
一旦将UDE 1200载入某个站点以后,最好使用一个特定于该站点的密钥对该UDE 1200进行加密。该特定于站点的密钥屏蔽了某确认标记,该确认标记可以由SPE 503从具有强加密特性的伪随机数序列中得到,在记录每次写回安全数据库610中的时候,该确认标记要被更新。这种技术可以合理地保障UDE 1200在下次需要被系统使用的时候没有被破坏或替换。
计量器和预算可能是VDE 100中最常见的数据结构。它们用来对事件进行计量和记录,还可以对事件进行限制。计量器和预算数据结构由信息内容提供者或经过授权可以修改该信息的分发者/再分发者来决定。不过,计量器和预算通常都含有以通用头格式存放的共同信息(如用户标识、站点标识、以及相关标识信息)。
信息内容提供者或分发者/再分发者可以规定每个计量器UDE和预算UDE的数据结构。尽管这些数据结构会随着特定应用的不同而变化,但某些数据结构比其它数据结构更具通用性。下表列出了METER(计量器)和BUDGET(预算)方法中某些更为常见的数据结构
上表中的信息并非完整或详实,它只是试图示意可以保存于计量器和预算相关数据结构中信息类型示例。特定计量器和预算的实际数据结构由一个或多个DTD 1108来决定,该DTD 1108与创建和操作该数据结构的加载模块1100相关联。经过适当授权的团体可以扩展由VDE 100的DTD解释程序590所允许的数据结构类型。
图25示意一个特别有用的UDE 1200数据区1206示例。该数据区1206定义了一个可用来记录使用信息的“图”。举例而言,一个计量方法1000可以维护一个或多个“使用图”数据区1206。从保存一个或多个信息位的角度看,使用情况图可能是一个“使用位图”(即一维或多维位图),上述信息位对应于使用的一个或多个种类或类别。在引用以前的使用方面,使用位图是一种有效的手段。例如,计量器方法1000可以利用使用图数据区来记录信息内容中用户已支付其使用的所有可应用部分,这样就可以提供一种十分有效和灵活的方法,以允许后续用户使用信息内容的相同部分。这种方法可以支持某些与VDE相关的安全性功能,例如“连续性”、“逻辑相关性”、“使用随机化”、以及其它使用类型。可为其它使用模式分析“使用图”(这些使用模式的例子包括数量的折扣,以及允许用户重新访问一个信息内容,而该用户以前已经支付了无限使用该信息内容的费用)。
较佳实施例提供的“使用图”概念可以与“原子元素”概念结合。在较佳实施例中,可以以“原子元素”来计量对象300的使用。在较佳实施例中,涉及计量的“原子元素”定义了使用的一个单位,即该使用单位可作为一条“足够有效”的信息而被记录于一个计量器中。对构成“原子元素”的定义由对象300的制作者来决定。例如,可以将对象300中信息内容的一个“字节”定义为一个“原子元素”,也可将数据库的一个记录定义为一个“原子元素”,也可将电子出版书籍中的一章定义为一个“原子元素”。
对象300可以带有重叠原子元素的多个集合。例如,对大量数据库中任一数据库的存取可被定义为一个“原子元素”。同时,大量数据库中任何一个的任意记录、记录字段、信息区段、以及/或者任意字节的存取都可被定义为一个“原子元素”。在一个电子出版的报纸中,每一文章的百字的篇幅都可以被定义为“原子元素”,同时,长度超过某一特定值的文章可以被定义为另一组“原子元素”。报纸的某些部分(如广告、分类部分等)可能不能映射到原子元素。
较佳实施例为对象制作者提供了基本上无限的能力使之可以定义原子元素类型。某些原子元素定义可以非常灵活地支持种类繁多的信息内容使用类型。较佳实施例支持的某些原子元素类型包括字节、记录、文件、区段、对象、大量字节、连续或相对连续的字节(或其它预定义的单位类型)、具有一定逻辑相关性的字节—这些逻辑相关字节所含内容在主题、位置或用户可定义的其它逻辑关系类型上存在着某些逻辑关系,等等。对象制作者最好可以灵活地定义原子元素的其它类型。
本发明的较佳实施例提供了EVENT(事件)方法,该方法可以在使用事件和原子元素之间提供映射。通常,对于为对象300定义的每一个不同原子元素集合,都有一个EVENT方法与之相对应。在许多情况下,对象300将含有至少另一类原子元素用以进行与计帐有关的计量,还含有至少另一种原子元素类型用以进行与计帐无关的计量(举例而言,这种计量用来检测欺诈行为、对登广告者进行计帐、以及/或者收集有关最终用户使用活动的数据)。
在较佳实施例中,在有关使用的背景中,各EVENT方法执行两个功能(1)它将一个受到访问的事件映射到含有零个或多个原子元素的集合;(2)它向一个或多个METER(计量)方法提供信息以计量对象使用。访问事件和原子元素之间的映射定义方式可采用许多形式,包括数学定义、表格、加载模块等等。当EVENT方法将一个访问请求映射到“零”个原子元素时,将不再根据适用的特定原子元素定义把用户访问的事件映射到任何原子元素。出现这种情况的一个例子是对象所有者对基于上述访问进行使用计量不感兴趣(例如,其原因是该对象所有者认为这种访问从计量的角度看是无足轻重的)。
“使用图”技术可以利用“位象”来十分有效地保存历史使用信息。一幅使用图中的各个存贮元素可与原子元素相对应。使用图中的不同元素可与不同的原子元素相对应(如一个图元素可能对应于大量的读进字节,另一个图元素可能对应于某个特定章节是否被打开,而另一个图元素可能对应于其它使用事件)。
本发明较佳实施例所提供的使用图特征之一在于图元素的意义至少部分地由使用图中该元素的位置所指定。因而,在较佳实施例提供的使用图中,由图元素指示或编码的信息是该图元素在图结构中的位置(或者是物理位置,或者是逻辑位置)的函数。举一个简单的例子,对于一本含有十二章的小说,其使用图可以包含十二个元素,每个元素对应于小说的一章。当用户打开第一章时,在对应于第一章的元素中,一个或多个位的数值将会发生改变(如设置成“1”)。在这个简单例子中,包含该小说的那个信息内容对象的所有者只对计量哪些章节已被用户打开感兴趣,当用户第一次打开某个章时,对应于该章的使用图元素可以被设置成“1”,并且不管该章又被用户打开了多少次,该元素都始终为“1”。只需简单的检查这张简洁紧凑的使用图,并确定哪些元素被置为“1”,对象所有者或其它感兴趣的VDE参与者就可以迅速有效地得知哪些章已被用户打开。
假设信息内容所有者希望获知小说的每一章被用户打开多少次。在这种情况下,对于含有十二章的小说,该使用图可包含十二个元素,这些元素与小说的各章有一一对应关系。用户每次打开某一章,对应的METER方法将增加使用图中对应元素的值。采用这种方法,可以方便地得到小说每一章的使用记录。
使用图中元素的位置可编码一个多变量函数。例如,可以将使用图中的元素组织成一个二维数组,如图25B所示。不同的数组坐标可以对应于自变量,如原子元素和时间。举例而言,假设某个信息内容对象所有者分发的对象含有一组录音节目。进一步假设该信息内容对象所有者希望跟踪这组录音节目中每一个节目被用户收听的次数,而且他还希望跟踪这组节目按月的使用情况。因而,假设该信息内容对象所有者希望了解用户在一月份按照一个节目接一个节目的次序对每个节目的收听次数,类似地,他还希望了解在二月份、三月份等的相同使用情况。在这种情况下,使用图(参看图25B)可以被定义成元素的二维数组。该数组的其中一维可以编码音频节目编号,另一维可以编码该年的月份。在一月份,对应的METER方法将在数组“一月”的列中增加数组元素的值,作为录音节目的编号的函数。选择哪一个元素递增。当一月份到头以后,METER方法可能将停止写入“一月”这一列内的数组元素,转而写入二月份的数组元素集合,此时它仍旧作为录音节目的编号的函数来选择该列中的相应数组元素。上述的概念可以被扩展到N维,编码N个不同变量。
因此,在引用以前的使用方面,使用图是一种有效的手段。它们可以提供某些有关VDE的安全功能,例如它可以用来检查连续性(包括相对连续性)、逻辑相关性(包括相对逻辑相关性)、使用随机化、以及对其它使用模式。例如,用户对信息内容的随机使用的程度或特征可能会潜在地反映了用户打算绕过VDE信息内容预算限额的企图。某个用户或某组用户可能利用多次交互会话提取信息内容,他们所采取的方式可能不会对该信息内容在连续性、逻辑相关性或数量限制方面造成破坏,但这种方式仍将某个给定的、有价值信息内容中的部分或全部素材重新创建。使用图可以用来分析确定其它使用模式以便进行适当的定价,例如,在用户使用特定数量的任何或某些原子元素之后给予用户数量折扣。还有一个用途是允许用户重新访问一个特定对象,该用户以前已经支付了无限使用该对象(或经过某个特定时间后可无限使用该对象)的费用。其它对使用图的有用分析还可以包括对给定原子元素的大量使用给予折扣。
图计量器的另一个例子包括为用户已支付了使用费用的所有适用原子元素(或者,用户已经使用过这些原子元素并经过了计量,不过可能还未要求或支付使用费)保存一个记录。这种使用图将提供一种十分有效和灵活的方法,以支持后续用户使用相同的原子元素。
进一步的使用图可用来探测对相同对象的欺诈性使用。例如,可以适当地保存对象,以保证决不发生对该对象较长数据块的顺序访问。METER方法可以在任何规定的时间增量内记录对所有适用原子元素的访问,此处的时间增量可以是(举例来说)十分钟、一小时、一天、一个月、一年、或其它时间期限。在规定的时间增量末尾,可以对使用图进行分析,以检查是否存在所访问的数据块的超长连续组。并且/或者在每次开始访问所适用的原子元素时对使用图进行分析。每次进行了这种基于持续时间的分析后,如果没有发现欺诈性访问,则可以清除(或部分清除)使用图,同时映射进程可以完全或部分地重新开始刚才的工作。如果怀疑出现了或确实检测到了欺诈性访问,将记录此信息,同时停止对象的使用。举例而言,可要求用户与信息内容提供者联系,而该信息内容提供者将进一步分析使用信息,以决定是否允许用户继续使用下去。
图25C示意了一种特定类型的“宽位图”使用记录1206,其中,每个表项对应于在一段特定时间的使用(如本月的使用、上月的使用、上上月的使用等)。于是,所示的使用记录含有“标志”或字段1206的数组,在这个特定的例子中,该数组中的每一个元素都用来指定在不同时间段中的使用。当一个时间段到期后,该数组中的所有元素1206将被移位一个位置,因而经过一系列时间段后的使用信息(或用户访问权的购买)可以由一系列连续数组元素反映。在图25C所示的特定的例子中,整个宽数组1206每个月移动一个数组位置,其中最老的数组元素被删除,而新的数组元素被“拨”入对应于当前时间段的新数组图。在本例中,记录1206对在本月及紧邻本月的前5个月中所发生的使用访问权和/或其它与使用相关的行为进行跟踪。对应的计帐过程和/或计帐方法406将对该图进行检查,并基于特定公式确定当前使用中与计帐和/或安全性监测有关的使用,此处的该公式使用保存该记录中的使用数据;及更新该宽记录以标记出适当的数组元素,表示对这些数组元素进行过使用,等等。宽位图还可以用于许多其它目的,例如维护逐个元素的使用计数,或上述的连续性、相关性等功能,或某些功能的组合。
可以在任何频率上产生审核跟踪图,该频率取决于控制、计量、预算和计帐方法,以及与这些方法相关的加载模块。审核跟踪记录的结构与计量和预算的数据结构相似,除了包含导致其创建的使用事件之外,审核跟踪记录还可以包含特定于用户的信息。象计量和预算一样,审核跟踪的格式是动态的,该格式由信息内容提供者或其授权受让者定义,其基本元素类型与上表中计量和预算所使用的相同。除了这些类型以外,下表列出了审核跟踪中可能出现的其它重要数据字段示例
审核跟踪记录可以被自动合并成一个记录以便节省头信息空间。何时发生合并过程可能(举例来说)要受特定加载模块的控制,该加载模块创建了各个审核跟踪记录。
许可记录综述从图16中还可以看到,可以将PERC 808作为安全数据库610的一部分进行保存。许可记录(“PERC”)808在较佳实施例VDE 100所提供的数据驱动控制层次中处于最高层。对于每一个由VDE 100分发的信息和/或交易的信息内容,都有至少一个相对应的PERC808。因而,在较佳实施例中,对于每个VDE对象300至少存在一个PERC 808。某些对象可带有多个对应的PERC 808。PERC 808控制访问和/或操作许可的分发方式、以及/或者信息内容和/或其它信息的使用方式。PERC 808还为每个访问信息内容和/或其它信息的参与者规定了“权利”。
在较佳实施例中,任何用户在许可记录808传递给他之前是不能使用或访问VDE对象的。如上所述,可以将许可记录808作为移动对象860的一部分传递,也可以将它独立传递(例如在管理对象中)。一个电子设备600只有在带有相应PERC 808的时候才能够访问一个对象,并且只能使用PERC中控制结构所允许的对象和相关信息。
简单地说,PERC 808存贮的信息与方法、备选方法、解密密钥以及涉及对应VDE对象300的权利有关。
PERC 808含有定义了高层操作类别或种类的控制结构。这些高层类别称为“权利”。而“权利”控制结构又提供了对“方法”1000进行引用的内部控制结构。较佳实施例PERC 808的内部结构对“方法”进行组织,这些方法用来对对象或相关控制结构执行所有许可的操作(包括对PERC本身执行操作)。例如,PERC 808含有对象的解密密钥,而对密钥的使用则由特定方法来控制,PERC需要使用上述方法来执行与履行“权利”相关的操作。
通常在创建对象的同时创建该对象的PERC 808,而以后对PERC的实质修改—如果允许进行这些修改的话—则是由与某些操作相关联的方法来控制,这些方法使用了由同一(或不同)PERC定义的分发权利。
图22示意了较佳实施例提供的PERC 808示例的内部结构。所示的所有结构都代表(或引用)了一组方法,这些方法用来以某种特定方式处理对应的对象。PERC 808被组织成一个层次化结构,下面列出了该层次化结构中基本元素“权利”记录906“控制集合”914“必要方法”记录920“备选必要方法”924PERC 808层次化结构还可以含有其它元素,这些元素描述了一些规则和备选规则,这些规则和备选规则用来支持规则集合的协商及智能对象的控制信息,以及利用私有信息过滤器对用户私有信息进行保护的控制信息。这些可选的元素可包括可选权利记录可选控制集合可选方法记录许可的权利记录许可的权利控制集合许可的方法记录必要DTD说明可选DTD说明许可DTD说明这些可选的字段可以控制其它进程,这些进程将有关其操作的协商和决定部分地建立于其字段的内容之上。权利协商、智能对象控制信息、以及相关进程等都可以使用这些字段以便对它们的操作进行更加精确地控制。
图26所示的PERC 808包含PERC头900、CS0(“控制集合0”)902、私有体密钥904、以及一个或多个权利子记录906。较佳实施例中的控制集合0902含有的信息通用于与对象300相关的一个或多个“权利”。例如,特定“事件”方法对于使用权利、提取权利和/或其它权利来说可以是相同的。在这种情况下,“控制集合0”902可以引用这个对多种“权利”来说都相同的事件。提供“控制集合0”902实际上是一种优化措施,因为这样,就可能把通用事件的不同实例保存在PERC 808的多个“权利”记录906的各个之中。
每个权利记录906都定义了对应于某个对象的一个不同的“权利”。“权利”记录906是PERC 808结构中的最高层次。在PERC 808中可以有若干不同的权利。一个“权利”代表了一种主要的功能划分,这种功能划分是VDE 100基本体系结构中的某个参与者所需要的。例如,使用对象的权利以及分发对象使用权的权利是VDE 100中主要的功能集合。某些可能的权利包括对信息内容的访问、分发信息内容访问权的许可、对有关信息内容和/或控制结构的审核跟踪进行读取和处理的能力、进行交易的权利—此处的交易可以也可以不与信息内容和/或相关控制结构有关(这些交易的例子有金融交易、产品目录购买、税收、EDI交易,等等)、以及修改部分或全部PERC内部结构的能力—该PERC是为向其它用户分发而创建的。对于PERC所允许的每一类对象访问/使用权利,PERC 808都带有一个权利记录906。
通常,对于VDE最终用户来说,最常得到许可的权利是使用权。其它类型的权利包括“提取权”、访问最终用户审核跟踪信息的“审核权”、以及分发对象的“分发权”。上述各种不同权利可以在不同的权利记录906中体现出来(或者,对应于某个对象的不同PERC 808可以用来准许不同的权利)。
每个权利记录906都含有权利记录头908、CSR(“权利控制集合”)910、一个或多个“权利密钥”912、以及一个或多个“控制集合”914。每个“权利”记录906都含有一个或多个控制集合914,控制集合914或者是必须的或者是可选的备选方案,它们用来在该“权利”的行使过程中对对象进行控制。因而“权利”906内部的下一层即是控制集合914,控制集合914又各含有控制集合头916、控制方法918、以及一个或多个必要方法记录920。每个必要方法记录920又都含有一个必要方法头922以及一个或多个备选必要方法924。
VDE 100中的控制集合914有两种类型通用必要控制集合(Common required control Set)—其标记为“控制集合0”或“权利控制集合”、以及一组备选控制集合(control Set Option)。“控制集合0”902含有必要方法的一个清单,这些必要方法为所有备选控制集合所通用,所以该通用必要方法不必在每个备选控制集合中都复制一份。“权利控制集合”(“CSR”)910含有给定权利中的相同控制集合清单。因而如上所述,“控制集合0”以及任意“权利控制集合”是最优的方案。通过列出备选控制集合中的所有通用必要方法并且略去“控制集合0”以及任意“权利控制集合”就可以实现各控制集合的相同功能。
备选控制集合之一、“控制集合0”、以及适当的“权利控制集合”这三者共同组成了行使一项权利所必须的完整控制集合。
每个备选控制集合都含有必要方法1000的一个清单,并代表了行使权利的不同方式。在较佳实施例中,在任一时刻,可能的完整控制集合914中只有一个控制集合用来行使一项权利。
每个控制集合914含有足够多的必要方法记录920用来满足制作者和/或分发者行使一项权利的所有要求。可以支持以多种方式行使一项权利,也可以支持用多个控制集合控制给定权利的行使方式。举一个例子,单个控制集合914可以要求多个计量和预算方法读取对象的信息内容,也可以要求不同的计量和预算方法打印对象的信息内容。读和打印对象的信息内容都可以在单个控制集合914中加以控制。
或者,两个不同的备选控制集合可以支持读对象的信息内容,其中一个备选控制集合用来支持对所读字节数的计量和预算,另一个备选控制集合用来支持对所读段落数的计量和预算。在一个时刻这两个备选控制集合中有一个活跃。
通常,每个控制集合914都引用一个相关方法集合,而不同的控制集合可以提供不同的备用方法集合。例如,一个控制集合914可代表一个特殊类型的计量方法,而另一个控制集合则可代表一个完全不同的特殊计量方法。
控制集合914中的下一层次是必要方法记录920。在较佳实施例中,方法记录920包含或引用方法1000。方法1000包含一组“事件”、对与这些事件相关的加载模块的引用、静态数据、以及对安全数据库610的引用,其中对安全数据库610的引用是用来自动检索处理事件可能所需的任何其它独立可传递数据元素(如UDE)。控制集合914包含必要方法的一个清单,在行使一项特定权利(即处理与权利相关的事件)时必须使用这些必要方法。列在控制集合914中的必要方法记录920表明了必须存在一个方法以便履行该控制集合所支持的权利。必要方法可引用下面将要讲到的“加载模块”1100。简要地说,加载模块1100是一段可执行代码,它可用来执行必要方法。
每个控制集合914都可带有一个控制方法记录918作为其必要方法之一。被引用的控制方法可以定义某些或全部不同方法1000之间的关系,这些方法由控制集合906定义。例如,一个控制方法可以表明哪些必要方法要按功能组织在一起以便处理特定的事件,以及表明处理必要方法的次序。于是,一个控制方法可指定由记录920(a)(1)(i)所引用的必要方法是第一个应该被调用的方法,并且其输出要送到由记录920(a)(1)(ii)所引用的必要方法,依次类推。采用这种方式,一个计量方法可以被连接到一个或多个计帐方法,而该计帐方法由可以被单独连接到不同的预算方法,等等。
必要方法记录920指定了一个或多个备选必要方法924。在较佳实施例PERC 808的控制结构中,备选必要方法处于最低层次。通过将必要方法参数化,并在独立于必要方法的前提下指定备选必要方法924,就有可能在许多不同情况下对必要方法进行重用。
例如,必要方法记录920可以表明,必须从备选必要方法清单的预算方法ID清单中为该必要方法选择一个实际的预算方法ID。本例中的必要方法记录920不包含有关所需方法类型信息的方法ID,它只是表明需要一个方法。备选必要方法924含有特定方法的方法ID,该特定方法在所述备选必要方法被选中的时候将投入使用。作为一种进一步的优化方案,如果对于指定的必要方法只存在一个备选必要方法,则可以保存实际的方法ID。这样可以缩减这一数据结构的大小。
PERC 808还包含对象300的基本解密密钥,以及其它与“权利”结合使用的密钥(例如这些密钥用来加密和/或解密审核跟踪记录)。它可以包含用于对象信息内容的密钥,或者它包含用来解密对象某些部分的密钥,而这些对象部分又可包含用来解密对象的信息内容的其它密钥。对这些密钥的使用由相同“权利”906中的控制集合914来控制,该“权利”906包含在PERC 808之中。
详细地说,图26示意了PERC 808包含私有体密钥904以及权利密钥912。私有体密钥904用来对包含在对应VDE对象300中的私有体806所含信息进行解密。举例来说,这种信息可包括方法1000、加载模块1100和/或UDE 1200。在较佳实施例中,权利密钥912是行使一项权利所用的密钥。举例来说,这种权利密钥912可含有某些解密密钥,这些解密密钥允许由PERC 808指定的某个方法对信息内容进行解密,以便由VDE节点向最终用户发布该信息内容。在较佳实施例中,这些权利密钥912对于对象300来说是唯一的,对其的使用最好由较佳实施例中的预算进行控制。
PERC 808的详细举例图26A和26B示意了较佳实施例PERC 808的一个例子。在本例中,PERC头900包含站点记录号926字段928,它规定了私有体密钥块的长度字段930,它规定了PERC的长度过期日期/时间字段932,它规定了PERC的过期日期和/或时间上次修改日期/时间字段934,它规定了上次修改PERC的日期和/或时间原始分发者标识字段936,它表明了PERC和/或相应对象的原始分发者上次分发者标识字段938,它表明了PERC和/或相应对象的上次分发者对象ID字段940,它标识了相应的VDE对象300字段942,它为该记录类别指定了PERC和/或实例ID的类别和/或类型,用以区分类型相同但细节不同的PERC。
字段944,它指定了PERC中“权利”子记录904的数目确认标记948图26a,26b所示的PERC 808还包含私有体密钥,它们存放在私有体密钥块950中。
该PERC 808包含了一个控制集合0子记录914(0),该子记录914(0)可通用于PERC中的所有权利906。该控制集合0子记录914(0)可以含有下列字段长度字段952,它规定了该控制集合0记录的长度字段954,它规定了该控制集合中必要方法记录920的数目访问标记字段956,它规定了一个访问标记以控制对该记录的修改,以及一个或多个必要方法记录920每个必要方法记录920又可含有长度字段958,它规定了该必要方法记录的长度字段960,它规定了该必要方法记录920中备选方法记录的数目访问标记字段962,它规定了一个访问标记以控制对该记录的修改,以及一个或多个备选方法记录924每个备选方法子记录924可包含长度字段964,它规定了该备选方法记录的长度长度字段966,它规定了对应于该备选方法记录的数据区(如果有的话)长度方法ID字段968,它指定了一个方法ID(如类型/所有者/类别/实例)关联标记字段970,指定了一个关联标记用来与字段968指定的方法建立关联。
访问标记字段972,它规定了一个访问标记以控制对本记录的修改方法特有的属性字段974数据区976,以及用于校验目的的校验值字段978在本例中,PERC 808还包含一个或多个权利记录906,以及一个全局校验值字段980。图23b是图16a所示的权利记录906的一个例子。在这个特定例子中,权利记录906a包含一个权利记录头908,该头908又包含长度字段982,它规定了权利密钥块912的长度长度字段984,它规定了权利记录908的长度过期日期/时间字段986,它规定了权利记录的过期日期和/或时间权利ID字段988,它标识了一个权利数目字段990,它规定了权利字段906中控制集合914的数目访问标记字段992,它规定了一个访问标记以控制对本权利记录的修改本例中的权利记录906含有本权利的控制集合(CSR)910权利密钥块912一个或多个控制集合914,以及校验值字段994对象注册再请参看图16,安全数据库610提供了一些数据结构用以支持对“已注册”对象的“查找”机制。这种“查找”机制允许电子设备600以安全的方式将VDE对象300与PERC 808、方法1000以及加载模块1100联系起来。在较佳实施例中,这种查找机制部分地建立在对象注册450所含的数据结构之上。
在一个实施例中,对象注册450包含下列的表格 对象注册表460 主题表462 用户权利表(“URT”)464 管理事件日志442 发送表444,以及 接收表446在该示意性实施例中,对象注册460是某些信息的一个数据库,这些信息涉及注册的VDE对象300以及与这些对象有关的用户及用户组的权利。当电子设备600收到一个含有新预算或加载模块1100的对象300时,该电子设备通常需要将该对象所含的信息添加到安全数据库610中。而且,当任何新VDE对象300到达电子设备600时,该电子设备都要在对象注册450中“注册”该对象,以便允许该对象被访问。在较佳实施例中,每当电子设备600“注册”一个新对象时,将创建该对象的清单和记录。该对象的信息可以从其加密的私有头、对象体、以及加密名字服务记录中获取。该信息可以由SPE 503从对象中提取或导出,然后以加密记录的形式存放在安全数据库610中。
在一个实施例中,对象注册表460包含对保存在对象存储器(仓库)728中的对象进行标识的信息。在本实施例中,这些保存在对象存储器728中的VDE对象300并非一定是安全数据库610一部分,这是因为,对象通常带有其自身的安全性(这些安全性是必要的并且是所要求的),并且是使用与维护安全数据库所用的机制不同的机制维护的。虽然VDE对象300可能不一定严格地作为安全数据库610的一部分,但对象注册450(具体说就是对象注册表460)引用了对象,从而是通过引用的形式把对象包含进了安全数据库中。在较佳实施例中,任何VDE对象300,在其被正确注册并在对象注册表460中保存了一条相应注册记录之前,是禁止电子设备600使用的。
在本实施例中,主题表462在对象注册表460引用的对象与电子设备600的用户(或用户组)之间建立对应关系。主题表462提供了访问控制表(“ACL”)的许多属性。这一点将在后面进行介绍。
在本实施例中,主题表462已经给出了特定用户或用户组与对象的组合信息,而用户权利表464则提供了特定于上述组合的许可以及其它信息。在本实施例中,许可记录808(图16示意了许可记录808,许可记录808存放在安全数据库610中)可以为特定的对象-用户组合提供全面的许可控制。根据(举例来说)用户在对象注册交互作用中所做的选择,用户权利表464中的记录可以指定上述许可控制体系中的一个子集。
管理事件日志442、发送表444、以及接收表446提供有关VDE对象300接收和交付的信息。这些数据结构跟踪由电子设备600发送或接收的管理对象,包括(举例来说)以概要和详情的形式的管理对象的目的和行为。简而言之,发送表444为电子设备600发送(或计划发送)到其它VDE参与者的每个管理对象保存一个发送记录。本实施例中的接收表446为电子设备600接收(或计划接收)的各管理对象保存一个接收记录。管理事件日志442为每个已发送的和每个已接收的管理对象保存一个事件日志,并可包含每个特殊事件的有关详情,该特殊事件由接收到的管理对象指定。
管理对象的发送和接收图27示意了发送表444的详细格式示例。在较佳实施例中,发送表444包含头444A以及任意数目的发送记录445。头444A含有用来维护发送表444的信息。发送表444中的每个发送记录445都提供了与某个发送事件有关的详细情况(即,或者是一个已完成发送,或者是一个计划中的发送,前者表示已向另一个VDE参与者发送一个管理对象,后者表示正计划发送该管理对象)。
在安全数据库610的实施例中,发送表头444A可以包含一个站点记录号444A(1)、用户(或组)ID 444A(2)、一系列引用字段444A(3)-444A(6)、确认标记444A(7)-444A(8)、以及校验值字段444A(9)。字段444A(3)-444A(6)引用了特定的近期ID,而这些ID指定发送表444中的发送记录445的表。例如,字段444A(3)可引用一个“最先”发送记录,该记录表示对某个管理对象已完成的向外发送,而字段444A(4)可引用一个“最末”发送记录,该记录表示对某个管理对象已完成的向外发送。在本例中,如果需要的话,“最先”和“最末”可以指发送的时间或次序。类似地,字段444A(5)和444A(6)可以指计划向外发送的“最先”和“最末”发送记录。确认标记444A(7)用来确认来自名字服务记录表452中某个名字服务记录,该名字服务记录与本头中的用户(组)标识相关联。这种方式允许从发送记录反过来访问名字服务记录,而名字服务记录则对发送记录所述对象的发送者进行了说明。确认标记444A(8)向由一个或多个指针444A(3)-444A(6)所引用的“最先”向外发送记录提供确认。可以提供其它确认标记,以便对计划发送记录进行确认。
所示的发送记录444(1)含有一个站点记录号445(1)(A)。它还包含最先和最末计划发送时间/日期445(1)(B),445(1)(C),最先和最末计划发送时间/日期445(1)(B),445(1)(C)提供了时间窗口以供调度管理对象发送之用。字段445(1)(D)可指定一个管理对象发送完成的实际日期/时间。字段445(1)(E)提供了已发送或准备发送的管理对象的ID,它标明了对象存储器728中的哪个管理对象涉及了上述特定发送记录。引用字段445(1)(G)引用了名字服务记录表452中的一个名字服务记录,它指定了已发送或准备发送的管理对象的实际接收者或预期接收者。名字服务记录表452中的上述信息可以(举例来说)提供足够的路由信息,以允许图12所示的向外的管理对象管理器754通知对象开关734将管理对象发送给预定的接收者。字段445(1)(H)可指定(例如使用一组位标志)管理对象发送的目的。字段445(1)(I)可以指定发送的状态。引用字段445(1)(J),445(1)(K)可以引用在一个链表中的“前一个”和“后一个”发送记录(在较佳实施例中,可有两个链表,一个用于已完成的发送记录,另一个用于计划发送记录)。字段445(1)(L)-445(1)(P)分别向下列记录提供确认标记从头444A、向指针445(1)(F)指向的;管理事件日志442中的某个记录从头444A向字段445(1)(G)引用的某个名字服务记录;从字段445(1)(J)引用的前一个记录;以及对字段445(1)(K)引用的下一个记录。校验值字段445(1)(Q)可用来校验发送记录445。
图28示意了接收表446的一个可能的详细的格式示例。在一个实施例中,接收表446的结构与图27中发送表444的结构相似。于是,(举例来说)接收表446可含有一个头446a以及多个接收记录447,每个接收记录都包含有关管理对象接收或计划接收的详细情况。接收表446可包含两个链表,一个链表用于已完成的接收,另一个用于计划的接收。每个接收表记录447都引用了名字服务记录表452中的一个表项,它指定了一个管理对象发送者,并且每个接收表记录447都指向管理事件日志442中一个表项。接收记录470还可以包含与计划和/或已完成的接收有关的附加详情(如计划的或实际的接收日期/时间,接收目的以及接收状态),并且这些有关详情的字段每一个都可以包含确认标记,用来确认对其它安全数据库记录的引用。
图29示意了管理事件日志442的详细格式示例。在较佳实施例中,管理事件日志442对每一个已发送的管理对象和已接收的管理对象都保存一个事件日志记录442(1)...442(N)。每个管理事件日志记录可包括头443a和1个到N个的子记录442(J)(1)...442(J)(N)。在较佳实施例中,头443a可包含站点记录号字段443A(1)、记录长度字段443A(2)、管理对象标识字段443A(3)、指定了事件数的字段443A(4)、对发送表444或接收表446发来的引用进行确认的确认标记443A(5)、以及校验和字段443A(6)。由字段443A(4)指定的事件数目对应于管理事件日志记录442(J)中的子记录442(J)(1)...442(J)(N)的数目。每个上述子记录都指定了与特定“事件”有关的信息,该特定“事件”受到字段443(A)(3)指定的管理对象的影响,或者与之相对应。管理事件被保存在管理事件日志442中,以支持对系统已经发送或接收的管理对象进行重建(及构成或处理的准备)。这样,当某个管理对象丢失后就可以在以后对之重建。
每个子记录可包含子记录长度字段442(J)(1)(a)、数据区长度字段442(J)(1)(b)、事件ID字段442(J)(1)(c)、记录类型字段442(J)(1)(d)、记录ID字段442(J)(1)(e)、数据区字段442(J)(1)(f)、以及校验值字段442(J)(1)(g)。数据区字段442(J)(1)(f)可以用来表明安全数据库610中哪些信息被事件标识字段442(J)(1)(c)所指定的事件所影响,或者添加哪些新的安全数据库条目,它还可以用来指定事件的输出。
对应于每个存放在对象存储器(仓库)728中的VDE对象300,较佳实施例中的对象注册表460都包含一个相应记录。当一个新对象(如通过重定向器684)到达或被检测到的时候,较佳实施例电子设备600将“注册”该对象,其步骤是创建一个相应的对象注册记录并将之保存在对象注册表460中。在较佳实施例中,对象注册表存贮的信息具有用户无关性,这些信息只依赖于在给定的VDE电子设备600上注册的对象。注册活动通常由与对象相关的一个REGISTER(注册)方法进行管理。
在本例中,主题表462在用户(或用户组)与注册的对象之间建立关联。本例中的主题表462执行了访问控制表的功能,即规定哪些用户有权访问哪些已注册VDE对象300。
如上所述,安全数据库610对每个已注册的VDE对象300均至少保存一个PERC 808。PERC 808指定了一组权利,可以行使这些权利以便使用或访问对应的VDE对象300。较佳实施例允许用户“定制”他们的访问权,即允许用户从相应PERC 808授权的权利中选择一个子集,并且/或者允许用户指定某些参数或选择,而这些参数或选择则对应于PERC 808许可的某些或全部权利。在较佳实施例中,用户的选择存放用户权利表464中。用户权利表(URT)464包含URT记录,每个URT记录都对应于一个用户(或用户组)。每个URT记录规定了用户对于相应VDE对象300作出的某些选择。这些用户选择可以独立地或者与PERC 808一起引用一个或多个方法1000,从而可以按照由URT记录中的选择所指定的方式来履行PERC 808赋予用户的权利。
图30示意了上述各种表格是如何相互作用而提供安全数据库查找机制的。图30示意了对象注册表460,对象注册表460含有大量的对象注册记录460(1),460(2),...这些记录对应于存放在对象仓库728的VDE对象300(1),300(2)。图31示意了较佳实施例中对象注册表460的格式示例。对象注册记录460(N)可含有下列的字段站点记录号字段466(1)对象类型字段466(2)制作者ID字段466(3)对象ID字段466(4)引用字段466(5),它引用了主题表462属性字段466(6)最小注册时间间隔字段466(7)
一个对应于主题表字段的标记466(8),以及校验值字段466(9)站点记录号字段466(1)指定了该对象注册记录460(N)的站点记录号。在安全数据库610的一个实施例中,存放在该安全数据库中每个记录都由一个站点记录号来标记。可以将该站点记录号用在数据库查找进程之中,以便跟踪安全数据库610中的所有记录。
对象类型字段466(2)可以指定以注册对象300的类型(如信息内容对象、管理对象,等)。
本例中的制作者ID字段466(3)可以标识相应VDE对象300的制作者。
本例中的对象ID字段466(4)唯一地标识了已注册的VDE对象300。
在较佳实施例中,引用字段466(5)标识了主题表462中的一个记录。通过使用该引用,电子设备600可以确定在主题表462中列出的、有权访问相应VDE对象300的所有用户(或用户组)。标记466(8)用来确认使用字段466(5)访问的主题表记录是对象注册记录460(N)所要使用的正确记录。
属性字段466(6)可以保存与VDE对象300相对应的一个或多个属性或属性标志。
最小注册时间间隔字段466(7)可以指定最终用户能够以什么样的频率以VDE对象300用户的身份向票据交换所服务、VDE管理员或VDE提供者重新注册。禁止频繁进行重新注册的一个理由是阻止用户重新使用移动对象的预算额,直到一段指定的时间过去为止。当对象所有者不希望重新注册的时候,最小注册时间间隔字段466(7)将保留为未用。
校验值字段466(9)包含有确认信息,用来检测对记录460(N)的破坏或修改,从而保证该记录的安全性和完整性。在较佳实施例中,记录460(N)中的多个或全部字段(以及安全数据库610中的其它记录)可以被完全地或部分地加密并且/或者含有那些冗余地保存在每个记录中的字段(这些字段一次是以未加密形式保存,一次是以加密形式保存)。同一字段的加密和解密版本将在不同的时间被交叉检查,以探测破坏或修改记录的行为。
如上所述,引用字段466(5)引用了主题表462,具体地说,引用字段466(5)引用了主题表中的一个或多个用户/对象记录462(M)。图32示意了本例中用户/对象记录462(M)的格式示例。记录462(M)可含有头468和主题记录部分470。头468可包含一个字段468(6),该字段引用了存放在主题登记表462中的“第一个”主题记录470。上述“第一”主题记录470(1)又可包含一个引用字段470(5),该引用字段470(5)引用了存放在主题登记表462中的“下一个”主题记录470(2),依次类推。该“链表”结构使单个对象注册记录460(N)能够对1个到N个的主题记录470进行引用。
本例中的主题注册表头信息468包含一个站点记录号字段468(1),该站点记录号字段468(1)唯一地标识出作为安全数据库610中一个记录的上述头。头468还可含有一个制作者ID字段468(2),该字段拷贝了对象注册表制作者ID字段466(3)中的内容。同样,主题注册表头468可含有一个对象ID字段468(5),该字段则拷贝了对象注册表460中的对象ID字段466(4)。上述字段468(2),468(5)使用户/对象注册记录明确地与特定VDE对象300相关联。
头信息还可包含一个标记468(7)以支持确认。在一个实施例中,用户/对象注册头468中的标记468(7)可以等同于指向该用户/对象注册头的对象注册记录460(N)所含的标记466(8)。上述标记468(7)和466(8)之间的对应关系可以用来确认对象注册记录和用户/对象注册头是相匹配的。
用户/对象注册头468还含有一个原始分发者标识字段468(3)和一个上次分发者标识字段468(4)。前者标识了对应于VDE对象300的原始分发者,后者表明了在该对象控制链中位于电子设备600收到该对象之前的上次分发者。
头468还包含一个标记468(8),该标记可以用来在该头和字段468(6)引用的“第一”主题记录470(1)之间进行确认。
主题记录470(1)含有站点记录号字段472(1)、用户(或用户组)标号字段472(2)、用户(或用户组)属性字段472(3)、引用用户权利表464的字段472(4)、引用“下一个”主题记录472(2)(如果该记录存在的话)的字段472(5)、标记472(6)-该标记用来与头标记468(8)确认、标记472(7)-该标记用来与字段472(4)引用的用户权利表464中对应标记进行确认、标记472(9)-该标记用来与字段472(5)引用的“下一个”主题记录中对应标记进行确认、以及校验值字段472(9)。
用户(或用户组)标识字段472(2)标识了一个用户或用户组,该用户或用户组有权使用由字段468(5)标识的对象。因而,字段468(5)和472(2)共同组成了由主题表462提供的访问控制表的核心。用户属性字段472(3)可以指定某些属性,这些属性涉及由字段472(2)指定的用户或用户组对对象300进行的使用/访问。通过向“链表”结构中添加主题记录470,可以将任意数目的不同用户或用户组添加到该访问控制表中(其中每个用户或用户组带有一组不同的属性472(3))。
主题记录引用字段472(4)引用了用户权利表464中的一个或多个记录。图33示意了用户权利表记录464(k)的优选格式示例。用户权利记录464(k)可包含URT头474、记录权利头476、以及用户选择记录478的一个集合。URT头474可含有站点记录号字段、字段472(2)-该字段指定了URT记录464(k)中权利记录的数目、字段474(3)-该字段引用了一个“第一个”权利记录(即指向了权利记录头476)、标记474(4)-该标记用来确认来自主题表462的查找、标记474(5)-该标记用来确认对权利记录头476的查找、以及一个校验值字段474(6)。
较佳实施例中的权利记录头476可包含站点记录号字段476(1)、权利标识字段476(2)、引用“下一个”权利记录476(2)的字段476(3)、引用用户选择记录478(1)第一集合的字段476(4)、标记476(5)-该标记用来与URT头标记474(5)进行确认、标记476(6)-该标记用来与用户选择记录标记478(6)进行确认、以及一个校验值字段476(7)。权利标识字段476(2)可(举例来说)用来指定权利记录476传送的权利的类型(如使用权、分发权、读的权利、审核权等等)。
由权利记录头476引用的一个或多个用户选择记录478表明了与访问和/或使用相应VDE对象300相对应的用户选择。通常,对于授予用户或用户组的每项权利,都有一个权利记录476与之相对应。这些权利控制上述用户或用户组对VDE对象300的使用。例如,用户可具有“访问”权、“提取”权,但没有“拷贝”权。其它由权利记录476控制的权利(在较佳实施例中,利用REGISTER(注册)方法从PERC 808中得到这些权利)包括分发权、审核权、以及定价权。当一个对象300向电子设备600注册并且向一个特定的用户和用户组注册以后,用户便可以在PERC 808中的各种使用方法中作出选择。例如,一个VDE对象300可带有两个必要的计量方法一个用于计帐目的,一个用来累加数据,这些数据与用户使用的宣传材料有关。可给予用户各种计量/计帐方法的选择,例如用VISA或MasterCard付帐、从两种计帐方法中任选其一—一种是基于从信息数据库中检索出的材料数量进行计帐,一种是基于使用时间进行计帐、或者上述两种计帐方法都选用。如果用户愿意将他检索的信息内容的某些细节提供给一个第三方时(例如,为人口统计目的),他可能会在时间和/或数量计帐方面得到某些折扣。在对象注册的时候和/或用户为该对象而注册的时候,将要求用户为得到的第一个计量选择一个特定的计量方法作为“生效计量方法”。VDE管理员可能会为用户缩小可用选择的范围,从PERC 808规定的原始选择集合中列出一个子集让用户选择。上述用户选择和配置的设置存放在用户选择记录480(1),480(2),480(N)中。用户选择记录不必明确地出现在用户权利表464中,相反,用户选择记录480可能(例如利用站点引用号)引用特定的VDE方法和/或用来参数化这些方法的信息。用户选择记录480对方法1000的上述引用需要经过存放在用户选择记录中的确认标记确认。因而,在较佳实施例中,用户选择记录480可选择一个或多个方法以用在相应VDE对象300中(如图27所示)。上述用户选择记录480本身可完全定义方法1000以及其它信息,这些信息是在为实现上述方法而创建适当部件组690中所用到的。作为另一种选择,用来引用用户权利记录464的用户/对象记录462也可以引用对应于VDE对象300的PERC 808,以便提供创建部件组690和/或访问VDE对象300所需的附加信息。例如,可以访问PERC 808以便获取某些MDE 1202,这些MDE 1202与所选方法、私有体和/或用于加密和/或解密对象的信息内容所用的权利密钥是相关的;也可以使用PERC 808以提供特定校验功能,该校验功能用来确保用户权利记录传送的权利都是体现在PERC中的当前授权所允许的权利。
在本发明的一个实施例中,可以使用一个传统的数据库引擎(engine)来保存和组织安全数据库610,并且,前述的加密层可处于传统数据库结构“之上”。不过,如果上述传统数据库引擎无法组织安全数据库610中的记录同时也无法支持前面讨论的安全性措施时,那么电子设备600可以采用加密的方式维护单独的索引结构。这些单独的索引结构可以由SPE 503来维护。本实施例将要求SPE 503解密索引并且搜索解密的索引快,以寻找适当“站点记录ID”或其它指针。然后SPE 503可请求传统数据库引擎以获取被指定的记录。如果不能对照记录表检验记录ID,SPE 503可能需要索取数据文件本身,以便它检索到所需的记录。然后SPE 503将执行适当的鉴别操作以保证该文件没有遭到破坏,并且返回的是正确的数据块。SPE 503不能简单地将上述索引传给传统数据库引擎(除非该数据库引擎本身是安全的),这是因为这样会允许一个错误的记录替换所需的记录。
图34示意了如何使用上述的站点记录号来访问安全数据库610中各种数据结构。在本例中,安全数据库610还包含一个站点记录表482,该表保存了大量的站点记录号。在站点记录表482中保存的实际上是安全数据库610中所有记录的“主列表”。站点记录表482中保存的上述站点记录号允许对安全数据库610中任意记录进行访问。因而在站点记录表482中,某些站点记录可索引对象注册表460中的记录,站点记录表中其它站点记录号可索引用户/对象表462中的记录,站点记录表中又其它的站点记录号可访问URT 464中的记录,站点记录表中又有其它站点记录号可访问PERC 808。另外,每个方法核心1000’也都可包含一个站点记录号,以便站点记录表482可以访问它们。
图34A示意了站点记录表482中站点记录482(j)的示例。站点记录482(j)可包含字段484(1)-它表明了记录的类型;字段484(2)-它表明了该记录的所有者或创建者;“类别”字段484(3)和“实例”字段484(4)-它们提供的信息与站点记录482(j)指向的记录有关;特定描述符字段484(5)-它指示与本记录相关的特定描述符(如对象ID);本站点记录引用的表或其它数据结构的一个标识符484(6);在本数据结构内的引用和/或偏移484(7)-它表明本记录的起始位置;确认标记484(8)-它用来确认正在被查找的记录;以及校验值字段484(9)。字段484(6)和484(7)共同提供了一种机制,通过这种机制,由站点记录484(j)引用的记录实际上是物理地位于安全数据库610中。
安全数据库610的更新图35示意了一个进程1150,该进程可以被票据交换所、VDE管理员或其它VDE参与者用来更新由某个最终用户电子设备600维护的安全数据库610。例如,为了响应最终用户的请求,图35所示的进程1150可用来收集安全数据库610中的“审核跟踪”记录,以及/或者提供新的预算和许可(如PERC 808)。
通常,最终用户电子设备600可起动与某个票据交换所通信(处理框1152)。该通信(举例来说)可自动建立或响应用户发出命令建立。该通信可以建立在电子高速公路108之上,或使用其它通信网络,如LAN、WAN、双向电缆,或使用电子设备之间的其它移动媒体交换。交换管理信息的进程不一定发生在单个“在线”会话中,相反,该进程持续一段相当的时间,基于在相同的或不同的通信装置上的多次不同的单向和/或双向通信。不过,图35所示的进程1150是一个特定的例子,其中,最终用户电子设备600与其它VDE参与者(如某个票据交换所)通过电话线、网络、电子高速公路108等建立了双向、实时的交互式通信交换。
最终用户电子设备600通常与一个特定的VDE管理员或票据交换所联系。特定票据交换所的身份取决于用户希望访问或已经访问的VDE对象300。例如,假设用户已经访问了一个特定的VDE对象300,并且他已经用光了继续访问所需的预算。用户可以发出一个请求,该请求使他的电子设备600自动与对上述特定对象负有责任的VDE管理员、分发者和/或财务票据交换所接触。在本例中,需要联系的合适VDE参与者的身份(举例来说)由UDE 1200、MDE 1202、对象注册表460和/或主题表462中的信息来提供。电子设备600可能需要联系多个VDE参与者(如向某个参与者分发审核记录,从另一个参与者处获取另外的预算或其它许可,等等)。在某个例子中,联系1152可能要依据图27中的发送表444和图29中的管理事件日志442进行安排。
一旦建立了联系以后,最终用户电子设备与票据交换所通常相互鉴别并同意使用某个会话密钥用来进行实时信息交换(处理框1154)。一旦建立好安全的连接以后,最终用户电子设备可(如根据发送表444)确定它是否有某些管理对象包含需要发送给该票据交换所的审核信息(判定框1156)。与多个VDE对象300相关的审核信息可放在同一管理对象中传送,或者不同管理对象可包含不同对象的审核信息。假设最终用户电子设备至少含有一个需要传送给该特定票据交换所的上述管理对象(判定框1156出口“是”),该电子设备通过已经建立好的安全实时通信将上述管理对象发送给票据交换所(处理框1158)。在一个实施例中,单个管理对象可发送带有多个VDE对象审核信息的管理对象,在该管理对象中,每个不同对象的审核信息处理一个单独“事件”。
票据交换所可接收该管理对象,并对其内容进行处理以确定该内容是否是“有效的”和“合法的”。例如,票据交换所可分析其中所含的审核信息以判断该审核信息是否表明了对相应VDE对象300发生过不合理使用。作为分析的结果,该票据交换所将产生一个或多个响应的管理对象,然后将这些对象发送给最终用户电子设备600(处理框1160)。最终用户电子设备600可执行某些事件处理,包括根据收到的管理对象对其安全数据库610和/或SPU 500的内容进行更新(处理框1162)。例如,如果票据交换所收到的审核信息是合法的,那么票据交换所将可向最终用户电子设备600发送一个管理对象,要求电子设备删除和/或压缩已经传送的审核信息。作为另一种选择或作为一种补充方式,票据交换所在本阶段可要求从最终用户电子设备600那里得到更多的信息(例如,要求重新传送在起始传送过程中受到破坏的某些信息,要求传送前面没有传送的附加信息,等等)。如果票据交换所根据接收到的审核信息检测出不合理使用行为,它可传送某个特定管理对象,该管理对象将取消或修改最终用户继续访问相关VDE对象300的权利。
作为另一种选择或作为一种补充方式,票据交换所可向最终用户电子设备600发送一个管理对象,该管理对象命令电子设备向用户显示一条或多条消息。这些消息可将某些情况通知给用户,并且/或者要求用户提供附加信息。例如,该消息可能要求最终用户直接通过电话与票据交换所联系,或者要求最终用户解决某个指出的问题、输入一个PIN,或者通知用户与一个新的服务公司联系以便重新注册相关的VDE对象。作为另一种选择,上述消息可告诉用户他需要获取该对象的新使用许可,并且可将花费、状态以及其它相关信息通知给用户。
在同一或不同的通信交换中,同一或不同的票据交换所可以处理最终用户对有关VDE对象300附加预算和/或许可的请求。例如,最终用户电子设备600(例如,为响应用户输入的、希望访问特定VDE对象300的请求)可向票据交换所发送一个管理对象,请求所需的预算和/或其它许可(处理框1164)。如上所述,这种请求可以采用一个或多个管理对象的形式发送,例如,采用单个管理对象的形式,该管理对象带有多个“事件”,这些事件分别对应于同一或不同VDE对象300的多个所需预算和/或许可。票据交换所收到该请求以后可检查该最终用户的信用、财务记录、商业协议和/或审核历史,以确定是否应给予所请求的预算和/或许可。根据这些分析,票据交换所可能发送一个或多个响应的管理对象,使最终用户电子设备600更新其安全数据库以作为响应(处理框1166、1168)。该更新过程可包括(举例来说)将一个过期的PERC 808替换成一个新的,修改某个PERC808以便提供更多的(或更少的)权利,等等。可以在相同或不同通信会话期间多次重复步骤1164-1168,以便进一步修改最终用户的安全数据库610。
图36示意了如何将新记录或新元素插入到安全数据库610中。图35所示的加载进程1070在准备写入每个数据元素或项的时候首先对之进行检查,以确保这些数据元素没有被窜改、替代或替换。在如图35所示的进程1070中,第一步是查看当前用户或电子设备600是否被授权将该项插入到安全数据库610中(处理框1072)。在较佳实施例中,这个检测可以包括将相应方法1000或其它数据结构如UDE 1200等装入SPE 503(或者使用已经装入的上述方法或数据结构),然后SPE 503判明用户是否得到了改动安全数据库610的授权(处理框1074)。如果用户得到批准可以改动安全数据库610,那么SPE 503可以检查准备添加到安全数据库中的元素的完整性,其方法是首先将该数据块解密(处理框1076),然后确定该数据块受否已被毁坏或破坏(处理框1078)。对该数据块检查的目的是要确保它是用预定的管理文件密钥进行正确解密的,同时还要确认其校验值。另外,可以比较公开和私有头ID标记(如果这些标记存在的话),以确保送来的是正确的元素而没有经过替换,并且将唯一的元素标记ID与预定的元素标识相比较。如果上述的任一检查出现失败,那么将自动拒绝该元素、对之进行纠错处理、等等。假设SPE 503发现该元素具有完整性,那么它将(举例来说)使用一个新密钥(参看下面针对图37的讨论)重新加密该信息(处理框1080)。在同一步骤中,最好提供一个适当的标记,以便使该信息经过加密后由一个带有适当标记的安全防护层中所保护(处理框1082)。SPE 503可以保存上述适当标记信息,以便在将来再从安全数据库610中读出上述项时对之进行确认或鉴别(处理框1084)。然后,已经处于安全防护层中的安全元素便可以被存入安全数据库610中。
图37示意了另一个进程1050。在较佳实施例中,该进程用来安全地访问存放在安全数据库610中的项。在较佳实施例中,SPE 503首先访问安全数据库610记录并从中读入项。SPE 503从安全数据库610中读取加密形式的上述信息,然后将之“解包”(处理框1052),方法是利用内部存放在SPU 500受保护的存贮器中的访问密钥将之进行解密(处理框1053)。在较佳实施例中,上述“解包”过程1052涉及将信息块送到加密/解密机522,同时还送去一个管理文件密钥和其它解密所需的信息。解密机522可返回“明文”信息。然后SPE503将检查该明文信息,以确保该对象的安全性没有受到损害,并且该对象是所需的正确对象(处理框1054)。然后SPE 503可检查所有的关联和访问标记,以确保读入的元素没有被替换,并防备其它安全隐患(处理框1054)。上述“检查”进程还有一部分要涉及将从安全数据库610获取的标记与保存在SPU 500或受保护的存贮器中的标记进行对比检查(处理框1056)。上述保存在SPU 500中的标记可以从SPU的安全存贮器中访问(处理框1056),可以用这些标记进一步检查目前已解包的对象。假设上述“检查”进程1054没有检查出任何异常现象(处理框1052还表明上述对象没有遭到毁坏或破坏),SPE 503便可访问或使用该项(处理框1058)。一旦使用完该项,如果对该项做过改动的话,SPE 503可能需要将它存放回安全数据库610。如果对该项做过改动,SPE 503将把该项按照它经过改动以后的格式送至加密/解密机522以便进行加密(处理框1060),同时要向加密/解密机522提供某些必要信息(例如同一或不同的管理文件密钥和数据)以便正确地加密上述对象。在该阶段中,可以利用一个唯一的、新的标记和/或加密密钥来唯一地标记和/或加密该项的安全防护层(处理框1062,同时参看下面对图37所做的详细介绍)。SPE 503可在SPU 500的受保护存贮器中保留上述密钥和/或标记的副本(处理框1064),以便将来再从安全数据库610中读出上述项时,可以对之进行解密和确认。
在较佳实施例中,用来解密安全数据库610记录的密钥单独地存放在SPU 500的受保护存贮器中。每个离开SPU 500的被更新索引和记录都将被打上时间戳,然后利用SPE 503确定的某个唯一密钥进行加密。举例来说,可以在安全数据库610记录的首部以明文方式放置一个密钥标识码,以便SPE 503在下次检索该记录时能够确定采用哪一个密钥。SPE 503可以在其内部的一个列表中维护记录或索引的站点标识、与记录或索引相关的密钥标识码、以及实际密钥。在某些时刻,上述内部列表可能被填满。此时,SPE 503可以调用一个维护例程,该例程将安全数据库610中包含改动信息的项重新加密。该数据结构中包含改动信息的某些或全部条目将可被读入,经过解密,然后再用同一密钥加密。此后可将同一密钥标识码发布到这些项中,并将它们从SPE 503中写回到安全数据库610。SPE 503于是可清除含有项ID和相应密钥标识码的内部列表。然后它可以重新开始向每个新的或改动的项分配一个不同的密钥和一个新的密钥标识码。通过上述进程,SPE 503能够保护安全数据库610中的数据结构(包括索引),避免老的项被替换以及当前项的索引被替换。该进程还使SPE503能够对照预定标识的加密列表对接收到的条目的ID进行确认。
图38中的流程图详细地示意了上述进程。每当一个安全数据库610项被更新或修改,可以为该被更新项生成一个新的加密密钥,并使用新加密密钥进行加密,这样可以增加安全性,同时防止不合理地使用安全数据库610记录的后备拷贝。每个被更新安全数据库610记录的新密钥可以存放在SPU 500的安全存贮器中,带有该密钥所适用的安全数据库记录的一个标志。
对于SPE 503准备保存到安全数据库610中的每个新项,SPE 503都要生成一个新的加密/解密密钥(处理框1086)。在将上述项存放到安全数据库之前,SPE 503要首先用该新密钥对上述记录进行加密(处理框1088)。SPE 503要确保保留上述密钥以便将来可以读入和解密上述记录。在较佳实施例中,这些解密密钥存放在受保护的非易失性存贮器(如NVRAM 534b)中。由于这种受保护存贮器容量较小,可能没有足够空间来容纳一个新密钥。在较佳实施例中,上述情况由判定框1090来检查。如果没有足够空间来容纳一个新密钥(或出现其它情况,如存放在该存贮器中的密钥的个数超过了预定的数目,计时器到时,等等),那么为解决该问题,较佳实施例将使用同一新密钥对安全数据库610中的其它记录进行重新加密,以便减少(或改变)投入使用的加密/解密密钥。于是,可能要从安全数据库610中读入一个或多个安全数据库项,对它们进行解密,解密密钥用的是上次保存它们时对它们加密所用的老密钥。在较佳实施例中,首先选出一个或多个“老密钥”,然后将所有使用该老密钥加密的安全数据库项读入并解密。此时,便可以将这些记录重新加密(处理框1094),使用的密钥是在处理框1086为新记录生成的新密钥。现在,这些用来加密其它记录的老密钥可以从SPU安全存储器中删除(处理框1096),而新密钥则可以替换其位置上(处理框1097)。只有在SPE503确认安全数据库610中使用上述老密钥加密的所有记录已经被处理框1092读入并且由处理框1094使用新密钥重新加密之后,处理框1096才能够从安全存贮器中删除上述老密钥。现在,所有使用新密钥加密(或重新加密)的记录可以被保存到安全数据库610中(处理框1098)。如果判定框1090发现SPU 500的受保护存贮器中还有空间存放新密钥,那么处理框1092、1094、1096的操作就不再需要,相反SPE 503只是简单地将新密钥保存到受保护存贮器中(处理框1097),并且将新加密的记录存储到安全数据库610中(处理框1098)。
通过将安全数据库610记录划分成一个个“区段”可以进一步提高安全数据库610文件的安全性。可以使用不同的加密/解密密钥来保护不同的“区段”。这种措施可以用来限制安全数据库610使用单个密钥加密的信息的数量。另一种提高安全数据库610安全性的技术是用不同的密钥加密相同记录的不同部分,这样,为解密这样的记录就必须使用一个以上的密钥。
安全数据库610的备份较佳实施例中的安全数据库610要周期地或按其它时间间隔进行备份,以保护安全数据库保存的信息。对许多VDE参与者来说,安全数据库中的信息可能具有重大价值。对安全数据库610的备份不能给用户带来太大的不便,也不能破坏任何安全性。
可以在多种时刻检查是否需要对安全数据库610进行备份,例如在电子设备600加电时、初始启动SPE 503时、在周期性的时间间隔、以及由SPE 503维护的“审核累计”值或其它概要服务信息超过了用户设置的或其它的阈值时。上述检查也可由某些准则所触发,这些准则可以由一个或多个信息内容发布者和/或分发者和/或票据交换所服务提供者和/或用户来创建。可以在适当时刻提示用户做备份,例如当用户没有做备份时,或者在某个特定时间,或者经过一定时间,或者超过一定的使用量之后。也可以自动进行备份而无需用户的干预。
参看图8,可以用备份存贮设备668和存贮介质670(如磁带)来存放备份信息。当然,任何非易失性的介质(如一个或多个软磁盘、可写光盘、硬盘等等)也都可用来做备份存贮设备668。
至少有两种备份安全数据库610的方案。第一种方案是“特定于站点的”,它使用SPU 500的安全性来支持备份信息的恢复。这种方法适用于安全数据库610由于某些原因受到破坏的情况,这些可能的原因有二级存贮设备652故障,用户不留心对文件造成的破坏,或者其它可能对某些或全部安全数据库610造成破坏或毁坏的情况。上述第一种方案,即特定于站点的备份方案基于了这样一种假设,即SPU 500还能够正确运行,并可用来恢复备份信息。
第二种备份方案假设用户的SPU 500不能继续工作并且需要替换或已经被替换。这种方案使一个经授权的VDE管理员或其他经授权的VDE参与者能够访问所存储的备份信息,以防关键数据丢失,以及/或者帮助用户从错误中恢复。
在图39所示的例子中,上述两种方案均由ROS 602执行的一些程序控制步骤所支持。图39示意了一个备份例程1250,该备份例程1250由电子设备600执行以便将安全数据库610(以及其它信息)备份到备份存贮设备668中。如前所述,一旦备份过程开始,备份例程1250将产生一个或多个备份密钥(处理框1252)。之后备份例程1250读入所有的安全数据库项,将它们进行解密(处理框1254),此时使用的解密密钥是向安全数据库610存放这些项之前对之加密所用的原始密钥。由于对于安全数据库610实例中的上述信息来说SPU 500通常是存放用来解密该信息的密钥的唯一站的地方,同时也由于备份例程1250所提供的第一种方案是假设SPU 500已经完全失效或毁坏,备份例程1250因而执行上述读取和解密步骤1254,其目的是使以后从备份做恢复时不需要知道SPU中的那些密钥。相反,备份例程1250用新生成的一个备份密钥将每个安全数据库610项进行加密(处理框1256),并将加密后的项写入备份存贮设备668(处理框1258)。上述进程将重复进行,直到安全数据库610中的所有项都被读入、解密、用一个新生成的备份密钥进行加密、然后写回备份存贮设备668为止(由判定框1260对该条件进行检查)。
较佳实施例还通过SPE概要服务管理器560从SPU 500的受保护存贮器中读出概要服务审核信息,并使用一个新生成的备份密钥对该信息进行加密,然后将该统计服务信息写入备份存贮设备668中(处理框1262)。
最后,备份例程1250把处理框1252产生的并由处理框1256、1262用来加密的备份密钥保存在备份存储器668上。为此,它采用两种安全方法以便支持上述两种恢复方案。备份例程1250可以用另一个或另一些密钥对上述备份密钥(以及其它某些信息,如备份的时间或者可以标识本次备份的其它适当信息)进行加密,这样只有SPU500才能解密(处理框1264)。然后这些经过加密的信息被写入备份存贮设备668(处理框1264)。举例来说,该步骤可以包含多次加密过程,并使用一个或多个公开密钥,这些公开密钥的对应私有密钥只有SPU 500知道。作为另一种选择,可以不用公开密钥而是使用第二个备份密钥来做最后这次加密,这个第二备份密钥由SPU 500产生而且只保存在该SPU中。处理框1264最好进行多次加密以便使备份的安全性更加稳固,这样,通过破解用来保护备份密钥的加密过程以期突破上述备份的安全保护就变得更加困难了。虽然处理框1262将加密后的概要服务信息保存到了备份中,但是最好不要将在备份中保存SPU设备私有密钥、共享密钥、SPU代码、以及其它内部安全性信息,以防这些信息即使在加密的格式下也被用户获知。
处理框1264保存的信息足以使执行(或至少部分执行)备份例程1250的同一SPU 500能够恢复经过备份的信息。但是,这些信息只有对上述同一SPU有用,而对除此之外的其它设备来说是毫无价值的,这是因为只有上述的SPU才知道用来保护备份密钥的特定密钥。为了复盖其他可能的情况,其中上述SPU 500无法进行恢复工作,考虑到这些情况,备份例程1250提供了附加的步骤(处理框1266),该步骤利用另外的一个或多个密钥来保护对备份密钥的保存,这些密钥可以被一个经授权的VDE管理员所读取。例如,处理框1266可以使用一个“下载授权密钥”对备份密钥进行加密,而该“下载授权密钥”则是在SPU 500初始化的时候从一个VDE管理员那里接收到的。被加密的备份密钥同样被写入备份存贮设备668中(处理框1266)。该方法可以用来在SPU 500失效的时候恢复备份文件。更加特别的是,对于某个VDE管理员来说,如果他知道由处理框1266使用的下载授权密钥(或其它密钥),那么他就可以恢复备份存贮设备668中的备份密钥,从而可以继续将经过备份的安全数据库610恢复到同一或不同的电子设备600中。
在较佳实施例中,只有从一个经过授权的VDE管理员那里得到备份授权之后,由备份例程1250保存在备份文件中的信息才能够被恢复。在大多数情况下,恢复过程只是简单地将安全数据库610进行恢复,同时对备份发生以后的任何使用进行记录。为了反映出上次备份以后的活动,该过程可要求用户与另外的提供者联系,以便向之传送审核和计帐数据,并且接收新的预算。为确定最近的使用行为,可把在SPU 500中维护的当前概要服务信息与保存在备份中的概要服务信息做比较。
在SPU 500失效的情况下,必须与一个授权的VDE管理员联系以便初始化更换SPU 500,同时解密备份文件。这些进程考虑到了SPU失效的处理以及向新SPU的升级。在恢复时,备份文件用来将必须的信息恢复到用户的系统中。在升级时,备份文件可以用来确认升级进程。
在某些情况下,备份文件可以用来在电子设备600之间传递管理信息。但是,较佳实施例可禁止在具有适当授权的电子设备之间传输某些或者全部信息。可以将某些或者全部备份文件封装进管理对象中再进行传送,以供分析、传输等之用。
现在举一个更为详细的例子来说明需要恢复备份文件的一种情况。假设电子设备600出现硬盘故障或者其它事故从而导致部分或全部安全数据库610被抹掉或毁坏,不过假设SPU 500还能运行。SPU500可含有恢复安全数据库610所需的全部信息(如密钥等)。但是,ROS 602可禁止对安全数据库进行恢复,直到它从某个VDE管理员那里收到恢复授权为止。恢复授权信息可包含(举例来说)必须与SPE503预期的值相匹配的一个“秘密数值”。如果需要的话,VDE管理员可能只有在收到SPU 500中的概要服务信息之后才提供上述恢复授权信息,其中,概要服务信息是放在供分析的管理对象中传输给该管理员的。在某些情况下,VDE管理员可要求将备份文件的(部分或完整)副本放在管理对象中传递过来。以检查是否用户有欺诈行为的迹象。一旦得到授权之后,恢复进程可能需要对恢复的预算记录等进行调整,以便反映出上次备份之后的行为,这一点前面已经讲过。
图40示意了一个由程序控制的“恢复”例程1268,该恢复例程1268由电子设备600执行以便根据图38例程提供的备份来恢复安全数据库610。该恢复过程使用的场合可以是(举例来说)电子设备600已经失效,但是与一个VDE管理员联系以后可以恢复或“重新初始化”该电子设备600时。由于较佳实施例不允许SPU 500在没有得到VDE管理员授权的情况下就从备份中进行恢复,所以例程1268首先与一个VDE管理员建立安全的通信,而该VDE管理员能够对恢复过程进行授权(处理框1270)。一旦SPU 500与VDE管理员互相鉴别对方之后(处理框1270的一部分),该VDE管理员可从SPU 500内部的非易失性存贮器中提取“正在进行的工作”和概要值(处理框1272)。VDE管理员可用这些提取出的信息来帮助确定(举例来说)是否出现了侵犯安全性的问题。VDE管理员还允许出现故障的SPU 500将其内容有效地“转储”给VDE管理员,从而使VDE管理员可以处理这些内容。SPU 500可将这些信息加密、包装到一个或多个管理对象中,然后再传递给VDE管理员。然后VDE管理员可要求SPU 500提供部分或全部当前安全数据库610的一份拷贝(处理框1274)。举例来说,该信息可由SPU 500包装到一个或多个管理对象中,然后再发送给VDE管理员。收到该信息后,VDE管理员可以从备份卷中(即由图38处理框1262所保存的信息)读出概要服务审核信息以确定在备份的时候所保存的概要值和其它信息。通过察看由图38处理框1264所保存的信息,VDE管理员还可以确定备份时的时间和日期。
此时VDE管理员可以根据从处理框1272以及备份中获得的信息恢复SPU 500中的概要值和其它信息(处理框1276)。例如,VDE管理员可能重新设置SPU内部概要值和计数器,使它们与上次备份的时候一致。VDE管理员可根据由处理框1272恢复的“正在进行的工作”、用上次备份以后经过的时间等对这些数值进行调整。其目的通常是尽量将SPU内部的值调整到如果未发生故障时它们现在应该具有的值。
然后VDE管理员可授权SPU 500从备份文件中恢复安全数据库610(处理框1278)。该恢复进程将用备份中的记录替换安全数据库610的所有记录。在恢复进程中或恢复进程之后,根据需要VDE管理员可通过向SPU 500发送命令来调整这些记录。
然后VDE管理员可根据恢复的数值来计算帐单(处理框1280),并执行其它操作以便从SPU故障时间中恢复(处理框1282)。其目的通常是计算用户的帐务并调整与失效电子设备600有关的其它VDE100值,这些值是上次备份之后到这次故障之前这段时间内所发生的使用。上述进程可包括下面的步骤VDE管理员从其它VDE参与者那里得到在上述电子设备故障之前有关该电子设备使用的报告和其它信息,并将这些报告或信息与安全数据库备份相对比,以确定哪些使用或事件还没有经过记录。
在一个可选的实施例中,SPU 500可带有充足的非易失性内部存贮器,从而可以存贮部分或全部安全数据库610。在该实施例中,这种附加的存贮器可以是一个或多个集成电路,这些集成电路置于在一个安全封装中,例如一个防破坏金属盒或者某种可以容纳多个集成电路部件的芯片封装,这些封装可以阻止和/或揭露破坏企图,并且/或者可以在受到破坏的时候,使部分或整个SPU 500或相关关键密钥和/或其它控制信息处于失效状态。此时可以使用图38所示的同一备份例程1250把这类信息做备份,唯一的区别是处理框1254可从SPU内部存贮器中读取安全数据库条目,并且在用备份密钥将它们加密之前不再需要将它们解密。
事件驱动的VDE进程如前所述,由较佳实施例权利操作系统(ROS)602提供或在其管理之下的进程可以是“事件驱动”的。这种“事件驱动”功能方便了集成性和可扩展性。
“事件”是在某一时刻发生的某件事。事件的某些例子包括用户在键盘上敲了某个键、消息或对象300的到来、计时器的到期、以及其它进程发来的请求。
在较佳实施例中,ROS 602为响应一个“事件”要执行一个进程。为响应一个“事件”,ROS 602将动态地创建活跃进程和任务。例如,ROS 602为响应一个事件可创建并执行一个或多个部件组690,以便执行一个或多个进程。一旦ROS 602对事件的响应结束,上述活跃进程和任务可能就终止。这种为响应事件而动态创建(和终止)任务的能力提供了很大的灵活性,它同时还允许使用有限的执行资源(如SPU 500所提供的那种执行资源)在不同的上下文中执行实际无限多的不同进程。
由于“事件”可以是任何类型的所发生情况,所以不同的事件就是无限多样的。因而,将事件分成不同类型必然是一种概括。基于这个出发点,就可将较佳实施例所提供/支持的事件分成下面两大类●用户引发的事件●系统引发的事件通常,“用户引发”的事件是归因于一个用户(或一个用户应用)的所发生情况。一个常见的“用户引发”事件是用户发出的、访问一个对象300或其它VDE保护信息的请求(如通过按下键盘上的键或透明地使用重定向器684发出这些请求)。
“系统引发”的事件通常不归因于一个用户。系统引发事件的例子包括计时器到时—这表示需要将某些信息写回非易失性存贮器中;从其它电子设备600那里收到一条消息;以及由其它进程(该进程可以是为了响应一个系统引发的事件和/或一个用户引发的事件而被启动的)产生的一个服务调用。
为响应一个事件,由较佳实施例提供的ROS 602通过指定进程并执行该进程以便处理该事件。在较佳实施例中,这些进程是基于方法1000的。由于事件的类型无限多样,较佳实施例于是支持无限多样的进程来处理事件。较佳实施例利用可独立交付的模块如方法核心1000’、加载模块1100、以及UDE 1200之类的数据结构来动态地创建部件组690,从而支持了上述灵活性。尽管要划分较佳实施例支持/提供的无限多样的进程,必然要采用概括的方式,这些进程仍然可被划分为下面两种类型●与使用VDE保护信息有关的进程●与VDE管理有关的进程“使用”和“管理”进程“使用”进程总是以种种形式与使用VDE保护信息有关。由较佳实施例提供的方法1000可以产生适当进程以创建和维护一条控制链,用该控制链来控制对VDE保护信息的使用。举一个“使用”进程的具体例子,通过执行某个“使用”进程可以允许某个用户打开一个VDE对象300并访问其内容。方法1000可以提供功能更为细化的、有关使用的进程,例如(如果允许的话)向提出请求的用户发布信息内容,更新计量、预算、审核跟踪,等等。有关使用的进程通常由用户来启动,但是某些使用进程可能是由系统启动的。如果一个事件触发了一个与使用相关的VDE进程,那么该事件可称为“使用事件”。
一个“管理”进程对维护VDE 100正常工作提供帮助。它提供的处理可以有助于支持交易管理基础结构,该结构可以维护VDE 100安全有效地运行。管理进程可(举例来说)提供在某些方面与创建、修改和/或销毁VDE保护数据结构等操作有关的处理,上述操作可以建立和维护VDE的处理和控制链。例如,“管理”进程可以保存、更新、或销毁存放在VDE电子设备600安全数据库610中的信息。管理进程还可以提供通信服务,这些通信服务在不同的VDE电子设备600之间建立、维护以及支持安全的通信。触发了管理进程的事件可称为“管理事件”。
交互方法某些VDE进程是成对出现的,这取决于它们一起交互作用的方式。一个VDE进程可以向另一个VDE进程“请求”处理服务。该请求处理服务的进程可以称为“请求进程”。由于该“请求”触发了进程对中另一个进程的处理,所以该“请求”形成了一个“事件”。响应该“请求事件”的VDE进程可以称为“响应进程”。“请求进程”和“响应进程”可称为“交互进程”。
“请求事件”可包含(举例来说)VDE节点电子设备600或某个进程为获取某些信息而发出的一条消息。对应的“响应进程”可(举例来说)通过发出在该消息中所请求的信息,作为对上述“请求事件”的响应。如果该响应触发了另一个VDE“响应进程”,那么该响应本身可以形成一个“请求事件”。例如,收到一条为响应早先产生的请求的消息可以触发一个“应答进程”。该“应答进程”是一种特殊类型的“响应进程”,对其的触发是为了响应来自另一“响应进程”的“应答”。在一个给定的VDE交易中,可以有任意数量的“请求”和“响应”进程对。
“请求进程”及其配对的“响应进程”可以在同一VDE电子设备600中执行,也可以分别在不同的VDE电子设备中执行。两个配对进程之间的通信可以是安全(VDE保护的)通信、“通道外”通信、或两者的组合。
图41a-41d是一些例子,它们示意了使用“交互方法”如何启动处理和控制链。处理和控制链的创建部分地利用了一个或多个“交互事件”对,这些“交互事件”对以请求-响应的方式相互协作。在较佳实施例中,可以在一个或多个“交互方法”中管理交互事件对。如上所述,一个“交互方法”是一个方法1000,该方法可以响应一个或多个“交互事件”。交互方法包含协作进程的两个组成部分,该进程可以在物理上和/或时间上相距较远的VDE节点中安全地运行。交互进程可以带有灵活定义的信息传送协议和信息内容结构。交互方法实际上可以基于运行于同一或不同VDE节点600上的同一或不同方法核心1000’。图41a所示的VDE节点600A和600B可以是同一个物理电子设备600,也可以是不同的电子设备。
图41a示意了一对交互事件的操作。在VDE节点600A中,方法1000a正在处理一个事件,该事件带有一个需要在VDE节点600B中处理的请求。响应该“请求”的方法1000a(例如,该方法基于某个部件组690,该部件组690包含相关的加载模块1100和数据)在图41a中标记为1450。进程1450创建了一个请求(1452)以及(可选地)某些信息或数据,该请求以及上述信息或数据将被发送到另外的VDE节点600B,以供与该交互事件相关的某个进程处理。可以采用本公开任何地方所说明的任意传送机制来传送上述请求或其它信息。
VDE节点600B收到的请求包括在该节点的一个响应事件。一旦收到该请求,VDE节点600B将执行由同一或不同方法1000b定义的“交互”进程1454,作为对该响应事件的响应。交互进程1454可以基于部件组690(如,一个或多个加载模块1100、数据,并且作为可选项,还可以包括VDE节点600B中的其它方法)。
图41b对图41a中的概念进行了扩展。图41b还包含从VDE节点600B发回VDE节点600A的一个响应。前面已经结合图41a讨论过,这一进程开始于VDE节点600B中响应进程1454收到上述请求事件和信息1452并对之进行处理。作为其处理的一部分,响应进程1454可与另一个请求进程(1468)相互协作,向起始VDE节点600A送回一个响应1469。由方法1000A产生的对应交互进程1470可响应该请求事件1469并对之进行处理。采用这种方式,两个或更多的VDE节点600A、600B可以相互协作,并在执行于这些节点之中的方法1000A、1000B之间传递可配置信息和请求。上述第一个和第二个请求-响应序列[(1450,1452,1454)和(1468,1469,1490)]可以由时间和空间距离所分离。为了提高效率,请求(1468)和响应(1454)进程可以基于同一方法1000,或它们也可以作为同一或不同方法核心1000’的两种方法来实现。可以用“事件代码”作为方法1000的参数,这样,方法1000就可以针对不同事件采取不同的行动/产生不同的结果,对于不同的事件也可以提供不同的方法。
图41c将图41a-41b所描述的控制机制扩展到三个节点(600A,600B,600C)。每个请求-响应对都按照图41b中描述的方式进行操作,其中,某些请求-响应对链在了一起从而在若干VDE节点600A,600B,600C之间形成了一条处理和控制链。使用这种机制可以将处理和控制链延长,使之包含任意数目的VDE节点,而这些VDE节点可以采用任何配置形式。例如,VDE节点600C可直接与VDE节点600A和VDE节点600B通信,而VDE节点600B可与VDE节点600A进行通信。作为另一种选择,VDE节点600C可直接与VDE节点600B通信,VDE节点600A可以与VDE节点600B通信,而VDE节点600B可以与VDE节点600C通信。
可以用事件的集合对方法1000进行参数化,这些事件则指定了相关的或相互协作的功能。可以根据功能(如使用、分发)对事件进行逻辑分组,也可以根据交互事件的集合进行分组,这些交互事件指定了可以彼此相互协作的进程。图41d示意了“交互事件”的一个集合,这些交互事件支持在信息内容分布模型下,若干VDE节点102、106、112之间的协作处理,从而支持预算的分发。在本例中,通过使用由BUDGET(预算)方法中指定的“交互事件”集合来形成处理和控制链。图41d示意了示例BUDGET方法中的交互事件如何相互协作,以建立若干VDE节点之间的处理和控制链。该示例BUDGET方法1510为响应“使用”事件1478执行“使用”进程1476,该进程规定了对处理进行预算的机制。BUDGET方法1510可(举例来说)指定一个使用进程1476,该进程将一个计量计数与一个预算值进行比较,当计量的计数超过了预算值时,该进程将停止操作下去。该进程还产生一个审核跟踪记录,用来描述所述BUDGET的判定结果。为响应一个“分发”事件,BUDGET方法1510可以执行一个分发进程1472,该进程规定了进一步分配预算的处理和/或控制信息。为响应一个“请求”事件,该方法可以执行一个请求进程1480,该进程规定了用户可如何向分发者请求使用权和/或分发权。为响应一个“响应”事件,该方法可以执行一个“响应”进程1484,该进程规定了分发者将响应其它用户请求的方式,而对于这些用户,分发者已经把他们的某些(或全部)预算分发给了他们。为响应一个“应答”事件1474,上述方法可以执行一个应答进程1475,该进程规定了用户应该如何响应一个再批准或否决(更多)预算的消息。
在较佳实施例中,对事件处理、交互事件、以及它们的相关方法和方法部件的控制是由PERC 808提供的。这些PERC 808可引用对特定数据结构型的创建、修改和分发进行控制的管理方法,以及引用允许对上述项进行访问、修改、以及进一步分发。采用这种方式,在处理和控制链中的每一个链接(举例来说)都可以按照该分发链中前一个成员规定的方式定制审核信息、改变使用信息内容的预算需求、以及/或者对进一步分发这些权利进行控制。
在图41d中的例子中,VDE分发节点(106)中的分发者可向另一节点(102)中的信息内容制作者发出预算请求。可以通过安全的VDE通信来发出该请求,或者也可以通过“通道外”通信(如通过电话或信件)对之进行传送。制作者102可决定给予分发者预算,并处理一个分发事件(VDE节点102BUDGET方法1510中的1452)。在BUDGET方法中对该分发事件进行处理后,在VDE节点102和106之间将产生一次安全通信(1454),该通信将把给予分发者106使用权和分发权的预算从制作者102传送到分发者。为响应对预算信息的接收,分发者的VDE节点106可利用BUDGET方法1510的应答进程1475B来处理该通信。该应答事件处理1475B可(举例来说)在分发者的VDE节点106中安装一个预算和PERC 808,以允许分发者访问某些信息内容和进程,而对这些信息内容和进程的访问至少部分地由上述预算和/或PERC 808进行控制。在某些时刻,分发者106可希望使用那些他已经得到访问权的信息内容。
在对信息内容对象的使用进行注册之后,用户112可需要使用一组“使用”进程1476C来(举例来说)打开、读、写、和/或关闭上述信息内容对象,这些操作是上述使用进程的一部分。
一旦分发者106已经消耗了他的某些或全部预算,他可能希望得到更多的预算。该分发者106于是可使用BUDGET方法请求进程(1480B)来启动一个过程。请求进程1480B可以与VDE节点102建立一次通信(1082AB),通过该通信,请求进程1480B请求得到更多的预算,同时还可提供到现在为止的使用行为详细记录(如审核跟踪)。信息内容制作者102利用其BUDGET方法1510A中的响应进程(1484A)对上述“获取更多预算”请求事件1482AB作出处理。响应进程1484A可能(举例来说)要确定上述使用信息是否表明对信息内容的使用是恰当的,以及/或者分发者是否具有足够的信用以得到更多的预算。BUDGET方法响应进程1484A还可启动一次财务交易从分发者那里传送资金过来,以便偿付上述的使用;或者利用分发进程1472A将预算分发给分发者106。此时,作为对请求通信1482AB的响应,可能立即向分发者106发送一个用以给予更多预算(或否决更多预算)的响应,或者可能在以后作为另一次通信的一部分将该响应发送出去。一旦分发者的VDE节点106收到了上述的响应通信,将可以利用其BUDGET方法1510B拷贝中的应答进程1475B对该响应作出处理。应答进程1475B可采用与前面所述方式相同的方式处理这些附加的预算。
除了传送预算信息之外,处理和控制链还传递某些控制信息,这些控制信息可以控制所述预算的使用方式。例如,上述例子提到的控制信息还可说明某些进程和限制的控制信息,这些进程和限制适用于分发者如何分发对制作者的信息内容对象的使用权。所以,当分发者使用利用其BUDGET方法1510B拷贝中的分发进程1472B对用户发来的一个预算请求(该请求是VDE节点112中的用户与VDE节点106中的分发者之间的一次通信,其过程在原理上类似于前面所述的VDE节点106和102之间的通信)进行响应的时候,将可能会产生与上面所述相类似的分发及请求/响应/应答进程。
因而,在本例中,单个方法可以根据不同的“触发”事件产生多种动态的行为。例如,单个BUDGET方法1510可支持下列的任意或全部事件
交互方法进程的举例A.预算图42a,42b,43c和42d中的流程图分别示意了由BUDGET方法2250执行的进程控制步骤,此处的BUDGET方法2250是较佳实施例提供的一个有代表性BUDGET方法。在较佳实施例中,BUDGET方法2250可以操作于下列4种不同模式下
使用(参看图42a)
管理请求(参看图42b)
管理响应(参看图42c)
管理应答(参看图42d)通常,启动BUDGET方法2250的“使用”模式是为了响应一个有关对象或对象的信息内容使用的事件。BUDGET方法2250的“管理请求”模式是由用户启动的,或是以用户的名义启动的,它用来响应需要与VDE财务提供者联系的用户动作,通常,这种模式的任务是向该VDE财务提供者发送一个管理请求。BUDGET方法2250的“管理响应”模式是在VDE财务提供者处执行的,它通过启动BUDGET方法2250的“管理请求”处调用来响应由VDE节点发送到VDE财务提供者的管理请求,BUDGET方法2250的“管理响应”调用导致把一个管理对象从VDE财务提供者传送给VDE用户节点。图42d中BUDGET方法2250的“管理应答”调用是在用户VDE节点处执行的,一旦收到由图42c方法的“管理响应”调用所发出的管理对象后,就执行该调用。
在较佳实施例中,同一个BUDGET方法2250可以执行图42a-42d所示的4种不同步骤序列。在较佳实施例中,可以向BUDGET方法2250传递不同的事件代码以便调用上述不同的模式。当然,也有可能使用4种不同的BUDGET方法来代替单个的BUDGET方法,而这4种方法具有四种不同的“动态个性特征”,但是通过使用同一种方法来进行4种类型的调用,较佳实施例可以获得某些好处。
参看图42a,BUDGET方法2250的“使用”调用,首先准备好一个预算审核跟踪(处理框2252,2254)。然后它获取预算UDE的DTD,该DTD用来获取和读取预算UDE(处理框2256-2262)。在上述“使用”调用中,BUDGET方法2250接着判断预算审核日期是否已经到期,如果是的话(判定框2264的“是”出口;处理框2266、2268),它将终止处理。只要预算审核日期还未到期,上述方法将使用原子元素和事件计数(可能还包括其它信息)来更新预算(处理框2270,2272),并且在终止(位于终止点2278)之前将预算用户审核记录存放在预算审核跟踪UDE中(处理框2274,2276)。
参看图42b,前6步(处理框2280-2290)可以由用户VDE节点执行,以便响应某些用户操作(如请求访问新信息、请求得到新预算等)。BUDGET方法2250的“管理请求”调用可首先准备好一个审核跟踪(处理框2280,2282)。然后,该方法将把一个对相应预算进行管理处理的请求放入一个请求队列(处理框2284,2286)。最后,该方法保存相应审核跟踪信息(处理框2288,2290)。过了一段时间以后,用户的VDE节点可准备好一个通信审核跟踪(处理框2292,2294),然后可将预算管理请求写入某个管理对象中(处理框2296)。如果需要的话该步骤将访问安全数据库,并从诸如预算UDE、预算审核跟踪UDE以及管理请求记录之类的信息源中获取必要的信息(处理框2298)。
然后处理框2296可将上述管理对象传送到某个VDE财务提供者,作为另外一种选择,处理框2296也可以将该管理对象传递给某个独立的通信进程或方法,这些通信进程或方法可以安排上述通信。如果需要的话,方法2250可在终止(位于终止点2304)之前保存一个通信审核跟踪(处理框2300,2302)。
图42c中的流程图示意了由较佳实施例提供的示例BUDGET方法2250所执行的一系列示例进程控制步骤,该方法执行于“管理响应”模式下。某个VDE财务提供者在收到一个含有预算管理请求的管理对象时,将(举例来说)执行图42c所示的步骤,该对象是在图42b(处理框2296)中产生(并被发送给某个VDE管理员)的。
一旦收到上述管理对象,VDE财务提供者处的BUDGET方法2250可准备好一个预算通信和响应的审核跟踪(处理框2306,2308),然后解开该管理对象,并检索其中所含的预算请求、审核跟踪和记录(处理框2310)。从该管理对象中获取的信息可由该VDE财务提供者写入其安全数据库中(处理框2312)。然后VDE财务提供者可检索上述预算请求,并确定适当的响应方法以便处理该请求(处理框2314,2316)。BUDGET方法2250可将包含在该请求记录中的事件发送给适当的响应方法,并根据RESPONSE(响应)方法产生响应记录和响应请求(处理框2318)。处理框2318中的处理可执行相应操作来满足上述预算请求,即将相应的新响应记录写入VDE财务提供者的安全数据库中(处理框2320)。之后,BUDGET方法2250将上述预算管理响应记录写入一个管理对象中(处理框2322,2324),该对象接着被传送回发出预算请求的用户节点。BUDGET方法2250在终止之前(终止于终止点2330)可把通信和响应处理审核跟踪信息存入相应的审核跟踪UDE中(处理框2326,2328)。
图42d中的流程图示意了由有代表性的示例BUDGET方法2250所执行的一系列示例程序控制步骤,该方法执行于“管理应答”模式下。某个VDE用户节点在收到一个含有预算相关信息的管理对象时,可能(举例来说)执行图42d所示的步骤。BUDGET方法2250可首先准备好一个预算管理及通信审核跟踪(处理框2332,2334)。然后,BUDGET方法2250可从收到的管理对象中提取记录和请求,并将应答记录写入VDE安全数据库中(处理框2336,2338)。然后该VDE用户节点可将预算管理及通信审核跟踪信息存入相应的审核跟踪UDE中(处理框2340,2341)。
过了一段时间以后,该VDE用户节点可从安全数据库中检索上述应答记录,并确定应该使用哪个方法来对之进行处理(处理框2344,2346)。作为一个可选步骤,该VDE用户节点可准备好一个审核跟踪记录(处理框2342,2343)以便记录应答事件的处理结果。之后,BUDGET方法2250可向REPLY(应答)方法发送包含在应答记录中的事件,并且根据需要生成/更新安全数据库记录,例如插入新的预算记录、删除旧的预算记录、以及/或者对预算记录做修改(处理框2348,2350),在写审核跟踪记录(如果需要的话)(处理框2354m2355)终止之前(终止于终止点2356),BUDGET方法2250可从安全数据库中删除上述应答记录(处理框2352,2353)。
B.注册图43a-43d中的流程图示意了由REGI STER(注册)方法2400执行的程序控制步骤,此处的REGISTER方法2400是较佳实施例提供的一个有代表性REGISTER方法。在本例中,REGISTER方法2400在执行图43a所示的示例步骤时是操作于“使用”模式;在执行图43b所示的示例步骤时是操作于“管理请求”模式;在执行图43c所示的示例步骤时是操作于“管理响应”模式;在执行图43d所示的示例步骤时是操作于“管理应答”模式。
图43a所示的步骤(举例来说)可以在一个用户VDE节点中执行,它用来响应用户产生的某些操作或以用户名义用户而发生的某些操作。例如,用户可请求访问某个对象,而对象尚未(或目前没有)正确地向她注册。为响应这种用户请求,REGISTER方法2400可首先准备好一个注册审核跟踪UDE(处理框2402,2404),然后判断所请求的对象是否已经注册过了(判定框2406)。如果该对象已经注册过了(判定框2406的“是”出口),那么REG I STER方法将终止执行(终止于终止点2408)。如果该对象尚未注册(判定框2406的“否”出口),那么REGISTER方法2400可访问该VDE节点安全数据库PERC 808和/或注册MDE(处理框2410)。然后,REGISTER方法2400可从上述PERC 808和/或注册MDE中提取出相应的注册记录集合(处理框2412),并确定注册对象所需的所有元素是否都齐全(判定框2414)。如果缺少某些元素(判定框2414的“否”出口),REGISTER方法2400可能将一个注册请求记录放入通信管理器的队列中,然后挂起该REGISTER方法,直到队列中的请求得到满足为止(处理框2416、2418)。(举例来说)处理框2416可将一个注册请求发送给某个VDE分发者。当该请求被满足以后,并且收到了一个注册请求记录(处理框2420),那么判定框2414的测试得到满足(判定框2414的“是”出口),于是REGISTER方法2400将继续进行处理。在该阶段,REGISTER方法2400可允许用户从一系列备选方法中选择注册选项,这些备选方法为处理框2410中访问的PERC 808所允许。举一个简单例子,PERC 808可允许用户用VISA或MasterCard付帐,但不允许用American Express付帐。处理框2422可显示一个提示,要求用户从VISA付帐方式和Master Card付帐方式中选择(处理框2424)。REGISTER方法2400最好对用户选择的注册选项进行确认,如果用户的选择无效的话,应该要求用户选择另外的选项(处理框2426,判定框2428的“否”出口)。一旦用户完成了所有必要的注册选项选择并且这些选择已经被确认(判定框2428的“是”出口),REGISTER方法2400将产生一个对应于上述对象和用户的用户注册表(URT),该用户注册表反映了该用户所做的注册选择,以及PERC 808和/或注册MDE要求的其它注册信息(处理框2430、2432)。REGISTER方法2400在终止之前(终止于终止点2436)可将注册审核记录写入安全数据库中(处理框2432,2434)。
图43b示意了REGISTER方法2400的“管理请求”模式示例。管理请求模式可以发生在VDE用户系统中,它产生一个相应的管理对象,以便将该对象传送到请求得到注册信息的某个VDE分发者或其它适当的VDE参与者。因而,(举例来说)图43b所示的步骤可是图43a中“将注册请求记录排入队列”处理框2416的一部分。为产生注册管理请求,REGISTER方法2400可首先准备好一个通信审核跟踪记录(处理框2440、2442),然后访问安全数据库以获取有关注册的数据(处理框2444)。安全数据库可(举例来说)允许正接受注册对象的所有者和/或发布者在其中查找统计信息、用户或有关用户的其它信息。举一个特定的例子,假设正在被注册的对象是一个电子表格软件程序。该对象的分发者可能希望了解用户还注册了其它哪些软件。例如,如果用户注册了由同一分发者分发的、含多个软件产品的套件,那么该分发者可能愿意给予用户优惠的价格。这类的信息可以由包装于大多数标准软件包中的“用户注册”卡来征求,较佳实施例可以在注册时刻自动获取这类信息。为了保护用户的隐私权,REGISTER方法2400可以通过一个隐私过滤器传递这种特定于用户的数据,该隐私过滤器至少是部分地由用户定制,因而用户可以防止某些信息泄露到外界(处理框2446)。REGISTER方法2400可把得到的信息、用来标识上述对象的相应注册请求信息、以及其它相应参数写入一个管理对象中(处理框2448、2450)。然后REGISTER方法2400将该管理对象传送给一个通信处理程序。接着REGISTER方法2400可以保存通信审核跟踪(处理框2452、2454),然后终止(终止于终止点2456)。
图43c示意了某个VDE分发者节点在收到由图43b中处理框2448发来的注册管理对象时可能执行的REGISTER方法2400。在该“管理响应”模式下,REGISTER方法2400可首先准备好相应的审核跟踪记录(处理框2460、2464),然后对收到的管理对象进行解包,并将相关的注册请求配置信息写入安全数据库中(处理框2464,2466)。接着,REGISTER方法2400可从安全数据库中检索到上述管理请求,并确定应该运行哪个方法来处理该请求(处理框2468,2470)。如果用户没有提供注册对象所需的足够信息,REGISTER方法2400可以终止(处理框2472,2474)。否则,REGISTER方法2400将向相应的响应方法发送包含在相应请求记录中的事件,同时生成响应记录和响应请求(如PERC和/或UDE),并将之写入安全数据库中(处理框2476,2478)。然后REGISTER方法2400把相应的注册管理相应记录写入一个管理对象中(处理框2480,2482)。这些信息可包含(举例来说)一个或多个替换PERC 808、方法、UDE,等等(处理框2482)。采用这种方法,(举例来说)分发者就可以先向用户分发有限的权限许可,这些权限许可只给予用户注册对象所需的足够信息;然后在以后在注册时,分发者就可以将这些有限的权限许可替换成范围更广的许可,后者可以允许用户更加完整地访问对象。接着,REGISTER方法2400将保存通信和响应处理审核跟踪(处理框2484,2486),然后终止(终止于终止点2488)。
某个VDE用户在收到由图43c处理框2480生成/传送的管理对象时,可(举例来说)执行图43d所示的步骤。图43d所示的步骤非常类似于图42d所示的BUDGET方法管理应答过程所采取的步骤。
C.审核图44a-44c中的流程图示意了由AUDIT(审核)方法2520执行的程序控制步骤,此处的REGISTER方法2400是较佳实施例提供的一个有代表性REGISTER方法。从这些例子中可以看出,在本较佳实施例中,AUDIT方法2520提供了3种不同的操作模式图44a示意了AUDIT方法在“管理请求”模式下执行的步骤;图44b示意了AUDIT方法在“管理响应”模式下执行的步骤;图44c示意了AUDIT方法在“管理应答”模式下执行的步骤。
通常,当VDE用户节点收到某些用户请求或以用户名义的请求时,该VDE用户节点将在“管理请求”模式下执行图44a所示的AUDIT方法2520。例如,用户可能已请求过一个审核,或者某个计时器已经到期从而启动一次通信,将审核信息传送到某个VDE信息内容提供者或其它VDE参与者。在较佳实施例中,不同的VDE参与者可以执行同一整体进程的不同审核。对于上面涉及到的任意一个(或所有)VDE参与者来说,都要启动一个特定的“审核”方法2520调用。一旦调用AUDIT方法2520,该方法可以首先准备好一个审核管理审核跟踪(因而在较佳实施例中,上述审核处理本身将可能被审核)(处理框2522,2524)。然后,AUDIT方法2520可将一个管理处理的请求放入队列中(处理框2526,2528),并且将审核管理审核跟踪存入安全数据库中(处理框2530,2532)。过一段时间,AUDIT方法2520可准备好一个通信审核跟踪(处理框2534,2536),然后可能根据保存于安全数据库中的特定UDE、审核跟踪UDE、以及/或者管理记录将审核管理请求写入一个或多个管理对象中(处理框2538,2540)。接着AUDIT方法2520可将相应信息保存到通信审核跟踪中(处理框2542,2544),然后终止处理(终止于终止点2546)。
当某个VDE信息内容提供者、财务提供者、或其它审核VDE节点收到由图44a中处理框2538生成并传送的管理对象时,它们将执行图44b所示的步骤示例。该“管理响应”模式下的AUDIT方法2520可首先准备好一个Audit通信和响应审核跟踪(处理框2550,2552),然后将收到的管理对象解包,从中检索审核请求审核跟踪和审核记录,并将它们保存到安全数据库中(处理框2554、2556)。AUDIT方法2520接着从安全数据库中检索到上述审核请求,并确定运行哪个方法可以处理该请求(处理框2558,2560)。然后AUDIT方法2520在这一阶段可向相应的响应方法发送存放在请求记录中的事件,并根据该方法生成响应记录和请求(处理框2562,2564)。处理框2562可以包含与外界进行一次通信。
例如,此时AUDIT方法2520可调用一个外部进程来执行,以便以电子方式从用户的银行帐户或某些其它银行帐户上划拨一部分资金。如果需要的话,AUDIT管理响应可以调用在VDE与一个或多个现有计算机系统之间充当接口的一个外部进程。可以向该外部进程传送用户的帐号、PIN、金额、或者其它相关信息,这些信息配置于正被处理的VDE审核跟踪中,或者与之相关。外部进程可以与一个非-VDE主机进行通信,并作为这些通信的一部分传递给它的信息。举例来说,该外部进程可以在某个文件中生成一个自动票据交换所(ACH)记录,并将该文件传送给一个银行。采用这种机制,就可以自动对任意金融机构中的银行帐户进行借贷操作。这种机制还可以用来与现有的信用卡(如VISA)网络进行通信,其过程是将基于VDE的费用记入收费帐户中。
一旦生成相应的审核响应记录以后,AUDIT方法2520可将一个审核管理记录写入一个管理对象中以便将之传回产生上述审核请求的VDE用户节点(处理框2566,2568)。然后AUDIT方法2520可将通信和响应处理审核信息存入相应的审核跟踪(处理框2570,2572),之后便终止处理(终止与终止点2574)。
当某个VDE用户节点收到由图44b中处理框2566生成并传送的管理对象时,在该节点中将由AUDIT方法2520执行图44c所示的步骤示例。图44c所示的步骤2580-2599类似于图43d中REGISTER方法2400在“管理应答”模式下执行的步骤。简而言之,这些步骤包括从管理对象中接收并提取相应的响应记录(处理框2584),然后对这些收到的信息进行相应处理,并更新安全数据库记录,同时还执行其它必要处理(处理框2595,2596)。
事件驱动的基于信息内容的方法举例VDE方法1000的设计使它能够实现更加灵活并且高度模块化的安全处理机制。通常可以作为方法1000的组合来创建服务于“使用事件”的完整进程。举一个例子,用来从对象300中阅读信息内容或其它信息的典型进程可含有下面的方法 一个事件(EVENT)方法 一个计量(METER)方法
一个计帐(BILLING)方法 一个预算(BUDGET)方法图45示意了VDE 100为响应一个事件而顺序执行的一系列方法。在本例中,当出现一个事件后,EVENT方法402可以对该事件进行“考核”以判断它是否具有有效性。并非所有事件都是有效的。例如,假设某个控制进程中的EVENT方法1000要求对使用量度的计量要以阅读的页数为单位,在这个前提下,如果用户请求读取少于一页的信息,那么此“事件”将被忽略。再举一个例子,如果某个系统事件表示请求读取一定数目的字节,同时EVENT方法1000从属于设计成作段落计量的某个控制进程,那么该EVENT方法可能要对该读请求做适当测定,以便确定所请求的字节代表了多少个段落。该过程可能包括向“原子元素”做映射,这一点将在后面详细介绍。
EVENT方法402将根据涉及到的特定控制方法把那些不具有效性的事件过滤出去。EVENT方法402将有资格的事件发送给METER进程404,该进程根据其本身的特定标准或者对上述事件进行计量,或者丢弃该事件。
另外,较佳实施例提供了一种称为“预检查”的优化措施。EVENT方法/进程402可以根据计量、计帐和预算等信息执行“预检查”,以便确定基于事件的处理是否允许执行。假设,(举例来说)由于访问某些信息内容的原因,用户已经超出了其预算额,因而无法进一步对信息内容进行访问。尽管BUDGET方法408可以作出上述决定,而由BUDGET方法404和/或BILLING方法406执行的记录和处理就可能不得不“复原”,以避免(举例来说)用户虽然进行了一次实际已被拒绝了访问,但仍然为此而缴费。如果在EVENT方法402中执行一次“预检查”就可以使必须“复原”的交易减少,这样可能会提高效率。
举例来说,METER方法404可以将审核记录存放到计量“跟踪”UDE 1200中,并且可以在计量UDE 1200中记录与事件有关的信息。例如,METER方法404可以在每次信息内容被访问的时候增加或减少计量UDE 1200中的一个“计量”值。可以维护两种不同的数据结构(计量UDE和计量跟踪UDE),(举例来说)这样可以分开维护用作报告用途的记录和用作内部操作用途的记录。
一旦事件由METER方法404计量以后,被计量的事件将接受BILLING方法406的处理。BILLING方法406确定该事件使用了多少预算,它还保存对协调计量和预算有用的有关记录。于是,(举例来说)BILLING方法406可以从一个预算UDE中读取预算信息,将计帐信息保存到一个计帐UDE中,并且将一个或多个审核记录写入一个计帐跟踪UDE中。尽管某些计帐跟踪信息可能与计量和/或预算跟踪信息重复,计帐跟踪信息仍然可以用来(举例来说)使信息内容制作者102可望得到一定数量的报酬,同时它还可以起到协调核对作用,以便在发送到制作者102的计量跟踪信息和发送到独立预算提供者的预算跟踪信息两者间进行协调。
然后BILLING方法406可将事件传送给BUDGET方法408。BUDGET方法408设置某些限制,并记录与这些限制相关的交易信息。例如,BUDGET方法408可将预算信息存入一个预算UDE中,并且还可将一个审核记录存入预算跟踪UDE中。经过BUDGET方法408处理后,预算UDE中的“预算余额”字段是减去由BILLING方法406指定的数量后所剩的数额。
一旦不同的方法402、404、406、408已经处理完上述事件,信息内容便可以发放,同时还可能允许其它操作发生。
如上所述,在较佳实施例中,可以利用“控制方法”来提供PERC808,这些控制方法实际上在某个控制进程中“监视”其它必要方法的性能。图46示意了控制方法410对图45中的必要方法/进程402,404,406及408是如何组织和控制的。控制方法410可以调用和调度事件,或者调用其它方法402,404,406及408,并且可以监视为响应某个“事件”而进行的处理。
控制方法运行于PERC 808中控制集合906这一层次。控制方法在实现迥异的方法1000之间提供了结构、逻辑和控制流。这种机制使信息内容提供者可以创建所需的任意处理链,同时还允许居后的再次分发者(在允许的限度内)修改特定的处理链。这种控制结构概念提供了很大的灵活性。
图47示意了“聚合”方法412的一个例子,该聚合方法412把METER方法404、BUDGET方法406、BILLING方法408收集在一起放在了一个“聚合”处理流中。聚合方法412可以(举例来说)把各种计量、预算和计帐元素合并成单个方法1000。由于聚合地执行METER方法404、BUDGET方法406、BILLING方法408,因而聚合方法412可以提高效率。不过由于模块化的降低同时也导致了灵活性的降低。
多个不同的方法可以同时起作用。图48示意了较佳实施例中的一个事件处理过程,该过程使用了多个METER方法404和多个BUDGET方法1408。为了处理某事件,可能需要单独或同时执行多个不同的必要方法。例如,在图48所示的例子中,METER方法404a可以维护计量跟踪和计量信息记录,而这些记录与METER方法404b所维护的计量跟踪与计量信息记录是无关的。类似地,BUDGET方法408a维护的记录可能与BUDGET方法408b维护的记录也无关。某些事件可以绕过BILLING方法408的处理,同时仍然要经过METER方法404a和BUDGET方法408a的处理。各种不同的变化都是有可能的。
VDE方法的代表性例子尽管方法1000实际可以无限多样,并且某些甚至是用户定义的,而较佳实施例最好使用某些基本的“使用”型方法以控制VDE 100提供的大多数基本对象处理以及其它功能。例如,为了进行对象操作,通常提供下列的高层方法 打开(OPEN)方法 读(READ)方法 写(WRITE)方法 关闭(CLOSE)方法OPEN方法用来控制对容器的打开操作,从而使其中的信息内容可以被访问。READ方法用来控制对容器中信息内容的访问。WRITE方法用来控制向容器中插入信息内容的操作。而CLOSE方法则用来关闭一个已经打开的容器。
为了执行OPEN,READ,WRITE和/或CLOSE方法所要求的某些步骤,提供了一些辅助方法。这种辅助方法可能包括 ACCESS方法 PANIC方法 ERROR方法 DECRYPT方法 ENCRYPT方法 DESTROY信息内容方法 INFORMATION方法 OBSCURE方法
FINGERPRINT方法 EVENT方法 CONTENT方法 EXTRACT方法 EMBED方法 METER方法 BUDGET方法 REGISTER方法 BILLING方法 AUDIT方法ACCESS方法可以用来物理地访问与已打开容器相关的信息内容(该信息内容可以在任何地方)。在检测到安全保障遭到入侵的时候,可以用PANIC方法关闭至少部分VDE节点。ERROR方法可以用来处理错误情况。DECRYPT方法用来对加密信息进行解密。ENCRYPT方法用来加密信息。DESTROY信息内容方法用来取消对容器中特定信息内容的访问能力。INFORMATION方法用来提供有关容器中信息内容的公开信息。OBSCURE方法用来降低从已打开容器中读出的信息内容的价值(例如在显示出的图象之上打印出词“SMAPLE”)。FINGERPRINT方法用来对信息内容做标记,以表明是谁把该信息内容从安全容器中发布出来的。EVENT方法用来将事件转化成另外的事件,以便由其它方法进行响应。
OPEN(打开)图49中的流程图示意了OPEN方法1500的较佳实施例进程控制步骤。不同的OEPN方法具有不同的详细步骤。但是,图49所示的OPEN方法则是由较佳实施例提供的、具有相对完备功能的“OPEN”方法中的代表性例子。图49示意了该OPEN方法的宏观图。图49a-49f则是为实现图49所示的方法所要执行的详细程序控制步骤示例。
OPEN方法进程从一个“打开事件”开始。该打开事件的产生来源可以是用户应用程序、操作系统截获、或者各种其它用于捕捉或截获控制的机制。例如,用户应用可以发出一个请求,希望访问存放在VDE容器的特定信息内容。作为另一个的例子,其它方法可以发出一个命令。
在所示的例子中,上述打开事件由控制方法1502来处理。控制方法1502可调用其它方法以处理该事件。例如,控制方法1502可以调用EVENT方法1504、METER方法1506、BILLING方法1508、以及BUDGET方法1510。并非所有的OPEN方法都必须调用上述附加的方法,不过图49所示的OEPN方法1500是一个有代表性的例子。
控制方法1502将打开事件的描述传递给EVENT方法1504。EVENT方法1504可确定(举例来说)该打开事件是否是经过允许的,并判断该打开事件是否重要得需要经过METER方法1506、BILLING方法1508和/或BUDGET方法1510的处理。EVENT方法1504可以在一个审核跟踪UDE中保存审核跟踪信息,并使用事件方法数据元素(MDE)来确定该事件的许可和有效性。EVENT方法1504还可将该打开事件映射到一个“原子元素”和计数,该“原子元素”和计数可以被METER方法1506、BILLING方法1508和/或BUDGET方法1510处理。
在OPEN方法1500中,一旦调用了EVENT方法1504并且EVENT方法1504成功地返回,控制方法1502接着可调用METER方法1506,并将EVENT方法1504返回的原子元素和计数传递给METER方法1506。METER方法1506可在METER方法审核跟踪UDE中保存审核跟踪信息,还可在一个METER方法UDE中维护计量信息。在较佳实施例中,假设METER方法1506成功地执行完处理,那么它将向控制方法1502返回一个计量数值。
在较佳实施例中,控制方法1502一旦收到一个标志表明METER方法1506已经成功执行完毕,那么它将调用BILLING方法1508。控制方法1502可向BILLING方法1508传递由METER方法1506返回的计量值。BILLING方法1508可读取并更新保存在BILLING方法映射MDE中的计帐信息,它还可在一个BILLING方法审核跟踪UDE中维护和更新审核跟踪。BILLING方法1508可以向控制方法1502返回一个计帐数量和一个完成码。
假设BILLING方法1508成功执行完毕,控制方法1502可以将BILLING方法1508提供的计帐值传递给BUDGET方法1510。BUDGET方法1510可以读取和更新一个BUDGET方法UDE中的预算信息,它还可在一个BUDGET方法审核跟踪UDE中维护审核跟踪信息。BUDGET方法1510可以向控制方法1502返回一个预算值,同时还可以返回一个完成码,该完成码表明上述打开事件是否超出了用户的预算(该预算对应于此类事件)。
一旦BUDGET方法1510执行完毕,控制方法1502可以创建一个通道,同时还可以生成读/使用控制信息,以便为后续对READ方法的调用做准备。
图49a-49f详细地说明了图49中所示的OPEN方法1500。参看图49a,为了响应一个打开事件,控制方法1502首先确定需要被打开的对象标识以及请求打开该对象的用户标识(处理框1520)。然后控制方法1502判断需要被打开的上述对象是否已向该用户注册(判定框1522)。在较佳实施例中,控制方法1502至少部分地读PERC808和用户权限表(URT)中的有关元素以便作出上述判断,这些元素与处理框1520确定的特定对象和特定用户相关(处理框1524)。如果用户尚未为该特定对象注册(判定框1522的“否”出口),那么控制方法1502可以为该对象调用REGISTER方法,并且在注册一旦完成后重新启动OPEN方法1500(处理框1526)。REGISTER方法处理框1526可以是一个独立的进程,并且可以与时间无关。可能(举例来说)需要花费较长的一段时间才能完成REGISTER方法(假设负责处理注册事宜的VDE分发者或其它参与者在为上述特定对象注册用户之前,希望检查一下用户的信用)。
假设上述用户和对象的适当URT是存在的,这样就表明已经为所述用户注册了所述对象(判定框1522的“是”出口),于是控制方法1502可以判断该对象是否已经为该用户而打开了(判定框1528)。这个测试可以避免为打开一个已经打开的对象而创建多余的通道。假设对象尚未被打开(判定框1528的“否”出口),控制方法1502将创建一个通道,并将相应的打开控制元素装配到该通道中(处理框1530)。它从安全数据库中读取相应的打开控制元素(或者举例来说,对于一个移动对象,控制方法1502将从容器中读取上述元素),并且将这些特定的相应控制元素“装配”和“链接”到一起,以便为该用户完成打开对象的控制。于是,处理框1530将一个事件与从安全数据库(或容器)中读取的一个或多个相应方法核心、相应加载模块、相应用户数据元素、以及相应方法数据元素(处理框1532相关联)。此时,控制方法1502为后续的EVENT方法1504、METER方法1506、BILLING方法1508、以及BUDGET方法1510指定打开事件(该事件启动了OPEN方法的执行)、对象ID和用户ID(在处理框1520中确定)、以及由处理框1530创建的通道的通道ID,这样就提供了一个安全数据库“交易”(处理框1536)。在这样做之前,控制方法1502可以首先要准备一个审核进程(处理框1533),并且将审核信息写入一个审核UDE中(处理框1534),因此,即使上述交易失败或者受到干扰,该交易的记录仍然存在。
图49b示意了EVENT方法1504所执行的详细步骤。根据需要,EVENT方法1504可以首先准备好一个事件审核跟踪(处理框1538),该审核跟踪可以被写入一个EVENT方法审核跟踪UDE(处理框1540)。然后,EVENT方法1504可利用一个映射MDE将上述打开事件映射到一个原子元素号和事件计数(处理框1542)。上述EVENT方法映射MDE可从安全数据库中读取(处理框1544)。由处理框1452执行的上述映射可(举例来说)确定该打开事件是否是可计量的、可计帐的、或者是可预算的,还可将该打开事件传送到某些分离的原子元素中以便进行计量、计帐和/或预算。举一个例子,处理框1542可以在打开事件和“打开”原子元素之间进行一一映射,或者它可以在该对象每到第五次打开的时候才提供一个打开原子元素。映射处理框1542最好返回打开事件、事件计数、原子元素号、对象ID、以及用户ID。这些信息可以被写入EVENT方法审核跟踪UDE中(处理框1546,1548)。在较佳实施例中,接着要执行一个测试(判定框1550),它用来判断该EVENT方法是否失败了。特别地,判定框1550可以判断是否已经产生了一个原子元素号。如果没有产生原子元素号(如,这意味着上述打开事件不具备有效性以供METER方法1506、BILLING方法1508和/或BUDGET方法1510处理),那么EVENT方法1504可以向控制方法1502返回一个“失败”完成码(判定框的1550的“否”出口)。
控制方法1502测试EVENT方法1504返回的完成码,以确定EVENT方法1504是成功还是失败了(判定框1552)。如果EVENT方法失败了(判定框1552的“否”出口),那么控制方法1502可以“回滚”(roll back)安全数据库交易(处理框1554),而且其本身将返回,同时带有一个返回标志表明OPEN方法失败(处理框1556)。在此处,“回滚”安全数据库交易意味着(举例来说)“复原”在处理框1540、1548对审核跟踪记录UDE做出的修改。不过,在较佳实施例中,处理框1554所执行的“回滚”操作并不“复原”在处理框1532、1534对控制方法审核信息UDE做出的修改。
假设EVENT方法1504执行成功,控制方法1502将接着调用METER方法1506,如图49c所示。在较佳实施例中,根据需要,METER方法1506首先准备好计量审核跟踪(处理框1558),该步骤通常包括向METER方法审核跟踪UDE写入信息(处理框1560)。然后METER方法1506可从安全数据库中读取一个METER方法UDE(处理框1562),对之进行修改,即把相应事件计数加到计量UDE中的计量值中(处理框1564),之后它将修改了的计量UDE写回安全数据库中(处理框1562)。换句话说,处理框1564可读出计量UDE,增加它所含有的计量计数,然后将改变后的计量UDE写回安全数据库中。在较佳实施例中,如果需要的话,METER方法1506接着会向METER方法审核跟踪UDE写入计量审核跟踪信息(处理框1566,1568)。下一步,METER方法1506最好执行一个测试,以确定计量值是否已经成功地增加(判定框1570)。METER方法1506向控制方法1502返回一个完成码(如成功或失败)以及由处理框1564确定的一个计量值。
控制方法1502(举例来说)通过检查完成码来确定METER方法是否执行成功(判定框1572)。如果METER方法失败(判定框1572的“否”出口),那么控制方法1502将“回滚”安全数据库交易(处理框1574),并返回一个标志表明OPEN方法失败(处理框1576)。假设METER方法执行成功(判定框1572的“是”出口),控制方法1502于是调用BILLING方法1508,并将METER方法1506提供的计量值传递给它。
图49d示意了BILLING方法1508执行的步骤示例。如果需要的话,BILLING方法1508可首先准备一个计帐审核跟踪(处理框1578),即向安全数据库中的BILLING方法审核跟踪UDE写入信息(处理框1580)。然后BILLING方法1508使用从安全数据库中读出的一个BILLING方法映射MDE把原子元素号、计数、以及计量值映射到一个计帐数额。提供包含价格表信息的独立BILLING方法映射MDE允许为计帐进程进行可独立传递的定价。处理框1582生成的结果计帐数额可被写入BILLING方法审核跟踪UDE(处理框1586,1588),该结果也可返回控制方法1502。另外,BILLING方法1508可确定处理框1582是否正确地选择了计帐数额(判定框1590)。在本例中,判定框1590所执行的测试通常不仅仅只包括检查返回的计帐数额,这是因为计帐数额可能会以各种无法预测的方式经过改变,这些方式在计帐方法映射MDE中已经做了规定。然后控制返回控制方法1502,控制方法1502将测试BILLING方法1508返回的完成码以确定BILLING方法是成功了还是失败了(判定框1592)。如果BILLING方法失败了(判定框1592的“否”出口),控制方法1502可以“回滚”安全数据库交易(处理框1594),并返回一个标志表明OPEN方法失败(处理框1596)。假设判定框1592所做的测试表明BILING方法执行成功(判定框1592的“是”出口),那么控制方法1502可以接着调用BUDGET方法1510。
(举例来说)还有一些BILLING方法使用地点、用户、以及/或者使用信息来生成定价信息。例如,可以使用有关对象存在或不存在的信息来实现“套件”购买、有竞争力的折扣等方式。计帐方法可以将使用级别作为一个考虑的因素,以便针对不同的使用级别而制定不同的价格。BILLING方法可以具有货币换算特性,该特性允许利用不同种类的货币进行购买和/或定价。还有许多其它方式可以用来确定某个事件消耗的预算额,这些方式都可以集成进BILLING方法。
图49e示意了BUDGET方法1510执行的详细控制步骤示例。如果需要的话,BUDGET方法1510可向一个预算审核UDE写入信息以便准备好一个预算审核跟踪(处理框1598,1600)。然后BUDGET方法1510可以执行一个计帐操作,即把一个计帐数额加到一个预算值中(处理框1602)。该操作可以包括从安全数据库中读取预算方法UDE,对之进行修改,然后将它写回安全数据库中(处理框1604)。之后,BUDGET方法1510可向预算方法审核跟踪UDE中写入预算审核跟踪信息(处理框1606,1608)。在本例中,BUDGET方法1510可以最后确定由处理框1602计算得出的预算值是否超出了范围(处理框1610)。如果用户用光了其预算(判定框1610的“是”出口),那么BUDGET方法1510可向控制方法1502返回失败完成码。然后,BUDGET方法1510返回控制方法1502,控制方法1502将检查BUDGET方法完成码是否是成功的(判定框1612)。如果BUDGET方法失败(判定框1612的“否”出口),控制方法1502可以“回滚”安全数据库交易,并自己返回,同时返回一个标志表明OPEN方法失败(处理框1614、1616)。假设控制方法1502发现BUDGET方法执行成功,那么控制方法可以继续执行图49f所示的步骤。例如,如果需要的话,控制方法1502可以写入一个打开审核跟踪,其过程是将审核信息写入由处理框1532准备好的审核UDE中(处理框1618,1620)。然后,控制方法1502可以建立一个读事件处理(处理框1622),其间它使用与上述对象和用户相关的用户权利表和PERC来创建通道(处理框1624)。该通道既可能被VDE节点600的多个用户所共享,也可能只能由指定的用户使用。
在较佳实施例中,控制方法1502接着检查读通道是否已经成功地创建好(判定框1626)。如果读通道未能成功地创建(判定框1626的“否”出口),控制方法1502“回滚”安全数据库交易,并返回一个标志表明OPEN方法失败(处理框1628,1630)。假设读通道成功地创建好(判定框1626的“是”出口),控制方法1502可“提交”安全数据库交易(处理框1632)。在较佳实施例中,上述“提交”安全数据库交易的步骤包括(举例来说)删除与刚刚执行的安全交易有关的中间值,并且(举例来说)将修改了的UDE和MDE写入安全数据库。通常,某个安全交易一经处理框1632提交,那么它就不可能被“回滚”了。然后,控制方法1502可以“拆除”用来进行打开处理的通道,然后终止(处理框1636)。在某些配置中,诸如在多任务VDE节点环境中,上述OPEN通道可以一直保留,而任何开始执行的OPEN方法都可以使用该OPEN通道。在其它实现中,每次启动一个OPEN方法可以被重建并重启动上述进行打开处理的通道。
READ(读)图50,50a-50f示意了有代表性READ方法1650示例所执行的进程控制步骤示例。将图50和图49对比一下可以发现,READ方法1650所执行的高层处理通常与前面结合OPEN方法1500所介绍的处理相同。于是,为响应一个读事件,READ方法1650可调用控制方法1652,然后控制方法1652又调用EVENT方法1654、METER方法1656、BILLING方法1658、以及BUDGET方法1660。在较佳实施例中,READ控制方法1652在发放被解密的信息内容之前可以请求某些方法首先对信息内容做指纹和/或使之模糊。
图50a-50e与图49a-49e相类似。当然,即使OPEN方法1500和READ方法1650可以使用同样的用户数据元素,但READ方法使用的方法数据元素可以完全不同,另外,读方法所使用的用户数据元素可以提供与打开处理截然相反的审核、计量、计帐、以及/或者预算标准。
参看图50f,READ控制方法1652必须确定如果它准备将被解密的信息内容发放给用户的话,应该用哪个密钥解密该信息内容(处理框1758)。READ控制方法1652可部分地根据该对象的PERC 808来做出上述密钥确定(处理框1760)。然后,READ控制方法1652可调用ACCESS方法以便真正地得到上述需要解密的加密信息内容(处理框1762)。此后,使用由处理框1758确定的密钥将上述信息内容解密(处理框1764)。READ控制方法1652接着判断是否需要一个“指纹”(判定框1766),如果需要对该信息内容按指纹(判定框1766的“是”出口),那么READ控制方法1652可以调用FINGERPRINT方法(处理框1768)。否则,READ控制方法1652可以判断是否需要将该被解密的信息内容模糊化(处理框1770)。如果需要的话,READ控制方法1652可调用OBSCURE方法来执行该功能(处理框1772)。最后,READ控制方法1652可以提交上述安全数据库交易(处理框1774),并可选地拆除读通道(未示出),然后终止(处理框1776)。
WRITE(写)图51,51a-51f示意了在较佳实施例中有代表性WRITE方法1780示例所执行的进程控制步骤示例。在本例中WRITE方法1780使用控制方法1782来调用EVENT方法1784、METER方法1786、BILLING方法1788、以及BUDGET方法1790。因此,在较佳实施例中,将信息写入容器(或者通过改写已存储在容器中的信息,或者在容器中增加新信息)可以被计量、计帐和/或预算,而这些处理与容器打开和读取过程中所进行的计量、计帐和/或预算方式是相似的。如图51所示,WRITE方法1780的结果通常是对信息内容进行加密、更新容器的目录表和相关信息以便反映出新的信息内容、并将信息内容写入对象。
图51a中的WRITE控制方法1782类似于图49a中的OPEN控制方法和图50a中的READ控制方法。但是,图51b与对应的打开和读稍微不同。具体地说,当WRITE EVENT方法1784失败的时候,将执行处理框1820。处理框1820更新EVENT方法映射MDE以反映出新数据。只有这样,图51b READ方法处理框1678才能根据同一个(但此时已经被更新)的EVENT方法映射MDE来读取由处理框1810写入的信息。
参看图51f,一旦EVENT、METER、BILLING和BUDGET方法成功地返回到WRITE控制方法1782,WRITE控制方法即把审核信息写入审核UDE中(处理框1890,1892),然后(根据对应于该对象和用户的PERC,以及一个可选的算法)确定在将信息内容写入容器之前应该使用哪个密钥对之进行加密(处理框1894,1896)。接着,控制方法1782将加密该信息内容(处理框1898),其间可调用ENCRYPT方法,然后将加了密的信息内容写入对象中(处理框1900)。之后,控制方法1782可以更新容器的目录表(以及相关信息)以便反映出新写入的信息(处理框1902),并提交安全数据库交易(处理框1904),最后返回(处理框1906)。
CLOSE(关闭)图52示意了在较佳实施例中有代表性CLOSE方法1920示例所执行的进程控制步骤流程。CLOSE方法1920用来关闭一个打开的对象。在较佳实施例中,CLOSE方法1920首先准备一个审核跟踪,并将审核信息写入一个审核UDE中(处理框1922,1924)。然后CLOSE方法1920可以拆除正用来支持和/或处理一个或多个打开对象的当前通道(处理框1926)。如上所述,在某些(如多用户或多任务)实现中,上述拆除通道的步骤是不必要的,因为该通道可以留着操作对同一或不同用户的其它对象进行处理。此时,CLOSE方法1920还释放此时与该对象相关的适当记录和资源(处理框1926)。然后,(如果需要的话)CLOSE方法1920可以在完成之前将审核跟踪写入审核UDE中(处理框1928、1930)。
EVENT(事件)图53a示意了在较佳实施例中更为通用的EVENT方法1940示例所执行的进程控制步骤流程。前面的图49b,50b和51b已经展示了EVENT方法的某些例子,并且对之进行了描述。图53a所示的EVENT方法1940比上述例子稍微更通用一些。象前面的EVENT方法例子一样,EVENT方法1940接收事件的标识以及事件计数和事件参数。如果需要的话,EVENT方法1940可首先准备一个EVENT审核跟踪,即向一个EVENT方法审核跟踪UDE中写入适当的信息(处理框1942,1944)。然后EVENT方法1940可从安全数据库中获取并装入EVENT方法映射DTD(处理框1946,1948)。在本例中,该EVENT方法映射DTD描述了下面马上就要读取和访问(处理框1950,1952)的EVENT方法映射MDE的格式。在较佳实施例中,MDE和UDE可以具有各种不同的格式中任何一种,并且可以根据安装、用户等因素的不同动态地规定和改变其格式。DTD实际上告诉EVENT方法1940如何从EVENT方法映射MDE中读取。DTD还用来规定应该如何将方法写入MDE和UDE中,因此,它可以用来实现隐私过滤器,其原理是禁止将某些机密的用户信息写入将要报告给第三方的数据结构中。
处理框1950(使用映射MDE将事件映射到原子元素号和事件计数)在某些意义上是EVENT方法1940的“核心”。该步骤将事件“映射”到“原子元素号”,而该原子元素将由后面调用的方法来响应。图53b示意了上述“映射”步骤1950一个具有一定代表性的例子所执行的进程控制步骤示例。
图53b中的例子示意了将一个READ事件转换到相应原子元素的过程,该READ事件请求从特定的信息内容部分中获取范围位于1000-1500之间的字节。示例EVENT方法映射进程(图53a中的处理框195)可以细化为图53b所示的有代表性进程。
EVENT方法映射进程1950首先利用EVENT方法映射DTD(处理框1948)在EVENT方法MDE中查找事件代码(READ)(处理框1952),以便确定MDE的结构和内容。可能需要执行一个测试以判断是否在MDE中查到了事件代码(处理框1956),如果没有(“否”分支),那么该EVENT方法映射进程可以终止,而没有将事件映射到原子元素号和计数(框1958)。如果在MDE中发现了事件代码(“是”分支),那么EVENT方法映射进程可以将事件范围(如字节1001-1500)与保存在MDE中的、原子元素到事件范围的映射表相比较(处理框1960)。上述比较可能产生一个或多个原子元素号,或者可能无法在映射表中找到事件范围。比较的结果可能接着经过测试(处理框1962)以便确定在映射表中是否发现了任何原子元素号。如果没有(“否”分支),EVENT方法将终止,而没有选择任何原子元素或计数(处理框1964)。如果发现了原子元素号,该进程可以从事件范围中计算出原子元素计数(处理框1966)。在本例中,该过程计算所需字节数目的方法可以是用字节范围上界减去字节范围下界(如1500-1000+1=500)。然后,EVENT方法可以终止(处理框1968),并返回原子元素号和计数。
之后,如果需要的话,EVENT方法1940可以将一个EVENT审核跟踪写入EVENT方法审核跟踪UDE中(处理框1970,1972)。然后EVENT方法1940可以准备(在退出点1978)将上述原子元素号和事件计数传递给调用的CONTROL方法(或其它控制进程)。在此之前,EVENT方法1940可以检查是否选择了一个原子元素(判定框1947),如果没有选择原子元素,那么EVENT方法可能会失败(框1974)。产生这种结果的原因多种多样。例如,如果用户没有权利访问在EVENT方法MDE中未做描述的信息内容特定区域,那么EVENT方法可能不能将事件映射到原子元素。这种机制可以用来(举例来说)分发信息内容片段的定制版本,并且通过改变交付给用户的EVENT方法MDE,可以控制对信息内容对象中这些不同版本的访问。该技术的一个特殊用途是可以用来控制信息内容片段不同语言(如英语、法语、西班牙语)版本的分发。
BILLING(计帐)图53c示意了BILLING方法1980所执行的示例进程控制步骤流程图。前面的图49d,50d和51d已经展示了BILLING方法的某些例子,并且对之进行了描述。图53c所示的BILLING方法1980比上述例子稍微更通用一些。象前面的BILLING方法例子一样,BILLING方法1980接收一个计量数值以确定计帐数额。BILLING方法1980可首先准备一个BILLING审核跟踪(如果需要的话),其过程是将相应信息写入BILLING方法审核跟踪UDE(处理框1982,1984)。然后BILLING方法1980可从安全数据库中获取并加载BILLING方法映射DTD(处理框1985,1986),该DTD描述了本BILLING方法需要使用的BILLING方法映射MDE(如一个价格清单、表格,以及传给计帐数额计算算法的参数)。可以将BILLING方法映射方法MDE作为信息内容对象的一部分进行交付,也可以作为一个可独立交付的部件来传递,在注册时,该部件被融合进某些控制信息。
本例中的BILLING方法映射MDE可以描述本BILLING方法需要使用的定价算法(如对发布的信息内容每一字节计帐0.001美元)。处理框1988的功能(“将计量值映射到计帐数额”)与EVENT方法中处理框1950相同;它将计量值映射到计帐数额。进程步骤1988也可以查询安全数据库(该操作要接收隐私过滤器的限制)以便确定是否存在其它的对象或信息(如用户信息)可以作为BILLING方法算法的部分参数。
然后,如果需要的话,BILLING方法1980可以将一个BILLING审核跟踪写入BILLING方法审核跟踪UDE中(处理框1990,1992),并可以准备向调用它的控制方法(或其它进程)返回计帐数额。不过在此之前,BILLING方法1980可以判断是否确定了一个计帐数额(判定框1994)。如果没有确定计帐数额,那么BILLING方法可能失败(处理框1996)。出现这种结果的一个可能原因是用户无权访问BILLING方法MDE所描述的定价表特定区域(如用户从信息内容对象中购买的信息不能超过100.00美元)。
ACCESS(访问)图54示意了ACCESS方法2000所执行的程序控制步骤流程图示例。如上所述,ACCESS方法可以用来访问嵌入到对象300中的信息内容,从而使该信息内容可以被写入、读取、或经过其它操作和处理。在许多情况下,ACCESS方法可以相对简单,因为对象可以(举例来说)被存贮在本地的存贮设备中,从而易于访问。不过,通常情况下,ACCESS方法2000为获取对象必须执行更为复杂的过程。例如,某些对象(或对象的部分)也许只能从远程获取,或者只能通过实时下载或输入的方式才能得到这些对象(例如在广播传送的情况下)。即使对象是保存在VDE节点本地,其保存方式也可以是安全的或受保护的,因此调用进程对它不能直接访问。ACCESS方法提供了访问对象所必须的连接、路由选择、以及安全要求。这些步骤的执行对调用进程来说可以是透明的,所以调用进程只需发出一个访问请求,而与对象或某类对象相对应的特定ACCESS方法将处理实际访问对象所涉及的所有细节和后方勤务(Logistics)。
ACCESS方法2000可首先准备一个ACCESS审核跟踪(如果需要的话),即向ACCESS审核跟踪UDE写入信息(处理框2002,2004)。然后ACCESS方法2000可以读取并加载ACCESS方法DTD以便确定ACCESS MDE的格式(处理框2006,2008)。在较佳实施例中,ACCESS方法MDE指定了需要访问的特定对象的来源和路由选择信息。利用ACCESS方法DTD,ACCESS方法2000可以加载校正参数(如用电话号码、帐号ID、口令和/或用远程资源相关语言书写的请求脚本)。
ACCESS方法2000根据ACCESS方法DTD从安全数据库中读入ACCESS方法MDE,并根据MDE加载加密的信息内容源和路由信息(处理框2010,2012)。源和路由信息指定了加密信息内容的位置。然后ACCESS方法2000判断与该信息内容之间是否有一个连接(判定框2014)。该“连接”可以是(举例来说)与远方站点建立的在线连接、实时信息输入、或连向安全/受保护信息资源的通路。如果目前与信息内容之间没有连接(判定框2014的“否”出口),那么ACCESS方法2000将执行打开连接的步骤(处理框2016)。如果连接失败(如由于用户没有权利访问被保护的安全资源),ACCESS方法2000将返回一个失败标志(终止点2018)。反之,如果打开连接步骤成功,ACCESS方法2000将获取加密的信息内容(处理框2020)。然后如果需要的话ACCESS方法2000将ACCESS审核跟踪写入安全数据库中的ACCESS方法审核跟踪UDE(处理框2022,2024),之后终止处理(终止点2026)。
ENCRYPT和DECRYPT(加密与解密)图55a示意了在较佳实施例中有代表性DECRYPT方法2030示例所执行的进程控制步骤流程。在较佳实施例中,DECRYPT方法2030从一个相应的PERC 808中获取或生成一个解密密钥,并使用该密钥对一块加密的信息内容进行解密。DECRYPT方法2030接收一块加密的信息内容或一个指向加密块存放位置的指针。DECRYPT方法2030从一个密钥块中选择一个密钥号(处理框2032)。为安全起见,一个信息内容对象可以用一个以上的密钥进行加密。例如,在一段电影中,其前10分钟的内容可以使用第一个密钥加密,第二个10分钟的内容可以使用第二个密钥加密,依此类推。存放在某个数据结构之PERC 808中的上述密钥称为“密钥块”。上述选择过程即为从密钥块中确定可用来解密上述信息内容的正确密钥。该选择进程类似于EVENT方法将事件映射到原子元素号所用的进程。之后,DECRYPT方法2030访问安全数据库610中的一个相应PERC 808,并从PERC中加载一个密钥(或“种子”)(处理框2034,2036)。该密钥信息可以是解密信息内容所用的实际解密密钥,或者至少可以部分地从该信息中推导出或计算出解密密钥。如果需要的话,DECRYPT方法2030根据在处理框2034从PERC 808中读到的信息计算出解密密钥(处理框2038)。然后,DECRYPT方法2030使用上述获取的和/或计算得来的解密密钥真正地对加密信息进行解密(处理框2040)。DECRYPT方法2030输出解密了的块(或者指向该块所在位置的指针),然后终止(终止于终止点2042)。
图55b示意了在较佳实施例中有代表性ENCRYPT方法2050示例所执行的进程控制步骤流程。在较佳实施例中,ENCRYPT方法2050接收一块需要加密的信息(或一个指向该块存放位置的指针)作为输入。然后ENCRYPT方法2050可以从一个密钥块中确定使用的密钥(处理框2052)。密钥选择过程要确定在保存于PERC 808中的某个密钥块中,是否存在对应于要对之执行写入操作的特定信息内容块的密钥。如果密钥块中存在这样的密钥,那么将选择该密钥号码。如果密钥块中不存在这样的密钥,则利用合适的加密算法计算得出一个新密钥。该密钥被存放在PERC 808的密钥块中,使DECRYPT方法2030可以访问该密钥,以便对存放在信息内容对象中的信息内容进行解密。之后,ENCRYPT方法2050访问相应的PERC以便获取、推导和/或计算出一个可用来加密信息块的加密密钥(处理框2054,2056,2058,这些处理框类似于图55a中的处理框2034,2036,2038)。接着,ENCRYPT方法2050用获取的和/或推导得出的加密密钥真正地加密上述信息块(处理框2060),并输出加了密的信息块或指向其位置的指针,随后终止(终止点2062)。
CONTENT图56示意了在较佳实施例中有代表性CONTENT方法2070示例所执行的进程控制步骤流程。在较佳实施例中,CONTENT方法2070采用安全进程为受保护的CONTENT创建“梗概”。例如,可以使用CONTENT方法2070从受保护的CONTENT中导出不受保护的(“公开的”)信息。上述可导出的公开信息可以包括(举例来说)摘要、索引、目录、文件目录、表明何时可以得到CONTENT的时间表、或摘录,比如影片的“演职员表”。
CONTENT方法2070首先判断要交付的被导出内容是否必须从安全的CONTENT中导出,还是它已经以静态值的形式存在于对象中(判定框2070)。某些对象可以(举例来说)包含了预保存的摘要、索引、目录等信息,这些信息被清楚地提供出来以供CONTENT方法2070提取之用。如果对象包含了上述静态值(判定框2072“静态”出口),那么CONTENT方法2070就可以简单地从该对象中读出上述静态值内容信息(处理框2074),可选地对之解密,然后发布该内容说明(处理框2076)。如果在另一方面,CONTENT方法2070必须从受保护对象中导出上述梗概/CONTENT说明的话(判定框2072的“导出”出口),那么,该CONTENT方法必须按照一个梗概算法从容器中安全地读取信息以便产生上述梗概(处理框2078)。
EXTRACT和EMBED(提取与嵌入)图57a示意了在较佳实施例中有代表性EXTRACT方法2080示例所执行的进程控制步骤流程。EXTRACT方法2080用来从一个对象中复制或移动信息内容,然后将其放入一个新对象中。在较佳实施例中,EXTRACT方法2080不涉及对信息内容的任何发布,只是简单地将信息内容从一个容器中取出,然后放入另一个容器中,这两个容器可以都是安全的。对信息内容的提取不同于发布的地方在于,被提取的信息内容始终没有暴露到安全容器之外。提取和嵌入是两个互补的功能;提取过程是从一个容器中取出信息内容并创建一个新的容器存放被提取出的信息内容,同时还存放与该信息内容相关的任何被指定的控制信息。嵌入则是从一个容器中取出已经存在的信息内容,并直接地和/或通过引用方式将它存放到另外一个容器中,同时把与现有信息内容相关联的控制信息和新的信息内容的控制信息集成在一起。
EXTRACT方法2080首先准备一个审核UDE(处理框2082,2084)。然后,EXTRACT方法调用BUDGET方法以便确认用户具有足够的预算额用来(并且有权)从原始对象中提取信息内容(处理框2086)。如果用户的预算不允许该提取(判定框2088的“否”出口),那么EXTRACT方法2080将写一个失败审核记录(处理框2090),然后终止(终止点2092)。如果用户的预算允许该提取(判定框2088的“是”出口),EXTRACT方法2080创建被提取对象的一个拷贝,并附有指定的规则和控制信息(处理框2094)。在较佳实施例中,上述步骤涉及调用一个实际控制上述拷贝的方法。该步骤可以含有也可以不包括加密和解密,这取决于(举例来说)与原始对象相关联的特定PERC808。随后,EXTRACT方法2080将判断授权本次提取的权利是否允许进行某些控制改变(判定框2096)。在某些情况下,提取权利要求在新(目的地)容器中放置原始对象相关PERC 808(或为此目的所含的某个PERC)的一份精确拷贝(判定框2096的“否”出口)。如果不允许有控制改变,EXTRACT方法2080可以简单地将审核信息写入审核UDE中(处理框2098,2100),然后终止(终止点2102),反之,如果提取权利允许用户进行控制改变(判定框2096的“是”出口),那么EXTRACT方法2080可以调用一个方法或加载模块,该方法或加载模块将请求(如从用户、创建/批准提取权的分发者、或从其它来源)从用户处得到新的或改变的控制信息(处理框2104,2106)。随后,EXTRACT方法2080可以调用一个方法或加载模块,以便创建一个新的PERC,该PERC反映了上述用户指定的控制信息(处理框2104)。上述新PERC将被放置于新的(目的地)对象中。然后EXTRACT方法2080执行审核步骤,之后终止。
图57b示意了在较佳实施例中有代表性EMBED方法2110示例所执行的进程控制步骤流程。EMBED方法2110类似于图57a所示的EXTRACT方法2080。不过,EMBED方法2110执行了一个稍微不同的功能—它将一个对象(或引用)写入目的地容器中。图57b所示的处理框2112-2122与图57a所示的处理框2082-2092相类似。在处理框2124,EMBED方法2110将源对象写入目的地容器中,同时可以提取或改变目的地容器的控制信息。另外一种选择是简单地留下目的地容器的控制信息,而纳入原始容器的控制信息以及与被嵌入对象相关的完整控制信息集合。然而,作为一种优化方案,较佳实施例提供了一种技术,其中,与被嵌入对象相关的控制信息被“抽取”出并被集成进目的地容器的控制信息中。处理框2124可以调用某个方法以抽取或改变上述控制信息。然后,EMBED方法2110执行步骤2126-2130,这些步骤与图57a所示的步骤2096,2104,2106相似,步骤2126-2130允许一个已授权用户改变和/或指定与嵌入对象和/或目的地容器相关的控制信息。接着,EMBED方法2110将审核信息写入审核UDE中(处理框2132,2134),然后终止(终止于终止点2136)。
OBSCURE(模糊化)图58a示意了在较佳实施例中有代表性OBSCURE方法2140示例所执行的进程控制步骤流程。OBSCURE方法2140通常用于以降价的形式发布受保护的信息内容。例如,OBSCURE方法2140可以将一幅高分辨率的图象以低分辨率的形式发布,从而使用户虽然可以欣赏该图象但无法享受其全部价值。再举一个例子,OBSCURE方法2140可能往一幅图象上放置某个模糊化符号(如“COPY”、“PROOF”等),以便降低其价值。OBSCURE方法2140可以“模糊化”正文,图象、声音信息、或其它任何类型的信息内容。
OBSCURE方法2140首先调用EVENT方法以确定该信息内容是否是适于处理的,并且属于要模糊化的范围(处理框2142)。如果该信息内容不适于模糊化,OBSCURE方法将终止(判定框2144的“否”出口,终止点为2146)。假设信息内容要被模糊化(判定框2144的“是”出口),那么OBSCURE方法2140将确定是否因为模糊化该信息内容它本身已经被调用过(判定框2148)。假设OBSCURE方法2140未因为模糊化该对象/信息内容而被调用过(判定框2148的“是”出口),OBSCURE方法2140将从安全数据库中读出一个相应的OBSCURE方法MDE,并从该MDE中加载模糊化公式和/或模式(处理框2150,2152)。然后,OBSCURE方法2140根据处理框2150加载的模式和/或公式施加模糊化变换(处理框2154)。此后OBSCURE方法2140将终止(终止于终止点2156)。
FINGERPRINT(指纹)图58b示意了在较佳实施例中有代表性FINGERPRINT方法2160示例所执行的进程控制步骤流程。在较佳实施例中,FINGERPRINT方法2160使用一个“指纹”标识来“标记”发布的信息内容是谁发布的以及/或者检验这些标记。这种方式可以允许人们在以后通过检验该信息内容得以查明是谁发布了未受保护的信息内容。FINGERPRINT方法2160可以(举例来说)在代表数据流的声音、影像、或二进制格式信息中插入用户ID。FINGERPRINT方法2160非常类似图58a所示的OBSCURE方法2140,但有一点区别是FINGERPRINT方法处理框2174所施加的变换不是模糊化被发布的信息内容而是在其中“留下指纹”。
图58c示意了“留指纹”过程2160的一个例子,该过程在被发布的信息内容留下指纹2161,这些指纹标识了对象、和/或产权、和/或请求使用该被发布对象信息内容的用户、和/或发布的日期和时间、和/或被发布信息内容的其它标识标准。
这种指纹2161可以是“掩埋的”一其插入方式可以使指纹对于典型用户、破译高手、和/或所有用户是不可见的,这要取决于文件格式、插入算法的完善程度和/或多样性、以及是否可以得到原始的、未留下指纹的信息内容(供反向算法工程比较)。在较佳实施例中,可以至少部分地将插入的或嵌入的指纹2161进行加密,以便使它们更加安全。这种被插入的指纹2161可以以“明白的”(明文)形式嵌入到被发布的信息内容中。
指纹2161可适用于多种目的,包括(举例来说)一些经常涉及的用途如证明发布的材料是否被不合理的使用,以及指明被发布的信息内容的来源。尤其在制止软件盗版方面,指纹可以非常有用。对于大多数类型的电子传递信息,使用指纹技术还可以有助于加强这些信息信息内容提供者的权利,这类信息的例子有电影、录音制品、多媒体、信息数据库、以及传统的“文献”资料。在防止拷贝方面,指纹技术是比较理想的可选方案或附加方案。
许多软件应用盗版行为(举例来说)其现象并非是某个人制作了一份非法拷贝,然后在另外一台自己的计算机上使用,而是将拷贝给予另外一方。这经常会产生一个非法拷贝的链(或更确切地说是一个金字塔),因为拷贝被一个人一个人传递下去。由于担心嵌入指纹2161而暴露其身份,大多数人可能会不再参与其目前所正在参与的广泛且无意的盗版。在某些情况下,可以用一种指纹方法来检查信息内容中有无指纹,以帮助加强信息内容提供者的权利。
不同的指纹2161可以有不同的安全级别(例如,出于商业考虑,指纹2161(1)可以是可读的/可识别的,而另一个指纹2161(2)则只能对一个更加可信的代理可读)。更为安全的指纹2161的生成方法可以使用更加复杂的加密技术(如数字签名)以及/或者模糊化位置的方法。为了防止加入指纹的信息被破译高手所识破,可以在不同的位置和/或使用不同的技术嵌入两个或更多指纹2161。如果用来产生更为安全指纹的技术要带来很多不该有的附加开销的话,那么也许只能定期地使用这种更为安全的指纹,而不是每次发布信息内容的时候都要使用。这样做仍然是有效的,因为加入指纹的主要目标是为了威慑—非法拷贝制作者担心其拷贝行为被发现。
例如,某人可能将一个指纹2161嵌入到拷贝中,而该指纹可以会很方便地被一个经授权的团体所识别。这些团体可以是分发者、服务人员、客户管理员、或使用VDE电子设备600的票据交换所。可以嵌入指纹2161的一个或多个附加拷贝或变型(例如,某些指纹带有一些描述性信息,这些信息说明了部分或全部相关识别信息),并且可以采用更为安全的方式来维护上述一个或多个附加指纹。
指纹技术也可以保护隐私。例如,用来识别指纹2161的算法和/或机制可能只有通过特别可信的代理才能得到。
指纹2161可有多种形式。例如,在一幅图像中,可以采用一种视觉不易察觉的方式(至少按正常的肉眼观察者是这样的)将可每N个像素(这些像素可能布满整幅图象,或该图象的子区域)的颜色进行极细微的移位通过分析图象便可以破译这些移位(可以利用原始图象,也可以不用),图象中每一点有无颜色(或灰度)移位实际对应于存贮的数字信息中一个或多个二进制位“1或0”的变化。这N个像素可以在顺序上或者是一致的,或者伪随机的(但至少部分地可以由对象制作者、对象提供者、客户管理员和/或VDE管理员来解释)。
对图象(或移动图象、声音等)的某些其它类型修改也可以产生类似的效果(也就是说,通过对原始信息的某些修改,将信息以一种不易察觉的方式存贮),这种修改方式也是可行的。例如,可以对被存贮的声音信息的频率做某些极其细微的修改,使听众对此一般不易察觉,但借助适当的工具仍然可以将其读出来。可以对存贮信息的某些特性进行一些修改,例如对某些采用光学手段存贮的信息在其偏光特性上做一些细微而又可解释的变化,从而达到与上面相同的效果。也可以采用其它电子特性、磁特性、和/或光学特性上的变化。
如果保存信息内容所用的文件具有图形格式,例如MicrosoftWindows字处理文件,那么这种文件将提供“掩埋”指纹2161的绝好机会。包含图象和/或声音的信息内容提供了嵌入指纹2161的机会,并且嵌入的指纹很难被未授权的个人识别出来,这是因为,在没有“未加指纹”的原件用来比较的情况下,由于通常不知道原件的本来特征,也由于图象和声音信息中都含有大量的数据(并且这些数据对微小的变化不是特别敏感),因而在声音频率上所出现的或在一幅或多幅视频图象上所出现的一次或多次细微变化等本身是难于分辨的。对于经过格式化的正文文档,特别是那些由图形字处理器(例如Microsoft Windows或Apple Macintosh字处理器以及它们的DOS和Unix等效物)创建的文档,通常可以把指纹2161非干扰性地插入到一般对用户不可见的文档数据表示部分(如标题或其它非显示性数据区域)。
而另外一种类型的指纹特别适用于某些正文文档,这种指纹技术对给定字体的字符构成加以利用和控制。可以让单个的字符带有略微不同的视觉构造,这些构造中包含了某些“指纹”信息。给定字符形式的上述变化通常难以分辨,一部分原因是不同供应商提供的同种字体版本之间本来就有许多微小的差异,一部分原因是由于这些差异非常小。例如,在一个较佳实施例中,可以采用诸如Adobe Type Align这样的程序,这种程序在其现用版本中允许用户采用多种方式修改字体特征。其过程是,按照用户发出某些指令产生特定的一系列改动,将这些改动施加到字体或字符上,从而完成了对字体特征数学定义的修改。可以用类似的方法(作为用户的一种选择)使用信息内容。对其中的某些或全部字体做修改,并使这些修改虽然在一般情况下细微得很难让用户识别出来,但仍然为指纹2161提供了适当编码手段。在单个文档中可以使用给定字符的具有略微差别的各种版本,这样更易于携带与交易有关的字体指纹信息。
指纹技术的某些其它应用示例可能包括1.在软件程序中,选择某些可互换的代码段,这些代码段产生近乎相同的操作,但是经过分析也可以得出它们之间的区别,而这些区别则刻画了指纹信息。
2.对于数据库,有选择地对某些字段如日期等进行格式化,使之以不同方式出现。
3.在游戏程序中,调整背景或改变某些事件的顺序,包括对游戏元素出现的时间和/或次序安排进行可察觉的或非常细微的修改,或者对游戏元素的外观进行细微的修改。
执行FINGERPRINT方法2160(如果确实需要执行的话)的时机一般是在信息内容从信息内容对象300中发布出来的时候。不过,也可以在分发对象的时候执行该方法以便对之做“标记”,尽管此时信息内容仍处于被加密形式。例如,基于网络的对象仓库在将某个对象传送给请求者之前,可以先将指纹2161嵌入到该对象的信息内容中,该指纹信息可以标识信息内容请求者/最终用户。这样做有助于探测出“欺骗性”电子设备600,这些设备被用来未经允许地散布信息内容。
DESTROY(销毁)图59示意了在较佳实施例中有代表性DESTROY方法2180示例所执行的进程控制步骤流程。DESTROY方法2180通过消除用户访问对象所需的URT从而取消了用户使用对象的能力。在较佳实施例中,DESTROY方法2180可以首先向审核UDE写入审核信息(处理框2182,2184)。然后DESTROY方法2180可以调用WRITE和/或ACCESS方法写某些信息,这些信息将破坏(同时也就销毁)对象的头和/或其它重要部分(处理框2186)。随后,DESTROY方法2180可把一个或多个控制结构(如URT)标记为已毁坏的,其过程是通过向控制结构中写入相应信息(处理框2188,2190)。最后,DESTROY方法2180将向审核UDE中写入附加审核信息(处理框2192,2194),然后终止(终止点为2196)。
PANIC(紧急)图60示意了在较佳实施例中有代表性PANIC方法2200示例所执行的进程控制步骤流程。当检测到安全性被侵犯的情况时,可以调用PANIC方法2200。PANIC方法2200可以执行一系列步骤来禁止用户继续访问目前正在访问的对象,(举例来说)这些步骤包括拆除正在用来访问对象的通道,将与该用户和该对象相关的一个或多个控制结构(如URT)标记为已毁坏的(分别为处理框2206和2208-2210)。由于控制结构被毁坏,VDE节点需要在用户可以再次访问相同的对象之前与某个管理员联系,以便获取有效的控制结构。当VDE节点与管理员联系时,管理员可以请求获取某些必要信息使他相信没有发生过安全性被侵犯的情况,或者如果确实出现了安全性被侵犯的情况,他可以采取相应步骤确保不再发生上述侵犯安全性的情况。
METER(计量)图61示意了在较佳实施例中有代表性METER方法示例所执行的进程控制步骤流程。尽管前面已经结合图49,50和51介绍了METER方法,而图61所示的METER方法2220可能是一个在一定程度上更具代表性的例子。在较佳实施例中,METER方法2220通过访问METER审核跟踪UDE首先准备一个审核跟踪(处理框2222,2224)。然后METER方法2220可以从安全数据库中为METER UDE读取DTD(处理框2226,2228),随后从安全数据库中读取METER UDE(处理框2230,2232)。接着METER方法2220测试所得到的METER UDE,以确定该UDE是否已经到期(判定框2234)。在较佳实施例中,每个METER UDE都可以被标记上一个过期日期。如果当前日期和/或时间已经过了METER UDE的过期日期(判定框2234的“是”出口),那么METER方法2220可以在审核记录中记下一个失败情况,并以失败条件终止(框2236,2238)。
假设METER UDE尚未过期,METER方法2220可以用由(举例来说)EVENT方法传来的原子元素和事件计数来更新该METER UDE(处理框2239,2240)。然后METER方法2220可以把计量使用审核记录存入METER审核跟踪UDE中(处理框2242,2244),随后终止(终止于2246)。
较佳实施例提供的附加安全特征较佳实施例提供的VDE 100具有足够的安全性,这些安全性有助于确保在短期的有成效的“强力攻击”前提下VDE 100不能受到侵害;而且,即使“强力攻击”成功,那么花在其中的时间和代价实际上也要超过得到的任何价值。另外,VDE 100提供的安全性还对VDE的内部操作进行相互隔离,这样,成功的“强力攻击”只能侵害被保护信息中被严格分界的一个子集,而不是整个系统。
下面列出了较佳实施例提供的某些安全性状况和特征 PPE 650及其所执行进程的安全性 安全数据库610的安全性 PPE 650所执行的加密/解密操作的安全性 密钥管理;加密/解密密钥和共享秘密的安全性 鉴别/外部通信的安全性 安全数据库备份的安全性 VDE内部信息在电子设备600之间的可安全传输性 VDE安全信息的访问许可的安全性 VDE对象300的安全性 VDE安全性的完整性上述某些安全性状况和考虑在前面已经讨论过。下面将对较佳实施例安全特性中尚未全面说明的部分进行扩充论述。
密钥和共享秘密的管理VDE 100使用密钥和共享秘密来提供安全性。较佳实施例提供了下列的密钥使用特性 不同的密码系统/密钥类型
安全密钥长度 密钥生成 密钥“卷积”和密钥“衰老”这几种类型将在下面进行讨论。
A.公开密钥和对称密钥密码系统将信息进行伪装或变换以隐藏其实质的过程称为加密。加密产生“密文”。逆向执行加密进程以从密文中恢复信息实质称为“解密”。密码算法是用于加密和解密的数学函数。
多数现代的密码算法使用“密钥”。“密钥”规定了所要提供的某一类变换方式。密钥允许使用标准的、公布的和经过测试的密码算法,同时确保用该算法执行的特定变换是保密的。于是,特定变换的保密性是取决于密钥的保密性,而不是算法的保密性。
有两种一般形式的基于密钥的算法,较佳实施例PPE 650可以使用其中任一种或两者。
对称;及 公开密钥(“PK”)在对称算法中,加密密钥可以从解密密钥中计算出来,反之亦然。在许多这样的系统中,加密密钥和解密密钥是同一个。该算法也称为“保密密钥”,“单密钥”或“共用秘密”算法,该算法要求在接收者解密发送者生成的密文之前,发送者和接收者一致同意使用某个密钥。该密钥必须保密。对称算法的安全性取决于这个密钥泄露了该密钥意味着任何人都可以在这种密码系统中对信息进行加密和解密。参看Schneier的《Applied Cryptography》第3页。较佳实施例可以使用的某些对称密钥算法例子包括DES、Skipjack/Clipper,IDEA,RC2和RC4。
在公开密钥密码系统中,加密所用的密钥与解密所用的密钥不同。而且,利用计算从一个密钥导出另一个密钥是不可行。这些密码系统中所用的算法称为“公开密钥”,因为两个密钥中的一个密钥可以是公开的,而这不致威胁另一密钥的安全性。因为这些算法对加密和解密使用不同的密钥,所以有时也称之为“非对称”密码系统。公开密钥算法的例子包括RSA,El Gamal和LUC。
较佳实施例PPE 650可以只基于对称密钥密码系统,也可以基于公开密钥密码系统,或者两者都可。VDE 100不特别要求任何特定加密算法。较佳实施例提供的体系结构可以支持包括PK和/或保密密钥(非PK)算法在内的大量算法。在某些情况下,加密/解密算法的选择将取决于大量的商业决定如成本、市场需求、与其它商业可用系统的兼容性、出口法律等等。
尽管较佳实施例不依赖于任何特定类型的密码系统或加密/解密算法,而优选例则将PK密码系统用于PPE 650之间的安全通信,而将保密密钥密码系统用于VDE对象300的“批量”加密/解密。使用保密密钥密码系统(如使用多密钥和多遍的DES实现、Skipjack,RC2或RC4)进行“批量”加密/解密处理可以提高加密和解密大量信息的效率,同时加密/解密还使得没有PK功能的PPE可以在各种各样的应用中对VDE对象300进行处理。在通信中使用PK密码系统有许多优点,如消除了在建立通信时对秘密共用外部通信密钥的依赖性,允许不依赖于共用内部秘密的查问/回答过程对PPE 650进行鉴别,而且还支持不依赖于共用秘密密钥的对大众公开的“鉴定”进程。
某些信息内容提供者可能希望将其信息内容的使用限制于PK实现中。为满足这种需求,可以将PPE 650中PK功能的加入以及PK功能的特定性质或类型作为VDE对象300注册过程的一个因素。其方法是(举例来说)在REGISTER方法中以加载模块的形式加入对这种对象的要求,而该加载模块将在允许继续注册之前针对特定的或一般的PK功能对PPE 650进行检查。
尽管VDE 100不要求特定的算法,但最好所有PPE 650都可以使用相同的算法进行批量加密/解密处理。如果用来批量加密VDE对象300的加密/解密算法未经标准化,那么有可能某些VDE电子设备600将不能处理所有VDE对象300。如果标准化的批量加密/解密算法不是完全或部分地用基于硬件的加密/解密机522来实现,而是用软件实现,那么在PPE 650以及相关电子设备600之间将存在性能上的差异,为了支持那些未完全或部分地由加密/解密机522实现的算法,PPE 650中必须有一个实现该算法的部件组。
B.密钥长度增加密钥的长度可以提高安全性。对密码系统进行“强力进攻”就需要尝试任何可能的密钥。密钥越长,需要尝试的可能密钥就越多。密钥长度到了一定值时,“强力进攻”者如果采用现有的计算资源尝试所有可能的密钥,那么,所花费的时间将是不现实地长。
较佳实施例提供的VDE 100可以支持和使用多种不同的密钥长度。在较佳实施例中,VDE 100所用密钥的长度取决于用来完成加密/解密的算法、所需安全性的级别、以及吞吐率要求。较长的密钥通常要求更多处理能力以便确保快速的加密/解密响应时间。因此,在(a)安全性和(b)处理时间和/或资源之间有一个折衷。由于基于硬件的PPE加密/解密机522的处理速度可能比基于软件的加密/解密更快,因而基于硬件的方法通常允许使用更长的密钥。
较佳实施例对于PK加密/解密可使用1024位模(密钥)RSA密码系统实现,对于“批量”加密/解密可使用56位DES。由于标准DES所提供的56位密钥其长度可能不够,而不能满足至少大多数敏感VDE信息的安全性需求,因此可以采用多遍运算和多个DES密钥的DES加密过程以提供更多的安全性。如果对于不同密钥采取多遍运算,那么可以使DES的安全性大大增强。例如,对于2个或3个单独的密钥进行3遍运算将更加提高安全性,因为这样做实际上是增加了密钥的长度。RC2和RC4(除DES的另外一些选择)可以输出长至40位的密钥,但为了提供高至DES级的安全性,密钥的长度可能还要更长。NSA Skipjack提供的80位密钥长度可能比较适于多数VDE安全性的需要。
如果具有向PPE 650中动态下载代码和其它信息的能力,那么即使已经使用了相当多的VDE电子设备600,也可以动态地调整和修改密钥的长度。如果VDE管理员能够与两个PPE 650进行通信,就可能有效地实现上述的事后动态改变,并且成本高效。可以将新的或修改了的密码系统下载到现有PPE 650中,以替换或补充PPE中已有的密码系统清单,同时可以使较旧的PPE维持与较新的PPE和/或新发布的VDE对象300及其它受VDE保护的信息之间的兼容性。例如,可以在任何时间将软件加密/解密算法下载到PPE 650之中,通过提供不同密钥长度的能力,从而补充了加密/解密机522基于硬件的功能。为提供更大的灵活性,可以配置PPE加密/解密机522,使之能够预先处理多遍运算和/或变量和/或更长的密钥长度。另外,最好可以使PPE 650具有内部产生较长PK密钥的能力。
C.密钥生成较佳实施例提供的密钥生成技术使PPE 650能够产生只有它自己“知道”的密钥或其它信息。
被加密信息的安全性取决于对之加密所用密钥的安全性。如果用一个弱密码特性的进程来生成密钥,那么整个安全性就受到削弱。好的密钥是随机的位串,从而密钥空间中的任何可能密钥机会均等。因此,密钥通常必须由随机程度较为可靠的数据源产生,例如,可以用该数据源为一个具有密码安全特性的伪随机数发生器提供种子。这种密钥发生器的例子在Schneier的《Applied Cryptography》(JohnWiley和Sons,1994)第15章中作了介绍。如果密钥的生成是在给定的PPE 650之外进行的(如由另一个PPE 650生成),那么在使用这些密钥之前必须对之进行校验以确保其来源是可信的。可以用“鉴定”过程来校验这些密钥。
较佳实施例PPE 650提供了密钥的自动生成。例如,为保护基于PK的外部通信或为其它原因,较佳实施例PPE 650可以生成其自身的公开/私有密钥对。PPE 650还可以在初始化过程之中或之后生成其自身的对称密钥以用于各种用途。由于PPE 650提供了安全的环境,较佳实施例大多数密钥产生过程都可以在PPE中进行(可能的例外是在制造或安装时使用的PPE密钥不在PPE中进行,PPE使用这些密钥对初始下载得到的消息进行鉴别)。
好的密钥生成过程取决于随机性。前面结合图9讨论过,较佳实施例PPE 650带有一个基于硬件的随机数发生器542,该随机数发生器542具有产生可靠随机数所需的特征。这些随机数可以用来向具有强密码特性的随机数发生器(如运行于输出反馈模式的DES)“提供种子”,以便从随机数种子产生附加的密钥数值。在较佳实施例中,随机数发生器542可以含有一个“噪声二极管”(noise diode)或其它基于物理的随机数值发生源(如放射性衰变过程)。
如果PPE 650中没有随机数发生器542,那么SPE 503可以使用一个密码算法(如运行于输出反馈模式的DES)从保护于SPE之中的一个保密数值来导出一个伪随机数序列。虽然这些数值是伪随机的而不是真正随机的,但由于它们是由具有密码特性的算法导出,并且导出过程所用的数值对于SPE 503的外界来说是保密的,所以这种密钥可以满足某些应用的要求。
在包含HPE 655而不含SPE 503的实施例中,随机数发生器565软件可以从无法预知的外部物理事件中导出可靠的随机数(如磁盘I/O结束的精密定时,或用户敲击所接键盘612的精密定时)。
某些传统的技术基于上述“种子”来产生PK或非PK密钥,这些技术也是可以采用的。因此,如果性能和制造成本允许的话,较佳实施例中的PPE 650可以基于这种随机或伪随机“种子”数值产生其自身的公开/私有密钥。可以在产生上述密钥对的PPE 650和希望与该PPE 650进行通信的其它PPE之间用该密钥对进行外部通信。例如,密钥生成方PPE 650可以将该密钥对的公开密钥向其它PPE公开。这样就可以使其它PPE 650使用该公开密钥加密某些信息,而这些信息只能由密钥生成方PPE(密钥生成方PPE是“知道”对应“私有密钥”的唯一PPE)解密。类似地,密钥生成方PPE可以用其私有密钥加密某些信息,而当这些信息被带有密钥生成方PPE之公开密钥的其它PPE成功解密后,这些PPE可以由此断定这些信息是密钥生成方PPE送来的。
在某一PPE 650使用由另一PPE 650生成的公开密钥之前,必须使用公开密钥验证进程为该公开密钥提供鉴别证明。公开密钥的证明表示某人的公开密钥经过了某个值得信赖实体的“签字“,这些实体的例子包括可信的PPE 650或VDE管理员。当虚假的PPE试图说服某个PPE 650使它相信它正与一个真实PPE通信时(例如该哄骗者实际上是某个企图侵犯PPE 650安全性的人),证明就可以用来阻挠其企图得逞。在较佳实施例中,一个或多个管理员可以具有验证权威。通过“签字”由某个PPE生成的公开密钥以及与该PPE和/或对应VDE电子设备600相关的信息(如站点ID、用户ID、过期日期、名字、地址、等等),VDE管理员的验证权威可以证明有关PPE和/或VDE电子设备的信息是正确的,并且该公开密钥属于这个特定的VDE节点。
证明数字签名的可信度方面意义重大,在公开密钥鉴别通信协议方面(下面将要讨论)也发挥了重要作用。在较佳实施例中,这些证明可以含有有关特定VDE电子设备600(例如不管该电子设备600是否包含基于硬件的SPE 503或不甚可信的软件仿真类型HPE 655)安全性可信度/安全性级别的信息,这些信息可用来避免将高度保密的信息传送给不甚可信/安全的VDE设备。
证明的另一个重要作用是它可以用来解除欺诈性用户和/或站点的权利。通过在证明中存入一个站点标识和/或用户ID,PPE可以在鉴别过程中对这些信息进行检验。例如,如果某个VDE管理员或票据交换所碰到某张证明,并发现其中的ID(或其它信息)满足了某些条件(例如在列有被解除权利和/或有嫌疑的用户和/或站点的名单中发现了这些信息),他们可以根据上述条件有选择采取某些措施,例如拒绝通信,传送禁止信息,将该情况通知用户,等等。证明通常还带有一个过期日期,这是为了保证该证明必须定期更换,从而(举例来说)确保地点和/或用户必须处于与VDE管理员的接触之中,并允许证明密钥定期更换。可以向站点和/或用户发放基于不同密钥的一个以上的证明,这样,如果某个给定证明密钥受到破坏,还可以使用一个或多个“备份”证明。如果某个证明密钥受到破坏,VDE管理员可以拒绝根据由该密钥产生的证明进行鉴别,并在利用“备份”证明进行鉴别之后发送一个信号,该信号将作废与VDE参与者继续交互的过程中对该受损密钥的所有使用,以及与该密钥相关的所有证明。在出现上述密钥破坏情况以后,可能会生成一个或多个“备份”证明和密钥,并将之发送给可信的站点/用户。
如果可以有多个证明,那么某些证明可以作为备份保留着。作为另一种选择或作为一种补充方式,在给定的鉴别过程中,(例如通过使用RNG 542)可以从一组证明中挑选一个证明,这样可以减小使用与某个受损证明密钥相关的证明的可能性。还有一种可选方案,在一个给定的鉴别过程中,可以使用一个或多个证明。
为了防止验证算法遭到泄露的可能(例如,由于算法所基于的数学基础可能会出现不可预测的发展),对于不同的证明可以使用不同的算法,这些算法基于了不同的数学基础。
另一种可以用来减小泄露可能性的技术是保密证明所基于的“公开”值(保存在PPE 650的受保护存贮设备中),因而可以禁止攻击者访问该数值,否则该数值将对其进攻过程产生帮助。尽管这些数值通常是“公开”的,但只有那些实际确认证明的部件(即PPE 650)才有必要知道这些数值。
在较佳实施例中,PPE 650可以产生其自己的证明,或者可以从外部获得证明,例如可以从一个具有验证权威的VDE管理员处获取。不管上述数字证明在何处生成,它们最终要被VDE管理员验证机构所注册,以便其它VDE电子设备600可以访问(并信任)该公开密钥。例如,PPE 650可以将其公开密钥和其它信息传送到一个验证机构,然后该验证机构使用其私有密钥将该公开密钥和其它信息进行加密。其它装置600可以信任该“证明”,因为使用验证机构的公开密钥可以解密该“证明”,这就可以鉴别出该“证明”是真实的。再举一个例子,验证机构可以加密它从密钥生成方PPE 650收到的公开密钥,并使用该公开密钥加密验证机构的私有密钥。然后验证机构可以将该加密的信息传回密钥生成方PPE 650。之后,密钥生成方PPE 650可以使用验证机构的私有密钥来内部产生一个数字证明,在此之后它将销毁验证机构私有密钥的拷贝。于是,根据需要,PPE 650可以将其数字证明发送给VDE管理员,并保存在其证明存放库中(或任何地方)。也可以利用外部的密钥对发生器或证明发生器来实现验证进程,但是由于这种安全措施的本质特征,其安全性可能要打些折扣。在这种情况下,PPE 650中需要使用一个制造密钥,以限制对涉及到的其它密钥的暴露。
PPE 650可能需要使用多个证明。例如,可能需要用一个证明使用户相信某个PPE使真实的,同时它还用来标识PPE。另一方面对于PPE 650的各个用户来说可能还需要另外的证明。这些证明可以既含有用户信息又含有站点信息,或者也可以只含有用户信息。通常,验证机关在为给定用户创建证明之前要首先得到有效的站点证明。用户为得到证明可以各自请求获取各自的公开密钥/私有密钥。VDE管理员、票据交换所以及其它参与者通常可以在通信中或其它交互中要求对站点(PPE 650)和用户两者进行鉴定。上述密钥生成进程以及PPE650的验证进程也适用于产生站点/用户证明或用户证明。
上述的证明还可以用来验证加载模块1100的来历和/或管理对象的真实性。上述的安全性技术和保险技术可以用来减小任何上述证明(所适用的证明不限于用于识别VDE电子设备600的证明)遭到泄露的可能性。
D.密钥衰老和卷积在较佳实施例中,PPE 650能够产生在多个PPE 650之间共用的保密密钥和其它信息。在较佳实施例中,这些保密密钥和其它信息在多个PPE 650之间共用并不要求这些共用的保密信息需要明确地在电子设备之间传递。更具体地说,当收到了在多个VDE电子设备600之间共用的种子信息时,PPE 650使用了一种称为“密钥卷积”的技术根据确定的进程导出密钥。由于上述多个电子设备600“知道”“种子”信息是什么,并且还“知道”如何根据该信息产生密钥的确定进程,所以每个电子设备都可以独立地产生“真正的密钥”。这种方式一方面可以使多个VDE电子设备600共用一个共用的保密密钥,另一方面还避免了通过非安全通道传送密钥而使其安全性受到潜在危害。
任何密钥都不能无限期地使用。密钥的使用时间越长,密钥遭到泄露的机会可能越大,如果密钥遭到泄露以后依然还在用来保护新信息的话,那么可能造成的损失就越大。密钥的使用时间越长,它保护的信息就可能越多,因此,某些人花费必要的精力破解了该密钥将可能得到越多的报酬。而且,如果密钥的使用时间较长,那么将会有更多的密文落入攻击者手中,而这些攻击者则可以试图根据密文来破解密钥。参看Schneier的150-151页。较佳实施例中的密钥卷积技术则提供了一种手段,以定期地或根据其它标准有效地改变存贮在安全数据库610中的密钥,同时又简化了围绕密钥变化而存在的密钥管理事宜。另外,密钥卷积可以用来产生“逐渐衰老密钥”(将在后面介绍),以支持密钥使用和/或确认中的“过期日期”功能。
图62示意了较佳实施例中密钥卷积的实现示例。密钥卷积的执行过程是使用站点标识2821和RTC 528的高位这两者的组合,产生唯一于站点的数值“V”,而该数值“V”则是依赖于时间的,并且依赖的时间单位较大(如小时或天)。加密进程2871可以利用上述数值“V”将卷积种子数值2861变换为“当前卷积密钥”2862。种子数值2861可以是一个在全局范围内或在组范围内共用的保密数值,它可以存放在保密密钥存储器中(如存放在PPE 650中受保护的存贮器内)。可以在制造过程中设置种子数值2861,并且VDE管理员可以不定期地将之更新。不同集合的对象300可以有大量的种子数值2861与之对应。
当前卷积密钥2862表示对站点标识2821和当前时间的编码。该变换得来的数值2862可以用作另一个加密进程2872的密钥,该进程2872将存放在PERC 808中的密钥810变换成用于对象信息内容的真正私有体密钥2863。
处理框2861、2871执行的“卷积函数”可以(举例来说)是一个单向函数,该函数在信息内容制作者的站点和信息内容用户的站点都可以独立地执行。如果信息内容用户所使用的卷积函数和输入数值(如时间和/或站点和/或其它信息)与信息内容制作者所使用的不是精确相同的话,那么两者执行卷积函数所得到的结果将有差异。如果信息内容制作者将其卷积结果作为对称密钥用在了加密过程中,那么信息内容用户将无法解密,除非该信息内容用户的卷积结果与信息内容制作者的相同。
密钥卷积函数输入中的时间分量可以从RTC 528获取(要注意避免VDE电子设备之间在RTC同步上的微小差异引起不同的电子设备使用不同的时间输入分量)。可以用RTC 582输出的不同部分来提供具有不同有效期的密钥,或者可以在该进程中加入一定容差以便尝试若干不同的密钥数值。例如,可以调整“时间粒度”参数,以便产生适当的时间容差,该时间容差单位可以是天、星期、或其它任意时间段。作为一个例子,如果“时间粒度”被设为2天,而容差为±2天,那么卷积算法就可以尝试三种实际时间输入数值。可以尝试生成的每个密钥值以便确定实际使用的是这些可能密钥中的哪一个。在本例中,密钥将只有4天的寿命。
图63示意了如何选择适当的卷积输出密钥以补偿用户RTC 528和制作者RTC 528之间的偏斜。通过使用不同的输入数值2881(a-e)可以产生一个卷积密钥2862(a-e)序列,每一个输入数值2881(a-e)都来自于站点标识2881和RTC 528与一个差值(如-2天、-1天、无差值、+1天、+2天)的和或差。卷积步骤2871(a-e)用来产生密钥2862(a-e)序列。
同时,制作者站点可以基于其RTC 258的值(要适当调整该值以便使其对应于密钥的预计有效期)使用卷积步骤2871(z)产生卷积输出密钥2862(z),该密钥2862(z)于是可以用来生成对象PERC 808中的信息内容密钥2863。为解密对象信息内容,用户站点可以尝试其卷积密钥2862(a-e)序列中的每一密钥以便生成主信息内容密钥810。此时,只要制作者站点的RTC 538处于用户站点RTC 528的可接受的容差范围之内,那么密钥2862(a-e)中的某一个将与密钥2862(z)相匹配,解密过程将成功。在本例中,匹配取决于解密输出的有效性,而不取决于密钥之间的直接对比。
上面所讲的密钥卷积不是一定要将站点标识和时间两者作为一个值来使用。某些密钥可以根据当前实际时间来生成,某些密钥则可以根据站点标识来产生,而另外一些密钥则可以根据实际时间和站点标识两者来产生。
密钥卷积可以用来提供“时间衰老”密钥。这种“时间衰老”密钥提供一种自动机制支持密钥的过期,并允许用“新”密钥替换过期密钥。它们给予用户受时间限制的权利,从而使用户受时间限制地使用对象或对象的部分,而这不需要用户的重新注册,同时又保障了信息内容制作者或管理员的重要控制权。如果安全数据库610安全性足够的话,通过检查与密钥相关的过期日期/时间可以实现相同的功能,不过这需要使用更多的存贮空间来存放各个密钥或密钥组。
在较佳实施例中,PERC 808可以包含一个过期日期/时间,过了此日期/时间以后,将不再有权访问与该过期日期/时间相对应的受保护VDE信息。作为另一种选择或作为一种补充方案,当对电子设备600或一个或多个VDE对象300的有关使用过了一段时间之后,PERC808可以强迫用户将审核历史信息发送给票据交换所、分发者、客户管理员、或对象制作者,以便重新获得或维持使用对象的权利。为强制执行上述基于时间的约束,PERC 808可以检查/加强某些参数,而这些参数则限制了密钥的使用和/或有权使用期的已消耗部分。“时间衰老”密钥可以用来强制或加强对访问受VDE保护信息的上述基于时间的控制。
“时间衰老”密钥可以用来在有限的时间段内加密和解密一个信息集合,因而它需要用户重新注册、或收到新的许可,或传送审核信息。如果用户不这样的话,他将得不到需要使用的新密钥。时间衰老密钥还可以用来提高系统的安全性,因为根据时间衰老标准一个或多个密钥将被自动替换,因而破译安全数据库610及定位一个或多个密钥可能没有实际价值。使用时间衰老密钥的另一个优点是它们可以被动态地产生,因而不再需要将解密密钥存放在二级和/或安全存贮器中。
在较佳实施例中,“时间衰老密钥”并不是可以用来执行加密/解密的“真实密钥”,而是一段信息,PPE 650结合其它信息可以使用该信息生成一个“真实密钥”。,此处的其它信息可以是基于时间的,也可以是基于PPE 650特定标识的,或者基于两者的。由于“真实密钥”始终不暴露,并且总是在PPE 650安全环境中产生,同时还由于需要多个安全PPE来生成该“真实密钥”,所以VDE 100使用“时间衰老”密钥可以大大增强系统的安全性和灵活性。
在较佳实施例中,“老化”密钥的过程包括产生一个时间衰老的“真实密钥”,该时间衰老的真实密钥是下面参数的函数(a)一个“真实密钥”;及(b)某些其它信息(如实际时间参数、站点ID参数等等)。该信息被合并/变换(如采用上述的“密钥卷积”技术),以恢复或产生“真实密钥”。由于“真实密钥”可被恢复,从而避免将“真实密钥”保存在PERC 808中,并允许不同的密钥可以对应于PERC 808中的相同信息。由于没有将“真实密钥”保存在PERC 808中,所以无法通过访问PERC而访问受“真实密钥”保护的信息。因此,“时间衰老”密钥使信息内容制作者/提供者可以在信息访问中加入限制,从某种意义上来说,该限制不属于或辅助了由一个或多个PERC 808提供的许可。例如,“时间衰老”密钥可以将额外的时间限制强加在访问某些受保护信息的行为中,其中,上述额外时间限制不依赖于PERC 808包含的任何信息或许可,而是基于一个或多个时间和/或站点标识数值。
举一个例子,可以用时间衰老解密密钥使电子出版报纸的“尝试订阅”购买者在一个星期之内观看报纸的各版,而在一个星期之后,解密密钥将不再有效。在本例中,用户为了观看在那一星期以外的版,需要购买一个或多个新的PERC 808,或接收相应信息以更新现有的一个或多个许可记录。对上述其它版的访问将受到全新定价结构的控制(如采用“常规”订购费用,而不是免费,或最低的“试阅”订购费)。
在较佳实施例中,可以采用单向或可逆的“密钥卷积”函数生成基于时间衰老的“真实密钥”。该卷积函数的输入参数可以包括所提供的时间衰老密钥;特定于用户和/或站点的信息;(如果有RTC 528的话)RTC 528时间值的指定部分(例如一定数目的高位信息)或采用预定方法从该时间值导出的数值;以及一个块标识符或记录标识符,它们用于确保各个时间衰老密钥都是唯一的。“密钥卷积”函数的输出可以是一个“真实密钥”,它可以一直用来解密直到其作废为止。如果使用时间衰老密钥和一个不适当的时间值作为输入而运行该函数,通常会产生一个无法执行解密的无用密钥。
当经过的、绝对的或相对的时间(例如,该时间基于从某个时钟如RTC 528等得到的实际时间)达到某些特定数值的时候,将会触发新的时间衰老密钥的产生。在该时刻,卷积过程将产生错误的密钥,而解密过程将会失败,直到时间衰老密钥被更新为止。根据时间或其它输入变量,可以改变用来确定何时产生新“时间衰老密钥”的条件本身,以便提供另一层次的安全性。因此,卷积函数和/或调用该函数的事件可以改变、移位或使用变化的量作为其参数。
下面举一个使用时间衰老密钥的例子。
1)制作者生成一个“真实”密钥,并用它加密信息内容。
2)制作者执行“逆向卷积”过程生成一个“时间衰老密钥”,该“逆向卷积”过程使用的输入参数有a)上述“真实”密钥b)一个时间参数(如RTC 528时间的高有效位)c)可选的其他信息(如站点标识和/或用户标识)3)制作者向信息内容用户分发该“时间衰老密钥”(如果信息内容用户的PPE 650不在使用她已得到的卷积算法,那么制作者可能还需要分发卷积算法和/或参数)。
4)信息内容用户的PPE 650将下列信息合并a)“时间衰老”密钥b)时间的高有效位c)所需的其他信息(与2c相同)信息内容用户的PPE 650执行卷积函数(即上面步骤(2)中的“逆向卷积”算法之逆)以便得到“真实”密钥。如果所提供的的时间和/或其它信息是“错误”的,该卷积过程将无法产生“真实”密钥,于是信息内容将无法得到解密。
与VDE对象300或其它项相关的密钥块既可以是普通密钥块,也可以是时间衰老密钥块,这可以由对象制作者在对象配置进程中指定,或者如果合适的话由分发者或客户管理员来指定。
“时间衰老”密钥还可以用作协议的一部分以提供PPE 650之间的安全通信。例如,PPE 650在通信时可以不用采用“真实”密钥,相反,VDE 100可以只向PPE提供“部分”通信密钥。(举例来说)可以在初始化时将这些“部分”密钥提供给PPE 650。可以用一个预定的算法产生“真实”密钥以便在安全通信中执行信息加密/解密。该预定算法可以在所有PPE 650中采用同种方式“老化”上述密钥,或者可以要求PPE 650在某些预定的时间与VDE管理员联系,这样,就可以将一套新的部分通信密钥下载到PPE 650中。如果PPE 650不生成“新的”部分密钥,或者是获取“新的”部分密钥,那么它将被禁止与其它PPE通信(可以提供另外一个“失效保险”密钥以确保该PPE可以与VDE管理员通信以便进行重新初始化)。PPE 650中可以维护两套部分密钥,以便在使这两套密钥在所有VDE设备600之间有固定的重叠使用时间。可以定期地更新两套部分密钥中较老的那一套。
在较佳实施例中还可以对下列附加类型的密钥(这些密钥在后面将要讲到)进行“老化”单个消息密钥(即用于特定消息的密钥)管理、静止和移动对象共用密钥安全数据库密钥,及私有体密钥和信息内容密钥初始安装过程密钥管理图64示意了在创建PPE 650的过程中全局范围内或“主”密钥流程。在较佳实施例中,PPE 650包含一个安全的、非易失性密钥存贮设备2802(如SPU 500的非易失性RAM 534B或由HPE 655维护的安全存贮设备),该存贮设备2802由厂家生成的密钥和PPE本身生成的密钥进行初始化。
生产厂家拥有一个或多个由公开密钥2871/私有密钥2812组成的密钥对(“拥有”意为知道该密钥,并保护该密钥不被泄露或修改),这些密钥对用来批准和确认站点标识证明2821。对每个站点,生产厂家都生成一个站点标识2821和站点特征2822的列表。另外,生产厂家还拥有公开密钥2813、2814,用以确认加载模块和初始化代码下载。为了加强安全性,可以采用大量的上述证明密钥,而且可以只采用每种上述密钥的一个子集对各个PPE 650进行初始化。
作为初始化进程的一部分,PPE 650可以内部生成一对或多对特定于站点的公开密钥2815和私有密钥2816,或可以由生产厂家生成和提供这些密钥。PPE 650使用这些密钥来证实其身份。同样地,对应于本站点的特定站点数据库密钥2817被产生出来,同时,如果需要的话(即如果随机数发生器542不可用的话),随机初始化种子2818将被产生。
初始化过程可以首先生成站点ID 2821和特征2822,以及由站点公开密钥2815/私有密钥2816组成的密钥对。这些数值接着被合并,并可以被用来产生一个或多个站点身份证明2823。站点身份证明2823可以由公开密钥生成进程2804产生,它可以被存放在PPE的安全密钥存贮设备2802中,以及存放在生产厂家的VDE站点证明数据库2803中。
验证进程2804可以由生产厂家执行,也可以由PPE 650内部执行。如果由PPE 650执行,那么PPE将暂时接收身份验证私有密钥2812,生成证明2823,将该证明保存在本地密钥存贮设备2802中,同时将之传送给生产厂家。此后,PPE 650必须删除它保存的身份验证保密密钥2812拷贝。
接着,初始化过程可以要求PPE 650或生产厂家生成特定于站点的密钥2817和特定于站点的种子数值2818,这些生成的数值将被存放在密钥存贮设备2802中。另外,生产厂家可以提供下载证明密钥2814和加载模块证明密钥2813,这些密钥被保存在密钥存贮设备2802中。PPE 650可以使用这些密钥对与外部实体间的所有进一步通信进行确认。
此时,通过下载经过加载模块密钥2813和下载密钥2814验证的信息,可以用可执行码和数据进一步初始化PPE 650。在较佳实施例中,上述密钥可以用来数字签名要加载进PPE 650的数据,保证其有效性,并且可以使用附加的密钥对这些数据进行加密,以防止其受到泄露,而这些附加密钥则采用特定于站点的公开密钥2815进行了加密。
安装和更新密钥管理图65示意了进一步的密钥安装过程,该安装过程或者由生产厂家执行,或者由VDE管理员的后续更新过程完成。生产厂家或管理员可为下列密钥设置初始值或新值,这些密钥包括私有头密钥2831、外部通信密钥2832、管理对象密钥2833或其它共用密钥2834。这些密钥可以是全局性的,如同全局性证明密钥2811、2813和2814那样,或者其使用范围可以只限于VDE实例的某个规定组中。
为执行该安装过程,安装者首先检索到目的地站点的身份证明2823,然后从中抽取出站点公开密钥2815。加密进程2841可以使用这些密钥以保护被安装的密钥。然后被安装的密钥被传送到目的地站点的PPE 650内部。在PPE 650内部,解密进程2842可以使用站点私有密钥2816解密传送来的信息。然后PPE 650将被安装的或被更新的密钥存放在其密钥存贮设备2802中。
特定于对象的密钥使用图66和67示意了在保护与VDE对象300相关的数据和控制信息时,密钥的使用。
图66示意了静止信息内容对象850的使用,该静止信息内容对象850的控制信息来自管理对象870。这些对象可以由PPE 650接收(例如,可以通过网络从对象仓库728中检索这些对象,也可以从本地存贮设备中检索这些对象)。管理对象解密进程2843可以使用私有头密钥2815解密管理对象870,于是检索到PERC 808,而PERC 808则控制对信息内容对象850的访问。可以从该PERC 808中抽取出私有体密钥810,交由信息内容解密进程2845使用,使信息内容对PPE650外部可用。另外,加密进程2844可以使用数据库密钥2817对PERC进行加密,准备将其保存在安全数据库610中PPE 650的外部。在对信息内容对象850的后续访问中,可以从该安全数据库610中检索出PERC 808,用数据库密钥2817对之解密,然后就可以直接使用,而不用从管理对象870中抽取出PERC 808。
图67示意了有关移动对象860的类似进程。图66和67的主要区别在于PERC 808是直接存放在移动对象860中,因此,可以在解密进程2843之后直接使用PERC 808以产生私有头密钥2831。该私有头密钥2831用来处理移动对象860中的信息内容。
秘密密钥的变型图64至67示意了公开密钥的较佳实施例,但它们也可以帮助理解秘密密钥的处理过程。在秘密密钥的实施例中,验证过程和公开密钥加密/解密进程由私有密钥加密过程代替,并且公开密钥/私有密钥对由单独的秘密密钥代替,这些秘密密钥在PPE 650实例和其它团体(如加载模块提供者、PPE生产厂家)之间共用。另外,在秘密密钥实施例中,证明生成进程2804没有被执行,而且不存在站点身份证明2823或VDE证明数据库2803。
密钥类型下面给出了密钥类型的详细描述,进一步解释了秘密密钥实施例。这并不是一个完整描述。较佳实施例PPE 650可以为不同的用途而使用不同类型的密钥和/或不同的“共享秘密信息”。某些密钥类型适用于使用公开密钥/秘密密钥实现中,另一些密钥则适用于只使用秘密密钥的实现中,还有一些密钥则两种实现皆可适用。下表列出了较佳实施例中使用的各种密钥和“共享秘密信息”的例子,并说明了这些信息的使用场合和存放地点。
主密钥“主”密钥是用来加密其它密钥的密钥。可以在PPE 650中提供一个初始密钥或“主”密钥以便以安全方式传递其它密钥。在PPE650的初始化过程中,某些代码和共用密钥下载到PPE中。由于这些代码包含安全卷积算法和/或系数,因而它们类似于“主密钥”。同时也可以把共用密钥看成是“主密钥”。
如果用公开密钥密码系统作为与PPE 650进行外部通信的基础,那么在PPE公开密钥对验证过程中需要使用一个主密钥。该主密钥可以是(举例来说)生产厂家或VDE管理员用来建立数字证明(被加密的公开密钥或PEP的其它信息)的一个私有密钥。也可以是VDE管理员对证明存放库中的项目进行加密所用的一个私有密钥。一旦出现验证过程,PPE就可以使用它们的证明在互相之间建立外部通信。
如果用共用秘密密钥作为外部通信的基础,那么为进行PPE 650的初始化,需要使用一个初始秘密密钥建立外部通信。由于该初始秘密密钥用来加密其它密钥,所以它是一个“主密钥”。在PPE初始化进程中,可以下载一组共用部分外部通信密钥(参看前面的叙述),这些密钥可以用来建立后续的外部PPE通信。
制造密钥制造密钥用于制造PPE过程中,以防止在初始化时下载到PPE中的、特定于PPE的密钥信息被生产人员获知。例如,作为制造设备一部分而运行的PPE 650可以产生某些信息,这些信息需要下载到正在进行初始化的PPE中。在PPE 650之间传送这些信息时,必须要对这些信息进行加密以保证其机密性,否则生产人员将会读取这些信息。制造密钥则用来保护上述信息。制造密钥可以用来保护下载到PPE中的各种其它密钥,例如验证私有密钥、PPE公开/私有密钥对、以及/或者其它密钥如特定于PPE的共用秘密密钥。由于制造密钥用来加密其它密钥,所以它是“主密钥”。
制造密钥可以基于公开密钥,也可以基于共用秘密信息。一旦下载了信息,那么当前已经初始化了的PPE 650可以丢弃(或简单地不使用)制造密钥。可以在制造时将制造密钥硬接线到PPE 650中,或者将它作为PPE的第一个密钥传送给PPE,然后在以后不再用的时候将之丢弃。有一点在前面的表中已经指出并且本文也进行了说明,即如果PPE内含有PK功能,那么就不需要制造密钥。
验证密钥对验证密钥对可以用来作为PPE 650和VDE电子设备600“验证”进程的一部分。在较佳实施例中,这一验证进程可用来允许VDE电子设备提出一个或多个证明它(或其密钥)是可信的“证明”。如上所述,PPE 650可以使用该“验证”进程来“证明”该PPE 650是一个可信的VDE PPE,该PPE 650具有一定的安全级别以及功能组(如它是基于硬件的,而不是仅仅基于软件的),等等。简而言之,上述“验证”过程可能涉及的处理是采用验证密钥对中的一个证明私有密钥对包含另一个VDE节点公开密钥的信息进行加密。验证密钥对中的私有密钥最好用来生成一个PPE证明。它用来加密PPE的一个公开密钥。PPE证明可以存放在PPE中,也可以存放在证明存放库。
根据所选鉴别技术,验证密钥对的公开密钥和私有密钥可能需要得到保护。在较佳实施例中,通过在各PPE间分发验证公开密钥,使得PPE可以在作为验证过程一个方面的证明解密过程中利用这些密钥。由于在较佳实施例中,上述公开密钥是在PPE 650内部使用,所以该公开密钥没有必要以明文形式投入使用,并且无论如何,维护该密钥的完整性并且在传送时保证其完整性都是相当重要的(例如,在初始化过程中和/或由VDE管理员更新的过程中都需要传送给密钥)。如果验证公开密钥是保密的(即只有在PPE 650内部才可以得到其明文形式),那么将会使对安全性的攻击行为变得困难得多。验证密钥对的私有密钥必须是保密的,并且只能由验证机构存放该密钥(即不能分发该密钥)。
在较佳实施例中,为了能够使不同的安装设备具有不同级别/可信程度/安全性,可以使用不同验证密钥对(如可以使用一些验证密钥来验证HPE 655,而使用另一些不同的验证密钥来验证SPE 503)。
PPE公开/私有密钥对在较佳实施例中,每个PPE 650都拥有自己唯一的“设备”(和/或用户)公开/私有密钥对。该密钥对中的私有密钥最好在PPE内部产生而绝不以任何形式暴露于PEP之外。因此,在较佳实施例中,PPE650可以提供有某个内部功能以便内部地产生密钥对。如果PPE内部地产生其自身的公开密码系统密钥对,那么上述的制造密钥可能就不再需要了。根据需要而且更考虑到成本问题,可以只在制造PPE 650的时候才暴露密钥对,并且当时可以使用制造密钥对之进行保护。允许PPE 650内部地产生其自身的公开密钥对可以使该密钥对得到隐藏,但是在某些应用中,由于将公开密钥对发生器放到PPE 650中的成本较高,上述做法可能得不偿失。
初始秘密密钥一个只基于秘密密钥的PPE 650可以将初始秘密密钥用作一个主密钥,以保护在初始化过程中下载到PPE中的信息。它由PPE 650生成,从PPE发送到用制造密钥加密的安全制造数据库中。作为响应,安全数据库发回唯一的PPE制造ID,该PPE制造ID由上述初始秘密密钥加密。
基于初始秘密密钥在PPE初始化过程中所起的特殊作用,该初始化秘密密钥可能比用于“标准”加密的密钥长得多。由于由此带来的解密开销仅在初始化进程中出现,因而采用该密钥的选定部分通过解密硬件进行多遍处理还是可以接受的。
PPE制造IDPPE制造ID不是一个“密钥”,但它确实满足“共享秘密信息”的典型定义。PPE制造ID最好唯一地标识PPE 650,并且可以由安全数据库610用来在PPE初始化进程中确定PPE的初始秘密密钥。
站点ID、共享代码、共用密钥以及共享秘密信息VDE站点ID、共享代码、共用密钥以及共享秘密信息最好或者在PPE初始化进程中下载到PPE 650中,或者在PPE初始化进程中由PPE作为该进程的一部分内部产生。在较佳实施例中,多数或所有的这种信息是下载得到的。
PPE站点ID唯一地标识了PPE 650。该站点ID最好是唯一的,以便唯一地标识PPE 650并从所有PPE中区分出上述特定PPE来。在较佳实施例中,站点ID提供了一个唯一的地址,该地址可适用于多种用途,例如它可以提供“地址隐私性”功能。在某些情况下,站点ID可以是PPE 650的公开密钥。而在另一些情况下,该PPE站点ID可以在制造过程和/或初始化进程中指定。在PPE 650不具有公开密钥功能的情况下,最好不要将设备秘密密钥作为唯一的站点ID,因为这样将会暴露该密钥过多的数据位,因此,应该用另一个信息串来充当站点ID。
共享代码包含一些特定的代码段,这些代码段向PPE 650提供了至少一部分控制程序。在较佳实施例中,在PPE制造过程中安装了基本的代码段,该代码段使得PPE可以进行自举并启动初始化进程。可以在初始化进程中或在后续的下载进程中利用更新了的控制逻辑将该代码段替换掉。
共用密钥可以在初始化进程中被下载到PPE 650中。这些密钥可以用来(举例来说)解密许多对象结构的私有头。
当PPE 650只运行于秘密密钥模式时,初始化进程和下载进程可以向PPE 650输入共享秘密信息。在通信过程中可以使用这些共享秘密信息,使PPE 650能够鉴别其它PPE和/或用户的身份。
下载授权密钥在初始化下载进程中PPE 650接收下载授权密钥。下载授权密钥用来授权进一步的PPE 650代码更新、密钥更新,它还用来保护PPE安全数据库610的备份,以便在PPE失效时可以(举例来说)由VDE管理员恢复。同时使用下载授权密钥、站点ID、时间和卷积算法可以得到特定于站点标识的密钥。下载授权密钥可以还可以用来加密密钥块,该密钥块用来加密安全数据库610的备份。下载授权密钥还可以用来形成特定于站点的密钥,该特定于站点的密钥可以支持将来对PPE 650的下载。在较佳实施例中,下载授权密钥并不在所有PPE 650之间共用。它由经授权的VDE管理员所执行的功能专用。
外部通信密钥和相关的秘密和公开信息在某些情况下当PPE 650进行通信的时候需要使用密钥。建立安全通信的过程也可能需要使用与欲通信的电子设备600相关的公开和秘密信息。外部通信密钥和其它信息就用来支持和鉴别安全通信。在较佳实施例中,这些密钥包含一个公开密钥对,不过作为一种选择或补充方案,也可以使用共用秘密密钥。
管理对象密钥在较佳实施例中,管理对象共用密钥可以用来解密管理对象870的私有头。在管理对象的情况下,私有头中可以含有一个许可记录808。在某些情况下,许可记录808可以作为一个管理对象(或存放在管理对象之中)被分发出去,以提供对其它管理对象信息内容的处理权。许可记录808最好含有用于私有体的密钥,并且,可被访问的信息内容的密钥将是在上述许可记录808中所引用的预算。管理对象共用密钥可以将时间作为其组成部分之一,并且在过期的时候可以被更换。
静止对象密钥静对象共用密钥可以用来解密静止对象850的私有头。如上所述,在某些情况下,静止对象850的私有头中可以出现许可记录808。如果出现的话,许可记录808可以包含用于私有体的密钥,但不包含用于信息内容的密钥。这些共用密钥可以将时间作为其组成部分之一,并且在过期的时候可以被更换。
移动对象共用密钥移动对象共用密钥可以用来解密移动对象860的私有头。在较佳实施例中,移动对象的私有头中可以含有许可记录808。许可记录808可以包含用于私有体的密钥,它也可以包含用于信息内容的密钥,而对于这些信息内容而言,许可记录808已经准许了对它们的访问。这些共用密钥可以将时间作为其组成部分之一,并且在过期的时候可以被更换。
安全数据库密钥PPE 650最好生成这些安全数据库密钥并永不将它们暴露到PPE的外界。在较佳实施例中,这些安全数据库密钥是特定于站点的并如上所述是可以“老化”的。如上所述,每当一个被更新的记录被写入安全数据库610中的时候,一个新密钥将投入使用,并且被保存在PPE内部的一个密钥列表中。PPE 650可以定期地(以及在内部列表没有空间的时候)生成一个新密钥以加密新记录和老记录。根据安全数据库610容量,使用一组密钥而不是一个密钥。
私有体密钥私有体密钥对于对象300是唯一的,并且它们不依赖于共享于PPE650之间的密钥信息。最好由PPE 650在加密私有体的时候生成私有体密钥,并且可以将实际时间作为它们的一部分,以便使其“老化”。这些密钥保存在许可记录808中,其使用可以由预算来控制。
信息内容密钥信息内容密钥对于对象300是唯一的,并且它们不依赖于共享于PPE 650之间的密钥信息。最好由PPE 650在加密信息内容的时候生成信息内容密钥,并且可以将实际时间作为它们的一部分,以便使其“老化”。这些密钥保存在许可记录808中,其使用可以由预算来控制。
授权共享秘密信息访问或使用PPE 650或安全数据库610中的信息可以通过使用授权“共享秘密信息”来控制,而不是使用密钥来控制。授权共享秘密信息可以存放在由它们授权的记录(许可记录808、预算记录等等)中。可以在创建相应记录的时候提出授权共享秘密信息。可以由一个有授权资格的PPE 650生成授权共享秘密信息,并且当记录被更新时可以替换共享秘密信息。授权共享秘密信息具有与“功能”有关的某些特性,这些功能用于基于功能的操作系统中。在较佳实施例中,访问标记(下面将要讲到)是一种重要的授权共享秘密信息集合。
备份密钥如上所述,安全数据库610的备份过程包括读取所有安全数据库记录和当前审核“堆积”(roll up),这些记录和信息存放在PPE 650中,也可存放在外部。于是,备份进程使用一组新产生的密钥对上述信息进行解密和重新加密。这些密钥、备份的时间、以及可以标识该备份的其它相应信息可以被多次加密,并且可以同以前加密的安全数据库文件以及堆积数据一起存放在备份文件中。然后,使用由PPE 650内部生成和保存的一个“备份”密钥对这些文件进行加密。如果需要的话,PPE可以使用备份密钥500恢复备份。备份密钥也可以被安全地加密(例如,使用下载的授权密钥和/或VDE管理员公开密钥),并存放在备份本身之中,以便在出现PPE 650失效时VDE管理员可以恢复备份。
密码密封(Cryptographic Sealing)某些时候,信息可能遭到不受PPE 650控制的修改,这种修改可能是偶然的,也可能是对VDE安全性的蓄意破坏,此时可以用密封来保障信息的完整性。密封有两种特定应用,即数据库记录校验值的计算,以及对交换至SPE 500之外的数据块的保护。
有两种类型的密封无密钥密封—也称为密码散列,以及有密钥密封。两种技术都采用了具有较强密码功能的散列函数,如MD5或SHA。这种函数将任意长度的数据作为输入,并产生一个固定长度的散列,或称“提炼数据”(digest),该提炼数据具有一种特性,即不可能计算出产生同一提炼数据的两个输入,也不可能计算出产生特定提炼数据的一个输入,此处的“不可能”是相对于工作量因素而言的,而工作量因素又取决于提炼数据的位长。举例来说,如果认为256位的散列函数在密码特性方面较强的话,那么在可能产生复制的或指定的提炼数据之前必须进行平均大约1038(2128)次尝试。
无密钥封条(keyless seals)可以用来做数据库记录(如PERC808)和类似应用中的校验值。无密钥封条可以根据记录体内容而计算得出,并且可以与记录的其余部分存放在一起。可以对封条和记录的组合进行加密,以便保障其存贮的安全性。如果某人在不知道加密密钥(该密钥或者部分地代表数据,或者部分地代表封条)的情况下加密了记录,那么被加密的信息内容将与原先的不同,而被加密的校验值将不能匹配由记录数据得到的提炼数据。即使知道了散列算法,也不可能修改记录数据及其封条以实现对应,因为这两者都已经经过了加密。
对于未经加密地保存于受保护环境之外的数据来说,可以用有密钥封条作为它们的保护措施;另外,有密钥封条还可以用作两个受保护环境之间的有效性证明。有密钥封条的计算方法与无密钥封条的类似,不同之处在于在被封的数据前面逻辑地加上了初始秘密数值,因此提炼数据取决于秘密值和数据两者,而且不可能计算出一个新的封条使之对应于被修改的数据,即使该数据本身对破坏者是可见的。有密钥封条可以利用单个秘密数据保护存放的数据,或者可以保护在共享单个秘密数值的两个环境之间传送的数据。
对于有密钥和无密钥封条的选择要根据被保护数据的特性,以及该数据是否还经过了加密的保护。
加标记在支持重要部件组和相关信息在二级存贮器652中的安全存放方面,加标记特别有用。信息“加标记”和加密技术的结合使用可以实现用廉价的大容量存贮设备安全地存放信息。这种方法可以部分地允许、限制和/或记录VDE节点的配置、管理和操作以及对受VDE保护的信息内容的使用。
当加密的或安全化的信息被传递到用户的VDE安全处理区(如PPE650)中时,该信息的一部分可以被用作一个“标记”,该标记首先被解密或被解除安全防范,然后与一个预期的数值相比较,以确认该信息确实是预期的信息。因此,可以将标记作为一个确认进程的一部分,该确认进程用来确认收到的受VDE保护信息的身份和正确性。
较佳实施例的控制结构中可以包含三种类型的标记 访问标记 确认标记 关联标记这些标记各自有不同的目的。
访问标记可以用作受VDE保护的元素与实体之间的“共享秘密”,而这些实体则得到授权可以读和/或修改被标记的元素。访问标记可以被划分成分开的字段以独立地控制不同的行为。如果某个元素如方法核心1000’使用了一个访问标记,那么影响该元素的管理事件必须带有被影响元素的访问标记(或访问标记的一部分),并且在某个事件被提交处理的时候要确立该标记。如果访问标记经过了安全的维护(例如,在创建元素的时候由PPE 650内部产生访问标记,并且只能以加密结构的形式将访问标记从PPE 650中释放出来),并且只将其分发给授权的团体,那么可以更为容易地控制对其结构的修改。当然,控制结构(如PERC 808)可以进一步地限制或核实由管理事件执行的修改或其它行为。
关联标记用于一个元素引用另一个元素的时候。例如,制作者在引用他们存放于制作者PERC中的预算之前预算拥有者可能首先向制作者发出要求以便获取许可并建立业务关系。当这种关系建立好以后,预算所有者可以将一个或多个关联标记传送给制作者,这可以作为一个步骤以允许制作者产生的PERC使之引用预算所有者的预算。
确认标记则有助于检测出破坏者替换记录的企图。
在某些方面,上述三种类型的标记在功能上有重叠。例如,通常访问标记出现不一致将禁止某种修改企图,但是如果在执行访问标记检查之前首先检查出关联标记不一致,那么将同样禁止该修改企图。较佳实施例在某些情况下可以利用这种重叠以减少开销,例如,如上所述,用访问标记充当类似上述的确认标记的角色。
通常,加标记过程包括在SPE 503中改变加密密钥、安全化技术、以及/或者提供特定的、被存贮的标记。结合存放在所述廉价大容量存贮设备652中的安全数据库610信息执行上述过程可以用来对受VDE保护信息和管理数据库信息进行鉴别、解密、分析、使用,或使之可用。一般来说,改变确认标记的过程涉及将对应于标记变化的一个或多个信息元素保存在VDE节点硬件中。将信息保存于具有物理安全性的硬件SPE可信环境之外是一种非常节约成本的安全存贮途径,通过对信息进行上述加标记可以增强被存贮的重要管理数据库信息的安全性。频繁地执行标记“更换”(例如每次加密一个给定记录的时候进行一次更换)可以防止“不正确”信息对“正确”信息的替换,因为所述替换信息不带有某些特定信息,而这些特定信息可以在后续对其的检索过程中匹配存放在硬件SPE中的加标记数据。
作为信息加标记的另外一个好处,使用标记有助于有效地对双方或多方之间的信息和/或控制机制进行强化和/或校验。如果信息由一方进行了标记,然后传递给其它方,可以使用一个标记作为预期的数值,该数值与发生在双方之间的、有关被标记信息的通信和/或交易相关联,例如,如果某个标记与A方传递给B方的某个数据元素相关联,那么在与所述数据元素相关联的信息和/或所述数据元素的部分信息从B方发布给A方之前,B方可以请求A方证明自己知道一个标记至少其中一部分的正确值,反之亦然。再举一个例子,A方可以使用一个标记来确认由B方发来的信息确实与被标记的数据元素有关,以及/或者确实是被标记元素的一部分,反之亦然。
建立安全的、经鉴别的通信通道两方(如PPE A和B)会不时地需要建立这样的通信通道,双方都知道该通道具有防窃听能力和防破坏能力,并且只能由这两方使用,而这两方都准确地知道相互的身份。
下面描述一个建立上述通道的示例进程,并介绍多方如何产生和确认安全性和鉴别的要求。本文将以抽象的形式就各方必须确立的声明和信任等方面展现上述进程,本文不打算将该进程作为任何特定协议的规范。特别是,无需使用不同的操作来实现每个步骤的各个子步骤;实际上,经常将相关证明的确立和确认合并到一个操作中。
不一定要按照下述的次序执行各个子步骤,一个例外是只有在另一方作出声明之后,才能对该声明的有效性进行证明。这些步骤可能涉及两方之间更多的通信,而不仅仅局限于所列举的那些子步骤所隐含的通信,因为信息的“传送”本身可以又分成多个子步骤。另外,不一定要在传送过程中对声明和证明进行保护以避免泄露或修改。同时,并不把有关声明的信息(包括特定的通信提议和确认)看作是受保护的信息。对证明的任何修改都将导致证明变成无效,并且将导致该进程失败。
该进程可以使用标准的公开密钥或秘密密钥密码技术(如X.509、经鉴别的Diffie-Hellman、Kerberos)。较佳实施例使用三向X.509公开密钥协议(three_way X.509public key protocol)步骤。
下面列出的可以是该示例进程的前两步A.(先导步骤)由A产生一种方法以便创建可确认的声明B.(先导步骤)由B产生一种方法以便创建可确认的声明这两步用来确保每一方都有一种产生声明的方法,而所产生的声明可以由另一方来确认,例如,可以使用公开密钥签名机制,在这种机制中,两方都维护一个私有密钥,并提供一个公开密钥供对方用,该公开密钥本身由验证机构的数字签名进行了鉴别。
下面的步骤可以是A.(提议步骤)1.确定B的身份2.获取一种方法以便确认由B产生的声明3.为本次所提议的通信创建一个唯一的身份
4.创建一个通信提议,该提议标识了双方和特定通信5.为A的身份和通信提议的源创建可确认证明6.将通信提议和相关证明传递给B上述步骤确立对应B方的身份,并提议通信。由于通信的建立需要对B产生的声明进行确认,所以必须向A提供一种机制以确认这种声明。由于通信的建立对于A方为了通信而提出的特定请求必须具有唯一性,所以该通信提议和所有相关的业务都必须能够清楚地与所有其它类似业务区分开。由于B必须确认该提议是来自A的合法提议,所以必须提供一个证明以表明该提议是有效的。
后续步骤可以按如下进行B(确认步骤)1.从通信提议中抽取出A的身份2.获取一种方法以便确认由A产生的声明3.确认A声明的身份和通信提议源4.确定通信提议的唯一标识5.确定该通信提议没有重复先前的提议6.创建一个确认,该确认标识了上述特定的通信提议7.为B的身份及确认源创建可确认的证明8.将确认和相应证明传递给A上述步骤确立了B方已经收到来自A方的通信提议,并准备处理该提议。由于B必须确认该提议,所以B必须首先确定该提议的源并确认其可信性。B必须确保其响应与某一特定提议相关联,而且该提议不是重复。如果B接受该提议,那么它必须证明自己的身份,并证明自己已经收到了特定提议。
后续的步骤可以是A.(建立步骤)1.对B响应A的特定建议而发回的声明确认进行确认2.从确认中抽取出特定通信提议的身份3.确定该确认与一个未完的通信提议相关联4.创建所提议通信要使用的唯一会话密钥5.为A执行的会话密钥生成创建证明6.为会话密钥与特定通信提议具有相关性创建证明
7.为收到B的确认创建证明8.保护该会话密钥以避免在传送过程中被泄露9.保护该会话密钥以避免在传送过程被修改10.将受保护的会话密钥和所有证明传送给B在上述步骤中,A指定了一个会话密钥,该密钥针对的是与A的特定通信提议相关的所有进一步业务。A必须创建该密钥,并证明该密钥是A创建的,还要证明该密钥与被提议的特定通信相关联。另外,A必须证明生成该会话密钥是为了响应B对上述提议的确认。必须保护该会话密钥以避免被泄露和修改,这样做是为了确保破坏者无法用另外的数值替换该密钥。
VDE安全设备在PPE 650之间的传输能力在较佳实施例中,可以采用上述的各种密钥将适当的VDE对象300以及其它安全信息从一个PPE 650安全地传送到另一个。VDE 100利用重新分发VDE管理信息的方法交换VDE对象300的所有权,并允许在电子设备600之间传送对象。
VDE对象300的许可记录808含有权利信息,该信息可用来确定一个对象是否能被总体地、或部分地分发或完全不分发。如果VDE对象300可以被重新分发,那么电子设备600通常必须拥有允许自己重新分发该对象的“预算”和/或其它许可。例如,一个经授权可以重新分发对象的某个电子设备600可以创建一个管理对象,而该管理对象含有的预算或权限要低于或等于该电子设备600所拥有的预算或权限。某些管理对象可以被送往其它PPE 650。收到该管理对象的PPE 650能够使用相关对象预算或权利的至少一部分。
转移VDE对象300的所有权是一种特殊情况。其中,对应于VDE对象的全部许可和/或预算都被再次分发给另外一个PPE 650。某些VDE对象可以要求传送所有的对象相关信息(例如它可能将全部权限都“出售”给对象)。但是,某些VDE对象300可禁止这种转移。在转移所有权的情况下,VDE对象300的新所有者在完成所有权转移之前可能需要与该对象的原始提供者联系,向其通知转移,并利用再次授权中所伴随的授权共享秘密对其进行确认。
当电子设备600收到一个部件组时,该部件组中的一个加密部分中将包含只有提供部件组的一方或PPE 650才知道的一个数值。该数值可以与最终必须返回给该部件提供者的信息(如审核、计帐或相关信息)保存在一起。当部件提供者请求得到上述信息的报告时,提供者可以出示上述数值,以便本地的电子设备600将之与原来提供的数值做对比检查,以确保该请求是合法的。当收到一个新部件的时候,可以对照旧部件来检查新部件中的上述数值,以确定这个新部件是否是合法的(举例来说,新部件可包含下一报告进程所用的新数值)。
VDE安全性的完整性有许多途径可能会造成对PPE 650的破坏。VDE 100所提供的安全性的目标是减少系统受到破坏的可能性,并在破坏发生时将不利影响降至最低。
本文假设用来实现VDE 100的基本密码算法是安全的(即具有较强的密码特性)。这些算法包括对信息内容进行秘密密码加密、针对完整性验证的公开密钥签名、用公开密钥加密在PPE 650之间或PPE和VDE管理员之间所传送的秘密信息,等等。本文假设破坏者没有能力对上述算法进行直接破坏。对于VDE 100的本地版本来说,上述某些假设可能是安全的,因为控制信息的底层基本结构含有足够长的密钥,并且经过了充分的证明。
下面列出了可能较为严重的几种威胁或破坏危险 未经授权地创建或修改部件组(如预算) 未经授权地大量暴露信息内容 破坏一个或多个密钥 对硬件PPE进行软件仿真 用老记录替换新记录 引入“欺骗性”(即虚假的)加载模块 重复破坏行为 使“指纹功能”失效 未经授权地暴露个别的信息内容项 再次分发个别的信息内容项如果一个或多个加密密钥受到了破坏,那么将会出现严重的安全性潜在缺口。如上所述,VDE 100使用的加密密钥具有充分的多样性和分离性,因而在大多数情况下,破坏了一个密钥给破坏者带来的价值是有限的。如果一个验证私有密钥遭到泄露,破坏者虽然因此可以通过上述的查问/应答协议,但随后即将面临下一级别的安全防范措施,它需要破坏者或者破解初始化查问/应答过程,或者破坏外部通信密钥。如果该初始化查问/应答的安全性防护也被突破,那么初始化代码和各种初始化密钥也将遭到暴露。但是,为了找到共用的VDE密钥并重复密钥生成(“卷积”)算法,仍然需要理解代码和数据。另外,上述欺骗性过程还必须保存正确的实际时间值。如果破坏者能够成功地完成上述所有步骤,那么与该仿冒的PPE进行的所有安全通信都将受到危及。如果在发送给仿冒PPE的信息中出现了与某个对象许可记录808相关的信息,那么该对象将遭到危及。
如果泄露了PPE下载授权密钥和用来生成特定加密密钥的算法—该加密密钥用来加密安全数据库610备份所用的密钥,那么可能危及特定电子设备600中的整个安全数据库。但是,为了利用上述信息来危及VDE对象300的信息内容,还必须了解VDE的适当内部细节。在较佳实施例中,通过在存放于安全数据库610中的私有体密钥和信息内容密钥之中加入时间分量,可以使这些密钥“老化”。将时间与上述被保存的数值进行卷积运算将得到解密信息内容所需的“真实密钥”。如果该过程也遭到了破坏,将会暴露对象信息内容或方法。在较佳实施例中,由于在没有得到经授权的VDE管理员的干预前,绝不会向PPE 650恢复安全数据库610的备份,因此不得不使用“仿冒的”的PPE来利用上述信息。
在较佳实施例中,外部通信共用密钥与基于站点ID和时间的密钥卷积算法结合使用。假如这些信息遭到破坏,为了能进一步利用它们,还必须了解与PPE 650进行通信所需的所有步骤。另外,必须破坏管理对象共用密钥中的至少一个密钥才能够访问被解密的许可记录808。
除非“破解者”还知道外部通信密钥,否则破坏管理对象共用密钥是毫无价值的。所有管理对象都由唯一的密钥进行加密,这些密钥利用共用的外部通信密钥、站点ID和时间进行交换。为进一步解密管理对象的信息内容还必须了解PPE 650的内部细节。
如果静止对象(或使用同一共用密钥的任意其它静止对象)的私有头遭到了破坏,那么将会使破坏者能够访问其信息内容,直到该共用密钥“老化”到不能继续解密私有头为止。除非对应于该对象的许可记录808也遭到了破坏,否则,该对象的私有体和信息内容都不会被暴露。上述对象的私有头一直处于被破坏的状态,直到上述密钥“老化”到不能继续解密私有头为止。
在较佳实施例中,安全数据库加密密钥更换较为频繁,并且是特定于站点的。破坏安全数据库610文件或记录的后果取决于被破坏的信息。例如,许可记录808含有对应于VDE对象300公开体和信息内容的密钥。如果许可记录808遭到破坏,同时假设产生“真实密钥”的算法也被泄露的话,那么由该许可记录提供的密钥所保护的对象部分也将遭到破坏。如果私有体密钥被泄露,那么对象的私有体将遭到破坏,直到该密钥“老化”、过期为止。如果该密钥的“老化”过程仍然遭到泄露,那么破坏将一直持续下去。由于私有体中可能含有由许多不同对象共享的方法,因而这些方法也将被破坏。一旦检测到上述破坏行为,提供预算和许可的所有管理对象都应该更新被破坏的方法。存放于安全数据库610中的方法只能由更新的方法版本来替换,因此当替换完成后,被破坏的版本将没有任何用处。
如果信息内容密钥遭到破坏,那么由该密钥加密的信息内容部分也将遭到破坏,直到该密钥“老化”并过期。如果该密钥的“老化”过程仍然遭到泄露,那么破坏将一直持续下去。如果使用了多级的加密过程,或者对信息内容的不同部分使用了不同的密钥进行加密,那么只了解单个密钥将不足以泄露某些或全部信息内容。
如果授权共享秘密信息(如某个访问标记)被泄露,假设“破解者”了解如何正确地使用该秘密信息,那么他可以利用一种经过授权的手段来修改包含该秘密信息的记录。一般来说,在共享秘密信息能派上用场之前,还必须“破解”外部通信密钥、管理对象密钥和管理文件密钥。当然,要得以利用这些信息还需要了解协议的任何细节。
在较佳实施例中,PPE 650可以检测它是否遭受了破坏。例如,通过将存放在SPE 503中的信息(如概要服务信息)与存放在安全数据库610中的信息和/或传送给VDE参与者(如VDE票据交换所)的信息进行比较,不一致的情况将变得显而易见。如果PPE 650(或某个正对其行为进行监测或正与其进行通信的VDE管理员)检测到它已经遭到了破坏,那么它将接受一个初始化过程的更新,以便使用新的代码、密钥和新的加密/解密算法。在加密系统遭到破解的时候,上述方法将会限制这时存在的VDE对象300的泄露。有可能要求PPE 650在某段时间之后停止运行,直到下载了新的代码和密钥为止。也有可能是VDE管理员强迫进行更新操作。还有一种可能,即在用户希望得到一个新VDE对象300的同时,他也意识到应该定期地更新其PPE650。
最后,由于VDE应用具有端-对-端特性,即信息内容108按一个方向移动,而报告和帐单118的生成则发生在另一端,这种特性因而使“逆向”一致性检查成为可能。这种在票据交换所116中执行的检查可以检测使用的模式,而使用模式则可以或确实表明欺骗行为(如未支付相应费用便过度地获取被保护的信息内容,存在使用记录而不存在相应的计帐记录)的发生。借助于细粒度的使用报告,同时又由于电子格式的使用记录和报告可以随时得到,便可以创建复杂周密的欺骗行为检测机制,从而使为补救欺骗行为而花费的代价维持在一个可接受的水平上。
PPE初始化每个PPE 650必须首先经过初始化才能投入使用。初始化过程可以在生产厂家所在地进行,也可以在PPE已经在厂外安置好以后进行,或两者皆可。PPE 650的制造过程通常涉及在PPE内部放入足够的软件,这些软件将允许该设备可以在以后进行更加完整的初始化。该制造过程可以包括(举例来说)对永久保存在PPE 650中的引导加载程序和查问-应答软件进行测试,并载入PPE的唯一ID。执行这些步骤以后,将产生一个具有VDE基本功能的PPE 650,该PPE 650可以被进一步初始化(举例来说,可以在该PPE 650已安装在电子设备600之内并且安放到位之后,再对该PPE 650进行进一步的初始化)。在某些情况下,可以将制造过程和进一步的初始化进程合并在一起,以产生“VDE就绪”PPE 650。前面已经结合图64和65对该步骤进行了概要性介绍。
图68示意了按照一个较佳实施例而执行的步骤示例,该步骤用来初始化PPE 560。在该流程图中,某些步骤可以在生产方执行,某些步骤则可以借助VDE管理员和PPE 650之间的相互联系而远程地执行。作为可选方案,图中的所有步骤都可以在生产方执行,或借助VDE管理员和PPE 650之间的远程通信而执行。
如果初始化进程1370是在生产方执行,则首先将PPE 650固定在一个测试台上。该生产测试台可以首先复位PPE 650(如利用上电清除)(处理框1372)。如果在生产方执行该复位操作,那么PPE 650最好执行一段特殊测试台引导代码,该代码从软件的角度对PPE的操作进行完整地测试,并且在PPE出现问题时测试将失败。之后,将采用初始查问-应答交互作用在生产测试台和PPE之间建立安全的通信交换过程(处理框1374),该交互作用最好是测试台引导进程一部分。一旦建立了上述安全通信,PPE 650可向生产测试台报告它所执行的引导测试的结果。假设PPE 650测试成功,生产测试台可以将新代码下载到PPE 650中,以更新其内部引导代码(处理框1376),以便使PPE 650在以后复位时不再执行测试台引导进程(处理框1376)。然后,生产测试台可以将新的固件载入PPE内部非易失性存贮器中,以便提供另外的标准和/或定制功能(处理框1378)。例如,生产测试台可以将加载模块预装入PPE 650中,而这些加载模块则适合于特定的生产地点。该步骤允许在生产地点对PPE 500进行定制,使之适合特定应用。
随后,生产测试台可以将唯一的设备ID载入PPE 650内部(处理框1380)。此时,PPE 650带有了唯一的ID,该ID可以用于进一步的交互作用。
在较佳实施例中,处理框1372-1380R通常在生产地点执行。处理框1374以及1382-1388则既可以在生产地点执行,也可以在PPE 650安装完毕后执行,或两者皆可。
为了进一步初始化PPE 650,一旦在PPE和生产测试台或VDE管理员之间建立了安全通信(处理框1374),所有的所需密钥、标记或证明都被载入PPE 650中(处理框1382)。例如,生产测试台可以将其信息载入PPE 650之中,于是PPE可以在以后某个时间进行初始化。某些上述数值可以在PPE 650内内部地产生。之后,生产测试台或VDE管理员可以用当前的实际时间值来初始化PPE实时时钟528(处理框1384)。这将为PPE 650提供时间和日期的引用。下一步,生产测试台或VDE管理员可以初始化由PPE 650内部维护的概要数值(处理框1386)。如果已经将PPE 650安装成某个电子设备600的一部分,那么此时该PPE可以初始化其安全数据库610(处理框1388)。
图69示意了由PPE 650执行的程序控制步骤示例,该步骤是固件下载进程的一部分(参看图68,处理框1378)。PPE下载进程用来将外部提供的固件和/或数据元素载入PPE中。固件载入过程可以有两种形式永久性载入和暂时性载入,前者用来载入一直驻留于PPE650中的软件,后者是被加载用于执行的软件。为了把已经发送给电子设备600的元素保存到安全数据库610中,需要执行一个相关进程。
PPE 650自动执行若干检查,以确保被下载到PPE中的固件在载入之前没有遭到破坏、替换或替代。图中所示的下载例程1390示意了该检查的示例。一旦PPE 650收到一个新的固件项(处理框1392),它可对该项进行检查,以确保它使用了预定的下载密钥或管理对象密钥(何种密钥取决于元素的来源)正确地执行了解密过程(处理框1394)。如果固件的解密过程正确(判定框1394的“是”出口),则计算固件的校验值,并将计算结果与存放在固件加密封装中的校验值相对比(判定框1396)。如果两个校验和值正确地匹配(判定框1396的“是”出口),那么PPE 650将对比与该固件相关联的公开和私有头标识标记,以确保所收到的是正确的固件而没有被替换(图中没有示出该步)。假设该测试也通过了,PPE 650可计算该固件的数字签名(假设PPE 650支持数字签名,同时该固件经过了“签名”)并检查计算得出的签名结果,以确保该结果匹配了存放于固件加密封装中的数字签名(处理框1398,1400)。如果上述任何步骤失败,那么该下载过程将异常终止(“失败”终止点1401)。
假设上述所有测试都通过,PPE 650于是将确定该固件是要存放在PPE之中(如存放在内部的非易失性存贮器中),还是要存放在安全数据库610中(判定框1402)。如果准备将固件存放在PPE中(判定框1402的“是”出口),那么PPE 500将简单地内部保存该信息(处理框1404)。如果准备将固件存放在安全数据库610中(判定框1402的“否”出口),那么可以用特定于PPE的唯一标记将该固件做上标记,该唯一标记用来防止记录替换(处理框1406),然后可用相应的安全数据库密钥对该固件进行加密,最后将该固件存放到安全数据库610中(处理框1408)。
SPU 500和/或VDE电子设备600的联网在由局域或广域网连接的许多计算机中,可能它们之中的一个或几个便是VDE电子设备600。例如,一个具有VDE功能的服务器可能含有一个或多个SPU 500。这个集中式的VDE服务器可以提供在网络中需要的所有VDE服务,或者它也可以与VDE服务器节点共同分担VDE服务。也就是说,它可以执行少量的、部分的、或大部分的VDE服务功能。例如,用户的非VDE计算机可以通过网络发出对受VDE保护的信息内容的请求。为响应该请求,VDE服务器可通过访问相应的VDE对象300,释放被请求的信息内容,并通过网络672将该信息内容传递给发出请求的用户来履行。这种方案可以允许将VDE功能方便地集成到现有的网络中,而不必对连接到网络上的各种计算机和其它设备进行修改或替换。
例如,一个带有一个或多个受保护处理环境650的VDE服务器可以通过网络与不带有受保护处理环境的工作站进行通信。该VDE服务器可以执行所有VDE安全处理,并将最后得到的信息内容以及其它信息发送给网络中的工作站。该方案不需要对工作站做任何硬件或软件的修改。
不过,某些应用可能要求更高的安全性、灵活性和/或性能,通过将多个VDE电子设备600连接到同一网络672中,就可以满足上述要求。由于通用的局域网包含非安全的信道,这样的信道有遭受破坏和/或窃听的危险,所以,在大多数安全应用中最好要对经过上述网络传输的信息进行保护。有可能使用常用的网络安全性技术来保护在一个VDE电子设备600和一个非VDE电子设备之间通过网络672传送的VDE发布的信息内容或其它VDE信息。然而,在同一个系统中提供多个联网的VDE电子设备600则更有优越性。
前面已经结合图8讨论过,多个VDE电子设备600彼此间可以通过网络672或其它通信途径进行通信。VDE电子设备600之间的这种联网具有一些优点。其优点包括(举例来说)有可能使VDE资源集中化、将计量信息在服务器VDE中保存和/或存档、通过网络672将信息和服务有效地传递给多个电子设备600。
例如,在局域网拓扑结构中,“VDE服务器”电子设备600可以存放受VDE保护的信息,并使该信息对一个或多个另外的电子设备600或计算机可用,这些电子设备600或计算机可以通过网络672与服务器进行通信。举一个例子,存放VDE对象的对象仓库728可以在集中化的服务器中维护,而多个联网电子设备600用户中的各个都可以根据需要通过网络672访问集中化的对象仓库。当用户需要访问特定的VDE对象300时,其电子设备600可以通过网络672发出一个请求,希望获取该对象的拷贝。作为对此请求的响应,“VDE服务器”可以交付所需对象300的全部或部分。提供这种集中化的对象仓库728具有以下优点对于连到网络672上的每个电子设备600来说,可以将其本地的大容量存贮器要求降至最低;消除了同一信息的冗余拷贝;减轻了信息管理负担;对于出现在服务器中的特别重要的VDE进程和/或信息提供了附加的物理安全性和/或其它安全性,而对于某些商业模型来说,在VDE节点中提供上述安全性保护措施从商业角度看是不现实的;等等。
在局域网拓扑结构中最好也将安全数据库610集中化。例如,在一个局域网中,可以将安全数据库610放置在一个集中的地点。连入局域网672中的多个电子设备600中的每一个都可以通过该网络发出对安全数据库610记录的请求。可以通过该网络以加密的形式将被请求的记录提供给请求者。通过利用安全通信交换机制在网络上传送解密上述记录所需的“密钥”,可以实现这些密钥的共享。在网络672中集中化安全数据库610有许多潜在的优点,包括将各个联网的电子设备600的二级存贮设备和/或其它存贮器的要求降至最低或从根本上消除;避免了冗余信息存贮;支持集中化的备份服务;减轻了信息管理负担;等等。
有一种方法可以廉价方便地在一个网络中配置电子设备600的多个实例,即把定义了HPE 655的软件提供给网络工作站。这种方案不需要对工作站进行任何硬件修改;可以只使用软件定义HPE 655。也可以在VDE服务器中提供SPE 503和/或HPE 655。这种方案的优点是它支持分布的VDE网络处理,而不需要定制或修改工作站(除非需要将新的程序加载到这些工作站中)。可以将需要较高安全性级别的VDE功能局限于一个基于SPU的VDE服务器中。基于“安全”HPE的工作站可以执行需要较低安全性的功能,并且可以利用VDE服务器协调其各项行为。
因此,在同一网络中提供多个VDE电子设备600可能具有许多优点。另外,将多个VDE电子设备600放置在同一工作站或其它电子设备600中也可能具有优越性。例如,一个电子设备600可以包含多个电子设备600,而其中每一个都含有一个SPU 500,并且能够执行VDE功能。
例如,可以将一个或多个VDE电子设备600用作计算机系统的输入/输出设备。这样就可以不再需要先在一个设备中解密信息,然后将该信息以未加密的形式通过某些总线或其它非安全通道移动到另一个设备,例如某个外部设备。如果该外部设备本身是一个带有SPU500的VDE电子设备600,那么可以将受VDE保护信息通过非安全通道发送给该外部设备,以便在其中处理(如解密)。给予外部设备直接处理受VDE保护的信息的能力也提高了灵活性。例如,VDE电子设备600外部设备可以控制对VDE对象300的使用。它可以(举例来说)计量其所处理信息的使用或其它参数,它还可以收集特定于其执行过程的审核跟踪和其它信息,以便提供有关VDE对象使用的更多信息。提供多个相互协作的VDE电子设备600将不再需要把加密的信息移动到一个VDE电子设备600,然后再把该信息以未加密的形式移动到一个非VDE设备中,因而提高了性能。该受VDE保护信息可以被直接地移动到其目的地设备,而该设备如果具有VDE功能的话可以直接处理上述信息,而不必请求某些其它VDE电子设备600参与。
图70示意了方案2630的示例。该方案包含多个VDE电子设备600(1),600(2),600(3),...,600(N)。VDE电子设备600(1),...,600(N)相互间可以通过通信通路2631(如工作站的系统总线、电话线或其它线路、电缆、底板、网络672、或其它任何通信机制)进行通信。图中所示的每个电子设备600可以具有图8所示的相同通用体系结构,即它们每一个都包含CPU(或微控制器)654,SPU 500、RAM 656、ROM 658、以及系统总线653。图中的每个电子设备600可以带有一个接口/控制器2632(可以将该接口/控制器2632看作是图8所示的某种特定类型的I/O控制器660和/或通信控制器666)。该接口/控制器2632提供了电子设备系统总线653和相应电连接器2634之间的接口。每个电子设备600(1),...,600(N)的电连接器2634提供了到通用网络672或其它网络通路的连接。
尽管图中所示的每个电子设备600可以带有总体上类似的体系结构,它们仍然可以执行不同的专门任务。例如,电子设备600(1)可能包含工作站的中央处理部件,该部件负责管理该工作站的全局操作,并提供计算资源。电子设备600(2)则可能是同一工作站的大容量存贮设备620,它可以提供存贮机制2636,该机制用来(举例来说)从二级存贮设备652中读取信息,或往二级存贮设备652写入信息。电子设备600(3)可以是一个显示设备614,它负责执行显示任务,并提供显示机制2638,例如图形控制器以及相关视频显示器或其它显示器。电子设备600(N)可以是一个打印机622,它执行与打印相关的任务,并且可以含有(举例来说)一个打印机制2640。
每个电子设备600(1),...,600(N)可以含有同一工作站的不同模块,而所有这些电子设备都包含在同一个机箱内。或者不同的电子设备可以放置在不同的系统部件中。例如,电子设备600(2)可以放置在磁盘控制部件中,电子设备600(3)可以放置在显示设备614的机箱中,而电子设备600(N)可以放置在打印机622的机箱内。重新参看图7,扫描仪626、调制解调器618、电信设备624、键盘614和/或声音识别器613每一个都可以包含一个带有自身SPU 500的VDE电子设备600。其它例子包括RF或其它无线接口控制器、串口控制器、LAN控制器、MPEG(视频)控制器,等等。
由于每个电子设备600(1),...,600(N)都具有VDE功能,所以都能够对受VDE保护的信息执行加密和/或解密操作。这意味着经过连接了这些电子设备的网络672或其它通信通路2631而传递的信息可以受VDE保护(如可以以VDE管理对象和/或信息内容对象的形式包装上述信息,并采用上述方法对之进行加密)。作为这种方案的一个结果,搭入通信通路2631的窃听者只能获取以受VDE保护的形式存在的信息。例如,由电子设备600(1)产生的、需要打印的信息可以包装到VDE信息内容对象300中,然后经过通路2631传送到电子设备600(N)打印。破坏者即使截获到该信息也将收益甚微,因为该信息是以受保护的信息传送的。为了访问处于未受保护形式下的上述信息,破坏者不得不对电子设备600(1)或600(N)(或SPU 500(1),500(N))进行破坏。
图中所示方案的另一个优点是每个电子设备600(1),...,600(N)都可以执行它们自身的计量、控制和/或与VDE相关的其它功能。例如,电子设备600(N)可以进行计量和/或执行与被打印信息相关的其它VDE控制功能;电子设备600(3)可以进行计量和/或执行与被显示信息相关的其它VDE控制功能;电子设备600(2)可以进行计量和/或执行与往大容量存贮设备620中存贮的信息或从中检索的信息相关的其它VDE控制功能;电子设备600(1)可以进行计量和/或执行与它所处理的信息相关的其它VDE控制功能。
在一个特定的方案中,每个电子设备600(1),...,600(N)都可以接收命令,该命令指示由该电子设备收到的信息或发送到该电子设备的信息将要使用该电子设备的SPU 500来处理后续的信息。例如,电子设备600(N)可以接收到一个命令,该命令指示该电子设备将要收到的待打印信息是以受VDE保护的形式发来的(或者发来的信息本身可以表明这一点)。一旦收到该命令或其它信息,电子设备600(N)可以利用SPU 500解密收到的信息,并且还可以对SPU输出到打印机制2644以供打印的信息进行计量。可以向电子设备600(N)发送另一个命令以便禁止其解密进程,或者电子设备600(N)的VDE安全子系统可以判断出送来的信息不应被解密和/或打印。还可以有其它命令,例如载入加密/解密密钥、载入“限制”、创建“按指纹”要求、以及读计量的使用。可以根据情况用加密的或未加密的形式发送这些附加的命令。
假设(举例来说)电子设备600(1)产生了一些信息,而它希望由具有VDE功能的打印机622来打印这些信息。SPU 500(1)可以通过通路2631与SPU 500(N)建立安全通信,以便发送一个命令,该命令要求SPU 500(N)解密下一个数据块,并将之作为一个解密密钥和限制来保存。然后SPU 500(1)可以向SPU 500(N)发送另一个命令,要求SPU 500使用解密密钥和相关限制来处理后续的任何加密的打印数据流(或者可以由CPU 654(1)将该命令发送给微控制器654(N))。之后,电子设备600(1)可以开始通过通路672发送加密的信息供打印机622解密和打印。打印机622一旦收到新的信息数据块,SPU 500(N)首先进行检查,以确保限制值大于零。然后,SPU 500(N)可以增加由它维护的使用情况计量值,并减少限制值。如果限制值是非零数值,SPU 500(N)可以解密收到的信息,并送到打印机制2640打印。如果限制值为0,SPU 500(N)既不会将收到的信息送到打印机制2640,也不会解密该信息。一旦收到一个停止命令,打印机622将回到“非安全”模式,在这种模式下,打印机622将打印通过通路2631接收到的所有信息,而不允许VDE处理。
与打印机622相关联的SPU 500(N)不一定非要放置在打印机的机箱内,而是可以(举例来说)放置在I/O控制器中(参看图8)。这样做仍然可以具有与上述优点相似的至少一部分优点,同时还不需要特别的、具有VDE功能的打印机622。作为另一种选择,可以在打印机622和与该打印机通信的I/O控制器660两者之中都安装SPU500(N),这种做有利于协调I/O控制,并减轻与中央处理电子设备600(1)相关联的SPU 500的处理负担。当一个电子设备中出现多个VDE实例时,一个或多个VDE安全子系统可以成为“中央”子系统,也就是说“二级”VDE实例可以将与使用相关的加密信息传递给一个或多个中央安全子系统,以便允许所述的中央子系统直接控制对所述使用相关信息的存贮。某些控制信息也可以由中央子系统集中保存,在收到二级安全子系统的安全VDE请求时,可以将这种信息的全部或部分安全地送往二级安全子系统中。
便携式电子设备本发明所提供的电子设备600可以是便携式的。图71示意了便携式电子设备的一个例子。便携式设备2600可以包含便携式机壳2602,在一个例子中,该机壳2602大约是信用卡大小。机壳2602可以(举例来说)通过带有一个或多个连接管脚(未示出)的电连接器2604与外界相连。连接器2604可以在机壳2602内部的外部总线接口2606与某个主机系统2608的配套连接器2604a之间建立电连接。外部总线接口2606可以(举例来说)含有一个PCMCIA(或其它标准)总线接口,从而使便携式电子设备2600可以与主机系统2608的总线2607进行连接,并通过该总线2607进行通信。主机2608可以(举例来说)是想象得出的几乎任何设备,例如计算机、付费电话机、另一个VDE电子设备600、电视机、拱廊视频游戏机、(arcade video game)洗衣机。以上只是列举了几个例子。
机壳2602可以是防破坏的(参看前面关于SPU屏障502防破坏功能的讨论)。
在较佳实施例中,便携式设备2600包含一个或多个SPU 500,这些SPU 500可以放置在机壳2602里面。SPU 500可以通过机壳2602内部的总线2610与外部总线接口2606相连。SPU 500通过该内部总线2610(经过外部总线接口2606)与主机2608通信。
可以用电池2612或其它便携式电源为SPU 500供电,这些电源最好放置在机壳2602里面。电池2612可以是(举例来说)手表或信用卡大小的计算器所使用的微型电池。可以用太阳能电池、可充电电池、电容存贮电池等来补充(或替换)电池2612。
最好在机壳2602里面提供随机访问存贮器(RAM)2614。RAM 2614可以与SPU 500相连,而不直接与总线2610相连,因此只有SPU才能访问到RAM 2614的内容,而主机2608则不能(除非通过该SPU访问并且经过了SPU的准许)。参看图9,RAM 2614可以是SPU 500中RAM 534的一部分,不过,它不一定非要包含在安放了SPU其余部分的同一集成电路或其它封装中。
便携式设备2600 RAM 534可以包含(举例来说)标识信息,用来唯一地标识便携式设备的每个实例。该信息可以用在(例如作为密钥或口令信息的至少一部分)鉴别、验证、解密、以及/或者加密过程中。
在一个实施例中,便携式设备2600可以包含能够执行VDE电子设备600基本上所有功能的机制。于是,(举例来说)便携式设备2600可以包含存贮和使用许可、方法、密钥、程序和/或其它信息的机制,并且可以作为一个“独立”VDE节点运行。
在另一个实施例中,一旦将便携式设备2600与另外的外部电子设备600耦合,该便携式设备2600便可以执行较佳实施例VDE的功能。某些信息—如数据库管理许可、方法、密钥和/或其它重要信息(例如其它VDE程序的至少一部分管理信息、用户接口信息、分析信息等等)—可以(举例来说,以记录的形式)存放在外部VDE电子设备600中,该外部VDE电子设备600可以与便携式设备2600共享信息。
防破坏便携式设备2600一种可能的“独立”配置中包含一个防破坏包装(机壳2602),该包装中含有一个或多个处理器(500、2616)和/或其它计算设备和/或其它控制逻辑,同时还包括随机访问存贮器2614。处理器500、2616可以完全地(或至少部分地)在便携式设备2600中执行许可和方法。便携式设备2600可以有能力在将信息传送出机壳2602之前首先加密信息,以及/或者在从机壳之外接收到信息之后,将收到信息解密。这种类型的便携式设备2600还可以在所述防破坏便携式机壳2602的非易失性存贮器中安全地保存至少一部分许可、方法和/或密钥信息。
另外一种类型的便携式设备2600可以从其外部的一个本地VDE电子设备600中获取许可和/或方法和/或密钥,以控制、限制、或管理用户对受VDE保护的对象的使用。这种便携式设备2600可以包含在另一个电子设备600中,可以由该电子设备600所容纳,可以安装在该电子设备600之中、也可以直接连接到该电子设备600。
便携式设备2600的一个“最小”配置的例子可以只在机壳2602中包含SPU 500和电池2612(在这种情况下,图中所示的外部总线接口2606和RAM 2614将集成进SPU框)。在便携式设备2600的其它增强型例子中,可以在机壳2602中包含下面任意或所有可选部件一个或多个CPU 2616(同时带有相关支持部件,如RAM-ROM 2617、I/O控制器(未示出)、等等);一个或多个显示设备2618;一个或多个键盘或其它用户输入按键/控制信息2620;一个或多个可拆卸的/可替换的存贮设备2622;以及一个或多个打印设备2624;在上述增强型的便携式设备2600中,显示器2618、键盘2620、存贮设备2622和打印机2624可以连接到总线2610,也可以通过CPU2616的I/O端口/控制器部分(未示出)与CPU 2616相连。显示器2618可用以显示来自SPU 500、CPU 2616和/或主机2608的信息。键盘2620可用来向SPU 500、CPU 2616和/或主机2608输入信息。打印机2624可用来打印来自任一/所有上述源的信息。可拆卸的/可替换的存贮设备2622可以包含一个存贮器盒或存贮器介质如大容量存贮设备,以提供附加的长期或短期存贮功能。如果需要的话,存贮器2622可以方便地从机壳2602中拆卸下来。
在一个实施例中,便携式设备2600可以具有“智能卡”的形状要素(尽管“智能卡”形状要素有某些优点,但机壳2602的形状要素既可以与“常用”智能卡的相同,也可以不同)。作为另一种选择,这种便携式电子设备2600可以(举例来说)被封装在一个PCMCIA卡配置(或类似配置)中,目前,PCMCIA卡正十分普及地用于个人计算机中,而且有人预言PCMCIA卡将在桌上型计算机设备和个人数字助理中广泛使用。便携式电子设备机壳2602一种较为有利的形状要素可以是(举例来说)类型1、2或3的PCMCIA卡(或其它派生类型),这些类型PCMCIA的卡的尺寸有信用卡那么大或稍大。这种形状要素是便于携带,并且可以插入到多种类型的计算机和消费者设备中,也可以在诸如零售机构和银行等商业机构中的插孔中使用,还可以用在公共通信处所,如电话亭或其它电信亭中。
机壳2602可以插入到由主机2608提供的端口、插槽或其它插孔,也可以从中取出,这样是为了物理地(或操作地)连接到计算机或其它电子设备。可以配置便携式设备连接器2604以便使拆卸更加方便,这样,设备2600可以移动到位于另一地点的另一个计算机或其它电子设备,从而与另外这台设备进行物理的连接、或进行其它操作连接。
便携式电子设备2600可以为用户提供了有用的和相对简单的手段,使用户可以在他们的(兼容的)各种电子设备600之间移动许可和方法,这些电子设备可以是笔记本计算机、桌上型计算机和办公室计算机。便携式电子设备2600还可以(举例来说)使一个用户在去隔壁邻居家串门的时候让邻居观看该消费者已经获得了观看许可的一个电影,或者也许让邻居收听存放在大容量光盘中的曲目,而该消费者已经获得了对该光盘无限次放音的许可。
便携式电子设备2600还可以充当金融交易或其它交易中的“智能卡”,因此用户可以将它用于其它多种应用中,例如用于商业应用中。便携式电子设备2600可以(举例来说)携带用于授权(还可能记录)商业处理和服务的许可和/或方法信息。
在诸如银行和信用卡公司通常执行的财务交易中使用较佳实施例VDE便携式设备2600的一个优点在于,VDE使得财务票据交换所(如VISA,MasterCard或American Express)显著地降低了其操作成本。票据交换所降低成本的原因在于通过使用诸如便携式设备2600之类的VDE电子设备600,计量和预算管理将发生在用户的站点本地,这就可以减轻票据交换所的负担,使之不必每一个交易都参与。与目前的要求相反,票据交换所将可以执行它们的功能,即定期地更新其记录(如每月一次)。在某些情况下将出现审核和/或预算的“累计”,这些情况可以是在为传送审核和/或预算信息而启动的某个连接过程中;在周期性出现的或按照相对周期性时间间隔出现的连接过程中;在更新、购买信用的过程中或在便携式设备2600的其它交易过程中。
票据交换所VDE数字化分发交易将只需要对中央服务进行不定期的授权和/或审核或其它管理性“累计”处理,而不是在每次会话期间都进行代价昂贵得多的连接。由于不再需要维护信用卡购买过程的“书面跟踪”(用以记录授权过程以及送交信用卡卡片的过程),票据交换所的运行成本将实际大为降低(同时这也将潜在地降低用户的开销),原因在于这种方式降低了通信成本,减少了支持信息并发处理的设施,降低了交易处理成本中纸张处理方面的成本。使用便携式设备2600,可以充分发挥利用每个VDE电子设备600计算能力的分布式处理,以加强信用管理。上述在信用成本和处理方面的优越之处也可适用于非智能卡和非便携式型VDE电子设备600。
由于VDE 100可以配置成高度安全的商业处理环境,而且由于VDE提供的鉴别进程使用了数字签名处理,而这种数字签名提供了等同于书面文件和手写签名的法律有效性,所以便携式设备2600就不再需要维护书面的跟踪,即便对于代价更高的交易也是如此。由于在VDE100中设置了可审核的计帐和控制机制,并且对这些机制自动化,因而可以用这些机制替代那些针对VISA、MasterCard、AMEX以及银行借贷帐户而制定的、用来数字化地分发其它产品和服务的传统电子接口,而且这些机制可以为上述票据交换所节约实际运行开销。
如果需要的话,便携式设备2600可以为消费者维护便携式电子历史记录。举例来说,可以将该便携式电子历史记录移动到放置于或可操作地连接于计算机或其它消费者主机设备2608的电子“站台”(dock)或其它插孔。主机设备2608可以是(举例来说)一个电子组织器,它带有至少部分地类似微计算机的控制逻辑,并可以按照有组织的方式存贮信息,例如按照税务和/或其它交易类型(如使用或活动的类型)进行信息存贮。通过这种安排,消费者不再需要维护收据,也不需要手工地跟踪交易,相反,他可以维护电子的、高度安全的交易审核跟踪和交易说明。交易说明可以(举例来说)安全地包含用户的数字签名,并可选地包含服务提供者或商品提供者的数字签名。
当便携式设备2600被连接到诸如个人计算机或其它电子设备(如电子组织器)之类的主机2608时,便携式设备2600可以向该主机传送中间的审核信息。在一个实施例中,上述信息可以被直接地或间接地读入计算机或电子组织器的财金和/或税务管理程序(例如Quicken或Microsoft Money和/或Turbo Tax和/或Andrew Tobias的ManagingYour Money)中。这种自动化收据管理对消费者来说将是一个巨大的福音,因为收据的管理和维护既困难又费时,收据经常被丢失或遗忘,而且信用和计帐中的细节经常会出现完全不足以计帐和偿付目的的现象,其原因是信用卡计帐通常不提供有关被购买商品或重要交易参数的足够数据。
在一个实施例中,便携式设备2600可以支持与可带有VDE电子设备600的零售终端或与零售商的或第三方供应者的VDE电子设备600进行安全的双向通信(安全的通信在本例中即指加密和/或经鉴别的通信)。在(举例来说)各个参与者的安全VDE子系统之间所发生的上述安全双向通信过程中,便携式设备2600VDE安全子系统可以向零售终端VDE安全子系统提供鉴别处理和相应的信用卡或借贷卡信息。在同一或不同通信会话期间,零售终端可以采用类似方式向便携式设备2600VDE安全子系统安全地传回有关零售交易的详情(如购买的商品、价格、零售机构的数字签名、零售终端的标识、税务相关信息、等等)。
例如,可以在零售机构终端或其它商业机构终端中安装或有效地连接一个主机2608插孔,该插孔用来接插和/或连接便携式设备2600。该主机终端2608既可以由一个商业机构雇员来操作,也可以由便携式设备2600持有者来操作。它可以用来接收由特定键盘和/或声音输入的特定信息,如请谁去吃晚饭、为何购买某件东西、或者信息应该归属的类别。然后,信息可以自动地接受“语法分析”,并转送至便携式设备2600中经过安全维护的相应数据库管理记录中。所述“语法分析”和转送过程将受VDE安全子系统处理的安全控制,并且可以基于用户输入的类别信息、和/或基于机构的类型、和/或基于消费信息(或其它使用)的类型(类别)而进行。类别信息可以由零售机构提供,为此,(举例来说)零售机构可以将电子类别信息(举例来说)作为电子收据信息的一部分安全地传递出来,或者它也可以使用打印机2624打印一份硬拷贝收据。这一分类进程可以发生在便携式设备2600中,或者也可以由零售机构执行,并由零售机构定期“累积”然后传送给便携式设备2600持有者。
零售、票据交换所或其它商业组织可以通过安全地向设备2600传送的方式来维护和使用一个或多个通用交易类别(例如,由政府税务条款规定的交易类别),这些通用交易类别可以用来实现将信息语法分析为若干记录这一过程的自动化,以及/或者用来接受数据库信息“累积”;并且/或者它们可用于便携式设备2600或一个或多个相关VDE节点中。在这些例子中,主机2608可以(举例来说)含有一个辅助终端,它也可以含有或被直接安装进一个商业机构现金出纳机或其它零售交易设备。该辅助终端可以由菜单和/或图标驱动,并且支持用户对类别进行十分容易的选择。它还可以根据交易类型而提供若干模板,这些模板可以引导用户指定有用的或所需的交易特定信息(例如,某个商务晚餐的意图、以及/或者参加该晚餐的人员)。例如,用户可以选择了一个商务图标,然后在旅行、销售、进餐、管理、或购买图标中选择(举例来说),之后他可以输入特别具体的信息和/或关键字,或其它代码,该输入可能导致交易细节被下载到便携式设备2600中。这些信息也可以由商业机构存放,而且也可以被传送到相应的政府和/或商务组织,以便这些组织对报告来的交易进行确认(VDE的审核、通信、鉴别和确认所具备的高度安全性应该足够可信,以便不需要维护并行审核历史,但是至少在一段有限的时间内需要支持和保持并行维护,这是为了在便携式设备2600和/或与VDE安装设备相关联的一个或多个设备2600出现信息丢失或“失效”的情况下能够提供备份信息,其中,与VDE安装设备相关联的一个或多个设备2600使用VDE安装设备进行历史和/或信息记录维护)。例如,如果一个零售终端维护了涉及设备2600的必要交易信息,它可以将这种信息传送给票据交换所以便存档(以及/或者执行其它操作),它也可以定期地(例如在交易日结束的时候)采用(举例来说)VDE信息内容容器对象的形式安全地将上述信息发送给票据交换所或票据交换所代理。可以维护上述交易历史信息(以及所需的任何VDE相关状态信息,如可用的信用),并且在需要的时候可以根据该交易历史信息重新创建便携式设备2600中的信息,以允许向设备2600的用户提供替换设备,或者允许在数据中适当地复位内部信息,而这种替换和/或复位提供所有必要的交易和状态信息。
在零售机构中,辅助终端主机2608的形式可能是提供给用户的一个便携式设备,例如在进餐之后提供给用户。用户可以将其便携式设备2600插进一个诸如PCMCIA插槽之类的智能卡插孔中,然后他可以输入其它任何信息,这些信息可以正确地地描述了本次交易,同时还满足了电子设备600识别过程所提出的任何要求。如果可用的信用足够的话,那么本次交易将得到准许,接着,交易相关信息将从辅助终端传回并直接送至便携式设备2600中。对于信用使用和记录管理过程来说,上述过程将是一个非常方便的模式。
便携式设备辅助终端可以是“在线的”,即通过使用蜂窝通信、卫星、射频或其它通信手段将信息电子地传送回商业机构和/或第三方信息收集点。商业机构在收集点接受到某些识别信息时将执行一次检查,在检查之后,辅助终端可以根据其它信息向商业机构发回消息,表明是否接受便携式设备2600,所述的其它信息包括信用记录是否坏的,或使用的是否是窃得的便携式设备2600。这种便携辅助终端在其它商业机构中也十分有用,例如用于加油站、租用汽车返还区、街道和体育馆自动售货机、酒吧、以及其它商业机构,在这些场所,由于允许职员和其它人员当场完成交易,而不是在传统的现金出纳机所在地完成,所以效率将大大提高。
如上所述,便携式设备2600可以不时地与诸如VDE管理员之类的其它电子设备600通信。在便携式设备2600使用会话期间发生的通信可能源于内部存放的某些参数,这些参数要求在便携式设备使用的当前会话(或下一个会话,或其它会话)期间应该进行通信。电子设备600可以携带有关实际日期、或时间窗口、或时间段的信息,这些信息将在适当的时候请求进行通信(例如,也许在某些交易或其它进程之前、之中或紧接之后,这些交易或进程是用户为本次会话所一直预期的)。这种通信可以迅速完成,并且可以是安全的VDE双向通信,在该通信过程中,信息被传送到一个中央信息处理器。可以将某些其它信息传递给便携式设备2600和/或该便携式设备2600所连接的计算机或其它电子设备。上述被传送的其它信息可以允许或禁止一个预期的进程继续执行下去,以及/或者使便携式设备2600的至少一部分失效或生效。传送到便携式设备2600的信息可以包含对许可和方法的一个或多个修改,例如复位或增加一个或多个预算,增加或撤消某些许可,等等。
由便携式设备2600携带的许可和/或方法(即预算)可以已经结合另一个静止VDE电子设备600或其它便携式VDE电子设备600的“留存数据”(encumbering)而分配给该便携式设备2600了。在一个例子中,便携式设备2600持有者或其它VDE电子设备600和/或电子设备600用户可以充当由另一方执行的交易中财务部分的“担保人”。持有者的便携式设备2600将记录一个“留存数据”,该“留存数据”将在与票据交换所的一次安全通信中被票据交换所和/或某些其它财务服务机构记录并维护,直到上述另一方的所有或部分债务已被偿清或得到圆满解决为止。作为一种选择或补充,也可以在便携式设备2600中维护上述“留存数据”,它代表了担保人的可能义务。可以采用某种公式将上述留存数据计入用来确定担保人可用信用的确定中去。信用的转移、接受、以及/或者记录的管理、以及相关进程均可以由本发明各方面所提供的多种安全措施进行安全地维护。便携式设备2600可以是对应于一个或多个VDE对象300的所述许可和/或方法的唯一存放地点,它也可以携带对应于所述对象的预算信息,而该预算信息独立于在另一个非便携式VDE电子设备600中出现的所述对象的预算。这种方式允许预算是可携带的(举例来说),不需要“留存数据”和预算协调。
便携式VDE电子设备2600可以携带(上述其它VDE电子设备600也可以携带)某些信息,这些信息描述了信用历史细节、授权概要和使用历史信息(一定程度的交易历史或相关概要信息的审核,例如对特定类型/类别信息的使用),这些信息允许在不花代价地或代价较少的前提下重新使用某些受VDE保护信息。这种使用情况或使用代价可以至少部分地依赖于先前使用受VDE保护信息中一个或多个对象、或对象类、或使用量度的情况。
便携式设备2600还可以带有可至少部分地用于识别用途的某些信息。可以按照某种顺序(例如,基于伪随机数算法的某种模式)使用这些信息,以校验便携式设备2600携带者的身份。这种信息可以包含(举例来说)某人自己的、或妻子的和/或其它亲戚的婚前姓氏、或者某人自己的和/或其它人的社会安全号码、出生日期、出生医院、以及其它识别信息。另外或者作为另一种可选方案,它还可以提供或带有一个或多个口令或用来标识或校验/鉴别个人身份的其它信息,诸如声音复制信息和视网膜扫描信息。例如便携式设备2600可以用作一个智能卡,它带有各种用于鉴别和预算的许可和/或方法信息。这些信息可以按照安全数据库610的组织方式安全地存放在便携式设备2600之中。当用户试图购买或许可一个电子产品时,或使用该“智能卡”来授权一项处理时,便携式设备2600可以询问用户有关识别信息,或启动一个识别进程,该进程将用到扫描的或输入的信息(例如用户指纹、视网膜或声音分析技术,这些技术可以(举例来说)将所提供的特征与安全地存放在便携式设备2600中信息进行映射和/或匹配)。便携式设备2600可以在不同时间进行不同的问询(和/或提出大量问询或请求,以期扫描或输入识别信息),这样可以防止某人在已经知道了上述一次或多次身份“测试”的正确答案之后便可以成功地使用便携式设备2600。
便携式设备2600还可以将电子货币或信用转移到另一个便携式设备2600中,或转移到另一个人的帐户中,这可以通过(举例来说)使用在安全VDE子系统之间针对相关信息内容的安全VDE通信机制来实现。如果某个银行具备将信用和/或货币转移到另一个帐户的能力,那么通过与该银行进行远程通信,或在该银行内办理相应业务,就可以完成上述转移过程。也可以在同一便携式设备2600站台中使用两张卡片以便进行上述转移。例如,信用交易工作站中可以带有双PCMCIA插槽和相应的信用和/或货币转移应用软件,该软件支持安全地从一个便携式设备2600中借款,而向另一个便携式设备2600“贷款”(即在将一定的信用和/或货币贷放到一台设备中的同时,将会从另一设备中借出相应款项)。一个电子设备600(举例来说)可以为另一个用户提供经鉴别的信用。使用双“智能卡”便携式设备2600可以允许用户提供“信用”“智能卡”,使之经历某个交易过程,而在该过程中,所述用户首先提供适当的标识(例如,一个口令),然后就可以识别用来标识另一个“智能卡”便携式设备2600的一个“公开密钥”。上述的另一个“智能卡”便携式设备2600可以运行接受进程,并提供数字签名的正确标识(并且,信用和/或货币发送者还可以数字地签准某个交易证明,因而使发送证明书不会遭到否认。另外,该证明还可以与上述信用和/或货币放在一起共同作为VDE容器信息内容)。上述交易可能涉及(举例来说)用户接口交互过程以便约定本次转移的利息和/或其它条款。这可以使用常见交易类型的模板,该模板中针对某些说明了双方协议的参数向信用提供者提出询问。可以针对是否接受上述条款这一问题交互地或整个地询问接受方便携式设备2600的意见。在使用智能卡将电子信用和/或货币转移到另一个智能卡或其它VDE设备的过程中,可以使用本专利申请书所介绍的各种VDE协商技术。
这种VDE电子设备600/便携式设备2600信用转移特性将显著地降低管理某些电子信用和/或货币事务所带来的开销,因为这些设备扩展了对信用控制和信用可用性的计算机处理,从而大大地自动化了上述事务处理,所述的计算机处理以信用卡作为开端并扩展到了借帐卡。信用扩展和/或货币转移的自动化,以及上述的相关分布处理所具有的优越性,包括在每次交易中不再需要任何集中化处理和远程通信,真正地使信用和/或货币对于许多消费者和其它电子货币和/或信用用户来说成为了一种有效的、可信的、便携的日用品。
在一个实施例中,便携式设备2600或其它VDE电子设备600可以使许多税收处理工作自动化。电子设备600可以高度安全地记录财务交易,识别交易的特征,确定所需的销售税或相关的政府交易税,从用户的可用信用中扣掉税款,并按照某个时间间隔(如每月一次)安全地将该税款信息直接传送到一个或多个政府代理处,以及/或者将该税款信息安全地传送到(举例来说)某个票据交换所,然后该票据交换所再将一个或多个安全的、加密的信息(或由票据交换所计算出来的非安全数据信息,或计算得出的信息)审核包(如该包可以是VDE信息内容容器,并使用了安全的VDE通信技术)传送到一个或多个相应的、参与该业务的政府代理处。VDE 100的整体完整性和安全性具有一致性和集中化的特征,它可以保证(从一个或多个电子商业事务中得到的)税务相关信息的电子化报告过程是有效的和全面的。它还可以在销售税征收划拨过程中充当相关信息的确认源(例如,假定所述资金由一个商业操作直接划拨到政府,并且/或者其划拨方式保证了被报告的税务相关信息在VDE税务信息处理通道中无法被其它团体破坏)。政府代理处可以随机地选择交易,或者可以选择对应于给定商业操作的被报告交易之中的某些部分或所有部分。这可以用来确保该商业操作确实正在向政府支付赋税所需的所有适当征收资金,还可以确保对最终用户征收了适当交易税款(包括从银行帐户上收到利息、接受投资、接受礼物,等等)。
便携式设备2600的财务和税务处理可以包含所述的模板机制。一方面,如果至少部分地采用便携式设备2600对电子信用和/或货币事务进行管理,那么这种管理的效能将特别引人注目;另一方面,信用和/或货币转移以及类似特性还可适用于那些连接到或安装进计算机或其它电子设备的非便携式VDE电子设备600。
用户通告异常接口(“弹出式”)686如上所述,用户修改异常接口686可以是一套用户接口程序,用来处理常用VDE功能。这些应用可以采用VDE模板的形式,其设计基于了涉及一些重要选项的某些假设,这些重要选项特别对应于某些VDE用户模型以及在某些事件发生后必须报告出来的重要消息。“弹出式”用户接口686的一个主要功能是提供一个简单的、一致的用户接口,(举例来说)通过该接口向用户报告计量事件和异常(例如这种异常可能是某些特殊情况,在该情况下,自动处理过程或者不可能进行,或者有争议地不合乎需要的),允许用户配置其电子设备600某些方面的操作,以及在适当的时候允许用户对是否执行某些交易处理进行交互地控制。如果一个对象包含了异常处理方法,那么该方法对“弹出式”用户接口686如何处理特定类型的异常作出控制。
“弹出式”接口686通常支持对非专用于特定对象300的任务进行处理,例如 登录到电子设备600和/或输入VDE相关操作或操作类 为已注册的用户与/或通常针对本设备,考虑到用户的选择配置电子设备600,并自动处理某些类型的异常。
在适当的时候,由用户选择计量器,以便结合某些特定参数使用该计量器,以及 提供与其它电子设备600通信的接口,包括向分发者请求、和/或购买或租用信息内容,向票据交换所请求票据交换所信用和/或预算,以及/或者从其它电子设备接受信息或向其它电子设备发送信息,等等图72A示意了VDE电子设备600常用“登录”功能,该功能可以使用用户接口686。通过输入用户名、帐户名和/或口令可以完成“登录”。如本例所示,“弹出式”用户接口686对话框中提供了一个名为“在启动时登录”的配置选项,该选项如果被选中的话,当用户的电子设备600每次被开机或复位的时候,都将自动地启动VDE登录过程。类似地,“弹出式”用户接口686可以提供称为“在某种类型上登录”的接口选项,当该选项被选中的话,每次打开特定类型的对象或特定信息内容类型的应用时,都将自动启动该登录过程,上述特定类型对象或应用的例子有特定目录中的文件、带有特定扩展名的计算机应用或文件、等等。
图72B示意了在用户发出的某个动作被“截获”时“弹出式”用户接口686对话框的示例,在这种情况下,对话框将提醒用户由该用户动作所引起的花销数量,同时还提醒用户被请求的对象300的有关情况,以及使用该对象需要的花费是多少。在本例中,接口对话框提供了一个按钮,它允许用户请求有关对象的进一步详细信息,包括完整的文本描述、相关文件的列表、以及可能的该对象过去使用情况历史,包括有关使用该对象的剩余权利或相关折扣。
图72B中的CANCEL(取消)按钮2660用来取消被“截获”的用户请求。在本例中CANCEL按钮是该对话的默认按钮,为激活该按钮,可以在用户键盘612上按返回键或回车键、用鼠标揿击该按钮、使用声音命令、或使用其它命令机制。APPROVE(“同意按钮”)允许用户同意上述花销并继续执行下去,该命令必须明确地由鼠标揿击或其它命令过程选中。MORE OPTION(“更多选项”)控制2664将该对话框扩展到更详细的程度,这些详情中具有更多的选项,图72C中示意了一个这样的例子。
图72C是“弹出式”用户接口686呈现给用户的一个二级对话框,当图72B中MORE OPTION按钮2664被用户选中的时候将出现该二级对话框。如图所示,该对话框含有多个按钮,以便提供更多的选项以及执行不同的任务。
在该特定例子中,可以允许用户设置“限制”值,例如会话费用限额(字段2666)、总共交易费用限额(字段2668)、时间限制(分钟)(字段2670)、以及“单位限制”(诸如段落、页等单位的数目)(字段2672)。一旦用户完成选择之后,他可揿击“OKAY”按钮(2764)以确认这些限制的选择,并使之生效。
因此,弹出式用户接口可以用来指定用户的选择,例如,在任一会话中、或在一个时间段中或到某个特定时刻的设置对象的信息内容使用预算和/或其它方面的限制。
对话框还可以用来选择对象相关使用选项,例如选择用于一个或多个对象的计量器和预算。为将选出的选项施加到类型相关(即类别)的对象,可以将指令与一个或多个标识出的参数建立关联,而这些参数则涉及到所需的一个或多个类型。用户指定的配置信息可以设置在各种情况下都使用的默认值;另外,由于在某些情况下用户对一个对象使用可以被“弹出式”接口686对话框所中断,而用户指定的配置信息则可以用来限制出现这些情况的数目和类型。例如,用户可以指定对于受VDE保护的信息内容的用户请求应该被自动执行而不要(由于出现异常动作)被中断,前提条件是对信息的所需处理花费不会超过25.00美元,并且整个目前会话(和/或当前日、和/或当前周、等等)的总费用不超过200.00美元,并且全部未结的和未支付的使用费尚未超过2500.00美元。
弹出式用户接口对话框还可以用来通知用户有关重要的情况和时间。例如,接口686可以用来 提醒用户向票据交换所发送审核信息 通知用户某个预算值较低而需要补充 提醒用户备份安全数据库610,以及 通知用户有关PERC的过期或其它日期/时间事件其它“弹出式”用户接口686的重要功能还包括某些对话框,这些对话框允许用户灵活地浏览可以得到使用许可或可以购买的对象或产品库,这些对象或产品或者是存贮在本地的受VDE保护对象,或者来自于一个或多个不同的、位于远程的信息内容提供者。有多种时机可以提供这种功能,例如当用户的计算机连接到一个远程分发者的或票据交换所的电子设备600时,或者在进行了某种选择(例如选择了一个产品、一个资源位置、一类对象或资源等)之后与一个远程资源建立了电子连接时。上述浏览接口可以支持一旦用户选择了某个项就自动建立上述电子连接,或者可以由用户明确地启动上述连接本身。图72D给出了这种“浏览”对话框的例子。
智能对象VDE 100将其控制功能和特性延伸到了“智能代理”。通常,“智能代理”可以充当一个使者,它允许调度它的进程得到该进程指定的结果。能够在调度进程不在的时候执行处理的智能代理有一个特别有用的用途,即允许其调度进程通过它们的代理访问远程电子设备中的资源。在这种情况下,调度进程可以创建一个代理(如某个计算机程序和/或与某个计算机程序相关联控制程序),在创建过程中指定了需要完成的特定任务,然后将该代理调度到远程系统中。一旦到达该远程系统,“代理”可以使用远程系统的资源执行分配给它的任务。这种方式可以使得调度进程实际上将自己的功能延伸到了它未在其中的远程系统。
在这种方式下使用“代理”可以提高灵活性。该调度进程可以通过其代理指定所需执行的特定任务,该任务在远程系统中可能不存在或不可用。使用这种代理还增加了可信度;调度进程可以只需“信任”其代理,而不是信任整个的远程系统。代理还具有其它优点。
软件代理要求具有有效的、安全的和有用的高度控制和责任。计算机病毒形式的代理已经在世界范围内造成了破坏性影响。因此,允许代理访问的系统必须有能力控制该代理,或必须有能力防止该代理毁坏其重要资源。另外,允许代理访问的系统应该足够地信任该代理,并且/或者提供一种机制以掌握应对该代理行为负责的真正代理调度者。类似地,调度进程应该有能力充分地限制和/或控制其调度的代理的权限,否则,它将可能要为该代理的不可预料行为负责(例如调度进程提供给代理的指令可能不准确,在代理执行这些指令的过程中,它可能会积累出一个高额的帐单)。
在使用软件代理过程中出现的上述严重问题以前未能得到充分解决。VDE 100的开放、灵活的控制结构则提供了对软件代理(如代理对象)的必要控制和责任,从而解决了上述问题。例如,VDE 100确实地控制对信息内容的访问和使用,提供对被使用信息内容付款的担保,并加强对被访问信息内容的预算限制。这些控制功能较好地适于调度代理的进程以及由被调度代理所访问的资源两者对被调度代理的行为进行控制。
本发明较佳实施例的一个方面提供了含有一个代理的“智能对象”。通常,“智能对象”可以是一个VDE对象300,它含有某些类型的软件程序(“代理”),这些软件程序在VDE电子设备600中结合VDE控制信息一起使用。基本的“智能对象”可以包含一个VDE对象300,该VDE对象300(举例来说)则(物理地和/或虚拟地)含有一个软件代理,以及与该软件代理相关联的至少一个规则和/或控制,用来控制该代理的操作尽管上述基本结构已经足够可以定义“智能对象”,图73示意了若干容器和控制信息的组合,它提供了一个特别优越的智能对象结构示例,该智能对象用于安全地管理和控制软件代理的操作。
如图73所示,智能对象3000可以由容器300构成,在该容器300中嵌入了一个或多个另外的容器(300z,300y,等)。容器300还可以包含规则和控制信息以控制对这些嵌入容器300z,300y等的访问和使用。嵌入到容器300中的容器300z使对象3000成为了一个“智能对象”。它含有一个由VDE 100管理和控制的“代理”。
与容器300z相关联的规则和控制信息806f对某些特定情况进行控制,在这些情况中,代理将被发送到远程VDE站点并执行,这些信息中包含(举例来说)基于执行所需费用而得出的任何有关执行的限制。可以在容器300z中完整地规定规则和控制信息,并且/或者可以将规则和控制信息作为容器300的一部分交付、作为另一容器(该容器或者位于容器300之中,或者是一个可独立交付的容器)的一部分交付,并且/或者该规则和控制信息已经存在于远程VDE站点之中。
第二个容器300y则是可选的,其内容描述了存放在容器300z中的代理所要执行的地点。容器300y也可以含有规则和控制信息806e,这些规则和控制信息描述了对容器300y中的信息内容进行使用或改变的方式。该规则和控制信息806e和/或容器300y中还包含的其它规则300y(1)可以描述搜索和路由选择机制,这些机制可以用来将智能对象3000引导到所希望的远程信息资源中。容器300y可以包含和/或引用规则和控制信息300y(1),规则和控制信息300y(1)规定了如何支付对搜索和路由选择信息的使用和所做的任何修改。
容器300x是一个可选的信息内容容器,当智能对象3000被调度到远程站点时,容器300x初始为“空”。它含有规则和控制信息300(1),当存放在容器300z中的代理经过执行检索到信息内容后,规则和控制信息300(1)用来控制对该信息内容的存放。容器300x还可以含有有关存放在检索容器中的信息内容值的限制,以便限制检索到的信息内容数量。
容器300中的其它容器可以包括若干管理对象,这些管理对象含有审核和计帐跟踪,描述了存放在容器300z中的代理的行为,以及由于在远程VDE节点中执行代理所引起的任何费用。智能对象3000的实际结构取决于受控的代理类型、代理执行所需的资源、以及被检索的信息类型。
图73所示的智能对象3000可以用来在VDE 100中对代理的操作进行控制和管理。下面将对图74所示的示例智能对象交易进行详细解释,该例子将是一个有帮助的同时又是一个非限制的示意。在该特定例子中,假设用户将创建一个智能对象3000,该智能对象3000利用“特别快速和高效”的软件代理执行图书馆资料搜索,以便搜索出描述了有关所感兴趣的主题(如“萤火虫”)的书籍。搜索机设计成把书籍的清单返回给用户。在本例中,搜索机为查找到相应书籍所需的花费不超过10.00美元,为访问图书馆或通过通信到达图书馆所需的花费不超过3.00美元,所检索到的信息收费则不超过15.00美元。有关搜索和使用的所有信息都将返回给该用户,而该用户将不允许涉及该用户或代理的任何信息被发布给第三方。
在本例中,调度VDE电子设备3010构成了如图73所示的智能对象3000。806a中的规则集合则规定为一个控制集合,它包含下列元素1.一个smart_agent_execution(智能代理执行)事件,该事件规定了该智能对象存放在嵌入容器300z中;它还带有某些规则,以控制由容器300z指定的智能对象的执行;2.一个smart_agent_use(智能代理使用)事件,该事件规定了智能代理将使用存放在容器300中的信息和参数进行操作;3.一个routing_use(路由使用)事件,该事件规定了信息路由选择信息存放在容器300y中;它还含有若干规则,用来对存放在上述容器中的上述信息进行控制;4.一个information_write(信息写)事件,该事件规定了根据所写信息的类型(路由选择信息、检索得到的信息、或管理信息)将这些信息存放在容器300y、300x、或300w中,并且这些容器具有独立的规则以控制信息如何写入它们之中。
控制集合806b中的规则集合包含了若干规则,这些规则规定了智能对象3000所需的权利。具体地说,该规则集合表明上述软件代理需要1.在远程VDE站点中使用“代理执行”服务的权利;由容器300z携带针对上述权利的特定计帐和收费信息;2.在远程VDE站点中使用“软件描述清单”服务的权利;由容器300y携带针对上述权利的特定计帐和收费信息3.在远程VDE站点中使用“信息定位器服务”的权利;4.无须缴费(发布信息则需收费,并且将由VISA预算进行付帐)便可以使信息返回给用户的权利;5.一个特定权利,该权利允许返回所有审核信息而只有发送者才可以读这些信息。
控制集合806b中的规则集合规定了容器300w规定了如何处理与该容器的使用相关联的所有事件;控制集合806d中的规则集合规定了容器300x规定了如何处理与该容器的使用相关联的所有事件;控制集合806e中的规则集合规定了容器300y规定了如何处理与该容器的使用相关联的所有事件;控制集合806f中的规则集合规定了容器300z规定了如何处理与该容器的使用相关联的所有事件。
按照规定,容器300z包含“特别快速和高效”代理的信息内容,它与下面的规则集合相关联1.一个使用事件,该事件指定了一个计量器和VISA预算,该预算限制执行的费用不超过10.00美元,费用由所有者的VISA卡支付。需要提供使用的审核,并且该审核要在对象300w所指定控制信息的控制下存放在对象300w中。
在指定了容器300z及其规则集合之后,这些信息将被创建并嵌入在智能对象容器300中。
按照规定,容器300y是一个含有两类信息内容的信息内容对象。信息内容类型A是路由选择信息并且具有读/写特性。与信息内容类型A相关联的规则集合规定了1.一个使用事件,该事件规定了对该信息内容的发布不执行任何操作,其效果是对该信息内容的使用不收费;2.一个写事件,该事件指定了一个计量器和VISA预算,该预算限制写操作的费用不超过3.00美元。写操作所用的计帐方法未予规定,该方法将被使用该规则的控制方法规定。
3.需要使用的审核,并且该审核要在对象300w所指定控制信息的控制下存放在对象300w中。
信息内容类型B是软件代理所使用的信息,它为该代理指定了参数。该信息内容被规定为串“萤火虫”(“fire fly”或“fire flies”)。信息内容类型B与下面的规则集合相关联1.一个使用事件,该事件规定了该使用只能由软件代理或路由选择代理执行。对于该信息,软件代理具有只读许可,而路由选择信息具有读/写访问。对于该信息的使用不收取费用,但是要使用两个计量器进行计量,一个计量器用于计量读操作,另一个计量写操作,它们将跟踪各个处理步骤对该信息的使用。
2.需要使用的审核,并且该审核要在对象300w所指定控制信息的控制下存放在对象300w中。
在指定了容器300y及其规则集合之后,这些信息将被创建并嵌入到智能对象容器300中。
按照规定,容器300x是一个信息内容对象,该对象不含有任何信息内容。它带有的控制集合包含下面的规则1.一个write_without_billing(无须计帐的写操作)事件,该事件指定了一个计量器和一个通用预算,该预算限制写操作的费用不超过15.00美元。
2.需要使用的审核,并且该审核要在对象300w所指定控制信息的控制下存放在对象300w中。
3.一个空的使用控制集合,该集合可以被该信息的所有者利用预定义的方法(方法选项)填充。
在指定了容器300x及其规则集合之后,这些信息将被创建并嵌入到智能对象容器300中。
按照规定,容器300w是一个空的管理对象,它带有的控制集合包含下面的规则1.一个使用事件,该事件规定包含在该管理对象中的信息只能被发布给智能对象容器300的创建者。
2.容器300w中的上述管理信息内容不附加其它规则。在指定了容器300w及其规则集合之后,这些信息将被创建并嵌入到智能对象容器300中。
此时,该智能对象已经创建好,并准备就绪可以被调度到远程站点。该智能对象通过路径3014(如使用电子邮件或其它传送机制)被发送到了含有信息定位器的远程站点。该智能对象在远程站点3012为使用“项定位器服务”而注册。容器中有关“项定位器服务”的控制集合被选中,并且该控制集合所包含的规则在远程站点3012被激活。然后,远程站点3012在规则集合806f和300y(1)的控制下读取容器300y的信息内容,并允许按照这些规则将一个位置信息的列表写入容器300y。项定位器服务将含有三个条目的列表写入了该智能对象,然后对该智能对象“取消注册”(此时该智能对象包含了位置信息),并将该智能对象通过通路3018发送到站点3016。站点3018由写入到智能对象中的列表所指定。在本例中,用户可以已经指定电子邮件作为传送机制,并且将可能含有所需信息的远程站点列表存放在一起,作为一个转发列表。
智能对象3000一旦抵达第二远程站点3016后,将在该站点处注册。站点3016提供代理执行以及与VDE兼容的软件描述列表服务,作为提供给智能对象的一项服务。它将这些服务对外公布,并规定为启动代理,它将收费10.00美元,而对于返回的所有信息,其收费标准为每条信息20美元。注册进程将公布的服务信息与存放在上述对象中规则进行对比,并确定不存在可接受的重叠。对所有这些动作的审核信息都被写入管理对象300w中。然后该注册进程失败(该对象未被注册),站点3016通过通路3022将该智能对象转发给列表中的下一VDE站点3020。
智能对象3000一旦抵达第三远程站点3020后,将在该站点处注册。站点3020提供代理执行以及与VDE兼容的软件描述列表服务,作为提供给智能对象的一项服务。它将这些服务对外公布,并规定为启动代理,它将收费1.00美元,而对于返回的所有信息,其收费标准为每条信息0.50美元。注册过程将公布的服务信息与存放在上述对象中规则进行对比,并确定存在可接受的重叠。该注册过程创建一个URT,该URT规定了协商同意的控制信息。该URT与其它控制信息一起使用,以便在VDE控制下执行上述软件代理。
该软件代理开始执行,并从容器300y中读取其参数。然后,它开始搜索数据库,并在该数据库中获得了253次“命中”。命中清单被写入容器300x,一起写入的还有一个完整控制集合,该控制集合规定了每个项的粒度,并规定每一个项收费0.50美元。一旦完成搜索,使用该服务的预算被增加1.00美元,以反映出对该服务的使用费用。对所有上述操作的审核信息被写入管理对象300w中。
远程站点3020通过通路3024将目前的“饱和”智能对象3000传送回VDE节点3010上的原始发送者(用户)。抵达以后,智能对象3000被注册,数据库记录可以从中得到。此时,由容器300x规定的控制信息是两种控制信息的混合,一种是原始的控制信息;一种控制信息则由上述服务指定,它与信息的远程的释放相关。然后,该用户从智能对象3000中抽取出20个记录,在抽取记录的同时,其VISA预算被收费10.00美元。
在上述智能代理VDE示例中,本文描述了智能对象3000及其组成容器的一种特定组织。也可以创建VDE及智能对象相关控制信息和参数的其它组织形式,并将之应用于上例所述对象3000所适用的相同用途。
协商和电子合同电子合同是协议的一种电子形式,它包含了权利、限制、以及各方对该协议应承担的义务。在许多情况下,电子协议主要是围绕着对以数字形式提供的信息内容的使用,例如,电子协议可以是一份许可证,用来许可观看数字化分发的电影。不过,电子协议不一定要局限于电子信息内容的存在,或其针对的也不一定是由准备达成协议的一方或多方对电子信息内容的使用事宜。作为最简单的形式,电子协议含有一个权利和以及对该权利的使用进行管理的一个控制。
象传统的协议一样,电子协议可能需要参与各方的协商(由一方或多方提出的条款和条件可以简单地被其它一方或多方接受(依附合同),并且/或者上述其它各方可以有权选择某些上述的条款和条件(同时这些其它各方可以提出其它条款和条件))。在字典中,协商定义为“由于相互达成一致而集合在一起的行为”。较佳实施例提供了电子协商进程,在该进程中,利用针对条款的电子化自动协商可以创建权利及相关控制。协商通常需要对权利及其相关控制的精确说明。PERC和URT结构提供了一种机制,使用这种机制可以产生对权利及其控制的精确电子化表示。因此,VDE提供了用户和制作者可以用来规定其愿望的“词汇表”和机制。多个自动化进程可以对这些愿望进行解释,根据这些愿望,经过适当协商后到达一个共同接受的中间点。所述协商的结果可以在一个结构中简明地描述出来,该结构可以用来控制和强制执行电子协商的结果。由于VDE提供了安全执行空间,而该空间可以保证协商进程在其操作过程中的完整性和保密性,所以VDE对协商进程提供了进一步支持。上述协商进程也可以按照某种特殊方式执行,以防止外部对协商进程的破坏。
通常,协议(特别是协议的电子化描述)应该具备的最后一个特征是它们应该用不可被否认的形式被精确地记录下来。按照传统的做法,上述过程涉及创建一个书面文件(一份合同),该文件描述了权利、限制、以及参与各方对该协议应承担的义务。所有参与各方将阅读该文件然后在上面签名,这样该文件将成为对上述协议的精确表示。电子协议由于其固有的特点开始时可能不用书面表达。在VDE支持下,可以精确地、电子化地描述这种协议,然后对之进行电子化地签名以防被否认。另外,较佳实施例提供了一种机制,以提供人们可读懂的电子合同条款描述。
VDE提供了一种规定控制集合的简明机制,这些控制集合对VDE站点是可判读的。机器可判读的机制通常不是人类可读的。VDE经常代表至少一个人类用户执行协商进程。因此,该协商最好能够以“人类可读的格式”表达。VDE有关对象、方法、和加载模块的数据结构中都准备了空间,以便在这些结构中规定一个或多个DTD。这些DTD可以与上述项保存在一起,也可以单独保存。DTD描述了一个或多个数据元素(MDE、UDE或其它相关数据元素),这些数据元素可以包含对上述条目所具功能的自然语言描述。这些自然语言描述为各项提供了与语言无关的、人类可读的描述。项的集合(例如一个BUDGET方法)可以与自然语言文本相关联,该文本描述了项的集合的功能,并形成了一份经过电子化规定的、具有可强制性的合同。项的集合(一个控制集合)定义了与特定权利相关联的合同。因此,VDE支持电子合同的电子说明、协商以及强制执行,这些电子合同可以被人类理解和遵守。
VDE 100采用下面若干方式支持电子合同的协商和强制执行 它支持对权利和控制信息的简明描述,这样就可以为协商进程提供通用的词汇表和过程 它提供了安全处理环境,协商可以在该环境中执行 它提供了分布式环境,在该环境中,可以安全地分发权利和控制的详细说明 它提供了安全处理环境,在该环境中,可以由协商合同的进程采用电子方式描述和签准所商定的合同,以及 它提供了一种机制,该机制可以安全地强制执行商定了的电子合同。
协商类型协商的一种简单形式是由一方提出要求并形成一份“依附”合同。在该协商过程中,另一方可以选择的选项如果有的话也是很少。该要求的接收方有一个简单的选择他或者接受或者拒绝该要求中的条款和条件(控制信息)。如果他接受上述条件,他就被授予了要接受指定控制信息控制的权利。如果他拒绝上述条件,那么他不被授予上述权利。PERC和URT结构可以根据要求支持协商进程。可以将PERC或来自PERC的控制集合作为一种要求提出,而接收者可以接受或拒绝该要求(如果提供了经过允许的备选方法的话,即可在其中进行选择)。
目前,上述协商类型的一个通用例子是在“收卷许可”(shrink-wrap license)的条款规定下购买软件。许多广泛采用的电子分发方案使用这种协商方式。CompuServe是一种采用这种方式运作的在线服务示例。用户面临的选择十分简单或者支付指定的费用,或者不使用该服务或软件。VDE可以支持这种类型的协商,因为它能够提供描述了权利和控制信息的PERC和URT,同时,它还允许信息内容拥有者提供REGISTER方法,该方法则允许用户从一套预定义的备选方法中进行选择。在这种情况下,REGISTER方法可以包含一个部分,该部分是一个简化了的协商进程。
协商进程的一个更为复杂的形式可以被比喻为“讨价还价”。在该情况下,大多数条款和条件都是固定的,但是还有一个或多个条款(例如价格或付款条款)则不是。对于这些条款,还需要就其选项、限制和元素等方面进行磋商。可以用两方之间的VDE电子协商来决定所需的、允许的、和可选的条款。电子协商的结果可以是一套最终的规则和控制信息,它们规定了已完成的电子合同。一个简单的例子是在上述购买软件的方案中增加购买者选择付款方式(VISA,MasterCard,或American Express)的能力。一个更为复杂的例子是另一种购买信息的方案,在该方案中,所付价钱取决于与使用审核跟踪一道返回的、有关该用户的信息量。在第二个例子中,信息内容的使用权可以与两种控制集合相关联,一种控制集合可以描述信息内容使用的一个固定(“较高”)价格。另一个控制集合则可以描述信息内容使用的一个固定(“较低”)价格,而对信息内容的使用要结合附加控制信息和字段说明,这些字段说明要求收集和返回用户的个人信息。在上述两种情况下,PERC中的可选和允许字段以及控制集合可以描述某些选项,而这些选项可以被选定为协商的一部分。为了执行上述协商,一方可以提出一个控制集合,该控制集合含有由PERC规定的特定字段、控制信息、以及某些限制。另一方可以从提议的控制集合中挑选和接受某些部分、拒绝这些控制集合、或提出可用的替代控制集合。协商进程可以使用PERC中所允许的、所要求的、和可选的规定,以确定最终规则集合的可接受参数范围。一旦达成协议,协商进程将创建一个描述协商结果的新PERC和/或URT。最终的PERC和/或URT将由参与协商的所有协商进程“签准”(如使用数字签名),以便防止以后出现否认该协议的情况。
被协商元素的其它例子有电子现金、定购单、采购证明(礼物证明、优待券)、标书和说明书、预算“回滚”和平衡、货币汇率、股票购买、以及计帐比率。
图75A(由信息内容所有者发送的PERC)、图75B(由用户创建的PERC,用来表示他们的选择和权利)以及图75C(用来控制协商进程的PERC)示意了可以用来支持上述第二个例子的一套PREC。这些PERC的使用可以结合下面所述的任意协商进程和协议。
图75A示意了PERC 3100的一个例子,该PERC 3100可能由信息内容提供者所创建,用来描述他们的权利选项。在本例中,该PERC含有涉及单一USE权利的信息。在本例中,针对该权利提供了两个可选的控制集合3102a,3102b。控制集合3102a允许使用信息内容,而不必传回有关用户的信息;而另一个控制集合3102b则在允许使用信息内容的同时,从用户那里收集“响应卡”类型的信息。控制集合3102a,3102b两者都可以对大多数控制信息使用通用的方法集合。该通用控制信息由CSR 3104和CSO 3106表示。
该PERC 3100中的控制集合3102a描述了一种机制,使用这种机制,用户可以得到信息内容,同时不必向信息内容提供者提供有关该信息内容用户的任何信息。控制集合3102a规定了众所周知的出售控制方法以及必要方法和备选方法的集合。特别地,在本例中,控制集合3102a定义了一个BUDGET方法3108(如VISA、Mastercard或American Express其中之一),并定义了一个BILLING方法3110,BILLING方法3110定义了一项费用(如一次性收费100.00美元)。
该PERC 3100中的控制集合3102b描述了另一种机制,用户可以通过该机制得到信息内容。在本例中,控制集合3102b规定了另一种的出售控制方法以及必要方法和备选方法的集合。该第二种控制集合3102b规定了一个BUDGET方法3112(如VISA、Mastercard或AmericanExpress其中之一)、一个BILLING方法3116、以及一个AUDIT方法,BILLING方法3116规定了一项费用(如较低的一次性收费25.00美元),AUDIT方法规定了一套所需的和必要的字段。上述必要的和所需的字段说明3116可以采用DTD说明的形式,在该字段中列出了字段的名字。
信息内容制作者可以“建议”两个控制集合之一(如控制集合2)而舍弃另外一个。如果是这样的话,在协商过程中可以首先“提供”上述被“建议”的控制集合,并且,如果其参与协商的另一方“拒绝”该“建议”的控制集合时,该“建议的”控制集合可以被撤出,而采用“非建议”的控制集合。
在本例中,上述两个控制集合3102a,3102b可以共享公用的BUDGET方法说明。如果需要的话,可以将BUDGET方法说明放置在CSR3104或CSO 3106控制集合中。当控制集合3102a(使用该控制集合时没有信息返回)被选中时,将会按照PERC 3100的规定装配一个唯一的部件组。特别地,在本例中,该部件组将选择“出售”CONTROL方法3118、100美元固定费用的BILLING方法、以及由CSR 3104和CSO3106规定的其余控制信息。部件组还要求用户选定他所接受的BUDGET方法(例如从VISA、Mastercard或American Express中进行选择)。选择控制集合3102b将会导致装配另一个部件组,该部件组使用了“带响应卡的出售”CONTROL方法3120、BILLING方法3116(例如25美元的固定费用)、以及一个AUDIT方法3114,该AUDIT方法3114需要必要字段DTD 3116中列出的字段。该进程还可以从所需字段DTD3116列出的字段中选择该进程可用的所有字段。其余控制信息由CSR3104和CSO 3106规定。对控制集合3102b的选择过程还强迫用户选定他们所接受的BUDGET方法(例如从VISA、Mastercard或AmericanExpress中进行选择)。
图75B示意了一个控制集合3125的例子,该控制集合3125可以被用户用来在协商过程中指定其愿望和要求。该控制集合带有一个USE权利区段3127,该USE权利区段3127含有了一个聚合的CSR预算说明3129和两个可选控制集合3131a,3131b用来控制信息内容的使用。控制集合3131a需要使用特定的CONTROL方法3133和AUDIT方法3135。指定的AUDIT方法3135由字段列表3137作为参数,这些字段3137可以在审核跟踪中发布。控制集合3131a还指定了一个BILLING方法3139,该方法的花费不能超过某个特定数额(如30.00美元)。在本例中,控制集合3131b描述了特定的CONTROL方法3141,并且可以引用一个BILLING方法3143,如果该备选方法被选中的话,其花费不能超过某个特定数额(如150.00美元)。
图75E示意了电子合同3200一个更高层次的外观,该电子合同作为上述协商进程的“结果”而形成。电子合同3200可以包含多项条款3202和多个数字签名3204。每项条款3202都可以含有一个PERC/URT,诸如前面所述并由图75D示意的项3160。因此,电子合同3200中的每项“条款”3202将对应于一个部件组690,该部件组可以由VDE电子设备600装配和执行。正如普通合同那样,为体现“各方”之间的“协议”需要多少合同条款3202,电子合同3200中就可以含有多少合同条款3202。每项条款3202都可以已经通过电子方式被商定,因此它体现了各方之间所达成“协议”(如某个“折衷”)的一个部分。电子合同3200是“自执行”的,其含义为,它可以由一个机器即一个VDE电子设备600按照字面意思执行,即该VDE电子设备600按照各种电子条款3202的要求装配部件组690。可以结合任意部件组690使用上述的同一VDE机制自动地“强制执行”电子合同3200。例如,假设条款3202(2)对应于一项付帐或BILLING条件或条款,其对应的部件组690在被用户的VDE电子设备600装配的时候,将自动判断是否已到该付款的条件了,如果到了,该部件组690将自动访问相应的付帐机制(如该用户的一个虚拟“信用卡”对象),以便安排进行本次付帐。再举一个例子,假设电子合同条款N 3202(N)对应于用户的一项义务,即用户应该向特定的VDE参与者提供审核信息,电子合同3200将使VDE电子设备600装配一个相应的部件组690,该部件组690可(举例来说)访问安全数据库610中的相应审核跟踪,并将这些信息放在一个管理对象中提供给正确的参与者。图75F示意了条款3202(N)可以(举例来说)指定一个部件组690,该部件组690可以对交易3206中发生的多个步骤进行安排。受测试(如3208(3))结果的影响,上述某些步骤(如步骤3208(4),3208(5))可以是有条件的,这些测试可以用来判断(举例来说)信息内容的使用量是否超过了特定的数量,某个时间段是否已经到期,是否到了某个特定的日期,等等。
图75E电子合同3200所示的数字签名3204可以含有(举例来说)使用了上述公开密钥技术的传统数字签名。某些电子合同3200可以不带有任何数字签名3204。不过,为了留有证据等目的,可能最好要求作为电子合同3200一方的用户所拥有的电子设备600采用数字方式在电子合同上“签名”,这样一来,该用户以后就不能否定该合同。参与同一合同的每一方都可以在同一电子合同3200中留下数字“签名”,其方式类似于参与一个合同的多方用书面文件形式记录了该合同之后,用一支钢笔在该合同上签字。
尽管电子合同3200的每个条款3202都可以最终对应于一组数据和可以由PPE 650执行的代码,在某些情况下可能仍然需要提供电子合同的一份人类可读的版本。如上所述,可以通过在一个或多个DTD提供文本的方式来满足这一要求,此处的一个或多个DTD与用来自动执行上述合同的一个或多个部件组690相关联。上述文本(举例来说)从功能的角度描述了对应的电子合同条款3202意味着什么、涉及了什么,并且/或者还可以以法律可强制的条款形式描述了在该合同下的法律义务是什么,该法律义务代表的是什么。可以使用(本文所述的)“模板”从一个文本库中提供上述文本。可以借助专家系统和/或人工智能功能来施加许多语法规则,这些语法规则可以将各种文本元素合并在一起,形成一个一致的、人类可读的合同文件。如果必要的话,可以由一个“人类”律师审阅和修改上述文本,以便为各方之间达成的上述特定协议对这些文本进行相应定制,并且/或者加入其它的法律义务,以便对体现在相关部件组690中并由该部件组690强制执行的“自执行”电子义务进行扩充,上述相关部件组690在VDE电子设备600中执行。一旦执行该电子合同时,可以自动地将上述文本显示出来,也可以根据要求显示这些文本;另外,可以在任意时刻利用这些文本打印出上述合同的一份人类可读版本。电子合同3200的这种文件形式版本不需要达成协议的各方用墨水签名(除非大家愿意的话),因为事实上数字签名3204可以提供足够安全和可信的证据基础,以证明各方均已共同赞成合同中的所有条款和条件。
在较佳实施例中,协商进程在PPE 650中执行,其执行过程要受规定该进程的另一个PERC控制。图75C示意了一个规定协商进程的PERC 3150示例。PERC 3150含有对应于协商进程的单一权利3152,对应于该权利3152有两个允许的控制集合3154a,3154b。第一个控制集合3154a可以用在“可信协商”中,它引用了所需的协商CONTROL方法(“协商”)3156,还(在字段3157a,3157b中)引用了两个UDE,这些UDE将被上述CONTROL方法使用。这些UDE可以是如图75A和75B所示的PERC 3100、3125。第二个控制集合3154b可以由“多协商”进程所使用,以便对协商进行管理,它还可以提供两个协商方法“协商1”和“协商2”。这两个协商进程都可以被描述为必要方法(“协商1”和“协商2”)3156、3158,这两个必要方法分别以PERC 3100和3125为输入。该控制集合的CONTROL方法3158可以指定一个服务名,上述的两个协商进程可以使用该服务进行彼此间的通信;CONTROL方法3158还可以管理协商产生的URT的创建。
在执行图75C所示PERC 3150指定的协商进程时,可以提供PERC3100、3125作为该协商进程的输入;PERC 3100、3125将被用作该协商的基础。在本例中,可以由执行VDE节点选择协商进程的类型(是可信的,还是多个的)。图75C所示的PERC 3150可以(举例来说)由REGI STER方法在收到用户注册请求时创建。然后,该REGI STER方法可以使用由上述PERC指定的进程来启动对电子合同条款的协商。
在上述示例性的协商过程中,图75A和75B所示的PERC 3100、3125充当输入数据结构,根据图35C所示的PERC 3150创建的部件组将对这些输入数据结构进行比较。此时可以装配和比较由控制集合指定的部件组,在协商进行过程中,该部件组从必要“条款”开始处理,随后是提议的/所需的“条款”,然后处理允许的“条款”。可以使用由PERC 3100、3125指定的所需方法和备用方法来选择方法选项。在本例中,可以将对应于图75A所示PERC 3100的控制集合与图75B所示的PERC 3125进行比较。如果出现“匹配”,该协商进程将成功结束,协商的“结果”也将会产生。
在该实施例中,协商的结果通常将以URT的形式写出,并且将经过各协商进程的“签名”,表示已经达成了协议。这些电子签名反映了已经达到某种(虚拟的)“思想一致”(这是合同存在的传统法律前提之一)。图75D示意了上例创建的URT 3160示例。
URT 3160(其本身可以是一个PERC 808)含有一个控制集合3162,该控制集合反映了在协商过程中得到各方“一致认可”的“条款”。在本例中,这些经过“一致认可”的条款必须满足输入PERC 3100、3125所提出条款的要求,从这个意义来说,这些经过“一致认可”的条款必须与由输入PERC 3100、3125要求的条款“一样有利”。所示的协商结果包括(举例来说)一个“经协商”的控制集合3162,该控制集合3162在某种意义上对应于图75A PERC 3100的控制集合3102a以及图75B中PERC 3125的控制集合3131a。因此最终“协商得到”的控制集合3162含有一个所要求的BUDGET方法3164,该方法3164对应于控制集合3125所要求的BUDGET方法3142,但该方法3164处于由控制集合3100要求的BUDGET方法3112所允许的控制集合范围内。类似地,最终协商得到的控制集合3162包含一个所要求的AUDIT方法3166,该AUDIT方法3166符合由PERC 3100所要求的AUDIT方法3114和由PERC 3125所要求的AUDIT方法3135两者所提出的要求。同样,最终协商得到的控制集合3162包含一个所要求的BILLING方法3170,该BILLING方法3170“匹配”或符合由PERC 3100所要求的BILLING方法3116和由PERC 3125所要求的BILLING方法3170两者所提出的要求。
还有一种协商类型,在这种协商中,不确定规则,只规定所希望达到的目标。对于这种类型的协商,其协商进程可能非常复杂。它可以使用人工智能、模糊逻辑和/或相关算法以达到其目标。VDE提供了一种机制以支持这种类型的协商进程,该机制用来以简明地(以所希望权利、控制信息和字段的形式)规定权利、控制信息、字段和目标。可以将这种进程的目标规定为一个或多个控制集合,这些控制集合包含一些指定元素,这些元素被标记为可选的、所允许的或所希望的。
协商类型可以采用下面的任何一种方法建立较佳实施例中的协商1.共享知识2.信托协商者3.“零基础”知识“共享知识”型协商的基础是所有各方都了解与协商相关的所有规则和限制。需求型协商是共享知识型协商的一个简单例子。需求者提出一个需求清单,这些需求必须要被一起接受或被一起拒绝。需求清单中含有一套完整的知识,这些知识是接受或拒绝清单中各项目所必须的。VDE提供了一种机制以支持这种协商以电子形式进行,采用这种机制,可以使用VDE安全处理技术和通信功能在VDE安全子系统之间或使用VDE安全处理对上述各类需求进行编码、安全地传送以及安全地处理。VDE使用的另一类共享知识型协商涉及到在参与协商的双方或多方之间交换信息。协商进程可以根据其独立的优先级独立地决定所希望的最后输出。这些进程可以针对任意分歧进行协商。共享知识型协商可以涉及一个单一协商进程(与需求型协商那样),也可以涉及两个或多个相互协作的进程。图76A和76B示意了在共享知识型协商中使用一个和两个协商进程的情形。
图76A示意了单个协商进程3172,该进程可以将任意数目的(例如由不同方提供的)PERC 808作为本次协商的输入。协商进程3172在“协商进程规则和控制信息”的监督下执行于VDE节点之中,该“协商进程规则和控制信息”可以由另一个PERC(如在图75C中示意的PERC3150)提供。进程3172产生一个或多个PERC/URT 3160作为协商的结果。
图76B示意了多个协商进程3172A-3172N,每个进程都从一方和另一个PREC 3150得到一个PERC 808作为其输入。上述的PERC 3150对该协商进程进行控制,并且每个协商进程3172A-3172N都产生一个协商“结果”PERC/URT 3160作为输出。进程3172A-3172N可以在同一或不同的VDE节点中执行,并且可以使用“协商协议”进行相互间的通信。
对于特定的VDE站点,可以使用单个和多个协商进程。可以使用众所周知的方法对协商进程进行命名和访问,可以将PERC和URT放在管理对象或智能对象中传递给远方的VDE站点,以便在该站点中处理。控制该协商的控制PERC和REGI STER方法也可如此。
多协商进程要求具有在这些进程3172之间通信的能力,这包括出现在物理上分开的VDE站点(安全子系统)中的安全进程之间的安全通信。VDE将这种进程间的通信通用化成一种服务,这种服务采用安全方法提供出来,如果配置需要的话可以使用该服务。上述进程间通信使用了一种协商协议在进程3172间传递有关规则集合的信息。一个示例性协商协议包括下列协商“原语”WANT(需要) 需要一套条款和条件ACCEPT(接受) 接受一套条款和条件REJECT(拒绝) 拒绝一套条款和条件OFFER(提供) 提供一套条款和条件,作为对其它条款和条件的交换
HAVE(拥有) 宣布一套条款和条件是可能的或所希望的QUIT(退出) 在各方没有达到一致的情况下宣布协商结束AGREEMENT(一致) 结束协商,并传递规则集合以供签名WANT原语接收权利和控制集合(或控制集合的部分)信息,并向其它进程3172宣布所指定的条款是所希望的或被要求的。需求型协商是使用WANT原语宣布需求的一个例子。本协议示意将介绍WANT原语的一个精练形式—REQUIRE。在本例中,REQUIRE允许一方设置他认为是形成合同所必要的条款,而WANT则可以允许一方设置他所希望的但不一定是所必需的条款。这样就可以使“必须有”和“希望有”之间有所差别。
在本例中,WANT原语必须始终由ACCEPT、REJECT、或OFFER原语回答。ACCEPT原语允许协商进程3172接受一套条款和条件。REJECT原语允许协商进程3172拒绝所提出的一套条款和条件。拒绝所要求的一套条款和条件将终止协商过程。OFFER原语则允许买方还价。
HAVE、QUIT和AGREEMENT原语允许协商协议传递有关规则组的信息。在共享知识型协商开始的时候,(举例来说)所有的协商进程3172A-3172N都向其它进程确立HAVE原语(即我的PERC)。当出现僵局时,一个协商进程3172还可以利用HAVE原语让其它进程3172知道有关被允许选项的情况。QUIT原语通告协商未达成最终协议而失败地结束,而AGREEMENT原语则通告已成功地达成了协议,该原语还将“协商”结果PERC/URT 3160传递给另外的进程3172让其签名。
在“信托协商者”协商中,所有协商各方都将他们的需求与希望提供给一个“信托协商者”,并同意受该协商者的决定的约束。这种方法类似于当今社会中的约束仲裁。为支持这种模式的协商,VDE提供了一个可以创建“信托”协商服务的环境。VDE不仅提供了一种用来简明地(如在PERC中))定义需求、希望和限制的机制,并且在该机制中,PERC可以同规定了如何指导协商的规则集合一起被安全地传送到一个“信托”协商服务;同时,通过提供一个安全的执行环境,可以确保协商进程不会受到破坏。如果众所周知某些站点具有完整性,那么这些站点可以使用信托协商者服务。假如某些VDE站点不具备充足计算资源以执行一个或多个协商进程,这些站点便可以使用远程信托协商者服务。它们可以与提供该服务的VDE站点建立通信链路,并允许该服务代表它们处理协商事宜。
“零基础”知识型协商采纳了用在鉴别过程中的零基础知识协议所具有的某些特性。在本领域中大家都熟知如何创建某个协议,使该协议可以在不交换或暴露项的前提下确定一个远程站点受否是该特定项的持有者。可以在两个具有下列特点的协商进程之间创建这种类型的协议它们运行在至少一个VDE站点中,使用一个控制集合作为它们的知识库。这些协商进程可以交换有关其控制集合的信息,它们可以提出与使用它们各自控制集合有关的需求和反提议。例如,协商进程A可以与协商进程B通信,以协商阅读一本书的权利。协商进程A规定为了获取该书的阅读权,它支付的费用不超过10.00美元,并且希望对于该权利其付款范围最好在5.00美元到6.00美元之间。进程A的规则集合还规定了对于5.00美元付款选项,它将允许公布读者的姓名和地址。进程B的规则集合规定对于该书的阅读权它希望收取$50.00美元,同时如果用户同意公布其个人信息时,它将以5.50美元的价格提供该书的阅读权。其协商过程可能如下进行进程A <--- 进程B>
WANT(阅读权,无限制) --->
<--- HAVE(阅读权,无限制,50美元)OFFER(阅读权,提供用 --->
户信息)<--- HAVE(阅读权,提供用户信息,5.50美元)ACCEPT(阅读权,提供用 --->
户信息,5.50美元)在上例中,进程A首先规定它希望得到该书的阅读权,该阅读权不要附加任何限制,也不公开其它信息。在进程A用来作为一条规则的PERC中,将这一起点规定为一个权利选项。进程B检查其规则,并确定未加限制的阅读权实际上需要收费50美元。它答复进程A说可以提供上述的条款。进程A收到该应答后,对照特定控制集合对该应答进行检查,这些控制集合包含在进程A用来作为规则库的PERC中。由于50美元的数额超出了对该控制集合所规定的10美元限制,所以进程A不能接受上述提议。于是它进行一次讨价还价(由另一个可选权利选项规定该讨价还价事项),希望得到不受限制的阅读权同时附带允许公布读者名字和地址这一条件。名字和地址字段在进程APERC引用的DTD中进行了描述。进程B检查其规则PERC,并确定不受限制的阅读权附带公布个人信息的条件是一个被允许的选项。它将对比两个字段,第一个字段是由进程A提供的DTD所描述的、将被公布的字段;另一个字段是在进程B自身PERC所含DTD中包含的所希望字段;在比较过程中进程B确定存在一个可接受的匹配。于是它向进程A发送一个5.50美元的要价,这个要价针对的是不受限制的阅读权附带公布特定信息的条件。进程A对照其规则集合比较收到的权利、限制和字段信息,并确定5.50美元处于其规则集合定义为可接受的5美元-6美元范围之中。于是它接受进程B做出的上述要价。双方通过“签署”一个新PERC将最终要价盖章落实,新PERC描述了最终协商的结果(未加限制的权利,附带公布用户信息,要价5.50美元)。进程A的所有者可以使用上述新PERC来阅读所希望的信息内容(书),该阅读要受到规定条款和条件的控制。
进一步的处理链模型前面结合图2讨论过,在用来管理信息内容分发的一个VDE处理和控制链示例中,有四(4)种VDE 100的参与者实例。作为上述参与者实例中的第一种,信息内容制作者102的角色由文学作品的出版商、作者、权利所有者和分发者担任,他们准备好信息以便分发给消费者。作为第二种参与者实例,VDE权利分发者106可以分发权利,并且管理和分析消费者对VDE特许信息的使用。作为第三种参与者实例,信息内容用户112的角色则由用户(包括最终用户和分发者)在使用上述信息的时候充当。作为第四种参与者实例,财务票据交换所116提供VDE相关的票据交换所服务。作为另一种参与者,VDE管理员则提供支持,以维护VDE 100的正常运行。在安装了适当授权和权利操作系统部件后,任何VDE电子设备600都可以充当任意或所有上述的参与者角色。
文学作品是VDE 100中一类原始素材的一个例子。为了将这种原始素材转化成最终的商品,出版商、作者或权利所有者利用各种工具将数字信息(如电子图书、数据库、计算机软件和电影)转换成名为“对象”的受保护数字包。只有从分发者106那里得到许可的消费者(或位于拥有链中的其它人员,如再次分发者)可以打开这些包。经VDE打包的信息内容可以受到“规则和控制信息”的约束,这些“规则和控制信息”由信息内容制作者102和/或信息内容分发者106、或位于信息内容分发路径中的其它VDE参与者提供,即“规则与控制信息”通常由那些离安全化VDE包的创建“较近”的参与者提供,而较少由那些受到约束的参与者提供。
一旦信息内容被包装成“对象”,则可以开始数字化的分发过程。由于信息包本身已经受到了保护,因而可以自由地以多种形式对之进行分发,如可以放在CD-ROM盘上分发,可以通过计算机网络分发,也可以通过有线电缆或无线电波进行广播。受保护的信息内容包在最终用户之间进行非正式的“通道外”交换不会给信息内容所有权带来风险。这是因为只有经过授权的个人才可以使用上述信息内容包。实际上,某些信息内容提供者可以鼓励这种“通道外”的分发方式,将它作为进入市场的一种低代价策略。拥有使用特许的消费者(如可提供一定使用费用的VISA票据交换所预算)可以(举例来说)自由地允许由其邻居提供给他们的各类通道外受保护VDE信息内容包。
为了打开VDE包并使用其信息内容,最终用户必须拥有许可。分发者106可以授予这些许可,并且(在上级控制信息的允许下)可以非常灵活地限制或规定包中信息内容的使用方式。分发者106和财务票据交换所116通常还负有财务责任(在某些情况下如果需要的话,它们可以是同一组织)。它们确保向最终用户要求的付款满足其自身的或其它参与者的要求。通过对使用情况进行审核,可以实现上述功能。
使用VDE 100的分发者106可以是软件发布者、数据发布者、有线、电视和无线电广播者,以及电子形式信息的其它分发者。VDE 100支持所有的电子分发形式,包括通过广播和电信进行分发,或采用对电子存贮介质的物理传送方式进行分发。它还支持以同类方式交付信息内容。在此过程中,VDE 100把来自多种分发类型的信息与许可、控制机制和信息内容无缝地集成在一起。
对于分发者106和财务票据交换所116来说,可以根据对其管理行为所做的安全记录对它们本身进行审核,同时,一连串可靠的并“可信”的进程确保了整个分发过程的完整性。这样做可以使信息内容所有者核实根据实际的信息内容使用,或根据其它的协议基础,他们收到了应得的报酬。
在本例中,由于最终用户112是信息内容的最终消费者,因此VDE的设计保证了以无缝和透明方式提供被保护的信息内容一只要最终用户没有超越收到的许可的范围。可以对最终用户112的行为进行计量,以便分发者106能够实施审核。可以对审核进程进行筛选和通用化,以便满足用户对隐私的考虑。例如,对于被计量和记录的VDE信息内容使用信息和/或电子设备使用信息来说,可以在把它们报告给分发者106之前对将它们进行筛选,以防止泄露那些本不该泄露的、有关信息内容用户112和/或及其使用情况的信息。
VDE 100允许信息内容提供者以电子方式对他们的传统分发策略进行重要改革,并允许他们创新地建造适合其自身的需要和情况的新型分发机制。VDE 100允许相关参与者出现在分发链中,并允许他们按照自身愿望指定价格策略、访问和再分发许可、使用规则和相关的管理和分析过程。VDE 100的可重用功能性原语可以由信息内容提供者灵活地结合使用,以反映他们各自的分发目标。作为结果,信息内容提供者可以将其信息输入到已建好的分发通道中,也可以创建他们自己的、带有个性化的分发通道。
下面概括性地列出了虚拟分发环境100中各种参与者的角色。
在上述各种VDE参与者之中,“再次分发者”、“VDE管理员”、“审核信息独立处理者”和“代理”在某些方面属于“新”的参与者,它们在许多“传统”的商业模型中没有对应者。而其它VDE参与者(即信息内容提供者、信息内容所有者、分发者、审核者、票据交换所、网络提供者和财务提供者)则具有“传统”的商业模型对应者,因为在某种意义上,传统分发模型中经常会有一些非电子的参与者执行的某些商业功能与它们在虚拟分发环境100中执行的功能相同。
在VDE分发者106中还可以包含一些特殊的“最终用户”,这些最终用户向其它的最终用户提供电子信息。例如,图77示意了本发明提供的虚拟分发环境100处理和控制链的另一个例子。与图2比较起来,图77含有一个新的“客户管理员”参与者700。另外,图77示例了若干不同的信息内容用户112(1),112(2),...,112(n),所有这些信息内容用户都要收到客户管理员700的“管辖”。客户管理员700可以是(举例来说)公司或其它组织中的另一个权利分发者,它把权利分发给雇员或其它组织的参与者单位(如分支机构、部门、网络和/或小组等)。这些雇员和单位都要受到特定于组织的“规则和控制信息”的管理。客户管理员700可以对控制分发过程的“规则和控制信息”进行加工,这种加工要受到由制作者102和/或分发者106规定的“规则和控制”的约束。
如上所述,VDE管理员116b是一个可信的VDE节点,它对VDE 100提供支持,并维护其正常操作。在本例中,VDE管理员116b可以提供下列的任意或所有服务,而这些服务也并全部的。
VDE设备初始化服务 VDE设备重新初始化/更新服务 密钥管理服务 “欺骗性”VDE站点的“最新列表” 验证权威机构服务 公开密钥注册 客户参与者单位信息内容预算和其它权利VDE 100的所有参与者都内在地可以参与各种角色的工作。例如,用户可以收集现有的受保护信息内容包,加入他们自己的包(创建新的信息内容包),并创造出新产品。他们可以决定充当其自身的分发者,也可以将该责任委派给其它参与者。在目前正在进军市场的面向对象设计革新中,上述功能具有十分重要的意义。复合对象的生成、对象链接和嵌入、以及其它多源进程将产生对VDE 100上述功能的需求。VDE 100提供的分发过程是对称的,任何最终用户都可以将收到的信息再分发给其它最终用户,前提是他们拥有适当的许可,该许可来自或遵照了支配再分发过程的VDE分发链控制信息。最终用户也可以在同样的规则和许可约束下将属于其它参与者的信息内容封装到新公布的产品中,并独立地分发这些产品。对新产品的使用付费可以由发布者、分发者或最终用户查询和修改,并且可以在分发链中的任何阶段对之进行跟踪和电子化收集。
独立财务提供者在VDE 100中起重要作用。VDE财务提供者的作用与传统分发模式中的某些组织(如VISA)所起的作用类似。在任何分发模型中,一个十分关键的因素是应该支持对产品或服务的使用进行偿付,并且对使用的一致性与不规则性进行审核是关键的。在VDE 100中,这些规则由独立财务提供者提供。独立财务提供者还可以向信息内容提供者提供审核服务,因而,对于使用的预算和限制、以及对审核或使用的记录可以由票据交换所116来处理(也可以由票据交换所116来保存),而票据交换所可以从用户112那里收集使用费。任何VDE用户112都可以在上级控制信息允许的限度内将处理信息或执行服务的权利分派出去,使被分派者代表他们的操作。这种一个VDE参与者代表另一个进行操作的方案称为“代理”。如果信息内容提供者允许的话,可以将审核、分发、或其它重要权利“代理”出去。一个特殊类型的“代理”是VDE管理员116b。VDE管理员是一个组织(它也可以同时充当财务票据交换所116的作用),该组织具有一定的许可可以为VDE电子设备对某些或所有的VDE安全子系统控制信息进行管理(例如“进行干预”以便复位)。管理权的范围仅限于允许新设备加入VDE结构中、恢复“崩溃的”或不可操作的设备、以及提供周期性的VDE更新。
对象创建、分发方法、预算和审核的补充说明较佳实施例中的VDE节点600能够执行本发明提供的对象创建、分发、审核收集以及使用控制等功能。在较佳实施例提供的每个电子设备600中都集成进上述功能,对于为电子交易计量、控制和计帐创建单一(或重要)标准这个总目标来说具有重要意义,该标准经过综合实施后将构成安全、可信、虚拟的交易/分发管理环境。一般来说,如果至少在通用VDE节点电子设备600中某些关键功能通常或经常缺少的话,那么将会出现多种不同的产品和不同的标准以满足大量电子交易应用/分发管理应用。同时,也将无须为了满足发展中的“电子高速公路”所提出的迫切要求而事先提供出单一的一致工具集和单一的、“合理的”、可信安全性和商业分发环境。某些形式的特定电子设备600包含了特殊的VDE节点,这些VDE节点中装有嵌入的专用VDE微控制器—例如某些形式的录象带播放机、有线电视转换器等等,这些电子设备600可能不一定要带有或需要完整的VDE功能。然而,较佳实施例提供了大量分布的、位置完全不同的电子设备600,每个这样的电子设备600都最好具有创作、分发、抽取、审核、以及审核压缩功能,同时还具有对象创作功能。
较佳实施例提供的VDE创作功能向作者(举例来说)提供了多种菜单,以便往VDE对象300中加入方法,这些菜单包括 针对计量和/或计帐方法的菜单,这些菜单规定了对VDE对象信息内容部分的使用将如何受到控制; 有关抽取方法的菜单,这些菜单限制和/或允许VDE对象的用户从该对象中抽取信息,还可以包括将该信息放入一个新创建的和/或早就存在的VDE容器中; 规定审核方法的菜单—即是否通过某种安全方式生成某些审核信息,并将该审核信息送回对象提供者、对象创建者、管理员和/或票据交换所; 分发方法的菜单,这些菜单用来控制对象的分发方式,包括(举例来说)对处于VDE信息内容容器处理链下方的各个参与者所具有的分发权进行控制;创作功能还可以含有将管理预算、对象分发控制密钥、以及审核控制密钥分发给分发者或某些其它VDE参与者的过程,所述其它VDE参与者已经过授权可以代表作者、分发者和/或他们自己执行分发和/或审核功能。创作功能还可以含有选择和分发审核方法、分发方法以及审核压缩方法的过程,包括(举例来说)安全地记录和/或控制某些预算,这些预算用来使分发者将对象再分发给VDE信息内容处理链中的后续参与者。
由作者创建的对象300的信息内容可以在VDE感知的应用程序或非VDE感知的应用程序的帮助下产生。由作者结合上述程序创建的上述对象的信息内容可以包含正文、格式化的正文、图片、电影、声音、计算机软件、多媒体、电子游戏、电子培训材料、各种类型的文件、等等,其种类无限。创作过程可以将作者所制作的信息内容装入某个对象中,使用一个或多个密钥对该信息内容进行加密,并附加一个或多个方法,这些方法定义了某些参数,所述参数规定了用户(和/或仅授权用户)对上述对象的允许的使用、和/或使用的必要审核、和/或这些用户使用该对象的费用。创作过程还可以包含与分发该对象有关的某些或所有方面。
总的来说,在较佳实施例中,作者可以A.规定在对象中将要放入什么样的信息内容;B.规定面向信息内容的方法,包括
信息—通常是与该信息内容和/或作者有关的抽象的、宣传性的、标识性的、调度性的、和/或其它方面的信息信息内容—如文件的列表和/或含有信息内容、时间变量等的其它信息资源C.规定控制信息(通常是若干方法的集合,这些方法间通过一个或多个许可记录相互关联。该方法集合包括定义方法的任何变量)和任何授权的初始用户列表,例如控制访问和抽取的控制信息控制分发的控制信息控制审核处理的控制信息如果VDE节点从某个对象提供者那里收到管理预算信息,而该信息用于分发某个对象以及相关分发密钥信息,那么该VDE节点电子设备600可以(举例来说)代表所述对象提供者分发该对象。
如果VDE节点从某个对象提供者那里收到任何必要的管理预算、审核方法、以及审核密钥信息(举例来说,该审核密钥信息用来解密审核跟踪),那么该VDE节点电子设备600可以代表所述对象提供者接收并处理审核记录。具有审核功能的VDE电子设备600可以控制审核压缩方法的执行。较佳实施例中的“审核压缩”过程指的是从审核记录和/或审核进程中抽取某些信息,这些信息已经由对象提供者(例如,该对象处理链中的任意对象提供者)指定需要报告给对象的分发者、对象创建者、客户管理员、和/或审核信息的任意其他用户。这些接收报告者可以是(举例来说)需要替用户支付对象信息内容使用费的广告商。在一个实施例中,票据交换所能够在位于用户站点的或位于对象提供者站点的某个对象或某类对象或其它类别对象后面“添加”预算、审核方法、以及/或者审核密钥信息,以确保所期望的审核过程以“可信”的方式进行。VDE信息内容容器处理链和/或信息内容容器控制信息处理链中的参与者可以作为另一方的“代理”,所述的另一方则出现在与对象信息内容的使用相关联的使用情况审核信息控制链中(例如,所述另一方可以是一个票据交换所、广告商、或对市场调查和/或特定消费者使用信息感兴趣的某方)。为完成该过程,可以为所述另一方指定预算、审核方法、和/或密钥信息,这些信息必要地保证了将审核信息按照一种适当的方式收集起来和/或提供给所述另一方。该过程可以使用所述另一方提供的说明信息。
对象制作和初始控制结构VDE较佳实施例对象制作和控制结构设计过程支持控制信息的基本可配置性。这就允许VDE 100能够支持各种可能的信息内容类型、分发路径、使用控制信息、审核要求、以及用户或用户组。在较佳实施例中,VDE对象制作过程利用了VDE模板,VDE模板中的元素至少部分地代表了模块化控制进程。利用VDE制作软件(在较佳实施例中,VDE制作软件是一个GUI编程进程)和VDE模板,用户可以采取一系列步骤制作VDE对象300,即划分该对象,将“元数据”(meta data)(如作者的名字、制作日期等)放入对象中,然后把对应于对象和/或对象信息内容的权利分配给(举例来说)出版商和/或信息内容制作者。当对象制作者执行上述进程时,他通常要经历一个信息内容说明过程,该过程将索取必要的数据。该信息内容说明过程在得到满足之后将(举例来说)把数据插入到一个模板之中,并将信息内容封装起来。另外,在较佳实施例中,对象还可以自动向本地VDE节点电子设备600安全子系统注册其出现,并且,作为模板指令和原子方法交互作用的结果,将会产生至少一个许可字段808,同时还将产生一个或多个控制结构,这些控制结构中可以带有一个或多个方法、预算和/或其他信息。注册进程可以请求为对象创建一个预算。如果对象制作过程指定了初始分发,那么还将为分发创建一个管理对象。该管理对象可以包含一个或多个许可字段808、其他控制结构、方法、和/或加载模块。
许可字段808可以指定对象和用户之间的各种控制关系。例如,VDE 100既支持单一访问(如用户和权利用户之间的一对一关系)也支持组访问(可以准许任意数目的人员成为一个组)。单个许可记录808可以定义单一访问和组访问两者。VDE 100可以提供“共享”进程,该进程允许多个用户将单个控制预算作为一个预算进行共享。其它的控制结构概念包括分发、再分发、以及审核,后者支持计量和预算信息的压缩和/或传送。所有上述过程通常都由一个或多个VDE安全子系统安全地进行控制。
模板和类VDE模板、类和灵活的控制结构向某些团体和个人提供了多种框架,这些组织或个人制作、修改、销售、分发、再分发、消费、或使用电影、录音和实况演出、杂志、电话零售、产品目录、计算机软件、信息数据库、多媒体、商业通信、广告、市场调查、通知、游戏、数控机床的CAD/CAM服务,等等。随着上述类别的外围环境变化或演变,本发明较佳实施例提供的模板也可以被修改,以满足上述变化的需求,这些变化或者要求使用面更广,或者要求活动更加集中。
VDE 100的创作可以向制作进程提供三种输入模板、用户输入和对象信息内容。模板是一组用于对象控制软件的控制指令和/或数据,模板能够与创建VDE对象所需的用户指令和被提供的信息内容进行交互作用,以创建(和/或修改)VDE对象。一般来说,模板特别与对象创建和/或控制结构相关联。类代表的是某些用户组,这些用户组可以是某个组织中“自然”组,例如部门成员、特定安全许可级别等等,或个人和/或VDE节点的特定列表。
例如,模板可以由文本文件来代表,这些文本文件定义了特定结构和/或部件组。模板连同它们所带有的结构和/或部件组一起可以用作VDE对象创作或对象控制的应用。一个制作模板可以带有多个子模板,这些处于最底层的子模板代表了对象详细要求说明中的“原子层”。模板可以提供一个或多个模型,这些模型描述了信息内容对象的各个方面以及对象应该如何创建,创建方法包括采用某些安全原子方法,这些原子方法用来创建、改变、和/或销毁许可记录808和/或相关预算,等等。
模板、类(包括以组访问形式使用对象的用户组)、以及灵活的控制结构(包括“独立于”对象的许可记录(可以与多个对象相关的许可)以及支持将预算和审核作为独立VDE进程的结构)有助于将本发明所提供创作过程中的那些内在的、灵活的、以及可配置的功能集中在工业、和/或商业、和/或应用的范围中。VDE合理化地改造了目前(部分地通过使用专用于应用的或专用于产业的模板)正应用于各类支柱产业中的分发方案,并且涵盖了上述方案。因此,具有重要意义的一个步骤是提供一个操作和/或结构框架,以允许现有产业、和/或应用、和/或商业操纵它们所熟悉的概念,这些概念涉及信息内容类型、分发方法、定价机制、用户与信息内容的交互作用、以及/或者相关的管理行为、预算等等。
VDE模板、类和控制结构具有内在的灵活性和可配置性,从而可以反映信息分发和安全存贮要求的广度,可以在发展中有效地适应新产业,可以反映现有产业和/或商业的发展和/或变化,同时支持可能与某些许可和/或预算及对象类型相关的一个或多个用户组。通过使用VDE聚合方法和控制方法,可以加强VDE模板、类和基本控制结构的灵活性,上述方法对于对象的控制可以产生复合的、有条件的进程影响。通过不时地将本发明与VDE管理对象和VDE安全方法及进程结合使用,本发明真正实现了一种信息内容控制和审核体系结构,该体系结构能够被配置到大多数的或任意的商业分发实施例中。因此,本发明完全支持信息内容提供者的要求和倾向,而不必强迫他们去适应预先定死的应用模型。它允许信息内容提供者规定权利、控制信息,及其信息内容(以及返回的审核信息)在分发通道中的流动方式。
修改对象信息内容(包括增添、隐藏、修改、删除和/或扩展)向对象中加入新信息内容是本发明提供的创作过程的一个重要方面。提供者可能希望允许一个或多个用户对他们提供的信息内容进行增添、隐藏、修改、删除和/或扩展操作。采用这种方式,其他用户可以增值现有信息内容,为了新的目的对现有信息内容进行变动,以及维护和/或修改现有信息内容。能够向空的和/或新创建的对象中添加信息内容也具有重要意义。
当提供者提供信息内容和相关控制信息时,他可决定增加某些控制信息,这些控制信息用来允许和/或限制对所述信息内容的增添、修改、隐藏和/或删除操作。这些控制信息可以涉及 可以被增添、隐藏、修改和/或删除的信息内容所具有的特性和/或所处的位置; 可以被修改、隐藏、删除和/或增添的信息内容部分; 所需的、用于控制后续VDE容器信息内容使用的安全控制信息,这些控制信息位于控制链中,并且/或者与被增添、隐藏、和/或修改的信息内容存放在一处; 对下述过程的要求即由提供者指定的信息内容注意事项和/或信息内容部分,这些部分伴随被增加、隐藏、删除和/或修改的信息内容,同时还要随所述增加、隐藏、删除和/或修改操作的发生而发生;
对涉及某些信息内容的限制和/或要求的安全管理,这些信息内容可以被移走、隐藏和/或删除;上述管理范围包括对信息内容增添、隐藏、修改和/或删除的数量和/或程度; 通知提供者已经发生了修改、隐藏、增添和/或删除操作,并且/或者指出该操作的性质; 涉及对提供者信息内容进行修改、增添、隐藏和/或删除的其他控制信息。
提供者可以使用上述控制信息为其他用户提供机会,允许他们采用受控的方式增值和/或维护现有的信息内容。例如,软件开发工具的提供者可以允许其他用户向这些用户得到的对象中增添注释,并且/或者增添类似的和/或补充的工具。电影提供者可允许在他们的材料上加上解释词与/或宣传材料。向机床工具所有者提供CAD/CAM规范的提供者可以允许其他用户修改某些对象(这些对象包含与某个规范相关联的指令),以便改进和/或翻译所述指令,并结合其设备使用这些指令。数据库所有者可以允许其他用户向所提供的数据库对象中增添记录,或从该数据库对象中删除记录,从而支持数据库的灵活性和/或维护。
引入控制信息还有一个好处,即提供者有机会允许其他用户为新的目的而改动信息内容。提供者可以允许其他用户提供新设置的信息内容。
为了将上述控制信息连接到信息内容,在经过允许的条件下,可以向提供者提供针对某个对象的一个或多个方法的设计和实现,这些方法控制对信息内容的增加、隐藏、修改和/或删除。可以结合PPE 650使用VDE软件工具来完成上述一个或多个方法的设计与实现。于是,提供者可以将这些方法连接到某个对象,并且/或者独立地提供这些方法。许可记录808可以含有与上述控制信息相关联的要求并且同时还含有其他控制信息,或者可以使用一个单独的许可记录808。
增加和/或修改信息内容的一个重要方面是加密/解密密钥的选择,以及/或者涉及对新信息内容或被改动的信息内容进行安全保护。提供者可以在涉及上述进程的方法中规定一种或多种技术,这些技术用来创建和/或选择加密/解密密钥以及保护新信息内容或被改动的信息内容的其他有关方面。例如,提供者可以一套密钥、用来生成新密钥的技术、对用来生成新密钥的加载模块的引用、用来保护信息内容的协议,以及/或者其它类似信息。
如果创建或使用了新密钥,那么增加和/或修改信息内容的另一个重要意义是对新密钥的管理。提供者可以要求上述密钥以及使用密钥所涉及的引用必须被传送给该提供者,或者他也可以使上述密钥和/或安全保护措施不被提供者所了解和/或控制。提供者还可以选择一条中间路线,即某些密钥是一定要被传输过来的,而其它密钥则可以不被其了解和/或控制。
涉及密钥管理的另一个方面是对某些许可的管理,这些许可与增添、隐藏、修改和/或删除信息内容所产生的对象相关联。提供者可以允许也可以禁止VDE控制信息链的用户采用某些或全部VDE规则和控制信息,这些规则和控制信息涉及授权访问和/或操作由VDE管理的、与所述最终对象相关的信息内容和/或规则和控制信息。例如,提供者可以允许第一个用户控制对对象中新信息内容的访问,因而,这部分信息内容的其他用户需要从上述第一个用户那里得到许可。这样可以使提供者按照自己的意愿来决定是否要求用户从提供者获得许可以便访问对象。
涉及增添、修改、隐藏和/或删除操作的密钥可以被存放在一个或多个独立的许可记录808中。所述许可记录808可以被传递给提供者,并且可能与一个或多个现有的许可记录合并,或者可以在新信息内容提供者的控制下保持独立。初始许可记录808的创建及其内容、以及控制许可记录的其他控制信息将由涉及提供者某些操作的方法来控制。对所述许可记录的后续修改和/或使用可能涉及提供者的方法、以及用户操作、或与两者皆有关。用户修改和/或使用许可记录808的能力至少部分地取决于与提供者的上述许可记录相关的上级控制信息。
分发控制信息为了支持广泛和灵活的商业交易环境,提供者应该有能力创建用来控制分发进程的稳固控制信息,而避免对控制链中后续各方进行不当限制。本发明提供的分发控制信息支持积极灵活的控制。提供者不需要带有任何特别的控制,或使用任何特别的策略,除非上级控制信息要求他们这样做。相反,本发明允许提供者从一般的控制部件(这些一般控制部件可以是适合于提供者特定市场的部件子集,(举例来说)它们包含在VDE应用中,并且/或者与之直接兼容)中进行选择,以建立适合于给定处理/控制链的结构。提供者还可以建立其控制信息的控制信息,后者可以允许或限制其他用户对提供者控制信息的修改。
本发明提供的管理系统产生管理“事件”。这些“事件”对应于或者由系统或者由用户引发的活动,这些活动又对应于VDE中可能受保护的进程。这些进程包括的活动有拷贝许可记录、拷贝预算、读审核跟踪记录、拷贝方法、更新预算、更新许可记录、更新方法、备份管理文件、恢复管理文件等等。从任意VDE记录中的任何部分读、写、修改、更新、处理和/或删除信息都可属于管理事件。一个管理事件代表了一个进程,该进程在一个或多个记录的一个或多个部分上执行一个或多个上述活动。
当VDE电子设备600遇到一个管理事件,通常结合VDE PPE 650对该事件进行处理。正如通常涉及访问和/或使用信息内容的事件那样,在大多数情况下,管理对象由信息内容提供者(包括(举例来说)信息内容制作者、分发者、和/或客户管理员)规定为专用来控制对象、对象组和/或对象类的一个控制方面。
例如,如果用户提出分发许可请求,以便在笔记本计算机中使用桌上型计算机中的某个对象,于是所产生的多个管理事件中的某一个可以拷贝一份对应于上述对象的许可记录。当ROS 602检测到该管理事件时,将会产生对应于该类事件的一个EVENT方法。如果产生了上述EVENT事件,还将会产生与该EVENT事件相关联的计量、计帐、和预算。计量、计帐和预算可以使提供者允许和限制对许可记录808的拷贝。
例如,在处理某个控制程序的过程中,可以产生和/或更新计量、计帐、预算和/或审核记录。所述审核记录可以记录某些信息,这些信息涉及到管理事件及对其所做处理的有关情况。例如,审核记录可以含有对引发事件的用户和/或系统活动的一个引用、对所述事件的处理是成功还是失败、日期和/或时间、和/或其他相关信息。
上面的一个例子中提到了一个既有桌上型计算机又有笔记本计算机的用户,在这个例子中,每当用来计量所述许可记录拷贝操作的计量被处理的时候,许可记录的提供者都要求提供审核记录。审核记录为提供者提供了灵活的和可配置的控制和/或记录环境。
在某些情况下,提供者最好限制控制部件的哪一个方面可以被修改、更新和/或删除。可以用“原子元素定义”将事件(于是还包括控制进程的剩余部分—如果该控制过程存在的话)的适用范围限制到控制部件的某些“原子元素”。例如,如果许可记录808被分解为图26示意的多个字段上的多个“原子元素”,那么(举例来说)就可以通过在某个原子元素定义中仅指定过期日期/事件字段而将事件处理链限制为对过期日期/事件信息的特定数量修改。在另一个例子中,可以根据控制集合将许可记录808分解为多个原子元素。在该例中,可以将事件链限制为操作某些控制集合的事件。
在某些情况下,提供者最好控制管理进程的执行方式。提供者可以决定在存放在安全数据库610中的分发记录中加入某些信息,以便结合某个部件组690使用这些信息,而该部件组690则控制和规定(举例来说)如何执行涉及某个给定方法和/或记录的给定事件。例如,如果提供者希望允许用户拷贝许可记录808,那么他可能希望内部地改动该许可记录。例如,在上述一个用户既有桌上型计算机又有笔记本计算机的例子中,提供者可以允许用户根据桌上型计算机提供的信息拷贝启动笔记本计算机所需的必要信息,但不允许该笔记本VDE节点对所述信息进行另外的拷贝。在该例中,前述的分发控制结构将在桌上型计算机中继续存在,但传递给笔记本计算机的启动信息拷贝将缺少从该笔记本计算机执行分发过程所需的分发控制结构。类似地,一个信息内容提供者可以向作为分发者的另一个信息内容提供者提供分发控制结构,在该分发控制结构中的某个控制结构将允许制作VDE信息内容容器对象一定数目的拷贝,同时也允许制作许可记录的相关拷贝,但是,该许可记录将(例如根据信息内容提供者的规定)被改变,从而禁止接收分发者所做拷贝的最终用户再制作拷贝以期将之分发给其它VDE节点。
尽管上述示例着重描述一个可能情况下的特别事件(拷贝),也可以在本发明所设想的任何控制关系下使用类似的过程从记录和/或方法中读、写、修改、更新、处理、和/或删除信息。其它的例子包括拷贝预算、拷贝计量器、更新预算、更新计量器、压缩审核跟踪等等。
创建常规方法在本发明的较佳实施例中,可以“任意地”创建方法,或将为方法建立别名。这两种模式使VDE分发过程具有高度的可配置性和灵活性,并提供了对VDE分发进程的可靠控制。通常,创建方法的过程包括为方法的数据部分指定必要的属性或参数,然后“压模”(typing)出该方法。压模进程(typing process)通常涉及选择一个或多个加载模块来处理方法的任何数据部分。除了创建方法本身,方法创建进程还产生方法选项子记录以及分发记录注释,上述子记录将放置在许可记录中,或者对许可记录修改。除了执行方法所需的任何“标准”加载模块以外,如果允许的话还可以规定其它的加载模块和数据,这些加载模块和数据将结合前述加载模块一起使用。上述事件处理结构对方法的分发进行控制。
例如,考虑一下安全预算的情况。一种典型的预算类型可能限制用户每月最多使用10Mb的解密数据。该用户希望其将使用相关VDE信息内容容器对象的权利移到其笔记本上。预算创建者可能已经根据计入某对象预算的权利移动次数将笔记本中的最多使用量限制为同样数量、原先数量的一半、按比例分配的数量等等。与上述预算相关联的分发方法(或内部事件处理结构)允许预算创建者确定涉及到的实现方法和参数。当然,针对再分发的情况或正式分发方法的情况可能需要不同的分发方法。这些选择的总和被存放在对应于该方法的许可记录中。
下面给出了用来移动预算记录的一个可能进程步骤示例1)检查移动预算(如确定所允许的移动次数)2)将静态字段拷贝到新记录(如作为留存数据)中3)减少老记录(原始预算)中的“递减”(Decr)计数器4)增加老记录中的“留存数据”(Encumbrance)计数器5)写分发记录6)向新记录中写入分发事件ID(Distribution Event Id)7)增加移动计量器8)减少移动预算9)增加新记录中的“递减”(Decr)计数器创建预算在较佳实施例中,为了创建一个预算,用户需要操作图形用户接口预算分发应用(如VDE模板应用)。用户需要填充有关预算、过期周期、审核员等的所需字段。可以将预算规定为美元、德国马克、日元,以及/或者任何其它货币或信息内容衡量体系和/或组织的货币。上述应用的较佳实施例输出通常带有三个基本元素1)安全数据库610分发部分的注释—对于每个被创建的预算记录都要产生该注释;2)实际的预算记录;3)方法选项记录—该记录需要加到许可记录中。在某些情况下,预算进程可能最终没有创建方法选项,因为一个现有的方法选项目前可能正被使用。通常,所有上述输出都被存放在安全数据库610中和/或一个或多个管理对象中以便加以保护。
在较佳实施例中,预算分发应用有两种基本的操作模式。在第一种模式下,操作者可以不受限制地规定预算。可以自由地使用上述操作所产生的预算,以便控制操作者具有权利的分发进程的任意方面,这些预算可用作某些“安全”预算—例如用来限制使用的某些方面的量度。例如,如果操作员是一个“普通人员”,他可以根据个人帐务模型或计划利用上述预算来控制自身使用对象的情况。如果操作员是一个特许的VISA用户,上述的最终预算将对整个分发系统产生普遍影响。一个核心思想是上述模式受操作员的严格控制。
第二种操作模式用来创建“别名”预算。这些预算被结合到操作者系统中的已有预算。在操作者填写预算的时候,将会为建有别名的预算产生一个留存数据。当上述类型的预算创建完毕后,其输出包括两个结合在一起的方法选项子记录对应于建有别名预算的方法选项子记录,以及对应于新创建预算的方法选项子记录。在大多数情况下,如果预算创建者被授权在许可记录的适当必要方法记录内修改方法选项,就可以用别名预算来代替原始预算。
例如,假设某公司的用户(客户管理员)在其电子设备600中含有公司的VISA预算。他希望利用各种的现有预算和要求将该预算分发给公司的用户网。他还希望将公司的VISA预算限制到某些对象。为了实现上述目标,该用户将公司预算起别名为VISA预算。然后(如果被授权的话)他修改公司批准其用户操作的所有对象所对应的许可记录,这样一来,这些用户除了认可VISA预算之外还认可公司预算,或只认可公司预算而不认可VISA预算。然后,他将新许可记录和预算分发给其用户。这些用户处的审核数据将对照公司VISA预算的留存数据经过压缩,从而完成定期的计帐。
在另一个例子中,某个消费者希望控制其家庭电子设备对其VISA卡的使用,并希望禁止其小孩玩太多的视频游戏,同时允许无限地使用百科全书。在该例中,他将创建两个预算。第一个预算将是其VISA卡的别名,该预算只能结合百科全书对象(该百科全书对象指向单独的百科全书对象和/或一类或多类百科全书对象)使用,而该百科全书对象引用了经明确改动的许可记录中的别名化预算。第二个预算可以是(举例来说)一个时间预算,消费者将该预算再次分发给其家庭以结合视频游戏对象(视频游戏类)使用。在本例中,第二个预算是一个“自我补充”的安全/控制预算,该预算允许(举例来说)每天的使用时间为2小时。第一个预算的操作方式与前面的例子相同。第二个预算作为新的必要方法被添加到视频游戏的许可记录中。由于访问视频游戏需要使用时间预算,因此,引入了一种有效的控制途径以申请第二个预算—只有经过了修改可以接受家庭预算的许可记录可以被孩子们用来玩视频游戏,并且他们玩游戏的时间被限制在每天两个小时。
共享和分发权利和预算移动较佳实施例提供的VDE“移动”概念涵盖了对权利和预算的“友好共享”。“移动”的一个典型示例是用户拥有若干机器并希望在一台以上的机器中使用同一对象。例如,用户拥有一台桌上型计算机和笔记本计算机。他们订阅了一份电子报纸,并希望在两台计算机中都能阅读该报纸,即,用户希望将权利从一台机器移动到另一台机器。
有关“移动”的一个重要概念是独立操作的思想。任何移入了权利的电子设备600都可以独立地与分发者和票据交换所通信。例如,上面提到的用户可能希望在途中将其笔记本计算机继续携带一段时间,并联系票据交换所和分发者,而不必与其桌上型计算机建立本地连接。
为了支持独立的操作,用户应该能够与分发者或票据交换订立一个帐户,该帐户不依赖于他正用来建立连接的电子设备600。对于最终用户和票据交换所或分发者,上述交易必须做到在机器之间可独立跟踪和协调。在机器间移动权利、预算、以及位图或复合计量器等基本操作也一并支持。
再分发再分发位于“移动”的“友好共享”与正式分发之间的UDE中间地位。该过程不要求在制作者、票据交换所、或分发者或再分发者之间进行特别交互作用,在这个意义上可以将再分发看成是“匿名分发”。当然,制作者或分发者确实有能力限制或禁止再分发。
与“移动”的概念不同,再分发并不意味着独立操作。再分发者为接收再分发权利和/或预算等的用户充当联系点。这些用户不了解、或不访问再分发者的票据交换所(和/或分发者)帐户。再分发者充当由他们再分发的权利和/或预算等的审核员,除非分发者和/或票据交换的限制特别控制再分发者这样做。由于再分发接收者(再分发权利和/或预算等的接收者)将会给票据交换所带来不可估量的工作负担,并且由于再分发者将会使自己身处审核风险中(他们需要对再分发的所有权利和/或预算等负责),所以由再分发者分发给再分发接收者的权利审核、预算审核等被假定为较佳实施例中的默认情况。
分发分发涉及三种实体。制作者通常是分发的源,他们通常设置控制结构“环境”并能够控制传递到分发网上的权利。分发者形成了对象(信息内容)最终用户和对象(信息内容)制作者之间的链接,他们可以向权利和审核数据提供双向的传输通道。票据交换所可以提供独立财务服务,例如信用和/或计帐服务,票据交换所还可以充当分发者和/或制作者。通过许可和预算处理,这些不同各方可以一起对权利使用和/或审核活动的类型和程度进行控制。
留存数据“留存数据”是一种特殊类型的VDE预算。任何类型的预算分发出现时,都会产生一个“留存数据”。留存数据与用于权利行使目的的原始预算(如,信息内容使用的付款)之间是不可区分的,但可以在分发记录中被唯一地标识为留存数据的数量,以及完成发送记录所需的所有必要信息,以便跟踪留存数据的位置。对于权利行使目的,留存数据与原始预算相同,但是对于跟踪目的,留存数据是可以唯一识别的。
在本发明的较佳实施例中,用户VDE节点和票据交换所服务将使用分发事件ID(Distribution Event ID)来跟踪和协调留存数据,即使在异步审核的情况下也是如此。这就是说,从跟踪角度来看,“新”留存数据预算是唯一的,而从使用角度来看,它是不可被区分的。
对于VDE分发进程来说,未决的留存数据是一种较好的中间控制。可以引入一个合适的“宽限期”,在此期间必须解决留存数据。如果过了这段期限,将会发生实际的计帐或付款。但是,即使上述宽限期已经到期并且已经进行了计帐和/或付款,留存数据仍然可以是未决的,并且仍然可以支持以后的调节。在这种情况下,审核员可以允许用户获得信用,或者用户可以连接到含有留存预算的VDE节点并解决一定数额作为内部信用。在某些情况下,如果留存数据没有在“宽限期”期间得到解决,或者存在重复的宽限期冲突,或者未决的留存数据过分庞大,缺少审核跟踪,可能足够导致分发者撤消再分发特权。
留存数据可以在用于各种各样的分发模式中。留存数据与预算别名建立一起使用时,开拓出了重要的其它可能的分发形式。在为预算建立别名情况下,用户将自身置于对象的控制路径中—一个建有别名的预算只能结合经过了修改可以识别该预算的许可记录使用。而留存数据则没有该限制。
例如,用户可能希望限制其孩子对其VDE节点电子VISA预算的使用。在这种情况下,用户可以在其VISA预算中为孩子的家庭别名预算生成一个留存数据,而为其妻子生成另一个,后者是原始VISA预算的透明留存数据。BigCo可以使用类似的机制将VISA预算分发给部门领导,而将别名的BigCo预算直接分发给用户。
帐号和用户ID在较佳实施例中,为控制对票据交换所的访问,用户在票据交换所被分配了一个帐号。从外人的角度来看,帐号为安全数据库记录提供了唯一的“实例”数值。从电子设备600站点的角度来看,用户、组、或组/用户ID提供了记录的唯一实例。例如,从VISA的角度来看,某人的金卡(Gold Card)属于帐号#123456789。从电子设备站点(如公司的某台服务器)的角度来看,该金卡可能属于用户ID1023。在大量用户和/或用户组使用一台VDE节点的组织中,这些用户和/或用户组可能被分配唯一的用户ID。不同的预算和/或其他用户权利可以被分配给不同的用户和/或用户组,并且/或者可以采用不同的方式将其它的VDE控制信息应用到分配有不同上述ID的用户对电子信息内容和/或设备的使用中。当然,票据交换所和本地站点都有可能带有上述两种信息,但是根据视角的不同“使用过的数据”与“说明数据”将会有所差异。
在较佳实施例中的“移动”情形中,与权利一起存放的帐号将保持不变。在较佳实施例的其它分发形式中,分发接收者需要一个新帐号。这个新帐号可以由系统自动产生,也可以按照分发者或再分发者开发的方法来产生。分发者在其本地名字服务中为每个分发接收者维护帐号(以及相关的访问秘密信息)。相反,分发接收者的名字服务则根据用户ID为每个分发者保存帐号。通常在“移动”情形中,该记录与其它记录一起移动,或在其它分发形式中,该记录则被生成。
当为新用户或用户组生成控制信息(如预算)时,各种组织(包括家庭)可以自动地分配唯一用户ID。
要求记录为了在收到某个VDE信息内容容器对象的一个或多个必要许可记录之前创建要求以及可能的选项,以便行使与该对象相关的权利,在该对象的私有头中可以包含一个要求记录。该记录将帮助用户在建立连接之前首先创建他们带有的信息以及他们需要从分发者那里得到的信息。如果行使特别权利的要求或可能性自对象发布之后已经发生了变化,那么在容器(如果该容器是可得到的或经允许的话)中除了对象以外可能还要放入一个修改了的要求,或者在启动注册过程之前可以首先向分发者请求得到新的要求记录。分发者可以维护在线的和/或传递给用户的要求记录和/或说明信息集合的“目录”,对于上述要求记录和/或说明信息集合对应的对象来说,分发者能够获得权利并且/或者将权利授予其他用户。
传递审核在较佳实施例VDE中,至少有两种审核。在预算分发的情况下,反映预算消耗的计帐记录通常需要经过收集和处理。在许可分发的情况下,与某个对象相关联的使用数据也受到频繁地要求。
为了有效地控制对象,制作者可以建立与某个对象相关联的基本控制信息。通过列出许可、各种安全措施的分发、管理和/或财务预算、以及允许的再分发的级别等,制作者可以实现上述目标。分发者(以及再分发者)可以进一步控制该进程不超越他们收到的权利、预算等(高级控制信息)范围。
例如,对象制作者可以规定其它的必要方法可以被自由地增添进其许可记录,为该行为不建立任何预算,并且允许无限制地分发该权利。作为另一个例子,制作者可允许分发者将使用权利转移给六个子分发者,每个子分发者都可以分发10,000份拷贝,但是不允许将任何再分发权利分配给子分发者(再分发者)的用户。再举一个例子,制作者可以授权将使用权仅转移给10个VDE节点,并且只支持一级分发(不允许再分发)。通过使用许可记录和/或部件组,信息内容提供者和其它控制信息的提供者有能力控制其他用户被授予的权利,将这些权利放在他们发送给这些用户的许可记录中委派出去,只要这些控制其他用户所拥有的一个、某些、或全部权利的上述权利或者经过了允许,或者经过了限制(这取决于控制信息分发模型)即可。一种可能的并且经常受到欢迎的方案是使用VDE来创建一种混合模型,在该模型中,禁止分发者控制后续用户的某些权利,但是允许其控制其他权利。在某些VDE模型中,至少对于一“级”或多“级”的分发链来说,权利分发的VDE控制将部分地或全部地由电子信息内容控制信息提供者进行控制,该提供者或者不兼任相关信息内容的提供者,或在所述信息内容控制信息的控制下只提供信息内容的一部分。例如,在某些模型中,票据交换所还可以充当权利分发代理,它向某些价值链参与者提供一个或多个权利,这些一个或多个权利可以被“连接到”一个或多个使用票据交换所信用的权利(如果所述票据交换所至少部分地是一个财务票据交换所)。作为一种选择或补充,上述控制信息提供者也可以限制其他用户的权利。
信息内容制作者或其他信息内容控制信息提供者可以为用户(如某个分发者)做预算从而为信息内容对象创建数量不限的许可记录,但是如果用户没有在预期的一个或多个时刻和/或经过某个时间间隔汇报其使用情况(提供审核报告)(并且/或者如果用户没有为其使用付帐,或违反了该用户与信息内容提供者之间所达成协定的其他方面),上述信息内容制作者或其他信息内容控制信息提供者可以通过一个到期/终止过程来撤消上述权利和/或其他重要的使用权利。(举例来说)可以由时间衰老加密密钥来强制执行上述终止过程(或暂停,或其它指定的结果)。时间衰老加密密钥用来加密控制信息的一个或多个方面。同样的终止过程(或其他指定的结果,如预算压缩、价格上升、将信息显示到屏幕上通知用户、向管理员发送消息、等等)也可以作为用户或用户VDE设备没能成功地完成一个受监视的过程所带来的后果,这种受监视过程的一个例子是以电子货币为使用行为付帐;出现该终止过程的原因也可能是用户或用户VDE设备没能成功地对被保存的重要信息(如信息内容和/或设备使用信息、控制信息、等)进行备份,多次反复未能使用正确的口令或其它标识符而出现的失败。
通常,可以由到期过程和/或其他终止过程强制收集审核信息,这些审核信息将被收集起来汇报给某个审核员。例如,用户的VDE节点可能(1)收到外部发来的指令通知它不能再执行某些任务;(b)在其控制结构中携带信息通知它不能再执行某些任务;或者(c)无论怎样都不能再执行某些任务。上述的某些任务可能包括一个或多个允许操作,这些允许操作归因于用户(或设备)或者没有将所述的审核信息汇报给所述审核员,并且/或者没有收到审核员接收和/或接受所述审核信息的安全确认。如果审核员没能从用户那里收到审核信息(或某些其它事件没能发生或没能正确地发生),一个或多个时间衰老密钥(这些密钥(举例来说)用作本发明实施例的安全部件)将突然加速(完成)其衰老过程,这样一来,与所述时间衰老密钥相关联的一个或多个过程将不能再执行。
授权访问标记和修改访问标记为了使用户VDE设备能够将审核信息传递给诸如票据交换所之类的VDE审核方,VDE允许VDE审核方安全地与用户VDE设备进行电子通信,并查询所述设备以期获取保存在所述设备安全子系统中的某些或所有信息,该过程要依赖于所述审核方的权利(如果所述审核方没有得到明确的授权允许他访问某些安全存贮的信息,那么他通常不能访问这些信息;也就是说,通常不允许一个信息内容提供者访问与另一信息内容提供者提供的信息内容相关联的信息内容使用信息)。审核方声明一个安全保密信息(如一个安全标记),该保密信息代表了审核方的一个权利集合,该权利集合允许审核方访问由所述子系统维护的某些信息。如果所述子系统确认了所述标记,审核方就可以接收特定审核信息—即允许他请求和接收的那些审核信息。
在审核跟踪的执行中有很大的灵活性。例如,制作者(或其它信息内容提供者、或控制信息提供者、或处于对象或审核报告处理链中的审核员)可以允许审核员改动事件跟踪,但不允许除他们之外的任何人阅读该跟踪,并且把该权利的再分发限制到(举例来说)六层。作为另一种选择,制作者或其它控制方可以授权分发者在报告其使用情况之前处理(举例来说)100,000个审核记录(并且/或者(举例来说)授权他们处理来自某个给定用户的12个审核记录)。如果制作者或其它控制方愿意的话,他可以支持(和/或要求)各自不同的(以及包含不同的、部分的、重叠的、或相同信息)带有审核信息的审核“包”,某些所述的审核信息由分发者处理,而另一些所述的审核信息则传回制作者和/或其它审核员(他们都收到同样的、重叠的、部分的、或不同的审核信息)。类似地,只要(举例来说)信息内容制作者允许,分发者(或其它信息内容和/或控制信息提供者)就可以要求(举例来说)在再分发者每处理50,000审核跟踪记录之后(或处理了任意其它的数量单位之后、和/或在某一时间间隔之后、和/或在某一预定的日期)就向他传送一次审核信息。在较佳实施例中,审核规则象其它控制结构一样可以在分发处理链的任意阶段被规定,只要规定所述规则的权利尚未由更“上级”的对象和/或控制信息分发(如审核)参与者所限制即可。
发送给不同审核员的审核信息可以由一个或多个不同密钥加密,每个审核员的VDE节点都已经安全地提供了这些密钥;同时这些密钥被传送出去以包含在用户的许可记录中,这是(举例来说)对象注册过程中的必要步骤。这种方式可以提供附加的安全性,以便(除了使用口令和/或其它识别信息或其它VDE安全措施之外)进一步确保审核员只能访问他得到授权的审核信息。在一个实施例中,可以为不同的审核员将(例如采用管理对象形式的)加密的(和/或未加密的)审核信息“包”装配在一起,这些审核员包括票据交换所和/或信息内容提供者和/或其它审核信息用户(包括(举例来说)市场分析员和/或清单提供者)。上述信息可以通过单条处理链安全地传递出去,例如该处理链可以是从用户到票据交换所、到再分发者、到发布者和/或信息内容制作者;该链由VDE审核控制结构和参数规定。作为另一种选择,可以要求将加密的(或未加密的(未加密的形式通常不太理想))审核包从用户直接传播给大量的审核员,这些审核员中的一个或多个有责任将审核包“传递”给其它审核员。在另一个实施例中,可以将审核信息传递给(举例来说)票据交换所,然后由票据交换所将所述信息(和/或某些经过处理的结果)的所有部分和/或适当部分再分发给一个或多个其它方,所述再分发过程使用了由所述票据交换所创建的VDE安全对象。
审核员(审核信息的接收者)的一个重要功能是向用户VDE节点传回管理事件作为确认,表明审核信息已经被收到和/或“认可”。在较佳实施例中,收到和/或接受审核信息之后将会执行两个进程。第一个事件将导致准备一个审核报告的VDE节点中所含的审核数据被删除,或被压缩成或添加到一个或多个摘要数值中。第二个事件或事件集合将在审核信息接受者的所述VDE节点中“通知”相关安全性(如终止过程或其它结果过程)控制信息(如预算),修改过期日期,进行密钥更新,和/或其它相应处理等等。在大多数情况下,在收到审核跟踪之后,这些事件将被立即发送到某个站点。在某些情况下,上述传送过程可以被延迟,以便(举例来说)首先允许对用户发给审核员或其它方的审核跟踪和/或付款进行处理。
在较佳实施例中,有关信息内容对象和独立分发的方法和/或部件组的管理事件是类似的,但不一定要完全相同。例如,对预算的密钥更新可以控制计帐跟踪的加密,而不控制对象信息内容的解密。预算的计帐跟踪从各个方面来说都是一个方法事件跟踪。在一个实施例中,该跟踪必须在分发记录中为留存数据保存足够的引用,以便票据交换所可以进行调节。如果宽限期已过而预算创建者又允许若过期的留存数据被“返回”制作者,未决的留存数据最终可以产生自动信用,那么将会出现上述动作。
通过处理路径交付审核报告的过程可以部分地由反向(信息返回)审核方法提供保证。许多VDE方法至少有两部分一个部分用来管理用户VDE节点中产生审核信息的进程;另一部分负责对审核数据进行后续处理。在处理多个审核员需要的合并审核信息的过程示例中,票据交换所(或其它审核员)收到单个容器对象。该容器可以含有(1)某些加密审核信息,这些信息由票据交换所本身使用;(2)某些其它加密审核信息,这些信息去往其它一个或多个审核方。这两部分信息可以带有相同的、重叠的或部分不同的、或完全不同的信息信息内容。作为另一种选择,票据交换所VDE节点能够处理提供来的某些或所有审核信息。该审核信息可以部分地、或完全地、以某种摘要的和/或分析的形式由票据交换所进行进一步的处理,并且/或者可以与其它信息合并在一起,以形成至少部分派生的信息部分,并被插入到一个或多个至少部分安全的VDE对象中,这些对象将被传送给所述一个或多个(其它的)审核方。当所述反向(返回)审核方法在所述票据交换所VDE节点中安全地处理审核信息容器时,票据交换所VDE节点可以创建一个或多个VDE管理对象,以便把审核信息安全地传送给其它审核员,同时对那些指定由所述票据交换所使用的安全审核信息进行单独处理。安全审核进程和信用信息在VDE参与者之间的分发过程通常在VDE的安全“黑盒子”中发生,也就是说,各种进程在VDE安全PPE 650中得到安全地处理,并且通过使用VDE安全通信技术(如公开密钥和鉴别)在VDE参与者的VDE安全子系统之间安全地传送审核信息。
上述类型的反向审核方法可以指定采用何种方式对返回的审核信息进行处理,包括(举例来说)对审核信息的本地处理以及/或者将审核信息安全地传送给一个或多个审核方。如果审核信息未传送给一个或多个其它审核方,而上述传送可能是所要求的,并且可能是所述一个或多个其他审核方、和/或信息内容提供者、和/或控制信息提供者在许可记录说明和/或修改进程中已经制定的准则中所规定的,那么如果(举例来说)没能收到审核方(如信息内容提供者)发来的、已收到所需审核信息的成功传送通知,将会导致传送通过方VDE节点中的至少部分功能被禁止(例如,禁止继续执行某些一个或多个由VDE管理的商业功能,而这些功能则涉及到与所述审核或审核方相关联的对象)。在上述较佳实施例的示例中,当审核员收到一个对象后,该对象将被自动注册,而许可记录内容则放入审核员VDE节点的安全管理数据库中。
在审核信息报告交换过程中(或在用户和审核员或审核员代理之间的其它电子交互作用中)用户系统可能会接收到一个或多个许可记录,这些许可记录管理审核报告对象的创建和使用(并且还可能管理对象使用的其它方面)。收到的每个许可记录都可以管理下一审核报告对象的创建。在报告了审核信息之后,用户的VDE节点可以要求得到一个新的许可记录以便恢复对审核报告创建的管理功能,并恢复下一审核报告周期中的审核信息传送。在上述的例子中,使审核员为审核报告之用向用户提供一个或多个许可记录可以要求审核员(如票据交换所)已经从“上游”审核员(如信息内容和/或其它信息内容控制信息提供者)那里收到了某些特定的许可记录本身。由这些上游权限记录提供的信息可以被集成进审核员VDE(如票据交换所)设备的一个或多个许可记录中,该审核员VDE设备管理许可记录创建周期以产生含有某些许可记录的管理对象,所述许可记录在审核信息报告交换过程中去往用户。如果上游审核员没收到和/或不能处理所需的审核信息,该上游审核员将无法向(在本例中的)票据交换所提供所需的许可记录信息,而该信息则是用来允许分发者支持一个或多个对象(或对象类)的下一许可记录创建/审核周期。结果,票据交换所的VDE节点就无法为用户产生下一周期的许可记录,并且/或者无法执行某些其它重要进程。上述审核报告控制进程可以完全是电子进程管理,其中涉及了在预期的审核信息接收者和发送者两处发生的事件驱动VDE活动,并使用了他们两者的安全PPE 650和VDE安全通信技术。
在较佳实施例中,用户每次向其自身的VDE节点注册新对象时,并且/或者作为另一种选择,用户每次向远程票据交换所和/或分发者VDE节点注册新对象时,将会出现一个或多个许可记录,用来至少部分地管理对所述对象的使用。可以在安全UDE注册过程(使用了VDE设备安全子系统)中动态地提供上述许可记录,或者在初始注册过程结束之后提供,并且在以后某个时间接收该权限记录,例如可以通过一个或多个独立的安全VDE通信过程进行接收,该通信过程包括(举例来说)接收到包含或携带所述信息的物理结构。至少一个涉及向用户提供一个或多个许可记录的进程会触发一个计量事件,其结果是将创建审核信息以反映用户VDE节点的、票据交换所的、以及/或者分发者的许可记录提供进程。该计量进程不仅记录一个或多个许可记录已被创建,它还可以记录VDE节点名、用户名、相关对象识别信息、时间、日期、和/或其它识别信息。某些或所有上述信息可以成为审核信息的一部分,这些审核信息由票据交换所或分发者(举例来说)安全地汇报给审核信息内容制作者和/或其它信息内容提供者。这些信息可以由接收审核员站点的安全VDE应用软件对照由所述票据交换所、或分发者、或所述用户发来的用户审核信息进行调节。对于每个被计量的一个或多个许可记录(或许可记录集)(创建这些权限记录是为了使用户(和/或VDE节点)可以用来管理对特定一个或多个VDE对象的使用、和/或管理VDE对象审核报告的创建),最好是审核者接收至少部分含在加密审核报告中的对应审核信息。对许可记录创建的计量、安全加密审核信息的报告进程、安全VDE子系统对计量信息的调节—该计量信息反映了利用接收到的审核报告细节如何创建注册过程和/或审核报告许可、以及一个或多个安全VDE设备过期进程、和/或其它终止过程和/或其它结果过程、凡此种种结合使用显著增强了VDE安全审核报告进程的完整性,使之成为一个可信有效的商业环境。
安全的文件管理示例VDE可以用来实现安全的文件管理环境。下面给出了实现此目的的几个例子。
在一个例子中,假设一个法律事务所希望使用VDE 100来管理文件。在本例中,作为法律队伍一个组成部分的法律事务所可能采用下列方式使用VDE 安全地控制对客户机密记录的访问和/或其它使用 安全地控制对法律事务所创建的文件和备忘录的访问、分发和/或其它使用权利 安全地控制对涉及案件的调查材料的访问和其它使用 安全地控制对涉及案件的记录、文件和笔记的访问和其它使用—包括分发 安全地控制诉讼队伍中其它事务所如何使用(包括改变)分发给他们供其评论和审阅的摘要 帮助管理客户计帐法律事务所还使用VDE向法庭(假设法庭也具有VDE功能)电子提交辩护状,包括对提交人的ID(如数字签名)以及与所述提交步骤相关的其它信息进行安全审核验证。
在本例中,法律事务所从客户的VDE设备安全子系统收到VDE信息内容容器文件。作为另一种选择或补充,法律事务所可以或者收到实际的文件—该文件可以被扫描成电子的形式,以及/或者收到尚未放入VDE容器中的电子文件。电子形式的文件被保存在与特定客户和/或案件相关的VDE容器(对象)中。VDE容器机制支持层次化的排序方案以便在容器中组织文件和其它信息。该机制可以用来组织容器中文件的电子拷贝。VDE容器与特定访问控制信息和权利相关联,这些访问控制信息和权利在涉及该容器的一个或多个许可控制信息集合(PERC)中描述。在本例中,只有法律事务所中拥有VDE实例、适当的PERC、以及含有所需文件的VDE对象的那些成员才可以使用上述文件。作为另一种选择或补充,法律事务所成员可以使用已经装入法律事务所网络服务器的VDE实例。在这种情况下,该成员必须可以由适当的PERC识别,并且必须能够访问含有VDE对象的文件(以便使用服务器VDE设备)。通过使用一个或多个用户VDE设备的安全子系统保证了对电子文件的基本访问控制。
VDE可以用来以几种方式提供基本使用控制。首先,它允许在单个对象中“嵌入”多个容器。被嵌入的对象支持容器中的控制结构“嵌套”。VDE还将使用控制信息延伸到任何粒度级(与传统操作系统所提供的文件级控制信息相反),并提供了灵活的控制信息,以控制与特定信息相关的任何行为,所述的特定信息可描述为受VDE控制的进程。例如,可以使简单的控制信息与查阅文件的一个或多个部分相关联,使附加控制信息与编辑、打印和拷贝同一文件的相同和/或不同的一个或多个部分相关联。
在本例中,“客户”容器包含了该客户已经提供的所有文件(可以使用VDE抽取和嵌入技术将在其它容器收到的文件安全地抽取出并嵌入到VDE客户容器中)。本例中的每个文件都作为一个对象存放在父客户VDE容器中。“客户”容器还嵌入了若干其它对象。其中,一个对象由律师用来存放其客户笔录,一个(或多个)对象用来存放调查结果和相关信息,同时,至少有一个对象用来存放法律事务所已经产生的信件、工作记录、以及提要等。客户容器还含有有关客户的其它信息,包括有关计帐、时间、帐户、和付款的电子记录。将VDE对象嵌入到父VDE信息内容容器中提供了一种简便的方法,以安全地分类和/或存放共享类似控制信息的不同信息。客户提供的所有文件都可以(举例来说)受涉及使用和非泄露事宜的相同控制结构所控制。律师笔记可以要受控制信息的控制,(举例来说)只有特定的律师才能使用这些笔记,这些律师可以是创建该笔记的律师,或者可以是上述创建笔记的律师明确授予访问权的律师。嵌入的容器还提供了控制不同信息集合的简便机制。例如,可以把调查对象以VDE“智能对象”的形式存放(或从VDE“智能对象”派生),这些“智能对象”保存了由上述调查对象经过调查得到的结果。涉及案件(案件从具有VDE功能的LEXIS站点获得)一个方面的的调查结果可能被密封成一个智能对象;而涉及案件另一(或同一)方面的另一会话结果可能被密封成另一个对象。在本例中使用智能对象有助于说明可以根据愿望和/或要求将完全不同的和独立交付的控制信息装入客户容器中,以便加强提供者(例如信息内容所有者)的权利。
可以使用控制结构来管理任意种类的所需粒度分组和/或逻辑文件内容分组,如文件、页、段落、相关主题的材料等等。在本例中作以下假设客户提供的文件在页级控制,律师笔记在逐个律师的基础上在文件级控制,法庭文件和辩护状在文件级控制,调查信息在进行调查时由信息内容提供者指定的任意级别上控制,而处于上述各种信息内容中的某些高度机密信息则被标记出来,使之只能被显示或加入注释,并且只能由首席合伙律师进行上述操作,同时也只有信息内容给定部分的制作者和/或嵌入者有权使用上述信息(打印、抽取、分发等等)。
通常,对本例中容器信息内容的控制涉及到权利的分发。在文件级,控制信息涉及所有内部产生的文件;页级,控制信息涉及客户级的文件;而在由信息内容提供者指定的级则涉及调查文件。
可以以复杂的结构或者简单的结构组织VDE控制信息,这取决于参与者的愿望。在某些情况下,VDE制作者将采用一系列他们优选的控制结构定义(这些定义由管理规则说明和控制信息的VDE应用进行支持;VDE应用或者直接提供上述支持,或者通过使用经验证的应用兼容VDE部件组来提供上述支持)。
在本例中,法律事务所在接收案件时首先为其新客户创建标准的VDE客户信息内容容器。法律事务所VDE管理员将为新客户建立VDE组,并将事务所中经过特许可以处理该案件的律师的VDE ID加入上述VDE组中,同时如果适当的话还提供一个或多个用户模板应用。这些模板提供(举例来说)一个或多个用户接口和相关控制结构,以便用户选择附加和/或另外的控制功能(如果上级控制信息允许的话),提供控制参数数据条目,以及/或者执行用户指定的管理任务。管理员结合使用创建工具和预定的创建模板创建上述容器。这个创建模板为上述文件规定了使用(包括分发控制信息)。来自客户的每个电子文件(包括信件、备忘录、电子邮件、电子表格等等)于是被加入上述容器中作为单独嵌入的对象。每个新对象的创建都使用了创建模板,该模板满足容器所规定的默认控制结构是给定的类型各新对象所要求的。
在各个律师处理案件的时候,他们将笔记输入存放在客户VDE容器中的对象中。可以利用法律事务所已经使用的VDE感知型字处理器将上述笔记取出。在本例中,VDE重定向器通过使用结合一个或多个VDE PPE进行操作的VDE控制进程来处理将字处理器文件请求安全地映射到VDE容器及其对象上。对于某些类型的律师笔记,如果其文件类型不能根据信息内容自动确定,那么可以通过律师帮助使用默认创建模板创建该律师笔记对象。这种方式允许VDE自动在预定的级别对笔记进行检测和保护,这些预定级别的例子有文件级、页级、段落级等。
使用VDE可以自动地管理调查工作。智能对象可以用来从信息高速公路上具有VDE功能的信息源中安全地搜索信息、在必要的时候为使用上述信息付帐,并且检索上述信息。
上述信息源的例子可能包括LEXIS、Westlaw以及其它相关法律数据库。一旦检索到信息,可以将这些信息安全地嵌入到VDE信息内容客户容器中。如果智能对象还包含了未公布的信息,那么整个智能对象都可以被嵌入到客户的VDE容器中。上述方式使未公布的信息受到双重VDE控制要求的限制,在所述双重VDE控制要求中,一部分涉及从智能对象中公布信息(例如付帐和/或审核要求),另一部分涉及对指定类型的客户信息的访问或其它使用。
可以采用律师笔记的控制方式对提要和其它文件进行控制。可以使用法律事务所中的标准字处理器来编辑这些文件,利用使用控制结构来控制谁可以对文件(或者在更复杂的例子中,对所述文件的某一部分)进行审阅、改变、和/或增添内容。VDE还可以支持电子提交答辩状,其方式是提供可信的源,由该源加盖时间/日期戳以及对提交的文件进行确认。
当客户和律师希望通过电子邮件或其它方式交换机密信息时,VDE可以起重要作用,即它能够确保上述信息是在特权准许下进行交换,经过了正确的控制,并且没有遭受不当泄露和/或使用。存放在VDE信息内容容器对象中的材料(信息内容)通常被加密。经过如此包装之后,将VDE对象分发给接收者可以不必担心出现未授权的访问和/或其它使用。只有收到对象的一个或多个特许用户才能打开该对象并查阅、和/或操纵、和/或修改其信息内容,同时,VDE安全审核确保了对用户进行的所有上述信息内容活动留下记录。(举例来说)在管理员审阅了用户使用审核信息之后,如果必要的话,VDE还允许撤消对客户/律师特权信息的使用权。
大型组织示例在有点更具通用性的一个例子中,假设某个组织(如一个公司或政府部门)具有数以千计的雇员和大量的办事处,而这些雇员和办事处又分布在大范围的地理区域内。在这样的前提下,该组织希望对分发属于该组织(或团体)的信息行使控制。上述信息的形式可以是正式文件、电子邮件消息、文本文件、多媒体等等,这些形式的信息统称为“文件”。
这些文件可以由某些人员(称为“用户”)进行处理,并且/或者可以由计算机代表用户进行处理。这些文件既可以存在于电子形式供存贮和传输,也可以存在于书面形式供手工处理。
这些文件可以完全来源于该组织内部,也可以完全或部分地根据从组织外部接收来的信息创建。组织内部的特许人员可以决定整个地或部分地将文件发布给组织外部的实体。某些上述实体也可以使用VDE进行文件控制,而另外一些实体则可以不使用。
文件控制策略上述组织作为一个整体应该具有严格定义的策略以执行文件的访问控制和/或其它使用控制。该策略可以基于信息流的“格状模型”(lattice model),在模型中,文件的特征是具有一个或多个层次化“分级”安全属性9903以及零个或多个非层次化“间段”(Compartment)安全属性,所有上述属性一起构成了敏感性安全属性。
分级属性将文件敏感性的总体级别指定为有序集合中的一个元素。例如,集合“不保密的”、“保密的”、“机密的”、“绝密的”可能适合于政府中的设置,集合“公开的”、“内部的”、“机密的”、“注册机密的”可能适合于公司中的设置。
间段属性可以指定文件与组织内部一个或多个特定活动之间的关联,这些活动的例子有部门分支(如“研究”、“开发”、“市场”)或组织中的特定项目。
每个使用电子设备600的人员都将被授权用户分配特许敏感性属性集合,这些属性用来指定上述文件或某些文件类型的一个或多个部分,可以由上述人员的电子设备采用一种或多种特定方式对这些属性进行处理。文件的敏感性属性必须属于用户可访问的特许敏感性属性值集合。
另外,该组织可能希望允许用户对其负有某些规定责任的特定文件行使控制权。例如,用户(“原始创建用户”)可能希望对某个文件设置“原始创建者控制”(“ORCON”)限制,这样一来,该文件只能由该用户指定的其他特定用户传送和使用(并且只能以某种经明确授权的方式传送和使用)。如果在文件创建之后可以修改“分发列表”的话,特别是当某人要求原始创建用户提供权限使其能够将文件传送到原始特许接收者列表之外的接收者时,采用上述限制可以带来灵活性。原始创建用户可能希望特许的分发接收者只包括特定用户、规定的用户组、规定的地理区域、某些执行特殊组织任务的授权用户、或上述某些或所有接收者的组合。
在本例中,该组织还可能希望允许用户规定程度较弱的分发限制,例如对文件的访问将进行如上限制;但是,接收者可以不受其它限制地从文件中将某些或所有信息抽取出来并重新分发出去。
该组织和/或原始创建用户可能希望了解文件分发给了哪些使用或哪些地理位置。该组织可能希望(举例来说)根据存放在站点配置记录和/或名字服务记录中的地理信息了解带有特定保护属性的文件被分发到了哪里。
用户可能希望得到有关被分发文件的“回执”,或者可能希望收到某些标志,表明文件的接收者已经对文件进行了什么处理(例如,该文件是否已被阅读、打印、编辑和/或保存),其实现方式可以是(举例来说)通过在涉及该文件的PERC中规定一个或多个审核要求(或已知已带有审核要求的方法)。
用户环境在如上所述的一个组织(或团体)中,用户可以使用各种电子设备600以处理和管理文件。这些电子设备可以包括联网的或未联网的个人计算机、功能强大的单用户工作站、以及服务器或主机计算机。为了支持本例中所述的控制信息,可以借助于支持SPE 503和/或HPE655的VDE安全子系统对每个参与使用和管理受VDE保护文件的电子设备进行功能加强。
在某些组织中,安全操作所面临的潜在威胁相对较低,这样的组织使用HPE 655可能就足够了。在另一些组织中(如政府防务部门),有必要在任何需要处理受VDE保护的文件的情况下都使用SPE 503。在不同的组织中,对增强环境和技术的选择可以不同。即便在一个组织使用了不同类型的PPE 650来服务不同的要求,这些PPE 650也是兼容的,它们可以操作同一类型(类型子集)的文件。
用户可以使用某些经过定制的应用程序,这些程序与VDE协作共同处理受VDE保护的文件。这些程序的例子包括VDE感知型文件阅览器、VDE感知型电子邮件系统、以及类似的应用。这些程序可以与用户电子设备600的PPE 650部件通信,使受VDE保护的文件对用户可用,同时又限制对其内容的使用程度,可能使用类型包括拷贝、保存、阅览、修改、以及/或者传送和/或进一步分发至特定电子设备之外。
用户可能希望使用商业上现成的(“COTS”)操作系统和应用程序来处理受VDE保护的文件。一种允许使用COTS应用程序和操作系统的途径是仅对没有分发限制的文件允许上述使用。标准的VDE操作系统重定向器将允许用户以等同于访问普通文件所用的方式来访问受VDE保护的文件。不过如果使用这种途径,在被保护的对象对COTS应用可用时,用于计量和/或审核使用的控制链可能会发生一定程度的“断裂”。可以使用VDE的指纹(水印)技术来方便对任何已发布信息的继续跟踪。
可以使用多种技术来保护对受保护文件的打印,例如可以使用基于服务器的解密机、用来“按指纹”的特殊字体,等等。
另一种支持COTS软件的途径是使用运行在用户电子设备中的VDE软件来创建一个或多个“虚拟机器”环境,在该环境中,COTS操作系统和应用程序虽然可以运行,但是除非得到VDE的控制,否则任何信息都不会永久地保存在该环境中,也不会从该环境中传递出去。这种环境将允许VDE管理所有受VDE保护的信息,同时也允许在受约束环境的限制范围内无限制地使用COTS应用来处理上述信息。VDE 100可以将上述环境的整个内容视为读入该环境中的任何受VDE保护文件的扩展。将信息传送出该环境的操作可以由与原始文件相同的规则来控制。
“粗粒度”控制功能前面讲过,一个组织可以使用经VDE加强的控制功能来管理整个文件的安全性、分发、完整性、和控制。下面列出了这些功能某些例子1)可以为连接两个或多个电子设备600的通信信道分配特许敏感性属性集合。在该信道中只允许传送那些其敏感性属性属于该集合的文件。这种方式可以用来支持可信计算机系统评价规范(TCSEC)的设备标签(Device Label)要求。
2)可以为连接到或安装于电子设备600的可写存贮设备(如固定磁盘、软盘、磁带机、光盘)分配特许敏感性属性集合。只有那些其敏感性属性属于该集合的文件才被允许保存在该设备中。这种方式可以用来支持TCSEC设备标签要求。
3)文件可以与一个用户列表相关联,该用户列表说明了得到允许可以“处理”该文件的用户。该用户列表可以只说明(举例来说)可以阅读该文件的用户,对于其他用户来说,即使他们收到了该文件容器,也不能操作其内容。这种方式可以用来支持标准的ORCON处理警告。
4)文件可以带有一个特定属性,该属性指定了其原始创建者,并且,在该文件的信息内容被阅读之前,该属性要求出示由该原始创建者授予的明确权限。当用户访问该文件时,或(举例来说)一个用户将该文件分发给另一个用户时,将会出现上述许可要求。如果没有授予上述许可,将不能操作或使用该文件。
5)文件可以具有一个特定属性,该属性要求对该文件每次使用都必须报告给文件的原始创建者。原始创建者可以使用这种机制控制对该文件的分发。作为一种可选方案,可以在允许对文件进行任何使用之前就要求将报告成功提交,这是为了确保控制方能够在使用发生时知道文件已被使用。作为另一种方案,(举例来说)可以采用延迟(“批处理”)方式提交报告。
6)文件可以具有一个特定属性,该属性要求对该文件每次使用都必须报告给中央文件跟踪票据交换所。上述组织可以使用这种机制跟踪特定的文件、对由任何特定用户和/或用户组所使用的文件进行标识,以便跟踪具有特定属性(如敏感性)的文件、等等。作为一种可选方案,可以在允许对文件进行任何使用之前就要求将报告成功提交。
7)受VDE保护的文件可以具有一个特定属性,该属性要求对该文件每次使用都必须产生一个“回执”并发给原始创建者。可以要求使用该文件的人回答特定的问题以产生回执,例如可以让他说明为何对该文件感兴趣,或让他说明(在读后)对该文件内容的某些了解。使用这种机制可以确信该文件已经经过了某人的处理,而不是被任何的自动软件机制处理。
8)可以使受VDE保护的文件的信息内容对VDE非感知型应用程序可用,该方式的特点是可以通过上述文件信息内容唯一地识别出(跟踪出)将它发布的用户。于是,如果处于已发布形式中的上述文件被进一步分发时,可以确定其来源。可以在发布信息内容时采用VDE“按指纹”以便实现上述机制。类似地,可以使用类似的、采用VDE指纹的唯一性技术对打印出的受VDE保护的文件做标记,这样就可以确定最开始打印该文件的人,即使从他打印时起已经制作了许多拷贝。
9)在预算的控制下,可以允许使用受VDE保护的文件,所述预算(根据访问的规模、时间等)限制对文件内容的访问或其他使用。这种方式通过限制在固定的时间内个人可以访问的VDE文件数目,有助于防止大批地暴露文件。例如,对于某些特定类型的文件,上述控制的一个例子可能允许用户每天最多阅读100页,但是每天只能打印10页,并且只允许在工作日的上午9点到下午5点之间打印。作为另一个例子,用户可以被限制为只能使用受VDE保护的文件中逻辑相关的、相对“邻接的”和/或具有某种其它模式(如根据共享某个字段中的标识的记录数量来限制对数据库记录的使用)的一定数量,这样可以表明(举例来说)出现一种或多种(在平常情况下或任何合理情况下)过分使用数据库的类型。因此,VDE信息内容提供者可以将使用VDE信息内容的行为限制成可接受的使用特征,同时(例如通过向VDE管理员或组织监察人员生成一份异常报告)可以阻止和/或识别用户对(举例来说)上述信息数据库资源的不合理使用企图。
上述控制功能展示了几个例子,它们说明了如何使用VDE提供一个灵活的交互式环境以跟踪和管理敏感性文件。这种环境可以按照物理位置、按照组织等直接跟踪文档从一个人到另一个人的流动过程。它还允许对特定的问题给予回答,例如“哪位研究开发(R&D)部外部的人员收到了任何由研究开发部控制的文件”。由于受VDE保护文件的每份拷贝都带有控制信息,并且该控制信息可以确保在出现文件使用时中央记录得到更新并且/或者原始创建者将得到通知,因而跟踪可以十分迅速和准确。
上述机制与跟踪书面文件的传统方式相反在传统方式中,通常使用手工收集和处理收据的书面型系统。文件可以被单独制作了编号拷贝并经过了签名,但是一旦被分发出去,实际上就不受控制了。在传统书面型系统中,实际上不可能确定文件所处的真正位置;只有所有方都严格遵守处理规则(而这种要求至少也是方便的)时才可能维持控制。
如果在普通的计算机和网络系统环境中进行文件的处理,那么上述情况也没有什么改善。尽管所述系统可以根据用户身份加强访问控制信息,并且可以提供审核机制以跟踪对文件的访问,这些仍然是不允许跟踪或控制信息内容的流动的低层机制。在这种系统中,由于文件信息内容可以被自由地拷贝和处理,因而不可能确定文件信息内容去了何处,或它来自何方。另外,由于普通计算机操作系统中的控制机制运行于较低的抽象层,因此由它们所控制的实体无须一定与用户处理的实体相同。这将尤其会导致审核跟踪与大量描述无关活动的信息混杂在一起。
“细粒度”控制功能除了控制和管理整个文件,用户还可以使用定制的VDE感知型应用软件来控制和管理对文件的个别修改。下面给出了这些功能的一些例子1)可以允许VDE信息内容用户往VDE文件中增添附加信息,用以表明他所建议的另一种措辞。该文件的所有其他用户都可以看到(除了原有正文以外)该建议可选措辞,但只有该文件的所有者才能将(举例来说)之合并到实际的正文中。
2)可以允许VDE用户组修改文件的一个或多个部分,其修改方式是通过每个单独的修改都可以唯一地跟踪出执行修改的特定用户。修改文件特定部分需要有特定权利,以及为不同用户提供不同权利集合的这种功能扩展,允许一个组织或安全环境提供不同的许可,使同一信息内容的不同用户具有不同的权利。
3)用户组可以利用提供来的各份材料逐渐地创建VDE文件。这些提供的材料可以在单个受控制的文件中合并到一起,但是(举例来说)在它们以嵌入容器对象形式被嵌入到VDE信息内容容器的过程中,它们中的每一个都被各自作了标识。
4)可以使用VDE控制和管理功能对涉及文件个别区域的活动进行跟踪,例如,可以记录文档的每一节已经被阅读了多少次。
示例—受VDE保护的信息内容存放库随着“数字高速公路”的出现,通过网络—特别是通过诸如Internet之类的公用网络分发信息内容的问题引起了人们大量的讨论,通过公用网络得到信息内容有下面几种方式 将信息内容“邮寄”给用户,作为对用户请求或预订(发送一个标记,表示已提交了购买某件商品的电子资金或信用)的响应; 允许从某个组织自己的信息内容存放库中下载信息内容,该存放库含有(举例来说)大量的产品(如软件程序)和/或大量的信息源,它们通常被组织成一个或多个数据库;以及 支持公共的存放库,其他方可以将他们的产品存入该存放库,以便再分发给消费者(所述的再分发过程通常是收到请求后,制作一份电子拷贝,然后将该拷贝再分发给消费者)。
VDE节点的一种可能实现中使用了一个或多个“存放库”。一个存放库(举例来说)是VDE参与者可以从中获取VDE信息内容容器的地点。在这种情况下,VDE用户可以使用一个网络访问一个“服务器”系统,该服务器允许一个或多个VDE用户访问一个含有VDE信息内容容器的对象存放库。
某些VDE参与者可以创建或提供信息内容和/或VDE信息内容容器对象,然后将信息内容和/或信息内容对象保存在一个存放库中,以便其他参与者可以从已知的和/或(为了检索的目的)经过有效组织的位置访问上述信息内容。例如,一个VDE存放库(VDE存放库的部分、多个VDE存放库、以及/或者向这种存放库提供信息内容的提供者)可以通过向一系列网络用户发送电子邮件,向外界做广告某些类型的受VDE保护信息内容已经可以得到。如果网络用户的电子设备中含有安全VDE子系统,他们可以决定直接访问上述存放库,或者通过一个或多个智能代理并使用(举例来说)一个应用程序对可从存放库得到的受VDE管理的信息内容进行浏览(和/或电子地搜索),下载所需的VDE信息内容容器,然后使用该容器。如果该存放库成功地吸引了对其信息内容感兴趣的用户,VDE信息内容提供者可以认定该存放库是一个理想位置,可以使他们的信息内容由用户非常方便地访问得到。如果某个存放库—如CompuServe-以非加密(明文)的形式存放了信息内容,它可以根据“需要”对“输出”的信息内容进行加密,方法是将该信息内容与所需的控制信息一起放入VDE信息内容容器中,并可以使用VDE安全通信技术将信息内容传送至VDE参与者。
VDE存放库还可以提供其他VDE服务。例如,存放库可以决定提供财务服务,其形式可以是从该存放库提供信用,该信用可以用来支付使用从该存放库中获取的VDE对象所需的费用。作为另一种选择或补充,VDE存放库可以代表VDE制作者或其他参与者(如分发者、再分发者、客户管理员等)为VDE用户提交的使用信息提供审核信息票据交换所服务。这种服务可以包括分析上述使用信息、创建报告、收集付款等。
“全业务”VDE存放库可能对提供者和受VDE管理信息内容的用户来说都有吸引力。受VDE管理的信息内容的提供者可能希望将他们的信息内容放到一个被用户熟知的地方,这个地方可以提供信用,并且/或者可以为他们提供审核服务。在这种情况下,提供者可以将精力集中在创建信息内容上,而不是集中在管理某些管理进程,例如以“零售”的方式供应信息内容,从许多VDE用户那里收集审核信息,发送帐单和接受付款,等等。当VDE用户试图查找他们感兴趣的信息内容时,他们会发现单一地点(或存放库的集成方案)的方便性具有相当的吸引力。另外,全业务VDE存放库可以作为一个单一地点来存放使用信息报告,这些报告是由于用户使用了从VDE存放库接收的、受VDE管理的信息内容而产生的,以及/或者由于用户收到了更新的软件(如VDE感知型应用、加载模块、部件组、非VDE感知型应用、等等)。可以结合各种VDE信息内容传递过程(例如通过广播和/或CD-ROM之类的物理介质进行传递)一起使用VDE存放库服务,这样可以形成集成的信息内容资源系统供用户根据需要进行浏览、搜索、和/或筛选,从而满足VDE用户的信息内容需求。
可以为非盈利的或盈利性的目的创建和维护一个公用的存放库系统。提供这种服务的组织可以采用某种形式收取服务费,例如,以一次交易为单位并且/或者按照用户为信息内容付帐和/或花费的比例收费。存放库服务可以向信息内容制作者、发布者、分发者、和/或增值提供者提供VDE创作工具,这样他们就可以应用适当的规则和控制规定部分或全部的指导方针,这些指导方针用以对使用其信息内容的活动进行管理,因此,他们就可以把上述信息内容放入VDE信息内容容器对象中。
可以在一个地点维护存放库,或者可以将存放库分布在各种电子设备之中,例如分布在各种服务器(如视频服务器)之中,上述大量的电子设备可以位于不同的地点,但仍然构成了单一的资源。VDE存放库方案可以使用VDE安全通信和VDE节点安全子系统(“受保护的处理环境”)。包含用户所需的给定信息单位或集合的信息内容可以遍布在各种实际地理位置。例如,代表公司股票收盘价和股票活动(出价、低价、高价等)的信息内容可以位于纽约的环球网(World WideWeb)服务器中,而代表公司分析的信息内容(例如对公司历史、人员、产品、市场和/或竞争者的说明)可以位于达拉斯的服务器。可以使用VDE机制存放上述信息内容以便可以对其安全地使用,并且对使用活动进行审核。如果上述一个或多个站点有足够的、其他形式的安全保障措施(如物理安全性、口令、经过保护的操作系统、数据加密、或特定信息内容类型足够的其他技术),那么就可以采用明文的方式维护上述信息内容。对于后者,在信息内容流出存放库的时候至少要部分对之加密并且将之放在VDE容器中,以便支持安全的通信、后续的VDE使用控制、以及使用结果管理。
用户可以要求有关公司的信息,包括股票和其他信息。该请求可以(举例来说)首先通过位于波士顿的目录或更为复杂的数据库配置被转送出去。这种方案可以带有指向纽约和达拉斯存放库的指针,并且从这两个存放库检索信息内容。可以将信息内容装在两个容器(如来自达拉斯的VDE信息内容容器对象和来自纽约的VDE信息内容容器对象)中直接转送给用户。当上述两个容器被用户的电子设备处理时,它们可以在单个VDE容器(该容器可以带有两个信息内容对象,分别含有来自达拉斯和纽约的信息内容部分)中形成两个VDE对象。作为另一种方案,可以在波士顿将上述的对象集成以形成单个VDE容器,这样,可以在单个容器中将信息交付给用户,从而简化用户站点的注册和控制。来自两个地点的信息信息内容可以以单独信息对象的形式保存,也可以合并成单一的、集成的信息对象(可以由一个资源在一个信息表单中填写某些字段和/或类别,而由另一个资源提供另一些字段和/或类别)。分布式数据库可以管理上述分布的存放库资源环境,并使用VDE以及VDE控制机制中的VDE加强型电子化功能使信息的存贮、通信、审核、和/或使用得到安全化。于是VDE既可用来提供一致的信息内容容器,又可用来提供信息内容控制服务。
图78示意了一个可能的存放库方案示例3300。在该例中,将存放库3302连接到网络3304上,网络3304允许作者3306A、3306B、3306C、3306D、出版商3308、以及一个或多个最终用户3310与存放库3302通信,并允许他们彼此通信。另一个网络3312则允许出版商3308、作者3306E和3306F、编辑3314、以及图书馆管理员3316互相间以及与本地存放库3318通信。出版商3308还直接连到作者3306E。在本例中,作者3306和出版商3308连到存放库3302,以便将他们的信息内容放在一个适当环境中,在该环境中,最终用户3310可以从公共的地点访问种类繁多的信息内容。
在本例中,存放库有两个主要的功能区信息内容系统3302A和票据交换所系统3302B。信息内容系统3302A含有用户/作者注册系统3320、信息内容目录3322、搜索机制3324、信息内容存贮设备3326、信息内容引用3328、以及发货系统3330,该发货系统3330含有控制包装器3322、容器包装器3334、以及交易系统3336。票据交换所系统3302B含有用户/作者注册系统3338、模板库3340、控制结构库3342、付款系统3344、包含财务系统3348和信息内容系统3350的授权系统3346、包含票据系统3354、信用卡系统3356、电子资金转移(EFT)系统3358的计帐系统3352、包含接收系统3362、响应系统3364、交易系统3366、以及分析系统3368的审核系统3360。
在本例中,作者3306A创建电子形式的信息内容,他希望将这些信息内容大量地提供给许多最终用户3310使用,并希望通过使用VDE来保障其权利。作者3306A向存放库3302传送一条消息,表明他希望在该存放库注册,以便分发其信息内容。作为对该消息的响应,信息内容系统3302A的用户/作者注册系统3320以及票据交换所系统3302B的用户/作者注册系统3338通过网络3304向作者3306A传送注册信息的要求。可以以在线交互方式发出上述请求,也可以以批方式将该请求传送给作者3306A。之后作者3306A准备好所需的信息,并以批方式传送给存放库3302;或者,上述信息的某些部分(如基本标识信息)以在线方式处理,而另一些信息则以批方式交换。
有关信息内容系统3302A的注册信息可能(举例来说)包括 一个请求,作者3306A提供适当信息,说明自己打算利用该存放库存放和访问的信息内容的类型和/或类别; 存放库需要的摘要和/或其他标识信息表格,这使作者3306A再获得一次机会说明他是否在通常提交信息内容的同时还提供其他信息(例如宣传材料、有关被提交信息内容格式的详情、被提交信息内容的潜在用户若想成功使用该信息内容必须满足的设备要求、等等); 若干请求,它们要求作者3306A提供适当信息说明信息内容需要存放在何处(存于存放库、存于作者3306A所在的位置、存于任何地方、或存放在某些位置的组合); 对于提交的信息内容需要对之关联哪些一般搜索属性(例如是否要自动地为摘要建索引供存放库的用户搜索;信息内容题目、摘要、宣传材料、相关数据、执行者和/或作者的名字、或其他涉及信息内容提交的信息应该以何种形式出现在信息内容类型列表中,或者在响应搜索请求的时候如何对之进行使用,等等) 应该如何发送存贮在和/或经过存放库的信息内容(包括任意的容器规则、加密要求、涉及信息内容传送的交易要求、其他控制规则、等等)由票据交换所的用户/作者注册系统要求作者3306A提供的信息可以(举例来说)包括 特定的VDE模板;作者3306A可以或必须使用这些VDE模板来正确地格式化控制信息,以便(举例来说)票据交换所系统3302B的审核系统3360得到适当的授权因而可以接收和/或处理与作者3306A提交的信息内容有关的使用信息; 可以从票据交换所3302B那里得到的某些VDE控制信息;与被提交的信息内容相关的作者3306A在其创建和/或使用的某些或所有VDE部件组种可以或必须使用(和/或通过引用包括)所述VDE控制信息; 采用何种方式支付因为使用存放库票据交换所系统3302B提供、传递、收集的信息内容而应交纳的任何费用; 授权的形式和/或规定,所述授权用来准许使用被提交的信息内容和/或涉及该信息内容的财务交易; 可接受的计帐形式,它针对的是信息内容和/或与信息内容相关的信息(例如他人可以使用的分析报告)的使用; 如何接收VDE生成的审核信息; 如何管理响应来自用户的请求; 收到审核信息后,如何格式化和授权相应的交易; 如何对使用信息进行分析并且执行何种形式的分析; 在何种情况下(如果存在这种情况的话)需要管理从VDE控制的信息内容的使用信息中得到的使用信息和/或分析结果(包括可以或必须将上述信息和/或结果交付给谁、交付的形式、与使用上述信息相关的任意控制信息,等等)。
存放库3302从作者3306A那里收到准备齐全的注册信息后,使用该信息为作者3306A创建一个帐户轮廓(account profile)。另外,与创作进程相关的软件可以被传送给作者3306A。该软件可以(举例来说)允许作者3306A将信息内容与适当的控制信息一起放入VDE信息内容容器,该过程的特点是涉及上述容器创建的许多决策都是自动作出的,以反映出可将存放库3302用作信息内容系统和/或票据交换所系统(这些决策的例子有信息内容的位置、需要联系哪一方才能更新信息内容和/或更新涉及该信息内容的控制、审核信息可以和/或必须送达的某一方或多方以及该通信的路径、在使用活动中收集的审核信息的特性、可接受的信息内容使用付款形式、所要求的审核传送频度、计帐频度、摘要的形式和/或与信息内容相关的其他标识信息的形式、至少一部分信息内容使用控制信息的特征、等等)。
作者3306A使用VDE创作应用来规定各种控制信息以及他希望放入VDE信息内容容器中的信息内容,并按照存放库3302的任何要求制作上述容器。所述VDE创作应用可以是(举例来说)一个由存放库3302提供的应用,它有助于确保存放库的信息内容控制要求得到遵守;该应用可以包含一种或多种类型的部件组或其他VDE控制结构和/或所需的参数数据、收自另一方的应用、以及/或者完全或部分地由作者3306A创建的应用。作者3306A于是利用网络3304将上述容器以及从作者3306A帐户轮廓派生出的信息发送给存放库3302,所述的派生信息与上述信息内容有关。存放库3302收到了提交来的信息内容,然后按照本例中的任何帐户轮廓要求、差异和/或所需选项作出判断,即信息内容的创建是否没有超出存放库规定的任何信息内容和/或控制信息要求范围,以及是否因此应该将上述信息内容放到信息内容存贮设备中,还是使用位置指针引用该信息内容,等等。除了将该被提交信息内容放入信息内容存贮设备或者引用该信息内容的位置以外,存放库3302还在下列位置记录被提交的信息内容的有关特征,这些位置包括搜索机制3324、信息内容引用3328、发货系统3330、以及/或者票据交换所系统3302B的相关系统,这些系统涉及模板和控制结构、授权、计帐和/或付帐、支付、以及/或者使用信息的审核。
在创作进程中,作者3306A可以使用VDE模板。该模板可以用作VDE创作应用的一个方面。例如,该模板可以用于上述创建容器的过程中。当存放库3302收到提交来的信息内容时也可以使用模板。可以由作者3306A加入对模板的引用,作为为被提交的信息内容创建容器的一个方面(从这个意义上说,交付给存放库的容器在某些方面可能是“不完整的”,直到存放库通过使用指定的模板“补齐”该容器为止)。存放库3302可以要求使用上述引用(例如将VDE控制信息安排就位以实现存放库的商业或安全性模型的一个方面—例如建立一个或多个映射表,使之对应于与其他VDE控制结构交互所需的信息内容元素,以支持特定计量、计帐、预算、和/或存放库中与其他使用活动和/或分发相关的控制)。
例如,如果作者3306A提交的信息内容含有一份期刊,则在该作者于存放库3302注册的时候,存放库3302将会传递给他一个模板,该模板可以用来作为创作应用的一个方面,该创作应用由上述作者在为该期刊创建VDE信息内容容器的时候操作。作为另一种选择或补充,对应于期刊的模板可以存放在存放库3302中,并且该模板可以由存放库用来完整地或部分地定义与上述容器相关的控制结构。例如,用来协助为期刊制订控制结构的VDE模板可以说明(不限于以下几点) 使用控制应该含有一个计量方法,该方法记录刊物中用户打开的每一篇文章; 对打开该期刊应该实行某种统一收费率的收费标准,而不管打开的文章有多少; 对于用户阅读的每个广告都应做记录。
如果采用熟知的和/或可识别的格式维护信息内容,那么可以在容器的初始创建过程中使用一个模板,而无须作者3306A进行干预以标明需要支持上述记录和计帐操作的任何映射表。如果没有向作者3306A提供上述VDE模板,则作者3306A可以决定说明存放库必须重新组织(或增补被提交容器),以在其中加入在特定模板或模板类中规定的VDE控制信息。如果存放库了解和/或可以识别上述信息内容的格式,那么该存放库可以自动地重组(或“补齐”)该容器。
存放库与作者3306A之间存在着潜在的正在进行的财务关系,其中一个因素涉及到最终用户对被提交的信息内容的使用。例如,作者3306A可以通过与存放库协商达成以下协定,即存放库有权从来源于最终用户3310的总收入中留下20%作为维持存放库服务(如使信息内容对最终用户3310可用、提供电子信用、执行计帐操作、收费等)的交换。可以采用灵活的和可配置的方式将财务关系记录在控制结构中。例如,上述的财务关系可以在VDE容器和/或作者3306A设计的设备控制结构中创建,以反映作者3306A的财务要求以及从收入中分给存放库20%的需要。其中所有涉及被提交信息内容使用的计帐活动可以由存放库处理,同时可以用代表互惠方法(这些互惠方法涉及作者3306A所提交信息内容需要使用的各种部件组)的控制结构来计算收入的20%。作为另一种选择,存放库可以独立、安全地增加和/或修改源自作者3306A的控制结构,以便反映价格上的提高。在某些情况下,作者3306A不一定直接涉及存放库对使用活动制定的实际收费价格(或对该价格有任何了解),而只关心收入额以及其自身目的所要求的使用分析信息的特征,他在VDE控制信息中规定了上述信息,而VDE控制信息可以控制对受VDE控制的信息内容的使用以及使用该信息内容的后果。
作者和存放库之间关系的另一方面可能涉及交易记录要求的特征,所述交易记录要求涉及传送受VDE控制的信息内容以及收到受VDE控制的信息内容的使用审核信息。例如作者3306A可以要求存放库对每个从该存放库收到信息内容拷贝的用户做记录。作者3306A还可以要求收集某些信息,以反映向上述用户交付信息内容时的某些环境特征(如时间、日期、等等)。另外,存放库可以决定执行这些事务以供内部使用(例如判断使用的模式以便优化系统、检测欺骗行为、等等)。
除了要求记录有关信息以描述上述受VDE控制信息内容的交付过程,作者3306A还可以要求存放库执行某些与VDE容器有关的进程。例如,作者3306A可以希望对交付给不同类用户的摘要和/或其他描述性信息进行区分。另外,作者3306A可以希望根据某个特定用户表现出来的使用特征(例如该用户是否曾经从作者3306A那里接收过信息内容、该用户是否是作者3306A的作品的固定订户、以及/或者其他可能与作者3306A和/或最终用户相关的模式,这些模式可以用来帮助判断交付给某一VDE信息内容最终用户的宣传材料应该占有多大比例)将宣传材料与被提交的信息内容放在同一容器中传递出去。在另一个例子中,作者3306A可以要求在将信息内容传递给最终用户之前对该信息内容进行VDE指纹处理。
除了发送给最终用户的信息内容所具有的形式和/或特征,作者还可以要求存放库执行某些与加密相关的过程,作为交付信息内容的一个步骤。例如,作者3306A可以要求存放库使用一个或多个不同的加密密钥对被发送的信息内容的每个拷贝都进行加密,以便对信息内容提供更高程度的保护(例如,在某一加密密钥被“破解”或不小心泄露的情况下,“损坏”范围可以被限制到被交付的某一特定信息内容特定拷贝的特定部分)。在另一个例子中,加密功能可以需要使用完全不同的加密算法和/或技术,以满足视情况而定的要求(例如为了遵守出口限制)。在另一个例子中,涉及加密的过程可以根据信息内容交付到的VDE站点所具有的可信度和/或防破坏能力对加密技术和/或算法进行改动。
除了在信息内容从VDE存放库交付到最终用户的时候收集的交易信息以外,还可以要求存放库记录适当的交易信息,这些交易信息涉及使用信息的接收、发往和/或来自最终用户3310的请求和/或响应。例如,作者3306A可以要求存放库以日志形式记录由最终用户3310建立的某些或所有连接,这些连接涉及到对特定使用信息的传送或接收,所述特定使用信息涉及到使用作者3306A的信息内容(例如,这些信息可以是最终用户提交的审核信息报告、最终用户对更多权限信息的请求、等等)。
某些通过存放库提供给最终用户3310的、由VDE管理的信息内容可以存放在信息内容存贮设备中。另外一些信息可以存放在任何地方,并且可以通过信息内容的引用对之进行引用。在使用信息内容引用的情况下,存放库可以采用下面的方式来管理用户的交互作用,即对于存放库中的所有信息内容,不论它们是存放在信息内容存贮设备中还是存放在任意地方(例如另外一个站点),将它们提供给最终用户3310进行选择的方式是统一的,例如,采用一致的或相同的用户接口。如果最终用户要求交付的信息内容没有存放在信息内容存贮设备中,那么VDE存放库可以利用存放在信息内容引用中的信息(例如信息内容可能位于的网络地址、URL、文件系统指针、等等)找到存放该信息内容的实际存放地点。找到该信息内容后,该信息内容可以通过网络传送给存放库,或直接从它所存放的地方传递给发出要求的最终用户。在某些情况下(如当需要对容器进行修改时、需要对加密进行改动时、在发布之前需要进行某些财务交易时、等等),可以要求存放库进行进一步的处理,以便准备好上述受VDE管理的信息内容和/或VDE信息内容容器供传递给最终用户之用。
为了对VDE存放库最终用户3310可使用的信息内容提供可管理的用户接口,同时为了提供管理信息用来确定发送给最终用户3310的VDE信息内容容器中所包装的控制信息,本例中的存放库包含了一个信息内容目录3322。该目录用来记录与VDE信息内容有关的信息,该VDE信息内容可以存放在信息内容存贮设备中,以及/或者可以在信息内容引用所反映的存放库中找到。信息内容目录3322可能包含信息内容的标题、摘要、以及其他标识信息。另外,该目录还可以说明电子协定和/或VDE协定模板应用(提供了备用的、可选的控制结构,并且/或者提供一个或多个机会以便提供相关参数数据)的格式。对于信息内容的给定部分,用户可以通过存放库得到上述信息,以便决定(举例来说)下面的选项和/或要求在上述信息内容使用期间应该记录何种信息、对某些信息内容使用活动应该如何收费、根据某些使用信息是否被记录下来和/或这些信息是否对存放库和/或信息内容提供者可用的不同情况,如何收取不同的费用、与上述信息内容相关的再分发权利、审核的报告发送频度、可以用于支付上述信息内容使用费的信用和/或货币形式、对于一定批量使用的相关折扣、如果用户已具有某些权利准许他使用同一和/或不同信息内容提供者、销售途径提供的其他信息内容,那么如何确定折扣、等等。另外,VDE存放库信息内容目录3322可以指定某些或所有所需的部件组以便使用信息内容,这样最终用户的系统和该存放库可以交换一些消息,以确保所有必需的VDE部件组或其他VDE控制信息已被指明,并且如果需要并经过授权的话,这些部件组或控制信息与上述信息内容一起交付给最终用户(而不是(举例来说)在以后注册和/或试图使用的过程中发现它们不在时才请求提供)。
为了使用本例中的VDE存放库,最终用户必须向存放库注册。类似上述作者例子中所采用的方式,VDE最终用户可以通过网络从其VDE设备向存放库发送一条消息,表明他希望使用存放库提供的服务(例如访问由存放库保存和/或引用的信息内容、使用存放库提供的信用、等等)。作为对该消息的响应,信息内容系统3302A的用户/作者注册系统和存放库的票据交换所系统3302B(例如通过联机和/或批方式交互作用)向最终用户发送请求,要求最终用户提供某些信息。信息内容系统3302A的用户/作者注册系统所要求的信息可以包括用户希望访问的信息内容类型、用户电子设备600的特征、等等。票据交换所系统3302B的用户/作者注册系统所要求的信息可以包括该用户是否希望在票据交换所系统3302B创建一个信用帐户、用户为了计帐的目的可以希望使用何种信用、在使用从该存放库得到的信息内容的过程中,最终用户可以使用其他哪些票据交换所、用户根据自身喜好为公布和处理使用分析信息的目的已经制定的任何一般规则、等等。一旦用户准备好上述注册信息并发送给存放库,存放库将为该用户创建一个帐户轮廓。在本例中,上述请求和响应过程由发送和接收两方的安全VDE子系统之间的安全VDE通信进行控制。
为了使用存放库,最终用户可以运行应用软件。例如,最终用户既可以使用一个标准的应用软件(如诸如Mosaic之类的环球网(World Wide Web)浏览器),也可以使用由存放库在完成注册进程以后提供的应用软件。如果最终用户选择使用由存放库提供的应用软件,他们可以避免在使用标准软件包的过程中可能碰到的某些交互作用复杂性。尽管标准化的软件包使用起来通常比较简单,但加入了VDE感知型功能的定制软件包提供给用户的接口可能更易使用。另外,可以将存放库的某些特征加入该接口中以便简化对该服务的使用(例如,类似于America Online提供的应用程序)。
最终用户可以利用网络连接到存放库。在本例中,用户连接到存放库之后,将会发生鉴别进程。该进程既可以由用户(例如通过使用登录和口令协议)控制,也可以由最终用户的电子设备安全子系统建立,该安全子系统在VDE鉴别进程中与存放库电子设备交互作用。在上述两种情况下,存放库和用户都必须一开始就确保他们连到了正确的另一方。在本例中,如果经过安全保护的信息将要在两方间进行传递,那么必须进行VDE安全鉴别,同时必须建立安全会话过程。另一方面,如果需要交换的信息已经经过了安全保护,以及/或者无需进行鉴别就可得到上述信息(例如某些目录信息、已经经过加密且不需特殊处理的容器),那么可以使用“较弱”的登录/口令形式。
一旦最终用户已经连接到VDE存放库,并且已经经过了鉴别,那么该用户可以开始操作和控制其用户接口软件,以便浏览存放库信息内容目录3322(例如出版物、软件、游戏、电影等的清单),使用搜索机制协助定位他所感兴趣的信息内容、调度信息内容以便将之交付出去、查询有关信息、等等,被查询的有关信息包括帐户状态、是否可以得到使用分析信息、计帐信息、注册和帐户轮廓信息等。如果用户连接到该VDE存放库是为了获取信息内容,则可以将该信息内容的使用要求交付给该用户。如果用户连接到该VDE存放库是为了将使用信息交付给该存放库,那么可以将有关该传递过程的信息交付给该用户。下面将更加详细地说明上述的某些进程。
在本例中,当最终用户(例如通过在可用选项菜单中进行选择)请求VDE存放库提供信息内容时,信息内容系统3302A可以在信息内容引用中和/或信息内容存贮设备中找到该信息内容。然后信息内容系统3302A可以参考存放在信息内容目录3322、最终用户帐户轮廓、和/或作者帐户轮廓中的信息,以确定容器格式和/或控制信息的精确特征,这些特征可以是为满足最终用户请求而创建VDE信息内容容器所需要的。随后,发货系统访问票据交换所系统3302B,收集需要加入到容器中的任何其他控制结构,并确定作者和/或最终用户帐户轮廓的任何下列有关特征这些特征将对交付信息内容到最终用户的交易过程产生影响,或者对是否处理该交易产生影响。如果该交易得到了授权,并且容器的所有必需元素都已可用,那么控制包装器(control packager)将产生一个适合于用户所发请求的控制信息包,然后控制包装器利用该控制信息包以及信息内容产生一个适当的容器(还放入可以与该容器一起交付的任何许可,并装入任何加密要求、等等)。如果存放库或作者帐户轮廓要求的话,发货系统的交易系统将记录涉及该信息内容交付的具体事项。当上述容器和涉及交付的任何具体事项都已经准备好了以后,该容器将通过网络传送给最终用户。
最终用户可以使用安全存放在最终用户VDE设备安全子系统中的信用和/或货币来支付对收自存放库的VDE信息内容的使用费,以及/或者可以在存放库远程地维护一个安全的信用和/或货币帐户,包括使用一个“虚拟”存放库,最终用户可以在该“虚拟”存放库为收到上述信息内容进行付款。后一种方法将为向存放库和/或信息内容提供者付款提供更高程度的安全保障,尤其是在最终用户只带有基于HPE的安全子系统的情况下。如果最终用户的电子信用和/或货币帐户由本例中的存放库来维护,那么将根据最终用户从存放库收到了信息内容而从所述帐户中收取费用。根据最终用户对上述已收到信息内容的使用情况以及传送给存放库票据交换所系统3302B的信息内容使用信息,可以从上述的远程最终用户帐户中进一步收取费用。
在本例中,如果最终用户没有与财务提供者(该财务提供者对信息内容提供者进行了授权,最终用户可以通过使用上述存放库来获取信息内容提供者提供的信息内容,并使用其货币和/或信用来支付与所述提供者提供的信息内容有关的任何使用费用)建立关系,以及/或者如果最终用户希望使用上述信用的新来源,那么该最终用户可以请求存放库票据交换所系统3302B提供信用。如果最终用户的信用请求得到批准,存放库可以采用与存放库管理的预算方法相关的信用额(例如该信用额记录在一个或多个UDE中)形式对信用进行增加。最终用户定期地将涉及上述预算方法的使用信息传送给存放库的审核系统。在上述传送之后(但可能在该连接终止之前),应付帐款被记录下来供计帐系统处理,同时,按照存放库的业务惯例,最终用户可以使用的信用数量可以在同一传送过程或后续传送过程中得到补充。在本例中,存放库的票据交换所支持带有一个票据系统的计帐系统,该系统通过邮件解决未付帐款;一个信用卡系统,该系统通过从一个或多个信用卡收取费用来解决未付帐款;以及一个电子资金转移系统,该系统通过向银行帐户直接记入借方来解决上述未付帐款。存放库可以自动地让付款系统利用类似方式为欠付作者的款项确定付款。下面将会讲到涉及审核过程的补充细节。
如上所述,本例中的最终用户3310将定期地与VDE存放库联系,向它传送信息内容使用信息(例如,这些信息涉及预算的使用、对其他使用活动进行的记录、等等),补充他们的预算、修改他们的帐户轮廓、访问使用分析信息、并执行其他管理活动和信息交换活动。在某些情况下,最终用户可以希望与存放库联系以获取其他控制结构。例如,如果最终用户从存放库请求并获取了VDE信息内容容器,该容器通常与适合于该容器的控制结构、作者的要求和帐户轮廓、最终用户的帐户轮廓、信息内容目录3322、和/或交付情况(如特定作者进行的首次交付、预订、市场宣传、是否带有某些广告材料、由用户的本地VDE实例代表该用户正式提出的请求、等等)等一起发送给最终用户。即便如此,在本例中,存放库可能试图交付所有的相关控制结构,在某些容器可以包含的控制结构中允许带有某些特定选项,该最终用户没有预料到将来要行使这些选项(并且也未自动选择其他规则并自动将之加入到上述容器中),但是该最终用户仍然决定他们将来愿意行使。在这种情况下,最终用户可能希望与存放库联系,并请求提供所有附加的控制信息((举例来说)包括控制结构),他们将利用这些信息在上述选项的控制下使用信息内容。
例如,假设最终用户获得了带有总体控制结构的VDE信息内容容器,该总体控制结构含有两个选项,一个选项记录对容器进行的某些类访问的次数,并进而根据这些访问的次数规定使用费用;另一个选项允许最终用户根据对所述容器信息内容的使用时间长度来规定对该特定容器的使用费;同时,该最终用户开始并没有收到支持第二种使用类型的控制结构,于是存放库可以在以后某个时间并且是在用户请求的时候交付上述控制结构。在另一个例子中,作者可能已经改变了他们的控制结构(例如用来反映贱价销售、新的折扣方式、修改了的业务策略、等等),而用户可以或必须接收这些控制结构,以便在改变后的控制结构控制下使用信息内容容器。例如,与特定VDE信息内容容器相关的一个或多个控制结构可能需求经过一次“刷新”,以得到使用该结构的继续授权,否则这些控制结构可能会过期。这种方式允许(如果愿意的话)VDE信息内容提供者定期地(使用本地VDE安全子系统)修改和/或增添处于最终用户站点的VDE控制信息。
在本例中,票据交换所的接收系统3362安全地从最终用户3310接收审核信息(该审核信息涉及对收自存放库的信息内容的使用)。如上所述,该系统可以对审核信息进行处理,并将处理的某些或全部输出传递给计帐系统和/或将该输出传送给适当的信息内容作者。上述传递审核信息的过程使用了报告信息处理技术的VDE安全通路。审核信息也可以被传递给分析系统,以便产生涉及最终用户信息内容使用的分析结果,供最终用户、存放库、第三方市场调查人员、和/或一个或多个作者使用。产生分析结果可以基于一次审核传送、一次审核传送的一部分、由单个最终用户和/或多个最终用户3310发出的一组审核传送、或者根据分析主题(例如,对给定信息内容元素或元素集合的使用模式、对某类信息内容的使用活动、付帐历史、人数统计使用模式、等等)的某些审核传送的组合。响应系统3364用来向最终用户发送信息,以便(举例来说)补充预算、传递使用控制、更新许可信息、并传送最终用户在与票据交换所交互过程中请求和/或要求提供的某些其他信息和/或消息。在最终用户与票据交换所之间的相互连接或传送过程中,某些具体事项(例如,时间、日期、以及/或者连接和/或传送的意图)可以被审核系统的交易系统记录下来,以反映存放库和/或作者的要求。
某些审核信息可以被传送给作者。例如,作者3306A可以请求从最终用户收集到的某些信息不需审核系统处理即送给作者3306A。在这种情况下,审核系统可以记录传输操作的事实,但作者3306A可能已经决定由其自身执行使用的分析过程,而不允许(或尽管也允许)存放库访问、或处理和/或使用上述信息。本例中的存放库可以提供给作者3306A某些使用信息,这些信息涉及存放库从一个或多个最终用户3310收到的存放库预算方法,并且根据上述用户由于使用作者3306A提供的信息内容的而应支付的有关费用产生。在这种情况下,作者3306A能够将涉及信息内容的某些使用信息与涉及存放库信息内容预算方法的使用信息进行比较,以分析出使用的模式(例如,根据使用费分析使用情况、检测可能的欺骗行为、产生用户轮廓信息、等等)。由票据交换所收集的、涉及作者3306A所提供的信息内容并应付给作者3306A的任何使用费将由票据交换所的付款系统决定。该付款系统可以包含某些(完整的或概要性的)使用信息,这些信息涉及由上述决定确定的、应该向作者3306A支付的任何使用费。所述付款和信息报告过程可以是一系列完全自动化的进程,这些进程发生在从最终用户VDE安全子系统到票据交换所安全子系统、再到作者安全子系统之间的VDE通路中。
在本例中,最终用户3310可以向存放库3302传送VDE许可和/或其他控制信息,这些许可和/或控制信息可以允许和/或禁止访问由审核系统收集供分析系统使用的使用信息。这可以部分地有助于保障最终用户的个人隐私权,因为它涉及了对上述信息的使用。某些容器可以要求(该要求作为其控制结构的一部分)最终用户允许将使用信息用于分析目的,而另一些容器则能够让最终用户选择是允许将使用信息用于分析,还是禁止将某些或全部使用信息用于分析。某些用户可以决定允许将某些信息用于分析,而禁止对其他信息进行分析。在本例中的最终用户3310(举例来说)可以决定限制可供分析的信息的粒度(例如,最终用户可以允许分析在某段时间内观看的电影数目,但不允许分析有关特定片名;最终用户可以允许为人数统计之用公布其邮政(ZIP)编码,但不允许使用他们的名字或地址、等等)。如果最终用户3310同意公布某些使用信息供分析之用,那么作者和/或存放库3302可以(举例来说)决定少收取最终用户3310的使用费。
在本例中,存放库3302可以接收由一个以上的作者制作的信息内容。例如作者B、作者C和作者D可以都创建了信息内容的部分,而这些信息内容部分将放在一个容器中传递给最终用户3310。例如,作者B可能创作了一份参考文献,作者C则为作者B的参考文献提供了注释,而作者D可能为作者A的参考文献和作者C的注释制作了一套示意图。作者B可以将作者C和作者D的信息内容收集在一起并加入其他信息内容(如上述的参考文献),然后将这些信息内容放到单个容器中,该容器随后将被传送给存放库3302。作为一种选择,每个作者都可以将其著作独立地传送给存放库3302,同时还传送一个标志,表明在将某个容器发送给最终用户之前,必须使用模板将他们分别的著作合并到一起。作为另一种选择,可以将反映了总体信息内容结构的容器传送给存放库3302,同时,可以在信息内容引用中引用某些或所有信息内容,而不是将这些信息内容交付给存放库3302以保存在信息内容存贮设备中。
当最终用户使用容器信息内容时,其信息内容使用信息可以(举例来说)按照某些控制结构被划分成片段,这些控制结构至少部分地基于创建上述片段的作者来组织使用信息。作为另一种选择,作者和/或存放库可以协商一种或多种其他技术,以便遵照VDE控制信息安全地划分和/或共享使用信息。另外,与容器相关联的控制结构可以实现某些模型,这些模型可以根据若干依据来区分涉及信息内容不同部分的任何使用费,所述的依据包括对特定信息内容部分的使用、对容器的总体使用、特定使用模式、或作者协商(或他同意的)的其他机制。使用信息、分析结果、付款过程、以及票据交换所其他进程的报告可以采用适当方式产生,该方式要反映出由存放库3302参与者各方(作者、最终用户3310和/或存放库3302)针对上述进程所达成的协定。上述参与者通过对VDE控制信息进行协商可达成上述协定。
在本例中,一种类型的作者是出版商3308。本例中的出版商3308通过一个“内部”网络与基于VDE的本地存放库3302进行通信,并通过前述的网络与公用存放库3302进行通信。出版商3308可以创建或提供信息内容和/或VDE控制结构模板,这些模板被交付给本地存放库3302供可以访问“内部”网的其他参与者使用。这些模板可以用来描述容器结构,还可以用来描述在出版商3308的组织中,谁可以采取哪些适当措施来调整和确定在该组织中创建的、需要出版的信息内容,以便将其交付给存放库3302(和/或由存放库3302引用)。例如,出版商3308可以决定(或使用所述模板来控制)期刊需要有某种格式,该格式可以涉及期刊信息内容的结构以及可能包含的信息种类(如正文、图形、多媒体展示、广告、等等)、其信息内容的相对位置和/或出现顺序、某些片段的长度、等等。另外,出版商3308可以(举例来说)(通过分发适当的许可)决定刊物编辑是能够授予容器写许可的唯一方,而组织中的图书管理员则是能够对信息内容建索引和/或摘要的唯一方。另外,出版商3308还可以(举例来说)只允许一方或多方最终完成一个容器,以便以可用形式交付给存放库3302(例如,为了实现上述目标,出版商3308可以借助于维护对许可类型的控制,这些许可类型中包括分发许可,存放库3302可以要求使用该分发许可来执行后续的、涉及存放库最终用户3310的分发活动)。
在本例中,作者3306E直接连接到出版商3308,这样,出版商3308可以向该作者提供适当模板,这些模板为作者3306E的信息内容确定容器特征。例如,如果作者3306E创作了图书供出版商3308分发,那么出版商3308可以规定VDE控制结构模板,该模板提供了多种备选控制方法供作者3306E选择,同时,该模板还提供了用来安全分发作者3306E的图书的VDE控制结构。作者3306E和出版商3308可以使用VDE协商来确定由用户3306E使用的模板特征、特定控制结构、和/或参数数据。于是作者3306E可以使用上述模板为其信息内容容器创建控制结构。然后,出版商3308在VDE扩展协定下将上述作品交付给存放库3302,所述扩展协定包括在作者3306E和出版商3308之间以及存放库3302和出版商3308之间的达成的电子协定。
在本例中,出版商3308还在本地存放库3302中提供作者3306E的作品。编辑可以(例如通过分发适当许可)授权作者F创建信息内容的某些部分以供出版。在本例中,该编辑可以审阅和/或修改作者F的作品,并且将该作品与作者3306E提供的信息内容(该信息内容可以在本地存放库3302中得到)一起放入一个容器中。该编辑可以有,也可以没有从出版商3308得到的许可,这些许可允许修改作者3306E的信息内容(这些修改要依照出版商3308和作者3306E之间已经达成的任何协定,还依照出版商3308的决定,即如果对作者3306E的信息内容的修改权由出版商3308以可再分发的形式持有的话,出版商3308将决定把上述权利延伸到编辑)。编辑也可以将来自其他作者的信息内容放入容器中,其途径是(a)通过使用一个授权进程,该进程授权作者直接写入容器;并且/或者(b)从本地存放库3302中检索出容器来以便往里加入信息内容。本地存放库3302也可用来服务由出版商3308的组织所使用的其他材料(例如,数据库、其他参考文献、内部文件、供审阅的草稿、培训录象、等等)。在得到适当许可的前提下,可以将上述材料放入由上述编辑创建的VDE容器信息内容集合中。
本例中的图书管理员负责创建和/或编辑倒排索引、关键字列表(例如从有限词汇表中得到)、信息内容摘要、修订历史、等等。出版商3308可以(举例来说)只授权给图书管理员使他可以创建上述类型的信息内容。出版商3308还可以要求在把信息内容传送给存放库3302之前就进行上述的创建和/或编辑过程。
示例—受VDE管理的信息内容和控制信息的演变和变换VDE信息内容控制体系结构允许加工信息内容控制信息(例如控制信息内容使用的控制信息)以便适合多方的VDE控制信息要求。制订上述多方信息内容控制信息通常涉及从多方安全提供出来的控制信息中安全地导出适当控制信息,而所述的多方在信息内容处理和控制模型中起一定的作用(如信息内容制作者、提供者、用户、票据交换所、等等)。为了把受到独立管理的VDE信息内容的多个部分合并到单个VDE容器对象中(特别是当所述受到独立管理的VDE信息内容部分具有不同的—例如冲突的—信息内容控制信息时),必须使用多方控制信息。对受VDE管理的信息内容部分进行的上述安全合并过程将会不断地请求使用VDE功能,以便安全地导出信息内容控制信息,这些信息内容控制信息满足了各个受VDE管理的信息内容部分所产生的控制信息要求(包括任何组合规则),并反映了上述大量信息内容控制信息集合之间的可接受协定。
将受VDE管理的信息内容部分组合起来将得到受VDE管理的信息内容复合体。组合受VDE管理的信息内容必须依照与所述信息内容部分相关的信息内容控制信息进行,并且通过使用一个或多个VDE安全子系统PPE 650处理。VDE有能力支持嵌入或组合受VDE管理的信息内容部分,从而可以创建组合产品,该产品中含有各种VDE信息内容部分。VDE的上述能力使VDE信息内容提供者可以优化其VDE电子信息内容产品。对受VDE管理的信息内容部分进行组合可以产生特殊的VDE信息内容容器,它“容纳”联合的信息内容和/或衍生的、分离的、嵌套的VDE信息内容容器。
VDE支持创建特殊信息内容容器,用来容纳以前分开管理的VDE信息内容的不同部分,这样就允许VDE信息内容提供者开发出某些特定产品,这些产品的信息内容控制信息反映的价值取向与信息内容部分的提供者所期望的目标是一致的;同时对于信息内容聚合者来说,他可能正在制作某种信息内容的组合以期望作为一种产品在商业领域分发,而上述控制信息也进而可以与所述信息内容聚合者的目标相一致。例如,由某一信息内容提供者向某一商业渠道(例如一个网络存放库)“发放”的信息内容产品可以由不同信息内容提供者和/或最终用户并入VDE信息内容容器中(只要被发售产品的信息内容控制信息允许上述并入过程)这些不同信息内容提供者和/或最终用户可以(举例来说)提供不同的控制信息以便控制对该信息内容的使用。如果经过适当地授权,他们还可以将被发放信息内容的某些部分与从其他方收到的(和/或由他们自己制作的)信息内容组合在一起形成不同的组合,从而产生不同的信息内容集合。
于是,VDE允许把受VDE管理的给定信息内容部分的拷贝安全地组合到不同的信息内容联合中,而各信息内容联合反映了不同VDE信息内容聚合者的产品策略。VDE信息内容聚合功能将导致产生更广范围的具有竞争性的电子信息内容产品,这种产品提供不同的信息内容总体集合,并可以对上述产品可能通用的信息内容施用不同信息内容控制信息。重要的是,VDE安全地和灵活地支持编辑VDE信息内容容器中的信息内容,从VDE信息内容容器中抽取信息内容、向VDE信息内容容器中嵌入信息内容、以及加工VDE信息内容容器中的信息内容组成。通过逐渐反映电子商业模型中“下一”参与者的要求,上述功能允许VDE支持的产品模型不断地进化。其结果是,受VDE管理的给定信息内容部分在通过处理和分支通路移动的过程中可以参与许多不同的信息内容容器和信息内容控制信息商业模型。
可以采用某些商业途径使用并逐渐地操作VDE信息内容以及与上述信息内容相关联的电子协定,这种方式反映了对非电子产品的传统商业操作(尽管比起大多数传统模型来说,VDE支持更高程度的灵活性和效率)。VDE只受VDE控制控制信息的限制,这些VDE控制信息由信息内容制作者、其他提供者以及处理和控制参与者的其他通路使用。虽然有此限制,VDE仍然支持自然、流畅的电子信息内容产品模型流通和创建过程。VDE通过制作者、提供者和用户的网络提供VDE产品和服务的上述流通,而上述的制作者等参与者则通过在虚拟分发环境中进行信息内容合并、抽取和编辑而依次地、安全地对产品组成进行加工和再加工。
VDE提供了安全组合信息内容的机制,这些信息内容可以在不同时间由不同来源提供,和/或代表不同信息内容类型。这些不同类型、来自不同时间和/或不同来源的信息内容可以用来形成VDE信息内容容器中复杂的信息内容组合。例如,VDE信息内容容器可以含有大量不同的信息内容容器对象,每个容器都含有不同的信息内容,对这些信息内容的使用活动可以至少部分地由其所有者的VDE信息内容控制信息集合控制。
通过使用安全VDE子系统可以将VDE信息内容容器对象“安全”地嵌入到“父”VDE信息内容容器中。该嵌入进程可能涉及创建一个嵌入对象;或者涉及在VDE信息内容容器中装入一个以前是独立的但现在是嵌入的对象,该装入过程至少要通过正确地引用所述对象的位置而引用所述对象。
父VDE信息内容容器中的嵌入对象有下列特性(1)该嵌入对象可以是一个以前创建好的、已被嵌入到父VDE信息内容容器中的VDE信息内容容器。为此,需要通过在VDE安全子系统PPE 650中安全地处理一个或多个部件组,将上述被嵌入容器从一个独立对象转化成一个嵌入对象。在该例中,嵌入对象可以受到信息内容控制信息的控制,包括与父容器相关联的一个或多个许可记录,而该对象可以(举例来说)除了信息内容标识信息之外不带有其自身的信息内容控制信息;或者嵌入对象可以更广泛地受到其自身信息内容控制信息(如许可记录)的控制。
(2)该嵌入对象可以含有从另一个VDE信息内容容器中抽取出的信息内容(以及可使用的信息内容控制信息),这些抽取出的信息内容和控制信息将以被嵌入VDE信息内容容器对象的形式嵌入到一个父VDE信息内容容器中。在该例中,所述抽取和嵌入可以使用安全地运行于VDE安全子系统PPE 650中的一个或多个VDE进程,这些进程可以从一个源VDE信息内容容器中取走(或复制)所需的信息内容,将该信息内容放入一个新的或已有的容器对象中,而该容器对象可能会或将会被嵌入到一个父VDE信息内容容器中。
(3)该嵌入对象可以含有首先创建好然后嵌入到一个VDE信息内容容器对象中的信息内容。所述接受信息内容的容器可以已经被嵌入到一个父VDE信息内容容器中,并可以已经包含其他信息内容。放有上述信息内容的容器可以由一个VDE感知型应用指定,该应用与信息内容以及VDE安全子系统进行交互作用,以便安全地创建上述VDE容器并将上述信息内容放入其中。之后,再安全地将该容器嵌入到目的地父容器中。作为另一种选择,也可以不用VDE感知型应用指定信息内容,而是用VDE感知型应用操纵该信息内容,以设法将它移动到VDE信息内容容器中。这种应用可以是一个VDE感知型字处理器、桌上型和/或多媒体出版包、图形和/或展示包、等等。它也可以是一个操作系统功能(例如VDE感知型操作系统的部分或运行于操作系统之上的小应用—如与Microsoft Windows兼容的对象封装引用),另外,将信息内容从VDE对象外面移动到VDE对象里面可以(举例来说)基于“拖与放”比喻,该比喻涉及使用一个诸如鼠标之类的指点设备将一个文件“拖动”到VDE容器对象中。作为另一种方案,用户可以将信息内容的一部分“剪切”下来,再将该信息内容部分“粘贴”到一个VDE容器中,其过程是首先将剪切下来的信息内容部分放到“剪贴板”中,然后选择目标信息内容对象,并将上述信息内容部分粘贴到该对象中。该进程可以在VDE信息内容控制信息和VDE安全子系统的控制下自动将信息内容放置到目标对象中的某个位置,例如放在对象的尾部;或者对象的某一部分中,该部分对应于由该信息内容携带或随信息内容一同传递的一个标识符,例如一个字段标识符;或者,上述的嵌入进程可以弹出一个用户接口,该接口允许用户浏览目标对象的信息内容和/或信息内容目录和/或其他目录、索引等等。上述进程还可以允许用户作出某些决定,这些决定涉及需要应用到上述嵌入信息内容的VDE信息内容控制信息(预算限制的使用、汇报途径、使用注册要求、等等),并且/或者上述进程涉及选择特定位置以嵌入上述信息内容。所有这些进程的执行都尽可能地做到对引用透明。
(4)可以结合一个或多个用于对象嵌入和链接的操作系统实用程序访问该嵌入对象,这些实用程序的例子包括符合Microsoft OLE标准的实用程序。在该例中,VDE容器可以与一个OLE“链接”相关联。对受VDE保护的容器的访问(包括从该容器中读信息内容,或向该容器中写信息内容)可以从一个OLE感知型引用传递给一个VDE感知型引用,后者结合与被保护信息内容相关联的控制信息对该信息内容进行访问。
VDE感知型应用还可以与PPE中的部件组进行交互作用,以允许直接编辑VDE容器中的信息内容,不管该信息内容是在父VDE信息内容容器中还是在被嵌入的VDE信息内容容器中。该过程可以包括使用一个VDE感知型字处理器(举例来说)来直接编辑(添加、删除或修改)VDE容器中的信息内容。VDE容器信息内容编辑底层的上述安全VDE进程可以大部分或完全地对编辑者(用户)透明,并可以透明地允许编辑者安全地浏览VDE信息内容容器分层结构中的某些或所有信息内容并安全地修改嵌入到上述VDE信息内容容器分层结构中的一个或多个VDE信息内容容器。
所有VDE嵌入的信息内容容器的嵌入进程通常都包括安全地为该嵌入信息内容指定适当的信息内容控制信息。例如,对于VDE设备和/或VDE信息内容容器的VDE信息内容控制信息可以安全地、对嵌入者(用户)透明地将同样的信息内容控制信息应用到被编辑的(如被修改的或外加的)容器信息内容,也可以将将这些控制信息应用到所述容器中已“就位”的信息内容的一个或多个部分((举例来说)包括所有部分),并且/或者安全地应用通过在控制集合之间进行VDE控制信息协商而产生的控制信息,并且/或者它可以应用以前应用到所述信息内容的控制信息。对控制信息的应用不顾及被编辑的信息内容是在父容器中还是在嵌入容器中。有些信息内容是利用抽取和嵌入信息内容,或通过移动、或拷贝和嵌入VDE容器对象的过程被嵌入到VDE容器中的,这些信息内容也可以使用上述的、安全应用的信息内容控制信息(这些信息可以被自动地和/或透明地应用)的同样功能。通常在一个或多个VDE安全子系统PPE 650中安全地执行信息内容控制信息的应用。该进程可以使用VDE模板,使用户能够借助易用的GUI用户接口工具为某些或所有嵌入信息内容规定VDE控制信息,该用户接口可含有菜单驱动、用户可选的和/或可定义的选项,例如从可选的控制方法中作出选择(例如在不同的计量形式之间作出选择),这些控制方法可以由不同的图标代表,这些图标分别表示了(或象征了)不同的控制功能;同时,在作出上述选择之后,将上述控制功能应用到受VDE保护信息内容的增量部分,例如在对象目录显示中列出的某个嵌入对象。
使用VDE感知型应用从VDE信息内容容器中抽取信息内容、或者编辑或创建VDE信息内容将会提供信息内容,这些信息内容可以被放入一个新的VDE信息内容容器对象中,以便嵌入到所述的父VDE容器中;或者可以将上述信息内容直接放入一个已有的信息内容容器中。通过处理一个或多个VDE设备安全子系统中的VDE信息内容控制信息可以对所有上述进程进行管理。
将VDE信息内容容器对象嵌入到父对象中可以由父对象许可记录引用的控制信息进行控制。父对象许可记录确定了所述嵌入对象的位置和/或信息内容。在该例中,对嵌入对象的已有信息内容控制信息需要做的改动很小或根本不需改动。可以使用VDE子系统安全进程把被重定位到某个VDE信息内容容器中的VDE安全管理的信息内容再重新定位;在重定位/嵌入过程中,所述安全进程将继续(例如通过使用安全防破坏屏障502)维护被重定位信息内容的加密或被保护状态。
可以由不同各方提供嵌入的信息内容(和/或信息内容对象),并且可以通过VDE信息内容和信息内容控制信息集成进程将所述嵌入信息内容集成进一个VDE容器中。而通过使用一个或多个安全VDE子系统可以安全地管理上述集成进程。该集成进程可能(举例来说)涉及一个或多个(1)安全地应用的指令,该指令控制对所述被提交的信息内容的嵌入和/或使用,其中,至少部分地由信息内容提供者和/或所述VDE容器的用户将所述指令安全地安放就位。例如,所述用户和/或提供者可以与一个或多个用户接口交互作用,这些用户接口(例如采用VDE模板的形式)提供了对信息内容嵌入和/或控制选项的选择机制。这些选项可以包括一个或多个控制中的哪一个应该被应用到所述信息内容的一个或多个部分,以及/或者是否应该将上述一个或多个控制应用到所述信息内容的一个或多个部分,并且/或者这些选项还包括信息内容控制参数数据(例如在所述信息内容可被使用之前的时间段、信息内容的使用费、和/或价格折扣控制参数—如软件程序套件销售折扣)的条目。一旦提供者和/或用户确定了所需的和/或可选的信息内容控制信息,这些控制信息可以部分或全部地被自动应用到嵌入至VDE信息内容容器中的某些或全部信息内容。
(2)安全的、由VDE管理的协商活动,这些活动中包括位于接受方VDE设备的用户通过一个用户接口与被提交出来供嵌入之用的信息内容所对应的VDE信息内容控制信息进行交互作用。例如,上述相应控制信息可以提供某些信息内容信息,而信息内容接收者则可以(举例来说)接受、拒绝、提供可选控制信息,从大量可选控制信息中进行选择、和/或将某些条件应用到对特定信息内容控制信息的使用上(例如,如果所述信息内容由特定的一个或多个用户使用并且/或者对特定信息内容的使用量超过了某一程度,则接受特定的一个或多个控制)。
(3)一个安全的、自动化的、VDE电子协商进程,该协商进程涉及接受方VDE信息内容容器和/或VDE设备的VDE信息内容控制信息以及与被提交的信息内容相关联的信息内容控制信息(例如被提交VDE对象许可记录中的控制信息、某些部件组、一个或多个UDE和/或MDE中的参数数据、等等)。
嵌入到VDE信息内容容器中的信息内容可以以下面的形式嵌入进去(1)不形成一个新的容器对象,而直接地、安全地与某个VDE信息内容容器(所述容器可以是一个父信息内容容器或嵌入信息内容容器)中已有信息内容集成在一起的信息内容。在嵌入后,与所述信息内容相关联的控制信息必须与任何嵌入前的、用来至少部分地对嵌入后所需控制信息的创建进行控制的信息内容控制信息相一致。对应于上述被直接集成、嵌入信息内容的信息内容控制信息可以被集成进所述VDE容器控制信息(例如,该控制信息位于一个或多个含有信息内容控制信息的许可记录之中)之中和/或包含所述VDE容器控制信息的一部分。并且/或者(2)被集成进所述容器内一个或多个对象之中的信息内容。这些对象在所述VDE信息内容容器对象中嵌套。在本例中,所述信息内容的控制信息可以或者被父VDE信息内容容器的信息内容控制信息携带,或者(举例来说)部分地或全部地由一个或多个许可记录携带,这些许可记录包含在一个或多个含有嵌套VDE对象的信息内容中,以及/或者与一个或多个含有嵌套VDE对象的信息内容专门相关。在父VDE信息内容容器中含有对象的上述VDE信息内容嵌套层次可以有多层,也就是说嵌入到一个VDE信息内容容器中的VDE信息内容容器本身还可以包含一个或多个嵌入的VDE信息内容容器。
VDE信息内容容器可以带有嵌套的结构,该结构含有一个或多个嵌套容器(对象),而这些容器本身又存放其他容器和/或一种或多种类型的信息内容,如正文、图象、声音、和/或任意其他类型的电子信息(对象信息内容可以由信息内容控制信息指定,而信息内容控制信息则引用(举例来说)存贮介质中的字节偏移地址)。可以采用流的形式(例如动态的积聚和/或流动)和/或静态的形式(即固定的形式,例如预先规定好的完整文件)存放、传送、和/或使用上述信息内容。这些信息内容可以通过从一个或多个VDE信息内容容器内的信息内容中抽取信息内容的子集而被派生出来,然后直接由上述派生出来的信息内容形成一个或多个最终VDE信息内容容器。由VDE(例如,通过使用VDE感知型应用或具有抽取功能的操作系统)安全管理的信息内容在从一个或多个VDE信息内容容器中的一个或多个位置抽取出来的时候可以被做上标识,然后,通过在安全子系统PPE650中运行某些进程以执行各种VDE控制,上述信息内容被安全地嵌入到新的或已有的VDE信息内容容器中。上述的抽取和嵌入(VDE“输出”)涉及安全地保护(包括安全地执行)VDE输出进程。
一个有关VDE输出和嵌入的VDE活动涉及对VDE信息内容执行一次或多次变换,使之从一种安全形式变换成一种或多种其他安全形式。在执行上述变换时,可以把也可以不把经过变换的信息内容移动到一个新的VDE信息内容容器中(例如,通过运行于PPE之中的部件组执行这种变换。在没有执行对所述信息内容中至少一部分的使用进行控制的其他VDE进程时,上述部件组不会以未受保护的形式暴露上述变换进程的结果或其他输出)。上述变换进程的一个例子涉及执行数学变换然后产生诸如数学结果之类的结果,同时丝毫不保留在其上执行了上述变换过程的信息内容信息,或者保留所述信息的部分或全部。上述变换的其他例子有转换文件格式(例如从WordPerfect格式转换成Word for Windows格式,或从SGML文件转换成Postscript文件),改变图像格式(例如从QuickTime图像格式转换成MPEG图像格式),执行人工智能进程(例如对正文进行分析,以产生概要报告),以及从其他受VDE保护的信息内容中获得受VDE保护的信息内容的其他处理。
图79示意了商业VDE用户的组织方案。本例中的用户采用多种方式制作、分发、再分发和使用信息内容。该例示意了在控制信息通过处理和控制链进行传递的过程中,与信息内容相关的控制信息的某些方面可能如何演变。下面将详细解释这些VDE用户和控制。
在本例中,制作者A创建了一个VDE容器,并提供了相关的信息内容控制信息,该控制信息含有对可能“类型”的VDE控制信息几个例子的引用(还可能包含其他内容)。为了更好地说明本例,在下面更加详细的讨论中,某些被传递给其他VDE参与者的VDE控制信息被分成下面三类分发控制信息、再分发控制信息以及使用控制信息。在本例中,可以将作为第四类的嵌入控制信息看作是上述所有三种类型中一个元素。也可能有其他的控制信息分类方式(VDE不要求采用上述方式组织控制信息)。在图80中,用CA指代与制作者A所创建的容器的这一例子相关的信息内容控制信息。图80还示意了其他的VDE参与者,这些参与者可接收与制作者A的VDE信息内容容器有关的允许控制信息。下面将会详细说明本例中的某些上述控制信息。
由制作者A规定的某些分发控制信息(在本例中,这些分发控制信息主要涉及分发者对控制信息的创建、修改、和/或使用)包括(1)对于该容器信息内容的每个实际用户,分发者都要支付制作者A一定报酬,报酬的标准是每人每月10美元;(b)对分发者进行预算,在不补充该预算的情况下,他们最多只能允许100个独立的用户访问上述信息内容(即他们最多只能创建100个反映信息内容使用权的许可记录);(c)不允许将分发权利(如许可记录和相关部件组)放在被创建出来以便分发给其他参与者的允许控制信息中传递。
由制作者A规定的某些信息内容再分发控制信息(在本例中,这些控制信息即为由某个分发者在不超越处理和控制链中的上级参与者所允许的限度内所创建的控制信息,这些控制信息被传递给用户/提供者(在本例中即为用户/分发者),并与某些控制和/或上述用户/分发者提出的、涉及再分发活动的其他要求相关联)包括(a)规定用户/分发者在分发允许对信息内容进行访问的控制信息时不能够超过两级,并进一步要求每次再分发时都将上述的级数减一,这样,第一个再分发者所能进行的分发就被限制在两级之内,接收第一个分发者传递来的许可的第二个分发者将被限制为只能再分发一级,而从第二个分发者接收许可的用户将不能再进行分发(举例来说,可以在上述限制中加入一个要求作为与创建新许可相关联的VDE控制方法的一个方面,以便强制执行上述限制,该要求调用一个或多个方法,这些方法(i)找到再分发的当前级数,该级数(举例来说)作为一个整数值存放在与上述一个或多个方法相关联的UDE中,(ii)将再分发级值与一个限制数值相比较,以及(iii)如果该再分发级值小于限制数值,则首先把所述再分发级值增1,然后才把所述UDE作为与VDE所管理信息内容相关联的信息内容控制信息的一个方面传递给用户;如果再分发级值与限制数值相等,则令该进程失败);(b)对于再分发者没有其他特殊限制。
由制作者A规定的某些使用控制信息(在本例中,即为制作者要求分发者在传递给用户和/或用户/分发者的控制信息中提供的控制信息)可以包括(举例来说)(a)不允许移动信息内容(该移动方式可以是在本文件中任何地方所说明的分发形式);以及(b)要求分发者在使用许可范围内保留(至少)足够的计量信息,以便计算出一个月内访问过该容器的用户数目,并且在租用期到期后禁止进一步的使用(例如,通过使用一个计量器方法,该方法通过处理和控制链把访问使用信息汇报给制作者A;以及/或者在许可记录或其他所需的控制信息中使用过期日期和/或时间衰老加密密钥)。
本例中的制作者A规定的某些抽取和/或嵌入控制信息包括要求处于与该控制信息相关联的处理和控制链中的各方不允许或将不允许抽取和/或嵌入上述信息内容,而某些用户则不在此限,这些用户不带有与制作者A提供的上述受VDE保护信息内容相关的再分发权利。作为一种选择或补充,对于所述信息内容的不同部分,可以把允许特定抽取和/或嵌入的控制信息与本例中说明的、供用户/分发者(这些用户/分发者包括用户信息内容聚合者,即他们提供由不同来源创建的信息内容,和/或从不同来源收到的信息内容,从而制作他们自己的信息内容产品)使用的再分发权利一起提供出去。
本例中的分发者A选择了一种基本方式,在向用户和/或用户/分发者提供信息内容控制信息的时候,分发者A将优选该方式,该方式比起其他方式来更有利于信息内容访问权利的租用。在本例中,由制作者提供的某些控制信息将允许分发者A直接实现上述的有利方式,而另一些控制结构则不允许实现该有利方式(除非(举例来说)分发者A完成了一个成功的VDE协商,该协商允许上述的方式,并支持相应的控制信息)。在本例中,由分发者A收到的许多控制结构都是来自一个VDE协商进程(或反映了该协商进程的结果),在该VDE协商进程中,分发者A表明他希望使用某些分发控制信息,这些分发控制信息授权了对某些使用控制信息的创建,所述的使用控制信息反映了基于租用的使用权利。所述分发控制信息可允许分发者A引入和/或修改由制作者提供的控制结构,其方式为创建控制信息,以便将其分发给用户和/或用户/分发者,而这些用户和/或用户/分发者实际上“租用”访问权利。另外,分发者A对用户/分发者要求提供再分发权利的请求进行服务,因而也支持了与制作者协商得出的(或达成一致的)分发控制信息,该分发控制信息允许分发者A包含上述权利,使之作为由分发者A产生的控制信息的一个方面。
在本例中,分发者A和制作者A可以使用VDE来协商((举例来说)VDE协商)他们之间的分发关系。由于在本例中制作者A制作了一个VDE信息内容容器以及相关的控制信息,该控制信息表明制作者A希望根据使用权利的租用收到报酬,该控制信息还表明制作者A在再分发控制信息中加入了可接受的限制,分发者A可以根据这些再分发控制信息来服务用户/分发者的请求,因此,分发者A可以接受制作者A的分发控制信息,而不再商议其他修改。
从制作者A收到允许分发控制信息之后,分发者A可以运行一个应用程序,为分发者A允许的用户和/或用户/分发者指定使用控制信息的某些或所有细节(这要以上级控制信息允许或不禁止为前提)。分发者A可以(举例来说)确定关于用户为制作者A的容器所支付的使用费用,每人每月15美元的价格可以满足分发者A的业务目的。分发者A必须指定某些使用控制信息,使之满足制作者A给予分发者A的分发控制信息的要求。例如,分发者A可以按照制作者A的要求在控制信息的详细说明中加入规定的任何过期日期和/或时间衰老加密密钥。如果分发者A没有在其控制信息的详细说明中加入上述信息(或满足其他要求),那么在本例中,在制作者A的许可记录中所引用的、以及在PPE 650中经过安全调用而实际创建上述控制信息的控制方法将不能以所期望的方式执行(例如,根据对某些字段中所期望数值的检查结果、根据某些方法必需包含在许可中之类的要求、等等),直到在分发者A的控制信息详细说明中加入了可接受的信息。
在本例中,用户A可以与分发者A一起开立一个帐户,这样用户A可以从分发者A接收受VDE管理的信息内容使用控制信息。用户A可以从分发者A接收信息内容使用控制信息以便访问和使用制作者A的信息内容。由于使用控制信息通过了包括分发者A的处理和控制链进行传递(并且被加入该链和/或由该链修改),因此,在本例中由分发者A要求提供的、用于使用制作者A所制作信息内容的使用控制信息反映了来自制作者A和分发者A两者的控制信息的合成。例如,制作者A可能创建了一个计量器方法,如果某一用户在某个月份中第一次访问制作者A的受VDE控制的信息内容容器,该方法将为此产生一个审核记录(例如将用户上一次访问的日期存放在与打开容器事件相关的UDE中,所述事件由上述计量器方法的方法核心引用;同时在发生后续访问的时候将上述的日期与当前访问日期相比较,以确定本次访问是否发生在同一月份中)。分发者A可以使用与打开制作者A的容器这一事件相关的控制方法所调用的上述计量器方法((举例来说),该计量器方法也是由制作者A或分发者A创建和/或提供),该控制方法调用了一个或多个计帐和/或预算方法,这些方法在一个或多个许可记录中创建、修改和引用,并且/或者由分发者A为它们提供参数,以反映上述的月使用费。如果分发者A在制作者A的上级控制信息允许的范围之内,规定了使用和/或分发控制信息,那么当对应于制作者A VDE信息内容容器的控制信息被传递给用户和/或用户/分发者(在本例中为用户A、用户B和用户/分发者A)时,一套新的控制信息集合(在图80中示意为DA(CA))将与于制作者A的VDE信息内容容器相关联。
在本例中,用户A将从分发者A收到与制作者A的VDE信息内容容器相关联的控制信息。该控制信息可以代表用户A和分发者A之间(例如,针对信息内容的使用费,有限的再分发权利,等等)以及分发者A与制作者A之间(例如,针对受VDE控制信息内容的使用信息和/或信息内容控制信息((举例来说)这些信息由分发者A从制作者A收到,或相反)的特征、程度、处理、汇报、和/或使用和/或创建的其他方面,或针对其他VDE信息内容使用信息的处理)达成的扩展协定。这种扩展协定由多个过程进行强化,这些过程运行于每个参与者VDE设备的安全子系统中。制作者A的控制信息经分发者A修改后由上述扩展协定来表示,在本例中,该扩展协定由DA(CA)来代表,它包括(举例来说)(a)控制结构(如一个或多个部件组、一个或多个许可记录、等等);(b)对使用信息的记录,该记录产生于使用制作者A的信息内容的过程中,而上述使用遵照了在该控制信息中阐述的要求;(c)进行付帐(包括为响应上述使用活动而“执行”的自动电子信用和/或货币付款),以此作为上述使用活动的结果(其中,所述结果也可以包括电子地、安全地和自动地接收通过使用VDE而传递过来的帐单,所述帐单是从所述使用中导出的);(d)在用户A的VDE设备安装站点由用户A和/或VDE安全子系统采取的其他行动,这些行动是上述使用和/或上述控制信息的结果。
除了控制信息DA(CA),用户A可以实施其自身的控制信息,以控制他对制作者A的VDE信息内容容器的使用(其使用要在上级信息内容控制信息的限制范围之内)。该控制信息可以包括(举例来说)(a)在使用上设置的交易、会话、基于时间的和/或其他方面的阈值(如某些数量限制,例如,对于每个活动参数所花销的数额自行施加的限制),于是如果这些阈值被超过之后,用户A必须在继续使用之前明确地表示同意。(b)用户A的个人隐私要求,它涉及对某些使用相关细节的记录和/或传送,这些相关细节涉及用户A对制作者A的信息内容的使用。(c)备份要求,用户对其自身设置该备份要求,以便确保制作者A信息内容容器中的数值和/或本地保存的电子信用和/或货币被确实保护好,否则,当出现系统故障和/或其他原因时上述信息可能会丢失。在某些例子中,可以通过与分发者A协商来确定在某些或所有上述用户A控制信息示例中所执行的权利。可以不依赖于从任何信息内容提供者收到的任何控制信息而实施其他上述用户指定的控制信息,并且,针对信息内容和/或电子设备使用的一种或多种类型,或所有类型,可以设置上述的用户指定控制信息,使之与用户的、(或者更一般地)VDE设备的控制信息相关。在用户A使用制作者A信息内容容器的过程中将投入使用的、VDE控制信息的整个集合在图80中由UA(DA(CA))指代。该集合代表了源于制作者A的控制信息经过了分发者A的修改,并进一步经过了用户A的修改,全部都遵照了价值链中提供上级控制信息的各方所产生的控制信息,因此构成了(对于本例来说)在用户A、分发者A和制作者A之间达成的、有关制作者A VDE信息内容容器的“完整”VDE扩展协定。用户B也可以(举例来说)从分发者A接收上述控制信息DA(CA),并以经过授权的方式加入其自身的控制信息,以形成集合UB(DA(CA))。
用户/分发者A也可以从分发者A接收有关制作者A VDE信息内容容器的VDE控制信息。用户/分发者A既可以(举例来说)作为一个用户来使用制作者A的信息内容,也可以作为其控制信息的再分发者。在本例中,控制信息DA(CA)既允许又限制了上述两种活动。在DA(CA)允许的限度内,用户/分发者A可以根据DA(CA)创建其自身的控制信息UDA(DA(CA)),该控制信息既控制了用户/分发者A的使用活动(其方式类似于前面结合用户A和用户B所说明的方式),又控制由用户/分发者A再分发的控制信息(其方式类似于前面结合分发者A所说明的方式)。例如,如果用户/分发者A向用户/分发者B再分发UDA(DA(CA)),用户/分发者B可能需要向用户/分发者A汇报某些使用信息,而制作者A和分发者A两者都不要求这些信息。作为另一种选择或补充,用户/分发者B可以(举例来说)同意根据其使用制作者A信息内容的分钟数而为其使用向用户/分发者A支付一定费用,(而不是由分发者A为用户/分发者B的使用活动按月向用户/分发者A收费)。
在本例中,用户/分发者A可以向用户/分发者B分发控制信息UDA(DA(CA)),该控制信息允许用户/分发者B再分发与制作者A的信息内容相关联的控制信息。用户/分发者B可以产生一个新的控制信息集合UDB(UDA(DA(CA)))。如果控制信息UDA(DA(CA))允许用户/分发者B再分发,本例中由制作者A设置的再分发限制将禁止集合UDB(UDA(DA(CA)))包含进一步的再分发权利(例如,向用户B提供再分发权利),因为处理链从分发者A到用户/分发者A(分发)、再继续从用户/分发者A到用户/分发者B(一级再分发)、进一步延续到另一用户已经代表了两级的再分发,因此,在本例中,集合UDB(UDA(DA(CA)))不能包含进一步的再分发权利。
如图79所示,用户B可以使用来自用户/分发者B和分发者A两者(不限于此两者)的信息内容。在本例中,如图80所示,用户B可以从分发者A和/或用户/分发者B接收与制作者A的信息内容相关联的控制信息。在两种情况下,用户B都可以分别在DA(CA)和/或UDB(UDA(DA(CA)))之上创建其自身的控制信息(如果上述控制信息允许的话)。得到的控制信息集合UB((DA(CA))和/或UB(UDB(UDA(DA(CA))))分别代表不同的控制方案,每种控制方案都可以使用户B获益。前面已经结合一个例子介绍过,用户B可以已从处理链中的用户/分发者B收到控制信息,该处理链中还包括用户/分发者A,用户/分发者A根据用户B使用制作者A信息内容的分钟数来收取费用(并要求用户/分发者A按照每人每月15美元向分发者A支付使用费,而不管用户在一个月中的使用量是多少)。在某些情况下,上述方案比起直接使用分发者A提供的控制信息来收取费用要更有利一些,但也可能有不利的一面,即有可能耗尽再分发链,以及(举例来说)包含在UDB(UDA(DA(CA)))中的进一步的使用信息汇报要求。如果控制信息DA(CA)和UDB(UDA(DA(CA)))允许的话(例如,它们不要求采用下面的方法强制排他性,即(举例来说)在由用户B的VDE设备安全子系统所使用的对象注册中使用注册间隔,以禁止在特定时间间隔内对涉及特定容器的不同控制信息集合取消注册和再注册(或禁止对带有不同控制信息和/或由不同信息内容提供者提供的同一信息内容之大量拷贝进行注册),所述的特定时间间隔是由DA(CA)和/或UDB(UDA(DA(CA)))反映出来的、作为针对处理和控制链之扩展协定的一个方面),那么用户B可以已注册了两个控制信息集合,并且如果他们发现某种控制信息集合更适合于给定的使用方案时,他们可以使用该控制信息集合。
在本例中,制作者B创建了一个VDE信息内容容器,并把一个VDE控制信息集合关联到该容器,所述的控制信息集合在图81中由CB指代。图81还示意了某些VDE参与者,他们可以接收与制作者B VDE信息内容容器相关联的允许控制信息。在本例中,控制信息可以指出,制作者B信息内容的分发者(1)在该分发者的授权下,必须为用户和/或用户/分发者解密的信息向用户B支付每千字节0.50美元的使用费;(b)可以允许用户和/或用户/分发者将他们的信息内容容器嵌入到另一容器中,同时维持一个要求即制作者B为每千字节解密信息内容收取0.50美元使用费;(c)不限制为用户和/或用户/分发者产生的允许控制信息集合的数量;(d)必须在特定的时间间隔内(如每月至少一次)汇报有关上述被分发控制信息集合数量的信息;(e)可以创建控制信息,这些控制信息允许用户和/或用户/分发者对其控制信息执行最多为三次移动;(f)可以允许用户/分发者对控制信息进行最多三级的再分发;(g)可以允许从用户/分发者那里收到再分发的控制信息的每个用户最多执行一次移动。
在本例中,分发者A可以请求制作者B提供控制信息,该控制信息使分发者A可以向用户和/或用户/分发者分发控制信息,该控制信息与VDE容器相关联,前面已经结合制作者B对该VDE容器进行了说明。如前所述,分发者建立了一种商业模型,该模型有利于向从分发者A收到上述权利的用户和用户/分发者“出租”访问权利。在本例中,制作者B的分发控制信息并不强迫使用包括“出租”权利的模型,而是根据由用户或用户/分发者解密的信息内容数量来决定付款额。在本例中,分发者A可以使用VDE与制作者B协商,以便含有一种经过制作者B允许的不同使用信息记录模型。该模型可以基于在与制作者B的容器相关联的控制结构中加入一个或多个计量器方法,这些方法将记录最终用户解密的字节数目,但是并不根据上述解密收取用户的使用费。相反,分发者A建议—同时制作者B的控制信息也同意—允许使用“租用”模型向用户收费,并根据由解密字节计量器方法记录的信息和/或从用户收取的付款来确定应该向制作者B支付的费用额。
制作者B可以(举例来说)(a)接受上述的新模型,同时由分发者A充当审核员(如,依赖涉及处理审核信息的控制方法(这些审核信息由分发者A使用分发者A站点处的VDE安全子系统从制作者B信息内容的用户收到);并进一步安全地计算出分发者A应付制作者B的费用;然后(举例来说)使用互相接受的预算方法完成向制作者B的付款,所述的预算方法管理从分发者A持有的信用和/或货币向制作者B付帐);(b)接受上述的新模型,前提是分发者A接受由第三方执行与该上述信息内容相关联的所有审核功能;(c)可以接受上述模型,前提是与记录用户解密字节数目的一个或多个计量器方法相关联的信息被分发者B的VDE安全子系统安全地包装好,并通过使用VDE通信技术被安全地传送给分发者A以及制作者B;以及/或者(d)接受其他双方可接受的条件。分发者A根据分发者A在CB允许的条件下所执行的修改产生控制信息,该控制信息在本例中由DA(CB)指代。
用户A可以从分发者A接受控制信息集合DA(CB),前面已经结合通过包含分发者A的处理链从制作者A收到的信息内容介绍过,用户A可以在控制信息DA(CB)允许的限度内将他们自己的控制信息应用到DA(CB),从而产生控制信息集合UA(DA(CB))。控制信息集合DA(CB)可以包含一个或多个计量器方法,这些方法记录由用户A从制作者B的容器中解密的信息内容字节数目(以便允许针对用户A对制作者B信息内容的使用而正确地计算出分发者A应付制作者B的费用,该计算过程要遵照CB控制信息的规定,即每千字节解密信息要收取0.50美元的费用),另外,DA(CB)还可以包含另一个与记录的使用相关联的计量器方法,这样,分发者A可以收集足够的信息以便安全地产生计帐信息,该计帐信息与用户A对制作者B信息内容的使用相关联,并且基于“租用”模型(例如,分发者可以(举例来说)带有一个计量器方法,每当用户A使用制作者B的信息内容时,该计量器方法都记录下当时的月份;同时,该计量器方法还涉及进一步的控制信息,对于用户A使用上述信息内容期间,该控制信息将按每月10美元向用户收费)。
用户/分发者A可以直接从制作者B接收控制信息CB。在本例中,制作者B可以使用VDE与用户/分发者A协商,并传递控制信息集合CB,该控制信息集合CB可以等同于或不同于前面结合制作者B和分发者A之间建立的分发关系所描述的控制信息集合。例如,用户/分发者A可以接收控制信息CB,该控制信息包含一个要求,即用户/分发者A对于由用户/分发者A(以及从用户/分发者A接收到分发和/或再分发控制信息的任何参与者)解密的信息内容需要按照每千字节0.50美元的标准向制作者B付款。如上所述,用户/分发者A也可以从分发者A接收与制作者B的VDE信息内容容器相关联的控制信息。在本例中,用户/分发者A可以有两种选择,一种是通过经由分发者A的处理链支付“租用”费;一种是根据解密的字节数量通过处理链直接向制作者B支付费用。在本例中,用户/分发者A能够从CB和DA(CB)中选择使用其一。前面已经结合含有制作者A和分发者A的处理链描述过,用户/分发者A可以在CB和/或DA(CB)允许的限度内应用其自己的控制信息,以分别形成控制信息集合UDA(CB)和UDA(DA(CB))。
如图81所示,在本例中,用户B可以从六个不同的来源接收与制作者B的VDE信息内容容器相关联的控制信息直接从制作者B接收CB,从分发者A接收DA(CB),从用户/分发者B接收UDB(UDA(DA(CB)))和/或UDB(UDA(CB)),从分发者C接收DC(CB),以及/或者从分发者B接收DB(DC(CB))。他们代表了六条处理链,通过这些处理链,用户B可以与本例中的其他参与者达成扩展协定。这些处理链其中的两条经过了用户/分发者B。根据用户/分发者B和用户B之间的VDE协商,可以达成一个扩展协定(如果控制双方的控制信息允许的话),该协定反映了用户B可以使用两个控制信息集合之一或两个都使用的条件。在本例中,两条处理和控制链将在用户/分发者B处“会合”,然后传递到用户B(并且如果控制信息允许的话,上述处理和控制将根据用户B的分发和/或再分发而在以后又一次分开)。
在本例中,制作者C产生与制作者C创建的VDE信息内容容器相关联的一个或多个控制信息集合CC,如图82所示。图82还示意了某些VDE参与者,这些参与者可以接收涉及制作者C VDE信息内容容器的允许控制信息。在本例中,该容器中的信息内容被组织成正文文章的集合。在本例中,控制信息可以含有一个或多个部件组,这些部件组描述了该容器内的文章(例如,一个或多个事件方法引用映射表和/或算法,这些映射表和/或算法描述了每篇文章的范围)。CC还包括(举例来说)(a)一个要求,即对于由用户和/或用户/分发者访问的每篇文章,分发者要确保制作者C收到1美元的付款,该付款允许一个用户在不超过六个月的时间内可以访问该篇文章(例如,使用映射类型计量器方法,该计量器方法每月老化一次;使用时间衰老解密密钥;使用与相关许可记录相关联的过期日期,等等);(b)控制信息;它允许从制作者C容器中抽取文章,并嵌入到另一个容器中,对每次抽取/嵌入一次性收费10美元;(c)禁止对抽取的/嵌入的文章进行再抽取;(d)允许分发者每月为最多1000个用户或用户/分发者创建允许控制信息;(e)要求至少每星期向制作者C汇报一次有关分发者允许的用户和用户/分发者的数量信息;(f)允许分发者使用户或用户/分发者可以对允许控制信息执行最多一次移动;(g)允许用户/分发者进行最多2级的再分发。
在本例中,分发者B可以与制作者C建立分发关系。本例中的分发者B可能已经建立了一种业务模型,该模型有利于向用户和用户/分发者分发控制信息,该模型根据由上述VDE参与者所执行访问的次数来决定对分发者B的付款。在本例中,分发者B可以创建一个经过修改了的允许控制信息集合DB(CC),以便将之分发给用户和/或用户/分发者。该集合DB(CC)可以(举例来说)根据使用了VDE的一次协商过程而确定对于从分发者B收到控制信息的用户和/或用户/分发者,采用每个用户每次访问收费0.10美元的标准。例如,如果CC中已经含有了一个或多个映射类型计量器方法,以确保可以从用户和/或用户/分发者收集到足够的信息,用以保证分发者B根据CC向制作者C支付了正确的费用,这些方法可以在集合DB(CC)中保存,同时,还要加入一个或多个另外的计量器方法(以及其他必要的控制结构,例如计帐和/或预算方法)以便记录每次访问,这样,集合DB(CC)还将确保分发者B将根据每次访问收到付款。
本例中的客户管理员可以接收信息内容控制信息集合DB(CC),该集合DB(CC)不同于(举例来说)由用户B从分发者B接收到的控制信息。例如,分发者B可以向客户管理员提供对应于某些制作者的允许信息内容控制信息,而客户管理员可以使用VDE与分发者B进行协商,以便对于所有上述制作者的信息内容建立一个控制信息集合。例如,客户管理员可以收到一个控制信息集合DB(CC),该集合反映了客户管理员和分发者B之间VDE协商的结果。客户管理员可以含有对DB(CC)的修改集合,并形成一个新集合CA(DB(CC)),该集合含有某些控制信息,这些控制信息只对与该客户管理员属于同一组织的用户和/或用户/分发者(如同事、雇员、顾问、等等)可用。为了强化这种方案,CA(DB(CC))可以(举例来说)含有某些控制结构,这些结构在注册时检验与用户或用户/分发者相关联的名字服务信息;这些结构还建立一个新的预算方法,该预算方法由该客户管理员管理,在信息内容的使用中要用到该方法;等等。
分发者可以向客户管理员提供再分发权利,以允许所述管理员只在该管理员的组织内而不向其他方再分发权利,以便为某些信息内容创建特定的许可记录(再分发对所述信息内容的使用权)。类似地,该管理员可以扩展上述的“有限”权利,而再分发给其组织内的部门和/或其他管理员,这样,他们可以根据由所述管理员指定的个人、和/或类别、和/或该组织成员其他分类的一个或多个有限列表再分发上述的信息内容使用权。这种VDE功能—即把再分发的范围限制到特定的一方或多方、和/或特定的一个或多个类别和/或VDE用户和/或设备的其他分类—可以由任何VDE信息内容提供者应用到信息内容上,只要该控制经过了上级控制信息的允许。
在本例中,用户D可以从客户管理员和/或用户/分发者C接收控制信息。用户/分发者C可以(举例来说)向用户D分发控制信息UDC(CA(DB(CC))),该控制信息含有一个由用户/分发者C管理的部门预算方法,该方法允许用户/分发者C对用户D的活动维持另一层控制。在本例中,除了从商业分发渠道中得到的控制之外,UDC(CA(DB(CC)))还可以含有多层的组织控制(例如,源自客户管理员的控制以及源自用户/分发者C的另外控制)。作为补充或选择,即使客户管理员带有足够的控制信息,他也可以拒绝向用户D分发特定种类的控制信息(如分发给用户/分发者C的控制信息,该控制信息允许向诸如用户D这样的用户进行再分发),这样做有助于确保控制信息按照某些策略、过程和/或其他管理进程在该客户管理员的组织中流动。
在本例中,用户E可以从客户管理员和/或分发者B接收控制信息。例如,用户E可以与分发者B一起拥有一个帐户,尽管可以从客户管理员那里收到某些控制信息。在本例中,可以允许用户E不受限制地从分发者B请求并接收控制信息;或者作为一项组织策略,客户管理员可以在与用户E电子设备相关联的位置带有某些控制信息,该控制信息限制了用户E与分发者B交互作用的范围。在后一种情况中,客户管理员可能(举例来说)已经限制用户E必须向用户E电子设备的安全子系统注册控制信息,该控制信息不能从该客户管理员得到,它来自于一个或多个特定种类的分发者和/或制作者,并且对它的使用需要付款,例如按某种价位点(如每使用1小时收费50美元)。作为一种选择或补充,客户管理员可以(举例来说)将用户E限制在从分发者B接收控制信息,在该过程中,用户E收到了一个价格(或其他控制信息标准),该价格比起从该客户管理员的控制信息中可以得到的价格(或其他标准)更加有利。
在本例中,制作者D可以创建一个VDE信息内容容器,该容器主要用来(例如通过使用VDE抽取/嵌入进程)与其他信息内容集成在一起,所述其他信息内容的例子包括由制作者B和/或制作者C提供的信息内容。图83还示意了一些VDE参与者,这些参与者可以接收有关制作者D创建的VDE信息内容容器的允许控制信息。与制作者D的信息内容相关联的控制信息(图83中的CD)可以含有(举例来说)(a)一个要求,即分发者的付款方式或者是每个用户每次打开为1.50美元,或者是每个用户付款25美元之后可以打开无限多次;(b)对于任何用户,只要他以前已经为无限次地打开由制作者D所制作的某些其他信息内容而支付了费用,就可以给予该用户20%的折扣(其实现过程是包含一个或多个计帐方法,这些计帐方法分析用户VDE设备的安全数据库,以确定上述的任何其他容器是否被注册,并进一步确定购买该容器使用权的用户所持有权利的特征);(c)一个要求,即当依照CD而产生的控制信息所允许的用户和/或用户/分发者之数目超过了1000之后,分发者需要报告该数目;(d)一个要求,即分发者将用户和/或用户/分发者所执行的移动数目限制为不超过一次;(3)一个要求,即分发者将用户和/或用户/分发者所执行的再分发级数限制为不超过四级;(f)分发者可以创建某些允许控制信息,该控制信息允许其他分发者以分发者的身份创建控制信息,但是该上述分发者不能将该功能传递给所述的被允许分发者;另外,还要求与所述被允许分发者使用控制信息相关联的审核信息直接传递给制作者D,而不要经过所述允许分发者的处理;并且,对于制作者D从所述被允许分发者收到的任何付款,制作者D都应从中抽出10%来支付所述允许分发者。
在本例中,分发者C可以从制作者B、制作者C和制作者D收到VDE信息内容容器以及相关的控制信息集合CB、CC和CD。分发者C可以使用嵌入控制信息以及其他控制信息,利用从制作者B、制作者C和制作者D收到的两个或多个VDE对象而制作一个新容器。作为补充或选择,分发者C可以分别地为上述收到的容器创建允许控制信息,以便将它分发给用户和/或用户/分发者(或在CD情况下,分发给分发者)。例如,分发者C可以创建一个容器,该容器含有来自制作者B、制作者C和制作者D的信息内容部分(如嵌入容器),在该容器中,每个上述部分都具有与对该部分的访问和使用相关联的控制信息,该控制信息记录并允许审核员收集足够的信息,以便使每个上述制作者可以根据涉及由分发者C允许的用户和/或用户/分发者所进行的使用而安全可靠地从分发者C收取付款。另外,制作者C可以使用VDE与某些或所有上述制作者协商以确定某种模型,在该模型中,制作者C为整个容器提供全局控制信息,并为此向用户和/或用户/分发者收取“统一”的费用(例如,按每月、每次访问计算,按组合模型计算、等等);与此同时仍然维持每个上述制作者根据CB、CC和/或CD所确立的、有关分发者C如何向他们付款的模型;并且,由于上述制作者已经确立了各自不同的、有关收集信息内容使用信息和任何相关(如广告)信息的模型,于是分发者C可以从每个上述模型中得到相应信息。
在本例中,分发者B可以从制作者E接收一个VDE信息内容容器和相关控制信息CE,如图83所示。如果CE允许的话,分发者B可以从该容器中抽取部分信息内容。然后,分发者B可以(举例来说)将该信息内容部分嵌入到从分发者C收到的一个容器中,该容器含有多个VDE对象的一个聚集,这些对象分别由制作者B、制作者C、和制作者D创建。根据从每个制作者和分发者C收到的控制信息集合中所规定的具体限制和/或许可,分发者B(举例来说)能够将上述抽取出的信息内容部分作为一个独立VDE对象嵌入到从分发者C收到的容器中,或直接嵌入到制作者B、制作者C、和/或制作者D之“就位”对象的信息内容中。作为一种选择或补充,如果CE允许的话,分发者B可以决定将上述抽取出来的信息内容部分作为独立的VDE对象分发出去。
在本例中,用户B可以从分发者C接收一个VDE信息内容容器,该容器中含有由制作者B、制作者C、和制作者D创建的VDE对象。另外,用户B还可以从分发者B接收一个VDE信息内容容器,该容器中含有由制作者B、制作者C、和制作者D创建的同样信息内容,而除此之外还含有由制作者E所创建信息内容的一个或多个被抽取/被嵌入部分。用户B将基于确定他们选择使用上述容器中的哪一个(包括哪个嵌入容器是他希望使用的),以及在何种情况下使用,比如基于上述被抽取/被嵌入部分的特征(如,在信息内容的其余部分中用以表现可能引起人们兴趣的领域的多媒体展示、解释和/或说明信息内容其他元素的评论、相关文章、作为一个信息内容元素交付的改进型应用软件、等等);上述信息内容部分的质量、实用性、和/或价格(或控制信息的其他属性);以及其他一些方面上,这些方面突出了本例中从分发者B和分发者C接收到的容器和/或信息内容控制信息的特色。
用户B可以为上述VDE信息内容容器从分发者B接收信息内容控制信息,该控制信息允许用户B添加和/或修改上述容器中所包含的信息内容。用户B可能(举例来说)希望能够使用一个VDE感知型字处理器或其他应用对上述容器中的信息内容做注释。如果上级控制信息允许的话,某些和/或所有的信息内容都可供用户B修改和增添。在本例中,用户B对于被增添和/或修改的信息内容来说是充当其VDE制作者。用户B可以(举例来说)向该信息内容提供新控制信息,也可以被要求(或希望)使用现有的控制信息(或处理链中上级成员、针对该目的所加入的控制信息),以便(根据与上述容器和/或所含对象相关的控制信息)管理上述信息内容。
在本例中,VDE 100用来支持一个环境,该环境含有(举例来说)信息内容分发、再分发、聚合(抽取和/或嵌入)、再聚合、修改、和使用。本例中的上述环境支持竞争模型,在该模型中,控制信息和信息内容两者都可以经过协商确定,并且都可以根据它们所经处理链的不同而带有不同的细节。而且,本例中的上述环境允许VDE参与者添加和/或修改信息内容,只要该VDE参与者收到了允许执行上述活动的控制信息。
示例—通过信息内容VDE处理链进行的信息内容分发图84示意了一个相对简单的VDE信息内容分发模型3400中的某些方面,该模型中包括几种不同类型的VDE参与者。为了引用起来简单,本例采用VDE信息内容容器对象的形式将信息内容的各种不同部分表示为独立的项。用户还可以把一个或多个上述信息内容部分集成在一起形成单个对象,并且可以整个地或部分地把它们抽取出来(如同在信息内容控制信息允许时任何VDE信息内容容器对象的信息内容一样)。在本例中,历史/教育多媒体信息内容的出版商通过使用信息内容对象创建VDE信息内容容器,这些信息内容对象可从下面三种信息内容来源得到 出版商可以得到的视频库3402产品,这些产品存放在光盘上,它们含有视频剪辑VDE对象,代表各种历史局势; Internet存放库3404,它在VDE对象中存放了历史信息文本和图片资源,这些对象可以由出版商和其他用户下载得到; 声音库3406,该库也可以通过光盘得到,它带有各种音乐演出和演讲片段(例如历史讲解),可以单独使用该库,也可以结合其他历史教育材料一起使用。
可以将库3402、存放库3404和库3406中提供的信息提供给不同的出版商3408(a)、3408(b),...,3408(n)。出版商3408接下来可以将他们得到的某些或所有信息提供给最终用户3410。
在本例中,视频库3402控制信息允许出版商从视频库产品容器和信息内容控制信息中抽取对象,这些信息内容控制信息允许在一年之内使用每个被抽取出的对象,前提是该对象的使用许可费小于或等于50美元,并且其播放时间少于45分钟;并允许对任何其他被抽取对象中的每一个都可以做20,000份拷贝。另外,视频库3402还要求所有的视频对象在被解密时都要加入VDE指纹。声音库3406建立了类似的控制方案,该方案符合其业务模型。为响应用户有关下载某个对象的联机请求,在某个被选定对象流出该存放库时,Internet存放库3404VDE容器包装—包括加密—选定的对象信息内容。存放库3404可以首先将接收方VDE设备的标识作为指纹加入其信息内容之中,然后才加密该信息内容并将之传送给出版商,存放库3404还要求上述出版商或其他信息内容用户在解密其信息内容的时候将用户标识信息作为指纹加入该信息内容中。
按照与信息内容提供源经过协商(或一致同意)所确定条款和条件的规定,本例中的出版商3408选择各种信息内容部分,将这些部分组合在一起,为他们的教师用户形成VDE对象容器。出版商3408(A)组合了从视频库3402抽取的视频对象(由圆圈表示)、从Internet存放库3404抽取的正文和图像对象(由菱形表示)、以及从声音库3406抽取的一个音乐片段和一个历史讲解片段(由矩形表示)。出版商3408(B)抽取了类似的对象集合以形成其自己的产品,同时他还加入了由出版商3408(B)创建的图形元素(由六边形代表)以增强该产品。出版商3408(C)通过组合来自Internet存放库3404的对象和来自声音库3406的对象也创建了一个产品。在本例中,所有的出版商产品都放在他们各自的光盘上,以含有嵌入对象的VDE信息内容容器对象形式交付给一所现代化高中,以便安装在这所高中的计算机网络中。
在这个特殊的例子中,最终用户3410是一些教师,他们使用其VDE节点的安全子系统访问其高中服务器中的VDE设备,该VDE设备对出版商的产品提供支持(在另一例子中,这所高中可以只维护一个基于服务器的VDE设备)。这些教师从一个或多个上述出版商那里获得VDE产品的使用许可,并从这些VDE产品信息内容容器中抽取所需的对象,然后或者将这些抽取出的VDE信息内容以VDE信息内容容器的形式下载到其教室的计算机中保存起来,以及/或者作为一种适当的和/或有效的手段,这些教师可以将抽取出的信息内容以VDE信息内容容器的形式存放在服务器的大容量存贮设备中(以及/或者如果希望的话且如果最终用户可以获得,并且依据可接受的定价和/或其他条款和条件和/或上级信息内容控制信息的规定,这些教师可以将抽取出的信息以未加密“明文”形式保存在其节点中和/或服务器存贮设备中)。这种方式允许用户播放或使用从所述出版商产品中选择出来的部分,并且如同本例所述的两个实例那样,向所述对象添加由教师和/或学生创建的其他信息内容。例如,最终用户3410(2)选择了从出版商A收到的视频片段1,而该出版商A则是从视频库中收到的上述对象。最终用户3410(3)也从相同的出版商3408(A)那里接收视频片段3,其中,他也可以从出版商3408(B)那里得到相同的片段,但是依据的条款和条件或许不那么有利(例如可能不支持咨询电话)。另外,最终用户3410(3)从出版商3408(B)那里接收了一个声音历史讲解片段,该片段对应于历史参考片段7的信息内容。最终用户3410(3)还从出版商3408(2)接收了对应的历史参考片段7(一本书),而该出版商3408(2)则是从Internet存放库3404那里接收到所述的书。在本例中,由于最终用户3410(3)还从出版商3408(2)那里而不是从带有同一书籍的出版商3408(1)那里取得了历史参考片段7的使用许可,所以出版商3408(2)也许会对上述的书收取较低的费用。作为一个教师,最终用户3410(3)选择了若干他认为最适合于其班级的项,并且通过使用VDE,该最终用户3410(3)已经能够灵活地从对他可用的来源中选择上述项(在本例中即是从出版商提供的、并且在该高中本地网络服务器中可以得到的各种光盘产品中抽取各种对象)。
示例—一个组织内部的信息内容控制信息分发图85示意了两个VDE信息内容容器容器300(A)和容器300(B),他们已经被分发给某个大组织中的VDE客户管理员3450。如图所示,当容器300(A)和容器300(B)到达该公司的时候,它们都带有某些控制信息,这些控制信息规定了该组织的可获得的使用权利。可以进一步从图85中看到,客户管理员3450将上述权利中的某些子集分发给了该组织中的某些部门管理员,例如销售和市场管理员3452(1)、规划管理员3452(2)、以及研究与开发管理员3452(k)。对于每个部门,客户管理员3450都确定该部门可以获得哪些使用选项,以及可以使用多少预算。
图85是一个简化的例子。例如,客户管理员3450可以已加入由他自己创建的其他VDE控制,并且/或者(如果上级信息内容控制信息允许的话)可以修改和/或删除已经存在的控制,并且/或者(如果控制信息允许的话)他本来还可以在进一步将可用的资金预算(或其他预算)划分给各种具体的使用活动。正如客户管理员对于各部门所具有的权利那样,在本例中,部门管理员也具有同样的权利来确定部门最终用户的权利。在本例中(图85未示出),客户管理员3450和/或信息内容提供者还确定某些控制信息,这些控制信息必须对所有或某些类别的最终用户直接控制他们对信息内容的使用和/或所述使用活动的结果(包括提供有关上述方面的权利)。在图85所示的例子中,所述组织中只有三级的VDE参与者一个客户管理员3450
若干部门管理员3452若干最终用户3454在其他例子中,VDE将支持一个组织中的多级VDE管理(包括重叠的组)(如分支、部门、项目、网络、组、最终用户、等等)。另外,VDE模型中的管理员本身也可以是VDE信息内容用户。
在一个组织中,VDE设备可以存在于每个最终用户节点处、只存在于服务器处或其他多用户计算机或其他电子设备处,或者可以有混合的环境。可以根据组织和/或信息内容提供者安全性、性能、成本开销或其他需要虑及的方面来作出有关VDE服务器混合和/或节点使用活动的决定。
在本例中,图85所示的各VDE参与者之间的通信使用了VDE安全通信技术,这些安全通信技术适用于支持PPE的VDE安全子系统以及该组织内每个VDE设备中的其他VDE安全系统部件互相之间的通信。
示例—信息内容分发的另一个例子受VDE保护的信息内容的制作者可以采用多种不同的方式与其他VDE参与者进行交互作用。VDE制作者102可以(举例来说)直接向用户分发信息内容和/或信息内容控制信息、向商业信息内容存放库分发信息内容和/或信息内容控制信息、向团体信息内容存放库分发信息内容和/或信息内容控制信息、以及/或者向其他VDE参与者分发信息内容和/或信息内容控制信息。如果制作者102不直接和其信息内容的所有用户交互作用,他可以向其他VDE参与者传送分发许可,这些许可允许所述VDE参与者进一步分发信息内容和/或信息内容控制信息。他也可以允许进一步分发VDE信息内容和/或信息内容控制信息,其实现方式是(举例来说)不限制对控制信息的再分发,或允许某个VDE参与者为可被传递给另一方的一个或多个许可记录充当一个“导管”,在所述的另一方中,所述许可记录将第一接收方和/或第二接收方的标识包括了进去。
图86示意了VDE参与者的一个可能组织方案。在本例中,制作者102可以使用一个或多个应用软件程序和一个或多个VDE安全子系统将未加密的信息内容放入受VDE保护的形式(即放入一个或多个VDE信息内容容器)中。另外,制作者102可以产生一个或多个分发许可3502和/或使用许可3500,作为与上述受VDE保护信息内容相关联的控制信息的一个方面。这些分发和/或使用许可3500、3502可以是相同的(例如,所有的分发许可都可以实际带有相同的全部特征),或者它们也可以是不同的,这要取决于这些许可创建所针对的参与者的分类和/或类别、请求和/或传送这些许可时的情况、改变制作者102或接收者的信息内容的控制模型、等等。
在本例中,制作者102将受VDE保护的信息内容(例如通过网络、广播、和/或物理介质传送)传送给用户112a、用户112b和/或用户112c。另外,制作者102还使用VDE安全通信技术将使用许可传送给上述用户。用户112a、用户112b和用户112c可以在控制信息的规定范围内使用上述受VDE保护的信息内容,从制作者102接收的使用许可对上述控制信息作了规定。在本例中,制作者102可以(举例来说)管理上述用户活动的所有方面,所述的用户活动涉及由制作者102传送给他们的受VDE保护的信息内容。作为另一种选择,制作者102可以(举例来说)含有对制作者102未提供的控制信息进行的引用(例如由其他方管理的部件组),这些引用是用户必须可获得的。
在本例中,商业信息内容存放库200g可以从制作者102接收受VDE保护的(或被安全交付的)信息内容以及分发、许可和/或其他信息内容使用控制信息。商业信息内容存放库200g可以安全地存放信息内容,因而当用户的某些必要条件得到满足之后,他们才可以从该存放库200g中获取上述信息内容。分发许可3502可以(举例来说)允许商业信息内容存放库200g在收自制作者102的信息内容控制信息所规定的某些限制范围内(例如,拷贝数不能超过某一数目,要求商业信息内容存放库200g向制作者102进行付款,要求该许可的接收者满足涉及汇报信息内容使用信息的某些要求、等等)使用VDE安全子系统创建再分发许可和/或使用许可3500、3502。可以将上述信息内容控制信息存放在该存放库设备中,并且当为响应某个用户请求而将信息内容传送出所述存放库时,可以将上述信息内容控制信息应用到未加密的上述信息内容中,其中,所述信息内容被放到一个VDE容器中,作为将所述信息内容传送给用户的安全进程的一个步骤。再分发许可可以(举例来说)允许上述许可的接收者在某些限制范围内创建一定数量的使用许可(例如,只对于同一家庭、商业机构、或其他组织的成员、等等)。由制作者102发送给存放库200g的控制信息可以(举例来说)要求存放库200g从存放库200g分发了许可的所有VDE参与者那里收集并汇报信息内容使用信息。
在本例中,权力用户(power user)112d可以使用桌上型计算机3504从商业信息内容存放库200g那里接收受VDE保护的信息内容和再分发许可。权力用户112d可以(举例来说)结合桌上型计算机3504的VDE安全子系统使用应用软件,以便为桌上型计算机3504、膝上型计算机3506、和/或顶置设备3508创建使用许可(假设从商业信息内容存放库200g收到的再分发许可允许上述活动)。如果上级控制信息(例如,该控制来自制作者102,并可能经过了存放库200g的修改)允许的话,权力用户112d可以向上述使用许可中加入其自己的限制(例如限制权力用户112d的某些家庭成员对顶置设备的使用为每天特定时间、限制对其的使用量、等等,这要取决于这些家庭成员的用户标识信息)。然后,权力用户112d可以将采用VDE安全通信技术将上述受VDE保护的信息内容和使用许可传送给膝上型计算机3506和顶置设备3508。在本例中,权力用户112d将许可从桌上型计算机3504中再分发给顶置设备3508和膝上型计算机3506,并且,该顶置设备和膝上型计算机将被定期地要求向上述桌上型计算机汇报信息内容使用信息,然后桌上型计算机将聚集、和/或处理用户使用信息,并将该使用信息汇报给存放库200g。
用户112e和/或用户112f可以从商业信息内容存放库200g接收使用许可和受VDE保护的信息内容。这些用户能够按照上述使用信息授权的方式使用上述信息内容。与权力用户112d相反,这些用户没有向存放库200g请求或从存放库200g接收再分发许可。在本例中,这些用户仍然能够向其他电子设备600传送某些或所有使用权利,并且/或者他们可以被允许将他们的某些权利移动到另一电子设备—如果从存放库200g收到的使用许可允许上述传送和/或移动的话。在这种情况下,上述其他设备能够直接向存放库汇报使用信息。
在本例中,公司700中的团体信息内容存放库702可以从制作者102接收受VDE保护信息内容和分发许可。团体存放库702收到的分发许可可以(举例来说)含有某些限制,这些限制规定存放库702只能在公司700内部从事分发活动。
存放库702可以(举例来说)结合VDE安全子系统使用自动化的操作系统接收和/或传送受VDE保护信息内容以及/或者再分发许可和/或使用许可。在这种情况下,自动化系统可以(举例来说)依靠由公司策略、部门策略、和/或用户喜好等规定的标准来确定交付给公司700内部各方(公司中的群体和/或个人)的许可和/或信息内容的特征。上述的系统可以(举例来说)在公司700从制作者102收到分发许可后,自动地为部门信息内容存放库704产生再分发许可作为响应,并且/或者为用户112j和/或用户112k产生使用许可。
部门存放库704可以自动地为用户112g、用户112h和/或用户112i产生使用许可。上述用户可以从团体信息内容存放库702访问信息内容,而从部门存放库704接收使用许可。在这种情况下,用户112g、用户112h和/或用户112i可以从部门存放库704接收使用权限,这些使用许可中除了有上级控制信息规定的限制之外,还加入了部门的限制(在本例中,上级控制信息来自制作者102,然后可被团体存放库702修改,又可进一步由部门存放库704修改,修改后的控制信息反映了一个VDE扩展协定,该协定除了带有团体和/或部门的策略以及与公司700各团体人员之间的协定之外,还包含了制作者102和公司700的商业要求)。
示例—“虚拟硅容器”(Virtual Silicon Container)如上所述,在某个例子中的VDE提供了“虚拟硅容器”(“虚拟黑盒子”),在该虚拟硅容器中,SPU 500的若干不同实例可以安全地在一起通信,以提供一个整体安全硬件环境,该环境“虚拟地”存在于多个地点和多个电子设备600中。图87示意了虚拟硅容器的一个模型3600。该虚拟容器模型3600含有信息内容制作者102、信息内容分发者106、一个或多个信息内容再分发者106a、一个或多个客户管理员700、一个或多个客户用户3602、以及一个或多个票据交换所116。上述每个不同的VDE参与者都可以带有一个电子设备600,该电子设备600含有一个受保护的处理环境655,而受保护的处理环境655可以至少部分地含有一个基于硅的半导体硬件元素安全处理部件500。各种不同的SPU 500中的每一个都封装了虚拟分发环境的一部分,于是它们一起构成了虚拟硅容器3600。
实例—测验/考试教育考试服务中心(Educational Testing Service)为高中高年级学生准备了一次排定好时间的SAT考试。考试信息被放置在一个VDE容器中,并计划好在美国东部时间1994年11月15日下午1:00发放。SAT为每个学校或其他将要举行该考试的地点都准备了一个容器备份。上述学校和其他地点(“考点”)将得到一个分发来的考试容器,该容器安全地包含了与考点(例如某个考试组织)的“管理”电子设备和/或考试管理员相对应的VDE标识,还包含一个预算,该预算允许创建200个考试VDE信息内容容器。在考点中创建的每个容器都可以带有一个许可记录,该许可记录包含了考点网络中每个考生所使用的电子设备600所对应的安全标识信息,以及(举例来说)每个将要参加考试的学生的标识。考生标识可以(举例来说)采用安全PIN口令的形式。该口令由考生在考试之前输入(考试监察员或管理员可能通过输入一个PIN口令来校验该考生的标识)。当然,标识可以采取多种形式,包括自动声音识别、手写文字识别(签名识别)、指纹信息、眼部识别、以及类似的一种或多种识别形式,这些识别形式用来或者确认考生(和/或考试监察员/管理员)的身份,并且/或者可以与考试结果一起存放在VDE容器中或其他类似结构中,或放在由特定容器信息指向的位置。该标识可以以加密形式或未加密形式存放。如果以加密或保护的形式存放,那么需要将某些概要信息—例如改错信息—与上述标识信息一起存放,以便鉴别对应于该标识的相关考试。
当考生使用计算机终端参加考试时,选择的答案可以立即被安全地存放起来(但考生可以考试期间对其答案进行修改)。一旦考试结束,考生的答案以及考试的参考资料被安全地存放在一个VDE汇报对象中,该汇报对象通过网络被传递给考试管理员和管理电子设备600。然后,对应于所有考生的所有考试对象都将被放入一个VDE对象300中,并传递给教育考试服务中心,一同传递过去的还有任何其他相关信息(这些信息也受到了VDE 100的保护),包括某些概要信息,这些概要信息给出了平均分和中间分以及其他信息,这些信息可能比较适于总结被发送出去的对象,并且/或者适于充当被发送对象的鉴别信息。举例来说,某些信息可能独立于每个考生的概要对象而被发送出去,所述概要对象包含的某些信息有助于确认该对象是一个“真实”的考试对象。
在考试方案中应用VDE将大大地消除由于在考试之前得知了考题(考卷通常是从教师或考试管理员那里失窃)而产生的作弊行为。在ETS,能够访问考题的个人受到限制使他只能访问考试的一部分,这样可以消除“整个”考题失窃的危险。使用VDE还可以确保不会出现处理错误或对考试答案的其它操作,因为可以将绝对真实的考试结果在一段合理的时间之内存档保留。
总的来说,在电子化考试中使用VDE 100可以一方面提供电子考试的好处,另一方面又杜绝了与电子化保存、传送、以及处理考试材料和考试结果相关联的实际风险。电子化考试由于消除了对试卷的打印、发送、操作、以及人工处理,从而大大地提高了效率,显著地降低了举行和处理考试的成本。同时,电子化考试可以使用户在结束考试时得到其考试结果的一份(加密的或未加密的)拷贝。这样有助于保护参加考试的个人不会遭致考试结果的丢失或对考试结果的不当处理。使用了VDE的电子化测验还可以确保与时间相关的考试变量(例如,精确的开始时间、持续时间、以及结束时间)能够得到可靠的管理。并且,在考试过程中正确地使用VDE 100当然还可以防止在考试之前对考卷的不当访问,同时还确保考试的过程经过了适当地审核和鉴别,即何人参加了哪个考试、在什么时间、在哪个电子设备、在哪个位置。这样,就可以避免或消除由于丢失、失窃、不当定时、或其他因素而导致的重考。
经过VDE协助的测验当然可以被应用于许多不同的、含有个人安全识别的应用中,所述的个人安全鉴别可用于安全/鉴别目的、用于雇佣(如申请工作)应用、以及用于各种评价测验中。例如,飞行员、或卡车、火车、公共汽车司机可以在马上就要启程之前或在航行中参加测验,该测验评价受测人员的机敏性,以便发现疲劳、服药等问题。每次进行考试时,或按每组时间进行考试时,可以改变该测验的顺序,并且/或者利用不同测验活动组合进行测验。上述测验或主测验可以存放在VDE容器中(可以由安全执行于PPE 650中的一个进程来确定测验问题的顺序与取舍)。当对测验发生响应时,可以将该响应加密,并且或者将其存放在本地以便积累到一定程度以后再传送(或与其他测验结果一起传送),或动态地传送出去(例如,传送给一个中央测验管理计算机)。如果被测验者考试“未能通过”,那么也许将采用某些手段禁止他或她操作上述交通工具,这些手段可以是本地的PPE 650发出特定控制指令,使上述交通工具的电子控制系统产生所述的禁止功效;也可以是本地的PPE未能解密或提供操作上述交通工具所需的某些关键信息。
示例—设备出租通过使用本发明,电子设备可以被“出租给”或提供给客户,客户可以不用为了无限使用的目的而购买一个给定设备,而是获得该设备(如VCR、电视、微波炉、等等)并按照使用活动一个或多个方面支付使用费。例如,对于微波炉可以根据使用它准备食品的次数和/或使用时间进行收费。可以一直地或定期地将一个电话插座与一个廉价的调制解调器相连,该调制解调器可工作地连接了上述微波炉或位于该微波炉之内(该调制解调器也可以位于某个可服务大量食品和/或提供多种功能(例如防盗报警、照明和/或温度控制)的位置)。作为另一种选择,该设备可以使用建筑物内由电源线构成的网络来传送或接收信号。
在定期的时间间隔内,(概要形式的或详细的)使用信息可以被自动传送给远程信息服务中心,该中心收集有关设备使用的信息(该服务中心可以服务特定品牌、特定类型的设备、和/或品牌和/或类型的组合)。使用信息将以VDE形式(如以VDE对象300的形式)传送出去。之后,如果该服务中心本身不执行计帐功能,或者如果“属于”各个设备生产厂家和/或出租人(零售商)的信息可能需要发送给某个财务票据交换所或其代理的话,那么该服务中心将向该财务票据交换所分发信息。这种方式将允许一个新企业租用设备,而该租用形式可能类似于汽车出租。
安装了VDE以后,还可以用安全识别(PIN、声音或签名识别、等等)对设备进行管理。可以在每次使用一个部件时都要求执行上述识别,也可以定期地执行。在未能使用该识别过程或未能及时使用该过程的情况下,如果PPE 650发出了一个或多个指令(或PPE 650未能解密或提供涉及该设备操作的某些关键信息)以禁止使用部分或全部的设备功能,那么该设备将被禁止使用。这一特点将大大地遏制盗窃电子设备的欲望。对VDE的进一步联合使用是向家庭或商业机构中某些控制处所的VDE安全子系统“注册”给定设备中的VDE安全子系统。该控制处所还可能负责VDE远程通信和/或集中化管理(包括(举例来说)通过识别出某些数据来限制用户的孩子通过电视或者录象带收看R级电影,其中,上述数据表明给定的电影、歌曲、频道、游戏等是R级的,并允许父母限制对其观看和收听)。该控制处所还可以(举例来说)收集有关水、煤气、电、电话等的使用信息(或者使用集成进某个控制装置中的PPE 650,该控制装置用来测量和/或控制上述使用;或者使用一个或多个特定信号,这些信号由非VDE系统产生,并被传递给VDE安全子系统(举例来说),供处理、使用控制(如使用限制)和/或计帐之用)、将上述信息传送给一个或多个服务中心、使用受VDE保护的电子货币和/或信用支付上述使用的费用、等等。
另外,可以用VDE来管理一个或多个使用预算,该VDE可以防止对某个出租设备进行不当、过量的使用,这些类型的使用可能(举例来说)导致该设备故障,上述不当使用的一个例子是使用复印机复印的拷贝数大大超过该机器工作周期所规定的数量。这种不当使用可导致在显示面板或电视屏幕显示一条信息,或者导致中央票据交换所传来一条消息,告诉用户应当升级到一个更为耐用的型号。
本文已经结合目前被认为是最有实效和较佳的实施例对本发明进行了说明,同时应该认识到,本发明并不局限于所公开的实施例,相反,本发明试图涵盖在所附权利要求的主旨和范围内的各种改进和等价方案。
权利要求
1.一种获得对于电子文件的访问的方法,所述方法包括通过电信网络接收一个或多个电子目录项;通过所述电信网络分开接收第一控制信息,所述第一控制信息用于管理对所述一个或多个电子目录项的访问,所述第一控制信息指定第一期满日期,在该日期之后不允许访问所述一个或多个电子目录项,所述第一控制信息还指定对所述一个或多个电子目录项的至少其中之一的至少一次允许的使用;在所述第一期满日期之前,根据所述第一控制信息访问所述一个或多个电子目录项的其中一个或多个;通过所述电信网络分开接收第二控制信息,所述第二控制信息指定第二期满日期,在该日期之后不允许访问所述一个或多个电子目录项;和在所述第二期满日期之前,根据所述第二控制信息访问所述一个或多个电子目录项的其中一个或多个;其中,根据所述第一控制信息访问所述一个或多个电子目录项的其中一个或多个的步骤和根据所述第二控制信息访问所述一个或多个电子目录项的其中一个或多个的步骤是利用硬件和/或软件来执行的,该硬件和/或软件被设计为阻止使用者能够篡改所述第一控制信息和所述第二控制信息的使用,以管理对所述一个或多个电子目录项的至少其中之一的访问。
2.按照权利要求1的方法,其中所述至少一次允许的使用包括在所述第一期满日期之前使用至少一个电子目录项。
3.一种方法,包括加密一个或多个目录项;使第一控制信息与所述一个或多个目录项相关,所述第一控制信息用于管理对所述一个或多个电子目录项的访问,所述第一控制信息包含第一期满日期,在该日期之后不允许访问所述一个或多个电子目录项,所述第一控制信息还指定对所述一个或多个电子目录项的至少其中之一的至少一次允许的使用;向远程装置发送所述一个或多个电子目录项和所述第一控制信息,所述一个或多个电子目录项被加密;和向所述远程装置分开发送第二控制信息,所述第二控制信息包括第二期满日期,在该日期之后不允许访问所述一个或多个电子目录项,所述第二期满日期处于所述第一期满日期之后。
4.按照权利要求3的方法,还包括从所述远程装置接收与使用所述一个或多个电子目录项的至少其中之一相关的信息。
5.按照权利要求4的方法,还包括使用所述信息以重新计算所述至少一个目录项的建立器或分配器。
6.按照权利要求3的方法,其中所述至少一次允许的使用包括在所述第一期满日期之前使用所述至少一个目录项。
7.一种方法,包括在第一电子设备上接收来自第一远程位置的一个或多个目录项,所述一个或多个目录项至少部分加密;在所述电子设备上接收第一数据项,所述第一数据项指定所述目录项的至少其中之一的一次或多次允许的使用;在所述电子设备上接收第二数据项,所述第二数据项提供第一时间段的指示,在该时间段内允许使用所述至少一个目录项;接收解密密钥,该解密密钥可操作于解密所述至少一个目录项;在所述第一时间段内,利用所述解密密钥解密所述至少一个目录项;在所述第一时间段内,执行对所述至少一个目录项的至少一次允许的使用;将关于所述至少一个目录项的使用的信息发送给远程地点;其中,所述电子设备包括可操作于以与所述第一数据项指定的所述一次或多次允许的使用不相符的方式来阻止所述电子设备的使用者使用所述至少一个目录项的硬件和/或软件。
8.按照权利要求7的方法,其中所述第二数据项是与所述至少一个目录项分开接收的。
9.按照权利要求7的方法,其中所述第一数据项是实体保护的。
10.按照权利要求7的方法,还包括分开接收第三数据项,所述第三数据项提供第二时间段的指示,在该时间段内允许使用所述至少一个目录项。
11.按照权利要求10的方法,还包括在所述第二时间段内,接收第二目录项;和在所述第二时间段内,根据所述第三数据项表达的权力至少一次使用所述第二目录项。
12.一种用于同意登记者在远程装置上使用电子目录项的方法,所述方法包括向所述远程装置发送一个或多个电子目录项,所述一个或多个电子目录项至少部分加密;向所述远程装置发送解密密钥,所述解密密钥可操作于解密至少一个电子目录项,以使得可使用所述至少一个电子目录项;向所述远程装置发送第一数据项,所述第一数据项指定所述目录项的至少其中之一的一次或多次允许的使用;向所述远程装置分开发送第二数据项,所述第二数据项提供一个时间段的指示,在该时间段内允许使用所述至少一个目录项;和接收关于所述至少一个电子目录项的使用的信息。
13.按照权利要求12的方法,还包括使用所述信息以重新计算所述至少一个电子目录项的建立器或分配器。
14.按照权利要求12的方法,还包括使用所述信息以向所述远程装置的使用者提供一个拆扣。
全文摘要
本发明提供了用于包括安全交易管理和电子权利保护的电子商业活动的系统和方法。遵照本发明而使用的诸如计算机之类的电子设备有助于确保只能以经过授权的方式访问和使用信息,并维护了信息的完整性、可用性和/或保密性。结合上述电子设备使用的安全子系统提供了一个虚拟分发环境(VDE),所述虚拟分发环境强制执行了一个安全的处理和控制链(举例来说)以控制和/或计量或监视对电子存贮的或传播的信息的使用。该虚拟分发环境可以用来保护电子商业活动中以及其他电子的或由电子促进的交易中的各种参与者的权利。采用诸如可在各节点上建立安全的、受保护的环境的安全半导体处理配置来保障分布式与其它操作系统环境及体系结构。这些技术可以用来支持(举例来说)使用“电子高速公路”可能用到的端到端电子信息分发功能。
文档编号H04N7/16GK1900943SQ20061010182
公开日2007年1月24日 申请日期1996年2月13日 优先权日1995年2月13日
发明者K·L·吉特尔, V·H·希尔, F·J·斯帕恩, D·M·范维 申请人:英特特拉斯特技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1