机密认证和供应的制作方法

文档序号:13943286阅读:214来源:国知局

相关申请的交叉引用

本申请要求2015年6月30日提交的标题为“机密令牌供应(confidentialtokenprovisioning)”的美国临时申请no.62/187,125的优先权,该临时申请的整个内容据此出于所有目的以引用方式并入。本申请类似于2015年1月13日提交的标题为“用于保护经认证传输中的身份的有效方法(efficientmethodsforprotectingidentityinauthenticatedtransmissions)”的美国申请no.14/595,792以及2015年6月18日提交的标题为“用于经认证通信的有效方法(efficientmethodsforauthenticatedcommunication)”的美国申请no.14/743,874,该申请的整个内容据此出于所有目的以引用方式并入。



背景技术:

随着诸如移动电话的用户装置的普及性持续增长,确保向用户装置安全地供应数据仍然是一个问题。例如,为了将数据供应到用户装置上,可能有必要在传输供应数据之前认证用户。然而,攻击者可能试图窃听注册、认证和供应过程(例如,通过进行中间人攻击)。因此,攻击者可能试图拦截可用于推断用户、用户装置或服务器计算机的身份的数据,诸如公钥。攻击者也可能试图拦截认证数据,诸如密码或对质询的响应。被拦截的数据可以用于追踪用户装置,或者它可能被用于非法目的。

进一步使问题复杂化的是用户装置的现有状态。在一些情况下,用户装置可能先前不存储用于供应服务器的数字证书,换句话说,用户装置可能不会事先信任供应服务器。在这类情形下进行安全的认证供应可能带来挑战。

本发明的实施方案分别以及一起解决了这些和其他问题。



技术实现要素:

本发明的一些实施方案涉及用于安全地认证用户装置的系统和方法。用户装置可以由认证服务器进行认证。用户装置先前已经向认证服务器注册了用户装置的用户装置认证公钥。为了认证用户装置,认证服务器可以向用户装置发送认证质询。认证服务器可以在向用户装置发送认证质询之前对其进行加密。用户装置可以对认证质询进行解密以获得认证质询。

在一些实施方案中,用户装置可以使用与用户装置认证公钥对应的用户装置认证私钥来对认证质询进行签名。用户装置可以使用与用户装置认证公钥对应的用户装置认证私钥和认证服务器的认证服务器公钥来生成第一共享秘密。用户装置可以使用第一共享秘密对包括质询的认证响应进行加密以获得加密的认证响应。

在一些实施方案中,加密的认证响应可以包括已签名的质询。用户装置可以向认证服务器发送加密的认证响应。认证服务器可以从用户装置接收加密的认证响应,并且使用与认证服务器公钥对应的认证服务器私钥和用户装置认证公钥来生成第一共享秘密。认证服务器可以使用第一共享秘密对加密的认证响应进行解密以获得包括质询的认证响应。认证服务器可以基于解密的认证响应来认证用户装置。在一些实施方案中,认证服务器可以使用用户装置认证公钥来验证已签名的质询。

其他实施方案涉及与本文中描述的方法关联的系统、便携式消费者装置和计算机可读介质。

参照以下详细描述和附图,可以获得对本发明的实施方案的本质和优点的更好理解。

附图说明

图1示出根据一些实施方案的向认证服务器注册和认证用户装置的消息流程图。

图2示出根据一些实施方案的用于将数据从供应服务器机密地供应给用户装置的消息流程图。

图3示出根据一些实施方案的用于认证用户装置和将数据供应给用户装置的消息流程图。

图4示出根据一些实施方案的包括认证响应和机密且安全的供应数据的消息流程图。

图5示出根据一些实施方案的包括可能不存储供应服务器证书的用户装置的认证的消息流。

图6示出根据一些实施方案的用于使用已注册的用户装置认证公钥来将数据安全地供应给用户装置的消息流程图。

图7示出根据一些实施方案的用于使用已注册的用户装置认证公钥来安全认证用户装置的消息流程图。

术语

在讨论本发明的一些实施方案之前,对一些术语的描述可能有助于理解实施方案。

术语“服务器计算机”可以包括计算机或计算装置的集群。例如,服务器计算机可以是大型主机、小型计算机集群或像单元一样工作的一组服务器。在一个实例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可以耦合到数据库并且可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其他逻辑、或前述内容的组合。服务器计算机可以包括一个或多个计算设备并且可以使用各种计算结构、排列和编译中的任何一种来服务于来自一个或多个客户端计算机的请求。

术语“公/私钥对”可以包括由实体(例如,计算机或电子装置)生成的一对关联加密密钥。公钥可以用于公共功能,诸如加密要发送给实体的消息,或用于对应该由实体做出的数字签名进行验证。另一方面,私钥可以用于私用功能,诸如对接收到的消息解密或应用数字签名。公钥通常会由被称为证书机构(ca)的主体进行授权,证书机构将公钥存储在数据库中并将其分配给请求它的任何其他实体。私钥一般会被保持在安全存储介质中并且通常只有实体知道。然而,本文中描述的密码系统可以以用于恢复丢失的密钥并避免数据丢失的密钥恢复机制为特征。公钥和私钥可以是任何适当格式,包括基于rsa或椭圆曲线密码学(ecc)的格式。

“数字签名”可以指基于公/私钥对应用算法的结果,这种算法允许签名方显示,并且允许验证方验证文件的真实性和完整性。签名方借助于私钥起作用,验证方借助于公钥起作用。这个过程证明发送者的真实性、已签名文档的完整性和所称的不可否认性原则,所述原则不允许否认已经签名的内容。证书或包括签名方的数字签名的其他数据被称为是由签名方“签名的”。

“证书”或“数字证书”可以包括使用数字签名将公钥与关联身份的数据绑定的电子文件或数据文件。证书可以包括一个或多个数据字段,例如身份的合法名称、证书的序列号、证书的起始有效期和终止有效期、证书相关许可等。证书可以包含指示证书有效的第一个日期的“起始有效”日期,以及指示证书有效的最后日期的“终止有效”日期。证书还可以包含证书中包括数据字段的数据的散列。除非另外说明,每个证书都由证书机构签名。

“证书机构”(ca)可以包括可操作耦连以向实体发行证书的一个或多个服务器计算机。ca可以使用ca证书证明其身份,ca证书包括ca的公钥。可以用另一个ca的私钥或者可以用同一个ca的私钥对ca证书签名。后者被称为自签名证书。ca可以维护由ca发行的所有证书的数据库,并且还可以维护被撤销的证书的列表。

在一个典型过程中,证书机构从其身份已知的实体接收未签名的证书。未签名的证书包括公钥、一个或多个数据字段、以及证书中的数据的散列。ca用与ca证书上所包括的公钥相对应的私钥对证书进行签名。ca然后可以将签名的证书存储在数据库中,并将签名的证书发行给实体。

“密码随机数”可以包括任何数字、字符串、位序列、或旨在关联单个通信会话使用的其他数据值。在一些情况下,密码随机数可以是随机或伪随机生成的。通常,密码随机数具有足够的长度以使多次独立生成同一随机数值的可能性并不显著。

“盲化的密钥(blindedkey)”,诸如“盲化的公钥”可以包括通过与另一数据元素(如密码随机数)结合而被模糊化或以其他方式修改了其原始值的密钥。例如,在椭圆曲线密码学中,公钥可以乘以随机数从而生成“盲化的公钥”。类似地,私钥可以乘以随机数从而生成“盲化的私钥”。随机数可以与公钥和私钥具有相同的位长度。

“临时密钥对”可以包括为单次交易或其他通信会话使用而生成的公钥(即“临时公钥”)和私钥(即“临时私钥”)。临时密钥对可以是任何适当格式,诸如ecc或rsa。通常,一旦交易或通信会话已经结束,就可以删除临时密钥对。

“静态密钥对”可以包括在一段时间内被维护的公钥(即“静态公钥”)和私钥(即“静态私钥”)。通常但不一定,静态私钥可以被安全地存储在诸如硬件安全模块(hsm)或安全元件(se)中。通常但不一定,静态公钥可以通过使用数字证书绑定到身份。静态密钥对可以是任何适当格式,诸如ecc或rsa。

“共享秘密”可以包括只对安全通信中的被授权方已知的任何数据值或其他信息。共享秘密可以以任何适当方式由任何适当数据生成。例如,可以使用基于diffie-hellman的算法(诸如椭圆曲线diffie-hellman(ecdh)),以由私钥和公钥生成共享秘密。例如,第一计算机可以生成包括第一公钥和第一私钥的第一密钥对。第二计算机可以生成包括第二公钥和第二私钥的第二密钥对。第一计算机可以使用第二计算机的第二公钥和第一计算机的第一私钥来生成共享秘密。第二计算机可以使用第一计算机的第一公钥和第二计算机的第二私钥来生成相同的共享秘密。第一计算机和第二计算机都可以使用共享秘密来生成会话密钥。

术语“识别数据”可以包括与用户或装置关联的任何数据或信息。识别数据的实例可以包括与装置关联的用户的姓名,与装置关联的组织,与装置关联的支付信息,诸如主账号(pan),装置的到期日期,与装置关联的证书,装置的imei或序列号,等等。

术语“认证”通常是指对用户或计算机的身份建立信任的过程。某些电子认证系统可能要求用户输入用于认证用户的认证信息(例如,密码、个人识别码(pin)或其他类似信息)。例如,用户可以通过将用户id和pin输入到他们的用户装置中来请求访问网站,该用户装置将用户id和pin传送给托管网站的服务器。服务器可以通过将从用户装置接收到的用户id和pin与对应于该用户id的存储的pin进行比较来认证用户。也可以通过使用公钥密码术和通过使用数字签名来确认装置的身份来执行认证。

