通过安全的代码转换进行网络化的信息散布的方法和装置的制作方法

文档序号:7664803阅读:198来源:国知局
专利名称:通过安全的代码转换进行网络化的信息散布的方法和装置的制作方法
技术领域
一般地说,本发明的方法和装置涉及代码转换(transcode)系统,更具体地说,涉及这样一个系统,其中代码转换代理以一种避免对内容解密的方式对加密的多媒体内容安全地进行代码转换。
代码转换往往由介于内容提供者的万维网服务器和客户设备的万维网浏览器之间的中介或代理来进行。在代理中进行代码转换的传统方法要求数据是未加密的,以便能对该数据进行代码转换。如果多媒体数据最初被加密,则在对数据进行代码转换之前,代码转换代理必须首先对数据解密。然而,对多媒体数据解密破坏了端到端安全保证,因为内容提供者和客户之外的第三方(例如一个代理)能在解密的数据流上窃听。
对多媒体内容应用代码转换有两个主要目的。第一个目的是在低带宽访问链路(如调制解调器链路和无线访问链路)上降低网页的下载延时。代码转换功能通常驻留在中介或代理内。代码转换代理通常是一个代码转换器,它利用任何无损的或有损的压缩技术来减少多媒体内容的字节数(如图像被进一步压缩,文本被概括成摘要等)。通过减少访问链路上传送的字节数,代码转换代理能更快地把内容发送给接收方,从而显著地减少被察觉的响应时间。代码转换还已经应用于视频,以减小视频内容的比特率,从而使低带宽链路上连接的客户机能接收被减小了的视频流。当减小延迟(例如在低带宽链路上通过压缩实现)为代码转换的主要动机时,经常使用蒸馏(distillation)、摘要、动态速率成形和过滤等术语作为代码转换的同义语。
对多媒体内容应用代码转换的第二个目的是解决客户设备支持的解码格式和多媒体内容提供者采用的编码格式之间的不匹配问题。为了使得能在与多媒体内容不匹配的客户设备上重放或显示那个多媒体内容,代码转换器通常把多媒体内容从原始的编码格式转换成可由客户设备理解的解码格式。由于在客户设备和/或内容提供者的硬件、软件、环境和人类行为的限制,可能会发生编码器/解码器(编解码器)的不匹配。代码转换技术的两个传统实例是语音识别(即语音到文本代码转换)和语音合成(即文本到语音代码转换),其中多媒体内容被转换以解决内容提供者和利用该内容的客户设备之间的编解码器不匹配问题。
代码转换当前还被用于转换网页(即图像和HTML文本)以使手持PDA能浏览万维网。PDA客户设备往往受到它们的相对小的屏幕尺寸、有限的显示深度、有限的存储器、低速处理器和有限的媒体类型支持所限制。对于这类设备,例如采用代码转换代理把彩色GIF和JPEG图像转换成2比特灰度位图以适应PDA的软件限制,而且还转换成小尺寸的缩略图(thumbnail),以适应PDA的小屏幕尺寸的硬件限制。当把代码转换应用于适应客户机异构性时,翻译、内容再造(repurposing)、内容适配、重新格式化、数据转换、媒体转换、剪裁、通用访问(universal access)、格式转换和过滤等术语往往与代码转换同义使用。
在一个中介代理中放置代码转换会引出安全问题。为了能进行代码转换,在代理中的代码转换的传统方法要求数据是未被加密的。如果多媒体数据最初被加密,则数据在进行代码转换之前,代码转换代理必须首先对数据解密。为了能对数据解密,该代理必须持有用于解密该数据的密钥(key)。这类代理通常称作被信赖的代理。然而,这种情况有实践上的困难,因为或者数据源或者目的地必须把密钥传送给该代理,而该代理可能与数据源或目的设备任何一个都没有任何联系。这一方案破坏了端到端安全保证,因为内容提供者和客户机之外的第三方(代理)可能潜在地窃听被解密的数据。
以前在提供安全代码转换系统方面的尝试没能够针对和/或解决由代理安全地对数据进行代码转换所关联的独特问题。涉及把多媒体内容分割成多个组分(component)的先有技术途径包括步进图像传输(PIT)和分层视频多点传送(multicast)。在PIT中,每个图像被分割成多个组分,通常按照感知上最重要的到最不重要的顺序排列。内容提供者首先向客户设备传送感知上最重要的组分,随后传输较不重要的组分。尽管已经表明PIT减小了图像传输时感知到的延时(因为最重要的组分首先到达和被显示),但在内容提供者和客户设备之间未实施代码转换。
在分层视频多点传送中,一个视频流被分割成多个组分。订阅该视频段的接收方将订阅这些组分的一个子集。如果接收方的访问链路具有低带宽,则接收方客户设备将只订阅该视频流的最基本组分。支持该多点传送路由协议的路由器考虑接收方的订阅请求并有选择地过滤或去掉不希望的多点传送组分。然而,分层视频多点传送(或一般的分层编码)方法不能解决在允许安全的选择性过滤/代码转换的同时如何保护被传送信息的问题,此方法也没有提供检测篡改(tampering)的手段。
IBM公司苏黎士研究部的“SERVANT(公仆)”项目提出了一种机制,用于允许客户机和服务器建立安全会话,而同时仍使不被信赖的代码转换器能够访问可能需要进行代码转换的内容段。代码转换器不需要是可信赖的,因为服务器能有选择地加密安全敏感内容段,而且可能包括签名的内容摘要文档,该文档说明内容的每一段可以如何被代码转换。这样,安全敏感内容被保护免予代码转换,而客户机能验证代表客户机进行的代码转换是根据服务器的愿望进行的。SERVANT把内容分到两个箱体(bin)中保密的和非保密的。然而,代码转换代理仍然不能对内容的“保密”部分进行代码转换,因而不能解决这里陈述的问题。
关于传统的篡改检测方案,在篡改检测机制方面的先有技术包括使用可见的或不可见的水印。可见的和不可见的水印把某种形式的图案、条形码、数字签名等嵌入数据之中。通过水印的不一致性或缺失,能检测出数据的篡改。然而,先有技术所针对的问题不同于本发明要解决的问题,因为先有技术涉及的情况是全部数据为明文(未加密的)形式。
现有的方法和装置没有针对或提供对如下问题的解决方案使代码转换代理能够对来自内容提供者或类似来源的数据进行代码转换以供客户设备使用,同时保持通过代码转换系统时的端到端安全性。所以,在代码转换领域需要提供由中介或代理进行的对多媒体内容的安全的代码转换。
根据第二方面,本发明提供一种用于安全地对多媒体数据进行代码转换的系统,该系统包含至少一个内容提供者,该内容提供者从所述的多媒体数据产生多个组分,并对这多个组分中的每一个加密;至少一个代码转换代理,在操作上与这至少一个内容提供者相连,该代码转换代理从所述内容提供者接收至少一个被加密的组分并有选择地处理该至少一个被加密的组分;以及至少一个客户设备在操作上与该至少一个代码转换代理相连,该至少一个客户设备接收并解密该至少一个处理过的被加密组分,并由该至少一个处理过的解密的组分重新组装成多媒体数据的代码转换后的版本。
根据第三方面,本发明提供一个计算机程序产品,包含存储在计算机可读介质上的计算机程序代码,当它在一台计算机上运行时,实现上文描述的方法。
本发明的一个优点是提供一种方法和装置,用于通过中介或代理安全地对多媒体内容进行代码转换。
本发明的另一个优点是提供一种方法和装置,用于由代理对数据进行代码转换,而无需由该代理对数据解密或以其他方式破坏端到端系统安全性保证。
本发明提供了对于由代码转换代理引起的问题的一个解决方案,根据一个实施例,该方案最好是包括首先让内容提供者把数据(例如多媒体内容)分割或组分化(componentize)成多个组分。然后这些组分的每一个可以独立地被加密。处在内容提供者下游的代码转换代理最好是有选择地滤掉或抛掉某些被加密的组分。有选择地过滤实现基于压缩的内容的代码转换,从而改善低速访问链路上内容传递的速度,而无需对内容的任何组分解密。
在一个实施例中,本发明包括三个分布式实体或功能单元,它们分别对多媒体内容编码、安全地进行代码转换以及解码。第一实体(例如内容提供者)最好是取一个已存在的多媒体对象并把源数据分割成多个数据组分。这些组分的每一个最好是还加注一个元数据头,包括但不限于组分标识字段和关于该特定组分的相对重要性/优先级的信息。对于每个组分,优选地,内容提供者编码或组装一个消息,该消息包含一个明文(未加密的)元数据头、一个元数据头的加密版本以及加密的组分。然后,对每个组分,内容提供者把相应的组装后的消息发送给第二实体,即代码转换代理或中介。
代码转换代理接收对应于每个组分的多个消息,检验每个消息的元数据头并确定应有选择地滤掉哪些被加密的组分。其余的消息包含一个原始多媒体对象的被安全地代码转换后的版本,并且然后被传送给第三实体,即客户设备。
客户设备接收剩余的消息。对于每个被传送的消息,客户设备对该消息解密,并将元数据头的解密版本与明文元数据头加以比较,这二者都是从该消息中提取出来的。如果这两个头段在一预先确定的可接受程度内不匹配,则多半是发生了篡改。如果这两个头段匹配,则客户设备断定未曾有篡改,于是继续对该消息的解密后的组分进行解码。
优选地,该方法进一步包含在对至少一个数据组分加密之前先压缩该组分。
优选地,该方法进一步包含在客户设备处,在对至少一个数据组分解密之后对该组分进行解压缩。
优选地,该数据是多媒体对象。
优选地,该多媒体对象选自一组对象,该组包含文本页、图像、音频、视频、关系数据、XML文档以及混合对象,该混合对象是若干多媒体对象的组合。
图2为方框图,描绘传统的系统的一个实例,它与信道编码和解码相结合,采用信源编码和解码。
图3为方框图,显示一个传统的系统,它除了信源代码转换外,还利用信源和信道编码/解码。
图4为方框图,描绘一个传统的系统,用于在一个网络环境中对数据进行代码转换,该网络环境包括处于服务器和客户机之间的一个代理。
图5为方框图,显示了一个例子,在该实例中来自万维网服务器的一个GIF格式的图像通过代码转换代理转换成JPEG格式并显示在浏览器上。
图6为方框图,显示一个网络环境中的通信系统实例,它利用安全套接层(SSL)在万维网服务器和浏览器之间安全地传送数据。
图7是一个概念方框图,显示一个传统的系统,用于在内容提供者和客户机之间传送数据,同时保证加密数据的端到端安全性。
图8是一个概念方框图,显示在内容提供者和客户机之间传送数据的一个传统的系统中由代码转换代理带来的安全性问题。
图9是一个逻辑流程图,描述根据本发明的一个实施例用于对数据编码/加密的方法。


