模块化装置认证框架的制作方法

文档序号:6350702阅读:224来源:国知局
专利名称:模块化装置认证框架的制作方法
模块化装置认证框架
背景技术
在线实体将各种各样的服务提供给多个不同客户端装置,包括个人计算机(PC),便携式数字助理(PDA),移动电话,掌上电脑,智能手机,机顶盒,数字录像机(DVR)和游戏机,以及其他。这些客户端装置经常访问各种网络服务,如网上商店或音频/视觉内容的其他提供方,软件程序,数字图书,或其他电子内容。在许多情况中,必须认证不同客户端装置的用于特定网络服务的请求,在该网络服务承兑该请求之前。不同的客户端装置经常支持提供到该网络服务的访问的不同认证机制。例如,以下装置类型可能使用对于该装置的特定牌子是唯一的专有认证机制。其他装置类型可能使用更一般应用的认证机制,如安全套接层(“SSL”)。在一些情况中,通过为每一个类型装置提供不同的网络服务来解决这个问题,使得每一个网络服务实施特定的认证机制。然而,当以这种方式提供了不同网络服务时,在该多个网络服务之间可能存在实际双倍效果,因为实体必须将每一个认证方案实施为被裁剪成特定装置类型的不同网络服务。而且,卖方可能为每一个网络服务使用不同地址,例如统一资源定位系统(“URL”)。这可能使得具有多种装置类型的用户有些困扰。例如,用户不可能实现单个卖方具有多个站点和用于该用户的装置每一个的相应URL。因而,该用户可能使用不正确的URL以试图使用一个装置访问网络服务,即使该URL可能正确运行于另一个装置。尽管现有机制能够解决这个问题,例如通过将装置重定向到正确的URL,这些机制是特别的且不可能为所有装置类型所支持。因此,需要系统和方法来克服传统装置认证机制的这些局限。附图简要说明并入且构成本发明一部分的这些附图描述了各个公开的实施方案。在这些图中

