首页> 中国专利> 一种用于通过通信网络不暴露专用数据对密码保护的专用数据进行恢复的方法和系统

一种用于通过通信网络不暴露专用数据对密码保护的专用数据进行恢复的方法和系统

摘要

一种用于将专用数据安全地从第一客户计算机漫游至通过通信网络相联的第二客户计算机的系统和方法。第一客户计算机的用户执行本地客户应用程序并且为了漫游对专用数据进行标识。本地客户机应用程序响应密码,生成第一密钥,并利用第一密钥对标识的专用数据进行加密。服务器接收并存储该加密专用数据。第二计算机的用户执行漫游客户机应用程序并请求从服务器传送加密专用数据。漫游客户机应用程序响应密码,生成第一密钥,并对服务器发送来的加密专用数据进行解密,进而得到专用数据。本发明进一步使得用户即使是在忘记了与第一密钥相关的密码的情况下,也能够重新获得来自于服务器的加密专用数据。并且,服务器并不知道专用数据,也不知道密钥。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):H04L9/00 变更前: 变更后: 登记生效日:20150506 申请日:20050330

    专利申请权、专利权的转移

  • 2011-06-08

    授权

    授权

  • 2007-06-06

    实质审查的生效

    实质审查的生效

  • 2005-11-16

    公开

    公开

说明书

技术领域

本发明涉及计算机网络环境领域。特别是,本发明涉及一种对通过通信网络连接的一个或多个用户计算机之间的漫游专用数据进行备份和恢复的系统和方法。

发明背景

Web服务例如因特网网站经常为它们的用户提供信息,产品,服务等。但是网络安全已成为用户和Web服务所共同关心的一个主要问题,特别是在发送敏感信息的情况下。通常通过加密处理来为用户和/或Web服务提供信息安全。例如,公开密钥基础结构(PKI)和公开密钥密码系统是用于通信安全的公知的密钥管理服务。这些服务通常作为必须进行安全存储以确保私密性的私有密钥仅用于个人计算机上。因此希望能够漫游,备份和恢复私有密钥。

当用户忘记初始密码时,现有的私有密钥漫游协议不能够实现端对端的安全关联以及数据的恢复。因此,当想要实现用户数据和用户通信的机密性,私密性,完整性和可靠性的情况下,就希望存在一个用于漫游私有用户数据的系统。

发明概述

本发明涉及在通过通信网络连接的一个或多个客户机之间的私有信息的增强漫游。特别是,在服务器不知道或未接收到私有信息的情况下,本发明使得用户能够漫游在与服务器相连的客户机之间的私有信息。而且,即使是在用户忘记了与私有密钥的加密相关联的密码的情况下,本发明使得用户能够恢复来自于服务器的私有密钥的加密版本用于在用户端解密。通过使用户能够漫游在用户之间的私有信息以及隐藏这种来自于服务器的信息,网络的安全性能得到了显著增强,并且从而明显地削弱了恶意用户干扰安全通信的能力。

根据本发明的另一方面,提供了一种在与数据通信网络相耦合的计算机之间进行专用数据通信的方法。该方法包括在网络服务器上,接收由第一客户机利用对服务器来说是未知的包封密钥而加密的私有数据。服务器和第一客户机耦合到数据通信网络上。该方法进一步包括在服务器上对接收到的加密专用数据进行存储。该方法还包括在服务器上,接收第二客户机用于加密专用数据所发出的请求。该方法进一步包括响应接收到的请求,由服务器向第二客户机发送该加密的专用数据用于解密,利用包封密钥对其进行解密。

依照本发明的另一方面,提供一个系统,用于在数据通信网络中进行专用数据通信。服务器接收由第一客户机利用对服务器来说是未知的包封密钥进行加密的专用数据。服务器和第一客户机耦合到数据通信网络上。数据库与服务器相连接。服务器被设置为在数据库中存储接收到的加密的专用数据。服务器还被设置为响应从第二客户机接收的加密专用数据的请求,向耦合到数据通信网络上的第二客户机发送存储的加密的专用数据,从而利用包封密钥对该数据进行解密。

依照本发明的另一方面,提供了一个具有计算机执行指令的计算机可读媒介,该指令用于在与数据通信网络相耦合的计算机之间进行专用数据通信。在网络服务器上,第一接收指令接收由第一客户机利用服务器未知的包封密钥加密的专用数据。服务器和第一客户机耦合到数据通信网络上。存储指令在服务器上对接收到的加密专用数据进行存储。在服务器上,第二接收指令接收来自第二客户机用于加密的专用数据的请求。传送指令响应接收到的请求,从服务器向第二客户机发送加密专用数据,从而利用包封密钥对该数据进行解密。

