数据云的分布式认证的制作方法

文档序号:7915342阅读:303来源:国知局
专利名称:数据云的分布式认证的制作方法
技术领域
本发明的示例性实施例一般涉及用户数据存储和检索方法、装置和计算机程序,并且更具体地,涉及在访问所存储的数据时的用户认证方法、装置和计算机程序。
背景技术
可能在说明书和/或附图中出现的下列缩写定义如下
API应用程序接口⑶N内容分发/分配网络HA本地代理HTTP超文本传输协议(RFC 2616)RDF资源描述框架SSL安全套接层SSO单点登录TLS透明层安全协议(RFC 5246)UUID 通用唯一识别码(RFC 4122)已知为OAuth ( (http//oauth. net)的协议允许网站或者应用(消费者)通过API访问来自web服务(服务提供商)的受保护的资源,而不要求用户向消费者公开他们的服务提供商凭证。通常,OAuth为API认证创建可自由实现且通用的方法。RDF数据模型(www. w3. org/RDF)建立在对关于主谓宾表达式(称为“三元组”)形式的资源(尤其是web资源)的声明的基础上。主语代表资源,谓语代表资源的特征或者方面并表达主语和宾语之间的关系。“云”可以被认为指代由一个或者多个第三方提供和维持的关于特定用户的资源(例如硬件资源和/或软件资源)集合。该资源集合可被特定用户通过数据通信网络获得。数据通信网络可以是有线网络和/或无线网络,并且可以包括因特网和/或局域网(LAN)。该资源可以向用户提供服务,诸如数据存储服务、文字处理服务以及传统上与个人计算机和/或本地服务器关联的其它类型的服务和/或应用。与云相关的一些有代表性的美国公开的专利申请包括US2008/0077638 Al,“Distributed Storage in a Computing Environment”,Monk等人;US 2008/0080526 Al,“Migrating Data to New Cloud”,Gounares 等人;以及 US 2009/0088142 Al, “DeviceMigration,,,Baribault 等人。对于云为用户提供分布式数据存储的情况可以称之为“数据云”。在这样的情况中出现的问题是如何最好地为数据云中特定用户的数据提供安全性和保密性从而,例如避免对用户数据的未授权的访问。

发明内容
根据本发明目前优选的实施例克服了前述和其它问题并实现了其它优势。
依照示例性实施例的第一方面,一种方法包括响应于用户对访问特定存储的需要认证的数据的需求,向数据云中发送对所存储的数据的请求,该请求不标识该用户;从数据云中接收说明认证范围和一次性使用的现时(nonce)的响应信息;将说明认证范围的信息显示给用户并且提示用户提供用户名和密码;使用至少部分地使用响应信息生成的具有用户凭证的认证报头向数据云中重发请求,用户凭证包括用户名和散列密码;以及如果用户凭证有效,则从数据云中接收所请求的存储数据。依照示例性实施例的另外的方面,一种装置包括处理器和包括计算机程序代码的存储器。存储器和计算机程序代码被配置成与处理器一起引起该装置至少执行响应于用户对访问特定存储的需要认证的数据的需求,向数据云中发送对所存储的数据的请求,该请求不标识该用户;从数据云中接收说明认证范围和一次性使用的现时的响应信息;将说明认证范围的信息显示给用户并且提示用户提供用户名和密码;使用至少部分地使用响应信息生成的具有用户凭证的认证报头向数据云中重发请求,用户凭证包括用户名和散列密码;以及如果用户凭证有效,则从数据云中接收所请求的存储数据。


结合所附的附图从对优选实施例的下列详细描述中,本发明目前优选实施例的前述和其它方面将更显而易见,其中图I是图示了客户端和数据云,以及根据本发明的示例性实施例的服务器和数据云之间的消息流的简化的框图。图2是图示了根据本发明的示例性实施例的方法的操作以及包含在计算机可读存储器中的计算机程序指令的执行结果的逻辑流程图。
具体实施例方式图I是图示了客户端10和数据云20,以及根据本发明的示例性实施例的客户端10和数据云20之间的消息流的简化的框图。可以是或者包括例如浏览器和/或用户代理的客户端10包括或者由至少一个数据处理器IOA和诸如存储器IOB的至少一个计算机可读介质托管。假设存储器IOB包括包含计算机软件指令的程序(PROG) 10C,被执行时该计算机软件指令引起客户端10根据本发明的示例性实施例操作。有线和/或无线数据通信网络12将客户端10双向连接到数据云20,更具体地,双向连接到至少一个服务器22,同样可以假设服务器22包括至少一个数据处理器(DP)22和诸如存储器22B的至少一个计算机可读介质。假设存储器22B包括包含计算机软件指令的程序(PROG) 22C,被执行时该计算机软件指令引起服务器22根据本发明的示例性实施例操作。数据云20还包括多个存储密钥-值对(凭证)和其它数据的数据存储设备或者系统或者存储器24 (24A、24B、…、24n)。存储器24可以基于任何合适类型的数据存储技术,包括但不限于固定和可移动存储介质、使用磁或光数据存储读和写性能的旋转盘,以及半导体存储器。作为示例性和非限制性实施例,客户端10可以配备在PC、工作站、诸如膝上型计算机或者笔记本式计算机的移动设备、或者无线通信设备(诸如蜂窝电话、个人数字助理、因特网工具或者使能到因特网和/或数据云20的连通性的任何合适类型的用户设备)中。数据存储器24可以基于任何合适类型的数据存储技术,包括但不限于固定和可移动存储介质、使用磁或光数据存储读和写性能的旋转盘以及半导体存储器。为了描述本发明的示例性实施例,可以假设数据云20中的数据可用于授权服务和应用,并且数据云20控制对数据(例如,对凭证)的访问。假设所存储的数据是地理上分布的,并且可从任何地方获取。数据云20在因特网中可以是开放的。典型的注册情况包括下列步骤。客户端10从服务器22请求需要认证的(数据)页面,但不提供用户名和密码。月艮务器22以(HTTP)响应码(例如,“401”响应码)进行响应,提供认证范围和随机生成的、称为现时的一次性使用的值。客户端10将认证范围(通常是被访问的计算机或者系统)显示给用户并提示用户提供用户名和密码。一旦用户名和密码被提供,客 户端10重新发送同样的请求,但是添加包括具有用户名和(通常)散列密码的响应码的认证报头。服务器22核对凭证并返回所请求的页面。如果用户名无效和/或密码不正确,则服务器返回错误响应(例如,“401”)。在这点上可以看出,如果密钥必须是静态的而不使用现时对密码进行散列则可能会出问题。这可以使用至少两个机制类规避,使用公钥加密或者使用动态散列。如果使用PKI,则认证云20中的服务器22 “读处理程序”可以使用公钥算法来提供客户端10和服务器22之间的密码安全性。可选地,可以使用质询响应散列,其可以以与特定的基于分类(digest)的认证(例如,RFC 2617,HTTP认证基本和分类访问认证(Basic andDigestAccess Authentication), Franks等人,1999年6月)类似的方式动态地提供。在本发明的示例性实施例中,用户凭证(例如,用户名和散列密码)存储在数据云20中。对该凭证的授权是基于,例如OAuth密钥和秘密密钥(secret)中之一,或者基于SSL/TLS0数据可以存储为〈密钥,值〉对,其中密钥是例如用户名和散列密码的组合,值是例如关于在某个时间间隔期间(例如,在最后一分钟内)数据已被访问多少次的信息。出于安全性原因,数据云可以限制,例如任何应用可以访问特定凭证的次数。用户凭证可以具有以下形式〈“用户名” +散列密码,accountid〉。该密钥包含作为唯一条目的凭证。通常,凭证可以包含任何信息,诸如用户的全名、账户标识、移动电话号码等等。在RDF实体论的情境中考虑,密钥(凭证)限定了主语,以及宾语的值。密钥可以具有期满时间作为起源数据,并且可以被加盐(salted)。众所周知,在密码学中,盐(salt)包括用作到密钥派生功能的输入之一的随机比特。另一输入通常是密码或者密码短语。密钥派生功能的输出存储为密码的加密版本。盐也可以用作密码或者其它加密算法中的密钥的一部分。密钥派生功能通常使用加密散列函数。SSL是使用盐的一种方案。更优选地,可以参考RFC 2898,PKCS 5# =Password-BasedCryptography Specification, 2. 0 版,B. Kaliski, 2000 年 9 月。存储在数据云20中的数据对于世界范围内的所有应用、服务等都是可见的(如果用户/服务具有对数据的适当访问权限)。客户端代码(例如,JavaScript)可以由多个应用、客户端组件、服务等共享。客户端代码可以具有对存储在数据云20中的凭证的安全访问。然而,为了从数据云20提取信息,客户端10必须能够提供与存储在数据云20中的密钥匹配的密钥。在使用期间,运行在客户端10上的认证程序(程序22C的一部分)可以显示登录界面并提示用户输入凭证。在用户输入凭证后,认证程序通过以正确的密钥访问数据云来检查以确定凭证是否有效(例如,认证程序发送Get ("user name"'+hashed password)(获取("用户名"+散列密码)))。这在图I中示为操作I。如果密钥有效,则服务器22返回,例如与用户关联的accountid。这在图I中示出为操作2。假设密钥有效,cookie (例如,SSO令牌/UUID)由客户端10创建,例如由客户端应用或者服务创建。这在图I中示为操作3。然后,SSO令牌被存入数据云20中,例如使用Put (SSO token)(存入(SS0令牌))消息,如图I中操作4所示。所创建的cookie (包含SSO令牌)具有有限的生命周期,并且可能只适用于一个浏览会话。在接收到SSO令牌后,如果用户访问为相同的认证配置的成员的服务,并且如果该浏览会话还没有结束或者期满,则用户被自动验证,并且不被质询用户名和密码。如上所述,数据被存储为〈密钥,值〉对。密钥可以为以下形式 密钥=〃用户名〃+〃密码散列〃,其中用户名也可以被散列。可以添加某些(可选的)附加信息(例如,现时、结构(organization))到密钥中以限制对数据的访问。根据本发明的示例性实施例,认证和令牌管理被完全分发给应用、客户端和可信的服务。HA仅取决于网络性能和数据云缓存。凭证密钥可以缓存并分发给例如⑶N。此外,应理解的是,需要建立非专用的SSO服务器。实际上SSO建立很容易实现,并且原则上,用户资料和注册也可以被分发给客户端应用。此外,整体的安全考虑不大于典型的认证流,因为推测凭证存储器(密钥-值存储器24)的正确密钥所需的尝试的数量至少与推测具有正确的密码散列的正确的用户名所需的尝试相当。对这些示例性实施例的使用假设存在密钥管理系统(例如,管理OAuth密钥和秘密密钥),尽管这种系统可能存在于任何情况中。通常,令牌可以具有至少与UUID相同的复杂度。两个或者多个令牌可能具有相同的签名的概率很小,并且当与例如应用密钥结合时,冲突发生的概率可以忽略。图2是图示了根据本发明的示例性实施例的方法的操作以及计算机程序指令的执行的结果的逻辑流程图。根据这些实施例,方法在块2A处执行响应于用户对访问特定存储的需要认证的数据的需求执行的步骤,向数据云中发送对所存储的数据的请求,该请求不标识用户。在块2B处具有从数据云中接收说明认证范围和一次性使用的现时的响应信息的步骤。在块2C处具有将说明认证范围的信息显示给用户并且提示用户提供用户名和密码的步骤。在块2D处具有使用至少部分地使用响应信息生成的具有用户凭证的认证报头向数据云中重发请求的步骤,用户凭证包括用户名和散列密码。在块2E处执行如果用户凭证有效,则从数据云接收所请求的存储数据的步骤。图2中示出的各个块可以被视为方法步骤、和/或由计算机程序代码的操作引起的操作,和/或构建以执行相关功能的多个耦合的逻辑电路元件。通常,各示例性实施例可以在硬件或者专用电路、软件、逻辑或者其组合中实现。例如,某些方面可以在硬件中实现,而其它方面可以在由控制器、微处理器或者其它计算设备执行的固件或者软件中实现,但是本发明不限制于此。虽然本发明的示例性实施例的各方面可以图示或者描述为框图、流程图,或者使用某些其它图片表示,但应理解的是,此处描述的这些块、装置、系统、技术或者方法可以以非限制性示例实现在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或者其它计算设备、或者其某些组合中。 因此应理解的是,本发明示例性实施例的至少某些方面可以实践在诸如集成电路芯片和模块的各种组件中,并且本发明的示例性实施例可以实现在体现为集成电路的装置中。集成电路可以包括用于体现可配置以根据本发明的示例性实施例操作的至少一个或多个数据处理器、数字信号处理器、基带电路和射频电路的电路(以及可能的固件)。 在前述描述的基础上结合附图,对本发明的前述示例性实施例的各种修改和变型对于相关领域的技术人员将变得显而易见。然而,任何以及所有修改仍将落入本发明的非限制和示例性实施例的范围内。应注意的是,术语“连接”、“耦合”或者其任何变型表示两个或者更多个元件之间的直接或者非直接的连接或耦合,并且可以包含两个元件之间彼此“连接”或“耦合”的一个或者多个中间元件的存在。元件之间的耦·合或者连接可以是物理的、逻辑的或者其组合。作为几个非限制性和非穷举的示例,如此处所实现的,两个元件可以视为通过使用一个或多个导线、电缆和/或印刷电连接以及通过使用电磁能(诸如具有射频区、微波区和光(可见和非可见的)区波长的电磁能)彼此“连接”或“耦合”。此外,用于描述参数(例如,“密钥”、“令牌”、“cookie”等)的各个名称不在任何方面进行限制,这些参数可以由其它合适的名称识别。此外,分配给不同函数(例如,UUID、SS0、SSL、TLS等)的各个名称不在任何方面进行限制,这些不同的函数可以由任何合适的名称识另Ij,并且在某些情况下还可以被提供相同或相似功能性的不用函数替代。此外,可以使用本发明的各种非限制性和示例性实施例的一些特征来在不使用对应的其它特征的情况下提供优势。这样,前述描述应理解为仅是对本发明的原理、教导和示例性实施例的说明,而不对其进行限制。
权利要求
1.一种方法,包括 响应于用户对访问特定存储的需要认证的数据的需求,向数据云中发送对所存储的数据的请求,所述请求不标识所述用户; 从所述数据云接收说明认证范围的响应信息; 向所述用户显示说明所述认证范围的信息并提示所述用户提供用户名和密码;以及 使用至少部分地使用所述响应信息生成的具有用户凭证的认证报头向所述数据云中重发所述请求,所述用户凭证包括所述用户名和散列密码。
2.如权利要求I所述的方法,其中所述用户凭证存储在所述数据云中。
3.如任一在先权利要求所述的方法,其中对所述用户凭证的授权是基于开放授权密钥和秘密密钥的。
4.如权利要求I到2中任一所述的方法,其中对所述用户凭证的授权是基于安全套接层或者透明层安全协议中至少之一的。
5.如任一在先权利要求所述的方法,其中所述用户凭证以〈密钥,值〉对存储在所述数据云中,其中所述密钥包括用户名和散列密码的组合。
6.如权利要求5所述的方法,其中所述值包括说明在有些间隔时间期间所述数据已被访问多少次的信息。
7.如任一在先权利要求所述的方法,其中所述用户凭证中的用户名也是散列的。
8.如权利要求I所述的方法,其中所述用户凭证仅在其与已经存储在所述数据云中的用户凭证匹配时有效。
9.如任一在先权利要求所述的方法,其中响应于所述用户凭证有效,进一步包括生成cookie并将所述cookie存储在所述数据云中。
10.如权利要求9所述的方法,其中所述cookie仅可用于一次性的用户浏览会话。
11.如权利要求10所述的方法,其中所述cookie由单点登录令牌组成。
12.如任一在先权利要求所述的方法,作为对存储在计算机可读存储介质中的计算机程序指令的执行的结果执行。
13.一种装置,包括 处理器;以及 包括计算机程序代码的存储器,其中所述存储器和计算机程序代码被配置成与所述处理器一起引起所述装置至少执行响应于用户对访问特定存储的需要认证的数据的需求,向数据云中发送对所存储的数据的请求,所述请求不标识所述用户;从所述数据云接收说明认证范围的响应信息;将说明所述认证范围的信息显示给所述用户并提示所述用户提供用户名和密码;以及使用至少部分地使用所述响应信息生成的具有用户凭证的认证报头向所述数据云中重发所述请求,所述用户凭证包括所述用户名和散列密码。
14.如权利要求13所述的装置,其中所述用户凭证存储在所述数据云中。
15.如权利要求13到14中任一所述的装置,其中对所述用户凭证的授权是基于开放授权密钥和秘密密钥的。
16.如权利要求13到14中任一所述的装置,其中对所述用户凭证的授权是基于安全套接层或者透明层安全协议中至少之一的。
17.如权利要求13到16中任一所述的装置,其中所述用户凭证以〈密钥,值〉对存储在所述数据云中,其中所述密钥包括用户名和散列密码的组合。
18.如权利要求17所述的装置,其中所述值包括说明在有些间隔时间期间所述数据已被访问多少次的信息。
19.如权利要求13到18中任一所述的装置,其中所述用户凭证中的用户名也是散列的。
20.如权利要求13所述的装置,其中所述用户凭证仅在其与已经存储在所述数据云中的用户凭证匹配时有效。
21.如权利要求13到20中任一所述的装置,其中响应于所述用户凭证有效,进一步包括生成cookie并将所述cookie存储在所述数据云中。
22.如权利要求21所述的装置,其中所述cookie仅可用于一次性的用户浏览会话。
23.如权利要求22所述的装置,其中所述cookie由单点登录令牌组成。
全文摘要
一种方法包括,响应于用户对访问特定存储的需要认证的数据的需求,向数据云中发送对所存储的数据的请求,所述请求不标识所述用户。所述方法进一步包括从所述数据云接收说明认证范围和一次性使用的现时的响应信息;向所述用户显示说明所述认证范围的信息并提示所述用户提供用户名和密码;使用至少部分地使用响应信息生成的具有用户凭证的认证报头向所述数据云中重发所述请求,所述用户凭证包括所述用户名和散列密码;以及如果所述用户凭证有效,则从所述数据云接收所请求的存储数据。
文档编号H04L9/32GK102687482SQ201080059924
公开日2012年9月19日 申请日期2010年12月21日 优先权日2009年12月29日
发明者A·韦普塞莱宁, J·马基, T·卢默 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1