术语“认证数据”或“认证信息”可以包括适于认证用户或装置的任何数据或信息。认证数据的实例可以包括密码或密码短语、秘密密钥(例如,私钥)、数字签名、装置正在存储某些信息的指示等。

术语“供应”通常是指用于请求和接收数据的过程。例如,用户装置(例如,计算机或移动装置)可以请求来自供应服务器的数据,以便存储在用户装置上。供应服务器可以基于特定标准或规则向用户装置发送数据。供应服务器可以基于标识用户装置向用户装置发送数据。从供应服务器供应给用户装置的数据通常可以被称为“供应数据”。供应数据可以使用基于标识用户装置的公钥建立的信道来进行传送。

“识别因子”可以包括从识别数据和/或认证数据确定的任何数据或信息。通常但不一定,识别因子可以通过对识别数据和认证数据的组合求散列来生成。

“加密密钥”可以包括适合于用密码加密数据的任何数据值或其他信息。“解密密钥”可以包括适用于对已加密的数据进行解密的任何数据值或其他信息。在一些情况下,用于加密数据的同一密钥可以可操作以解密数据。这种密钥可以被称作对称加密密钥。

“会话密钥”可以包括用来加密或解密待被安全传送的数据的任何密钥。在一些情况下,会话密钥可以从发送实体和接收实体都知道的共享秘密生成。例如,会话密钥可以使用密钥导出函数和共享秘密被导出。

具体实施方式

本发明的一些实施方案涉及认证系统和方法、供应系统和方法以及集成的认证和供应系统。

i.认证

用户装置(例如,计算机和移动电话)可以用于访问敏感数据和接收敏感数据。这样的敏感数据可能需要认证过程来确保未授权的用户不访问它。授权通常是指对用户身份建立信任的过程。某些电子认证系统可能要求用户输入用于认证用户的认证信息(例如,密码、个人识别码(pin)或其他类似信息)。例如,用户可以通过将用户id和pin输入到他们的用户装置中来请求访问网站,该用户装置将用户id和pin传送给托管网站的服务器。服务器可以通过将从用户装置接收到的用户id和pin与对应于该用户id的存储的pin进行比较来认证用户。这样,只有用户被认证,用户装置才可以访问数据。然而,这类认证系统要求将认证信息输入到用户装置并存储在服务器处。这类系统可能容易受到数据泄露的威胁,其中未授权方可以在用户装置或服务器上访问所存储的认证信息。

另外,这类系统可能容易受到窃听通信的威胁(例如,通过进行中间人攻击)。因此,攻击者可能试图拦截用于推断用户装置或服务器计算机的身份的识别数据、或由用户传输的认证数据,诸如密码或对质询的响应。如果确定的话,这个数据可能会被用于非法目的。进一步使问题复杂化的是用户装置的现有状态。在一些情况下,用户装置可能先前不存储用于供应服务器的数字证书,换句话说,用户装置可能不会事先信任供应服务器。在这类情形下进行安全的认证供应可能带来挑战。

某些认证系统可以在不通过网络将密码、pin或类似的认证信息传输给服务器的情况下执行认证,以便解决上面讨论的问题。例如,代替用户装置向在线服务器传输用户输入的认证信息(例如,密码、pin或生物数据),用户可以通过输入认证信息来与用户装置进行认证,并且用户装置可以使用公钥密码术与服务器进行认证。

图1示出根据一些实施方案的向认证服务器140注册和认证用户装置120的消息流程图100。用户装置120可以包括由用户180操作或与该用户相关联的计算装置。例如,用户装置120可以是移动装置、支付装置(例如,智能卡)、可穿戴装置、个人计算机等。认证服务器140可以是耦合到一个或多个数据库的服务器计算机或服务器计算机集群。例如,当用户装置120的用户180请求数据或试图访问由需要认证服务器140认证的网络服务器(未示出)维护的网站时,可以执行授权过程。为了与认证服务器140进行认证,用户装置120首先必须执行向认证服务器140的注册。

在执行注册时,在101处,认证服务器140可以向用户装置120发送注册请求(例如,通过网络)。注册请求可以包括指定用于认证用户180的认证标准的参数。注册请求也可以包括质询。注册请求可以通过网络服务器从认证服务器140传递到用户装置120。

响应于接收到注册请求,用户装置120可以提示用户180认证他们自己。用户装置120可以基于注册请求的认证标准来要求用户180进行认证。在102处,用户180可以将认证信息输入到用户装置120中。例如,用户180可以输入包括用户标识符、密码、通行码、pin、指纹扫描、视网膜扫描或其他生物识别数据中的至少一个的认证信息。响应于接收到由用户180输入的认证信息,用户装置120可以生成用户装置认证密钥对(“ud认证公钥和私钥对”)126。用户装置认证密钥对126包括用户装置认证公钥(“ud认证公钥”)128以及与用户装置认证公钥对应的用户装置认证私钥。用户装置认证密钥对126可以与用户180和用户180输入的认证信息唯一地标识。用户装置120可以存储用户装置认证密钥对126(例如,存储在存储器电路中)。

在注册之前,用户装置120可以(例如,在存储器电路中)存储用户装置证明密钥对(“ud证明公钥和私钥对”)122,其包括用户装置证明公钥以及与用户装置证明公钥对应的用户装置证明私钥。例如,用户装置证明密钥对122可以在制造用户装置120期间由原始设备制造商安装。用户装置120还可以存储用户装置证明证书(“ud证明证书”)124。用户装置证明证书124可以包括用户装置证明公钥。用户装置证明证书124的用户装置证明公钥可以用于验证使用用户装置证明私钥签名的数据。用户装置证明证书124可以由受信认证机构(“ca”)签名。用户装置证明证书124可以使用与用于对用户装置证明证书124进行签名的ca的ca私钥对应的ca的ca公钥来进行验证。例如,用户装置证明证书124可以在制造用户装置120期间由原始设备制造商安装。

用户装置120可以使用用户装置证明私钥对用户装置认证公钥128进行签名。也就是说,用户装置120可以生成包括签名的已签名的用户装置认证公钥。用户装置120可以生成包括已签名的用户装置认证公钥128和用户装置证明证书124的注册响应。注册响应还可以包括用户装置认证公钥128、用户装置证明证书124和签名。用户装置120可以通过在用户装置认证公钥128和注册请求的质询上签名来生成签名。在103处,用户装置120可以将注册响应发送给认证服务器140(例如,通过网络)。来自用户装置120的注册响应可以通过网络服务器(未示出)传递给认证服务器140。

在注册之前,认证服务器140可以存储ca公钥(例如,存储在存储器电路中)。认证服务器140可以使用ca公钥来验证用户装置证明证书。然后,认证服务器140可以使用用户装置证明证书124的用户装置证明公钥来验证用户装置认证公钥128,该用户装置认证公钥由用户装置120使用用户装置证明私钥进行签名。认证服务器140可以存储用户装置认证公钥128(例如,存储在存储器电路中)。因此,用户装置120已经向认证服务器140注册了用户装置认证公钥128,使得它可以用于用户装置120的认证。

在注册之后,用户装置120的用户180可以执行认证过程,以请求数据或访问上面关于注册所讨论的网站。在104处,认证服务器140可以向用户装置120发送认证请求(例如,通过网络)。认证请求可以通过网络服务器传递。认证请求可以包括认证质询。响应于接收到认证请求,用户装置120可以提示用户180认证他们自己。在105处,用户180可以将在注册期间使用的认证信息输入到用户装置120中。响应于接收到由用户180输入的认证信息,用户装置120可以通过匹配由用户180输入的认证信息来标识在注册期间生成的用户装置认证密钥对126。用户装置120可以使用与已经向认证服务器140注册的用户装置认证公钥128对应的用户装置认证私钥来对认证质询进行签名,以获得已签名的认证质询。已签名的认证质询包括可以使用用户装置认证公钥验证的认证质询的签名。

用户装置120可以生成包括已签名的认证质询的认证响应。在106处,用户装置120可以将认证响应发送给认证服务器140(例如,通过网络)。认证响应可以通过网络服务器传递。认证服务器140可以使用在注册期间存储在认证服务器140处的用户装置认证公钥128来验证认证响应的已签名的质询。认证服务器140可以向网络服务器发送已经验证用户装置120的签名的指示,并且网络服务器可以将用户装置120所请求的数据或网站提供给用户装置120。

因此,用户180通过向用户装置120输入认证信息(例如,pin或生物识别数据)来向用户装置120进行认证,并且用户装置120通过使用与向认证服务器140注册的用户装置认证公钥128对应的用户装置认证私钥对认证质询进行签名来向认证服务器140进行认证。

ii.供应

供应通常是指用于请求和接收数据的过程。例如,用户装置(例如,计算机或移动电话)可以请求来自供应服务器的数据,以便存储在用户装置上。供应服务器可以基于特定标准或规则向用户装置发送数据。数据可以使用基于标识用户装置的公钥建立的信道来进行传送。在供应期间,即使通信被加密或以其他方式进行保护,也可以确定用户装置或用户的身份或者用户装置。如果确定的话,身份可能被用于非法目的。

图2示出根据一些实施方案的用于将数据从供应服务器260机密地供应给用户装置220的消息流程图200。虽然图2示出由用户装置220和供应服务器260执行的步骤,但是一些或所有步骤可以由另一合适的实体(诸如认证服务器)执行。消息流程图200中的步骤也可以按照不同的顺序或以其他合适的方式执行。

用户装置220可以包括由用户操作或与用户相关联的计算装置。例如,用户装置120可以是移动装置、支付装置(例如,智能卡)、可穿戴装置、个人计算机等。图2的用户装置220可以类似于图1的用户装置120那样进行操作。供应服务器260可以是耦合到一个或多个数据库的服务器计算机、服务器计算机集群或网站服务器。供应服务器260可以将数据供应给用户装置220。例如,供应数据可以包括账户信息、识别信息、文档、支付凭证或者其他数据或信息。在一些实施方案中,供应服务器260可以使用一个或多个服务器计算机和/或其他计算装置来实现。