仍依照本发明的另一方面,提供了一种方法,用于在与数据通信网络耦合的计算机间进行专用数据通信。该方法包括在服务器上,接收来自漫游客户机的用于加密专用数据所的请求。该请求包括验证密码的纲要或散列值。服务器和漫游客户机耦合到数据通信网络上。该方法进一步包括确定来自于漫游客户机的验证密码的格式是否有效。该方法进一步包括当验证密钥的格式是有效的,重新获得加密的专用数据,其中先前利用服务器未知的加密密码对专用数据进行加密。该方法进一步包括从服务器向漫游客户机发送重新获得的加密专用数据,从而利用包封密钥进行解密。

依照本发明的另一方面,提供了一种具有其中存有数据结构的计算机可读媒介。第一数据字段包括专用数据。第二数据字段包括表示来自于用户的输入数据流的密钥数据。第三数据字段利用密钥数据对专用数据进行加密,并且将加密的专用数据发送给中心位置进行存储。

选择的,本发明可以包含其它多个方法和装置。

在下文中,将部分的显现和部分的指出其它特征。

附图简要说明

图1示出了能够应用本发明的示范性网络环境模块图。

图2根据本发明的一个实施例,示出了一个用于在本地客户机和服务器之间通信加密的专用数据的系统模块图。

图3根据本发明的一个实施例,示出了一个用于在漫游客户计算机和服务器之间通信加密的专用数据的系统模块图。

图4根据本发明的一个实施例,示出了一个用于在本地客户机和服务器之间进行加密的专用数据通信和数据恢复的系统模块图。

图5根据本发明的一个实施例,示出了一个用于从服务器到漫游客户机,进行恢复数据通信的系统模块图。

图6根据本发明的一个实施例,示出了一个无需加密密码就能够从服务器到漫游客户机,进行加密专用数据恢复的系统模块图。

图7根据本发明的一个实施例,示出了在本地客户机和服务器之间进行专用数据通信的方法的示意性流程图。

图8根据本发明的一个实施例,示出了从服务器到漫游客户机,进行加密的专用数据通信的方法的示意性流程图。

图9A和9B根据本发明的一个实施例,示出了在服务器和本地客户机之间进行加密的专用数据通信和恢复的方法的示意性流程图。

图10根据本发明的一个实施例,示出了在服务器和漫游客户机之间进行恢复数据的通信的方法的示意性流程图。

图11根据本发明的一个实施例,示出了无需加密密码而恢复从服务器到漫游客户机的加密的专用数据的方法的示意性流程图。

图12示出了能够实现本发明的适合的计算系统环境的模块图。

相应的参考标记指示了整个附图的相应部分。

具体实施例的描述

现在参见图1,一台内部或本地计算机102耦合到数据通信网络104上。在这个例子中,网络104是因特网(或环球网)。然而,本发明的教导能够适用于任何数据通信网络。多台漫游或远程客户计算机106和108也耦合到网络104上。反过来,本地客户计算机102能够通过网络104与漫游客户计算机106和108进行通信。本地客户计算机102表示用户有理由相信的计算机,因为没有信誉的第三方无法自由地或轻易地对其进行物理访问。漫游客户计算机106和108表示用户不完全相信的计算机,因为其属于第三方或由第三方进行物理控制。一个验证服务器110耦合到网络104上以允许在其自身以及内部客户计算机102和漫游客户计算机106和108之间进行通信。尽管将其称为“验证服务器”,但是该实施例中的验证服务器仅是一个能够对用户进行验证以及能够与web浏览器和其它web服务器相连接的web服务器。

在这个例子中,通过应用安全套接层(SSL)和因特网中常用的实现信息安全交换的协议,在验证服务器110,客户机计算系统102和漫游客户计算机106和108之间进行安全的数据通信。更特别地,SSL能够用于实现公开密钥加密。如本领域支术人员所知,公开密钥加密包括以这种方式对信息进行编码,该方式为只有具有私有密钥的人(或计算机)能够对其进行解码。当今所使用的计算机加密系统包括:对称密钥加密和公开密钥加密。

在对称密钥加密中,每台计算机具有一个保密密钥(或密码),用于在发送数据包到另外一个计算机之前,对该数据包进行加密。对称密钥需要你知道你将要通信的是哪台计算机,以便在每一台计算机上安装一个密钥。为了成功地执行这种加密类型,计算机必须知道其保密密码以便对信息进行解码。

在公开密钥加密中,将私有密钥和公开密钥进行组合用于编码和解码信息。例如,特定的发端计算机(如本地客户机)安全地向具有公开/私有密钥对的漫游客户机(如漫游客户机)发送信息。在对该信息进行数学运算的过程中,该发端计算机利用漫游客户机的公开密钥产生加密消息,并用其私有密钥对这个消息进行识以确保消息的完整性。该发端计算机还向漫游客户机提供它自己的公开密钥,但是对该发端计算机来讲私有密钥仍是其私有的(如保密的)。为了解码加密消息,接收者必须利用它自己的私有密钥和由发送者提供的公开密钥来验证该消息的签名。因此,如果接收者,本地客户机的用户102,想要通过漫游客户机106和108对加密消息进行解码,该用户不得不向这些漫游客户机传送其私有密钥。