图1是提供到服务的访问的系统的实施例的框图;图2是服务器的结构的实施例的框图;图3是认证模块的结构的实施例的框图;图4是另一个认证模块的结构的实施例的框图;图5是提供到服务的访问的程序的实施例的流程图;图6是认证装置请求的程序的实施例的流程图;和图7是认证装置请求的另一程序的实施例的流程图。发明详述该后续的具体说明涉及到这些附图。只要有可能,相同的参考编号用于这些图和该后续说明中以涉及到相同或类似部件。当此处描述了数个示范性实施方案时,修改、调整和其他实施方式是可能的。例如,可为在这些图中所述的组件作出替换、补充或修改,且可通过对所公开方法替换、重新排序或增加步骤来修改此处所述的这些示范性方法。相应地,该后续具体说明不是对该公开的实施方案的限制,替代地,由附属权利要求限定正确的范围。公开的实施方案提供了用于提供到服务的访问的系统和方法,如网络服务。该系统和方法可允许多个不同装置类型来访问单个网络服务,即使当这些装置类型实施不同的认证方案。例如,提供该网络服务的服务器可存储数个装置类型的特定认证模块。当特定装置请求到该网络服务的访问时,该服务器可从该请求中提取装置类型的标识。随后该服务器可选择该合适的认证模块认证该请求的装置。与公开的实施方案一致,计算机实施的方法提供到服务的访问。根据该方法,将认证模块存储用于认证请求访问该服务的装置。该装置至少包括具有第一装置类型的第一多个装置和具有第二装置类型的第二多个装置。配置该认证模块的第一个以实施使用特定于该第一装置类型的认证方案的该第一多个装置的认证。配置该认证模块的第二个以实施使用特定于该第二装置类型的认证方案的该第二多个装置的认证。服务器接收用来访问该服务的请求,该请求包括请求该服务的装置的装置类型标识。从该请求中提取该装置类型标识,且该方法确定装置类型标识是对应于该第一装置类型还是该第二装置类型。当该装置类型标识对应于该第一装置类型时,选择该第一认证模块,且当该装置类型标识对应于该第二装置类型时,选择该第二认证模块。使用该选择的认证模块来认证该请求以确定是否允许该请求装置访问该服务,据此使用特定于该请求装置的认证方案来实施该请求装置的认证。如果该选择的认证模块确定了授权该请求装置访问该服务,提供到该服务的访问。如果该选择的认证模块确定了不授权该请求装置访问该服务,阻止到该服务的访问。与另一公开的实施方案一致,计算机实施的方法提供到服务的访问。根据该方法,接收了访问该服务的请求,且该请求包括请求到该服务的访问的装置的装置类型标识。从该请求中提取该装置类型标识,并确定用于该请求装置的相应装置类型。基于该装置类型标识从多个认讧模块选择认证模块,该选择的认证模块实施了用于该请求装置的装置类型的认证方案。使用该选择的认证模块认证该请求以确定是否允许该请求装置访问该服务。至少基于授权该请求装置以访问该服务的决定来提供到该服务的访问。与另一公开的实施方案一致,服务器提供了到服务的访问。该服务器包括执行程序指令的处理器,存储该程序指令的计算机可读介质。该程序指令当由该处理器执行时,实施接收访问服务的请求的步骤。该请求包括请求到该服务的访问的装置的装置类型标识。该程序指令从该请求提取该装置类型标识,并确定用于该请求装置的相应装置类型。该程序指令基于该装置类型标识从多个认证模块选择认证模块,该选择的认证模块实施了用于该请求装置的装置类型的认证方案。该程序指令使用该选择的认证模块认证该请求以确定是否允许该请求装置访问该服务,并至少基于授权该请求装置以访问该服务的决定来提供到该服务的访问。图1是提供到服务的访问的系统100的实施例,与公开的实施方案一致。系统100可提供用于一个或多个客户端装置访问执行在服务器上的服务(如,网络服务)的功能。如系统100中所示,客户端110、120和130,服务器140,认证授权机构150,不信任客户端装置170,信任伙伴服务器180,和传统装置190连接网络160。本领域一个技术人员应当理解,尽管在图1中描绘了组件的特定编号,可提供这些组件的任意编号。本领域一个普通技术人员也应认识到,可将系统100的一个或多个组件所提供的功能并入一个组件,或分布在多个组件。例如可使用包括如数个备份服务器一样的数个主服务器的服务器群来实施服务器140。另外,可将此处所讨论的各个处理步骤分布在多个服务器来实施服务器140。网络160提供了系统100中各个组件之间的通信,如客户端装置110、120和130,服务器140,认证授权机构150,不信任客户端装置170,信任伙伴服务器180,和传统装置190。网络160可以是共享的、公用的或专用网络,可包括广域网或局域网,并可由有线和/或无线通信网络的任意适合组合来实施。而且,网络160可包括内联网或互联网。服务器140可包括具有可由计算机程序可选地激活或重新配置的一个或多个处理器145的通用计算机(如,个人计算机,网络计算机,服务器,或主计算机)。处理器145可实施与公开的实施方案一致的步骤或方法,通过读出来自存储器146的处理指令并执行这些指令。特别地,可将网络服务141和网络服务142实施为存储在存储器146中、适合于处理器145的执行的指令。存储器146可能是存储与软件一样的数据的一个或多个存储器或存储装置。存储器146也可能包括,例如,RAM、ROM、磁存储器或光存储器的一个或多个。而且,存储器146可能存储在由处理器140执行时实施以下所讨论的一个或多个步骤的程序模块。在其他实施方案中,可能为执行与公开的实施方案一致的方法而特别构建服务器140。例如,可将此处所公开的处理步骤的一个或多个实施在现场可编程门阵列(“FPGA”),特定用途集成电路(“ASIC”)或适合的芯片集。此处所讨论的加密和解密步骤可能部分地适合于在这样的硬件装置上的实施方式。服务器140可提供到各个服务的访问,如网络服务141和网络服务142。服务器140也可提供用于认证客户端装置110、120和130,和/或操作这样客户端装置的用户的功能。例如,在网络150上提供音频/视觉或软件内容的实体使用网络服务141和142可提供这样的内容。当客户端装置110、120和130可使用不同通信协议或数据格式时,服务器140也可包括装置兼容层143,其在于2008年6月30日提交的标题为“客户端到服务的兼容框架”的第12/165,188号美国申请中进行了更具体讨论,该申请的公开内容在此处清楚地一体通过引用并入本文。例如,装置兼容层143可将来自客户端装置110、120和130的通信转变成与网络服务141和142兼容的形式。服务器140也可包括装置认证层144,用于认证网络装置110、120和130,如以下更具体讨论的一样。认证授权机构150可包括可由计算机程序可选地激活或重新配置的一个或多个处理器(未图示)的通用计算机(如,个人计算机,网络计算机,服务器,或主计算机)。而且,认证授权机构150可通过网络160与服务器140通信,与客户端装置110、120和130 —起。可使用服务器群,分布式技术以及以类似于关于服务器140的以上讨论的方式的软件和硬件的各种组合,来实施认证授权机构150。认证授权机构150可包括加密器151,用于生成包括有数据认证的数字签名,如以下根具体讨论的一样。客户端装置110、120和130可以是用于与服务器140和认证授权机构150通信的任意类型装置。例如,客户端装置110、120和130可以是个人计算机,手持装置(如,PDA,如智能电话的手机,等),电视,数字音乐播放器,机顶盒,数字录像机(DVR),或游戏机,或任意能够与网络160互换数据的任意其他合适的计算平台或装置。客户端装置110、120和130每一个可包括,例如,一个或多个处理器和一个或多个存储器(未图示)。用户可以在网络160上访问在服务器140上的网络服务141和142,通过实施在客户端装置111、121和131上的适合应用逻辑,如网页浏览器。例如,服务器140可传送由客户端装置111、121和131上的应用逻辑所处理的、并显示给用户的文件(如,网页)。该文件可包括用户选项用来登录到由服务器140所提供的一个或多个安全服务,如网络服务141和网络服务142。例如,通过提供如用户名称(如,电子邮箱地址)和密码的凭证,用户可登录到网络服务141和142以访问用在客户端装置110、120和130上的数字内容。
不信任客户端装置170可能类似于如上所述的客户端装置110、120和130。然而,不信任客户端装置170可能属于不支持在服务器140上可获得的认证机制的装置类型。信任伙伴服务器180可能类似于如上所述的服务器140。信任伙伴服务器180可提供到可能类似于网络服务141和142的网络服务181的访问。不信任客户端装置170可与信任伙伴服务器180通信以访问网络服务141和142。例如,不信任客户端装置170可使用信任伙伴服务器180进行认证,且信任伙伴服务器180可提供给不信任客户端装置170安全标志。不信任客户端装置170随后可使用该安全标志去访问网络服务141。服务器140可从客户端110-130,不信任客户端装置170和传统装置190接收请求以访问网络服务141和142。服务器140随后可选择适当的认证模块以认证每一个请求。该选择的认证模块可以基于发出该请求的装置。以这种方式,服务器140可通过该选择的认证模块来提供装置类型特定的认证方案。图2示出了与公开的实施方案一致的服务器140的结构的实施例的框图。如上所讨论的一样,服务器140可包括装置兼容层143,用于将来自客户端装置110、120和130的通信转变成与网络服务141和142兼容的形式。服务器140也可包括装置认证层144,用于使用认证模块221-225来认证客户端装置110、120和130。服务器140也可包括认证滤波器2 和模块选择器227,其共同用于将来自客户端装置110,120和130的请求路由到认证模块221-225中适合的一个模块,如以下更具体讨论的一样。在该认证模块221-225之一认证了这些客户端请求之后,将这些请求传送到适合的服务,如网络服务141或网络服务142。可替换地,如果未认证这些请求,该适合的认证模块可能不将该请求路由到服务。网络服务141可以是“默认”或“标准”的网络服务,在认证后将大部分请求路由到他。网络服务器142可以是具有内建认证机制的传统网络服务,并可以是特定于如传统装置190的特殊传统装置类型。如下讨论的一样,当认证模块221-225认证来自客户端装置110、120和130的各个请求时,将认证后的请求传送直到适合的网络服务。尽管图2描述了组件的某些编号和安排,认证模块或其他组件的任意编号或安排可用于服务器140中。图3描述了与公开实施方案一致的认证模块221的结构的示范性方框图。认证模块221可实施由多个不同装置类型所支持的认证方案。例如,为了后续讨论的目的,客户端装置110和130属于两种不同装置类型。客户端装置110和130可以都实施SSL(安全套接层),允许在网络上安全通信的安全协议。认证模块221可在服务器140上实施SSL以安全地与认证客户端装置110和130通信。在一些实施方案中,认证模块221可实施TLS (传输层安全)协议,SSL的更新版本。为了实施SSL/TSL处理,认证模块221可存储服务器证书301。服务器证书301可用于将服务器140认证到一个或多个客户端装置,如以下更具体讨论的一样。认证模块221也可存储用于加密在特殊SSL/TSL会晤期间与一个或多个客户端装置进行的通信的会晤钥匙302。服务器140可使用加密器303以创建数字签名,服务器140可使用解密器304以验证数字签名,如以下更具体讨论的一样。这些SSL/TSL会晤可由客户端装置用来下载来自网络服务141的电子内容。图4描述了与公开实施方案一致的认证模块222的结构的示范性方框图。认证模块222可实施由与特定装置制造商相关的一个或多个装置类型所支持的专有认证方案。此外,客户端装置120可以是使用该专有认证方案的装置。认证模块222可在服务器140上实施该专有认证方案以安全地通信于并认证装置120。在一些实施方案中,认证模块222由与该专有认证方案相关的装置制造商所提供。认证模块222可存储同样存储在客户端装置120中的共享机密401。认证模块222也可包括签名验证器402,用来验证请求的签名以访问由客户端装置120所发送的网络服务。认证模块223,224和225可实施各种其他的认证方案。例如,认作模块223可以是简单地允许数据通过而不认证的“no-op”模块。与用来访问网络服务142—样,也可使用认证模块223同时用于研发目的。允许该请求通过认证模块223而不认证该请求不危机安全,因为网络服务器142具有内部的认证方案。认证模块2M可实施“会晤认证”方案,据此不信任客户端装置170能够访问网络服务141。为了这样做,不信任客户端装置170可与信任伙伴服务器180合作。信任伙伴服务器180使用认证模块221可访问网络服务141,并从服务器140获得安全标志。服务器140可存储用来创建该安全标志的安全密码钥匙。可替换地,信任伙伴服务器180也可存储该密码钥匙的拷贝。在这样的实施方案中,信任伙伴服务器180可创建该安全标志。在任一情况中,该安全标志可包括加密的数据,如不信任客户端装置170的标识。一旦信任伙伴服务器180已经创建了该安全标志或从服务器140获得了该安全标志,信任伙伴服务器180随后可将该安全标志提供给不信任客户端装置170。不信任客户端装置170可使用用于网络服务141的请求将该标志发送到服务器140,认证模块225可通过验证该标志来认证该请求。例如,认证模块225可通过使用该密码钥匙对该标志解密,和验证该不信任客户端装置170的标识以验证该安全标志。在一些实施方案中,由服务器140或信任伙伴服务器180使用来自不对称钥匙对的私用钥匙创建该安全标志。在这样的实施方案中,可使用相应的公用钥匙对该安全标志解密以确定该安全标识是否可信。认证模块225可实施存储了已注册IP地址列表的IP白名单认证方案。认证模块225仅仅可能允许来自已注册IP地址的请求通过直到网络服务141。为了这样做,认证模块225可确定与请求相关的IP地址,将该IP地址与允许的IP地址的白名单比较,并如果与该请求相关的IP地址在该白名单上时提供到网络服务141的访问。当集成新的装置类型以访问网络服务141时,认证模块225可能特别地有用。例如,可能最终计划将新的装置类型支持认证模块221的认证方案。然而,当研发和集成该新的装置类型以访问网络服务141时,在使用认证模块221之前可能较为有效的。通过使用该IP白名单以限制能够请求网络服务141的装置,能够更快速地处理装置的集成。在该装置集成过程期间,一旦已经测试完核心功能,可转变该新的装置类型以使用认证模块221。图5是与公开的实施方案一致的、提供到服务的访问的程序500的实施例的流程图。程序500可实施根据存储在存储器146中的一个或多个程序模块的步骤。在程序500开始处,在块501中,服务器140可存储用于认证与不信任客户端装置170 一样的客户端装置110、120和130的认证模块221-225。如上讨论的一样,客户端装置110、120和130可能属于使用不同认证方案的各种装置类型。在一些实施方案中,认证模块221-225可包括一个或多个类,每一个实施公共接口。如本领域技术人员理解的一样,接口可定义一方法集,其每一个类实施必须支持的接口。因而,认证模块221-225的每一个可包括支持由该接口所定义的认证方法的公共集的类。在块502中,服务器140可配置认证模块221-225以实施以上所讨论的特定认证方案。例如,管理员可与服务器140交互以配置应用模块221去实施由客户端装置110和130所支持的SSL协议。该管理员也可配置应用模块222去实施由客户端装置120所支持的专用协议。类似地,该管理员也可配置应用模块223、2M和225去实施以上讨论的no-op,白名单和会晤认证方案。从在服务器140上的外部应用软件的视角来看,如网络服务141和142,装置兼容层210,认证滤波器226,和模块选择器227,可使用由该公共接口所定义的方法的一个或多个调用该认证方案。因而,使用该接口可概括下面认证方案的细节,外部软件可调用使用该适合认证模块的公共方法。下一步,在块503中,服务器140可接收请求以访问网络服务141或网络服务142。如上讨论的一样,网络服务141可能是默认的网络服务,而网络服务142可能是通常由某些传统装置类型所访问的网络服务。如下进行更具体讨论的一样,服务器140可将这些请求路由到适合的认证模块以认证这些请求,在允许这些请求达到网络服务141和142之前。下一步,在块504中,认证滤波器2 可从该请求中提取装置类型标识以确定哪一种装置类型正请求网络服务141。在一些实施方案中,认证滤波器2 是为该装置类型标识搜索在该请求中的请求头部或参数列表的J2EE滤波器。在一些实施方案中,可使用其他机制确定该装置类型,如将装置序列号或MAC ID映射到存储相应装置类型的表。 在块S505中,装置认证滤波器2 可将该提取的装置类型标识提供给模块选择器227。模块选择器227可基于该提取的装置类型标识来确定该适合的认证器模块221-225以认证该请求。在一些实施方案中,模块选择器227是配置有装置类型标识表的java bean,将其每一个映射到认证模块221-225的特定一个。下一步,在决定块506中,该在块505处选择的认证模块可确定是否去认证该请求。如以下更具体讨论的一样,认证模块221-225每一个可实施不同认证方案以认证这些请求。然而,不考虑在决定块506处哪一个认证模块认证该请求,能够将另外的安全技术应用于由该选择认证模块所实施的那些之外。例如,可通过提供用户名称和密码来认证这些客户端装置的用户,作为由该选择认证模块所需要的认证的补充。而且,在一些实施方案中,多个认证模块可共同地认证某些请求。如图5所示,如果该选择的认证模块认证该请求,程序500进行到块507。在块507中,服务器140提供到该请求的服务的访问,如网络服务141/142。因而,该请求装置能够访问为网络服务141/142可获得的电子内容。然而,如果该选择的认证模块未认证该请求,程序500进行到块508,服务器140阻止到该请求的网络服务141/142的访问。在一些实施方案中,可允许该请求装置无限数量的认证尝试。在其他实施方案中,在某些数量尝试之后可能阻止来自请求装置的后续请求。如上所讨论的一样,程序500的块505中,服务器140可选择认证模块以认证从装置接收地请求。基于发送该请求的装置的装置类型,在块505中选择不同的认证模块。例如,可选择认证模块221-225中的任意一个。该后续讨论提供了去选择认证模块221-225之一的处理的概述。认证模块221可用来认证客户端装置110和客户端装置130 二者。客户端装置110和130可能属于都映射到认证模块221的不同装置类型。当客户端装置110或客户端装置130发送用于网络服务141的请求时,模块选择器227选择认证模块221。认证模块221随后可认证该使用SSL的请求,如以下参照图6更具体所示的一样。尽管客户端装置110和130可能是使用不同装置类型标识的不同类型的装置,将两个装置类型都映射到认证模块221。可使用认证模块222以认证装置类型,如客户端装置120。相应地,基于用于客户端装置120的提取的装置类型标识,模块选择器227可选择认证模块222。如上所讨论的一样,认证模块222实施专用认证方案,其由如客户端装置120的某些装置类型的制造商支持。认证模块222可认证使用该专用认证方案的请求,如以下参照图7更具体讨论的一样。认证模块223可用来认证传统装置类型,如传统装置190。如讨论的一样,传统装置190使用网络服务142,具有内建认证方案的传统网络服务。基于来自传统装置190的请求所提取的装置类型标识,模块选择器227可选择认证模块223。如讨论的一样,认证模块223可实施no-op认证方案,因为阻止请求去直接通过认证模块223到网络服务142。然而,可保持安全,因为网络服务142实施了用来认证该请求的内建传统认证机制。在一些实施方案中,可在来自请求的明确URL处访问用于网络服务142的请求以访问网络服务141。认证模块2 可用来认证装置,如不信任客户端装置170。不信任客户端装置170可使用为模块选择器227不识别的装置类型标识。当装置类型标识不是来自信任的装置时,模块选择器227可选择认证模块224以认证通过信任伙伴服务器180的请求。为了这样做,不信任客户端装置170可包括具有该请求的信任伙伴服务器180的标识。认证模块224可创建安全标志,并将该安全标志传送到信任伙伴服务器180。可替换地,信任伙伴服务器180可创建该安全标志。该安全标志可通过对数据加密来创建,如不信任客户端装置170的标识,使用密码钥匙。不信任客户端装置170可采取步骤以使用信任伙伴服务器180来认证,而不是直接使用服务器140来认证。例如,不信任客户端装置170可使用采用用户名称和密码的信任伙伴服务器180来认证。一旦信任伙伴服务器180已经认证了该请求,信任伙伴服务器180可将该安全标志传送到不信任客户端装置170。不信任客户端装置170可访问网络服务141,通过将该安全标志包括在与服务器140的后续通信中。例如,认证模块2M可通过使用该密码钥匙对该安全标志解密的方式来认证该安全标志。在一些实施方案中,该安全标志可能在预设时期之后过期。服务器140可能不允许使用过期的标志来访问该网络服务141。认证模块225可实施IP白名单认证方案。由于可轻易地实施本技术而不需客户端装置的任意相应支持或修改,实际上可将认证模块225用在对网络服务141或142的任意请求上。例如,认证模块225可用来认证来自客户端装置110和130的任意请求。在这样的实施方案中,认证模块225可检查发送该请求的装置的IP地址。如果该IP地址在该白名单上,认证模块225随后能够将该请求提供给认证模块221用于后续处理。认证模块225随后可以相同方式与认证模块222、223和2 联合使用。进一步地,如上所讨论的一样,在一些实施方案中,认证模块225可用于请求的单机认证。例如,可将认证模块225用在装置集成阶段期间,当测试网络服务141用来支持新的装置类型时。在一些实施方案中,认证模块221-225的一个或多个可提供对网络服务141的有限访问,即使未认证该请求装置。例如,网络服务141可提供多种方法,其中一些可用来访问电子内容,其他可用来浏览网络服务141的各个特征。在这样的实施方案中,认证模块 221-225的一个或多个可提供到网络服务141的访问,当该请求装置正访问用来浏览网络服务141的方法时,但是在允许该请求装置访问用来下载电子内容的方法之前可能需要认证。SSL/TSL 认证如上讨论的一样,认证模块221可使用SSL或TSL用来实施用于网络服务141的请求的认证。图6描述了认证模块221使用以实施程序500的块506的示范性程序600。 该随后的讨论假定客户端装置110正请求到网络服务141的访问。然而,如已经讨论的一样,客户端装置110和130可能都支持SSL/TSL认证。如以下讨论的一样,客户端装置110 和服务器140都可以实施步骤以使用程序600相互认证。在块601处,认证模块221可从客户端装置110接收用于网络服务141的请求。如讨论的一样,该请求可能将去访问任意类型的安全数据,如从网络服务141可获得的电子内容。进一步地,如讨论的一样,可将该请求传送到来自模块选择器227的认证模块221。下一步,在块602中,在服务器140上的认证模块221可发送已存储的服务器证书 301给客户端装置110。服务器证书301可包括用于服务器140的标识,认证授权机构150 的标识,和对于服务器140唯一的公用加密钥匙。服务器证书301也可包括由认证授权机构150所生成的数字签名。在客户端装置110接收了服务器证书301之后,在块603中,客户端装置110使用服务器证书301来认证服务器140。例如,客户端装置110可首先验证该数字签名以确定服务器证书301由认证授权机构150所创建。随后,客户端装置110可从服务器证书301提取该公用加密钥匙,并使用该公用加密钥匙以认证来自服务器140的通信。下一步,在块604 中,客户端装置110可发送客户端证书给服务器140。该客户端证书可包括客户端装置110 的标识,认证授权机构150的标识,对于客户端装置110唯一的公用钥匙。该客户端证书也可包括由认证授权机构150使用加密器151所生成的数字签名。例如,在程序600之前,认证授权机构150可能已经生成了该客户端证书,传送该证书给客户端装置110,并将该客户端证书存储在客户端装置110上。下一步,在块605中,服务器140使用该客户端证书认证客户端装置110。例如,服务器140可首先验证在该客户端证书上的数字签名以确定该服务器证书301由认证授权机构150所创建。随后,服务器140可从该客户端证书提取该公用加密钥匙,并使用该公用加密钥匙以使用解密器304验证来自客户端装置110的通信。下一步,程序600进行到块608。在块608中,客户端装置110和服务器140可互助地建立用来加密他们之间通信的私用钥匙。在图3中将该私用钥匙示为会晤钥匙302。 在块609中,客户端装置110可使用由会晤钥匙302所加密的通信以访问网络服务141。在一些实施方案中,会晤钥匙302是不对称加密钥匙,其允许由服务器140和客户端装置110 进行更有效的加密处理。在一些实施方案中,客户端装置110可在块603处认证来自服务器140的通信,通过验证服务器140附属于这些通信上的数字签名。在这样的实施方案中,服务器140可使用加密器303生成这些数字签名,采用由认证授权机构150在程序600之前提供给服务器140的唯一私用加密钥匙。该唯一私用钥匙可能是来自也包括指定给服务器140的唯一公用钥匙的不对称钥匙对的一个钥匙。类似地,在一些实施方案中,服务器140可在块605处认证来自客户端装置110的通信,通过验证客户端装置110附属于这些通信上的数字签名。在这样的实施方案中,客户端装置Iio可生成该这些数字签名,使用由认证授权机构150在程序600之前提供给客户端装置110的唯一私用加密钥匙。该唯一私用钥匙可能是来自也包括指定给客户端装置 110的唯一公用钥匙的不对称钥匙对的一个钥匙。在又一其他实施方案中,认证模块221可能不实施程序600的所有块。例如,可能在服务器140上提供独立的负载平衡模块(未图示)。该负载平衡模块可能响应于在多个服务器上的工作量分布,并也可能实施SSL/TSL处理。在这样的实施方案中,该负载平衡模块实施程序600,并提供结果给认证模块221,指示是否在块605处确定该客户端证书有效。 如果这样,认证模块221允许到网络服务141的访问。否则,认证模块221阻止到网络服务的访问。私用认证如上讨论的一样,客户端装置120可能支持私用认证方案,且认证模块22可能在服务器140上实施该私用认证方案。图7是用于实施这样认证方案的程序700的实施例的流程图。程序700可根据存储在存储器146中的一个或多个程序模块来实施步骤。在块701处,可将该共享机密存入客户端装置120。在一些实施方案中,共享机密 401是对称加密钥匙。可替换地,不对称钥匙对可用于共享机密401。在共享机密401是不对称钥匙对的实施方案中,客户端装置120可存储来自该对的钥匙之一,认证模块222可存储来自该对的另一钥匙。在块702中,将共享机密401存入认证模块222,图4中示为共享机密401。这可能需要在客户端装置120制造商和网络服务141的操作者之间的一些协同。例如,该制造商可能将该共享机密嵌入在客户端装置120内的防篡改存储器中,并通过安全信道将共享机密401提供给网络服务141的操作者。在块703中,客户端装置120可准备用于网络服务141的请求。该请求可以是识别被请求自网络服务141的特定电子内容的未加密数据块。该请求也可包括识别客户端装置120于认证模块222的信息。下一步,在块704中,客户端装置120可使用共享机密401标记用于网络服务121 的请求。例如,客户端装置120可计算hash作为该请求加上共享机密401的函数。客户端装置120可将该hash附加到该请求上作为签名。在一些实施方案中,客户端装置120也可加密该标记的请求。在块705中,客户端装置120可发送该标记的请求给服务器140。下一步,在块706中,认证模块222可使用签名验证器402来验证在该请求上的签名。例如, 签名验证器402可计算该请求加上该共享机密的hash函数,并将该hash值于该附加的签名比较。如果这些值匹配,认证模块222认为该请求完好,如,没有任何攻击者已经操纵了该请求。在块707中,如果验证了在该请求上的签名,允许客户端装置120去访问网络服务 141。否则,在块708中,阻止到网络服务141的访问。如本领域一个普通技术人员应当理解的一样,在某些实施方案中的实施方式中块 501-508,601-609和701-708的一个或多个可以是可选的并可以被省略。而起,在一些实施方式中,可记录块501-508,601-607和701-708,包括替代步骤,和/或包括附加步骤。标志的附加用途如讨论的一样,认证模块2M可使用安全标志用来使用不信任客户端装置170认证通信。在该讨论的实施方式中,信任伙伴服务器180可使用不信任客户端装置170来实施认证处理,信任伙伴服务器180可将安全标志传送给不信任客户端装置170。然而,安全标志实施方案不限于用于任意特定认证模块。相反,除了认证模块221-225任意一个之外, 能够实施安全标志。在一些实施方案中,安全标志可基于对称加密钥匙。在服务器140和特定客户端装置之间可以一些安全方式来共享该对称钥匙。在一些实施方案中,可使用基于该对称钥匙的标志来预先装于客户端装置上。例如,在将客户端装置110分配给用户之前,可使用该对称钥匙计算该MAC ID,序列号,或该二者组合的hash函数作为对该hash函数的输入。在一些实施方案中,在用户接收客户端装置110时(如,当用户从如网上商店的零售商购买该装置时),可连同该相应标志一起生成该对称钥匙。在其他实施方案中,可由服务器140使用该不对称钥匙创建该标志。在将该安全标志提供给客户端装置110之前,来自该对的私用钥匙可用来加密该安全标志。—旦客户端装置110装有该安全标志,该安全标志可用于进一步安全来使用。例如,如果结合认证模块221使用该安全标志,该用户可能不需要使用用户名称和密码进行认证,一旦在服务器140和客户端装置110之间建立了该SSL/TSL会晤。相反,客户端装置 110可将该安全标志传送给服务器140。服务器140可使用该对称钥匙解密该标志,或,如果使用不对称加密,该公用钥匙来自该钥匙对。该实施方式解决该用户在每次他们想要访问网络服务141时必须提交他们的用户名称和密码时的一些不便,因为该标志可用作该用户名称和密码的替代。已经展现了前述说明用于描述目的。其不是穷尽的并不是对公开的精确形式或实施方案的限定。从该公开的实施方案的说明和实践考虑,修改和调整对于本领域技术人员来说是显然的。例如,该已述实施方式包括软件,但可将与该公开实施方案一致的系统和方法实施作为硬件和软件的组合或仅仅作为硬件。硬件的实施例包括计算或处理系统,包括个人计算机,服务器,掌上电脑,主计算机,微处理器等。另外,尽管将该公开的实施方案的各个方面描述为存储在存储器中,本领域技术人员应清楚,也能够将这些方面存储到其他类型的计算机可读媒体上,如次级存储装置,例如,硬盘,软盘,或CD-ROM,或RAM或ROM的其他形式,USB媒体,DVD,或其他光学驱动媒体。基于该已述说明和已公开方法的计算机程序在有经验的研发者的技能范围内。该各个程序或程序模块能够被使用为本领域技术人员所已知的任意技术所创建或可被结合现有软件所涉及。例如,能使用或通过.Net框架,.Net紧密框架(和相关语言,如Visual Basic, C 等),Java, C++, HTML, HTML/AJAX 组合,XML 或包括 Java applet 的 HTML 设计程序部分或程序模块。可将这样的软件部分或模块的一个或多个集成于计算机系统或现有电子邮件或浏览器软件中。条款1. 一种提供到服务的访问的计算机实施的方法,包括将认证模块存储到请求到该服务的访问的认证装置,该装置至少包括具有第一装置类型的第一多个装置和具有第二装置类型的第二多个装置;
配置该认证模块的第一个以使用特定于该第一装置类型的认证方案来实施该第一多个装置的认证;配置该认证模块的第二个以使用特定于该第二装置类型的认证方案来实施该第二多个装置的认证;由服务器接收访问该服务的请求,该请求包括请求该服务的装置的装置类型标识;从该请求提取该装置类型标识; 确定该装置类型标识是否对应该第一装置类型或该第二装置类型;如果该装置类型标识对应该第一装置类型,选择该第一认证模块,如果该装置类型标识对应该第二装置类型,选择该第二认证模块;使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务,据此使用特定于该请求装置的认证方案来实施该请求装置的认证;以及当该选择的认证模块确定授权该请求装置去访问该服务时,提供到该服务的访问,当该选择的认证模块确定不授权该请求装置去访问该服务时,阻止到该服务的访问。条款2.根据条款1所述的计算机实施的方法,进一步包括配置该认证模块的第三个以自动认证对应于第三装置类型的请求;以及将对应于该第三装置类型的请求推送到具有内建认证方案的替换装置用来认证该第三装置类型。条款3.根据条款1所述的计算机实施的方法,进一步包括配置该认证模块的第三个以认证选择的请求通过确定与该选择的请求相关的IP地址;将该IP地址与可允许的IP地址列表相比较;以及提供到该服务的访问,如果与该选择的请求相关的IP地址包括在可允许的IP地址列表中。条款4.根据条款1所述的计算机实施的方法,其中该第一认证模块使用安全套接层(SSL)以确定是否授权该请求装置去访问该服务。条款5. —种提供到服务的访问的计算机实施的方法,包括接收访问服务的请求,该请求包括请求访问该服务的装置的装置类型标识;从该请求提取该装置类型标识;为该请求装置确定相应装置类型;基于该装置类型标识从多个认证模块选择认证模块,该选择的认证模块实施用于该请求装置的装置类型的认证方案;使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务;以及至少基于授权该请求装置去访问该服务的决定来提供到该服务的访问。条款6.根据条款5所述的计算机实施的方法,其中该选择的认证模块将机密数据与该请求装置共享以确定是否授权该请求装置去访问该服务。条款7.根据条款5所述的计算机实施的方法,其中该选择的认证模块提供到多个方法的访问,这些方法的子集为未认证装置可访问。
条款8.根据条款5所述的计算机实施的方法,其中具有多个装置类型的多个装置通过该选择的认证模块来访问该服务。条款9.根据条款5所述的计算机实施的方法,其中使用共用URL来访问这些认证模块的至少两个。条款10.根据条款5所述的计算机实施的方法,其中信任伙伴服务器将标志提供给该请求装置,该方法进一步包括从该请求装置接收该标志的拷贝;以及基于该标志的拷贝是可信的确定来提供到该服务的访问。条款11.根据条款10所述的计算机实施的方法,其中使用对应于来自私用/公用钥匙对的公用钥匙的私用钥匙对该标志加密,该方法进一步包括使用该对应的公用钥匙对该标志解密以确定该标识是否可信。条款12.根据条款10所述的计算机实施的方法,其中在该信任伙伴服务器验证了从该请求装置接收到的用户名称和密码组合之后,由该信任伙伴服务器将该标志提供给该请求装置。条款13.根据条款5所述的计算机实施的方法,进一步包括在从该请求装置接收到该请求之前,将标志预先存储到该请求装置中;以及通过验证该请求伴随有该预先存储的标志来使用该选择的认证模块认证该请求。条款14.根据条款5所述的计算机实施的方法,其中该选择的认证模块使用安全套接层(SSL)以确定是否授权该请求装置去访问该服务。条款15. —种提供到服务的访问的服务器,该服务器包括执行程序指令的处理器;和存储该程序指令的计算机可读介质,该程序指令在由该处理器执行时,实施步骤以接收用来访问服务的请求,该请求包括请求访问该服务的装置的装置类型标识;从该请求提取该装置类型标识;为该请求装置确定相应的装置类型;基于该装置类型标识从多个认证模块选择认证模块,该选择的认证模块为该请求装置的装置类型实施认证方案;使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务;以及至少基于授权该请求装置访问该服务的决定来提供到该服务的访问。条款16.根据条款15所述的服务器,其中该选择的认证模块使用安全套接层 (SSL)以确定是否授权该请求装置去访问该服务。条款17.根据条款15所述的服务器,其中该选择的认证模块将机密数据与该请求装置共享以确定是否授权该请求装置去访问该服务。条款18. —种存储用来实施由处理器执行的方法的程序指令的计算机可读介质, 该方法提供到服务的访问并包括该处理器所实施的步骤接收用来访问服务的请求,该请求包括请求访问该服务的装置的装置类型标识;0127]从该请求提取该装置类型标识;
为该请求装置确定相应的装置类型;基于该装置类型标识从多个认证模块选择认证模块,该选择的认证模块为该请求装置的装置类型实施认证方案;使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务;以及至少基于授权该请求装置访问该服务的决定来提供到该服务的访问条款19.根据条款18所述的计算机可读介质,其中该选择的认证模块使用安全套接层(SSL)以确定是否授权该请求装置去访问该服务。条款20.根据条款18所述的计算机可读介质,其中该选择的认证模块将机密数据与该请求装置共享以确定是否授权该请求装置去访问该服务。此外,当此处已经描述了说明性的实施方案时,本领域技术人员基于本发明将理解到,具有等同元件,修改,省略,组合(如,各个实施方案上的各个方面的),调整和/或改变的任意和所有实施方案的范围。该权利要求的限定应基于该权利要求中使用的语言进行广泛解释而不是对本说明书或该应用进行期间所述的应被分析为非排他的实施例的限定。 进一步地,可以任意方式修改本公开程序的各个块,包括对块重新排序和/或插入或删除块。因此,计划的是,将该说明书和实施例认作为仅仅示范性的,具有由所附权利要求和他们的等同体的整个范围所指示的真正范围和精神。
权利要求
1.一种提供到服务的访问的计算机实施的方法,包括将认证模块存储到请求到该服务的访问的认证装置,该装置至少包括具有第一装置类型的第一多个装置和具有第二装置类型的第二多个装置;配置该认证模块的第一个以使用特定于该第一装置类型的认证方案来实施该第一多个装置的认证;配置该认证模块的第二个以使用特定于该第二装置类型的认证方案来实施该第二多个装置的认证;由服务器接收访问该服务的请求,该请求包括请求该服务的装置的装置类型标识;从该请求提取该装置类型标识;确定该装置类型标识是否对应该第一装置类型或该第二装置类型;如果该装置类型标识对应该第一装置类型,选择该第一认证模块,如果该装置类型标识对应该第二装置类型,选择该第二认证模块;使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务,据此使用特定于该请求装置的认证方案来实施该请求装置的认证;以及当该选择的认证模块确定授权该请求装置去访问该服务时,提供到该服务的访问,当该选择的认证模块确定不授权该请求装置去访问该服务时,阻止到该服务的访问。
2.如权利要求1所述的计算机实施的方法,进一步包括配置该认证模块的第三个以自动认证对应于第三装置类型的请求;以及将对应于该第三装置类型的请求推送到具有内建认证方案的替换装置用来认证该第三装置类型。
3.一种提供到服务的访问的计算机实施的方法,包括接收访问服务的请求,该请求包括请求访问该服务的装置的装置类型标识;从该请求提取该装置类型标识;为该请求装置确定相应装置类型;基于该装置类型标识从多个认证模块选择认证模块,该选择的认证模块实施用于该请求装置的装置类型的认证方案;使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务;以及至少基于授权该请求装置去访问该服务的决定来提供到该服务的访问。
4.如权利要求3所述的计算机实施的方法,其中该选择的认证模块将机密数据与该请求装置共享以确定是否授权该请求装置去访问该服务。
5.如权利要求3所述的计算机实施的方法,其中该选择的认证模块提供到多个方法的访问,这些方法的子集为未认证装置可访问。
6.如权利要求3所述的计算机实施的方法,其中具有多个装置类型的多个装置通过该选择的认证模块来访问该服务。
7.如权利要求3所述的计算机实施的方法,其中使用共用URL来访问这些认证模块的至少两个。
8.如权利要求3所述的计算机实施的方法,其中信任伙伴服务器将标志提供给该请求装置,该方法进一步包括从该请求装置接收该标志的拷贝;以及基于该标志的拷贝是可信的确定来提供到该服务的访问。
9.如权利要求8所述的计算机实施的方法,其中使用对应于来自私用/公用钥匙对的公用钥匙的私用钥匙对该标志加密,该方法进一步包括使用该对应的公用钥匙对该标志解密以确定该标识是否可信。
10.如权利要求8所述的计算机实施的方法,其中在该信任伙伴服务器验证了从该请求装置接收到的用户名称和密码组合之后,由该信任伙伴服务器将该标志提供给该请求装置。
11.如权利要求3所述的计算机实施的方法,进一步包括在从该请求装置接收到该请求之前,将标志预先存储到该请求装置中;以及通过验证该请求伴随有该预先存储的标志来使用该选择的认证模块认证该请求。
12.一种提供到服务的访问的服务器,该服务器包括执行程序指令的处理器;和存储该程序指令的计算机可读介质,该程序指令在由该处理器执行时,实施步骤以接收用来访问服务的请求,该请求包括请求访问该服务的装置的装置类型标识;从该请求提取该装置类型标识;为该请求装置确定相应的装置类型;基于该装置类型标识从多个认证模块选择认证模块,该选择的认证模块为该请求装置的装置类型实施认证方案;使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务;以及至少基于授权该请求装置访问该服务的决定来提供到该服务的访问。
13.如权利要求12所述的服务器,其中该选择的认证模块将机密数据与该请求装置共享以确定是否授权该请求装置去访问该服务。
14.一种存储用来实施由处理器执行的方法的程序指令的计算机可读介质,该方法提供到服务的访问并包括该处理器所实施的步骤接收用来访问服务的请求,该请求包括请求访问该服务的装置的装置类型标识;从该请求提取该装置类型标识;为该请求装置确定相应的装置类型;基于该装置类型标识从多个认证模块选择认证模块,该选择的认证模块为该请求装置的装置类型实施认证方案;使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务;以及至少基于授权该请求装置访问该服务的决定来提供到该服务的访问
15.如权利要求14所述的计算机可读介质,其中该选择的认证模块将机密数据与该请求装置共享以确定是否授权该请求装置去访问该服务。
全文摘要
为请求装置提供到服务的访问的系统,方法和计算机可读媒体,在一实施方案中,服务器接收访问服务的请求,该请求包括请求访问该服务的装置的装置类型标识。该服务器从该请求提取该装置类型标识并为该请求装置确定相应的装置类型。基于该装置类型标识从多个认证模块选择认证模块,该选择的认证模块实施用于该请求装置的装置类型的认证方案。该服务器使用该选择的认证模块认证该请求以确定是否允许该请求装置去访问该服务,并至少基于授权该请求装置访问该服务的决定来提供到该服务的访问。
文档编号G06F15/16GK102597981SQ201080044946
公开日2012年7月18日 申请日期2010年9月29日 优先权日2009年9月30日
发明者J·C·黑格, K·T·泰尔瑞贾, S·斯里拉姆 申请人:亚马逊技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1