在消息流200之前,用户装置220可以(例如,在存储器电路中)存储认证机构(ca)根证书(“ca证书”)232,其包括ca根公钥。在消息流200之前,供应服务器260可以维护供应服务器密钥对(“ps私钥和公钥对”)262,其包括供应服务器公钥以及与供应服务器公钥对应的供应服务器私钥。供应服务器260还可以维护包括供应服务器公钥的供应服务器证书(“ps证书”)。供应服务器证书252可以由ca根公钥签名。

为了对用户装置220和供应服务器260之间的通信进行加密,用户装置220可以使用用户装置220的私钥和供应服务器260的公钥来生成共享秘密。供应服务器260可以使用供应服务器的私钥以及与用户装置220的私钥对应的用户装置220的公钥来生成相同的共享秘密。在一些实施方案中,用户装置220可以存储供应服务器260的供应服务器证书(“ps证书”)264。供应服务器证书264可以包括供应服务器公钥,其可以被用户装置220用来生成用于对通信进行加密的共享秘密。然而,在一些实施方案中,用户装置220可以不存储供应服务器证书264,并且可能需要从供应服务器260接收它。

用户装置220可以生成用户装置临时密钥对(“ud临时公钥和私钥对”)234,其包括用户装置临时公钥以及与用户装置临时公钥对应的用户装置临时私钥。在201处,用户装置220向供应服务器260发送用户装置临时公钥。用户装置临时公钥可以不用于标识用户装置220,因为用户装置220可以仅使用用户装置临时公钥来进行单一通信(例如,接收供应服务器证书264)。用户装置220在已经执行了通信之后可以不存储用户装置临时密钥对。

供应服务器260可以(例如,在存储器电路中)存储供应服务器密钥对(“ps公钥和私钥对”)262,其包括与供应服务器公钥对应的供应服务器私钥。供应服务器260还可以存储供应服务器证书264。供应服务器证书264可以由ca使用ca私钥进行签名。供应服务器260可以修改供应服务器公钥,使得它可以不用于标识供应服务器260。例如,供应服务器260可以生成供应服务器盲化因子(例如,密码随机数),并且使用供应服务器公钥和供应服务器盲化因子来生成盲化的供应服务器公钥。例如,供应服务器260可以通过对供应服务器公钥和供应服务器盲化因子执行乘法运算来生成盲化的供应服务器公钥。

供应服务器260可以使用用户装置临时公钥、供应服务器私钥和供应服务器盲化因子来生成第一共享秘密。供应服务器260可以使用第一共享密钥来生成第一会话密钥,以用于与用户装置220进行通信。供应服务器260可以使用第一会话密钥对供应服务器证书264进行加密,以获得加密的供应服务器证书。在一些实施方案中,供应服务器260还可以使用第一会话密钥对供应服务器盲化因子进行加密,以获得加密的供应服务器盲化因子。在202处,供应服务器260(例如,通过网络)向用户装置220发送盲化的供应服务器公钥和加密的供应服务器证书。供应服务器260还可以向用户装置220发送加密的认证密码、加密的元数据以及加密的供应服务器盲化因子中的一个或多个。

用户装置220可以从供应服务器260接收盲化的供应服务器公钥和加密的供应服务器证书。用户装置220可以使用盲化的供应服务器公钥和用户装置临时私钥来生成由供应服务器260生成的相同的第一共享秘密。用户装置220可以使用第一共享秘密来生成第一会话密钥。用户装置220可以使用第一会话密钥对加密的供应服务器证书进行解密,以获得供应服务器证书。在一些实施方案中,用户装置220还可以接收加密的供应服务器盲化因子并对其进行解密。用户装置220可以使用ca证书232的ca公钥来验证供应服务器证书264。在一些实施方案中,用户装置220可以使用供应服务器盲化因子和供应服务器证书264的供应服务器公钥来验证盲化的供应服务器公钥。在一些实施方案中,用户装置220还可以接收加密的认证密码并对其进行解密,并且还可以验证认证密码。用户装置220可以存储供应服务器证书264(例如,存储在存储器电路中)。

因此,用户装置220可以机密地获得供应服务器证书264,如果它尚未存储的话。在一些实施方案中,在用户装置220已经存储供应服务器证书264的情况下,可以跳过201和202处的消息传递。

在203处,用户装置220可以对识别数据进行加密,以获得加密的识别数据。用户装置220可以(例如,通过网络)向供应服务器260发送加密的识别数据。在一些实施方案中,诸如先前执行了消息传递201和202的那些实施方案,用户装置220可以使用先前建立的共享秘密来执行关于消息传递203和204所描述的加密和解密。在其他实施方案中,诸如未执行消息传递201和202的那些实施方案,可以使用基于所存储的供应服务器证书264生成的第二共享秘密来执行上面关于消息传递203所描述的加密和解密。供应服务器260可使用针对202处的消息传递建立的共享秘密或使用第二共享秘密来对供应数据进行加密。在204处,供应服务器260向用户装置220发送加密的供应数据。在一些实施方案中,供应服务器260还可以向用户装置220发送盲化的供应服务器公钥、认证密码、元数据和/或新加密的服务器证书(例如,未来与供应服务器260进行通信所使用的新服务器证书)。

因此,图2的消息流使得用户装置220能够在保持其身份机密性的同时从供应服务器260获得供应数据。

iii.供应与认证

在一些实施方案中,认证服务器(例如,认证服务器140)可以向供应服务器(例如,供应服务器260)提供认证能力“即服务”(例如,使用api或其他实体可访问的其他接口)。例如,供应服务器可以与认证服务器相连接,以便在向用户装置供应数据之前认证用户装置(例如,用户装置120或用户装置220)。供应服务器可以仅响应于用户被认证而执行供应过程。在一些实施方案中,认证服务器和供应服务器两者可以在相同的一组计算装置上实现,或者可以由相同的实体操作。

图3示出根据一些实施方案的用于认证用户装置320和将数据供应给用户装置320的消息流程图300。图3的用户装置320可以类似于上述用户装置110、220那样进行操作。图3的认证服务器340可以类似于上述认证服务器140那样进行操作。图3的供应服务器360可以类似于上述供应服务器260那样进行操作。虽然图3示出由用户装置320、认证服务器340和供应服务器360执行消息传递,但是一些或所有消息传递步骤可以由另一合适的实体执行。例如,认证服务器340和供应服务器360可以执行某些操作而不是其他操作,或者认证服务器340和供应服务器360可以进行组合。另外,图3所示的消息传递可以按照不同的顺序或以其他合适的方式执行。

在消息流300之前,用户装置320可以(例如,在存储器电路中)存储用户装置证明密钥对(“ud证明公钥和私钥对”)322,其包括用户装置证明公钥以及与用户装置证明公钥对应的用户装置证明私钥。用户装置320还可以存储包括用户装置证明公钥的用户装置证明证书(“ud证明证书”)324。用户装置证明证书可以由ca使用ca的私钥进行签名。在消息传递流300之前,认证服务器340可以(例如,在存储器电路中)存储包括与ca私钥对应的ca公钥的ca证书。ca公钥可以用于验证由ca私钥签名的数据。

用户装置320可以以与上面参照图1描述的注册和认证过程类似的过程向认证服务器340进行注册和认证。在301处,认证服务器340可以向用户装置320发送注册请求。图3的301处的注册请求可以类似于上述图1的101处的注册响应进行构造。响应于接收到注册请求,用户装置可以认证用户装置320的用户并且生成用户装置认证密钥对(“ud认证公钥和私钥对”)326。用户装置认证密钥对326可以包括用户装置认证公钥328以及与用户装置认证公钥328对应的用户装置认证私钥。用户装置320可以(例如,在存储器电路中)存储用户装置认证密钥对326。

在302处,用户装置320可以将注册响应发送给认证服务器340。图3的302处的注册响应可以类似于上述图1的103处的注册响应进行构造。例如,注册响应可以包括应用程序id、用户装置证明证书324,以及由用户装置证明私钥签名的用户装置认证公钥328。

认证服务器340可以使用ca证书的ca公钥来验证用户装置证明证书324。认证服务器340还可以使用用户装置证明证书324的用户装置证明公钥来验证用户装置认证公钥328。

在一些实施方案中,在303之前,用户装置320可以与认证服务器340或供应服务器360进行通信。例如,用户装置320可以发送消息,以发起认证过程。响应于用户装置320发起认证过程,供应服务器360可以向认证服务器340请求认证请求。供应服务器360可以从认证服务器340接收认证请求。

在303处,供应服务器360可以向用户装置320发送认证请求。图3的303处的认证请求可以类似于上述图1的104处的认证请求进行构造。例如,认证请求可以包括认证质询。

用户装置320可以处理认证请求。处理认证请求可以包括将附加数据添加到接收到的认证质询、认证或验证用户装置320的用户、以及使用存储在用户装置320处的用户装置认证私钥对质询进行签名,如以上参照图1所述。在304处,用户装置320向供应服务器360发送包括已签名的质询数据以及可能的其他数据的认证响应。

供应服务器360可以向认证服务器340发送来自用户装置320的认证响应。认证服务器340可以使用存储在认证服务器340处的用户装置认证公钥328来验证已签名的认证质询。在一些实施方案中,认证服务器340还可以验证的是,已签名的认证质询与认证请求的认证质询相匹配。因此,用户装置320可以向认证服务器340注册并且由认证服务器340进行认证。

在305处,认证服务器340可以向供应服务器360发送已签名的认证质询已经被验证的指示。供应服务器360可以基于已签名的认证质询是否被验证来向用户装置320提供供应数据。例如,如果供应服务器360没有从认证服务器340接收到已签名的认证质询的签名有效的指示,则供应服务器360可以不向用户装置320提供供应数据。