验证数据库112耦合到验证服务器110上,并且包含对客户计算机系统(和因特网中的其它用户)的用户进行验证时所必需的信息,和确定是内部客户计算机的用户还是漫游客户计算机有权存储数据库中的加密数据和/或接收来自于数据库112的加密数据时所必需的信息。

现在参见图2,根据发明的一个实施例,模块图示出了用于对在本地客户机202(如本地客户计算机102)和web服务器204(如验证服务器110)之间的加密的专用数据进行通信的系统。

本地客户机应用程序206允许本地用户208加密专用数据以及通过通信网络212(如网络104)将加密的专用数据传送至web服务器204。通过本地客户机202来执行该本地客户机应用程序206并且响应用户输入来启动专用数据的加密,以及将加密的专用数据发送至web服务器204。在这个实施例中,本地客户机应用程序206包括存储如图1所述的公开密钥加密进程中所使用的私有密钥216的存储器214。本地客户机应用程序206包括用于在专用数据上执行数学运算以将其转换为加密专用数据的加密算法。更加特别的是,该加密算法218用于和密钥数据一起对专用数据进行转换。如本领域支术人员所知,许多加密算法(如3DES和HMAC-RC4)用于对数据进行加密,如此在不知道加密密钥的情况下对相关内容进行解密几乎是不可能的。

本地客户机202的用户208可能希望能够漫游私有密钥216从而通过一个或多个漫游客户机(如漫游客户机106,108)与web服务器进行安全地通信。但是,这种私有密钥216的漫游能够导致该私有密钥216被恶意方截取。结果,实质上削弱了用户208用特定密钥216安全地解密和标识数据的能力。

与本地客户机202相连的用户接口(UI)220允许用户208访问web服务器204。例如,UI214可以包括显示器217,如用于观察数据和/或输入格式的计算机监视器,以及输入设备219,如用于以该输入格式(未示出)输入数据的键盘或指示设备(如,鼠标,轨迹球,或触摸屏)。换句话说,UI214允许用户208选择本地客户机210中的数据进行加密,并且允许用户208提交请求以将来自于本地客户机210的加密数据发送至web服务器204中进行存储。

数据库226(如,数据库110)耦合到web服务器204上并且包含验证来自本地客户机202(和网络中的其它用户)的请求以在数据库226中存储加密专用数据所必需的信息。尽管数据库210看起来是与验证服务器204分开的,但是应该理解,在本发明的其它实施例中,数据库210可以包含在web服务器208中。

在一个实施例中,web服务器204是一个执行验证服务227的注册服务器,以验证请求访问服务器204的用户208。在这个实施例中,web服务器204在允许用户访问由该web服务器204提供的服务之前,首先请求验证来自于用户208的信息,如验证密码,由参考字符229指示。

进一步参见图2,本地客户机202希望通过本地客户机应用程序206在服务器204中存储一个加密的私有密钥。在此之前,本地客户机应用程序206需要对服务器204验证/核准用户进行。在这个实施例中由用户208提供的验证密码就用来对访问服务器204验证用户208。

为了安全地发送和存储专用数据,本地客户机应用程序206请求输入数据,如来自于用户208的加密密码。本地客户机应用程序206和UI220允许用户208输入加密密码。本地客户机应用程序206响应用户输入的加密密码,产生了一个用于加密专用数据的包封密钥K1 230。在这个实施例中,包封密钥K1是一个用来加密私有密钥的对称密钥(如,生成一个散列值)。本地客户机应用程序206向服务器漫游应用程序228发送加密专用数据,如参考字符232所指示的。为了确保用户数据的私密性,使得验证密码和加密密码成为两个独立的密码。但是,应该明白,它们也可以是一个密码。还应该明白,服务器204可以用不同的验证机制对用户208进行验证,如智能卡,一次性密码和生物测定学。

由服务器204执行的服务器漫游应用程序228(如,web服务)将接收到的加密专用数据存储在数据库226中,如参考字符233所指示的。在这个实施例中,专用数据是存储在存储器214中的私有密钥216,并且加密算法218利用生成的包封密钥230对私有密钥进行加密从而生成加密私有密钥Ek1 PK 234。值得注意的是,web服务器204仍不知道生成的包封密钥和私有密钥216。此外,由于服务器不能支配用于生成包封密钥230的加密密码,因此服务器漫游应用程序就无法对加密私有密钥234进行解密。