图10是一个逻辑流程图,显示一种对数据进行代码转换的方法,该数据被使用图9描绘的本发明的系统进行编码/加密。
图11是一个逻辑流程图,显示根据本发明的一个实施例在客户设备处当接收代码转换后的数据时,对数据进行解码/解密的方法。
图12是一个概念方框图,显示根据本发明的一个实施例形成的一个安全代码转换系统的三个组成部分。
图13是一个方框图,显示根据本发明的另一个实施例在网络环境中对数据进行代码转换的一个系统,该网络环境包含一个代理并且采用安全套接层(SSL)。
参考图1,在一般意义上,信源编码101和解码104是指利用数据中的任何冗余来减小或压缩源数据的总量的方法和装置。在本领域已知的各种压缩技术,可以包括例如无损的(例如游程长度编码、赫夫曼(Huffman)编码、算术编码以及在UNIX上的gzip命令中使用的LZ方法)、有损的(例如离散余弦变换(DCT)和小波(warelets))或这二者的任何组合(例如JPEG)。
在数据被压缩之后,数据可能需要信道编码102,例如用于光纤信道和千兆以太网的8B/10B编码,以去掉数据中的直流(DC)分量,使数据能通过交流(AC)耦合的发送器/接收器发送出去。信道编码还确保充分的数据转换以允许快速数据同步。为了去掉添加的数据和/或转换,需要相应的信道解码103。
当发送器采用的信道编码方法不同于接收器使用的信道解码技术时,可以对通过信道的数据采用信道代码转换,如图2所示。采用这一方案,通常在信道编码器202和信道解码器204之间插入信道代码转换器203。信源编码器201和解码器205基本上不受影响。
图3显示信源代码转换方法不同于接收器所用方法的一个传统情形。参考图3,当信源编码器301处使用的方法不同于信源解码器307处使用的方法时,需要信源代码转换器304。此外,在信源代码转换器304前方必须添加一个信道解码器303,以对由信道编码器302编码的数据信道进行解码。接下来,由信源代码转换器304进行过代码转换的数据需要由信道编码器305进行信道编码,再在接收机处由接收器的信道解码器306进行解码。
在一个例如基于TCP/IP通信协议的网络环境中(如因特网),已知在客户机和服务器之间引入一个代理服务器或套接服务器(sock server)。以这种方式,代理服务器将代表客户机完成各种网络操作。图4显示包括这种代理服务器的一个传统的体系结构。现在参考图4,浏览器409(例如Netscape{Netscape Navigator是网景通信公司的注册商标}和InternetExplorer{Internet Explorer是微软公司的注册商标})和万维网服务器401(例如Apache服务器或Lotus Domino服务器)二者都可基于无状态(stateless)通信协议(例如超文本传输协议(HTTP))运行。HTTP协议将调用有状态(stateful)的TCP协议,然后由TCP协议调用无状态的IP协议(402、405、407、410)。在图4的例子中,IP包再由媒体访问协议(MAC)403、404、408、411(例如以太网、光纤信道、异步传送方式)所要求的附加头段加以分割和封装。通常,开始时浏览器409与代理406相连。随后,代理406将负责建立与万维网服务器401的连接并基本上用于转发在浏览器409和万维网服务器401之间传送的数据。如本领域技术人员理解的那样,代理被广泛地用于例如防火墙,从而能验证每个来自于浏览器连接,并控制目标地址。
图5显示由浏览器513提取GIF图像501时的情形的示例,图像501可以存储在万维网服务器502中。在这一示例中,代理507可以使用代码转换模块508把GIF图像格式501变换或代码转换成JPEG格式514,代码转换模块508适合进行这种代码转换。至少是可以希望以此来减小源图像的数据量。如在图5的示例中显示的那样,应该理解,浏览器513、代理507以及万维网服务器502都是通过TCP/IP(503、506、509、512)和MAC(504、505、510、511)协议彼此进行通信的。
为了进行数据的安全传输,浏览器和万维网服务器可以通过安全套接层(SSL)进行通信,其中可以调用已知的加密方案,如DES和公钥,对数据加密以保持其安全性。图6显示了一个传统的安全通信拓扑结构的例子。参考图6,一个安全层(例如SSL)607、602在客户端通常驻留在浏览器608和TCP/IP 606之间以及在服务器端驻留在万维网服务器601和TCP/IP 603之间。安全性是以每个会话(session)为基础实施的。如本领域技术人员所知,在浏览器端的SSL 607首先要求与万维网服务器端的SSL 602建立连接。服务器端的SSL 602批准该连接并向浏览器608发送一个公钥。然后,浏览器端的SSL 607使用从服务器601收到的公钥对发送给服务器的会话密钥加密。然后,服务器端的SSL 602使用它自己的私钥对会话密钥解密。从这以后,浏览器608和服务器601将通过这同一会话密钥进行通信。由浏览器和服务器发送的所有数据将由这同一会话密钥加密。
应该理解的是,对于分别在服务器端和浏览器端的TCP/IP 603、606以及MAC层604、605而言,SSL层是透明的。再有,当在浏览器和服务器之间引入代理类服务(例如防火墙)时,假设使用TCP/IP协议的话,该代理仍能根据IP地址确认请求者(测览器)和目的地(服务器)的有效性。然而,代理将不能看到数据,因为它们全被加密了。图7显示典型的加密方法的一个实例。如图7中所示,内容提供者可以进行数据压缩702(例如通过任何已知的信源编码技术,如JPEG)并加密数据701;在该例中的数据是图像。然后,加密后的数据705可以通过网络通信信道发送给请求该数据的客户设备。假定该客户设备是可信的(即安全的),则该客户设备持有对该数据解密704和解压缩703的算法,最终重建原始图像。如果在内容提供者到客户设备之间的网络的任何一点对加密后的数据进行观察,由于没有解密算法就不能破译加密后的数据,观察者将无法进行窃听。结果,观察者只能看到被扰码的数据705。
应该理解,如图7的示例系统中描述的那样,加密通常是跟在发送器(即内容提供者)处的压缩之后的。传统的压缩(信源编码)算法通常适用于去掉数据中的统计冗余同时减小产生的输出数据的大小。与此相反,加密算法通常是以这样一种方式对数据加扰,也就是使数据看起来是随机的(即去掉统计冗余),但与原始输入数据相比,数据的大小并未被减小,甚至可能被增大。如果数据加密是在压缩步骤之前进行,则加密步骤将对数据加扰,从而使得在压缩阶段几乎没有什么统计冗余可以去掉,如果不是完全没有的话,结果,很少或不能实现数据压缩。再有,由加密带来的随机性可能会如此之大,以致于压缩算法实际上是扩大而不是缩小了数据的大小。由于这一理由,在发送器处的执行顺序最好是先执行压缩,随后加密。
如图8中所示,可以引入一个代码转换代理作为内容提供者和客户设备之间的中介。代理基本上用于对数据进行代码转换,或者使数据的大小被减小从而改进响应时间(即数据吞吐能力)或者使数据格式被转换成适于在客户设备上呈现的格式。在这两种情况的任何一种中,当在系统中存在代码转换代理时,进行代码转换的标准方法要求在可以进行代码转换之前首先由该代理对加密的数据流(已被内容提供者压缩和加密)进行解密。参考图8,代码转换代理首先解密数据804,解压缩数据803,然后应用压缩算法再压缩数据806,从而改变数据的大小和/或其格式。最后代理对经代码转换后的数据再加密805,以在网络上传送给客户设备。在客户端,使用来自代码转换代理的新的压缩(信源编码)算法再一次对数据解密807和解压缩808。
如图8所示,这种传统的代码转换方法的一个重要的和具有潜在破坏性的后果在于一旦代码转换代理已对数据解密,则在数据被再次加密之前,第三方观察者能够窃听未加密的数据。这种状况破坏了在使用加密时默认的对隐私的端到端安全保证,在这种加密中只有发送者和接收者被允许访问处于未加扰状态下的数据。尽管在某些情况下代码转换代理可能是要对数据解码的发送者和接收者所信赖的实体,但一般而言代码转换代理很少是可信赖的。
先有技术的代码转换系统和方法通常假定压缩只能应用于未加密的数据。这是因为代码转换器使用的压缩算法通常要求对数据的语义学和/或统计学特性有深入的理解,以减小数据的大小。这样,到目前一直假定只有当数据是未被加扰/已被解密的情况下才能得到这种语义学理解。
本发明针对在一个或多个数据源(例如多媒体内容提供者,它可以是如万维网服务器)和一个或多个客户设备(它可以是如万维网浏览器或其他装置)之间放置的中介或代理对数据安全地进行代码转换的方法和装置。根据本发明,代码转换操作是对加密的数据进行,无需首先要求对数据解密。在一个最佳实施例中,本发明包括三个分布式单元或元素,第一单元(例如内容提供者),它完成对源数据(例如多媒体对象)的编码操作,第二单元,它安全地对数据进行代码转换,以及第三单元(例如客户设备或浏览器)它对从代码转换单元接收的数据进行解码。在图9至11中分别给出这三个主要单元每一个的最佳实施例的流程图。再有,图12给出根据本发明形成的整个安全代码转换系统的一个实例,尽管不限于这一拓扑结构。
尽管这里作为三个单独的功能块或单元进行描述,但应该理解,在本发明的系统中这三个功能块不需要处于在物理上彼此分开或远离的位置上。例如,假定不使用单独的代码转换代理,而是让代码转换单元物理上或者与内容提供者驻留在一起或者与客户设备驻留在一起,这都是在本发明的范围内。
现在参考图9,这是根据本发明形成的编码单元的一个实施例,例如可以由一个数据内容提供者实现,它最好是以现有的多媒体对象或类似数据900做为输入开始一个编码过程,并由这些数据产生预定数量的组分906(即组分化),例如通过对数据的分解901来产生。对数据对象的组分化可以生成K个组分,这里K大于或等于1。数据组分906可以含有重叠的或冗余的数据。例如,每个数据组分可以含有原始对象的一个副本。类似地,数据组分906可以是彼此互斥的。例如,一个图像可以被分割成多个不重叠的地理区域,使得所有这些区域的并集完整地重建原始图像,其中每个区域由一个独立的组分代表。如本领域普通技术人员所理解的那样,组分化过程901可以用已知技术完成,如步进编码算法或分层算法,如子通带编码和小波技术。
在本发明的最佳实施例中(图9中未示出),每个数据组分906可以随后被压缩或编码(见例如图12中的参考号码1202)。从此往后,术语“压缩”将用于表示压缩和/或编码。应该理解,术语“编码”如传统地理解那样,它是比压缩更广义的术语,常常被定义为产生多媒体对象或其他源数据的数字表示的过程。然而,与压缩不同,编码不需要输出一个比该对象输入数字表示小的输出数字表示。
假定采用压缩,对一个特定数据组分采用的压缩算法或技术不需要与应用到另一组分的压缩算法完全相同,尽管本发明也类似地打算使用单一的压缩手段。除了对应于原始对象的组分数据外,应用于一个组分的压缩算法还可以接受其他信息作为输入参数,如关于该多媒体对象的可能影响所用压缩的程度和/或类型的其他信息。图12显示一例,这里的压缩算法“C”1202接收单个数据组分。
数据源/内容提供者最好还产生元数据信息903,它被添加到或嵌入到数据组分906中。如本领域技术人员所知,元数据广泛地应用于表示它所附着的数据特性;在意义上,它是“关于数据的数据”。这个元数据903可以包含例如用于区分各组分的注释标签和/或可以包括关于一个特定组分相对或绝对重要性的描述。关于该组分或整个对象的语义学内容、序列号、用于篡改检测的组分数据单向散列(hash),或者可能对随后的代码转换有帮助的任何其他信息也可以被包括在元数据信息903中。再有,元数据可以使用与内容提供者、代码转换代理以及客户设备兼容的任何适当的语言或格式。例如,元数据可以用可扩展标记语言(XML)写成,MPEG-7是它的一个变体。从此以后,这里描述的元数据信息将称作“元数据头段”,尽管应该理解元数据实际上可以驻留在消息中的任何地方,并不限于该消息或数据流的开始处。
继续参考图9,内容提供者或数据源最好是产生元数据信息的两个版本与该组分组合;即将进行加密的版本903以及将保持不加密格式的第二版本905(即保持明文格式)。虽然图9显示只产生两类元数据,但本发明也类似地考虑可以产生多版本元数据,每个版本可能或可能不被加密,或者可能只产生单一元数据版本。两个版本的元数据头段903和905最好是最终被客户设备用于对篡改进行检测,这是多种有用的应用之一。明文版本的元数据头段905不需要与受加密的元数据头段903完全相同。然而,假定客户设备采用了一种篡改检测方案,则要被加密的元数据版本903应包括足够的信息以使客户设备能对收到的元数据头段的两个版本903、905进行比较,以便至少对被传输的元数据信息进行篡改检测。
对于原始数据900的每个组分906,内容提供者最好是组装一个或多个消息907以传送给客户设备,这些消息把明文元数据头段905、元数据头段的加密版本904和/或来自一个或多个组分906的加密组分部分组合在一起。这里一个组分部分定义为代表特定组分的数据子集,而特定组分本身又是代表多媒体对象900的数据的子集。对象900的每个组分906最好包含一个或多个组分部分,其中每一个可被指定为包括特定类型和/或功能的数据。例如,一个组分可以包括加密的数据部分和明文元数据部分。这些组分部分可以在压缩之前由压缩过程产生、或者由加密过程产生。伴随一个组装后的消息的明文元数据头段905可以包括的元数据不需要标识、描述这同一消息中包含的组分部分,也不需要与这些组分有关。在一个预期的情形中,元数据标识和/或描述这同一消息中包含的一个或多个组分部分,尽管不需要标识和/或描述全部组分部分。
应用于元数据头段903和被压缩的组分数据902的组合的加密算法或过程904对各组分和/或组分部分可以是不同的。即使对每个组分其加密算法是相同的,用做加密算法904输入的加密密钥对消息907内的元数据头段903、各个组分、或者甚至各组分部分可以是不同的。在本质上,本发明的最佳实施例允许消息的每个部分,不论是元数据头段还是组分部分,都能被独立地和有区别地加密。可以预期,在一种简单的情况中,例如,可以使用同一个算法和同一个加密密钥对每个消息的每个元数据头段和每个组分,因此也是对每个组分部分进行加密。为保持与加密学领域内的已知术语一致,如本领域技术人员所理解的那样,加密密钥可以是非对称公钥或者对称密钥。
代表多媒体对象各组分以及任何附加嵌入信息的组装后的消息907最好是在通信信道上传送给代码转换代理。如先前描述的那样,通信信道本身可以以任何已知的方式实现,例如,专用数据线或无线通信链路,包括蜂窝、卫星、或微波网络。在图10所示代码转换代理操作的最佳实施例中,代码转换过程起始于代码转换代理从内容提供者接收代表多媒体对象各组分的那些组装的消息之时,1001。假设在所收到的消息中存在这种明文部分的话,代码转换代理最好是从每个组装的消息中提取明文(即未加密的)元数据头段,1002。代码转换代理使用所提取的元数据头段中提供的信息,有选择地处理所收到的组分,1003,如确定要滤掉所收到一个或多个消息中的哪些加密的组分或组分部分。应该理解,本发明可以类似地采用其他数据处理形式来把多媒体对象数据转换成适于客户设备使用的格式。
在本发明的范围内,术语“滤掉”是用于意味着或抛掉或替换预定组分或其部分,当然本发明类似地考虑其他适当的变换操作,它们可能被代码变换应用所需要。代码变换代理最好是以单个消息的元数据头段提供的信息为基础,或以多个消息的元数据头段中包括的信息为基础,来决定是否滤掉一个分量或分量部分。然后该代理可以去掉一个消息中已被元数据信息标识出的那些部分,去掉整个消息,或者以其他数据替换一个消息的一个或多个预定部分,假设元数据已经指出这些消息部分要受到数据替换的话。这里把一个消息的一个部分定义为该消息的一个或多个被加密的组分部分。在过滤过程之后剩余的消息,已全部或部分地被修改过,构成原始数据(例如多媒体对象)的安全代码转换版本。然后这些代码转换后的每个消息在通信信道上传送给客户设备,1004。
根据本发明,由代码转换代理进行的数据处理过程(例如有选择地滤掉—抛掉或替换被加密的注释了的组分)实现了安全代码转换目的,因为所产生的多媒体对象的大小被一个中介压缩了但没有对代表该对象的任何数据(即组分)进行解密。伴随每个消息的元数据头段或其他适当的等效指示数据最好是向代码转换代理提供对组分的充分的语义学理解,以做出基于可靠信息的确定,涉及哪些组分要滤掉和哪些组分要发送给客户设备。
回顾以下一点是重要的与本发明相反,代码转换的传统方法依赖于数据本身提供的语义学理解,而不是利用单独的元数据头段或类似说明。其结果是,这种传统的代码转换技术需要首先使数据解密,以便得以访问数据代码转换所必须的语义学信息。本发明的好处在于它回避了这一要求,并表明通过对加密和注释的组分化内容有选择的过滤来进行代码转换能实现安全的代码转换(例如压缩加密数据的大小),无需由中介对数据解密。以这种方式,本发明的系统保持了端到端安全性。
现在参考图11,图中显示根据本发明的一个最佳实施例的客户设备处理的流程图。回想一个客户设备最好是在操作上由通信信道(如专用数据线或无线通信链路)连接到代码转换代理。在客户设备或浏览器处的解码过程最好是开始于接收(1101)由代码转换代理发送的代码转换后的消息组分。对于所收到的每个消息,客户设备最好是对该消息中包括的元数据头段的被加密部分解密(1102)并将解密后的版本与嵌入该消息的明文元数据头段加以比较和验证(1103),应该理解,确定这两个头段版本(即解密的和明文的)是否匹配的标准最好由客户设备本身确定,从而使匹配不需是精确的。再有,可以类似地考虑,整个代码转换系统要求的匹配程度可以由内容提供者确定。
如果这两个元数据头段版本不匹配(1106),则客户设备最好是以任何适当的方式向用户指出元数据信息已遭篡改。这种篡改提示可以是可视的,如由客户设备显示的指示灯或者文本消息,或者这种指示可以是可听形式的。如果这两个元数据头段匹配(1107)(即没有检测到篡改),则客户设备最好是继续处理该消息的加密的组分部分。如果客户设备在对元数据头段解密之后立即对加密的组分数据解密,则在这一点将只进行对该消息的解压缩/解码。如果代之以在比较步骤(1103)已经证实该数据之后客户设备对加密的组分数据解密,则对加密的组分数据的解密和解压缩/解码都要进行。
应该理解,嵌入被加密的元数据头段中的其他信息可用于进一步扩展篡改检测操作,如加密的单向散列(以检测一个消息内对组分部分的篡改),序列号或时间戳以考虑在整个多媒体对象上跨消息的破坏。例如,如果加密的元数据头段包括组分部分的一个或多个加密的单向混列,则能由客户设备以高概率检测出对加密的组分部分的篡改。还有,如果加密的元数据头段包含序列号,如“这是K个消息中的消息1”,“这是K个消息中的消息2”等,则客户设备能检测出所收到的数据序列中一个或多个丢失的组分,根据客户设备所用的对篡改的定义,这可能表明发生了篡改。
只是作为举例,图12显示根据本发明构成的一个安全代码转换系统的方框图。如图12中所示,整个系统最好包括内容提供者或类似的数据源、代码转换代理以及作为代码转换数据的预期接收者的客户设备。在图12的配置中,来自内容提供者的组装的消息通过共享通信信道传送给代码转换代理。在这一实施例中,描绘了一个或多个多路复用/多路分离功能1208、1209、1210、1219,当然这些功能可以由在其上实现编码过程的底层操作系统提供。在本发明的另一实施例中,每个组装后的消息或组分可以通过单独的路径达到代码转换代理,从而基本上可以去掉对多路复用和多路分离的需求。
参考该安全代码转换系统的内容提供者一端,为易于解释,原始源数据对象被组分化(1201)成两个组分。标为“M”1206的功能块用于产生元数据头段,标为“H”1207的功能块用于产生相应的明文元数据头段。明文元数据的产生最好使用对元数据头段1206已经产生的信息。在最简单的情况中,元数据头段的两个版本最好是完全相同的,尽管本发明不限于这一方法。对于组分1,要被加密的元数据头段标为“元数据1”,而组分1的元数据头段的相应明文版本标为“元数据1B”。类似地,对于组分2,要加密的元数据头段标为“元数据2”,而组分2的元数据头段的相应明文版本标为“元数据2B”。
分别由过程1206和1207产生的元数据头段1和1B最好是只由组分1的数据导出。一个元数据头段附加(1203)到由压缩过程(1202)产生的已存在的信息包或组分上。首先,元数据头段1附加到组分1的压缩数据上,并且这一集合被加密(1204)。第二,明文元数据头段1B附加在含有元数据头段和压缩的组分数据的加密集合上。第二附加操作(1205)的输出是组装后的消息1。在这个实例中,消息1的所有部分—明文元数据头段、加密的元数据头段以及加密的组分数据—最好是排他地从组分1导出而不从任何其他组分中导出。类似的,排他地基于组分2产生另一个消息。请注意,这一实例没有显示把一个组分进一步分割成组分部分的一般情况,这个实例也没有显示一个消息可能包括来自不同组分的组分部分,所有这些都在本发明的范围内。再有,对消息的组装不限于图12所示两个顺序的附加操作。
现在参考图12的示例系统中的代码转换代理,该代码转换代理被显示为接收两个组分。这些组分最好是被多路分离(1209),它们的明文元数据头段被提取出来(1213)(“元数据1B”和“元数据2B”)。在这个实例中,代码转换代理对这些组分的处理是抛掉(1211)组分2和把剩余的组分1转发到它的目的地,即客户设备。然而,一般地说,可能有K个消息,该代理可能抛掉这些消息中的L个,这里L小于或等于K,并且可能修改剩余的K-L个消息,例如通过过滤(例如,替换消息或消息部分)。剩余的消息可在其后重新组装(1212)(例如,元数据头段与各自的与其一起到达的数据重新结合)。
关于过滤处理过程本身,一个消息排他地映射到一个组分的作用是代码转换代理下游只能根据绝对优先级信息做出它的过滤决定,而不必根据这些组分的彼此相对重要性。换言之,例如代码转换代理接收消息1,将检查它的相应元数据头段1B,而该元数据头段1B只传递组分1的绝对重要性,因为该元数据不是基于其他组分信息。例如,消息1可以描述它本身为具有绝对优先级50。如果该代理利用的决策是如果它被阻塞则抛掉全部优先级小于10的包/消息,则该代理将永远不会做出抛掉这一消息的决定。在该代理处为做出这一决定不需要关于该多媒体对象的其他组分的更多信息。尽管这一做法需要一个相对简单的体系结构,但由于若干理由,这一做法可能不会很好地适合于所有应用。
所以,重要的是要指出本发明的安全代码转换体系结构类似地支持这样的情况,即代码转换代理以各组分彼此相对重要性/优先级为基础决定是否过滤(或处理/转换)一特定组分。在这一实施例中,来自一个或多个消息的元数据头段最好包含相对分级或优先级信息,该信息必须在该代理处被收集并在该代理能决定哪个或哪些组分、组分部分和/或消息要过滤之前加以比较。例如,组分1可能只传递它的相对重要性(例如组分1比组分2更重要或有更高优先级)而不传递绝对优先级。在这一情况中,代理必须等待一个预定的时间段以在做出过滤决定之前收集足够的元数据信息。
现在参考图12的示例系统中的客户端的处理,对于已多路分离(1219)的每个组分,客户设备最好是首先提取(1218)明文元数据头段(元数据1B)。最好存储这一明文元数据供以后与元数据头段(元数据1)的被解密版本比较(1214)。在提取明文元数据头段之后,客户设备最好对加密的元数据头段和加密的组分数据二者解密(1217)。然后从解密的组分数据中提取(1216)解密的元数据头段(元数据1)并与明文元数据头段比较(1214)以检测可能的篡改。假定未发现篡改,则客户设备最好是对组分数据解压缩(1215)以呈现给用户。根据客户设备的能力,如果已检测到篡改(即元数据头段的两个版本没有匹配到可接受的程度),则最好把一个篡改指示呈现给用户。另一种作法是客户设备可以简单地把该数据作为可能被破坏的数据而忽略。
本发明的系统能使用现有的安全套接层(SSL)基础结构来实现,它的一个实例示于图13。在这个示例实现中,在发送方或内容提供者(1315)一侧上的会话管理器(1303)最好建立多个SSL连接并同时管理全部这些SSL连接。会话管理器(1303)还负责建立一个或多个非SSL连接,从而能由代码转换代理(1316)截获明文会话信息。最好是代码转换代理将负责根据发送方通过明文信道发送的元数据以及代码转换决策来决定一个TCP连接是否被中继或被抛掉(1309)。接收者或客户一侧(浏览器)会话管理器(1312)负责把到来的各信道1314组装成单个消息供浏览器(1317)使用。请注意,在这一实现中,由会话管理器之间的连接ID暗指每个单独组分的元数据。需要用明文格式的附加元数据最好由附加的非SSL连接传送。
本发明提供散布(disseminate)网络化信息的方法和装置,它允许一种装置由中介或代码转换代理安全地对数据进行代码转换,如对多媒体对象进行代码转换。首先在内容提供者处对源数据组分化,形成代表原始源数据的多个数据组分。在未加密的元数据头段作为消息发送给代理之前,它被附加在每个组分上。代理根据从所收到的消息中提取的未加密的(明文)元数据或能提供对该组分语义学理解的其他数据,对数据组分进行处理,并只转发适于在客户设备上显示的预定组分。利用本发明的系统,来自内容提供者的网络化信息能由操作上与内容提供者连接的代理安全地进行代码转换,无需该代理对源数据解密。
尽管这里参考附图描述了本发明的实施示例,但应该理解,本发明不限于那些确定的实施例,本领域技术人员可以实现的各种其他改变和修改并不离开本发明的范围。
权利要求
1.一种对来自内容提供者的数据进行安全的代码转换以供客户设备使用的方法,包括如下步骤在内容提供者处产生多个数据组分,这些组分是数据的分解;对每个数据组分加密;把加密的数据组分从内容提供者传送给代码转换代理;在代理处对加密的数据组分进行代码转换;有选择地处理代码转换后的加密的数据组分;以及把由代码转换代理产生的处理过的代码转换后的数据组分传送给客户设备。
2.根据权利要求1所述的方法,其特征在于,向代码转换代理传送加密的数据组分的步骤进一步包含以下步骤在内容提供者处,组装至少一个消息,该消息包括至少一个加密的组分部分;以及把该至少一个消息传送给代码转换代理。
3.根据权利要求2所述的方法,其特征在于,进一步包括在代码转换代理处,从该代码转换代理收到的该至少一个消息中提取该至少一个加密的组分部分的步骤。
4.根据权利要求1至3中任何一项所述的方法,其特征在于,在该代理处有选择地处理代码转换后的数据组分的步骤进一步包含,通过抛掉至少一个加密的数据组分来过滤代码转换后的组分的步骤。
5.根据权利要求1至3中任何一项所述的方法,其特征在于,在该代理处有选择地处理代码转换后的数据组分的步骤进一步包含,通过以替换的数据替代用至少一个加密的数据组分来过滤代码转换后的组分的步骤。
6.根据权利要求1所述的方法,其特征在于,把处理过的代码转换后的数据传送给客户设备的步骤进一步包含如下步骤在代码转换代理处,组装至少一个消息,该消息包括至少一个处理过的组分部分;以及把该至少一个消息传送给客户设备。
7.根据权利要求6所述的方法,其特征在于,进一步包括如下步骤在客户设备处,从该客户设备接收的该至少一个消息提取该至少一个处理过的组分部分;对该至少一个处理过的组分部分解密;以及由该至少一个解密的组分部分重新组装该数据的代码转换后的表示。
8.根据任何一项前述权利要求所述的方法,其特征在于,进一步包括以元数据注释至少一个数据组分的步骤,该元数据提供该数据组分的语义学理解。
9.根据权利要求8所述的方法,其特征在于,所述注释步骤包含创建不加密的明文元数据头段。
10.根据权利要求9所述的方法,其特征在于,所述明文元数据头段包括至少一个标签,该标签唯一地标识一个数据组分。
11.根据权利要求9所述的方法,其特征在于,所述明文元数据头段包括描述至少一个数据组分相关联的优先级的信息。
12.根据权利要求9至11中任何一项所述的方法,其特征在于,进一步包括如下步骤组装至少一个消息,该消息把明文元数据头段和至少一个加密的数据组分组合在一起;以及把该至少一个组装的消息传送给代码转换代理。
13.根据权利要求12所述的方法,其特征在于,进一步包含如下步骤在代码转换代理处,分解该至少一个组装的消息,以从该消息中提取明文元数据头段和至少一个加密的数据组分;以及根据从该至少一个明文元数据头段中得到的元数据信息,有选择地处理该至少一个加密的数据组分。
14.根据权利要求13的方法,其特征在于,进一步包含如下步骤在代码转换代理处,组装至少一个代码转换后的消息,该消息把明文元数据头段与该至少一个处理过的代码转换后的数据组分组合在一起;以及把该至少一个代码转换后的消息传送给客户设备。
15.根据权利要求14所述的方法,其特征在于,进一步包括如下步骤分解由客户设备接收的该至少一个代码转换后的消息,以提取明文元数据头段和至少一个处理过的加密的数据组分;对该至少一个处理过的数据组分解密;以及由该至少一个解密后的处理过的数据组分重新组装该数据的代码转换后的表示。
16.根据权利要求9所述的方法,其特征在于,进一步包括如下步骤创建明文元数据头段的第二版本;以及对明文元数据头段的第二版本加密。
17.根据权利要求16所述的方法,其特征在于,进一步包括如下步骤组装至少一个消息,该消息包含明文元数据头段、该明文元数据头段的加密后的第二版本以及至少一个加密的数据组分;以及把该至少一个组装的消息传送给代码转换代理。
18.根据权利要求17所述的方法,其特征在于,进一步包括如下步骤分解由客户设备接收的该至少一个组装的消息,以提取明文元数据头段、该明文元数据头段的加密的第二版本以及至少一个处理过的加密的数据组分;对该明文元数据头段的加密的第二版本解密;对该至少一个处理过的加密的数据组分解密;以及由该至少一个解密后的处理过的数据组分重新组装该数据的代码转换后的表示。
19.根据权利要求18所述的方法,其特征在于,进一步包括把由客户设备接收的明文元数据头段的解密后第二版本与明文元数据头段进行比较,从而检测对明文元数据头段的篡改的步骤。
20.根据权利要求18所述的方法,其特征在于,进一步包括把明文元数据头段的解密后的第二版本中包含的信息与该至少一个处理过的解密后的数据组分进行比较,从而检测对该至少一个处理过的解密后的数据组分的篡改的步骤。
21.根据任何一项前述权利要求所述的方法,其特征在于,所述产生数据组分的步骤包含把数据分解成多个相互排他的组分,这些组分对应于该数据的不重叠分割。
22.一种对多媒体数据进行安全的代码转换的系统,包括至少一个内容提供者,该内容提供者由所述多媒体数据产生多个组分并对该多个组分的每一个加密;与该至少一个内容提供者操作上相连的至少一个代码转换代理,该代码转换代理接收来自所述内容提供者的至少一个加密的组分并有选择地处理该至少一个加密的组分;以及与该至少一个代码转换代理操作上相连的至少一个客户设备,该至少一个客户设备接收和解密该至少一个处理过的加密的组分,并由该至少一个处理过的解密后的组分重新组装该多媒体数据的代码转换后的版本。
23.根据权利要求22所述的系统,其特征在于,由此代码转换代理根据每个组分相关联的优先级信息有选择地处理该至少一个加密的组分,该优先级信息描述相应组分的绝对重要性和相应组分相对于另一个组分的相对重要性这二者中的至少一个。
24.一种计算机程序产品,包含存储在计算机可读存储介质上的计算机程序代码,当其在计算机上执行时实现权利要求1至21中任何一项的方法。
全文摘要
一种使代理等网络中介能对多媒体数据进行代码转换而不破坏端到端安全性保证的方法和系统。在一个实施例中,内容提供者把数据流分解成多个组分,每个组分被独立地加密。在一个最佳实施例中,中介或代理根据每个组分相关联的未加密的明文元数据,通过划分优先次序并抛掉预定的组分,从而进行对那些组分的代码转换,并且无需对那些组分解密。明文元数据最好是提供各组分相对彼此的绝对或相对重要性/优先级,从而有助于代码转换处理过程。目的地/客户设备在之后能对代码转换代理传送来的组分解密并把它们重新组装成原始数据内容的表示。
文档编号H04N7/26GK1466839SQ01816310
公开日2004年1月7日 申请日期2001年9月19日 优先权日2000年9月26日
发明者张元极, 汉, 李中生, R·Y-W·汉, 芩, J·史密斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1