如果供应服务器360从认证服务器340接收到已签名的认证质询的签名有效的指示,则供应服务器360和用户装置320可以执行与上面参照图2所述的供应过程类似的供应过程。例如,在306处,用户装置320可以向供应服务器360发送识别数据。响应于接收到识别信息,在307处,供应服务器360可以向用户装置307发送供应数据。类似于上面参照图2所述的加密过程,可以使用用户装置临时密钥对(“ud临时公钥和私钥对”)334来对306和307处的用于供应的消息传递进行加密。这样,供应服务器360可以基于用户装置320向认证服务器340的认证来向用户装置320供应数据。

iv.机密认证和供应

上面参照3所述的认证和供应过程使得供应服务器能够基于用户装置向认证服务器的认证来向用户装置供应数据。虽然上述供应过程可以通过使用临时密钥对和盲化的公钥来向用户装置提供机密性,但是认证过程不提供这种机密性。在认证中,用户装置仍然可以基于其签名(例如,已签名数据)或其公钥的传输而被跟踪。下面描述的系统和方法解决了这个问题。

a.使用存储的供应服务器证书的认证

图4示出根据一些实施方案的包括认证响应和机密且安全的供应数据的消息流程图400。消息流400示出预先加载有供应服务器证书的用户装置420、认证服务器440与供应服务器460之间的消息传递。图4的用户装置420可以类似于上述用户装置320那样进行操作。图4的认证服务器440可以类似于上述认证服务器340那样进行操作。图4的供应服务器460可以类似于上述供应服务器360那样进行操作。图4的消息传递可以按照不同的顺序或以其他合适的方式执行。认证服务器440和供应服务器460可以执行某些操作而不是其他操作,或者认证服务器440和供应服务器460可以进行组合。

在消息流400之前,用户装置420可以(例如,在存储器电路中)存储包括用户装置证明公钥和用户装置证明私钥的用户装置证明密钥对(“ud证明公钥和私钥对”)422。用户装置420还可以存储包括用户装置证明公钥的用户装置证明证书424。另外,用户装置420可以存储供应服务器证书(“ps证书”)464,其包括供应服务器公钥并且由证书机构(“ca”)使用ca的私钥进行签名。用户装置420还可以预先生成并存储用户装置临时密钥对(“ud临时公钥和私钥对”)434,其包括用户装置临时公钥以及与用户装置临时公钥对应的用户装置临时私钥。

在消息流400之前,供应服务器460可以(例如,在存储器电路中)存储供应服务器密钥对(“ps公钥和私钥对”)462,其包括供应服务器公钥以及与供应服务器公钥对应的供应服务器私钥。供应服务器460还可以存储供应服务器证书464。供应服务器证书464可以包括供应服务器公钥,并且它可以由ca使用ca私钥进行签名。

用户装置420可以以与上面参照图3描述的注册过程类似的过程向认证服务器440进行注册。在401处,认证服务器440可以向用户装置420发送注册请求。图4的401处的注册请求可以类似于上述注册响应进行构造。响应于接收到注册请求,用户装置420可以认证用户装置420的用户并且生成用户装置认证密钥对(“ud认证公钥和私钥对”)426。用户装置认证密钥对426可以包括用户装置认证公钥428以及与用户装置认证公钥428对应的用户装置认证私钥。用户装置420可以(例如,在存储器电路中)存储用户装置认证密钥对426。

在402处,用户装置420可以将注册响应发送给认证服务器440。图4的402处的注册响应可以类似于上述注册响应进行构造。例如,注册响应可以包括用户装置证明证书424以及由用户装置证明私钥签名的用户装置认证公钥428。

认证服务器440可以存储ca证书,并且可以使用ca证书的ca公钥来验证用户装置证明证书424。认证服务器440还可以使用用户装置证明证书424的用户装置证明公钥来验证用户装置认证公钥428。在一些实施方案中,认证服务器440可以存储供应服务器证书464,并且响应于验证用户装置认证公钥428,认证服务器440可以向用户装置420发送供应服务器证书464。在其他实施方案中,用户装置420可以在注册之前获得供应服务器证书464。

在注册之后,用户装置420可以发起认证。例如,用户装置420可以向供应服务器460发送消息,以发起认证过程。响应于用户装置420发起认证过程,供应服务器460可以向认证服务器440请求认证请求。供应服务器460可以从认证服务器440接收认证请求。

在403处,供应服务器460可以向用户装置420发送认证请求。图3的403处的认证请求可以类似于上述认证请求进行构造。例如,认证请求可以包括认证质询。

用户装置420可以处理认证请求。处理认证请求可以包括将附加数据添加到接收到的认证质询、认证或验证用户装置320的用户、以及使用存储在用户装置420处的用户装置认证私钥对质询进行签名。

与上面参照图1和图3描述的认证过程相比,在该实施方案中,用户装置420可以机密地传输加密的认证响应。如果用户装置临时密钥对434不是预先生成的,则用户装置420可以生成用户装置临时密钥对。用户装置420可以使用用户装置临时私钥和存储的供应服务器证书464的供应服务器公钥来生成共享秘密。用户装置可以基于共享秘密生成会话密钥,并且使用会话密钥对认证响应进行加密,以获得加密的认证响应。

在404处,用户装置420可以向供应服务器460发送用户装置临时公钥和包括已签名的质询数据的加密的认证响应。这样,403处的认证响应保持机密性,因为用户装置临时密钥对434可能不用于标识或追踪用户装置420,因为该用户装置临时密钥对只可用于对有限数量的消息(例如,仅认证响应或者认证响应和供应数据)进行加密。另外,由于使用共享秘密进行加密,因此认证响应是安全的。

供应服务器460可以从用户装置420接收用户装置临时公钥和加密的认证响应。供应服务器460可以使用供应服务器私钥和用户装置临时公钥来生成由用户装置420生成的相同的共享秘密。供应服务器460可以使用共享密钥来生成会话密钥,并且使用会话密钥来对加密的认证响应进行解密,以获得认证响应。供应服务器460可以向认证服务器440发送认证响应。

认证服务器440可以使用存储的用户装置认证公钥428来验证认证响应的已签名的认证质询。例如,可以使用用户装置认证公钥428来对已签名的质询数据进行解密,以获得解密的质询,该解密的质询可以与认证请求中所包括的认证质询进行比较。已签名的认证质询可以基于解密的质询是否匹配期望值来进行验证。在406处,认证服务器440可以向供应服务器460发送已签名的认证质询已经被验证的指示。

供应服务器460可以基于已签名的认证质询是否被验证来向用户装置420提供供应数据。例如,如果供应服务器460没有从认证服务器440接收到已签名的认证质询的签名有效的指示,则供应服务器460可以不向用户装置420提供供应数据。供应服务器460可以对供应数据进行加密。在一些实施方案中,供应服务器460可以使用共享秘密对供应数据进行加密。在其他实施方案中,供应服务器460可以生成第二共享秘密,以用于对供应数据进行加密。例如,供应服务器460可以使用供应服务器盲化因子(例如,密码随机数)来盲化供应服务器密钥对462,以获得盲化的供应服务器公钥和盲化的供应服务器私钥。供应服务器460然后可以使用盲化的供应服务器私钥和用户装置临时公钥来导出第二共享秘密。供应服务器460可以使用第二共享秘密对供应数据进行加密,以获得加密的供应数据。在405处,供应服务器460可以向用户装置420发送盲化的供应服务器公钥和加密的供应数据。

用户装置420可以对加密的供应数据进行解密以获得供应数据,并且用户装置430可以存储供应数据(例如,存储在存储器电路中)。例如,在用户装置420接收到加密的支付凭证和盲化的供应服务器公钥的实施方案中,用户装置420可以使用用户装置临时私钥和盲化的供应服务器公钥来生成第二共享秘密。用户装置420可以使用第二共享秘密对加密的供应数据进行解密。

这样,由于认证响应被加密并且发送到供应服务器460用于解密的公钥是临时密钥,所以用户装置420可以发送机密且安全的认证响应。供应数据也是安全的,因为它被加密,如上所述。

b.包括供应服务器证书的传输的认证

如上面参照图4所述的认证过程使用在认证之前存储在用户装置上的供应服务器证书。然而,在一些情况下,用户装置在认证过程之前可能不存储供应服务器证书。在这种情况下,供应服务器证书可能需要作为供应过程的一部分传输给用户装置,而不是被假定为先前已经加载到用户装置上。

图5示出根据一些实施方案的包括可能不存储供应服务器证书564的用户装置520的认证的消息流500。与图4的消息流400相比,图5的消息流500包括加密的认证响应。消息流500示出用户装置520、认证服务器540与供应服务器560之间的消息传递。图5的用户装置520可以类似于上述用户装置那样进行操作。图5的认证服务器540可以类似于上述认证服务器那样进行操作。图5的供应服务器560可以类似于上述供应服务器那样进行操作。图5的消息传递可以按照不同的顺序或以其他合适的方式执行。认证服务器540和供应服务器560可以执行某些操作而不是其他操作,或者认证服务器540和供应服务器560可以进行组合。

在消息流500之前,用户装置520可以(例如,在存储器电路中)存储包括用户装置证明公钥和用户装置证明私钥的用户装置证明密钥对(“ud证明公钥和私钥对”)522。用户装置520还可以存储包括用户装置证明公钥的用户装置证明证书524。另外,用户装置520可以存储包括ca公钥的ca证书(“ca证书”)532。用户装置520还可以预先生成并存储用户装置临时密钥对(“ud临时公钥和私钥对”)534,其包括用户装置临时公钥以及与用户装置临时公钥对应的用户装置临时私钥。

在消息流500之前,供应服务器560可以(例如,在存储器电路中)存储供应服务器密钥对(“ps公钥和私钥对”)562,其包括供应服务器公钥以及与供应服务器公钥对应的供应服务器私钥。供应服务器560还可以存储供应服务器证书564。供应服务器证书564可以包括供应服务器公钥,并且它可以由ca使用ca私钥进行签名。