现在参见图3,根据本发明的一个实施例,该模块图示出了在漫游客户机302和web服务器204之间对加密专用数据进行通信的系统300。

在这个实施例中,服务器漫游应用程序228通过漫游客户机应用程序304和通信网络212接收来自于漫游客户机302的请求从而获取数据库226中存储的加密专用数据。服务器漫游应用程序228响应接收到的请求信息,由web服务器204执行对漫游用户306进行验证。在这个实施例中,服务器204通过图2A所示的输入格式,请求来自于漫游用户306的验证密码。

如图2所描述的实质上相同的方式中,服务器漫游应用程序228验证从客户机接收的验证密码的格式,从而确定是否核准漫游用户306以获取了来自于数据库的加密数据。如果验证密码没有通过验证,那么服务器漫游应用程序228会阻止漫游客户机302访问数据库226中存储的加密专用数据。选择的,如果验证密码通过了验证,那么服务器漫游应用程序228会获取来自于数据库226的加密数据,如参考字符310所指示的,并且将加密数据发送给漫游客户机302,如参考字符311所指示的。漫游客户机应用程序304响应接收到的加密专用数据,请求来自于用户的加密密码并生成包封密钥K1,并且执行解密算法312。(308在图3中未示出)这样的话,解密算法312利用漫游客户机302上生成的包封密钥230对接收到的加密专用数据进行解密从而获得与本地客户机202相关的私有密钥。此后,漫游客户机应用程序304能够在与漫游客户机302相关的存储器314中存储已获得的私有密钥。

现在参见图4,根据本发明的另外一个优选实施例,模块图示出了在本地客户计算机202和服务器204之间对加密专用数据进行通信和数据恢复的系统400。

在这个实施例中,即使在用户忘记加密密码的情况下,本地用户208使用UI220来选择恢复选项从而具有对存储在服务器204中的加密专用数据进行恢复的能力。在这个实施例中,如图2所描述的,除了利用加密密码生成包封密钥K1之外,漫游客户机应用程序212还响应恢复密钥请求,随机生成新的加密密钥(如恢复密钥K2)。例如,用户将加密密码输入到表格(未示出)中之后,例如,用户208使用鼠标来点击“YES”键,随即向用户出现显示信息“ENABLEPRIVATE DATA RECOVERY WITHOUT ENCRYPTION PASSWORD”的对话框。本地客户机应用程序206响应由用户作出的“YES”选择,随机生成恢复密钥K2。值得注意的是,K2不以任何方式与加密密码连接。服务器漫游应用程序228通过核准由客户机发送来的验证密码来验证用户208。如果验证密码通过了验证,那么就允许用户208向服务器204发送包括用包封密钥Ek1 PK 234加密的私有密钥,用恢复密钥Ek2 K1 414加密的包封密钥和用包封密钥Ek1 K2 416加密的恢复密钥在内的加密专用数据,分别如418,419和420所指示的。服务器漫游应用程序228响应接收到的加密专用数据在数据库226中存储Ek1 PK,Ek2 K1 414和Ek1 K2,分别如421,422和423所指示的。此外,服务器漫游应用程序228响应从本地客户机202接收的加密数据,随机生成备份密钥K3 424并存储在数据库226中,如425所指示的,并且将生成的备份密钥424发送给本地客户机202,如426所指示的。注意K3的传输是通过安全信道(如,通过SSL)发生的。在没有安全信道的情况下,值就会发生变化从而容易泄露恢复密钥。本地客户机应用程序206响应接收到的备份密钥424,生成第二加密恢复密钥Ek3 K2 428并存储在与本地客户机202相连的存储器214中和/或磁盘中。

在这个实施例中,加密算法216用于生成加密私有密钥234,加密包封密钥414,第一加密恢复密钥416和第二加密恢复密钥428。加密私有密钥234代表由包封密钥加密的私有密钥,加密包封密钥414代表由恢复密钥K2加密的包封密钥,第一加密恢复密钥416代表由包封密钥K1加密的恢复密钥408,以及第二加密恢复密钥428代表由备份密钥424加密的恢复密钥408。尽管这样,这里将本发明描述为使用同一种加密算法,但是可以预料不同的加密算法能够用于生成各自不同的加密密钥。

现在参见图5,根据本发明的一个实施例,模块图5示出了从服务器204向漫游客户机302发送恢复数据的系统500。

在这个实施例中,服务器漫游应用程序228通过远程漫游客户机应用程序304接收来自于漫游客户机302的请求并且与网络212进行通信从而获取数据库中的备份数据。在这种情况下,备份数据是第一个加密恢复密钥416和备份密钥424。服务器漫游应用程序228通过核准客户机发送来的验证密码的格式来对用户208进行验证。如果验证密码通过验证,那么服务器漫游应用程序228就能从数据库226中获取第一加密恢复密钥416和备份密钥424,例如分别由参考字符506,508所指示的,并且将Ek1 K2和K3发送给漫游客户机应用程序304,例如分别由参考字符510,512所指示的。换句话说,如果验证密码没有通过验证,那么服务器漫游应用程序228会阻止访问数据库226。

