网络上传送数据的加密和解密的系统、装置和方法

文档序号:6351966阅读:205来源:国知局
专利名称:网络上传送数据的加密和解密的系统、装置和方法
网络上传送数据的加密和解密的系统、装置和方法
背景技术
因特网和万维网允许公司和组织把文档中的服务比如数字形式的网络应用提供给商户和个人,他们可以用个人计算机和网络浏览器接入和利用这些服务。使这样的文档和确切地说应用通过网络可用,典型情况下被称为软件即服务(SaaS)。以SaaS的形式可以提供的应用的某些实例是电子邮件、即时通信、效能工具、客户关系管理、企业资源规划、人力资源应用、博客、社交网站等。这个模型具有固有的安全风险。用户数据,比如消息、客户记录和公司财务,存储在远程服务器上,用户数据提供者无法控制。在远程服务器上存储个人或公司信息使数据拥有者暴露于许多风险中,并且意味着该信息的拥有者必须信任拥有宿主该信息的计算机系统的实体以及连接信息拥有者和该宿主系统的网络。例如,通常公知的会计软件解决方案要求其客户传递会计信息以存储在解决方案 提供商的服务器上。在这样的系统中,客户必须向解决方案提供商委托会计信息,从而放弃了对其保密性和完整性的一定程度的控制。在某些软件应用中,使用各种加密方案,使得不具有适当解密方法或密钥的任何人对这些数据无法理解。例如,应用提供商可以授权和/或要求信息拥有者使用安全套接层(SSL)加密或另一种方法来加密在客户机与主机之间传送的数据。这就防止了因特网服务提供商(ISP)和其他潜在的偷听者看到传送期间的数据本身。数据在到达主机中的应用后相应地解密,托管应用提供商可以观察和操作拥有者的未加密数据。不过,这种方法使敏感数据暴露于托管应用提供商。7,165,175号美国专利描述了选择性地加密客户机与服务器之间通过网络发送的数据的多个部分的装置和方法。所述装置包括解析装置,用于分离数据的第一部分和数据的第二部分;加密装置,用于仅仅加密数据的第一部分;以及合并装置,用于把加密的数据的第一部分与数据的第二部分合并。所述装置进一步包括被安装在客户机的解密装置,用于对加密的数据部分解密。PCT专利公开号W001/047205公开了使用下载的软件对象的加强计算机网络加密。这份申请描述的方法和系统用于保护经过将网络服务器计算机链接到远程客户机计算机的公共网络比如万维网的传输中所包含的高度敏感财务和其他数据。通过对网络服务器与客户机之间的一切敏感通信确定期望的(通常是强的)特定加密标准,以及通过从网络服务器向客户机自动下载而向客户机“推送”加密到这样的标准的能力,并且在客户机的网络浏览器、软件对象内执行,以进行依据选定标准的加密/解密任务,即使客户机一开始不具有强加密能力也不难确保这样的强加密。对托管SaaS应用使用这些方式的一个问题是,这样的应用要求操作信息如数据,为了使其可用于通过网络进行操作,是未加密的,以便允许由应用提供商操作信息,从而使数据暴露于应用提供商,以及以其他方式使得在操作期间数据易遭受安全问题。