用户装置520可以以与上面参照图4描述的注册过程类似的过程向认证服务器540进行注册。在501处,认证服务器540可以向用户装置520发送注册请求。图5的501处的注册请求可以类似于上述注册响应进行构造。响应于接收到注册请求,用户装置520可以认证用户装置520的用户并且生成用户装置认证密钥对(“ud认证公钥和私钥对”)526。用户装置认证密钥对526可以包括用户装置认证公钥528以及与用户装置认证公钥528对应的用户装置认证私钥。用户装置520可以(例如,在存储器电路中)存储用户装置认证密钥对526。

在502处,用户装置520可以将注册响应发送给认证服务器540。图5的502处的注册响应可以类似于上述注册响应进行构造。例如,注册响应可以包括用户装置证明证书524以及由用户装置证明私钥签名的用户装置认证公钥528。

认证服务器540可以存储ca证书,并且可以使用ca证书的ca公钥来验证用户装置证明证书524。认证服务器540还可以使用用户装置证明证书524的用户装置证明公钥来验证用户装置认证公钥528。

在注册之后,用户装置520可以发起认证。例如,在503处,用户装置520向供应服务器560发送用户装置临时公钥。如果用户装置临时密钥对534不是预先生成的,则用户装置520可以生成用户装置临时密钥对。

供应服务器560可以向认证服务器540请求并接收包括认证质询的认证请求。供应服务器560可以生成供应服务器盲化因子(例如,密码随机数),并且基于供应服务器密钥对(“ps公钥和私钥对”)564,使用供应服务器盲化因子来生成盲化的供应服务器公钥和盲化的供应服务器私钥。供应服务器560可以使用用户装置临时公钥和盲化的供应服务器私钥来生成共享秘密。供应服务器560可以使用共享秘密对认证请求进行加密,以获得加密的认证请求。在504处,供应服务器560可以向用户装置520发送盲化的供应服务器公钥和加密的认证请求。供应服务器还可以对供应服务器证书564、供应服务器盲化因子、认证密码、元数据以及加密数据进行加密,并且将它们发送给用户装置520。

用户装置520可以从供应服务器接收盲化的供应服务器公钥和加密的认证请求。用户装置520可以使用盲化的供应服务器公钥和用户装置临时私钥来生成共享秘密。用户装置520可以使用共享秘密对加密的认证请求进行解密,以获得认证请求。在一些实施方案中,用户装置520还可以接收供应服务器证书564、认证密码以及供应服务器盲化因子,并且使用共享秘密对它们进行解密。用户装置520可以使用ca证书532来验证供应服务器证书564。用户装置520可以使用供应服务器证书和从供应服务器证书564获得的供应服务器公钥来验证盲化的供应服务器公钥。用户装置520还可以验证认证密码。

这样,504处的认证请求保持机密性,因为由于供应服务器盲化因子被应用于供应服务器公钥,所以盲化的供应服务器公钥可能不用于标识或跟踪供应服务器560。另外,由于使用共享秘密进行加密,因此认证请求是安全的。

用户装置520可以接收盲化的供应服务器证书和加密的认证请求。用户装置520可以使用盲化的供应服务器公钥和与用户装置临时公钥对应的用户装置临时公钥来生成共享秘密。用户装置520可以使用共享秘密对加密的认证请求进行解密,以获得认证请求。用户装置520可以处理认证请求。处理认证请求可以包括将附加数据添加到认证请求中所包括的认证质询、验证用户装置520的用户、以及使用由用户装置520存储的用户装置认证私钥对认证质询进行签名。

用户装置520可以生成包括已签名的认证质询的认证响应。在505处,用户装置520向供应服务器560发送加密的认证响应。在一些实施方案中,用户装置520可以使用共享秘密对认证响应进行加密。在其他实施方案中,用户装置520可以使用第二用户装置密钥对(例如,另一个临时密钥对)来生成第二共享秘密,以用于对认证响应进行加密。在这类实施方案中,用户装置520可以向供应服务器560发送第二用户装置临时公钥。

供应服务器560可以接收加密的认证响应。供应服务器560可以使用共享秘密对加密的认证响应进行解密,以获得认证响应。在一些实施方案中,其中用户装置520发送第二用户装置临时公钥,供应服务器可以使用供应服务器私钥和第二用户装置临时公钥来生成第二共享秘密。供应服务器560可以向认证服务器540发送认证响应。

认证服务器540可以使用存储的用户装置认证公钥528来验证认证响应的已签名的认证质询。例如,认证服务器540可以对已签名的认证质询进行解密,并且该认证质询可以与认证请求的认证质询进行比较。已签名的认证质询可以基于解密的质询是否匹配期望值来进行验证。在507处,认证服务器540可以向供应服务器460发送已签名的认证质询已经被验证的指示。

供应服务器560可以基于已签名的认证质询是否被验证来向用户装置520提供供应数据。例如,如果供应服务器560没有从认证服务器540接收到已签名的认证质询的签名有效的指示,则供应服务器560可以不向用户装置520提供供应数据。供应服务器560可以对供应数据进行加密。在一些实施方案中,供应服务器560可以使用共享秘密对供应数据进行加密,以获得加密的供应数据。在其他实施方案中,供应服务器560可以使用第二共享秘密对供应数据进行加密。在506处,供应服务器560可以向用户装置520发送加密的供应数据。

这样,504处的认证请求保持机密性,因为由于供应服务器盲化因子被应用于供应服务器公钥,所以盲化的供应服务器公钥可能不用于标识或跟踪供应服务器560。另外,认证请求、认证响应和供应数据是安全的,因为它们被加密。

v.改进的机密注册、认证和供应

某些注册和认证过程可能容易受到中间人攻击。例如,恶意装置在执行注册或认证时可能会伪装成合法的用户装置。这可以允许恶意装置以明文方式获得由供应服务器发送的认证请求。尽管恶意装置可能无法使用合法的用户装置的私钥对认证质询进行签名,但是它有可能(例如,使用安装在合法的用户装置上的恶意软件)获得用户装置对认证质询的签名。恶意装置然后可以使用已签名的认证质询对供应服务器作出响应。以这种方式,恶意装置可能能够获得未经授权的供应数据。

一些实施方案通过使用向认证服务器注册的用户装置认证密钥对用户装置和供应服务器之间的通信进行加密来解决该问题。这阻止没有用户装置的用户装置认证私钥的实体接收到明文认证请求或认证质询,从而防止了上述中间人攻击。

图6示出根据一些实施方案的用于使用已注册的用户装置认证公钥来将数据安全地供应给用户装置的消息流程图600。消息流600示出用户装置620、认证服务器640与供应服务器660之间的消息传递。图6的用户装置620可以类似于上述用户装置那样进行操作。图6的认证服务器640可以类似于上述认证服务器那样进行操作。图6的供应服务器660可以类似于上述供应服务器那样进行操作。图6的消息传递可以按照不同的顺序或以其他合适的方式执行。另外,虽然图6示出由用户装置620、认证服务器640和供应服务器660执行消息传递,但是应当注意,一些或所有步骤可以由另一合适的实体执行。认证服务器640和供应服务器660可以执行某些操作而不是其他操作,或者认证服务器640和供应服务器660可以进行组合。

在消息流600之前,用户装置620可以存储用户装置证明密钥对(“ud证明公钥和私钥对”)622,其包括用户装置证明公钥以及与用户装置证明公钥对应的用户装置证明私钥。用户装置620还可以存储包括用户装置证明公钥的用户装置证明证书。用户装置620也可以存储包括ca公钥的证书机构证书(“ca证书”)632。

在消息流600之前,供应服务器660可以存储供应服务器密钥对(“ps公钥和私钥对”)662,其包括供应服务器公钥以及与供应服务器公钥对应的供应服务器私钥。供应服务器660还可以存储供应服务器证书(“ps证书”),其包括供应服务器公钥并且由证书机构签名。

在消息流600之前,认证服务器640可以存储由ca签名的认证服务器证书(“as证书”)646,其包括认证服务器公钥。认证服务器640还可以存储认证服务器密钥对(“as公钥和私钥对”)642,其包括认证服务器公钥以及与认证服务器公钥对应的认证服务器私钥。

如上所讨论,注册过程向认证服务器注册用户装置的认证公钥。另外,图6的注册过程可以在用户装置620与认证服务器640之间建立共享秘密,并且可以使用根据共享秘密确定的会话密钥来进行注册。

用户装置620可以生成用户装置临时密钥对,其包括用户装置临时公钥以及与用户装置临时公钥对应的用户装置临时私钥。在601处,用户装置620可以向认证服务器640发送用户装置临时公钥。

认证服务器640可以生成认证服务器盲化因子(例如,密码随机数),并且将盲化因子与认证服务器密钥对进行组合,以生成盲化的认证服务器公钥和盲化的认证服务器私钥。认证服务器640可以使用用户装置临时公钥和盲化的认证服务器私钥来生成共享秘密。认证服务器640可以使用共享秘密来生成会话密钥。认证服务器640可以使用共享秘密对认证服务器证书644、认证服务器盲化因子和注册请求进行加密,以分别获得加密的认证服务器证书、加密的认证服务器盲化因子和加密的注册响应。在602处,认证服务器640可以向用户装置620发送盲化的认证服务器公钥和加密的注册请求。认证服务器640还可以向用户装置620发送加密的认证密码、加密的元数据、加密的认证服务器证书以及加密的认证服务器盲化因子。