漫游客户机应用程序304响应接收到的第一加密恢复密钥416,请求接收用户发出的加密密码504,生成包封密钥K1,并且执行解密算法312。在这种情况下,解密算法312利用在漫游客户机302上生成的包封密钥230对接收到的第一加密恢复密钥416进行解密从而获得与内部客户计算机202相关联的恢复密钥408。漫游客户机应用程序304响应接收到的备份密钥424,执行加密算法218。在这种情况下,加密算法218利用接收到的备份密钥424对已获得的恢复密钥408进行加密从而生成第二加密恢复密钥428。此后,漫游客户机应用程序304将第二加密恢复密钥428存储在存储器314中或与漫游客户机302相连的磁盘上。由于具有了存储在存储器314中的第二加密恢复密钥428,以及来自于服务器的备份密钥424和加密包封密钥,漫游客户机302可以在不知道用于生成包封密钥K1的密码(如,加密密码)的情况下,对存储在数据库226中的加密私有密钥234进行恢复和解密。

现在参见图6,根据本发明的一个实施例,模块图示出了在不知道加密密码的情况下,用于恢复从web服务器204到漫游客户机302的加密数据的系统600。

在这个实施例中,在漫游客户机302上已经进行了上面所述的备份处理,因此漫游客户机302具有存储在存储器314中的第二加密恢复密钥428。服务器漫游应用程序228通过漫游客户机应用程序304接收由漫游客户机302发出的请求,并且与网络212进行通信从而获得加密专用数据,如来自于数据库226的私有密钥216。服务器漫游应用程序228通过核准来自于客户机的验证密码来对用户302进行验证。当用户成功通过了验证时,服务器应用程序向漫游客户机应用程序304发送加密的专用数据216。如图3和5所描述的,漫游客户机应用程序304响应接收到的加密专用数据,请求来自漫游用户306的加密密码以生成包封密钥K1。

如果用户306忘记了加密密码,例如,用户会利用UI来选择“YES”选项,随即向用户出现另一个显示信息“RECOVERY PRIVATE DATA WITHOUTENTERING ENCRYPTION PASSWORD”的对话框。服务器漫游应用程序228响应恢复请求,从数据库226中获得备份密钥424,加密私有密钥234和加密包封密钥414,分别如参考字符604,606和608所指示的,并且将获得的K3,Ek1 PK,和Ek2 K1发送至漫游客户机应用程序304,分别如参考字符610,612和614所指示的。

漫游客户机应用程序304响应接收到的备份密钥424,加密私有密钥234和加密包封密钥414,执行解密算法312。在这种情况下,解密算法312利用接收到的备份密钥424对以前存储在存储器(见图5)中的第二加密恢复密钥428进行解密,从而得到与本地客户机202相关的恢复密钥408。接下来解密算法312利用得到的恢复密钥408对接收到的加密包封密钥414进行解密从而得到包封密钥230。解密算法312利用得到的包封密钥继续对接收到的加密私有密钥234进行解密从而得到与本地客户机202相关的私有密钥216。此后,漫游客户机应用程序304将获得的私有密钥PK存储在与漫游客户机302相连的存储器214中。

现在参见图7,根据本发明的一个实施例,该示意性流程图示出了一种在内部客户计算机和服务器之间进行专用数据通信,从而促使漫游客户计算机对专用数据进行恢复的方法。在702中,内部客户计算机的用户执行本地客户机应用程序,并且标识出存储在与内部客户计算机相连的存储器中的专用数据(如,私有密钥),从而将其加密并发送给服务器。在704中,本地客户机应用程序请求来自用户的加密密码。706中,利用从用户接收到的加密密码生成包封密钥。708中,利用生成的包封密钥对标识的专用数据进行加密。在710中,本地客户机应用程序将加密数据发送给执行服务器漫游应用程序的服务器。712中,服务器应用程序响应已发送的加密专用数据,并且将加密专用数据存储在与服务器相连的数据库中。

现在参见图8,根据本发明的一个实施例,该示意性流程图示出了一种从服务器向漫游客户计算机发送加密专用数据的方法。