连同附图根据以下详细说明,本发明的以上和其他的目的、特征和优点将变得更加显而易见。在附图中,类似的附图标记在不同的图中始终表示类似要素。图I展示了包括根据本发明实施例的中间模块及其环境的系统;图2展示了根据本发明实施例,从客户机终端到网络节点的数据流;图3展示了根据本发明实施例,从网络节点到客户机终端的数据流;图4展示了根据本发明实施例的加密数据的方法,允许服务器端搜索和索引加密的数据;图5展示了标准化过程和包括句子的输入文本的实例;图6展示了根据本发明实施例,处理单词的实例;
图7展示了根据本发明实施例的加密数据的方法,允许服务器端分选加密的数据;图8展示了根据本发明实施例,产生次序保存函数的方法;图9展示了根据本发明实施例,使用三个不同关键字的三个所产生的次序保存加密函数的实例;图10示意地展示了在本发明实施例中,启用加密的用户数据搜索的数据流。
具体实施例方式在以下的详细说明中,为了提供对本发明的彻底理解,阐述了很多特定细节。不过,本领域的技术人员将理解,没有这些特定细节也可以实践本发明。在其他实例中,为了避免使本发明难以理解,未对众所周知的方法、过程和组件进行详细介绍。常规数据流参考图1,它展示了一个系统,包括根据本发明实施例的中间模块200及其环境,以及从工作站230的客户机模块到网络节点260的应用服务提供商的数据流。中间模块200可以包括拦截模块210和数据保护模块220。中间模块200可运行地连接到客户机终端230如可信工作站,以及经由网络比如公共网络250连接到网络节点260如应用服务提供商。应当理解,图I是本发明的示范实施例,而其他网络配置也是可能的。例如,可信工作站230和中间模块200可以彼此远离,例如在可信工作站链接上运行地连接。例如,可信工作站230可以被连接到包括用于多个机构的多个中间模块,并且在公共网络上调解它们与一个或多个应用服务提供商的数据通信量。应当认识到,在本申请从始至终都对中间模块进行引用,不过,该模块可以驻留在客户机设备上、在网关服务器处,如在与客户机设备相关联的前提下,或在与可信客户机设备和不可信服务器通信的分开的服务器处。因此,例如,拦截模块和/或数据保护模块可以被安装在可信工作站上,可作为浏览器插件、可作为操作系统驱动程序或模块、可作为软件库以及可作为另一个软件组件。在另一个实例中,可以将中间模块正好放置在不可信应用程序的前端,在此对该不可信应用程序的全部访问都经过该中间模块。在又一个实例中,中间模块可以是分开的服务器,客户机模块向它传送输入数据,它又将处理的数据传送到不可信服务器。
可信工作站230可以是客户机计算机,其上已经安装了客户机组件240,它可以与中间模块互动。客户机组件240可以是在网络浏览器中运行的网络应用程序HTML形式,而网络节点260可以是SaaS提供商的HTTP网络服务器。客户机组件240可以包括API客户机软件,以及作为补充或作为替代,远程访问网络节点260的任何其他方法。终端用户能够使用客户机组件240输入、检索和操作试图传递给网络节点260的数据,或者从其检索的数据。终端用户可以包括利用软件代理(如网络浏览器)的使用人和使用客户机API的自动代理。中间模块200的拦截模块210可以拦截或以其他方式接收来自可信工作站230的输入(未处理)文本,以及提供输入文本给数据保护模块220进行处理。拦截模块210可以拦截在客户机组件240与网络节点260之间流动的数据,能够修改它,并且能够干扰正常的数据流动。例如,拦截模块可以触发鉴别会话以便确定终端用户能够访问在网络节点260中存储的数据。拦截模块210可以是网络代理服务器(或者由其执行)。
数据保护模块220可以接收输入文本并且选择性地进行处理。未被选择为要处理的输入文本可以作为未处理的文本被传送到网络节点260进行操作和/或存储在存储系统270中,实质上未进行处理或者比选择进行处理的文本进行更少的处理。对于要处理的文本,数据保护模块220可以处理输入文本以提供处理的文本,可以将其在公共网络250上提供给不可信应用服务提供商260用于存储、操作等。所以,根据本发明的实施例,应用服务提供商260可以从而不接收未处理的文本,而是存储和操作处理的文本。正如以下介绍,处理可以包括应用搜索和/分选启用的加密模式,从而提供加密的文本数据。根据本发明的实施例,处理可以选择性地加密文本,选择将哪种输入文本以处理的形式传送到应用服务提供商260,以及将哪种输入文本以未处理的形式传送。应当理解,中间模块200可以包括一台或多台服务器、一台或多台工作站、一台或多台个人计算机、一台或多台便携式计算机、一个或多个媒体播放器、一个或多个个人数据附件、一个或多个集成电路,以及/或者一个或多个印刷电路板、专用硬件及其组合。数据流干预中间模块200可以包括或提供对加密和/或解密进行补充或与其不相关的功能,并且可以改变客户的可信工作站230与服务器的不可信应用260之间的正常消息流。这样的补充功能可以具有对加密造成的服务器端功能损失进行补偿的效果。根据本发明的实施例,中间模块可以接收来自客户机设备的输入数据、拦截所述输入数据等,如防止或以其他方式不允许输入数据被传送到服务器,并且中间模块可以对输入数据提供否则服务器将要提供的相关功能。例如,中间模块可以根据该功能的结果产生至少一条给客户机设备的消息。根据本发明的某些实施例,中间模块可以从所述客户机设备获得对所述至少一条消息的响应,根据所述响应,处理该输入文本以得到处理的输入文本,并且将处理的输入文本传送到服务器。例如,服务器可以一般性地检查输入文本的拼写并且向用户提供反馈消息,例如,指出拼写错误的词和建议的校正。不过,当服务器接收的文本被加密时,根据本发明的实施例,服务器在没有解密处理的文本情况下,可能无法执行拼写检查。所以根据本发明的实施例,中间模块可以提供补充的功能,例如,对输入文本进行拼写检查,并且可以向用户提供反馈消息,如对输入数据进行拼写检查的结果,比如出错消息、建议的拼写校正或者没有检测出错误的消息。在本发明的一个实施例中,这样的补充功能可以包括替换服务器端的搜索功能,例如,通过存储用户数据(或其一部分)的副本以及响应由客户机做出的搜索请求在中间模块中对其进行搜索。在本发明的实施例中,这样的补充功能可以包括先触发客户机与中间模块之间的鉴别会话再允许用户数据被加密和解密。在本发明的实施例中,这样的补充功能可以包括对输入数据格式检查,并且如果合适,例如,假若输入数据是第一格式,则请求客户机以不同于第一格式的第二格式发送信息。这样的接收的和/或请求的格式可以包括,例如,(a)输入文本的增量编码格式,其中仅仅传送与输入文本的已知版本的差异,(b)输入文本的完全版本,(C)在特定文档格式中包含的输入文本,或其组合。例如,输入数据可能以增量编码的格式接收,而中间模块可以请求以完全输入文本格式的输入数据。特定文档格式的其他实例包括但是不限于HF、D0C、 HTML 等。根据本发明的实施例,可以将处理的文本存储在存储系统270中例如网络节点260,并且在公共网络250上远程地操作。正如以下介绍,该处理可以使得在处理的文本上可以启用搜索和/或分选,其方式由可信用户和/或不可信服务器应用为透明的或未察觉至IJ,在应用服务提供商处不必解密处理的数据。在以下的介绍中,存储系统270有时由数据库表示;不过应当认识到,存储系统270可以是任何适合的数字存储架构,并且可以被存储在任何适合的硬件上,如独立冗余磁盘阵列(RAID)等。所以,正如图I的展示性数据流所示,可信工作站230可以提供未处理的输入数据比如“Acme Corp. ”,由应用服务提供商260使用。输入文本可以在中间模块200例如由拦截模块210拦截,并且由数据保护模块220处理。数据保护模块220可以将输入文本处理为一个或多个被称为令牌的个别文本单位,并且控制可能被加密的数据,示意地显示为处理的数据“DHF0EFRGEJIC”,并且在网络250上将处理的数据发送到不可信应用服务提供商260,在此它可以由用户操作以及/或者存储在数据库270中。应当理解,“DHF0EFRGEJIC”是示意性的,任何适合的加密算法都可以使用,例如,导致任何符号集。正如以下介绍,根据本发明的一个实施例,可以使用非拉丁字符或符号,例如朝文或中文符号。对图2进行参考,它展示了根据本发明实施例,从客户终端230到应用服务提供商260的广义数据流。终端用户可以提供未被加密的输入文本(明码通信报文)。输入数据可以从客户终端230向网络节点250传送,并且被拦截模块210拦截。拦截模块210可以将输入文本提供给数据保护模块220,它处理输入数据以提供处理的数据,其中所述处理包括加密输入文本的至少一部分。处理的数据然后可以被发送到拦截模块210,它又将其在公共网络250上传送。处理的数据可以由网络节点260接收,由某应用如SaaS应用操作,并且存储在数据库270中。应当理解,输入数据可以是要存储在存储系统270中的新的或更新后的数据,它也可以是为实时操作而提供给SaaS应用程序的任何数据,例如某命令如搜索命令的一个或多个参数。对图3进行参考,它展示了根据本发明实施例,从网络节点260到客户终端230的数据流。这样的过程可以由用户在工作站230启动,方式为作出检索或搜索请求。所请求的参数,如要被搜索的项可以经过处理,正如以上连同图2的介绍,而在网络节点260的应用可以搜索或分选处理的数据,有可能基于所提供的处理的参数。网络节点260可以检索处理的数据,例如响应检索或搜索请求,其中处理的数据可以包括某些加密的部分。处理的数据可以在公共网络250上向客户机终端230发送。拦截模块210可以拦截处理的数据,并且将其提供给数据保护模块220,以便识别处理的数据内的任何加密数据。任何识别出的加密数据都可以被解密,并且提供给拦截模块210以恢复数据通信。拦截模块210可以将未处理的数据(解密后的明文数据)转发给客户机组件240以便向用户显示。通常的令牌化和标准化可以请求在网络节点260上运行的应用来搜索已存储的数据并返回结果。图10示意地展示了在本发明实施例中,启动加密的用户数据搜索的数据流。首先,客户机240可以输入数据并且通过中间模块200对不可信应用260作出几次存储请求。中间模块加密用户输入,使得每个可搜索的字都被映射到加密的可搜索字上,使得每个输入的可搜索字都具有一个严格对应的加密的可搜索字。加密的可搜索字在加密 前可以被标准化。例如,在图10中,字“BAD”、“Bad”和“bad”全部被加密为加密的字“cccc”,所以搜索“bad”提供了包含“BAD”和“Bad”的结果。在图10中,字“the”和“a”被认为是不可搜索的,所以不产生单独的加密的可搜索的令牌。相反,字“dog”和“cat”分别映射为加密的可搜索字“eeee”和“bbbb”。对可搜索字和不可搜索字保持大小写标记的信息被包含在加密令牌“ZZZytuv”和“ZZZabcd”中。对图4进行参考,它是根据本发明实施例,设计为启动服务器端搜索和/或索引用户文本数据的数据处理方法100的示意性展示。方法100可以由中间模块,例如由以上介绍的数据保护模块应用。应当理解,接收处理的数据并将其转换为未处理的数据的方法本质上可以是所介绍方法的反向方法。方法100在阶段110由接收输入消息开始,例如由客户机终端与网络节点之间运行地连接的中间模块。在阶段111,本方法可以识别出输入消息内将被处理的各个数据单元。例如,输入消息可以包括名字段、姓字段以及文档体字段。在阶段112,本方法可以对所有被识别的数据单元迭代,首先在阶段113获得未处理的数据单元,然后选择是否处理所获得的数据单元。处理的数据单元可以被单独地或共同地处理。在阶段114,本方法然后可以判断是否处理该输入数据。未被修改的输入数据被保留(阶段130)。在阶段115,本方法可以确定输入数据单元文本是否以及/或者哪些部分应当处理。例如,输入文本中不宜进行加密的部分可能包括搜索连接符比如“OR”、“AND”,或者专用的重要文本标记,比如“ {important} ”或者“Olocation”,表明要对数据进行的特殊种类的服务器处理。对于要被处理的输入文本,本方法进至阶段116,在其中输入文本被分解成称为令牌的各个文本单位(从输入文本确定令牌的过程本文称为令牌化)。应当认识到,令牌化是可选的,并且方法100可以包括(a)将全部输入数据一起加密为单个令牌,(b)分开地加密被确定为适于加密的输入数据,以提供多个处理的令牌,其中每个处理的令牌表示一段输入文本,或者(C)上述的组合。本方法然后可以进至阶段117,其中某些输入令牌可以被识别为不宜搜索。例如,确定每个独立字的准则可以是预定义字的列表、字频列表比如英语词典频率列表中的阈值字频、字的长度或其组合。在阶段118,本方法可以从可搜索输入令牌提取对搜索不重要的信息,例如字母的大小写、字母的区分标志、连字符的分离、统一码字符组合或分解(正如由统一码标准所定义)。提取的信息可以存储在分开的位置以备后期使用,并且可以被放置在称为控制令牌的输出令牌中。文本令牌可以被转换为不包含所提取信息的标准化的形式。本文称这个过程为标准化。应当认识到,标准化是可选的,并且可以以任何适当的方式进行。在阶段119,本方法可以获得要加密的全部信息单位的位表达,包括可搜索令牌、从可搜索令牌提取的信息以及输入的其他部分,以使用密码加密程序加密它。信息单位可以被分类为可搜索的或不可搜索的。不可搜索的信息单位可以被组合或分开。输入文本中可搜索令牌的次序可以改变,并且可以将原始次序的表示添加到不可搜索的信息单位。 在阶段120,本方法可以使用密码加密程序比如AES或DES加密信息单位。在阶段121,本方法可以将加密的位表达转换为输出文本单位,包括取自字符集的字符序列,例如,一个或多个统一码的预定义连续部分,正如以下更详细的介绍。这种字符集可以事先定义以帮助解密。在阶段122,输入消息中的输入数据单元可以用在阶段121获得的输出文本替换。本发明可以继续对全部识别的输入单位应用阶段112-122,然后将处理的消息传送到承担服务器应用的网络节点(阶段131)。令牌化正如以上介绍,数据处理方法可以包含令牌化,它又可以包含许多步骤。应当理解,连同以下令牌化展示所介绍的某些步骤是可选的。不仅如此,还应当理解,去令牌化,即把令牌化的处理的数据转换为未处理的数据,本质上可以是所介绍方法的反向方法。为了启动在加密的用户数据上的搜索,输入文本在称为令牌化的过程中可以被分为许多段。保存各个可搜索项的段被称为(未处理的)输入令牌,其中输入令牌典型情况下是完整字。不是令牌的输入段被添加到某信息集,它被称为不可搜索信息集。这样的段可以包括标点符号、空格字符和其他字符。连同令牌化,可以将几个字组合为单一令牌,单个字也可以被分离为两个或多个构成令牌。例如,若干复合字如“whiteboard”可以被分解为分别可搜索的令牌“white”和“board”。例如,诸如中文或日文的语言通常不使用空格或另一种独特字符在书面文本中使字分开,从而单一中文输入文本可以被分解为几个输入令牌。这样的组合或分解的指示可以被添加到不可搜索的信息集。令牌化可以包括检测字的形态变异,将输入令牌修改为标准化的形式,以及将原始输入令牌的指示添加到不可搜索的信息集。例如,字的形态不变式可以包括名词的单复数形式(“word”、“words”)、动词变化(“cry”、“cried”、“crying”)等。令牌化可以包括检测不太可能被搜索的字,并从可搜索的输入令牌集中将其去除并添加到不可搜索的信息集。例如,这样的检测可以使用(a)预定义的字集,(b)词典保存字频率列表和某阈值频率,频率高于此阈值频率的字被认为是不可搜索的,(C)可搜索字的最小和/或最大长度,或者(d)它们的任何组合。令牌化可以支持服务器端的搜索和/或索引,它们忽略了某些字符特性,比如字母大小写、变音符、连字符或统一码字符的组 合/分解。例如,搜索文本时搜索“ToKeN”和“tOkEn”可以产生相同的结果,使得包含字“token”的变形的一切字符串都出现在搜索结果中。支持这样的属性不敏感的搜索的执行方式可以是(I)将每个输入字符都转换为单一的规范形式,(2)产生原始字符的指示,以及(3)将这种指示添加到不可搜索的信息集。例如,令牌化可以支持在服务器端的大小写不敏感的搜索,方式为将输入令牌字符转换为单一大小写(如小写),并且将原始字母的大小写指示添加到不可搜索的信息集。例如,搜索期间可以忽略变音标记,忽略添加的、去除的或修改的变音标记,如“E”或“E”或“E”。例如,搜索“ cafe ”将匹配用户数据比如“Cafe ”、“CAFE”、“ cAfe,,或itQdLfen。系统可以将所有这些字的实例都转换为标准化的形式“cafe”,将原始变音符的指示添加到不可搜索的信息集。例如,系统可以支持连字符不敏感的搜索(例如,daBmon和daemon)。系统可以将连字符转换为标准的形式,比如收敛的“Se”转换为“ae”,产生原始连字符的指示,并且将其添加到不可搜索的信息集。对图6进行参考,它展示了对字“Caf6”的处理。输入文本被剥去了大写和变音符,并且转换为令牌“cafe”。相关联的控制令牌表明第一个字母是大写,而第四个字母具有重音符。根据本发明的某些实施例,字母可以被假设为小写且没有变音符,使得控制令牌不必表明小写或没有变音符。文本置标和扩充信息根据本发明的实施例,处理输入文本可以包括检测应用特定文本的至少一条处理指令,并且可以或者将这些处理指令添加到非确定地转换的文本,或者将这种信息在处理的文本中保持为明码通信报文,使得不可信服务器可以应用与这种文本扩充信息有关的任何种类的处理。例如,HTML是文本扩充,它可以通过在文本中嵌入HTML标记向用户文本添加格式信息。本系统可以处理输入HTML标记,通过以下方式中的至少一个(1)将HTML标记添加到不可搜索的信息,(2)在输出的处理的文本中包括输入HTML标记而不加密以允许服务器端的处理,(3)将HTML标记视为正常的文本,如对HTML标记应用任何在非HTML标记输入文本上执行的处理。根据本发明的某些实施例,在输入文本中检测到至少一条处理指令后,中间模块可以决定不变换所述至少一条处理指令。根据本发明的某些实施例,在输入文本中检测到至少一条处理指令后,中间模块可以决定不确定地变换所述至少一条处理指令。系统可以向不可搜索的信息集添加背景信息,比如时间、用户或者在产生处理的文本时系统已知的其他信息。例如,根据本发明的实施例,系统可以向加密的令牌添加自定义指示,比如“important”或“sensitive”,使得在解密时这些指示可以被注意到,可以产生指示对输入信息进行解密的事件,并且例如通过向日志文件添加记录而处理这个事件。令牌排序
处理输入文本可以包括改变处理的文本内输入令牌的次序。改变次序时,可以产生令牌次序指示以表明输入令牌在原始输入文本中的次序,并且可以将其添加到不可搜索的信息集。额外令牌处理输入文本可以包括产生要在输出文本中包括的至少一个虚假或诱饵额外令牌。这样的诱饵令牌可以使得加密文本对统计分析更稳健。可以按预期的目标统计分布添加额外的诱饵令牌,以便伪装引诱令牌并使通过统计分析的解密更困难。只有在获得对密钥的访问权限之后,这至少一个额外令牌才能与在所述处理的文本中包括的其他令牌可区另IJ。例如,英语字频率可以用作诱饵令牌目标分布的模型。令牌化过程不可搜索的信息集可以被安排在一个或多个不可搜索的令牌(本文也称为控制令牌)中,它可以被包括在处理的输出文本中。控制令牌可以被放在标准化输入令牌集之前、 在标准化输入令牌集之后,也能够置于标准化输入令牌集之内。不可搜索的信息集可以全部或部分地被加密,然后包括在处理的输出文本中。在加密之前,可以得到不可搜索的信息集和可搜索令牌的位表达。获得这样的位表达可以包括以一定的编码和压缩模式压缩和编码输入数据。可以产生检错指示并将其添加到不可搜索的信息集。例如,可以计算输入文本的校验和并添加到不可搜索的信息集。获得的输入令牌的位表达以及可能的不可搜索的信息集然后可以被整个或部分地加密。可搜索输入令牌的加密可以对每个可搜索输入令牌的实例提供单一加密形式。不可搜索输入信息的加密可以对同一信息集的每个实例提供单一或多个加密形式。多个加密形式可以提供更好的安全性,但是在没有解密用户数据的情况下可能使得某些服务器端的操作困难或不可能。多个加密形式可以使用在加密形式中嵌入的密码精髓的至少一位。使用适合的编码模式,加密形式然后可以被转换为文本形式。这样的编码模式可以提供以下性质中的至少一个(a)分离加密的令牌以允许不可信服务器应用确定处理的文本内的可搜索单位,(b)使用不使不可信服务器应用确定可搜索单位的字符集(例如,字符“ + ”可能被不可信服务器应用用来分离字,所以可能不适于编码加密的令牌;例如,英文和希伯来语字符都使用可以使应用分离两个集的序列),(C)提供压缩的表达使得服务器端的长度限制不太可能得到满足,以及(d)使用中间模块中的高效算法进行编码和译码。根据本发明的某些实施例,处理的文本可以包括从预定义字符集中选择的字符串,例如,包括统一码字符集的至少一个连续子集的字符集。在某些实施例中,所述至少一个连续子集可以包括字母字符种类、数字字符种类或双方中的字符。在某些实施例中,选为在处理的文本中使用的字符可以从统一码字符集的多个连续子集当中选择,例如,可以选择统一码字符集的两个、三个、四个或五个分离子集。在某些实施例中,子集的数量可以多于一个并少于或等于十个统一码字符集的子集。在本发明的某些实施例中,统一码字符集的子集可以是一个或多个子集,选自朝鲜汉加字母、中文、日文和朝鲜(CJK)象形文字以及其组合。所以,例如朝鲜文字符可以用于使用UTF-16编码存储用户输入的服务器应用。由于朝鲜文字符表现了统一码字符集内仅仅包含字母字符的单一范围,所以它们具有高效的编码和译码实施。例如,为了同样的理由可以使用中文字符集,但是具有比朝鲜文更大的范围;不过,使用中文字符集在分别搜索和/或索引每个单独中文字符的服务器应用中可能不适合。例如,可能修改的BASE64编码可以用于使用UTF-8编码存储用户输入的服务器应用。BASE64编码自身包含字符“ + ”和“/”,它们可以使得服务器应用程序推断,单一的加密令牌具有一个或多个加密的字。例如,可以使用空格字符分离加密的令牌。例如在电子邮件地址字段中不期望空格字符时,可以使用另一个字符比如句点”分离加密的令牌。当从不可信服务器发送处理的输出文本时,处理的输出文本可以包括在正在中间模块接收的未加密文本中。为了触发解密,系统可以产生处理的文本中统计上重要的特征。例如,系统可以包括在检测未加密文本内加密的文本时要搜索的处理的文本中的罕见字符或字符组合。根据本发明的某些实施例,可以将处理的输出文本安排在不止一个输出令牌中, 使得输出令牌不超过一定的长度限制。例如,对第一个输出令牌可以施加50个字符的长度限制,而对随后的输出令牌可以施加1000个字符的长度限制。组合确定性与非确定性的加密本发明的某些实施例可以使用输入文本的确定性和非确定性的变换或者确定性与非确定性的组合。本发明的实施例可以决定是确定性地还是非确定性地或确定性与非确定性组合地变换输入数据(或其若干部分),然后根据这样的决定,使用至少一个密钥确定性地或非确定性地或确定性与非确定性组合地变换输入文本从而得到处理的文本,并且将处理的文本传送到服务器。正如本文所使用的,对输入文本的非确定性变换是一种变换,其结果可以是多个可能的输出之一。对输入文本的确定性变换是一种变换,它可以包括仅仅一个可能的输出。典型情况下,为确定可能的输出或若干输出,两种类型的变换都可以使用或取决于密钥。根据本发明的实施例,可以获得确定性的令牌表达,如方式为应用取决于密钥的可逆加密,或者使用利用密钥的不可逆加密。可以获得不确定性的令牌表达,如方式为应用使用密钥的对称加密算法,或者使用公共私有密钥对的私有密钥作为密钥应用不对称加密算法,或者取决于密钥的其他可逆变换。在本发明的某些实施例中,服务器可以提供对先前输入的输入文本的搜索功能。中间模块可以在这样的情况下选择确定性地变换在输入文本内的各个可搜索令牌。这样的确定性变换可以允许包含处理的可搜索项的未来搜索查询在服务器被正确地处理。输入文本的若干部分可以被非确定性地变换,例如为了提供增强的安全性。根据本发明的实施例,输入文本的若干部分可以被确定性地变换,以便允许要求输入文本的若干部分的重现实例之间精确匹配的服务器端功能。例如,假若服务器可以比较输入文本的多个修订版,其中每个修订版都稍微不同于其各自的在前修订版,服务器可以提供按字或按行的差异分析。所以,在这样的实例中,输入文本的确定性变换字或行允许在服务器上这样的精确匹配的语义分析。例如,在本发明的实施例中处理输入文本的步骤可以包括(I)以不确定性方式将某些或全部输入文本加密为一个或多个处理的令牌,(2)以确定性方式(如输入文本的令牌化、标准化等之后)产生输入文本的某些或全部适当输入令牌所对应的处理的令牌,以及(3)把非确定性地和确定性地变换的处理的数据都包括在输出的处理的文本中,用于传送和在网络节点存储。根据本发明的某些实施例,决定是确定性地还是非确定性地还是确定性与非确定性组合地变换输入文本可以基于所述字是不是字集合的成员。以这种方式,例如,要使其可用于搜索的输入令牌可以被确定性地变换,从而能够对这样的字搜索。根据搜索对某记录定位后,处理的输入文本,可能包括确定性地和非确定性地变换的处理的数据,可以被返回作为搜索结果。相反,未使之可用于搜索的输入令牌不需要被确定性地变换。
在本发明的某些实施例中,决定是确定性地还是非确定性地还是确定性与非确定性组合地变换输入文本可以基于字的长度。因此,例如,可以基于输入文本的字的长度决定非确定性地变换所述字。因此,例如,在本发明实施例的实例中,短字如包含少于三个字符的字可以被非确定性地变换,而更长的字如具有三个或更多字符的字可以被确定性地变换。所以,以这样的模式,具有少于最少数量字符的短字可能不可搜索。在本发明的某实施例中,可以使用第一密钥执行非确定性的变换,而可以使用第二密钥执行确定性的变换。在本发明的某些实施例中,第一密钥和第二密钥可以是相同的。在本发明的其他实施例中,第一和第二密钥可以是不同的。在本发明的某些实施例中,如果输出文本的整体长度超过了长度限制,可以丢弃或去除一个或多个确定性地产生的令牌。在本发明的某些实施例中,可以做出不变换至少一部分输入文本的决定。应当认识到,根据本发明实施例的检索处理的文本的过程可以以本质上相反的方式运行。也就是说,处理的文本可以在中间模块接收,并且适合的逆处理可以被应用到处理的文本以便获得原始输入文本。在本发明的某些实施例中,原始输入文本可以被发送或以其他方式提供给客户机设备,例如显示或提供给用户或运行该客户机设备的应用程序。搜索队列的处理在中间模块接收的输入文本可以是搜索查询,包括用于搜索的至少一个搜索项。搜索查询输入文本可以由中间模块处理以便(a)便利网络节点处的正确搜索功能,以及(b )在网络节点将其发送回客户机时,启动中间模块的搜索查询的解密。搜索查询一般在网络节点以与处理其他输入文本相同的方式被处理,并且可以应用进一步的处理阶段。在本发明的实施例中,变换输入文本的步骤可以包括使用第一密钥确定性地变换在搜索查询中的至少一个搜索项,产生至少一个确定性地变换的搜索项。所以,将处理的输入文本传送到服务器的步骤可以包括向服务器传送多个确定性地变换的搜索项。在本发明的某些实施例中,在搜索查询中的多个搜索项可以被分开对待和变换。在本发明的某些实施例中,处理的搜索查询可以包括本质上仅仅确定性地变换的搜索项,其中确定性的变换可以是可逆的变换。网络节点可以搜索处理的项,并且可以将结果集返回给客户机。中间模块可以使用处理的搜索项以便得到原始输入文本。在本发明的某些实施例中,变换搜索查询可以进一步包括使用第二密钥非确定性地变换本质上的整个搜索查询,以产生非确定性地变换的文本,以及使用逻辑析取算子(如“0R”算子)组合该至少一个确定性地变换的搜索项和非确定性地变换的文本,以得到组合的处理的文本,其中将处理的输入文本传送到服务器包括将组合的处理的文本传送到服务器。网络节点可以搜索处理的搜索项以及搜索析取的非确定性地处理的文本,根据确定性地变换的搜索项获得(或未能找到)结果,并且对非确定性地变换的文本没有获得结果。搜索的结果因此可以返回对处理的搜索项搜索的结果。使用根据本发明实施例的以上方法,中间模块可以从网络节点接收非确定性地变换的文本,然后从其获得搜索查询的原始输入文本。处理的文本的知识库某些网络节点服务器可以返回被截断的搜索结果以响应查询或其他请求。例如,假若搜索查询的结果是100个字符的字段,该服务器就可以返回该字段的仅仅前20个字符,并且如果该用户选择了找到的记录,该服务器将提供整个字段。根据本发明的实施例,中间模块应当能够在这样的约束内工作。根据本发明的实施例,其中服务器拦截处理的文本的若干单位,这些单位可以是处理的文本内的各个令牌、处理的文本整体或者兼而有之。
根据本发明的实施例,解决这个问题的方式可以为在中间模块处或由中间模块管理或以其他方式控制或可访问的存储设备处提供处理的文本的知识库。在解密阶段期间系统可以先试图从这样的截断恢复再获得原始输入文本,方式如下(1)在加密阶段中间模块可以在可信存储器存储完整的处理的文本单位,如不经由不可信服务器及其相关联的存储设备,(2)从服务器发送并在中间模块处接收被截断的处理的文本时,查询该可信存储器单元以确定其中是否存在着匹配或对应于截断的处理的文本单位的一个或多个非截断的处理的文本单位,(3)如果存在,中间模块用对应的完整的处理的文本单位取代截断的处理的文本单位,以获得恢复的处理的文本,(4)恢复的处理的文本由逆处理方法(如使用密钥的解密)处理以获得原始输入文本。然后,在需要时可以向客户机设备提供原始输入文本即未处理的文本。在本发明的某些实施例中,在知识库中存储的内容可以是与处理的文本相关联的至少一个完整的处理的元素。例如,处理的元素可以是所述整个处理的文本或者处理的文本中包含的某字或其他部分。应当认识到,可以将使用知识库的系统和方法应用于来自客户机设备的任何适当的请求,包括例如搜索请求、记录请求或报告请求。使用诱饵的不可信服务器变换的检测不可信服务器往往可以对处理的用户数据的若干实例应用大量变换的一种或多种。这样的变换可以被可信工作站上驻留的客户机组件所期望,但是对于本文介绍的中间模块可能是未知的。所以,根据本发明的实施例,中间模块可以利用若干方法推断对处理的用户数据应用的变换类型。根据本发明的一个实施例,中间模块可以在已知位置对加密的用户数据添加额外的信息(本文称为诱饵)。在中间模块接收处理的用户数据时可以使用诱饵,以便推断对处理的用户数据应用的变换类型。可以使用诱饵的变换的非限制性实例是某些字符编码模式和HTML标记消除的应用。例如,不可信服务器可以对在那里接收的加密用户数据应用多种以及可能组合的编码模式。在中间模块从不可信服务器接收加密的文本时,可以以不可信服务器应用程序使用的大量编码模式之一对加密的文本编码,以便与可信工作站上驻留的客户机组件通信。编码模式可以在也可以不在服务器产生的消息中指示。典型情况下,客户机组件可以知晓服务器组件,并且可以确实地知道所使用的编码模式。不过,中间模块可以不知晓在加密文本的每个实例中使用的特定编码。然而,在向客户机组件提供解密的用户数据之前解密用户数据时,根据本发明实施例的中间模块应当能够使用在服务器中应用的和客户机期望的相同的编码模式。也就是说,如果中间模块不知道由不可信服务器和可信工作站所使用的编码模式,在中间模块的处理和去处理中信息可能变得迷惑或混淆。为了便利编码模式检测,中间模块可以向加密文本添加已知的预定字符作为编码诱饵。编码诱饵可以与加密用户数据一起由服务器编码,再提供给客户机组件码。当中间模块检测到加密令牌时,可以检查编码诱饵以推断编码加密文本的实例所使用的编码模式种类。所以,中间模块可以使用所推断的编码模式编码在处理的消息中加密的文本。编码模式的非限制性实例包括(i)UTF-8编码,(ii)使用HTML转义序列然后是UTF-8的编码;以及(iii)使用JavaScript转义序列,然后再次使用JavaScript转义序列,然后执行Latin-I编码(AKA IS0-8859-1)的编码。例如,JavaScript转义典型情况下通过以反斜线符号和另一个字符替换若干字符操作;例如,换行字符以反斜线符号和字符“η”也就是序列“\η”替换。
在本发明的某些实施例中,诱饵可以用于检测至少一种变换,包括以匹配的替换字符或替换字符串如一个或多个转义字符替换处理的文本中的至少一个可变换的字符。本文提供了使用由尖括号“〈”和反斜线符号“\”组成的编码诱饵的实例。用户可以输入字符串“This’ is a quote”。这被加密为例如“QIFJDJNZOP”。在加密期间,诱饵被附加到某加密的令牌,使得“QIFJDJNZ0P”变为“〈\QIFJDJNZ0P”,其中〈\是诱饵。服务器可以接收加密的字符串,并且将该字符串以JavaScript文件发送给客户机。在JavaScript文件中,服务器仅仅需要转义反斜线符号,而不转义尖括号。所以,发送到客户机的消息包括“〈\\QIFJDJNZ0P”,其中该诱饵的原始反斜线符号使用另一个反斜线符号被转义。当中间模块检测到消息中由原始尖括号和转义反斜线符号前导的加密令牌时,它可以推断该令牌是JavaScript转义的。于是,中间模块可以将该输入QIFJDJNZOP解密为“This’ is aquote”。不过,已经推断出该客户机期待JavaScript转义的文本后,该模块然后可以使用JavaScript转义编码解密的字符串,如通过转义该引语以便产生“This\’is a quote”。解密的引语因此使用了从该编码诱饵推断的编码规则。该解密的和编码的字符串然后被转发给客户机。可以使用诱饵的另一个实例是HTML变换,它的HTML标记的去除是特殊的情况。不可信服务器可以接收以HTML置标扩充的文本,产生去除了全部或某些HTML置标后的若干接收文本的实例,并且可以向客户机组件返回这些实例。在这样的情况下,中间模块可以在处理的用户数据中包括HTML置标诱饵。接收处理的用户数据时中间模块可以去除HTML置标诱饵,并且按其存在或不存在推断是否可以从解密的用户数据中去除HTML置标,并且从而可以在向客户机组件返回的消息中保留或去除解密后的HTML置标。应当认识到,在某些实施例中,可以将多片诱饵添加到处理的文本以便检测由不可信服务器应用的多种变换或编码模式。长度限制在本发明的某些实施例中,可以变换输入文本的多个分开的部分,其中所述输入文本多个部分的至少一个包括不多于最大数量的字符,例如通过截断对应部分。在本发明的某些实施例中,可以变换输入文本的多个分开的部分,其中所述输入文本的多个部分的每部分都包括不多于最大数量的字符,例如通过截断对应部分。令牌化实例对图5进行参考,它展示了对包括句子“This sentence has FIVE words ! ”的输入文本的标准化和令牌化。输入文本510包括句子“This sentence has FIVE words ! ”。该句子可以被令牌化为以下输入令牌“ThiS”、“sentenCe”、“haS”、“FIVE”、“WOrdS”和“! ”。可以标准化这些输入令牌以便提供标准化的输入令牌和元数据。标准化的输入令牌具有以下格式“This,,、“sentence,,、“has,,、“fiVe,,、“Words,m“! ”。与“sentence”相关联的元数据是“小写体”。与“FIVE”相关联的元数据是“大写体”。与“words”相关联的元数据是“小写体”和“复数”。下一步,本方法可以检测公共输入令牌,包括字“This”、“has”和不是字的“! ”。这些输入令牌可以以非确定性的方式加密,如它们可以以(“*”表示的)精髓加密。
本方法可以检测非公共输入令牌“word”、“ sentence”和“five”。这些字可以以确定性的方式加密。输入令牌的次序可以被改变,从而可以产生次序元数据。次序元数据、大小写元数据和复数元数据都可以包括在控制令牌530中。分选支持在许多SaaS应用中常见的文本处理特征是由特定字段的词典编辑次序或其他属性分选记录。所以由保留次序的加密过程提供处理的文本可能是有益的。可以实施许多保留次序方式的任何一种。例如,通过以下方法的任何一种能够获得次序保留(i)在拦截模块上保留所有记录的列表,需要时执行站点特定的排序。这种方法几乎要求在表达和数据管理中都复制每台服务器的功能;(ii)向服务器提供API以便查询特定字符串的分选次序;或者(iii)创建词典编辑地可分选的表达,它保留了实际的分选次序而在网络节点中没有任何修改。根据本发明的加密方法可以保留输入文本记录的次序,方式为应用以下阶段及其组合(I)将输入数据转换为数字值(如果还不是数字),(2)对数字值应用次序保留变换以获得输出数字值,(3)从输出数字值获得词典编辑地可分选的表达,以及(4)使用在处理的输出文本中的词典编辑可分选的表达,或者作为前缀字符串(在文本数据中)或者作为整个输出数据。次序保留的变换可以是单调增加的函数。次序保留函数可以使用能够从随机源产生的私有密钥,以便参数化其功能。对共同分选为某集的每个输入集都可以产生私有密钥。根据本发明的实施例,产生次序信息,正如以下进一步的介绍,可以包括对输入文本应用次序保留、依赖密钥的函数。根据本发明的某些实施例,可以根据输入文本的截断版本产生次序信息。根据本发明再进一步的实施例,可以根据在输入文本中的多个截断字,以它们在输入文本中出现的次序产生次序信息。根据本发明的某些实施例,中间模块可以通过应用次序保留的变换来处理输入文本,其中次序保留的变换包括根据输入文本产生次序信息,次序信息表示根据整序规则在一组可能的输入文本内输入文本的相对次序,变换该输入文本以获得处理的文本,以及将处理的文本传送到服务器。根据本发明的某些实施例,可以将次序信息与所述处理的输入文本相关联地发送到服务器,方式为将次序信息作为前缀添加到处理的输入数据,并且将组合的次序信息和处理的输入数据传送到服务器。为了降低与次序保留加密模式相关联的安全风险,产生保留次序的输出时,中间设备可以仅仅考虑输入数据的简化部分。简化输入以便获得输入数据的简化部分可以包括(a)忽略某些字比如“the”、“a”,(b)忽略在每个字中出现在字内一定位置处或后面的全部字符,如忽略在“zebra”中的字符“ra”,(c)忽略在该记录内的最后的若干字,Cd)缩小次序保留函数的输入域,(e)忽略某些字符特性比如字母的大小写或(f)其组合。图7展示了根据本发明实施例的方法170的多个阶段,可以用于获得要在所述处理的文本中包括的文本数据的次序保留表达。在阶段171,可以接收要加密的输入文本。在阶段172,可以从输入文本中丢弃某些字。在阶段173,可以丢弃某些字符特性,比如字母的大小写、变音符、连字符号或其他字符特性。在阶段174,根据加密模式的预定参数可以截断若干输入字,以至于可以丢弃来自输入字的最后的若干字符。在阶段175,可以丢弃输入文本的最后某些字。所以,执行一个或多个可选阶段 172、173、174和175可以产生简化后的输入文本。在阶段176,(可选地简化的)输入文本可以被转换为数字值以便获得输入数字值。在阶段177,可以对输入数字值应用次序保留函数以获得输出数字值。在阶段178,可以从输出数字值获得次序保留的表达。最后,在阶段179,可以将次序保留的表达或者作为处理的文本的前缀或者整个加密数据而放置。在展示了阶段172-176的应用的以下实例中,输入文本“The Green Zebra”的输入数字值可以计算如下(i)接收一组输入令牌“The Green Zebra”;(ii)忽略不相关的输入令牌“the”以提供相关的输入令牌“Green Zebra”,(iii)标准化相关的输入令牌以提供“green zebra”;( iv)例如根据用户定义,选择每个输入令牌的仅仅前三个字母,以提供六个相关的字符“gre zeb”;( V)根据输入令牌中每个字母的位置的权重,计算如表I中所示的其数字值;以及(Vi )对字母数值进行求和以提供输入令牌集的数字值,它是O.296199790068345。权重W可以表示将字母表的规模A进行字符位置P的负乘方,即W=A_P。对于英文文本,字母表规模是26。
权利要求
1.一种用于保护在客户机设备与服务器之间传送的数据的方法,包括 获得从所述客户机设备到中间模块的输入文本; 在所述中间模块处理所述输入文本以获得处理的文本,其中,所述处理包括 决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本;以及 根据所述决定,使用至少一个密钥确定性地或非确定性地或确定性与非确定性组合地变换所述输入文本以获得处理的文本;以及向所述服务器传送处理的文本。
2.根据权利要求I的方法,进一步包括对于所述输入文本的至少一部分,确定不变换所述输入文本的一部分。
3.根据权利要求I的方法,进一步包括 在所述中间模块接收处理的文本;以及 对所述处理的文本应用逆处理以获得原始输入文本。
4.根据权利要求3的方法,进一步包括向所述客户机设备发送所述原始输入文本。
5.根据权利要求I的方法,其中,变换所述输入文本的所述步骤包括 使用第一密钥非确定性地变换基本上全部输入文本以产生非确定性地变换的文本;以及 使用第二密钥确定性地变换所述输入文本中的多个输入令牌的每一个以产生相应的多个确定性地变换的令牌, 其中,向所述服务器传送所述处理的输入文本包括向所述服务器传送所述非确定性地变换的文本和所述多个确定性地变换的令牌。
6.根据权利要求5的方法,其中,所述第一密钥与所述第二密钥相同。
7.根据权利要求5的方法,其中,确定性地变换所述输入文本包括对所述输入文本执行不可逆变换。
8.根据权利要求I的方法,其中, 所述输入文本是包括至少一个搜索项的搜索查询, 变换所述输入文本包括使用第一密钥确定性地变换所述至少一个搜索项以产生相应的至少一个确定性地变换的搜索项,以及 向所述服务器传送所述处理的输入文本包括向所述服务器传送所述至少一个确定性地变换的搜索项。
9.根据权利要求8的方法,其中, 变换所述输入文本进一步包括 使用第二密钥非确定性地变换基本上全部输入文本以产生非确定性地变换的文本;以及 使用逻辑析取算子组合所述至少一个确定性地变换的搜索项和所述非确定性地变换的文本以获得组合的处理的文本, 向所述服务器传送所述处理的输入文本包括向所述服务器传送所述组合的处理的文本。
10.根据权利要求9的方法,其中,确定性地变换所述输入文本包括对所述输入文本执行可逆变换。
11.根据权利要求I的方法,其中,所述处理的文本包括从处理的文本字符集选择的字符的字符串,所述处理的文本字符集包括统一码字符集的至少一个连续子集。
12.根据权利要求11的方法,其中,所述至少一个连续子集包括字母或数字字符种类的字符,或者字母和数字字符种类的字符。
13.根据权利要求11的方法,其中,所述至少一个连续子集包括在统一码字符集的一个与十个子集范围之间。
14.根据权利要求11的方法,其中,所述至少一个连续子集选自统一码字符集,包括朝鲜汉加字母、中文、日文和朝鲜(CJK)象形文字以及其组合。
15.根据权利要求I的方法,其中,变换所述输入文本包括变换所述输入文本的多个分开的部分,所述输入文本的所述多个部分的至少一个包括不多于最大数量的字符。
16.根据权利要求I的方法,其中,确定性地变换所述输入文本包括 通过对所述输入文本应用至少一条标准化规则,标准化所述输入文本的至少一部分以获得至少一个标准化的输入部分; 确定性地变换所述至少一个标准化的输入部分以获得至少一个变换的标准化的输入部分;以及 在所述处理的输入文本中包括所述至少一个变换的标准化的输入部分。
17.根据权利要求16的方法,其中,所述至少一条标准化规则包括字母大小写转换。
18.根据权利要求16的方法,其中,所述至少一条标准化规则包括将具有变音标记的字符替换为没有变音标记的匹配字符。
19.根据权利要求16的方法,其中,所述至少一条标准化规则包括将连字符替换为其相应组成字符。
20.根据权利要求16的方法,其中,所述至少一条标准化规则包括将所述输入文本中包含的至少一个字替换为与所述至少一个字匹配的形态变异。
21.根据权利要求16的方法,其中,所述至少一条标准化规则包括将所述输入文本中包含的至少一个字替换为多个字。
22.根据权利要求I的方法,其中,决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本进一步包括根据所述输入文本的字是否为字集合的成员决定非确定性地变换所述字。
23.根据权利要求I的方法,其中,决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本进一步包括根据所述输入文本的字的长度决定非确定性地变换所述字。
24.根据权利要求I的方法,其中,变换所述输入文本进一步包括改变所述处理的文本的部分的次序。
25.根据权利要求I的方法,其中,变换所述输入文本进一步包括在所述处理的文本中包括至少一个额外令牌,只有在获得对密钥的访问权限之后,所述至少一个额外令牌才能与在所述处理的文本中包括的其他令牌区别。
26.根据权利要求I的方法,其中,所述中间模块是安装在所述客户机设备中的软件插入模块。
27.根据权利要求I的方法,其中,所述中间模块是连接到所述客户机设备和所述服务器的中间服务器计算机。
28.根据权利要求I的方法,其中,所述输入文本包括文本信息和与处理所述文本信息的方式相关的至少一条指令,所述方法进一步包括 处理所述至少一条指令以获得至少一条处理的指令; 在所述处理的文本中包括所述至少一条处理的指令;以及 在所述处理的文本中包括指示,指明处理的文本内所述处理的指令的存在和位置。
29.根据权利要求28的方法,其中,所述至少一条处理指令包括HTML置标。
30.根据权利要求2的方法,其中,确定不变换所述输入文本的一部分进一步包括 检测所述输入文本中包含的至少一条处理指令,所述处理指令与处理所述输入文本的方式相关;以及 决定不变换所述至少一条处理指令。
31.根据权利要求I的方法,其中,决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本包括 检测所述输入文本中包含的至少一条处理指令,所述处理指令与处理所述输入文本的方式相关;以及 决定非确定性地变换所述至少一条处理指令。
32.一种用于保护在客户机设备与服务器之间传送的数据的系统,包括 中间模块,被配置为 获得输入文本; 处理所述输入文本以获得处理的文本,其中,所述中间模块被配置为通过下列处理来处理所述输入文本 决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本;以及 根据所述决定,使用至少一个密钥确定性地或非确定性地或确定性与非确定性组合地变换所述输入文本以获得处理的文本;以及向所述服务器传送处理的文本。
33.根据权利要求32的系统,其中,所述中间模块被进一步配置为确定不变换所述输入文本的至少一部分。
34.根据权利要求32的系统,其中,所述中间模块被进一步配置为 从所述服务器接收处理的文本;以及 对所述处理的文本应用逆处理以获得原始输入文本。
35.根据权利要求34的系统,其中,所述中间模块被进一步配置为向所述客户机设备发送所述原始输入文本。
36.根据权利要求32的系统,其中,所述中间模块被进一步配置为通过下列处理变换所述输入文本 使用第一密钥非确定性地变换基本上全部输入文本以产生非确定性地变换的文本;以及 使用第二密钥确定性地变换所述输入文本中的多个输入令牌的每一个以产生相应的多个确定性地变换的令牌, 其中,所述中间模块被配置为通过向所述服务器传送所述非确定性地变换的文本和所述多个确定性地变换的令牌,向所述服务器传送所述处理的输入文本。
37.根据权利要求36的系统,其中,所述第一密钥与所述第二密钥相同。
38.根据权利要求36的系统,其中,所述中间模块被进一步配置为通过对所述输入文本执行不可逆变换,确定性地变换所述输入文本。
39.根据权利要求32的系统,其中, 所述输入文本是包括至少一个搜索项的搜索查询, 所述中间模块被配置为通过使用第一密钥确定性地变换所述至少一个搜索项以产生相应的至少一个确定性地变换的搜索项来变换所述输入文本,以及 所述中间模块进一步通过向所述服务器传送所述至少一个确定性地变换的搜索项,向所述服务器传送所述处理的输入文本。
40.根据权利要求39的系统,其中, 所述中间模块进一步通过下列处理变换所述输入文本 使用第二密钥非确定性地变换基本上全部输入文本以产生非确定性地变换的文本;以及 使用逻辑析取算子组合所述至少一个确定性地变换的搜索项和所述非确定性地变换的文本以获得组合的处理的文本, 所述中间模块被配置为通过向所述服务器传送所述组合的处理的文本,向所述服务器传送所述处理的输入文本。
41.根据权利要求40的系统,其中,所述中间模块被配置为通过对所述输入文本执行可逆变换来确定性地变换所述输入文本。
42.根据权利要求32的系统,其中,所述处理的文本包括从处理的文本字符集选择的字符的字符串,所述处理的文本字符集包括统一码字符集的至少一个连续子集。
43.根据权利要求42的系统,其中,所述至少一个连续子集包括字母或数字字符种类的字符,或者字母和数字字符种类的字符。
44.根据权利要求42的系统,其中,所述至少一个连续子集包括在统一码字符集的一个与十个子集范围之间。
45.根据权利要求42的系统,其中,所述至少一个连续子集选自统一码字符集,包括朝鲜汉加字母、中文、日文和朝鲜(CJK)象形文字以及其组合。
46.根据权利要求32的系统,其中,所述中间模块被配置为通过变换所述输入文本的多个分开的部分来变换所述输入文本,所述输入文本的所述多个部分的至少一个包括不多于最大数量的字符。
47.根据权利要求42的系统,其中,所述中间模块被配置为通过下列处理确定性地变换所述输入文本 通过对所述输入文本应用至少一条标准化规则,标准化所述输入文本的至少一部分以获得至少一个标准化的输入部分; 确定性地变换所述至少一个标准化的输入部分以获得至少一个变换的标准化的输入部分;以及在所述处理的输入文本中包括所述至少一个变换的标准化的输入部分。
48.根据权利要求47的系统,其中,所述至少一条标准化规则包括字母大小写转换。
49.根据权利要求47的系统,其中,所述至少一条标准化规则包括将具有变音标记的字符替换为没有变音标记的匹配字符。
50.根据权利要求47的系统,其中,所述至少一条标准化规则包括将连字符替换为其相应组成字符。
51.根据权利要求47的系统,其中,所述至少一条标准化规则包括将所述输入文本中包含的至少一个字替换为与所述至少一个字匹配的形态变异。
52.根据权利要求47的系统,其中,所述至少一条标准化规则包括将所述输入文本中包含的至少一个字替换为多个字。
53.根据权利要求32的系统,其中,所述中间模块被配置为通过根据所述输入文本的字是否为字集合的成员决定非确定性地变换所述字,决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本。
54.根据权利要求32的系统,其中,所述中间模块被配置为通过根据所述输入文本的字的长度决定非确定性地变换所述字,决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本。
55.根据权利要求32的系统,其中,所述中间模块被配置为通过改变所述处理的文本的部分的次序来进一步变换所述输入文本。
56.根据权利要求32的系统,其中,所述中间模块被配置为通过在所述处理的文本中包括至少一个额外令牌来变换所述输入文本,只有在获得对密钥的访问权限之后,所述至少一个额外令牌才能与在所述处理的文本中包括的其他令牌区别。
57.根据权利要求32的系统,其中,所述中间模块是安装在所述客户机设备中的软件插入模块。
58.根据权利要求32的系统,其中,所述中间模块是连接到所述客户机设备和所述服务器的中间服务器计算机。
59.根据权利要求32的系统,其中,所述输入文本包括文本信息和与处理所述文本信息的方式相关的至少一条指令,所述中间模块被进一步配置为 处理所述至少一条指令以获得至少一条处理的指令; 在所述处理的文本中包括所述至少一条处理的指令;以及 在所述处理的文本中包括指示,指明处理的文本内所述处理的指令的存在和位置。
60.根据权利要求59的系统,其中,所述至少一条处理指令包括HTML置标。
61.根据权利要求33的系统,其中,所述中间模块被配置为通过下列处理确定不变换所述输入文本的一部分 检测所述输入文本中包含的至少一条处理指令,所述处理指令与处理所述输入文本的方式相关;以及 决定不变换所述至少一条处理指令。
62.根据权利要求32的系统,其中,所述中间模块被配置为通过下列处理决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本 检测所述输入文本中包含的至少一条处理指令,所述处理指令与处理所述输入文本的方式相关;以及 决定非确定性地变换所述至少一条处理指令。
63.一种在包括服务器和客户机设备的系统中使用的方法,其中,在响应对其中存储的文本数据的请求时,所述服务器适于返回处理的文本,该处理的文本包含所请求的文本数据的至少一个截断的元素,所述方法包括 获得从所述客户机设备到中间模块的多个输入文本; 在所述中间模块处理所述多个输入文本以获得相应的多个处理的文本; 在所述中间模块管理的存储设备中分别存储所述多个处理的文本的至少一个完整的处理的元素; 向所述服务器传送所述多个处理的文本; 一经请求,在所述中间模块接收从所述服务器返回的处理的文本,该处理的文本包含所请求的处理的记录的至少一个截断的元素; 在所述存储设备中搜索与每个所述截断的元素匹配的至少一个处理的元素;以及 使用所述至少一个完整的处理的元素获得未处理的输入文本。
64.根据权利要求63的方法,进一步包括向所述客户机设备提供所述未处理的文本。
65.根据权利要求63的方法,其中,所述处理的元素包括处理的文本或处理的文本中包含的字。
66.根据权利要求65的方法,其中,所述请求是来自由搜索请求、记录请求和报告请求组成的组中的至少一个请求。
67.一种用于保护在客户机设备与服务器之间传送的数据的系统,其中,在响应对其中存储的文本数据的请求时,所述服务器适于返回处理的文本,该处理的文本包含所请求的文本数据的至少一个截断的元素,所述系统包括 中间模块,被配置为 获得多个输入文本; 处理所述多个输入文本以获得相应的多个处理的文本; 使所述多个处理的文本的至少一个完整的处理的元素分别存储在所述中间模块管理的存储设备中; 向服务器传送所述多个处理的文本; 一经请求,在所述中间模块接收从所述服务器返回的处理的文本,该处理的文本包含所请求的处理的记录的至少一个截断的元素; 在所述存储设备中搜索与每个所述截断的元素匹配的至少一个处理的元素;以及 使用所述至少一个完整的处理的元素获得未处理的输入文本。
68.根据权利要求67的系统,其中,所述中间模块被进一步配置为向所述客户机设备提供所述未处理的文本。
69.根据权利要求67的系统,其中,所述处理的元素包括处理的文本或处理的文本中包含的字。
70.根据权利要求69的系统,其中,所述请求是来自由搜索请求、记录请求和报告请求组成的组中的至少一个请求。
71.—种在包括服务器和客户机设备的系统中使用的方法,其中,所述服务器适于通过应用多个变换中的至少一个变换从所述客户机设备接收的文本,该方法包括 在中间模块接收从所述客户机设备输入的文本; 在所述中间模块处理所述输入文本以获得处理的文本,其中,所述处理包括在所述处理的文本中包括诱饵; 向所述服务器传送处理的文本; 一经请求,在所述中间模块从所述服务器接收变换的处理的文本,所述服务器已经对所述处理的文本应用了所述多个变换中的至少一个以获得所述变换的处理的文本;以及根据处理的文本与变换的处理的文本之间的对比由所述中间模块确定所述服务器所应用的所述变换中的至少一个。
72.根据权利要求71的方法,进一步包括 对所述处理的文本应用逆变换以获得未处理的输入文本;以及 根据所述至少一个确定的变换修改所述未处理的输入文本。
73.根据权利要求72的方法,进一步包括 向所述客户机设备发送所述修改的未处理的输入文本。
74.根据权利要求71的方法,其中, 所述多个变换中的至少一个变换包括将所述处理的输入文本中的至少一个可变换字符替换为匹配的替换字符或替换字符串;以及 在所述处理的文本中包括诱饵包括在所述处理的文本中包括所述至少一个可变换字符。
75.根据权利要求74的方法,进一步包括 对所述处理的文本应用逆变换以获得未处理的输入文本;以及通过将所述未处理的输入文本中的所述至少一个可变换字符替换为所述匹配的替换字符或替换字符串来修改所述未处理的输入文本。
76.根据权利要求75的方法,进一步包括 向所述客户机设备发送所述修改的未处理的输入文本。
77.根据权利要求71的方法,其中, 所述多个变换中的至少一个变换包括略去所述处理的输入文本中的HTML标签;以及 在所述处理的文本中包括诱馆包括在所述处理的文本中包括HTML标签。
78.根据权利要求77的方法,进一步包括 对所述处理的文本应用逆变换以获得未处理的输入文本; 通过略去其中包含的HTML标签来修改所述未处理的输入文本;以及 向所述客户机设备发送所述修改的未处理的输入文本。
79.一种用于保护在客户机设备与服务器之间传送的数据的系统,其中,所述服务器适于通过应用多个变换中的至少一个变换从所述客户机设备接收的文本,所述系统包括 中间模块,被配置为 接收输入文本; 通过在所述处理的文本中包括诱饵来处理所述输入文本以获得处理的文本; 向服务器传送处理的文本; 一经请求,从所述服务器接收变换的处理的文本,所述服务器已经对所述处理的文本应用了所述多个变换中的至少一个以获得所述变换的处理的文本;以及 根据处理的文本与变换的处理的文本之间的对比确定所述服务器所应用的所述变换中的至少一个。
80.根据权利要求79的系统,其中,所述中间模块被进一步配置为 对所述处理的文本应用逆变换以获得未处理的输入文本;以及 根据所述至少一个确定的变换,修改所述未处理的输入文本。
81.根据权利要求80的系统,其中所述中间模块被进一步配置为 向所述客户机设备发送所述修改的未处理的输入文本。
82.根据权利要求79的系统,其中, 所述多个变换中的至少一个变换包括将所述处理的输入文本中的至少一个可变换字符替换为匹配的替换字符或替换字符串;以及 所述中间模块通过在所述处理的文本中包括所述至少一个可变换字符来处理所述输入文本以获得处理的文本。
83.根据权利要求82的系统,其中所述中间模块被进一步配置为 对所述处理的文本应用逆变换以获得未处理的输入文本;以及 通过将所述未处理的输入文本中的所述至少一个可变换字符替换为所述匹配的替换字符或替换字符串来修改所述未处理的输入文本。
84.根据权利要求83的系统,其中所述中间模块被进一步配置为 向所述客户机设备发送所述修改的未处理的输入文本。
85.根据权利要求79的系统,其中, 所述多个变换中的至少一个变换包括略去所述处理的输入文本中的HTML标签;以及所述中间模块通过在所述处理的文本中包括HTML标签来处理所述输入文本以获得处理的文本。
86.根据权利要求85的系统,其中所述中间模块被进一步配置为 对所述处理的文本应用逆变换以获得未处理的输入文本; 通过略去其中包含的HTML标签来修改所述未处理的输入文本;以及 >向所述客户机设备发送所述修改的未处理的输入文本。
87.一种用于保护在客户机设备与服务器之间的数据的方法,包括 在中间模块获得输入文本; 通过应用次序保留变换在所述中间模块处理所述输入文本,所述次序保留变换包括根据所述输入文本产生次序信息,所述次序信息根据排序规则指明一组可能的输入文本内所述输入文本的相对次序;以及 变换所述输入文本以获得处理的文本;以及 向所述服务器传送处理的文本。
88.根据权利要求87的方法,进一步包括通过将次序信息作为前缀添加到处理的输入数据,以及将组合的次序信息和处理的输入数据传送到服务器,将次序信息与所述处理的输入文本相关联地发送到所述服务器。
89.根据权利要求87的方法,其中,根据所述输入文本的截断版本产生所述次序信息。
90.根据权利要求89的方法,其中,根据所述输入文本中的多个截断字,以其在所述输入文本中出现的次序产生所述次序信息。
91.根据权利要求87的方法,其中,产生所述次序信息包括对所述输入文本应用次序保留的、取决于密钥的函数。
92.根据权利要求91的方法,其中,所述次序保留的函数采用数值单调增加的函数,并且应用所述次序保留的函数包括 根据所述输入文本的至少一部分获得输入数字值; 提供输入范围和输出范围; 根据密钥将所述输入和输出范围划分为两个输入范围和两个输出范围; 根据哪个输入范围包括输入数字值从所述划分的范围选择一对输入和输出范围; 迭代地重复所述划分和选择步骤直到所述输出范围小于预定的参数,所述输出范围是最终输出范围;以及 返回处于所述最终输出范围内的输出数字值。
93.一种用于保护在客户机设备与服务器之间的数据的系统,包括 中间模块,被配置为 获得输入文本; 通过应用次序保留变换来处理所述输入文本,所述次序保留变换包括 根据所述输入文本产生次序信息,所述次序信息根据排序规则指明一组可能的输入文本内所述输入文本的相对次序;以及 变换所述输入文本以获得处理的文本;以及 向所述服务器传送处理的文本。
94.根据权利要求93的系统,其中,所述中间模块通过下列处理来将次序信息与所述处理的输入文本相关联地发送到所述服务器 将次序信息作为前缀添加到处理的输入数据,以及 将组合的次序信息和处理的输入数据传送到服务器。
95.根据权利要求93的系统,其中,所述中间模块要根据所述输入文本的截断版本产生所述次序信息。
96.根据权利要求95的系统,其中,所述中间模块要根据所述输入文本中的多个截断字,以其在所述输入文本中出现的次序产生所述次序信息。
97.根据权利要求93的系统,其中,所述中间模块通过对所述输入文本应用次序保留的、取决于密钥的函数来产生所述次序信息。
98.根据权利要求97的系统,其中,所述次序保留的函数采用数值单调增加的函数,并且所述中间模块通过下列处理来应用所述次序保留的函数 根据所述输入文本的至少一部分获得输入数字值; 提供输入范围和输出范围; 根据密钥将所述输入和输出范围划分为两个输入范围和两个输出范围; 根据哪个输入范围包括输入数字值从所述划分的范围选择一对输入和输出范围; 迭代地重复所述划分和选择步骤直到所述输出范围小于预定的参数,所述输出范围是最终输出范围;以及 返回处于所述最终输出范围内的输出数字值。
99.一种在包括服务器、客户机设备和中间模块的系统中使用的方法,其中,所述服务器被配置为对所述客户机设备提供的输入数据提供至少一个函数,以及所述中间模块被配置为从所述客户机设备接收输入数据,将所述输入数据变换为处理的数据和向所述服务器传送所述处理的数据,所述方法包括 在所述中间模块从客户机设备接收输入数据; 在所述中间模块拦截所述输入数据而不向所述服务器传送所述输入数据; 由所述中间模块对所述输入数据提供函数;以及 根据所述函数的结果,由所述中间模块产生到所述客户机设备的至少一条消息。
100.根据权利要求99的方法,进一步包括 在所述中间模块从所述客户机设备获得对所述至少一条消息的响应; 根据所述响应,处理所述输入文本以获得处理的输入文本;以及 向所述服务器传送处理的输入文本。
101.根据权利要求99的方法,其中,所述函数是拼写检查函数,以及所述消息是所述拼写检查函数对所述输入数据的结果。
102.根据权利要求99的方法,其中,所述函数是对所述输入数据的格式检查函数,所述输入数据为第一格式,以及所述消息是以与所述第一格式不同的第二格式提供所述输入数据的请求。
103.根据权利要求102的方法,其中,所述第一格式为增量编码格式,以及所述第二格式为完全输入文本格式。
104.根据权利要求99的方法,其中,所述中间模块是安装在所述客户机设备中的软件插入模块。
105.根据权利要求99的方法,其中,所述中间模块是连接到所述客户机设备和所述服务器的中间服务器计算机。
106.一种用于保护在客户机设备与服务器之间的数据的系统,包括 中间模块,被配置为从客户机设备接收输入数据,将所述输入数据变换为处理的数据和向服务器传送所述处理的数据,其中,所述服务器被配置为对向其提供的数据提供至少一个函数,所述中间模块被进一步配置为 从客户机设备接收所述输入数据; 拦截所述输入数据而不向所述服务器传送所述输入数据; 对所述输入数据提供所述至少一个函数;以及 根据所述函数的结果,产生到所述客户机设备的至少一条消息。
107.根据权利要求106的系统,其中所述中间模块被进一步配置为 从所述客户机设备获得对所述至少一条消息的响应; 根据所述响应,处理所述输入文本以获得处理的输入文本;以及 向所述服务器传送处理的输入文本。
108.根据权利要求106的系统,其中,所述函数是拼写检查函数,以及所述消息是所述拼写检查函数对所述输入数据的结果。
109.根据权利要求106的系统,其中,所述函数是对所述输入数据的格式检查函数,所述输入数据为第一格式,以及所述消息是以与所述第一格式不同的第二格式提供所述输入数据的请求。
110.根据权利要求109的系统,其中,所述第一格式为增量编码格式,以及所述第二格式为完全输入文本格式。
111.根据权利要求106的系统,其中,所述中间模块是安装在所述客户机设备中的软件插入1吴块。
112.根据权利要求106的系统,其中,所述中间模块是连接到所述客户机设备和所述服务器的中间服务器计算机。
全文摘要
一种方法和系统,用于通过下列处理保护在客户机设备与服务器之间传送的数据在中间模块获得输入文本,处理所述输入文本以获得处理的文本,决定是确定性地还是非确定性地还是确定性与非确定性组合地变换所述输入文本,以及根据该决定,使用至少一个密钥相应地变换所述输入文本以获得处理的文本;以及向所述服务器传送处理的文本。本发明的其他实施例和特征包括(独立地或一起)搜索处理的文本、允许通过应用次序保留的变换分选处理的文本的记录、在所述中间模块管理的存储设备中存储完整的处理的元素、由所述中间模块代替所述服务器提供对所述输入数据的函数以及处理来处理的文本以便由所述中间模块确定由所述服务器对输入文本应用的变换。
文档编号G06F21/00GK102782692SQ201080063784
公开日2012年11月14日 申请日期2010年12月30日 优先权日2009年12月31日
发明者A·拉哈夫, B·马特兹科尔, M·塔尔 申请人:沃蒂夫有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1