用户装置620可以使用盲化的认证服务器公钥和用户装置临时私钥来生成与认证服务器640生成的相同共享秘密。用户装置620可以使用共享秘密来生成会话密钥。用户装置620可以使用共享秘密对加密的注册请求进行解密,以获得注册请求。用户装置620也可以使用共享秘密对加密的认证服务器证书644和加密的认证服务器盲化因子进行解密。用户装置620可以使用ca证书632来验证认证服务器证书644。用户装置620可以使用认证服务器盲化因子和从认证服务器证书644获得的认证服务器公钥来验证盲化的认证服务器公钥。用户装置620还可以验证认证密码。

用户装置620可以基于注册请求来要求用户装置720的用户的认证。为了认证,用户可以将认证信息输入到用户装置720中。例如,用户可以输入包括用户标识符、密码、通行码、pin、指纹扫描、视网膜扫描或其他生物识别数据中的至少一个的认证信息。响应于认证用户,用户装置620可以生成用户装置认证密钥对(“ud认证公钥和私钥对”)626,其包括用户装置认证公钥628以及与用户装置认证公钥对应的用户装置认证私钥。用户装置720可以将输入的认证信息与用户装置认证密钥对相关联。用户装置620可以使用用户装置证明私钥对用户装置认证公钥628进行签名,以获得已签名的用户装置认证公钥。用户装置620可以生成包括已签名的用户装置认证公钥和用户装置证明证书的注册响应。用户装置620可以使用共享秘密对注册响应进行加密。

在603处,用户装置620可以向认证服务器640发送加密的注册响应。在一些实施方案中,认证响应可以使用共享秘密进行加密。在其他实施方案中,用户装置620可以生成第二注册共享秘密,以用于对注册响应进行加密。

认证服务器640可以使用共享秘密对加密的注册响应进行解密,以获得注册响应。认证服务器640可以使用ca公钥来验证用户装置证明证书624。认证服务器640还可以使用用户装置证明证书624的用户装置证明公钥来验证用户装置认证公钥628。

这样,用户装置620可以使用用户装置临时公钥向认证服务器640进行机密注册,因为用户装置临时公钥可能不用于标识或跟踪用户装置620。另外,注册请求和注册响应是安全的,因为它们使用共享秘密进行加密。

在认证过程中,用户装置620可以生成用户装置盲化因子,其可以是密码随机数。用户装置620可以使用用户装置盲化因子来盲化用户装置认证密钥对626,以确定盲化的用户装置认证公钥和盲化的用户装置认证私钥。在604处,用户装置620可以向供应服务器660发送盲化的用户装置认证公钥。

供应服务器660可以生成供应服务器盲化因子,诸如密码随机数。供应服务器660可以使用供应服务器盲化因子来盲化供应服务器密钥对662,以获得盲化的供应服务器公钥和盲化的供应服务器私钥。供应服务器660可以使用盲化的用户装置认证公钥和盲化的供应服务器私钥来生成认证共享秘密。供应服务器660可以从认证服务器640获得对用户装置620的认证请求。认证请求可以包括认证质询。供应服务器660可以使用认证共享秘密对供应服务器证书664、供应服务器盲化因子和认证请求进行加密,以分别获得加密的供应服务器证书、加密的供应服务器盲化因子和加密的认证响应。在605处,供应服务器660可以向用户装置620发送盲化的供应服务器公钥和加密的认证请求。供应服务器660还可以向用户装置620发送加密的供应服务器证书和加密的供应服务器盲化因子。

用户装置620可以使用盲化的供应服务器私钥和盲化的用户装置认证私钥来生成认证共享秘密。用户装置620可以使用认证共享秘密对加密的认证请求、加密的供应服务器证书和加密的供应服务器盲化因子进行解密,以分别获得认证请求、供应服务器证书和供应服务器盲化因子。用户装置620可以使用ca证书632来验证供应服务器证书,并且可以使用供应服务器盲化因子和从供应服务器证书664获得的供应服务器公钥来验证盲化的供应服务器公钥。

用户装置可以处理认证请求。处理认证请求可以包括将附加数据添加到接收到的质询、认证用户装置620的用户(例如,通过要求由用户输入在注册时输入的认证信息)、以及使用存储在用户装置620处的用户装置认证私钥对认证请求中的认证质询进行签名。用户装置可以生成包括已签名的认证质询的认证响应。用户装置620可以使用认证共享秘密对用户装置盲化因子和认证响应进行加密,以分别获得加密的用户装置盲化因子和加密的认证响应。在606处,用户装置620可以向供应服务器660发送加密的认证响应。用户装置620还可以向供应服务器660发送加密的用户装置盲化因子。

供应服务器660可以使用认证共享秘密对加密的认证响应和加密的用户装置盲化因子进行解密,以分别获得认证响应和用户装置盲化因子。供应服务器可以向认证服务器640发送认证响应。认证服务器640可以使用在用户装置620的注册期间存储在认证服务器640处的用户装置认证公钥628来验证已签名的质询。例如,已签名的质询可以通过使用用户装置认证公钥628进行解密来验证,并且它可以与认证请求的认证质询进行比较。如果已签名的认证质询匹配预期值,则认证服务器可以认证用户装置620。在608处,认证服务器640可以向供应服务器660发送已签名的质询已被验证的指示。

供应服务器660可以通过使用用户装置盲化因子和存储在认证服务器640处的用户装置认证公钥628重新生成盲化的用户装置认证公钥来验证盲化的用户装置认证公钥。如果重新生成的密钥匹配在604处接收到的盲化的用户装置认证公钥,则盲化的用户装置公钥被认证。

如果已签名的质询和盲化的用户装置认证公钥被认证,则供应服务器660可以使用认证共享秘密对用于用户装置620的供应数据进行加密。在607处,供应服务器660可以向用户装置620发送加密的供应数据。

这样,在注册期间向认证服务器640注册的用户装置认证公钥626可以生成共享秘密,以用于在认证期间进行加密。与生成用于对认证进行加密的临时密钥对相比,这提供了优势,因为生成和使用密钥对的计算量很大,并且需要使用大量的计算资源。因此,与生成和使用临时密钥对的过程相比,使用注册的用户装置认证公钥626对认证请求和认证响应进行加密可以使用更少的计算资源。

本发明的一些实施方案可以利用方法中描述的注册过程来向用户装置传达附加信息。例如,实施方案可以允许认证服务器在注册过程期间将包括认证服务器公钥的认证服务器证书传输给用户装置。这可以允许使用基于认证服务器的公钥生成的共享秘密对认证过程进行加密。与使用专门针对通信生成的临时密钥对来对通信进行加密相比,使用这样的共享秘密减少了用于执行通信加密的计算资源的数量。

图7示出根据一些实施方案的用于使用已注册的用户装置认证公钥来安全认证用户装置720的消息流程图700。消息流700示出用户装置720、认证服务器740与供应服务器760之间的消息传递。图7的用户装置720可以类似于上述用户装置那样进行操作。图7的认证服务器740可以类似于上述认证服务器那样进行操作。图7的供应服务器760可以类似于上述供应服务器那样进行操作。图7的消息传递可以按照不同的顺序或以其他合适的方式执行。另外,虽然图7示出由用户装置720、认证服务器740和供应服务器760执行消息传递,但是应当注意,一些或所有步骤可以由另一合适的实体执行。认证服务器740和供应服务器760可以执行某些操作而不是其他操作,或者认证服务器740和供应服务器760可以进行组合。

在消息流700之前,用户装置720可以存储用户装置证明密钥对(“ud证明公钥和私钥对”)722,其包括用户装置证明公钥以及与用户装置证明公钥对应的用户装置证明私钥。用户装置720还可以存储包括用户装置证明公钥的用户装置证明证书(“ud证明证书”)724。用户装置620也可以存储包括ca公钥的证书机构证书(“ca证书”)632。

在消息流700之前,供应服务器760可以存储供应服务器密钥对(“ps公钥和私钥对”)762,其包括供应服务器公钥以及与供应服务器公钥对应的供应服务器私钥。供应服务器760还可以存储包括供应服务器公钥的供应服务器证书(“ps证书”)764。供应服务器证书764可以由证书机构签名。

在消息流700之前,认证服务器740可以存储由ca签名的认证服务器证书(“as证书”)746,其包括认证服务器公钥。认证服务器640还可以存储认证服务器密钥对(“as公钥和私钥对”)642,其包括认证服务器公钥以及与认证服务器公钥对应的认证服务器私钥。认证服务器740还可以存储供应服务器证书764。

图7的注册过程可以向认证服务器740注册用户装置720的认证公钥。另外,图7的注册过程可以在用户装置720与认证服务器740之间建立注册共享秘密,并且可以使用根据注册共享秘密确定的注册会话密钥来进行注册。

用户装置720可以生成用户装置临时密钥对,其包括用户装置临时公钥以及与用户装置临时公钥对应的用户装置临时私钥。在701处,用户装置720可以向认证服务器740发送用户装置临时公钥。

认证服务器740可以生成认证服务器盲化因子(例如,密码随机数),并且将盲化因子与认证服务器密钥对进行组合,以生成盲化的认证服务器公钥和盲化的认证服务器私钥。认证服务器740可以使用用户装置临时公钥和盲化的认证服务器私钥来生成注册共享秘密。认证服务器740可以使用注册共享秘密来生成注册会话密钥。认证服务器740可以使用注册共享秘密对认证服务器证书744、认证服务器盲化因子和注册请求进行加密,以分别获得加密的认证服务器证书、加密的认证服务器盲化因子和加密的注册响应。在702处,认证服务器740可以向用户装置720发送盲化的认证服务器公钥、加密的认证服务器证书和加密的注册请求。认证服务器740还可以向用户装置720发送加密的认证密码、加密的元数据以及加密的认证服务器盲化因子。