在802中,执行漫游客户机应用程序的漫游客户计算机的用户请求发送来自执行漫游应用程序的服务器的加密专用数据。在这个实施例中,用户通过上述参考图7所描述的方法,请求发送以前存储在与服务器相连的数据库中的加密私有密钥Ek1 PK。在804中漫游客户机应用程序请求来自用户的加密密码。在806中,通过漫游客户机应用程序利用从用户接收的加密密码生成包封密钥。验证服务器首先利用某一验证机制,如密码匹配,对用户进行验证。808中如果验证失败,809中服务器漫游应用程序会阻止用户访问请求的加密数据。806中如果验证成功,在810中,服务器漫游应用程序重新获得数据库中的加密私有密钥Ek1 PK并将其发送给漫游客户计算机。在802中,漫游客户机应用程序通过已生成的包封密钥230解密接收到的加密私有密钥Ek1 PK以获得私有密钥PK。

现在参见图9A和9B,根据本发明的一个实施例,上述示意性流程图示出了一种在内部客户计算机和服务器之间进行专用数据通信和数据恢复的方法。

在902中,内部客户计算机的用户执行漫游客户机应用程序并对存储在内部客户计算机的存储器中的专用数据进行标识从而对其进行加密,并且提交请求以将标识后的专用数据传送至服务器。如果该请求被批准,如上述参考图8所述,那么在904中,服务器执行漫游服务器应用程序。在906中,服务器漫游应用程序响应来自特定本地客户机的请求以决定是否这是首次执行SRA。如果在906中服务器漫游应用程序确定这是首次执行或对于这个用户来讲无法在数据库中找到备份密钥K3,那么在908中,服务器漫游应用程序生成随机备份密钥K3。在910中,服务器漫游应用程序在数据库中存储备份密钥K3,并且在912中,向本地客户机应用程序提供用于对恢复数据进行加密的备份密钥K3。如果在907中,服务器漫游应用程序确定这不是首次执行,并且在912中,向本地客户机应用程序提供用于加密恢复数据的备份密钥K3。

现在参见图9B,在914中本地客户机应用程序利用用户提供的加密密码生成包封密钥K1。916中本地客户机应用程序决定恢复密钥K2是否存储在内部客户计算机中。如果916中,本地客户机应用程序决定恢复密钥K2没有存储在与本地客户机相连的存储器中,并且第一加密恢复密钥Ek1 K2在服务器中不存在,那么在918中本地客户机应用程序生成随机恢复密钥K2。例如,如果这是本地客户机应用程序的首次执行,那么恢复密钥就不会在内部客户计算机中存在。在916中,如果本地客户机应用程序确定在与本地客户机相连的存储器中存储恢复密钥K2,那么920中,本地客户机应用程序从存储器中重新获得恢复密钥K2。在922中,本地客户机应用程序生成加密私有密钥,加密包封密钥K1,第一加密恢复密钥和第二加密恢复密钥。加密私有密钥代表经生成的包封密钥K1加密的私有密钥PK。加密包封密钥Ek2 K1代表经恢复密钥K2加密的包封密钥K1。第一加密恢复密钥Ek1 K2代表经包封密钥K1加密的恢复密钥K2。第二加密恢复密钥Ek3 K2代表经由服务器发送来的备份密钥K3加密的恢复密钥K2。在924中,本地客户机应用程序将第二加密恢复密钥Ek3 K2存储在与内部客户计算机相连的存储器中。926中,本地客户机应用程序将加密私有密钥,加密包封密钥,第一加密恢复密钥发送给服务器。再回到图9A中,在928中,服务器漫游应用程序接收发送来的加密私有密钥,加密包封密钥和第一加密恢复密钥,并将其存储在数据库中。

现在参见图10,示意性流程图示出了一种从服务器向漫游客户机发送恢复数据从而使得漫游客户机无需加密密码就能够获得专用数据的方法。在1002中,执行漫游服务器应用程序的服务器接收来自执行漫游客户机应用程序的漫游用户的验证密码,并请求对恢复数据进行转移或备份。在1004中漫游客户机应用程序响应由验证的用户所提供的加密密码,生成包封密钥K1。在1006中,漫游服务器应用程序将备份密钥K3,第一加密恢复密钥Ek1 K2发送给漫游客户机应用程序。在1008中,漫游客户机应用程序利用已生成的包封密钥K1对接收到的第一加密恢复密钥Ek1 K2进行解密从而得到K2。在1010中,客户机应用程序利用接收到的备份密钥K3对得到的恢复密钥K2进行加密从而生成第二加密恢复密钥Ek3 K2。在1012中,漫游客户机应用程序将生成的第二加密恢复密钥存储在与漫游客户计算机相连的存储器中。

现在参见图11,示意性流程图示出了一种无需加密密码,在漫游客户机中恢复来自服务器的专用数据的方法。在1102中,服务器接收来自执行漫游客户机应用程序的漫游客户机的验证密码,并且在无需加密密码的情况下请求传送加密私有密钥。在1104中,漫游客户机应用程序从数据库中重新获得备份密钥,加密包封密钥Ek2 K1和加密私有密钥Ek1 PK。在1106中,漫游客户机应用程序将重新获得的备份密钥,加密包封密钥和加密私有密钥发送给漫游客户机。在1108中,漫游客户机应用程序利用重新获得的备份密钥K3对先前存储在漫游客户机(见图10)中的第二加密恢复密钥Ek3 K2进行解密从而得到恢复密钥K2。在1110中,漫游客户机应用程序利用已得到的恢复密钥K2对加密包封密钥Ek2 K1进行解密从而得到包封密钥K1。在1112中,漫游客户机应用程序利用已得到的包封密钥对加密私有密钥进行解密。

值得注意的是,通过在客户机端生成K2以及将其泄露给服务器,我们能够在服务器不知道其中任一个的情况下,在服务器上备份加密密码密钥K1和恢复密钥K2。同时,由于客户机至少知道两个密钥中的一个,也就是用户输入预先存储在客户机端的加密密码K1或K2,客户机都能够利用Ek1 K2和Ek2 K1来恢复专用数据并且还能够对其进行备份。

图12示出了以计算机130形式的通用计算设备的例子。在本发明的一个实施例中,计算机,如计算机130适用于这里所示意和描述的其它附图。计算机130具有一个或多的处理器或处理单元132以及系统存储器134。所示的实施例中,系统总线136耦合包括系统存储器134至处理器132在内的多个系统部件。总线136代表一种或多种总线结构的类型,其中包括记忆总线或记乙控制器,外部总线,加速图形端口以及处理器或采用任何一种总线结构的局部总线。作为例子,并且没有限制,这种结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强ISA(EISA)总线,视频电子标准协会(VESA)内部总线,以及也公知的Mezzanine总线的外设部件互连(PCI)总线。

计算机130通常至少某些形式计算机可读介质。包括易失的和非易失的介质,可移动和不可移动介质在内的计算机可读介质可以是任何能够被计算机130访问的可用的媒质。作为例子,并且没有限制,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括在任何方法和技术中用于信息存储的易失和非易失的,可移动和不可移动的介质,该信息如计算机可读指令,数据结构,程序模块或其它数据。例如,计算机存储介质包括RAM,ROM,EEPROM,flash存储或其它存储技术,CD-ROM,数字通用磁盘(DVD)或其它光学磁盘存储,磁盒,磁带,磁盘存储或其它磁存储设备,或其它任何能用来存储想要的信息并能够被计算机130访问的媒介。通信介质通常包含计算机可读指令,数据结构,程序模块,或调制数据信号中的其它数据,如载波或其它传输机制,以及包含任何信息的传递介质。本领域技术人员都熟知的调制数据信号具有一个或多个可以被设定或改变的特征,从而对信号中的信息进行编码。有线介质,如有线网络或直接有线连接,和无线介质,如声学的,RF,红外线的以及其它无线介质,以上这些都通信介质的范例。以上这些的任意组合也都包含在计算机可读介质的范围内。

系统存储器134包括以可移动的和/和不可移动的,易失的和/或非易失的形式存储的计算机存储介质。在所示的实施例中,系统存储器134包含只读存储器(ROM)138和随机存取存储器(RAM)140。包含基础例程的基础输入/输出系统142(BIOS)通常存储在ROM138中,该基础例程有助于在计算机130的元件间传送信息,例如在启动期间。RAM140通常包含通过处理单元132就能够立即进行存取和/或运行的数据和/或程序模块。作为例子,并且不进行限定,图12示出了操作系统144,应用程序146,其它程序模块148和程序数据150。

计算机130也可以包括其它可移动的/不可移动的,易失的/非易失的计算机存储介质。例如,图12示出了能够从不可移动的,非易失的磁介质中读取或写入的硬盘驱动器154。图12还示出了能够在可移动的,易失的磁盘158中读取或写入的磁盘驱动器156,以及能够在可移动的,非易失的光盘162,如CD-ROM或其它光介质中读取或写入的光盘驱动器160。其它可移动的/不可移动的,易失的/非易失的计算机存储介质也可以应用于包括磁带,flash存储卡,数字通用盘,数字录像带,固态ROM,固态RAM等在内的示意性操作环境中,但并不局限于此。硬盘驱动器154,磁盘驱动器156和光盘驱动器160通常通过非易失存储接口,如接口166连接到系统总线136上。

图12所示的已讨论过的驱动器或其它大容量存储设备以及与它们相连的计算机存储介质存储了计算机可读指令,数据结构,程序模块和用于计算机130的其它数据。在图12中,例如,硬盘驱动器154示为用于存储操作系统170,应用程序172,其它程序模块174和程序数据176。值得注意的是,这些部分可以与操作系统144,应用程序146,其它程序模块148,和程序数据150相同,也可以不同。这里,针对操作系统170,应用程序172,其它程序模块174,和程序数据176给出了不同的编号,最低的,它们是不同的副本。