用户装置720可以使用盲化的认证服务器公钥和用户装置临时私钥来生成与认证服务器720生成的相同注册共享秘密。用户装置720可以使用注册共享秘密来生成注册会话密钥。用户装置720可以使用注册共享秘密对加密的注册请求进行解密,以获得注册请求。用户装置720还可以使用注册共享秘密对加密的认证服务器证书744和加密的认证服务器盲化因子进行解密,以分别获得认证服务器证书744和认证服务器盲化因子。用户装置720可以使用ca证书732来验证认证服务器证书744。用户装置720可以使用认证服务器盲化因子和从认证服务器证书744获得的认证服务器公钥来验证盲化的认证服务器公钥。

用户装置720可以基于注册请求来要求用户装置720的用户的认证。为了认证,用户可以将认证信息输入到用户装置720中。例如,用户可以输入包括用户标识符、密码、通行码、pin、指纹扫描、视网膜扫描或其他生物识别数据中的至少一个的认证信息。响应于认证用户,用户装置720可以生成用户装置认证密钥对(“ud认证公钥和私钥对”)726,其包括用户装置认证公钥728以及与用户装置认证公钥对应的用户装置认证私钥。用户装置720可以将输入的认证信息与用户装置认证密钥对相关联。用户装置720可以生成用户装置认证密钥对(“ud认证公钥和私钥对”)726,其包括用户装置认证公钥728以及与用户装置认证公钥对应的用户装置认证私钥。用户装置720可以使用用户装置证明私钥对用户装置认证公钥728进行签名,以获得已签名的用户装置认证公钥。用户装置720可以生成注册响应,其包括已签名的用户装置认证公钥、用户装置证明证书和标识符。标识符与用户装置认证公钥相关联。用户装置720可以使用注册共享秘密对注册响应进行加密。

在703处,用户装置720可以向认证服务器740发送加密的注册响应。在一些实施方案中,注册响应可以使用注册共享秘密进行加密。在其他实施方案中,用户装置720可以生成第二注册共享秘密,以用于对注册响应进行加密。

认证服务器740可以使用注册共享秘密对加密的注册响应进行解密,以获得注册响应。认证服务器740可以使用ca公钥来验证用户装置证明证书724。认证服务器740还可以使用用户装置证明证书724的用户装置证明公钥来验证用户装置认证公钥728。认证服务器740可以将用户装置认证公钥728与注册响应中所包括的标识符相关联。认证服务器740可以存储用户装置认证公钥728。响应于验证用户装置认证公钥728,认证服务器740可以使用共享秘密对供应服务器证书764进行加密,以获得加密的供应服务器证书。在704处,认证服务器740可以向用户装置720发送加密的供应服务器证书。用户装置720可以对加密的供应服务器证书进行解密,以获得供应服务器证书764。用户装置720可以存储供应服务器证书764。

因此,用户装置720可以向认证服务器740机密地注册并且接收供应服务器证书。用户装置720可以使用供应服务器证书764的供应服务器公钥以及与向认证服务器注册的用户装置认证公钥对应的用户装置认证私钥来生成认证共享秘密,以用于对认证过程进行加密。

在705处,用户装置720可以经由供应服务器760向认证服务器740发送标识符。认证服务器740可以标识与标识符相关联的用户装置认证公钥728。认证服务器740可以使用存储在认证服务器740处的用户装置认证公钥728以及与认证服务器公钥对应的认证服务器私钥来生成认证共享秘密。认证服务器740可以生成对用户装置720的认证请求。认证请求可以包括认证质询。认证服务器740可以使用认证共享秘密对认证请求进行加密,以获得加密的认证请求。在706处,认证服务器740可以向用户装置720发送加密的认证请求。

用户装置720可以使用认证服务器证书744的认证服务器公钥以及与向认证服务器740注册的用户装置认证公钥对应的用户装置认证私钥来生成认证共享秘密。用户装置720可以使用认证共享秘密对加密的认证请求进行解密,以获得包括认证质询的认证请求。用户装置可以处理认证请求。处理认证请求可以包括将附加数据添加到接收到的认证质询、验证用户装置720的用户(例如,通过要求由用户输入在注册时输入的认证信息)、以及使用存储在用户装置720处的用户装置认证私钥对认证请求中的认证质询进行签名。用户装置720可以生成包括已签名的认证质询的认证响应。用户装置720可以使用认证共享秘密对认证响应进行加密,以获得加密的认证响应。在707处,用户装置720可以经由供应服务器760向认证服务器740发送加密的认证响应。

认证服务器740可以使用认证共享秘密对加密的认证响应进行解密,以获得认证响应。认证服务器740可以使用在用户装置720的注册期间存储在认证服务器740处的用户装置认证公钥728来验证已签名的质询。例如,已签名的质询可以通过使用用户装置认证公钥728进行解密来验证,并且它可以与认证请求的认证质询进行比较。如果已签名的认证质询匹配预期值,则认证服务器可以认证用户装置720。在708处,认证服务器740可以向供应服务器760发送已签名的质询已被验证的指示。

如果已签名的质询被认证,那么在709处,供应服务器760可以向用户装置720发送供应数据。供应服务器可以使用认证共享秘密对供应数据进行加密。

这样,在注册期间向认证服务器740注册的用户装置认证公钥728可以用于生成认证共享秘密,以用于认证过程的加密。与生成用于对认证消息进行加密的临时密钥对相比,这提供了优势,因为生成和使用密钥对的计算量很大,并且需要使用大量的计算资源。因此,与生成和使用临时密钥对的过程相比,使用注册的用户装置认证公钥726对认证请求和认证响应进行加密可以使用更少的计算资源。

vi.安全通信方法

本发明的实施方案可以利用任何合适的方法来进行安全通信。例如,在本发明的一些实施方案中,可以使用根据不透明规范的方法来促进用户装置、认证服务器、供应服务器和/或任何其他合适的实体之间的安全通信。下表1包括术语的定义。

表1

a.假设预先加载的服务器证书的方法

以下描述使用预先加载有服务器计算机证书的客户端计算机进行安全通信的方法。在通信之前,客户端计算机可以维护数据。例如,客户端计算机可以维护多个(n个)服务器认证公钥(q_s_{n})和服务器计算机证书链(c_s_{n})。客户端计算机还可以维护客户端敏感数据(sd_c),其可以包括可由服务器计算机用来认证客户端计算机的数据。另外,客户端计算机可以维护客户端计算机证书链(c_c)和客户端认证密钥对,所述客户端认证密钥对包括客户端认证公钥(q_c)和对应的客户端认证私钥(d_c)。此外,客户端计算机可以维护通常可由服务器计算机验证的种子值(种子)。

在通信之前,服务器计算机也可以维护数据。例如,服务器计算机可以维护多个(n个)服务器计算机证书链(c_s_{n}),每个服务器计算机证书链包括服务器认证公钥(q_s_{n}),并且服务器计算机维护对应的服务器认证私钥(d_s_{n})。服务器计算机还可以维护下一服务器认证密钥对,其包括下一服务器认证公钥(q_s_{n+1})和下一服务器认证私钥(d_s_{n+1})。服务器计算机还可以维护初始化值(iv)和服务器敏感数据(sd_s),其可以包括可由客户端计算机用来认证服务器计算机的数据。

在步骤1处,客户端计算机使用以种子值作为输入的prng函数来生成客户端盲化因子(d_bc)。

在步骤2处,客户端计算机使用客户端盲化因子、初始化值(d_iv)和客户端认证公钥来生成盲化的客户端认证公钥(q_bc)。

在步骤3处,客户端计算机使用客户端认证公钥、客户端盲化因子以及与预期进行通信的服务器计算机对应的服务器认证公钥(q_s_{n})来生成第一共享秘密(z_1)。

在步骤4处,使用盲化的客户端认证公钥来生成客户端会话标识符。

在步骤5处,使用第一共享秘密、服务器标识符(id_s)和客户端会话标识符来导出第一客户端会话密钥。

在步骤6处,使用第一客户端会话密钥对客户端敏感数据、客户端证书链、客户端盲化因子或种子、一些客户端填充数据(pad_c)以及盲化的客户端认证公钥进行加密(aead)。结果是加密的客户端数据(enc_c)。

在步骤7处,将第一共享秘密和第一客户端会话密钥归零(即,擦除)。

在步骤8处,将盲化的客户端认证公钥和客户端加密数据发送到服务器计算机。

在步骤9处,服务器计算机验证盲化的客户端认证公钥属于正确的椭圆曲线域。

在步骤10处,服务器计算机生成相同的第一共享秘密,但使用的是服务器认证私钥、初始化值和盲化的客户端认证公钥。

在步骤11处,服务器计算机根据盲化的客户端认证公钥来确定客户端会话标识符。

在步骤12处,服务器计算机使用第一共享秘密、服务器标识符和客户端会话标识符来导出第一客户端会话密钥。

在步骤13处,服务器计算机使用第一客户端会话密钥对加密的客户端数据进行解密(aead-1),以获得客户端敏感数据、客户端证书链、客户端盲化因子或种子、以及客户端填充数据。

在步骤14处,服务器计算机将第一客户端会话密钥和第一共享秘密归零。

在步骤15处,如果在步骤13处解密的加密客户端数据中不包括客户端盲化因子,则服务器计算机使用prng函数从种子导出客户端盲化因子。

在步骤16处,服务器计算机从客户端证书中提取客户端认证公钥。还验证客户端证书。

在步骤17处,将从客户端计算机接收到的盲化的客户端认证公钥与客户端盲化因子和客户端认证公钥的组合进行比较。如果它们匹配,则服务器计算机可以认证客户端计算机。

在步骤18处,服务器计算机生成服务器盲化因子(d_bs)。

在步骤19处,使用第二盲化因子、下一服务器认证私钥和盲化的客户端认证公钥来生成第二共享秘密(z)。

在步骤20处,使用服务器认证公钥和服务器盲化因子来生成盲化的服务器认证公钥(q_bs)。

在步骤21处,使用盲化的服务器认证公钥来生成服务器会话标识符(sid_s)。