用户可以通过输入设备或用户接口选择设备,如键盘180和指示设备182(如,鼠标,轨迹球,笔或触摸屏),将命令和信息输入到计算机130中。其它输入设备(未示出)可以包括麦克风,操纵杆,游戏屏,圆盘式卫星电视天线,扫描仪等等。这些设备以及其它输入设备都可以通过耦合在系统总线136上的用户输入接口184与处理单元132相连接,但是也可以通过其它的接口和总线结构与处理单元相连,如并行端口,游戏端口,或通用串行总线(USB)。监视器188或其它类型的显示设备也可以通过接口与系统总线136相连,如视频接口190。除监视器188之外,计算机通常包括其它外围输出设备(未示出),如打印机和扬声器,它们可以通过输出外围接口(未示出)相连接。

在网络环境中,计算机130可以利用逻辑接点与一个或多个漫游客户机相连,如漫游客户机194。漫游客户机194可以是个人计算机,服务器,路由器,网络PC,对等装置或其它通用网络节点,并且通常包括如上所述的与计算机相关的许多或所有单元。图12所述的逻辑接点包括局域网(LAN)196和广域网(WAN)198,但是还可以包括其它网络。这些网络环境在办公室,企业宽带计算机网络,企业内部互联网和全球计算机网络(如,因特网)中是非常普遍的。

当应用于局域网环境中,计算机130是通过网络接口或适配器186与LAN196相连的。当应用于广域网环境中,计算机130通常包括调制器178或通过WAN 198,如因特网,建立通信的其它装置。调制器178可以是内部的也可以是外部的,并且通过用户输入接口184或其它适当的机制与系统总线136相连。在网络环境中,所述的与计算机130或其中某部分相关的程序模块可以存储在远程记忆存储器设备中(未示出)。作为例子,并且没有限制,图12示出了将远程应用程序192驻留在存储器设备中。应该意识到所示的网络连接只是所举的一个例子,也可以采用其它装置来建立计算机间的通信链路。

通常,计算机的数据处理器借助于在不同时间,存储在计算机的各种计算机可读存储介质中的指令来执行。例如,程序和操作系统通常是分存在软盘或CD-ROM中。接下来,将它们安装或下载到计算机的第二存储器中。在执行的过程中,至少将它们部分地下载到计算机的第一电子存储器中。当这种介质包含用于完成下面与微处理器或其它数据处理器相关的所述步骤的指令或程序时,这里所述的本发明包括这些或其它类型的计算机可读存储介质。当根据这里所述的方法和技术编写程序时,本发明还包括计算机本身。

为了进行示意,这里用离散的模块示出了程序或其它的执行程序部件,如操作系统。然而,应该认识到,在不同时间,在计算机的各种存储元件中存储的这些程序和部件通过计算机的数据处理器执行。

尽管结合包括计算机130在内的示意性计算系统环境来描述,但是本发明也能够结合其它通用或专用计算系统环境或结构来实现。计算系统环境并对本发明的使用范围或功能范围进行任何的限定。而且,不应将计算系统环境视为对示意性操作环境所示出的任何一个元件或多个元件的组合具有任何的依赖性或需求。举出的常见计算系统,环境,和/或结构的例子可适合本发明中的用户,但并不局限于,个人计算机,服务器计算机,手持型或膝上型设备,多处理器系统,微处理器基础系统,机顶盒,可编程用户电子器件,网络PC机,微型计算机,大型计算机,适用于包括上述系统或装置在内的任何计算环境等。

本发明可以描述在计算机执行指令的通用环境中,如程序模块,并且可以用一个或多个计算机或其它设备来执行。通常,程序模块包含例程,程序,目标程序,分量和执行特定的任务或实现特殊的抽象数据类型的数据结构,但又不局限于此程序模块。本发明还适用于分布式计算环境,该环境中的任务都由通过通信网络相连接的远程处理设备来执行。在分布式计算环境中,程序模块可位于具有记忆存储设备的本地和漫游客户机存储介质中。

在操作中,计算机130执行计算机执行指令,如图7至11所示出的,用以加密和发送专用数据和/或接收和解密专用数据。

当介绍本发明或实施例的元件时,词“一个”,“一个”,“该”和“所述”实际上想要表示存在一个或多个元件。术语“包括”,“包含”和“具有”实际上是想要表示这里可能具有除了列出的元件之外的其它元件。

鉴于上面所述的,可以看出本发明的若干目的是可以实现的并且能够取得其它有利的效果。

在不背离本发明范围的情况下,可以在结构和方法上进行多种变化,意味着上面所述的以及附图所示出的所有内容都应认为是说明性的并且不进行限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号