在步骤22处,使用第二共享秘密、服务器会话标识符和客户端会话标识符来生成服务器会话密钥(sk_s)和第二客户端会话密钥(sk_c)。

在步骤23处,使用服务器会话密钥对服务器盲化因子、下一服务器证书链、服务器敏感数据和服务器填充数据(pad_s)进行加密,以生成加密的服务器数据(enc_s)。

在步骤24处,将服务器会话密钥和第二共享秘密归零。

在步骤25处,将盲化的服务器认证公钥和加密的服务器数据发送到客户端计算机。

在步骤26处,客户端计算机验证盲化的服务器认证公钥属于正确的ec域。

在步骤27处,客户端计算机使用客户端认证私钥和客户端盲化因子的组合以及盲化的服务器认证公钥来确定第二共享秘密。

在步骤28处,客户端计算机使用盲化的服务器计算机公钥来确定服务器会话标识符。

在步骤29处,客户端计算机使用第二共享秘密、服务器会话标识符和客户端会话标识符来导出服务器会话密钥和第二客户端会话密钥。

在步骤30处,客户端计算机将第二会话密钥和客户端盲化因子归零。

在步骤31处,客户端计算机使用服务器会话密钥对加密的服务器数据进行解密(aead-1),以获得服务器盲化因子、下一服务器证书链、服务器敏感数据和服务器填充数据。

在步骤32处,客户端计算机从下一服务器证书链中提取下一服务器认证公钥。

在步骤33处,客户端计算机验证下一服务器证书链属于正确的椭圆曲线域。

在步骤34处,客户端计算机验证下一服务器认证公钥和服务器盲化因子的组合等同于盲化的服务器认证公钥。

在步骤35处,客户端计算机和服务器计算机可以结束通信,或者使用第二客户端会话密钥和/或服务器会话密钥来继续安全消息传递。

b.包括服务器证书的传输的方法

以下描述用于安全通信的另一种方法。该方法使用的客户端计算机可能未预先加载有服务器计算机证书。在通信之前,客户端计算机可以维护数据。例如,客户端计算机可以维护客户端计算机证书链(c_c)和客户端认证密钥对,所述客户端认证密钥对包括客户端认证公钥(q_c)和对应的客户端认证私钥(d_c)。

在通信之前,服务器计算机也可以维护数据。例如,服务器计算机可以维护包括服务器认证公钥(q_s)的服务器计算机证书链(c_s),并且服务器计算机维护对应的服务器认证私钥(d_s)。服务器计算机还可以维护服务器敏感数据(sd_s),其可以包括可由客户端计算机用来认证服务器计算机的数据。

在步骤1处,客户端计算机生成客户端盲化因子(d_bc)。

在步骤2处,客户端计算机将盲化因子与客户端认证公钥组合,以确定盲化的客户端认证公钥(q_bc)。

在步骤3处,客户端计算机使用盲化的客户端认证公钥来确定客户端会话标识符(sid_c)。

在步骤4处,客户端计算机向服务器计算机发送盲化的客户端认证公钥。

在步骤5处,服务器计算机确保盲化的客户认证公钥属于正确的椭圆曲线(ec)域。

在步骤6处,服务器计算机生成服务器盲化因子(d_bs)。

在步骤7处,服务器计算机使用服务器认证私钥和服务器盲化因子的组合以及盲化的客户端认证公钥来生成共享秘密(z)。

在步骤8处,服务器计算机将服务器认证公钥和服务器盲化因子组合,以确定盲化的服务器认证公钥(q_bs)。

在步骤9处,服务器计算机使用盲化的客户端认证公钥来确定客户端会话标识符(sid_c)。

在步骤10处,服务器计算机使用盲化的服务器认证公钥来确定服务器会话标识符(sid_s)。

在步骤11处,服务器计算机使用共享秘密、客户端会话标识符和服务器会话标识符来生成服务器会话密钥和客户端会话密钥。

在步骤12处,服务器计算机使用服务器会话密钥对服务器盲化因子、服务器证书链、服务器敏感数据和服务器填充数据(pad_s)进行加密,以确定服务器加密数据(enc_s)。

在步骤13处,将服务器会话密钥和共享秘密归零。

在步骤14处,将盲化的服务器认证公钥和服务器加密数据发送到客户端计算机。

在步骤15处,客户端计算机验证盲化的服务器认证公钥属于正确的ec域。

在步骤16处,客户端计算机使用客户端认证私钥和客户端盲化因子的组合以及盲化的服务器认证公钥来确定共享秘密。

在步骤17处,客户端计算机使用盲化的服务器认证公钥来确定服务器会话标识符。

在步骤18处,客户端计算机使用共享秘密、服务器会话标识符和客户端会话标识符来确定服务器会话密钥和客户端会话密钥。

在步骤19处,客户端计算机将共享秘密和客户端盲化因子归零。

在步骤20处,客户端计算机使用服务器会话密钥对服务器加密数据进行解密,以获得服务器盲化因子、服务器证书链、服务器敏感数据和服务器填充数据。

在步骤21处,客户端计算机从服务器证书链中提取服务器认证公钥。

在步骤22处,客户端计算机验证服务器认证公钥属于正确的ec域。

在步骤23处,客户端计算机验证服务器证书链。

在步骤24处,客户端计算机确保服务器盲化因子和服务器认证公钥的组合等同于从服务器计算机接收到的盲化的服务器认证公钥。

在步骤25处,将服务器盲化因子归零。

在步骤26处,如果在步骤24处检查成功,则在客户端计算机处认证服务器计算机。

在步骤27处,通过使用客户端会话密钥对客户端盲化因子、客户端证书链、客户端敏感数据和客户端填充数据(pad_c)进行加密来生成客户端加密数据(enc_c)。

在步骤28处,客户端计算机向服务器计算机发送客户端加密数据。

在步骤29处,服务器计算机使用客户端会话密钥对客户端加密数据进行解密,以获得客户端盲化因子、客户端证书链、客户端敏感数据和客户端填充数据。

在步骤30处,服务器计算机从客户端证书链中提取客户端认证公钥并且验证客户端证书链。

在步骤31处,服务器计算机确保客户端盲化因子和客户端认证公钥的组合匹配从客户端计算机接收到的盲化的客户端认证公钥。如果它们匹配,则在步骤33处,由服务器计算机来认证客户端计算机。

在步骤32处,将客户端盲化因子归零。

在步骤34处,客户端计算机和服务器计算机可以结束通信,或者使用第二客户端会话密钥和/或服务器会话密钥来继续安全消息传递。

以上描述是示意性的不是限制性的。本领域的技术人员在阅读了本公开后,会明白本发明的许多变化。因此,本发明的范围可以不参照上文的描述确定,而是可以参照所附权利要求连同其全部范围或等同物确定。

应当理解,本发明的任何实施方案可以使用硬件(例如专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式借助通用可编程处理器以模块化或集成方式实现。如本文所使用的,处理器包括单核处理器,同一集成芯片上的多核处理器或单个电路板上的多个处理单元或网络。基于本文中提供的公开和教导,本领域普通技术人员会知道并意识到使用硬件及硬件和软件的组合实现本发明的实施方案的其他方式和/或方法。

本申请中描述的任何软件组件或功能可以实现为使用任何适当计算机语言(比方说例如java、c、c++、c#、objective-c、swift)或脚本语言(诸如perl或python),使用例如传统的或面向对象的技术由处理器执行的软件代码。软件代码可以存储为计算机可读介质上的一系列指令或命令以用于存储和/或传输。适合的非瞬态计算机可读介质可以包括随机存取存储器(ram)、只读存储器(rom)、磁介质(诸如硬盘或软盘)或光介质(诸如光盘(cd)或dvd(数字通用盘))、闪存等等。计算机可读介质可以是这些存储或传输装置的任何组合。

用于包含代码或代码部分的存储介质和计算机可读介质可以包括本领域已知或使用的任何适当介质,其包括存储介质和通信介质,诸如但不限于在用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除式介质(包括ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备)、数据信号、数据传输或可以用来存储或传输期望信息并且可以由计算机访问的任何其他介质。基于本文中提供的公开和教导,本领域技术人员会认识到实现各实施方案的其他方式和/或方法。

还可以使用载波信号编码和传输这些程序,载波信号适于经由符合各种协议(包括互联网)的有线、光和/或无线网络传输。因此,根据本发明的实施方案的计算机可读介质可以使用用这种程序编码的数据信号来创建。用程序代码编码的计算机可读介质可以与可兼容装置一起打包或从其他装置单独地提供(例如通过互联网下载)。任何这样的计算机可读介质可以驻留在单个计算机产品(例如硬盘驱动器,cd或整个计算机系统)上或内部,并且可以存在于系统或网络内的不同计算机产品上或内部。计算机系统可以包括监视器、打印机或用于向用户提供本文提到的任何结果的其他合适的显示器。

本文中描述的任何方法可以完全地或部分地用包括可被配置成执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施方案可以涉及被配置成执行本文中描述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管呈现为编号步骤,但本文中的方法的步骤可以同时或以不同顺序被执行。另外,这些步骤的部分可以与来自其他方法的掐他步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、单元、电路或用于执行这些步骤的其他手段来执行。

在不偏离本发明的实施方案的精神和范围下,具体实施方案的特定细节可以以任何适当方式组合。不过,本发明的其他实施方案可以涉及与每个单独的方面有关的特定实施方案,或者这些单独的方面的特定组合。

上文对本发明的示例性实施方案的描述已经出于图示和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变形是可能的。

除非明确指示有相反的意思,否则叙述“一个/种”或“该/所述”旨在表示“一个/种或多个/种”。除非明确指示有相反的意思,“或”的使用旨在表示是“包括性的或”,而不是“排他性的或”。

本文中提到的所有专利、专利申请、公开和描述出于所有目的通过引用被全部并入本文中。不承认它们为现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1