CN106664206B - 用于已认证的通信的高效方法 - Google Patents
用于已认证的通信的高效方法 Download PDFInfo
- Publication number
- CN106664206B CN106664206B CN201580032715.8A CN201580032715A CN106664206B CN 106664206 B CN106664206 B CN 106664206B CN 201580032715 A CN201580032715 A CN 201580032715A CN 106664206 B CN106664206 B CN 106664206B
- Authority
- CN
- China
- Prior art keywords
- public key
- computing device
- static
- key
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/32—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
- G06Q20/322—Aspects of commerce using mobile devices [M-devices]
- G06Q20/3227—Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/068—Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/061—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Power Engineering (AREA)
Abstract
本发明的实施例涉及用于已认证的通信的高效方法。在一个实施例中,第一计算装置能够生成包括临时公钥和临时私钥的临时密钥对。第一计算装置能够使用临时私钥和静态第二装置公钥生成第一共享秘密。第一计算装置能够使用第一共享秘密加密请求数据,以获得已加密请求数据。第一计算装置能够向服务器计算机发送包括已加密请求数据和临时公钥的请求消息。一旦从服务器计算机接收响应消息,第一计算装置能够使用临时私钥和盲化静态第二装置公钥确定第二共享秘密。第一计算装置然后能够解密来自响应消息的已加密响应数据,以获得响应数据。
Description
相关申请交叉引用
本申请是2014年6月18日提交的美国临时申请号62/014,102(律师案号:79900-911064-1012US01)和2014年6月23日提交的美国临时申请号62/016,048(律师案号:79900-912144-1012US02)的正式案,并要求他们的优先权,出于所有目的他们的全部内容通过引用被并入本文中。
背景技术
随着诸如支持NFC的移动电话和非接触卡的用户装置的数量持续增加,维护支付交易的安全仍是关心的问题。例如,为了进行支付交易,通常需要对用户进行认证并向服务器发送信息。然而,攻击者可能企图窃听交易(例如,通过进行中间人攻击)。因此,攻击者可能企图拦截诸如用户装置标识符的识别数据或者诸如由用户发送的口令的认证数据。如果确定,这些数据可能会被用于非法目的。
而且使问题复杂化的是用户装置本身的安全性。在一些情况下,用户装置可能泄密或以别的方式不能信赖,所以在装置上存储诸如用户私钥的持久或静态安全凭证是不可取的。在这些情形下进行安全的认证通信可能带来挑战。
另外使问题复杂化的是可能性不大的事件,即私钥,诸如存储在用户装置上的私钥或存储在服务器计算机上的私钥被泄密。在这些情形下,期望安全系统表现出前向保密性:私钥的泄密不应当导致实体之间以往的安全通信泄密。
本发明的实施例分别以及一起解决了这些和其它问题。
发明内容
本发明的实施例涉及用于已认证的通信的高效方法。
在一个实施例中,第一计算装置能够生成包括临时公钥和临时私钥的临时密钥对。第一计算装置能够使用临时私钥和静态第二装置公钥生成第一共享秘密。第一计算装置能够使用第一共享秘密加密请求数据,以获得已加密请求数据。第一计算装置能够向第二计算装置发送包括已加密请求数据和临时公钥的请求消息。
一旦接收请求消息,第二计算装置能够使用临时公钥和静态第二装置私钥生成第一共享秘密。第二计算装置能够使用第一共享秘密解密已加密请求数据,以获得请求数据。第二计算装置然后能够使用盲化静态第二装置私钥和临时公钥生成第二共享秘密。第二计算装置能够使用第二共享秘密加密响应数据,以确定已加密响应数据。第二计算装置然后能够向第一计算装置发送包括已加密响应数据和盲化静态第二装置公钥的响应消息。
一旦接收响应消息,第一计算装置能够使用临时私钥和盲化静态第二装置公钥确定第二共享秘密。第一计算装置然后能够解密来自响应消息的已加密响应数据,以获得响应数据。
其它实施例涉及与本文中描述的方法关联的系统、便携式消费者装置和计算机可读介质。
参照以下详细描述和附图,可以获得对本发明的实施例的本质和优点的更好理解。
附图说明
图1示出可以用于本发明的实施例的示例性系统的图。
图2示出根据一些实施例的计算装置的示例。
图3示出图解说明根据一些实施例第一计算装置和第二计算装置之间的通信的流程图。
图4-5示出根据一些实施例安全地对第二计算装置认证并从第二计算装置获得响应数据的方法。
图6-7示出根据一些实施例安全地处理来自第一计算装置的认证请求消息并向第一计算装置提供认证响应消息的方法。
图8示出图解说明根据一些实施例在生成、传送和处理认证请求消息时执行的操作的数据流程图。
图9示出图解说明根据一些实施例在生成、传送和处理认证响应消息时执行的操作的数据流程图。
图10-11示出根据一些实施例安全地对第二计算装置认证并从第二计算装置获得响应数据的第二方法。
图12-13示出根据一些实施例安全地处理来自第一计算装置的认证请求消息并向第一计算装置提供认证响应消息的第二方法。
图14示出图解说明根据一些实施例在生成、传送和处理认证请求消息的第二方法中执行的操作的数据流程图。
图15示出图解说明根据一些实施例在生成、传送和处理认证响应消息的第二方法中执行的操作的数据流程图。
图16示出根据一些实施例安全地对第二计算装置认证并从第二计算装置获得响应数据的优化方法。
图17示出根据一些实施例安全地处理来自第一计算装置的认证请求消息并向第一计算装置提供认证响应消息的优化方法。
图18示出示例性计算机设备的框图。
术语
在讨论本发明的一些实施例之前,对一些术语的描述可能有助于理解实施例。
术语“服务器计算机”可以包括计算机或计算装置的集群。例如,服务器计算机可以是大的主机、小型计算机集群或像一个单元一样工作的一组服务器。在一个示例中,服务器计算机可以是耦连至网络服务器的数据库服务器。服务器计算机可以耦连到数据库并且可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其它逻辑、或前述内容的组合。服务器计算机可以包括一个或多个计算设备并且可以使用各种计算结构、排列、和编译中的任何一种来服务于来自一个或多个客户端计算机的请求。
术语“公/私钥对”可以包括由实体生成的一对关联加密密钥。公钥可以用于公共功能,诸如对要发送给实体的消息进行加密,或用于对应该由实体做出的数字签名进行验证。另一方面,私钥可以用于私用功能,诸如对接收到的消息解密或应用数字签名。公钥通常会由被称为认证机构(CA)的主体进行授权,认证机构将公钥存储在数据库中并将其分配给请求它的任何其它实体。私钥一般会被保持在安全存储介质中并且通常只有实体知道。然而,本文中描述的密码系统可以以用于恢复丢失的密钥并避免数据丢失的密钥恢复机制为特征。公钥和私钥可以是任何适当格式,包括基于RSA或椭圆曲线密码学(ECC)的格式。
“数字签名”可以指基于公/私钥对应用算法的结果,这种算法允许签名方显示,并且允许验证方验证文件的真实性和完整性。签名方借助于私钥起作用,验证方借助于公钥起作用。这个过程证明发送者的真实性、已签名文件的完整性和所称的不可否认性原则,所述原则不允许否认已经签名的内容。证书或包括签名方的数字签名的其它数据被称为是由签名方“签名的”。
“证书”或“数字证书”可以包括使用数字签名将公钥与关联身份的数据绑定的电子文件或数据文件。证书可以包括一个或多个数据字段,诸如身份的合法姓名、证书的序列号、证书的有效起止日期、证书相关的权限等。证书可以包含指示证书有效的第一天的“有效起始”日期,以及指示证书有效的最后一天的“有效截止”日期。证书还可以包含证书中包括数据字段的数据的散列。除非另外说明,每个证书都由证书机构签名。
“证书机构”(CA)可以包括可操作耦连以向实体发行证书的一个或多个服务器计算机。CA可以使用CA证书证明其身份,CA证书包括CA的公钥。可以用另一个CA的私钥或者可以用同一个CA的私钥对CA证书签名。后者被称为自签名证书。CA可以维护CA所发行的所有证书的数据库,并且还可以维护被撤销的证书的列表。
在一个典型过程中,证书机构从其身份已知的实体接收未签名的证书。未签名的证书包括公钥、一个或多个数据字段、以及证书中的数据的散列。CA用与CA证书上所包括的公钥相对应的私钥对证书进行签名。CA然后可以将签名的证书存储在数据库中,并将签名的证书发行给实体。
“密码随机数”可以包括任何数字、字符串、位序列、或旨在关联单个通信会话使用的其它数据值。在一些情况下,密码随机数可以是随机或伪随机生成的。通常,密码随机数具有足够的长度以使多次独立生成同一随机数值的可能性不大。
“盲化密钥(blinded key)”,诸如“盲化公钥”可以包括通过与另一数据元素(如密码随机数)结合而被模糊化或以其它方式修改了其原始值的密钥。例如,在椭圆曲线密码学中,公钥可以乘以随机数从而生成“盲化公钥”。类似地,私钥可以乘以随机数从而生成“盲化私钥”。
“临时密钥对”可以包括为单次交易或其它通信会话使用而生成的公钥(即“临时公钥”)和私钥(即“临时私钥”)。临时密钥对可以是任何适当格式,诸如ECC或RSA。通常,一旦交易或通信会话已经结束,就可以删除临时密钥对。
“静态密钥对”可以包括在一段时间内被保持的公钥(即“静态公钥”)和私钥(即“静态私钥”)。通常但不一定,静态私钥可以被安全地存储在诸如硬件安全模块(HSM)或安全元件(SE)中。通常但不一定,静态公钥可以通过使用数字证书绑定到身份。静态密钥对可以是任何适当格式,诸如ECC或RSA。
“共享秘密”可以包括只对安全通信中的被授权方已知的任何数据值或其它信息。共享秘密可以以任何适当方式由任何适当数据生成。例如,可以使用基于Diffie-Hellman的算法,诸如椭圆曲线Diffie-Hellman(ECDH),以由私钥和公钥生成共享秘密。在一些情况下,共享秘密可以用来生成会话密钥。
术语“识别数据”可以包括与用户或装置关联的任何数据或信息。识别数据的示例可以包括与装置关联的用户的姓名,与装置关联的组织,与装置关联的支付信息,诸如主账号(PAN),装置的到期日期,与装置关联的证书,装置的IMEI或序列号,等等。
术语“认证数据”可以包括适于认证用户或装置的任何数据或信息。认证数据的示例可以包括口令或口令短语,秘密密钥(例如,私钥)等。
“识别因子”可以包括从识别数据和/或认证数据确定的任何数据或信息。通常但不一定,识别因子可以通过对识别数据和认证数据的组合求散列来生成。
“加密密钥”可以包括适用于用密码加密数据的任何数据值或其它信息。“解密密钥”可以包括适用于对已加密的数据进行解密的任何数据值或其它信息。在一些情况下,用于加密数据的同一密钥可以可操作以解密数据。这种密钥可以被称作对称加密密钥。
术语“会话密钥”可以包括用来加密或解密待被安全传送的数据的任何密钥。在一些情况下,会话密钥可以从发送方和接收方都知道的共享秘密生成。例如,会话密钥可以使用密钥导出函数和共享秘密被导出。
具体实施方式
本发明的实施例涉及用于已认证的通信的高效方法。例如,第一计算装置和第二计算装置能够相互认证并交换消息,而不会以明文形式暴露任何敏感信息。
在一个实施例中,第一计算装置能够生成包括临时公钥和临时私钥的临时密钥对。第一计算装置能够使用临时私钥和第二计算装置的静态第二装置公钥生成第一共享秘密。第一计算装置能够使用第一共享秘密加密请求数据以获得已加密请求数据。第一计算装置能够向第二计算装置发送包括已加密请求数据和临时公钥的请求消息。
一旦接收请求消息,第二计算装置能够使用临时公钥和静态第二装置私钥生成第一共享秘密。第二计算装置能够使用第一共享秘密解密请求消息中的已加密请求数据,以获得请求数据。第二计算装置然后能够使用盲化静态第二装置私钥和临时公钥生成第二共享秘密。第二计算装置能够使用第二共享秘密加密响应数据,以确定已加密响应数据。第二计算装置然后能够向第一计算装置发送包括已加密响应数据和盲化静态第二装置公钥的响应消息。
一旦接收响应消息,第一计算装置能够使用临时私钥和盲化静态第二装置公钥确定第二共享秘密。第一计算装置然后能够解密来自响应消息的已加密响应数据,以获得响应数据。
在一些实施例中,第一计算装置能够保存静态第一装置私钥和静态第一装置公钥,临时密钥对可以是包括临时第一装置公钥和临时第一装置私钥的临时第一装置密钥对。在这样的一些实施例中,由第一装置发送的请求数据可以包括第一装置证书,第一装置证书包括静态第一装置公钥,从第二计算装置接收的响应消息可以包括临时第二装置公钥。相应地,第一计算装置能够使用临时第二装置公钥和静态第一装置私钥生成辅助共享秘密,并使用辅助共享秘密解密已加密响应数据。
本发明的实施例能够保护参与到通信中的计算装置的身份。例如,攻击者可能企图监听或以其它方式监视在第一计算装置(例如,移动装置)和第二计算装置(例如,服务器计算机)之间传送的数据。由于本发明的实施例能够避免以明文发送任何可识别信息(诸如静态第一装置公钥或静态第二装置公钥),所以保护计算装置的身份不受未授权实体的攻击。
实施例还能够只使用单个请求消息和单个响应消息实现双向认证的安全通信。这允许实现减少的延迟的快速认证,并且允许将实施例的安全性质集成到其它现有的请求/响应流中,而不需要发送附加消息。例如,在一些实施例中,请求消息的内容能够被附加到可以为不同目的而发送的请求消息(对于响应消息进行必要改动)。
一些实施例还能够提供前向保密的性质:即便静态第一装置私钥或静态第二装置私钥泄密,用来加密请求数据和响应数据的共享秘密在通信会话结束之后不能被重新生成。例如,在一些实施例中,第一计算装置能够使用临时第一装置私钥、盲化静态第二装置公钥、静态第一装置私钥和临时第二装置公钥生成第二会话密钥。在这些实施例中,即便盲化静态第二装置公钥和临时第二装置公钥在传送中被偷听者觉察到,静态第一装置私钥稍后被泄密,第二会话密钥也不能被攻击者重新生成,原因是临时第一装置私钥已经从第一计算装置删除。没有第二会话密钥,使用第二会话密钥加密的数据不能被解密。因此,即便在稍后第一计算装置泄密的可能性不大的情况下,这些实施例也允许通信保持安全。
在另一示例中,第二计算装置能够使用临时第一装置公钥、盲化静态第二装置私钥、静态第一装置公钥和临时第二装置私钥生成第二会话密钥。在这些实施例中,即便静态第一装置公钥和临时第一装置公钥在传送中被偷听者觉察到,并且静态第二装置私钥稍后被泄密,第二会话密钥也不能被攻击者重新生成,原因是临时第二装置私钥已经从第二计算装置上删除。没有第二会话密钥,使用第二会话密钥加密的数据不能被解密。因此,即便在稍后第二计算装置泄密的可能性不大的情况下,这些实施例允许通信保持安全。
因此,即便通信的任何终点被泄密,实施例也能够允许安全通信。
而且,实施例能够在计算装置以前进行过通信的情况下提供更快速和更高效的通信。在一些实施例中,在第一计算装置处的注册可以用来存储针对一个或多个第二计算装置的未来共享秘密和未来第二装置会话标识符。在第二计算装置处的类似注册可以用来存储针对一个或多个第一装置的未来共享秘密和未来盲化静态第二装置公钥值。因此,如果第一装置和第二装置通信多次,则可以使用存储的数据。这能够避免可能相对耗时和计算量大的某些操作,诸如椭圆曲线Diffie-Hellman(ECDH)算法。这还能够给计算装置的用户提供改进的体验,原因是实施例允许处理减少,这能够提高电池寿命,减少通信时间。例如,根据一些实施例,两个装置之间的安全和私密通信能够在少于50毫秒内进行。
实施例还能够看上去与对偷听者不使用盲化密钥的系统相同,原因是偷听者不会知道从第一计算装置传送到第二计算装置或从第二计算装置传送到第一计算装置的公钥是盲化公钥还是非盲化公钥。因此,实施例能够提供针对协议的反向工程的保护。
I.系统
A.支付系统
图1示出根据本发明的实施例的系统。所述系统包括用户(未示出),用户可以操作用户装置101。用户可以使用用户装置101与访问装置102通信来进行支付交易。如本文中使用的“用户装置”可以包括桌面计算机、膝上型计算机、移动电话、平板电脑、信用卡、借记卡或任何适当计算装置。如本文中使用的“访问装置”可以包括适于与用户装置通信的任何计算装置,诸如销售点(POS)终端或网络服务器。在一些实施例中,访问装置102可以与用户装置101直接通信。在其它实施例中,访问装置102可以经由接口装置,诸如智能手表、智能眼镜或任何其它适当装置与用户装置101通信。访问装置102可以连接到商家计算机103,商家计算机103可以连接到收单方计算机104。收单方计算机104可以经由支付处理网络105连接到发行方计算机106。任何一个或所有装置101-106可以使用诸如服务器计算机的一个或多个计算装置实现。
如本文中使用的“发行方(issuer)”通常可以指维护用户的金融账户并且常常向用户发行或提供诸如信用或借记卡或移动装置的用户装置101的商业实体(例如银行)。“商家”通常是参与交易并且能够出售商品或服务的实体。“收单方(acquirer)”通常是与特定商家或其它实体有商业关系的商业实体(例如商业银行)。一些实体能够既执行发行方功能也执行收单方功能。一些实施例可以包括这种单实体的发行方-收单方。每个实体可以包括一个或多个计算机设备(例如,访问装置102、商家计算机103、收单方计算机104、支付处理网络105和发行方计算机106)以实现通信,或者执行本文中描述的一个或多个功能。
支付处理网络105可以包括数据处理子系统、网络和用来支持和传送证书机构服务、授权服务、异常文件服务、交易评分服务和清算和结算服务的操作。示例性支付处理网络可以包括VisaNetTM。诸如VisaNetTM之类的支付处理网络能够处理信用卡交易、借记卡交易和其它类型的商业交易。VisaNetTM具体包括处理授权请求的VIP系统(Visa集成支付系统)和执行清算和结算服务的Base II系统。
支付处理网络105可以包括一个或多个服务器计算机。服务器计算机通常是一个功能强大的计算机或计算机集群。例如,服务器计算机可以是大的主机、小型计算机集群或像一个单元一样工作的一组服务器。在一个示例中,服务器计算机可以是耦连到网络服务器的数据库服务器。支付处理网络105可以使用任何适当的有线或无线网络,包括互联网。
在一些支付交易中,用户在商家处使用用户装置101购买商品或服务。用户装置101能够在与商家计算机103关联的商家处与访问装置102交互。例如,用户可以对着访问装置102中的NFC阅读器敲击用户装置101。替代性地,诸如在离线或电子商务交易中,用户可以通过计算机网络给商家指示支付细节。
用于交易的授权请求消息可以由访问装置102或商家计算机103生成,然后转发到收单方计算机104。在接收授权请求消息后,收单方计算机104将授权请求消息发送到支付处理网络105。支付处理网络105然后将授权请求消息转发到与发行方关联的相应发行方计算机106,用户或用户装置101与发行方关联。
“授权请求消息”可以是电子消息,其被发送到交易处理网络和/或发行方以请求交易的授权。根据一些实施例的授权请求消息可以遵守ISO 8583,ISO 8583是交换与用户使用支付装置或支付账户进行的支付关联的电子交易信息的系统的标准。授权请求消息可以包括发行方账户标识符,其可以与支付装置或支付账户关联。授权请求消息还可以包括与“识别信息”对应的附加数据元素,包括但只作为示例:服务代码、CVV(卡验证值)、dCVV(动态卡验证值)、到期日期等。授权请求消息还可以包括“交易信息”,诸如与当前交易关联的任何信息,诸如交易金额、商家标识符、商家位置等以及可以用来确定是否识别和/或授权交易的任何其它信息。授权请求消息还可以包括其它信息,诸如识别生成授权请求消息的访问装置的信息,关于访问装置的位置的信息等。
在发行方计算机106接收授权请求消息之后,发行方计算机106将授权响应消息发送回支付处理网络105,以指示当前交易是被授权(或不被授权)。支付处理网络105然后将授权响应消息转发回收单方计算机104。在一些实施例中,例如根据欺诈风险评分的值,即便发行方计算机106已经授权交易,支付处理网络105也可以拒绝交易。收单方计算机104然后将响应消息发送回商家计算机103。
“授权响应消息”可以是由发行方计算机106和/或支付处理网络105生成的对授权请求消息的电子消息应答。授权响应消息可以包括(只作为示例)以下状态指示符中的一个或多个:批准-交易被批准;拒绝-交易不被批准;或呼叫中心-响应未决的更多信息,商家必须呼叫免费授权电话号码。授权响应消息还可以包括授权代码,其可以是发行方响应于电子消息中的授权请求消息(直接地或者通过支付处理网络105)返回商家计算机103的指示交易被批准的代码。此代码可以用作授权的证据。如上文指出的,在一些实施例中,支付处理网络105可以生成或一般通过收单方计算机104将授权响应消息转发到商家。
在商家计算机103接收授权响应消息之后,商家计算机103然后可以为用户提供授权响应消息。响应消息可以由访问装置102显示,或者可以打印在物理收条上。替代性地,如果交易是在线交易,则商家可以以虚拟收条提供授权响应消息的网页或其它指示。收条可以包括交易的交易数据。
在一天结束时,常规的清算和结算处理可以由支付处理网络105进行。清算处理是在收单方和发行方之间交换财务细节以促进发布到客户的支付账户并对账用户的结算位置的过程。
B.计算装置
图2示出根据一些实施例的计算装置200的示例。计算装置200的示例可以包括移动电话、平板电脑、桌面和膝上型计算机、可穿戴装置(例如,智能手表、健身手环、脚链、戒指、耳环等)、服务器计算机或适于接收、存储和传送数据的任何其它计算装置。计算装置200可以包括通信耦连到网络接口202的处理器201、存储器203和计算机可读介质210。
处理器201可以包括一个或多个CPU,每个CPU可以包括至少一个处理器内核,其可操作以执行用于执行用户和/或系统生成的请求的程序组件。CPU可以是微处理器,诸如AMD的速龙、毒龙和/或皓龙;IBM和/或摩托罗拉的PowerPC;IBM和索尼的Cell处理器;因特尔的赛扬、安腾、奔腾、Xeon和/或XScale;和/或类似的处理器。CPU通过通过导管的信号与存储器交互,以根据传统的数据处理技术执行存储的信号程序代码。在一些情况下,处理器201可以包括通过网络耦连的多个CPU,诸如在分布式或集群式计算系统中。
网络接口202可以被配置成允许计算装置200使用一个或多个通信网络与诸如装置101-106的其它实体、其它计算装置等通信。网络接口可以接受、通信和/或连接到通信网络。网络接口可以使用以下的连接协议,这些协议诸如但不限于:直连、以太网(粗的,细的,双绞线10/100/1000Base T等等)、令牌环网、诸如IEEE 802.11a-x的无线连接,等等。通信网络可以是以下的任何一个和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);安全定制连接;广域网(WAN);无线网络(例如,使用诸如但不限于无线应用协议(WAP)、I-模式等等的协议);等等。
存储器203可以用来存储数据和代码。存储器203可以在内部或外部(例如基于云的数据存储)耦连到处理器201,并且可以包括易失性和/或非易失性存储器的任何组合,诸如RAM、DRAM、ROM、闪存或任何其它适当的存储器装置。
计算机可读介质210可以是存储器的形式(例如,闪存,ROM等),并且可以包括由处理器201执行的用于实现本文中描述的方法的代码。计算机可读介质210可以包括认证模块211、加密模块212和应用模块213。
认证模块211可以包括适于对另一计算装置认证计算装置200或在计算装置200处认证另一计算装置的任何程序、软件或其它代码。例如,认证模块211可以被配置成生成并将认证请求消息发送到另一计算装置,接收并处理来自其它计算装置的认证响应消息。类似地,认证模块211可以被配置成从另一计算装置接收并处理认证请求消息,生成并将认证响应消息发送到其它计算装置。在各个实施例中,认证模块211可以被配置成执行图4、6、10、12、16和17的方法400、600、1000、1200、1600或1700的一些或全部。
加密模块212可以包括适于执行与加密相关的操作的任何程序、软件或其它代码。例如,加密模块可以被配置成诸如使用密钥协商协议(诸如Diffie-Hellman)生成共享秘密。加密模块212还可以被配置成诸如使用密钥导出函数(KDF)从共享秘密导出会话密钥。在一些实施例中,加密模块212可以被配置成存储一个或多个静态密钥,诸如静态第一装置私钥或静态第二装置私钥。在一些实施例中,加密模块212可以使用软件(诸如主机卡模拟或HCE)和硬件(诸如硬件安全模块或HSM)的任意组合实现。
应用模块213可以包括适于运行一个或多个应用的任何程序、软件或其它代码。例如,应用模块213可以包括可操作以执行支付交易的支付应用。在一些实施例中,支付应用可以被配置成允许用户选择要购买的商品和服务,从支付账户的发行方获得安全凭证(例如密码密钥),和/或发起或执行支付交易(例如使用安全凭证)。应用模块313可以包括可操作以服务于一个或多个计算装置处的支付应用的支付应用服务。在一些实施例中,支付应用服务可以被配置成允许用户选择要购买的商品和服务,向计算装置提供安全凭证(例如密码密钥),和/或发起或执行支付交易。
II.认证的通信方法
实施例可以使用上文描述的系统和设备执行用于已认证的通信的方法。图3-7描述了这样一些方法。
图3示出图解说明根据一些实施例第一计算装置301和第二计算装置302之间的通信的简化流程图。计算装置301和302在一些实施例中可以根据图2的计算装置200实现。如图3所示,第一计算装置301可以向第二计算装置302发送使用识别数据生成的请求消息。通常,识别数据是加密的或另外受保护的。在一些实施例中,请求消息可能经过不可信网络303。第二计算装置302能够处理请求消息,以获得并验证识别数据。第二计算装置302然后能够加密有效载荷数据,并将已加密有效载荷数据在响应消息中传送到第一计算装置301。第一计算装置301然后能够处理响应消息,以获得有效载荷数据。
第二计算装置302能够保存包括静态第二装置公钥和静态第二装置私钥的静态第二装置密钥对。类似地,第一计算装置301能够保存包括静态第一装置公钥和静态第一装置私钥的静态第一装置密钥对。此外,第一计算装置301和/或第二计算装置302能够生成临时密钥对(即,分别是临时第一装置密钥对或临时第二装置密钥对)。一个或多个这些密钥能够用来加密或解密请求消息和/或响应消息。
在各个实施例中,计算装置301和302中的一个可以是装置、网络或计算机101-105中任何一个的一部分。例如,在一些实施例中,第一计算装置301可以是用户装置101,第二计算装置302可以是访问装置102或服务器计算机。在这些实施例中,当用户进行交易时,第一计算装置301与第二计算装置302通信。在各个实施例中,通信可以根据图4、6、10、12、16和17的方法400、600、1000、1200、1600或1700进行。
A.第一计算装置
图4-5示出根据一些实施例安全地对第二计算装置302认证并从第二计算装置302获得响应数据的方法400。在一些实施例中,方法400可以由第一计算装置301执行。不过,在其它实施例中,方法400的一些或所有步骤可以由其它实体执行。
在步骤401,生成临时密钥对。“临时密钥对”可以包括供单次交易或其它通信会话使用而生成的公钥(即“临时公钥”)和私钥(即“临时私钥”)。临时密钥对可以是任何适当形式,诸如ECC或RSA。通常,一旦使用临时密钥的通信会话结束,或者一旦使用临时密钥对生成了一个或多个共享秘密,临时密钥对可以被删除。
在步骤402,使用识别数据和认证数据计算识别因子。识别数据可以包括与用户或第一计算装置301关联的任何数据或信息。识别数据的示例可以包括与第一计算装置301关联的用户的姓名,与第一计算装置301关联的组织,与第一计算装置301关联的支付信息,诸如主账号(PAN),与第一计算装置301关联的到期日期,与第一计算装置301关联的证书,第一计算装置301的IMEI或序列号,等等。认证数据可以包括适于认证用户或第一计算装置301的任何数据或信息。认证数据的示例可以包括口令或口令短语,秘密密钥(例如私钥)等。认证因子可以包括从识别数据和/或认证数据确定的任何数据或信息。例如,在一些实施例中,识别因子可以通过对识别数据和认证数据的组合求散列来生成。
在步骤403,将识别因子与临时公钥和临时私钥组合。结果,可以确定组合临时公钥和组合临时私钥。组合密钥可以包括通过与另一数据元素或值结合已经被模糊化或以其它方式修改其原始值的密钥。例如,组合临时公钥可以是临时公钥和识别因子的组合。类似地,组合临时私钥可以是临时私钥和识别因子的组合。在一些实施例中,将密钥与数据元素组合可以包括执行密钥和数据元素的点乘。
在步骤404,使用组合临时私钥和静态第二装置公钥生成第一共享秘密。静态第二装置公钥可以包括由第二计算装置302保存在诸如安全元件中的静态公钥。在一些实施例中,静态第二装置公钥可以从第二计算装置302的数字证书确定,该数字证书之前可能已经由第一计算装置301获得,并且由可信证书机构签名。
共享秘密可以使用任何适当方法由组合临时私钥和静态第二装置公钥生成。例如,在使用椭圆曲线密码学的实施例中,共享秘密可以使用椭圆曲线Diffie-Hellman协议(ECDH)确定。
在步骤405,使用第一共享秘密和第一补充数据生成第一会话密钥。第一补充数据可以包括用来生成第一会话密钥的任何其它数据。第一补充数据的示例可以包括第二装置标识符和/或被截断的临时公钥。
会话密钥可以是任何适当格式(例如,AES,DES,Blowfish等),任何适当长度,使用任何适当密钥导出函数(KDF)生成。例如,在一个实施例中,会话密钥可以使用基于口令的密钥导出函数2(Password-Based Key Derivation Function 2,PBKDF2)算法生成。在一些实施例中,其它数据,诸如第一装置标识符可以用作密钥导出函数的附加输入。
在步骤406,使用第一会话密钥加密临时公钥、识别数据和第一装置标识符,以生成已加密请求数据。“第一装置标识符”可以包括适于识别第一计算装置的任何标识符。
在步骤407,向第二计算装置302发送包括组合临时公钥和已加密请求数据的认证请求消息。在一些实施例中,认证请求消息在达到第二计算装置302之前可以经过一个或多个媒介(例如,不可信网络303)。
在步骤408,从第二计算装置302接收包括盲化静态第二装置公钥和已加密响应数据的认证响应消息。通常,盲化静态第二装置公钥可以是步骤404生成第一共享秘密使用的静态第二装置公钥的盲化形式。
在步骤409,使用临时私钥和在步骤408中从第二计算装置302接收的盲化静态第二装置公钥生成第二共享秘密。第二共享秘密可以使用任何适当方法,诸如ECDH由临时私钥和盲化静态第二装置公钥生成。
在步骤410,使用第二共享秘密和第二补充数据生成第二会话密钥。第二补充数据可以包括用来生成第二会话密钥的任何其它数据。第二补充数据的示例可以包括第二装置标识符,第一装置标识符和/或被截断的临时公钥。第二会话密钥可以使用任何适当KDF生成。
在步骤411,使用第二会话密钥解密已加密响应数据,以获得密码随机数、第二装置证书链和有效载荷数据。第二装置证书链可以包括从根CA证书到第二装置证书的一个或多个签名证书链,由此,该证书链确立第二装置证书的真实性。有效载荷数据可以包括任何适当数据。例如,有效载荷数据可以包括交易的确认,用户的账户余额,能够用来执行未来交易的密码密钥,诸如限制使用密钥(LUK)。
在步骤412,验证第二装置证书链。第二装置证书链可以使用任何适当在线或离线方法来验证。例如,对于链中的一个或多个证书中的每一个,证书的数字签名可以使用已知的可信公钥(例如,证书机构的公钥或由CA适当授权的实体的公钥)来验证。例如,在一些实施例中,数字签名算法,诸如椭圆曲线数字签名算法(ECDSA)可以用来验证证书。
在步骤413,使用第二装置证书和密码随机数验证盲化静态第二装置公钥。验证盲化静态第二装置公钥可以包括确保盲化静态第二装置公钥与预期值匹配。例如,在一些情况下,第二盲化静态第二装置公钥可以使用第二装置证书上包括的静态第二装置公钥和步骤411解密的密码随机数生成。然后,第二盲化静态第二装置公钥可以与步骤408接收的盲化静态第二装置公钥比较,以确保这两个密钥匹配。替代性地,在一些情况下,可以通过将步骤408接收的盲化静态第二装置公钥与存储的盲化静态第二装置公钥比较,来验证盲化静态第二装置公钥。如果密钥匹配,则第二计算装置302可以被认证。否则,认证可能失败。
应当注意,此认证方法(即验证盲化静态公钥)能够提供这样的优点,即可能被认为是敏感的(因为它可能揭示第二计算装置302的身份)静态第二装置公钥不需要以明文发送。因此,能够在完成第二计算装置302的认证的同时,保护第二计算装置302的身份不被捕获认证请求消息的偷听者攻击。
在步骤414,使用有效载荷数据执行交易。在一些实施例中,有效载荷数据可以包括支付凭证(例如,PAN或密码密钥)。在这些实施例中,交易可以使用支付凭证执行。例如,如果有效载荷数据包括密码密钥,则用于交易的密码可以使用密码密钥生成。该密码在进行交易时则能够使用。
B.第二计算装置
图6-7示出根据一些实施例安全地处理来自第一计算装置301的认证请求消息并向第一计算装置301提供认证响应消息的方法600。在一些实施例中,方法600可以由第二计算装置302执行。不过,在其它实施例中,方法600的一些或所有步骤可以由其它实体执行。
通常,在方法600之前,第二计算装置302保存静态第二装置密钥对。静态第二装置密钥对可以包括公钥(即“静态第二装置公钥”)和私钥(即“静态第二装置私钥”)。第二计算装置302还可以包括“第二装置证书”,其包括静态第二装置公钥。第二装置证书可以由证书机构签名,证书机构诸如支付处理网络105或发行方计算机106。
在步骤601,从第一计算装置301接收包括组合临时公钥和已加密请求数据的认证请求消息。通常,组合临时公钥可以由第一计算装置301使用临时公钥和识别因子(例如,根据方法400的步骤403)生成。
在步骤602,使用在步骤601接收的组合临时公钥和静态第二装置私钥生成第一共享秘密。共享秘密可以使用任何适当方法,诸如ECDH从组合临时公钥和静态第二装置私钥生成。
在步骤603,使用第一共享秘密和第一补充数据生成第一会话密钥。第一补充数据可以包括用来生成第一会话密钥的任何其它数据。通常,在步骤603可以使用与在第一计算装置处(例如,根据方法400的步骤405)生成第一会话密钥使用的相同的数据。
在步骤604,使用第一会话密钥解密已加密请求数据,以获得包括临时公钥、第一装置标识符和识别数据的请求数据。临时公钥可以对应于在步骤601接收的组合临时公钥。第一装置标识符可以包括适于识别第一计算装置301的任何数据。识别数据可以包括与用户或第一计算装置301关联的任何数据或信息。识别数据的示例可以包括与第一计算装置301关联的用户的姓名,与第一计算装置301关联的组织,与第一计算装置301关联的支付信息,诸如主账号(PAN),与第一计算装置301关联的到期日期,与第一计算装置301关联的证书,第一计算装置301的IMEI或序列号,等等。
在步骤605,使用第一装置标识符验证识别数据。例如,在一些实施例中,可以使用第一装置标识符从装置数据库检索对应的识别数据。然后,通过与接收的识别数据比较,能够验证已解密识别数据。
在步骤606,检索与第一装置标识符关联的认证数据和/或识别数据。认证数据可以包括适于认证用户或第一计算装置301的任何数据或信息。认证数据的示例可以包括口令或口令短语,秘密密钥(例如,私钥)等。在一些实施例中,可以从装置数据库检索认证数据。
在步骤607,使用检索到的认证数据和识别数据生成识别因子。识别因子可以包括从识别数据和/或认证数据确定的任何数据或信息。例如,在一些实施例中,识别因子可以通过对识别数据和认证数据的组合求散列来生成。通常,以与在第一计算装置301处(例如,根据步骤402)相同的方式在步骤607执行识别因子的生成。
在步骤608,使用临时公钥和识别因子验证组合临时公钥。验证组合临时公钥可以包括确保组合临时公钥与预期值匹配。例如,在一些情况下,可以使用在步骤604获得的临时公钥和在步骤607确定的识别因子,生成第二组合临时公钥。然后,可以将第二组合临时公钥与在步骤601接收的组合临时公钥比较,以确保密钥匹配。如果密钥匹配,第一计算装置301可以被认证。否则,认证可能失败。
应当注意,此认证方法(即,验证组合临时密钥)提供这样的优点,即可能是敏感的认证数据不需要以明文甚至不需要以加密形式传送。因此,即便静态第二装置私钥稍后被泄密(不过不太可能),明文认证数据也不会被暴露。而且,由于密钥的盲化(blinding)通常是不可逆的,所以攻击者即使知道组合临时公钥和临时公钥,也不能导出识别因子,更不用说用来生成识别因子的认证数据。
在步骤609,生成密码随机数。密码随机数可以是使用任何适当方法生成的随机或伪随机数据值。
在步骤610,使用密码随机数和识别因子对静态第二装置公钥和静态第二装置私钥进行盲化。结果,可以确定盲化静态第二装置公钥和盲化静态第二装置私钥。盲化密钥可以包括通过与一个或多个其它数据元素组合已经被模糊化或以其它方式修改其原始值的密钥。例如,组合临时公钥可以是临时公钥、密码随机数和识别因子的组合(例如点乘)。类似地,组合临时私钥可以是临时私钥、密码随机数和识别因子的组合。
在步骤611,使用盲化静态第二装置私钥和临时公钥生成第二共享秘密。共享秘密可以使用任何适当方法,诸如ECDH由组合临时公钥和静态第二装置私钥生成。
在步骤612,使用第二共享秘密和第二补充数据生成第二会话密钥。第二补充数据可以包括用来生成第二会话密钥的任何其它数据。通常,在步骤612,可以使用与在第一计算装置处(例如,根据方法400的步骤410)生成第二会话密钥使用的相同的数据。
在步骤613,使用第二会话密钥加密密码随机数、第二装置证书链和有效载荷数据,以生成已加密响应数据。第二装置证书链可以包括从根CA证书到第二装置证书的一个或多个签名证书链,由此,该证书链确立第二装置证书的真实性。有效载荷数据可以包括任何适当数据。例如,有效载荷数据可以包括交易的确认,用户的账户余额,能够用来执行未来交易的密码密钥,诸如限制使用密钥(LUK),等等。
在步骤614,向第一计算装置301发送包括盲化静态第二装置公钥和已加密响应数据的认证响应消息。在一些实施例中,在到达第一计算装置301之前,认证响应消息可以经过一个或多个媒介(例如,不可信网络303)。
III.认证的通信流
图8和图9是图解说明根据本发明的一些实施例各个数据元素的计算和传输的数据流程图。如图8和图9所示,矩形框指示数据元素(例如,识别因子),圆指示要执行的操作(例如,密钥生成)。指向圆的每个箭头指示用于相应操作符的操作数,离开圆的每个箭头指示相应操作符的结果。不过,应当注意,一些实施例可以不使用某操作的所有示出的操作数,一些实施例可以使用示出的操作的额外操作数。此外,实施例不一定执行所有示出的操作,和/或可以执行图8和图9中没有示出的额外的操作。
A.认证请求消息
图8示出图解说明根据一些实施例在生成、传送和处理认证请求消息时执行的操作的数据流程图。
如图8中所示,第一计算装置301使用公/私钥对生成器(KeyGen)来生成临时公钥(ePubF)和临时私钥(ePrivF)。临时公钥(ePubF)与识别因子(IdFactor)组合,以生成组合临时公钥(ePubF)。类似地,临时私钥(ePrivF)与识别因子(IdFactor)组合,以生成组合临时私钥(ePrivF*)。第一计算装置301使用组合临时私钥(ePrivF*)和静态第二装置公钥(PubS)作为椭圆曲线Diffie-Hellman(ECDH)运算的输入,以生成第一共享秘密(Z1)。第一共享秘密用作密钥导出函数(KDF)的输入,以导出第一会话密钥(SK1)。第一计算装置301使用第一会话密钥(SK1)借助认证加密(AE)算法加密第一装置标识符(IdF)和识别数据(IdData),产生已加密请求数据。已加密请求数据和组合临时公钥(ePubF*)在请求消息中被发送到第二计算装置302。
一旦第二计算装置302接收请求消息,第二计算装置302使用接收的组合临时公钥(ePubF*)和静态第二装置私钥(PrivS)生成第一共享秘密(Z1)。密钥导出函数(KDF)使用第一共享秘密用来导出第一会话密钥(SK1)。第二计算装置302然后使用第一会话密钥(SK1)解密已加密请求数据,以确定识别数据(IdData)和第一装置标识符(IdF)。第一装置标识符(IdF)可以用来检索(查询)之前存储的针对第一计算装置301的识别数据(IdData2)。如果检索的识别数据(IdData2)和解密的识别数据(IdData)匹配,则第一计算装置301的认证成功。否则,认证失败。
B.认证响应消息
图9示出图解说明根据一些实施例在生成、传送和处理认证响应消息中执行的操作的数据流程图。
如图9中所示,第二计算装置302将静态第二装置私钥(PrivS)与密码随机数(NonceS)组合(MUL),以生成盲化静态第二装置私钥(PrivS*)。类似地,静态第二装置公钥(PubS)与密码随机数(NonceS)和识别因子(IdFactor)组合(MUL),以生成盲化静态第二装置公钥(PubS*)。
盲化静态第二装置私钥(ePrivS*)和组合临时第一装置公钥(ePubF*)已经根据图8在请求消息中接收,他们使用椭圆曲线Diffie-Hellman(ECDH)运算组合,以确定第二共享秘密(Z2)。第二共享秘密(Z2)用于密钥导出函数(KDF),以确定第二会话密钥(SK2)。第二计算装置302加密密码随机数(NonceS)和第二装置证书(CertS),以确定已加密响应数据。第二计算装置302然后向第一计算装置301发送包括已加密响应数据和盲化静态第二装置公钥(PubS*)的响应消息。
一旦第一计算装置301接收响应消息,第一计算装置301使用接收的已经根据图8生成的盲化静态第二装置公钥(PubS*)和临时私钥(ePrivF),以使用椭圆曲线Diffie-Hellman(ECDH)算法生成第二共享秘密(Z2)。密钥导出函数(KDF)可以用来使用第二共享秘密(Z2)生成第二会话密钥(SK2)。第二计算装置302然后使用第二会话密钥(SK2)解密已加密响应数据,以确定第二装置证书(CertS)、密码随机数(NonceS)和静态第二装置公钥(PubS),他们可以从第二装置证书(CertS)提取。
第二计算装置302可以组合(MUL)密码随机数(NonceS)和静态第二装置公钥(PubS),以生成第二装置会话标识符(PubS*2)。第二装置会话标识符(PubS*2)然后与从第二计算装置302接收的盲化静态第二装置公钥(PubS*)比较。认证可以要求第二装置会话标识符(PubS*2)和盲化静态第二装置公钥(PubS*)匹配。
此外,第二计算装置302使用椭圆曲线数字签名算法(ECDSA)和可信证书机构的公钥(PubCA)验证第二装置证书(CertS)。在一些实施例中,认证可以要求验证盲化静态第二装置公钥(PubS*)和第二装置证书(CertS)两者。
IV.前向保密认证的通信方法
在本发明的一些实施例中,第一计算装置301可以保存包括公钥(即“静态第一装置公钥”)和私钥(即“静态第一装置私钥”)的静态第一装置密钥对。实施例可以使用静态第一装置密钥对来生成用来加密并解密响应消息中的响应数据的第二会话密钥。这可以允许实施例提供响应消息的前向保密性质—后面装置301或装置302的泄密不会暴露已加密响应数据。因此,下面描述的实施例可以提供附加的数据传输安全性。
A.第一计算装置
图10-11示出根据一些实施例安全地对第二计算装置302认证并从第二计算装置302获得响应数据的第二方法1000。在一些实施例中,方法1000可以由第一计算装置301执行。不过,在其它实施例中,方法1000的一些或所有步骤可以由其它实体执行。
通常,在方法1000之前,第一计算装置301可以保存包括“静态第一装置私钥(其可以存储在安全元件中)和“静态第一装置公钥”的“静态第一装置密钥对”。静态第一装置公钥可以包括于由第二计算装置302认可的证书机构签名的第一装置证书中。
类似地,第二计算装置302可以保存包括“静态第二装置私钥(其可以存储在硬件安全模块中)和“静态第二装置公钥”的“静态第二装置密钥对”。静态第二装置公钥可以包括于由第一计算装置301认可的证书机构签名的第二装置证书中。
在步骤1001,生成临时第一装置密钥对。“临时第一装置公钥对”可以包括供单次交易或其它通信会话使用而生成的公钥(即“临时第一装置公钥”)和私钥(即“临时第一装置私钥”)。临时第一装置密钥对可以是任何适当格式。通常,一旦使用临时第一装置密钥对的通信会话结束,或一旦已经使用临时第一装置密钥对生成一个或多个共享秘密,临时第一装置密钥对可以被删除。
在步骤1002,使用识别数据和认证数据计算识别因子。在一些实施例中,识别因子可以以与方法400的步骤402描述的相似方式计算。
在步骤1003,使用识别因子对临时第一装置公钥和临时第一装置私钥进行盲化。结果,可以确定组合临时第一装置公钥和组合临时第一装置私钥。在一些实施例中,密钥可以以与方法400的步骤403描述的相似方式被盲化。
在步骤1004,使用组合临时第一装置私钥和静态第二装置公钥生成第一共享秘密。静态第二装置公钥可以包括由第二计算装置302保存在诸如安全元件中的静态公钥。在一些实施例中,第一共享秘密可以以与方法400的步骤404描述的相似方式生成。
在步骤1005,使用第一共享秘密和第一补充数据生成第一会话密钥。在一些实施例中,第一会话密钥可以以与方法400的步骤405描述的相似方式生成。
在步骤1006,使用第一会话密钥加密临时第一装置公钥、识别数据、第一装置标识符和第一装置证书,以生成已加密请求数据。“第一装置标识符”可以包括适于识别第一计算装置的任何标识符。“第一装置证书”可以包括任何数字证书,其包括静态第一装置公钥并由第二计算装置302认可的证书机构签名。
在步骤1007,向第二计算装置302发送包括组合临时第一装置公钥和已加密请求数据的认证请求消息。在一些实施例中,在到达第二计算装置302之前,认证请求消息可能通过一个或多个媒介(例如,不可信网络303)。
在步骤1008,从第二计算装置302接收认证响应消息。认证响应消息包括盲化静态第二装置公钥、临时第二装置公钥和已加密响应数据。通常,盲化静态第二装置公钥可以是步骤1004生成第一共享秘密使用的静态第二装置公钥的盲化形式。临时第二装置公钥可以是由第二计算装置302响应于接收认证请求消息生成的临时密钥对的公钥。例如,在一些实施例中,临时第二装置公钥可以根据方法1200的步骤1213生成。
在步骤1009,使用临时第一装置私钥和盲化静态第二装置公钥生成第二共享秘密。在一些实施例中,第二共享秘密可以以与方法400的步骤409描述的相似方式生成。
在步骤1010,使用在步骤1108接收的临时第二装置公钥和静态第一装置私钥生成辅助共享秘密。辅助共享秘密可以使用任何适当方法,诸如ECDH从临时第二装置公钥和盲化静态第一装置私钥生成。
在步骤1011,使用辅助共享秘密和辅助补充数据生成辅助会话密钥。辅助补充数据可以包括用来生成辅助会话密钥的任何其它数据。辅助补充数据的示例可以包括第一装置标识符和/或被截断的临时第二装置公钥。
在步骤1012,使用第二共享秘密、第二补充数据和辅助会话密钥生成第二会话密钥。第二补充数据可以包括用来生成第二会话密钥的任何其它数据。第二补充数据的示例可以包括第二装置标识符、第一装置标识符和/或被截断的临时公钥。第二会话密钥可以使用任何适当KDF生成。
在步骤1013,使用第二会话密钥解密已加密响应数据,以获得密码随机数、第二装置证书链和有效载荷数据。第二装置证书链可以包括从根CA证书到第二装置证书的一个或多个签名证书链,由此,该证书链确立第二装置证书的真实性。有效载荷数据可以包括任何适当数据。例如,有效载荷数据可以包括交易的确认,用户的账户余额,能够用来执行未来交易的密码密钥,诸如限制使用密钥(LUK),等等。
在步骤1014,验证第二装置证书链。第二装置证书链可以使用任何适当的在线或离线方法验证。在一些实施例中,第二装置证书链可以以与方法400的步骤412描述的相似方式验证。
在步骤1015,使用第二装置证书和密码随机数验证盲化静态第二装置公钥。验证盲化第二装置公钥可以包括确保盲化第二装置公钥与预期值匹配。在一些实施例中,盲化静态第二装置公钥可以以与方法400的步骤413描述的相似方式验证。
在步骤1116,使用有效载荷数据执行交易。在一些实施例中,有效载荷数据可以包括支付凭证(例如,PAN或密码密钥)。在这些实施例中,交易可以使用支付凭证执行。例如,如果有效载荷数据包括密码密钥,则能够使用密码密钥生成交易的密码。该密码然后能够在执行交易时使用。
应当注意,如上文描述的使用辅助会话密钥生成第二会话密钥能够提供针对认证响应消息的前向保密的优点。例如,即使盲化静态第二装置公钥和临时第二装置公钥在传送中被偷听者觉察到,且静态第一装置私钥稍后被泄密,第二会话密钥也不能被攻击者重新生成,原因是临时第一装置私钥(生成第二会话密钥必须的)已经删除。没有第二会话密钥,已加密响应数据不能被解密。因此,即使在以后第一计算装置301泄密的不太可能的情况下,这些实施例允许通信保持安全。
B.第二计算装置
图12-13示出根据一些实施例安全地处理来自第一计算装置301的认证请求消息并向第一计算装置301提供认证响应消息的第二方法1200。在一些实施例中,方法1200可以由第二计算装置302执行。不过,在其它实施例中,方法1200的一些或所有步骤可以由其它实体执行。
通常,在方法1200之前,第一计算装置301可以保存包括“静态第一装置私钥”(其可以存储在安全元件中)和“静态第一装置公钥”的“静态第一装置密钥对”。静态第一装置公钥可以包括于由第二计算装置302认可的证书机构签名的第一装置证书中。
类似地,第二计算装置302可以保存包括“静态第二装置私钥”(其可以存储在硬件安全模块中)和“静态第二装置公钥”的“静态第二装置密钥对”。静态第二装置公钥可以包括于由第一计算装置301认可的证书机构签名的第二装置证书中。
在步骤1201,从第一计算装置301接收包括组合临时第一装置公钥和已加密请求数据的认证请求消息。通常,组合临时第一装置公钥可以由第一计算装置301使用临时第一装置公钥和识别因子(例如,根据方法1000的步骤1103)生成。
在步骤1202,使用在步骤1201接收的组合临时第一装置公钥和静态第二装置公钥生成第一共享秘密。在一些实施例中,第一共享秘密可以以与方法600的步骤602描述的相似方式生成。
在步骤1203,使用第一共享秘密和第一补充数据生成第一会话密钥。第一补充数据可以包括用来生成第一会话密钥的任何其它数据。通常,在步骤1203,可以使用与在第一计算装置处生成第一会话密钥(例如,根据方法1000的步骤1005)使用的相同补充数据。
在步骤1204,使用第一会话密钥解密已加密请求数据,以获得包括临时第一装置公钥、第一装置标识符、识别数据和第一装置证书的请求数据。临时第一装置公钥可以对应于在步骤1201接收的组合临时公钥。第一装置标识符可以包括适于识别第一计算装置301的任何数据。识别数据可以包括与用户或第一计算装置301关联的任何数据或信息。第一装置证书可以包括包含静态第一装置公钥的任何数字证书。
在步骤1205,使用第一装置标识符验证识别数据。在一些实施例中,识别数据可以以与方法600的步骤605描述的相似方式验证。
在步骤1206,检索与第一装置标识符关联的认证数据和/或识别数据。在一些实施例中,认证数据可以以与方法600的步骤606描述的相似方式检索。
在步骤1207,使用检索到的认证数据和识别数据生成识别因子。在一些实施例中,识别因子可以以与方法600的步骤607描述的相似方式生成。
在步骤1208,使用临时第一装置公钥和识别因子验证组合临时第一装置公钥。在一些实施例中,组合临时第一装置公钥可以以与方法600的步骤608描述的相似方式验证。
在步骤1209,验证第一装置证书。例如,在一些实施例中,可以使用数字签名算法,诸如椭圆曲线数字签名算法(ECDSA)来验证装置证书。如果组合临时第一装置公钥和装置证书分别被验证并确认有效,则第一计算装置301被认证。否则,第一计算装置301的认证可能失败。
在步骤1210,生成密码随机数。密码随机数可以是使用任何适当方法生成的随机或伪随机数据值。
在步骤1211,使用密码随机数和识别因子对静态第二装置公钥和静态第二装置私钥进行盲化。结果,可以确定盲化静态第二装置公钥和盲化静态第二装置私钥。在一些实施例中,密钥可以以与方法600的步骤610描述的相似方式被盲化。
在步骤1212,使用盲化静态第二装置私钥和临时第一装置公钥生成第二共享秘密。第二共享秘密可以使用任何适当方法诸如ECDH从临时第一装置公钥和盲化静态第二装置私钥生成。
在步骤1213,生成临时第二装置密钥对。“临时第二装置密钥对”可以包括供单次交易或其它通信会话使用而生成的公钥(即“临时第二装置公钥”)和私钥(即“临时第二装置私钥”)。临时第二装置密钥对可以是任何适当格式。通常,一旦使用临时第二装置密钥对的通信会话结束,或者一旦已经使用临时第二装置密钥对生成一个或多个共享秘密,临时第二装置密钥对可以被删除。
在步骤1214,使用临时第二装置私钥和静态第一装置公钥生成辅助共享秘密。辅助共享秘密可以使用任何适当方法诸如ECDH从临时第二装置私钥和静态第一装置公钥生成。
在步骤1215,使用辅助共享秘密和辅助补充数据生成辅助会话密钥。辅助补充数据可以包括用来生成辅助会话密钥的任何其它数据。通常,在步骤1215,可以使用与在第一计算装置处(例如,根据方法1000的步骤1011)生成辅助会话密钥使用的相同的辅助补充数据。
在步骤1216,使用第二共享秘密、第二补充数据和辅助会话密钥生成第二会话密钥。通常,在步骤1216,可以使用与在第一计算装置处(例如,根据方法1000的步骤1012)生成第二会话密钥使用的相同的补充数据。第二会话密钥可以使用任何适当KDF生成。
在步骤1217,使用第二会话密钥加密密码随机数、第二装置证书链和有效载荷数据,以生成已加密响应数据。第二装置证书链可以包括从根CA证书到第二装置证书的一个或多个签名证书链,由此,该证书链确立第二装置证书的真实性。有效载荷数据可以包括任何适当数据。例如,有效载荷数据可以包括交易的确认,用户账户的余额,能够用来执行未来交易的密码密钥,诸如限制使用密钥(LUK),等等。
在步骤1218,向第一计算装置301发送包括盲化静态第二装置公钥、临时第二装置公钥和已加密响应数据的认证响应消息。在一些实施例中,认证响应消息在到达第一计算装置301之前,可能经过一个或多个媒介(例如,不可信网络303)。
应当注意,如上文描述使用辅助会话密钥生成第二会话密钥能够提供针对认证响应消息的前向保密的优点。例如,即便盲化静态第二装置公钥和临时第二装置公钥在传送中被偷听者觉察到,且静态第二装置私钥稍后被泄密,第二会话密钥也不能被攻击者重新生成,原因是临时第二装置私钥(重新生成第二会话密钥必须的)已经被删除。没有第二会话密钥,已加密响应数据不能被解密。因此,即便在第二计算装置302后来泄密的可能性不大的情况下,这些实施例允许通信保持安全。
V.前向保密认证的通信流
图14和15是图解说明根据本发明的一些实施例各个数据元素的计算和传输的数据流程图。如图8和9所示,矩形框指示数据元素(例如,识别因子),圆指示要执行的操作(例如,密钥生成)。指向圆的每个箭头指示相应操作符的操作数,离开圆的每个箭头指示相应操作符的结果。不过,应当注意,一些实施例可以不使用对于某操作所有示出的操作数,一些实施例可以使用所示操作的额外的操作数。此外,实施例可以不一定执行所有示出的操作,和/或可以执行图14和15没有示出的额外操作。
A.认证请求消息
图15示出图解说明根据一些实施例在生成、传送和处理认证请求消息的第二方法中执行的操作的数据流程图。
如图15所示,第一计算装置301使用公/私钥对生成器(KeyGen)生成临时第一装置公钥(ePubF)和临时第一装置私钥(ePrivF)。临时第一装置公钥(ePubF)与识别因子(IdFactor)组合,以生成组合临时第一装置公钥(ePubF)。类似地,临时第一装置私钥(ePrivF)与识别因子(IdFactor)组合,以生成组合临时第一装置私钥(ePrivF*)。第一计算装置301使用组合临时第一装置私钥(ePrivF*)和静态第二装置公钥(PubS)作为椭圆曲线Diffie-Hellman(ECDH)操作的输入,以生成第一共享秘密(Z1)。第一共享秘密用作密钥导出函数(KDF)的输入,以导出第一会话密钥(SK1)。第一计算装置301使用第一会话密钥(SK1)借助认证加密(AE)算法加密第一装置标识符(IdF)和识别数据(IdData),产生已加密请求数据。已加密请求数据、组合临时第一装置公钥(ePubF*)和第一装置证书(CertF)在请求消息中发送到第二计算装置302。
一旦第二计算装置302接收请求消息,第二计算装置302使用接收的组合临时第一装置公钥(ePubF*)和静态第二装置私钥(PrivS)生成第一共享秘密(Z1)。使用第一共享秘密,密钥导出函数(KDF)用来导出第一会话密钥(SK1)。第二计算装置302然后使用第一会话密钥(SK1)解密已加密请求数据,以确定识别数据(IdData)和第一装置标识符(IdF)。第一装置标识符(IdF)能够用来检索(查询)之前存储的针对第一计算装置301的识别数据(IdData2)。如果检索的识别数据(IdData2)和解密的识别数据(IdData)匹配,则第一计算装置301的认证可能是成功的。否则,认证可能失败。
此外,第二计算装置302使用数字签名算法(ECDSA)和可信证书机构的公钥(PubCA)验证第一装置证书(CertF)。在一些实施例中,第一计算装置301的成功认证可能需要验证识别数据(IdData)和第一装置证书(CertF)两者。
B.认证响应消息
图16示出图解说明根据一些实施例在生成、传送和处理认证响应消息的第二方法中执行的操作的数据流程图。
如图16所示,第二计算装置302将静态第二装置私钥(PrivS)与密码随机数(NonceS)组合(MUL),以生成盲化静态第二装置私钥(PrivS*)。类似地,静态第二装置公钥(PubS)与密码随机数(NonceS)和识别因子(IdFactor)组合(MUL),以生成盲化静态第二装置公钥(PubS*)。
已经根据图15在请求消息中接收的盲化静态第二装置私钥(ePrivS*)和组合临时第一装置公钥(ePubF*)使用椭圆曲线Diffie-Hellman(ECDH)运算组合,以确定第二共享秘密(Z2)。
此外,第二计算装置302使用公/私钥对生成器(KeyGen)来生成临时第二装置公钥(ePubS)和临时第二装置私钥(ePrivS)。然后,已经从图15的第一装置证书(CertF)提取的临时第二装置私钥(ePrivS)和静态第一装置公钥(PubF)使用椭圆曲线Diffie-Hellman(ECDH)算法组合,以确定辅助共享秘密。
辅助共享秘密和第二共享秘密(Z2)用于密钥导出函数(KDF),以确定第二会话密钥(SK2)。第二计算装置302加密密码随机数(NonceS)和第二装置证书(CertS),以确定已加密响应数据。第二计算装置302然后向第一计算装置301发送包括已加密响应数据、盲化静态第二装置公钥(PubS*)和临时第二装置公钥的响应消息。
一旦第一计算装置301接收响应消息,第一计算装置301使用接收的根据图15生成的盲化静态第二装置公钥(PubS*)和临时私钥(ePrivF),通过使用椭圆曲线Diffie-Hellman(ECDH)算法,以生成第二共享秘密(Z2)。此外,第一计算装置301使用接收的可以保存在第一计算装置301处的临时第二装置公钥(ePubS)和静态第一装置私钥(PrivF)作为椭圆曲线Diffie-Hellman(ECDH)算法的输入,生成辅助共享秘密。
密钥导出函数(KDF)可以用来使用辅助共享秘密和第二共享秘密(Z2)生成第二会话密钥(SK2)。第二计算装置302然后使用第二会话密钥(SK2)解密已加密响应数据,以确定第二装置证书(CertS)、密码随机数(NonceS)和静态第二装置公钥(PubS),他们可以从第二装置证书(CertS)提取。
第二计算装置302能够将密码随机数(NonceS)和静态第二装置公钥(PubS)组合(MUL),以生成第二装置会话标识符(PubS*2)。第二装置会话标识符(PubS*2)然后与从第二计算装置302接收的盲化静态第二装置公钥(PubS*)比较。认证可以要求第二装置会话标识符(PubS*2)和盲化静态第二装置公钥(PubS*)匹配。
此外,第二计算装置302使用椭圆曲线数字签名算法(ECDSA)和可信证书机构的公钥(PubCA)来验证第二装置证书(CertS)。在一些实施例中,认证可以要求验证盲化静态第二装置公钥(PubS*)和第二装置证书(CertS)两者。
VI.优化认证的通信方法
在本发明的一些实施例中,第一计算装置301和第二计算装置302各自可以保存过去发生过通信的装置的注册。每个注册装置可以与下一共享秘密和/或用在与注册装置关联的未来通信会话中的其它数据关联。以此方式,实施例能够避免在两个装置之间的任何随后的通信中的某些操作,诸如Diffie-Hellman密钥协商。因此,实施例能够减少建立通信会话所需的时间量和处理。此外,实施例能够在获得这些好处的同时,保护第二计算装置302的身份,这将在下面更加详细地描述。
A.第一计算装置
图16示出根据一些实施例安全地对第二计算装置302认证并从第二计算装置302获得响应数据的优化方法1600。在一些实施例中,方法1600可以由第一计算装置301执行。不过,在其它实施例中,方法1600的一些或所有步骤可以由其它实体执行。
在步骤1601,执行方法400的步骤401-408。具体地,生成包括临时公钥和临时私钥的临时密钥对。使用识别数据和认证数据计算识别因子。临时公钥和临时私钥使用识别因子组合。结果,可以确定组合临时公钥和组合临时私钥。使用组合临时私钥和静态第二装置公钥生成第一共享秘密。使用第一共享秘密和第一补充数据生成第一会话密钥。使用第一会话密钥加密临时公钥、识别数据和第一装置标识符,以生成已加密请求数据。向第二计算装置302发送包括组合临时公钥和已加密请求数据的认证请求消息。然后,从第二计算装置302接收包括盲化静态第二装置公钥和已加密响应数据的认证响应消息。这些步骤的进一步描述可以参照方法400的相应步骤找到。
在步骤1602,确定第二装置会话标识符。在一些实施例中,第二装置会话标识符可以是在认证响应消息中接收的盲化静态第二装置公钥的子集(例如,最后4位或8位)。
在步骤1603,确定第二装置会话标识符是否注册。例如,在一些实施例中,可以搜索注册表寻找第二装置会话标识符。如果注册,方法1600前进到步骤1604。否则,方法1600前进到步骤1605。
如果注册第二装置会话标识符,则在步骤1604,获得与第二装置会话标识符关联的共享秘密。例如,在一些实施例中,共享秘密可以从与第二装置会话标识符关联的注册的记录中检索。方法1600然后前进到步骤1606。
如果第二装置会话标识符没有注册,则在步骤1605,执行方法400的步骤409。具体地,使用临时私钥和在认证响应消息中接收的盲化静态第二装置公钥生成第二共享秘密。
在步骤1606,执行方法400的步骤410-414。具体地,使用第二共享秘密和第二补充数据生成第二会话密钥。使用第二会话密钥解密在认证响应消息中接收的已加密响应数据,以获得密码随机数、第二装置证书链和有效载荷数据。第二装置证书链被验证。交易然后使用有效载荷数据进行。
在步骤1607,使用共享秘密生成下一共享秘密和下一第二装置会话标识符。下一共享秘密和下一第二装置会话标识符可以以任何适当方式从共享秘密生成。例如,在一些实施例中,下一共享秘密和下一第二装置会话标识符可以使用密钥导出函数确定。例如,在步骤1606用来生成第二会话密钥的密钥导出函数还可以生成下一共享秘密。
在步骤1608,注册下一第二装置会话标识符并与下一共享秘密关联。例如,在一些实施例中,下一第二装置会话标识符和下一共享秘密可以存储在注册表或数据库中。
B.第二计算装置
图17示出根据一些实施例安全地处理来自第一计算装置301的认证请求消息并向第一计算装置301提供认证响应消息的优化方法1700。在一些实施例中,方法1700可以由第二计算装置302执行。不过,在其它实施例中,方法1700的一些或所有步骤可以由其它实体执行。
在步骤1701,执行方法600的步骤601-608。具体地,从第一计算装置301接收包括组合临时公钥和已加密请求数据的认证请求消息。使用组合临时公钥和静态第二装置私钥生成第一共享秘密。使用第一共享秘密和第一补充数据生成第一会话密钥。使用第一会话密钥解密已加密请求数据,以获得包括临时公钥、第一装置标识符和识别数据的请求数据。使用第一装置标识符验证识别数据。检索与第一装置标识符关联的认证数据和/或识别数据。使用检索的认证数据和识别数据生成识别因子。使用临时公钥和识别因子验证组合临时公钥。这些步骤的进一步描述可以参照方法600的相应步骤找到。
在步骤1702,确定第一装置标识符是否注册。例如,在一些实施例中,可以搜索注册表寻找第一装置标识符。如果注册,则方法1700前进到步骤1703。否则,方法1700前进到步骤1704。
如果注册第一装置标识符,则在步骤1703,获得与第一装置标识符关联的共享秘密和盲化静态第二装置公钥。例如,在一些实施例中,可以从与第一装置标识符关联的注册表的记录中检索共享秘密和盲化静态第二装置公钥。方法1700然后前进到步骤1705。
如果没有注册第一装置标识符,则在步骤1704,执行方法600的步骤709-711。具体地,生成密码随机数。使用密码随机数和识别因子对静态第二装置公钥和静态第二装置私钥进行盲化。然后使用盲化静态第二装置私钥和临时公钥生成第二共享秘密。
在步骤1705,执行方法600的步骤712-714。具体地,使用第二共享秘密和第二补充数据生成第二会话密钥。使用第二会话密钥加密密码随机数、第二装置证书链和有效载荷数据,以生成已加密响应数据。然后向第一计算装置301发送包括盲化静态第二装置公钥和已加密响应数据的认证响应消息。
在步骤1706,使用共享秘密生成下一共享秘密和下一盲化第二装置公钥。下一共享秘密和下一盲化第二装置公钥可以以任何适当方式从共享秘密生成。例如,在一些实施例中,下一共享秘密可以使用密钥导出函数确定。例如,在步骤1705用来生成第二会话密钥的密钥导出函数还可以生成下一共享秘密。
在步骤1707,注册第一装置标识符并与下一共享秘密和下一盲化第二装置公钥关联。例如,在一些实施例中,下一盲化第二装置公钥和下一共享秘密可以存储在与第一装置标识符对应的注册表或数据库表项中。
VII.伪代码列表
下面的表1和2示出根据本发明的一些实施例实现认证的数据通信的安全方法的伪代码列表。
A.第一计算装置
表1
表1示出根据一些实施例实现安全地认证并获得响应数据的方法的伪代码列表。下文描述的一些步骤可以根据与第二计算装置302通信的第一计算装置301。不过,在本发明的实施例中,一些或所有步骤可以由另一适当实体执行。
在方法之前,第一计算装置301可以可选地保存一个或多个数据元素,诸如认证数据(AuthDataF),识别数据(IdDataF),第二装置证书(Cs),持久性绑定注册表(PB注册表),加密套件规范(CipherSpec),静态第一装置私钥(dsF)和/或第一装置证书(CF)。
此外,在一些实施例中,可能要求第一计算装置301保存第一装置标识符(IDsF)和指示通信的协议数据的第一装置控制字节(CBF)。
在步骤F1,如果保存识别数据,但第二装置证书不可用,则识别数据无效。换言之,识别数据不会在请求消息中发送。
在步骤F2,生成临时第一装置密钥对。临时第一装置密钥对包括临时第一装置私钥(deF)和临时第一装置公钥(QeF)。在使用椭圆曲线密钥的实施例中,可以在与第二装置证书(如果可用)相同的曲线上生成临时密钥。
在步骤F3,执行检查以确定识别数据或认证数据是否可用。如果其中之一可用,则在步骤F4,通过对识别数据和认证数据的组合求散列,并取结果的最高有效(mostsignificant)4字节(T4)生成识别因子(IdFactor)。否则,在步骤F5,识别因子被分配1(即乘法单位)。
在步骤F6,通过确定识别因子和临时第一装置公钥的点乘积,计算组合临时第一装置公钥(QeF*)。
在步骤F7,如果认证数据可用,则第一装置控制字节修改为指示认证数据应当用来认证第一计算装置301。
在步骤F8,执行检查,以确定第二装置证书是否可用。如果第二装置证书可用,则执行步骤F9-F13。否则,方法前进到步骤14。
在步骤F9,认证第二装置证书(例如,其数字签名可以被验证)。一旦认证,从第二装置证书中提取静态第二装置公钥(QsS)和第二装置证书标识符(CfpS)。
在步骤F10,使用椭圆曲线Diffie-Hellman(ECDH)算法生成第一共享秘密(Z1)。ECDH算法的输入是组合临时第一装置私钥(从识别因子和临时第一装置私钥生成)和静态第二装置公钥。
在步骤F11,使用密钥导出函数(KDF)导出第一会话密钥(SK1)。KDF的输入是第一共享秘密、期望的输出长度(len)和第二装置标识符(IDsS)和组合临时第一装置公钥的最高有效16字节(T16)的组合。
在步骤F12,使用认证加密(AE)算法,第一会话密钥用来生成已加密请求数据(EncDataF)。请求数据包括预定定义的标题(“KC_0_V”)、第一装置标识符、第一装置控制字节、加密套件规范、识别数据和第一装置证书。
在步骤F13,使用预定义值(OPTY)、第二装置证书标识符、组合临时第一装置公钥和已加密数据形成请求消息(CData)。
在步骤F14,如果第二装置证书不可用,则在步骤F15,使用第一装置标识符、组合临时第一装置公钥、第一装置控制字节和加密套件规范形成请求消息。
在步骤F16,发送请求消息。
在步骤F16之后,等待,直到接收响应消息。响应消息包括盲化静态第二装置公钥(BDataS)、临时第二装置公钥(QeS)(可能是丢失的)和已加密响应数据(EncDataS)。
在步骤F17,检查盲化静态第二装置公钥和临时第二装置公钥,以确保他们属于适当的椭圆曲线域。
在步骤F18,通过取盲化静态第二装置公钥的前8字节(T8),确定第二装置会话标识符(IDsS)。
在步骤F19,审查持久绑定注册表,以确定是否存在第二装置会话标识符的表项。在步骤F20,执行检查以确定是否注册第二装置会话标识符。如果注册,则方法前进到步骤F21。否则,方法前进到步骤F28。
在步骤F21,执行检查以确定静态第一装置公钥(QsF)是否可用。如果可用,则执行步骤F22和F23。否则,方法前进到步骤F24。
在步骤F22,使用ECDH算法确定辅助共享秘密(Zaux)。ECDH的输入包括静态第一装置私钥和临时第二装置公钥。
在步骤F23,使用密钥导出函数导出辅助会话密钥(SKaux)。密钥导出函数的输入包括辅助共享秘密、期望密钥长度以及第一装置标识符和临时第二装置公钥的前16字节的组合。方法然后前进到步骤F26。
在步骤F24,如果静态第一装置公钥不可用,则在步骤F25,辅助共享秘密被设置成空(NULL)值。
在步骤F26,使用临时第一装置私钥和盲化静态第二装置公钥生成第二共享秘密(Z2)。
在步骤F27,使临时第一装置私钥归零。归零可以包括例如安全彻底地删除一个值。方法然后前进到步骤F30。
在步骤F28,如果注册第二装置会话标识符,则从持久绑定注册表检索第二共享秘密。
在步骤F30,使用密钥导出函数(KDF)生成第二会话密钥(SKCFRM)、几个其它密钥(SKMAC、SKENC、SKRMAC)、下一共享秘密(NextZ)和下一盲化因子(NextBlind)。KDF的输入包括第二共享秘密、期望密钥长度、辅助会话密钥以及其它数据的组合,其它数据诸如第二装置标识符、第一装置标识符和临时第一装置公钥的前16字节。
在步骤F31,使第二会话密钥和辅助会话密钥归零。
在步骤F32,第二会话密钥用来解密(AE-1)已加密响应数据。所产生的响应数据包括预定义标题(Header)、第二装置证书、密码随机数(NS)、第二装置控制字节(CBS)、要在未来通信中使用的新第二装置证书(NewCS)、要在未来通信中使用的新加密套件规范(NewCipherSpec)和有效载荷(Payload)。
在步骤F33,通过检查预定义标题与预期值匹配,验证预定义标题。第二装置控制字节也被验证。
在步骤F34,使第二会话密钥归零。
在步骤F35,执行检查以确定服务器控制字节是否指示应当重新建立持久绑定,服务器控制字节是否指示不支持持久绑定,或者第二装置会话标识符是否在注册表中没有找到。如果以上的任何一个为真,则方法前进到步骤F36-F38。否则,方法前进到步骤F39。
在步骤F36,使用椭圆曲线数字签名算法(ECDSA)验证第二装置证书的数字签名。
在步骤F37,从第二装置证书提取静态第二装置公钥(QsS)。
在步骤F38,通过使用密码随机数的前四位和静态第二装置公钥重新计算盲化静态第二装置公钥来对其进行验证。
在步骤F39,如果服务器控制字节指示持久绑定要被初始化或以其它方式执行,则执行步骤F40和F41。
在步骤F40,通过取下一盲化因子和静态第二装置公钥的点乘积的前8字节,计算下一第二装置会话标识符(NextIdsS)。
在步骤F41,注册下一第二装置会话标识符并与下一共享秘密关联。
B.第二计算装置
表2
表2示出根据一些实施例实现安全地处理认证请求消息并提供认证响应消息的方法的伪代码列表。下面所描述的一些步骤可以根据与第一计算装置301通信的第二计算装置302。不过,在本发明的实施例中,一些或所有步骤可以由另一适当实体执行。
在方法之前,第二计算装置302可以可选地保存一个或多个数据元素,诸如用于第一计算装置301或关联用户的认证数据(AuthDataS),持久绑定(PB)注册表,和/或数据有效载荷(Payload),其也可以响应于请求消息确定。
此外,在一些实施例中,可能要求第二计算装置302保存或访问包括静态第二装置公钥(QsS)和静态第二装置私钥(dsS)的静态第二装置密钥对,指示协议数据的第二装置控制字节(CBS),加密套件偏好的列表(CSList)和/或可以用来与第二计算装置302通信的证书的列表(CertList)。
在步骤S1,接收请求消息(CData)。请求消息可以包括指示存在已加密数据的预定义值(OPTY),第二装置证书标识符(CfpS),组合临时第一装置公钥(QeF*)和已加密请求数据(EncDataF)。替代性地,在一些情况下,请求消息可以包括第一装置标识符(IDsF)、组合临时第一装置公钥、第一装置控制字节(CBF)和加密套件规范(CipherSpec)。
在步骤S2,审查请求消息的前四个字节(T4),以确定其是否包括预定义值。如果包括,则方法前进到步骤S3。否则,方法前进到步骤S8。
在步骤S3,隔离请求消息的数据元素。具体地,由于请求消息包括预定义值,所以确定第二装置证书标识符、组合临时第一装置公钥和已加密请求数据(EncDataF)。
在步骤S4,第二装置证书标识符和证书的列表用来检索与请求消息关联的第二装置证书。此外,能够确定与检索到的证书对应的静态第二装置私钥。
在步骤S5,使用椭圆曲线Diffie-Hellman(ECDH)算法生成第一共享秘密(Z1)。算法的输入包括接收的组合临时第一装置公钥和静态第二装置私钥。
在步骤S6,使用密钥导出函数(KDF)导出第一会话密钥(SK1)。KDF的输入包括第一共享秘密、期望密钥长度(len)以及第二装置会话标识符(IDsS)和组合临时第一装置公钥的前16字节(T16)的组合。
在步骤S7,第一会话密钥用来使用认证解密(AE-1)函数解密已加密请求数据。产生的请求数据包括:具有预期值的预定义标题字符串(“KC_0_V”)、第一装置标识符、第一装置控制字节、加密套件规范、识别数据(IdDataF),可选地还有第一装置证书(CF)。方法然后前进到步骤S10。
在步骤S8,如果请求消息的前四个字节不包括预定义值,则在步骤S9,请求消息中的数据元素被隔离。具体地,确定第一装置标识符、组合临时第一装置公钥、第一装置控制字节和加密套件规范。
在步骤S10,如果确定识别数据来自第一装置,且识别数据的认证失败,则在步骤S11,返回包括控制字节的响应消息,该控制字节指示认证失败。
在步骤S12,如果第一装置控制字节指示认证数据曾用来生成请求消息,则使用第一装置标识符检索认证数据(AuthDataS)。例如,可以从装置数据库检索认证数据。
在步骤S13,如果认证数据不能被成功地检索(例如,没有可用的第一装置标识符,或没有任何认证数据可用于第一装置标识符),则在步骤S14,返回包括控制字节的响应消息,该控制字节指示认证失败。
在步骤S15,如果不支持从请求消息确定的加密套件规范,则在步骤S16,返回包括控制字节的响应消息,该控制字节指示加密套件无效。
在步骤S17,如果加密套件规范不充分或不被允许,则方法前进到步骤S18-S20。
在步骤S18,第二装置控制字节被修改以指示加密套件要被改变。在步骤S19,新加密套件规范(NewCipherSpec)被设置到加密套件偏好的列表。在步骤S20,新第二装置证书(NewCS)被设置到可以用在通信中的证书的列表。方法然后前进到步骤S22。
在步骤S21,如果加密套件规范是充分的允许的,则新密套件规范与(当前的)加密套件规范相同,新第二装置证书与(当前的)第二装置证书相同。
步骤S21之后的步骤一般涉及形成并发送响应消息。这些步骤可以使用加密套件规范和以前做出的服务器证书确定。例如,如果在步骤S20,新第二装置证书用于形成响应消息,则对静态第二装置公钥(QsS)或静态第二装置私钥(dsS)的任何引用可以引用与新第二装置证书对应的那些,这与对应于关联请求消息的第二装置证书的密钥不同。
在步骤S22,如果从请求消息确定第一装置证书,则方法前进到步骤S23和S24。否则,方法前进到步骤S25。
在步骤S23,从第一装置证书提取静态第一装置公钥(QsF)。静态第一装置公钥被验证以确保其属于正确的椭圆曲线域。
步骤S24,生成临时第二装置密钥对。临时第二装置密钥对包括临时第二装置私钥(deS)和临时第二装置公钥(QeS)。方法然后前进到步骤S26。
在步骤S25,如果从请求消息中没有确定第一装置证书,则临时第二装置公钥被设置成空值。
在步骤S26,使用第一装置控制字节准备第二装置控制字节。
在步骤S27,生成密码随机数(NS)。
在步骤S28,确定(1)第一装置标识符是否未注册,或(2)第一装置控制字节是否指示不要求持久绑定。如果这两个条件中的任何一个为假,则方法前进到步骤S29。否则,如果这两个条件都为真,则方法前进到步骤S39。
在步骤S29,验证临时第一装置公钥,以确保其属于正确的椭圆曲线域。
在步骤S30,执行检查,以确定是识别数据可用还是认证数据可用。如果其中任一个可用,则方法前进到步骤S31。否则,方法前进到步骤S33。
在步骤S31,通过对识别数据和认证数据的组合求散列并取结果的最高有效四字节(T4)来生成识别因子(IdFactor)。
在步骤S32,使用临时第一装置公钥和识别因子重新计算组合临时第一装置公钥。如果重新计算的密钥和接收的密钥不匹配,则返回包括控制字节的响应消息,该控制字节指示认证失败。
在步骤S33,如果识别数据和认证数据都不可用,则识别因子被设置为1(即,乘法单位)。
在步骤S34,如果静态第一装置公钥可用,则方法前进到步骤S35-S36。否则,方法前进到步骤S37。
在步骤S35,用临时第二装置私钥和静态第一装置公钥作为ECDH算法的输入计算辅助共享秘密(Zaux)。在步骤S36,使用KDF用辅助共享秘密、期望密钥长度以及第一装置标识符和临时第二装置公钥的前16字节的组合作为输入,导出辅助会话密钥(Kaux)。方法然后前进到步骤S38。
在步骤S37,如果静态第一装置公钥不可用,则辅助会话密钥被设置成空值。
在步骤S38,使用ECDH算法计算第二共享秘密(Z2)。ECDH算法的第一输入包括密码随机数的前四字节和静态第二装置私钥的组合。ECDH算法的第二输入包括组合临时第一装置公钥。
在步骤S39,通过组合识别因子、密码随机数的前四字节和静态第二装置公钥,计算盲化静态第二装置公钥(BDataS)。方法然后前进到步骤S43。
在步骤S40,如果第一装置标识符注册,且第一装置控制字节指示要求持久绑定,则方法前进到步骤S41和S42。否则,方法前进到步骤S43。
在步骤S41,从与第一装置标识符对应的持久绑定注册表项读第二共享秘密和盲化静态第二装置公钥。在步骤S42,第二装置控制字节被修改,以指示持久绑定已启用。
在步骤S43,通过取盲化静态第二装置公钥的前八字节,计算第二装置会话标识符(IDsS)。
在步骤S44,使用密钥导出函数(KDF)生成第二会话密钥(SKCFRM)、几个其它密钥(SKMAC、SKENC、SKRMAC)、下一共享秘密(NextZ)和下一盲化因子(NextBlind)。KDF的输入包括第二共享秘密、期望密钥长度、辅助会话密钥以及其它数据的组合,其它数据诸如第二装置会话标识符、第一装置标识符和临时第一装置公钥的前16字节。
在步骤S45,第二共享秘密和辅助会话密钥归零。
在步骤S46,如果第一计算装置301和第二计算装置302都支持持久绑定,并且或者第一装置标识符没有注册或者第一装置控制字节指示持久绑定应当被初始化,则方法前进到步骤S47-S48。否则,方法前进到步骤S49。
在步骤S47,通过组合下一盲化因子和静态第二装置公钥,确定下一盲化静态第二装置公钥(NextBDataS)。然后注册第一装置标识符,并与下一共享秘密和下一盲化静态第二装置公钥关联。在步骤S48,第二装置控制字节被修改以指示持久绑定要被初始化。方法然后前进到步骤S51。
在步骤S49,如果步骤S46的条件不为真,则在步骤S50,第二装置控制字节被修改,以指示持久绑定一直未用于响应消息。
在步骤S51,第二会话密钥用来使用认证加密(AE)函数生成已加密响应数据(EncDataS)。响应数据包括预定义标题(“KC_1_V”)、密码随机数、第二装置控制字节、第二装置证书、新第二装置证书、新加密套件规范和有效载荷。有效载荷可以包括任何适当数据。
在步骤S52,第二会话密钥归零。
在步骤S53,发送包括盲化静态第二装置公钥、临时第二装置公钥和已加密响应数据的响应消息(RData)。
VIII.计算机设备
图18示出示例性计算机设备的框图。它是可以用来实现上文描述的任何实体或组件的计算机系统的高级框图。图18中所示的子系统经由系统总线1875互连。附加子系统包括打印机1803、键盘1806、固定磁盘1807和监视器1809,监视器1809耦连到显示适配器1804。外围设备和输入/输出(I/O)装置耦连到I/O控制器1800,外围设备和输入/输出(I/O)装置能够通过本领域已知的任何手段诸如串行端口连接到计算机系统。例如,串行端口1805或外部接口1808能够用来将计算机设备连接到广域网(诸如互联网)、鼠标输入装置或扫描器。经由系统总线1875的互连允许中央处理器1802与每个子系统通信,并控制来自系统存储器1801或固定磁盘1807的指令的执行以及信息在这些子系统之间的交换。系统存储器1801和/或固定磁盘可以体现计算机可读介质。
用于包含代码或代码部分的存储介质和计算机可读介质可以包括本领域已知或使用的任何适当介质,包括存储介质和通信介质,诸如但不限于用存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多用途盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储装置、数据信号、数据传输或可以用来存储或传输期望信息并且可以由计算机访问的任何其它介质。基于本文中提供的公开和教导,本领域技术人员会认识到实现各个实施例的其它方式和/或方法。
以上描述是示意性的不是限制性的。本领域技术人员在阅读本公开后,会明白本发明的许多变形。因此,本发明的范围可以不参照上文描述确定,而是可以参照所附权利要求连同其全部范围或等同物确定。
应当理解,本发明的任何实施例可以用控制逻辑的形式以模块化或集成方式使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件用通用可编程处理器来实现。如本文中使用的,处理器包括单核处理器、相同集成芯片上的多核处理器或单个电路板上或联网的多个处理单元。基于本文中提供的公开和教导,本领域技术人员可以明白并认识到使用硬件及硬件和软件的组合实现本发明的实施例的其它方式和/或方法。
本申请中描述的任何软件组件或功能可以实现为使用任何适当计算机语言(比方说例如Java、C、C++、C#、Objective-C、Swift)或脚本语言(诸如Perl或Python),使用例如传统的或面向对象的技术由处理器执行的软件代码。软件代码可以存储为计算机可读介质上的一系列指令或命令以用于存储和/或传输。适当的非瞬态计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、磁介质(诸如硬盘或软盘)或光介质(诸如光盘(CD)或DVD(数字多用途盘))、闪存,等等。计算机可读介质可以是这些存储或传输装置的任何组合。
这些程序还可以使用载波信号编码和传输,载波信号适于通过遵循各种协议的有线、光和/或无线网络(包括互联网)进行传输。因此,根据本发明的实施例的计算机可读介质可以使用用这些程序编码的数据信号来创建。用程序代码编码的计算机可读介质可以与兼容装置封装或者单独地由其它装置提供(例如,通过互联网下载)。任何这种计算机可读介质可以驻存在单个计算机产品上或驻存在单个计算机产品(例如,硬盘、CD或整个计算机系统)内,可以位于系统或网络中的不同计算机产品或在系统或网络中的不同计算机产品上。计算机系统可以包括监视器、打印机、或用于给用户提供本文中提到的任何结果的其它适当的显示器。
本文中描述的任何方法可以完全或部分地用包括一个或多个处理器的可以被配置成执行步骤的计算机系统执行。因此,实施例可以涉及被配置成执行本文中描述的任何方法的步骤的计算机系统,可能用不同组件执行各个步骤或各组步骤。尽管表示为有编码的步骤,但本文中的方法的步骤可以同时或者以不同次序执行。另外,这些步骤中的一部分可以与来自其它方法的其它步骤一起使用。同样,一个步骤的所有或部分可以是可选的。另外,任何方法的任何步骤可以用模块、单元、电路或用于执行这些步骤的其它手段实现。
在不偏离本发明的实施例的精神和范围下,特定实施例的具体细节可以以任何适当方式被组合。不过,本发明的其它实施例可以涉及关于每个单独方面的具体实施例,或者这些单独方面的具体组合。
出于图示和描述目的,已经呈现了对本发明的示例性实施例的上述描述。不旨在是排他性的或将本发明限制到所描述的精确形式,根据上文的教导许多改进和变形是可行的。
除非明确指示有相反的意思,“一(a)”、“一(an)”、“所述(the)”的叙述旨在表示“一个或多个”。除非明确指示有相反的意思,“或者”的使用旨在表示“包括性的或”而不是“排它性的或”。
本文提到的所有专利、专利申请、公开和描述出于所有目的通过引用被全部并入本文中。不承认他们为现有技术。
Claims (20)
1.一种使用第一计算装置的计算机实现的方法,所述方法包括:
确定包括临时公钥和临时私钥的临时密钥对;
使用所述临时私钥和静态第二装置公钥生成第一共享秘密;
使用所述第一共享秘密加密请求数据,以获得已加密请求数据;
向第二计算装置发送包括已加密请求数据和所述临时公钥的请求消息;
从所述第二计算装置接收包括已加密响应数据和盲化静态第二装置公钥的响应消息,其中所述盲化静态第二装置公钥通过利用盲化因子盲化所述静态第二装置公钥来确定;
使用所述临时私钥和所述盲化静态第二装置公钥确定第二共享秘密,其中所述第二共享秘密不同于所述第一共享秘密;以及
使用所述第二共享秘密解密所述已加密响应数据,以确定响应数据。
2.根据权利要求1所述的计算机实现的方法,进一步包括:
获得并存储静态第二装置公钥;以及
一旦确定所述第一计算装置将要与第二计算装置通信,检索所述静态第二装置公钥。
3.根据权利要求2所述的计算机实现的方法,其中存储所述静态第二装置公钥包括将所述静态第二装置公钥存储在安全元件中;并且
其中检索所述静态第二装置公钥包括从所述安全元件检索所述静态第二装置公钥。
4.根据权利要求1所述的计算机实现的方法,其中,所述请求数据包括能够由所述第二计算装置操作以识别所述第一计算装置或用户的识别数据。
5.根据权利要求1所述的计算机实现的方法,其中,所述临时公钥是组合临时公钥,其中,所述临时私钥是组合临时私钥,并且其中,所述组合临时公钥和所述组合临时私钥是使用识别因子确定的,所述识别因子是使用识别数据和认证数据生成的。
6.根据权利要求1所述的计算机实现的方法,其中,所述临时公钥是临时第一装置公钥,其中,所述临时私钥是临时第一装置私钥,其中,所述请求数据包括第一装置证书,所述第一装置证书包括静态第一装置公钥,其中,所述响应消息还包括临时第二装置公钥,并且其中,所述方法进一步包括:
使用所述临时第二装置公钥和与所述静态第一装置公钥对应的静态第一装置私钥生成辅助共享秘密,其中,解密所述已加密响应数据还使用所述辅助共享秘密。
7.根据权利要求1所述的计算机实现的方法,其中,所述方法进一步包括:
使用所述第二共享秘密生成下一共享秘密和下一盲化静态第二装置公钥;以及
将所述下一盲化静态第二装置公钥与所述下一共享秘密关联,其中,所述下一共享秘密用来解密从所述第二计算装置接收的后续已加密响应数据。
8.根据权利要求1所述的计算机实现的方法,其中,所述响应数据包括第二装置证书,所述第二装置证书包括静态第二装置公钥,其中,所述响应数据还包括密码随机数,其中所述密码随机数是所述盲化因子并且所述密码随机数用来生成所述盲化静态第二装置公钥,并且其中,所述方法进一步包括:
验证所述第二装置证书;
使用所述静态第二装置公钥和所述密码随机数生成第二装置会话标识符;以及
将所述第二装置会话标识符与从所述第二计算装置接收的所述盲化静态第二装置公钥比较,其中,如果所述第二装置会话标识符与所述盲化静态第二装置公钥匹配,则所述第二计算装置被认证。
9.根据权利要求1所述的计算机实现的方法,其中,所述响应数据包括支付凭证,并且其中,所述方法还包括:
使用所述支付凭证执行支付交易。
10.一种计算机实现的方法,包括:
由第二计算装置从第一计算装置接收包括已加密请求数据和临时公钥的请求消息;
由所述第二计算装置使用所述临时公钥和静态第二装置私钥生成第一共享秘密;
由所述第二计算装置使用所述第一共享秘密解密所述已加密请求数据,以获得请求数据;
由所述第二计算装置使用盲化静态第二装置私钥和所述临时公钥生成第二共享秘密,其中所述第二共享秘密不同于所述第一共享秘密;
由所述第二计算装置使用所述第二共享秘密加密响应数据,以确定已加密响应数据;以及
由所述第二计算装置向所述第一计算装置发送包括所述已加密响应数据和盲化静态第二装置公钥的响应消息,其中所述盲化静态第二装置公钥通过利用盲化因子盲化静态第二装置公钥来确定。
11.根据权利要求10所述的计算机实现的方法,还包括:
由所述第二计算装置生成密码随机数,其中所述密码随机数是所述盲化因子;
由所述第二计算装置使用静态第二装置公钥和所述密码随机数确定所述盲化静态第二装置公钥;以及
由所述第二计算装置使用所述静态第二装置私钥和所述密码随机数确定所述盲化静态第二装置私钥。
12.根据权利要求10所述的计算机实现的方法,其中,所述临时公钥是组合临时公钥,其中,所述请求数据包括用来生成所述组合临时公钥的原始临时公钥,其中,所述请求数据还包括识别数据,并且其中,所述计算机实现的方法还包括:
由所述第二计算装置使用所述识别数据从装置数据库检索第二认证数据;
由所述第二计算装置使用所述第二认证数据和所述识别数据生成第二识别因子;
由所述第二计算装置使用所述第二识别因子和所述原始临时公钥,确定第二组合临时公钥;以及
由所述第二计算装置将所述组合临时公钥与所述第二组合临时公钥比较,其中,如果所述组合临时公钥和所述第二组合临时公钥匹配,则所述第一计算装置被认证。
13.根据权利要求10所述的计算机实现的方法,其中,所述临时公钥是临时第一装置公钥,并且其中,所述计算机实现的方法还包括:
由所述第二计算装置从所述请求数据确定与所述第一计算装置关联的第一装置证书,所述第一装置证书包括静态第一装置公钥;
由所述第二计算装置确定包括临时第二装置公钥和临时第二装置私钥的临时第二装置密钥对;以及
由所述第二计算装置使用所述静态第一装置公钥和所述临时第二装置私钥生成辅助共享秘密,其中,加密所述响应数据还使用所述辅助共享秘密,并且其中,所述响应消息还包括所述临时第二装置公钥。
14.根据权利要求10所述的计算机实现的方法,其中,所述请求数据包括第一装置标识符,并且其中,所述计算机实现的方法还包括:
由所述第二计算装置使用所述第二共享秘密生成下一共享秘密和下一盲化静态第二装置公钥;以及
由所述第二计算装置将所述第一装置标识符与所述下一盲化静态第二装置公钥和所述下一共享秘密关联,其中,所述下一共享秘密用来加密向所述第一计算装置发送的后续已加密响应数据,并且其中,所述下一盲化静态第二装置公钥包括于向所述第一计算装置发送的后续响应消息中。
15.根据权利要求10所述的计算机实现的方法,其中,所述响应数据包括支付凭证,其中,所述支付凭证能够由所述第一计算装置操作以执行支付交易。
16.一种计算机可读存储介质,包括存储于其上的指令,所述指令当在一个或多个处理器上执行时,执行根据权利要求1-9中任一项所述的方法。
17.第一计算装置,包括用于执行根据权利要求1-9中任一项所述方法的装置。
18.一种计算系统,包括:
根据权利要求17所述的第一计算装置;以及
第二计算装置,其中,所述第二计算装置被配置成:
从所述第一计算装置接收请求消息;
使用临时公钥和静态第二装置私钥生成第一共享秘密;
使用所述第一共享秘密解密已加密请求数据,以获得请求数据;
对所述静态第二装置私钥进行盲化,以确定盲化静态第二装置私钥;
使用所述盲化静态第二装置私钥和所述临时公钥生成第二共享秘密;
使用所述第二共享秘密加密所述响应数据,以获得已加密响应数据;以及
向所述第一计算装置发送所述响应消息。
19.一种计算机可读存储介质,包括存储于其上的指令,所述指令当在一个或多个处理器上执行时,执行根据权利要求10-15中任一项所述的方法。
20.第二计算装置,包括用于执行根据权利要求10-15中任一项所述方法的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010298355.9A CN111355749A (zh) | 2014-06-18 | 2015-06-18 | 用于已认证的通信的高效方法 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462014102P | 2014-06-18 | 2014-06-18 | |
US62/014,102 | 2014-06-18 | ||
US201462016048P | 2014-06-23 | 2014-06-23 | |
US62/016,048 | 2014-06-23 | ||
PCT/US2015/036524 WO2015195978A1 (en) | 2014-06-18 | 2015-06-18 | Efficient methods for authenticated communication |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010298355.9A Division CN111355749A (zh) | 2014-06-18 | 2015-06-18 | 用于已认证的通信的高效方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106664206A CN106664206A (zh) | 2017-05-10 |
CN106664206B true CN106664206B (zh) | 2020-05-12 |
Family
ID=54870635
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010298355.9A Pending CN111355749A (zh) | 2014-06-18 | 2015-06-18 | 用于已认证的通信的高效方法 |
CN201580032715.8A Active CN106664206B (zh) | 2014-06-18 | 2015-06-18 | 用于已认证的通信的高效方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010298355.9A Pending CN111355749A (zh) | 2014-06-18 | 2015-06-18 | 用于已认证的通信的高效方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10574633B2 (zh) |
EP (2) | EP3158680B1 (zh) |
CN (2) | CN111355749A (zh) |
AU (2) | AU2015277000C1 (zh) |
WO (1) | WO2015195978A1 (zh) |
Families Citing this family (105)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4027576B1 (en) | 2014-01-13 | 2023-11-22 | Visa International Service Association | Efficient methods for protecting identity in authenticated transmissions |
AU2015277000C1 (en) | 2014-06-18 | 2019-11-28 | Visa International Service Association | Efficient methods for authenticated communication |
US9705892B2 (en) * | 2014-06-27 | 2017-07-11 | Intel Corporation | Trusted time service for offline mode |
CN106797311B (zh) | 2014-08-29 | 2020-07-14 | 维萨国际服务协会 | 用于安全密码生成的系统、方法和存储介质 |
CN104243484B (zh) * | 2014-09-25 | 2016-04-13 | 小米科技有限责任公司 | 信息交互方法及装置、电子设备 |
GB201419016D0 (en) * | 2014-10-24 | 2014-12-10 | Visa Europe Ltd | Transaction Messaging |
SG11201704984SA (en) | 2015-01-27 | 2017-07-28 | Visa Int Service Ass | Methods for secure credential provisioning |
WO2016131056A1 (en) | 2015-02-13 | 2016-08-18 | Visa International Service Association | Confidential communication management |
US9635003B1 (en) * | 2015-04-21 | 2017-04-25 | The United States Of America As Represented By The Director, National Security Agency | Method of validating a private-public key pair |
US20160315777A1 (en) * | 2015-04-24 | 2016-10-27 | Citrix Systems, Inc. | Certificate updating |
US10205598B2 (en) * | 2015-05-03 | 2019-02-12 | Ronald Francis Sulpizio, JR. | Temporal key generation and PKI gateway |
US10009324B2 (en) * | 2015-06-29 | 2018-06-26 | American Express Travel Related Services Company, Inc. | Host card emulation systems and methods |
US10110566B2 (en) | 2015-07-21 | 2018-10-23 | Baffle, Inc. | Systems and processes for executing private programs on untrusted computers |
DE102015016302A1 (de) * | 2015-12-15 | 2017-06-22 | Giesecke & Devrient Gmbh | Vereinbarung von Austausch-Schlüsseln ausgehend von zwei statischen asymmetrischen Schlüssel-Paaren |
US9590956B1 (en) * | 2015-12-18 | 2017-03-07 | Wickr Inc. | Decentralized authoritative messaging |
GB2547025A (en) * | 2016-02-05 | 2017-08-09 | Thales Holdings Uk Plc | A method of data transfer, a method of controlling use of data and a cryptographic device |
US10666642B2 (en) * | 2016-02-26 | 2020-05-26 | Ca, Inc. | System and method for service assisted mobile pairing of password-less computer login |
US10007826B2 (en) * | 2016-03-07 | 2018-06-26 | ShoCard, Inc. | Transferring data files using a series of visual codes |
US10469265B2 (en) * | 2016-03-31 | 2019-11-05 | Intel Corporation | Technologies for secure inter-enclave communications |
US10880304B2 (en) * | 2016-04-06 | 2020-12-29 | Qualcomm Incorporated | Network verification of wearable devices |
US9596079B1 (en) * | 2016-04-14 | 2017-03-14 | Wickr Inc. | Secure telecommunications |
AU2017277523A1 (en) | 2016-06-07 | 2018-10-04 | Visa International Service Association | Multi-level communication encryption |
US10462109B2 (en) * | 2016-06-12 | 2019-10-29 | Apple Inc. | Secure transfer of a data object between user devices |
CN109219827B (zh) * | 2016-06-12 | 2022-04-29 | 苹果公司 | 用于交易的用户界面 |
EP3273635B1 (en) * | 2016-07-20 | 2019-10-30 | Mastercard International Incorporated | Secure channel establishment |
US20180115535A1 (en) * | 2016-10-24 | 2018-04-26 | Netflix, Inc. | Blind En/decryption for Multiple Clients Using a Single Key Pair |
US10681038B1 (en) * | 2016-10-26 | 2020-06-09 | Marvell Asia Pte, Ltd. | Systems and methods for efficient password based public key authentication |
US10498541B2 (en) | 2017-02-06 | 2019-12-03 | ShocCard, Inc. | Electronic identification verification methods and systems |
USRE49968E1 (en) | 2017-02-06 | 2024-05-14 | Ping Identity Corporation | Electronic identification verification methods and systems with storage of certification records to a side chain |
AU2018228890B2 (en) | 2017-03-01 | 2020-08-06 | Apple Inc. | System access using a mobile device |
US10122699B1 (en) * | 2017-05-31 | 2018-11-06 | InfoSci, LLC | Systems and methods for ephemeral shared data set management and communication protection |
US11463439B2 (en) * | 2017-04-21 | 2022-10-04 | Qwerx Inc. | Systems and methods for device authentication and protection of communication on a system on chip |
US10833858B2 (en) * | 2017-05-11 | 2020-11-10 | Microsoft Technology Licensing, Llc | Secure cryptlet tunnel |
US10747905B2 (en) | 2017-05-11 | 2020-08-18 | Microsoft Technology Licensing, Llc | Enclave ring and pair topologies |
US10664591B2 (en) | 2017-05-11 | 2020-05-26 | Microsoft Technology Licensing, Llc | Enclave pools |
US11488121B2 (en) | 2017-05-11 | 2022-11-01 | Microsoft Technology Licensing, Llc | Cryptlet smart contract |
US10528722B2 (en) | 2017-05-11 | 2020-01-07 | Microsoft Technology Licensing, Llc | Enclave pool shared key |
US10637645B2 (en) | 2017-05-11 | 2020-04-28 | Microsoft Technology Licensing, Llc | Cryptlet identity |
US10740455B2 (en) | 2017-05-11 | 2020-08-11 | Microsoft Technology Licensing, Llc | Encave pool management |
US10313133B2 (en) | 2017-06-21 | 2019-06-04 | Visa International Service Association | Secure communications providing forward secrecy |
US11456862B2 (en) * | 2017-07-05 | 2022-09-27 | Nippon Telegraph And Telephone Corporation | Secure computation system, secure computation apparatus, secure computation method, and recording medium |
US11082412B2 (en) | 2017-07-12 | 2021-08-03 | Wickr Inc. | Sending secure communications using a local ephemeral key pool |
US11316666B2 (en) * | 2017-07-12 | 2022-04-26 | Amazon Technologies, Inc. | Generating ephemeral key pools for sending and receiving secure communications |
WO2019022674A1 (en) * | 2017-07-27 | 2019-01-31 | Nanyang Technological University | AUTHENTICATION REALIZATION METHOD FOR TRANSACTION AND SYSTEM THEREOF |
JP6818220B2 (ja) * | 2017-10-19 | 2021-01-20 | 三菱電機株式会社 | 鍵共有装置、鍵共有方法及び鍵共有プログラム |
SG10201708686XA (en) * | 2017-10-23 | 2019-05-30 | Mastercard International Inc | Method and system for authorization of transactions |
US10958424B1 (en) * | 2017-11-02 | 2021-03-23 | Amazon Technologies, Inc. | Mechanism to allow third party to use a shared secret between two parties without revealing the secret |
US11206133B2 (en) | 2017-12-08 | 2021-12-21 | Ping Identity Corporation | Methods and systems for recovering data using dynamic passwords |
US11855971B2 (en) * | 2018-01-11 | 2023-12-26 | Visa International Service Association | Offline authorization of interactions and controlled tasks |
US10887088B2 (en) * | 2018-03-20 | 2021-01-05 | International Business Machines Corporation | Virtualizing a key hierarchy using a partially-oblivious pseudorandom function (P-OPRF) |
US10887293B2 (en) | 2018-03-20 | 2021-01-05 | International Business Machines Corporation | Key identifiers in an obliviousness pseudorandom function (OPRF)-based key management service (KMS) |
US10841080B2 (en) * | 2018-03-20 | 2020-11-17 | International Business Machines Corporation | Oblivious pseudorandom function in a key management system |
US11687929B2 (en) * | 2018-03-23 | 2023-06-27 | American Express Travel Related Services Co., Inc. | Authenticated secure online and offline transactions |
JP7155581B2 (ja) | 2018-03-30 | 2022-10-19 | ブラザー工業株式会社 | 通信装置と通信装置のためのコンピュータプログラム |
JP7024559B2 (ja) * | 2018-03-30 | 2022-02-24 | ブラザー工業株式会社 | 端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム |
KR20230062897A (ko) * | 2018-04-10 | 2023-05-09 | 비자 인터네셔널 서비스 어소시에이션 | 카드 부재 트랜잭션을 처리하기 위한 시스템 및 방법 |
CN108667599A (zh) * | 2018-05-21 | 2018-10-16 | 平安科技(深圳)有限公司 | 加密方法、装置、计算机设备和存储介质 |
CN108920924B (zh) * | 2018-06-20 | 2022-05-03 | 中电万维信息技术有限责任公司 | 一种基于人脸识别的数据共享方法 |
WO2019246206A1 (en) * | 2018-06-20 | 2019-12-26 | Iot And M2M Technologies, Llc | An ecdhe key exchange for server authentication and a key server |
US11716312B1 (en) * | 2018-06-22 | 2023-08-01 | Hopr Corporation | Platform for optimizing secure communications |
WO2020006162A1 (en) * | 2018-06-28 | 2020-01-02 | Iot And M2M Technologies, Llc | Ecdhe key exchange for mutual authentication using a key server |
US10924289B2 (en) * | 2018-07-13 | 2021-02-16 | Visa International Service Association | Public-private key pair account login and key manager |
US11115206B2 (en) | 2018-08-23 | 2021-09-07 | International Business Machines Corporation | Assymetric structured key recovering using oblivious pseudorandom function |
US10924267B2 (en) | 2018-08-24 | 2021-02-16 | International Business Machines Corporation | Validating keys derived from an oblivious pseudorandom function |
US11184177B2 (en) * | 2018-09-19 | 2021-11-23 | Synaptics Incorporated | Method and system for securing in-vehicle ethernet links |
US11082221B2 (en) | 2018-10-17 | 2021-08-03 | Ping Identity Corporation | Methods and systems for creating and recovering accounts using dynamic passwords |
US10979227B2 (en) | 2018-10-17 | 2021-04-13 | Ping Identity Corporation | Blockchain ID connect |
CN112970225B (zh) | 2018-10-29 | 2024-10-18 | 维萨国际服务协会 | 高效可信的通信系统和方法 |
US11063921B2 (en) * | 2018-11-06 | 2021-07-13 | International Business Machines Corporation | Extracting data from passively captured web traffic that is encrypted in accordance with an anonymous key agreement protocol |
US11228448B2 (en) | 2018-11-20 | 2022-01-18 | Iot And M2M Technologies, Llc | Mutually authenticated ECDHE key exchange for a device and a network using multiple PKI key pairs |
US11233652B2 (en) | 2019-01-04 | 2022-01-25 | Baidu Usa Llc | Method and system to derive a session key to secure an information exchange channel between a host system and a data processing accelerator |
CN109905236B (zh) * | 2019-01-15 | 2023-09-01 | 如般量子科技有限公司 | 基于私钥池的抗量子计算Elgamal加解密方法和系统 |
CN109921905B (zh) * | 2019-01-18 | 2022-02-08 | 如般量子科技有限公司 | 基于私钥池的抗量子计算密钥协商方法和系统 |
US11722464B2 (en) * | 2019-02-28 | 2023-08-08 | Vmware, Inc. | Symmetric account authentication |
US11044105B2 (en) * | 2019-03-13 | 2021-06-22 | Digital 14 Llc | System, method, and computer program product for sensitive data recovery in high security systems |
US11323275B2 (en) * | 2019-03-25 | 2022-05-03 | Micron Technology, Inc. | Verification of identity using a secret key |
US11233650B2 (en) | 2019-03-25 | 2022-01-25 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
WO2020201997A1 (en) * | 2019-03-29 | 2020-10-08 | Soul Machines | Cryptographic systems |
US10832271B1 (en) * | 2019-07-17 | 2020-11-10 | Capital One Services, Llc | Verified reviews using a contactless card |
US10506426B1 (en) * | 2019-07-19 | 2019-12-10 | Capital One Services, Llc | Techniques for call authentication |
US11868981B2 (en) * | 2019-08-02 | 2024-01-09 | Mastercard International Incorporated | System and method to support payment acceptance capability for merchants |
KR20220051306A (ko) * | 2019-08-23 | 2022-04-26 | 삼성전자주식회사 | 전자 디바이스 및 전자 디바이스가 타겟 디바이스에게 제어 명령을 전달하는 방법 |
CN110601825B (zh) * | 2019-08-29 | 2022-09-30 | 北京思源理想控股集团有限公司 | 密文的处理方法及装置、存储介质、电子装置 |
US11539517B2 (en) * | 2019-09-09 | 2022-12-27 | Cisco Technology, Inc. | Private association of customer information across subscribers |
US11144919B2 (en) * | 2019-10-17 | 2021-10-12 | Visa International Service Association | System, method, and computer program product for guaranteeing a payment authorization response |
CN111245611B (zh) * | 2020-01-21 | 2023-01-24 | 南京如般量子科技有限公司 | 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统 |
CN113841357B (zh) * | 2020-04-15 | 2024-08-09 | 谷歌有限责任公司 | 三方密码握手协议 |
US11405191B2 (en) * | 2020-05-13 | 2022-08-02 | Apple Inc. | Guaranteed encryptor authenticity |
CN112039891B (zh) * | 2020-08-31 | 2024-04-09 | 深圳前海微众银行股份有限公司 | 一种区块链共享异常数据的方法及装置 |
WO2022074449A1 (en) * | 2020-10-09 | 2022-04-14 | Unho Choi | Chain of authentication using public key infrastructure |
CN112753203B (zh) * | 2020-10-30 | 2022-07-12 | 华为技术有限公司 | 一种安全通信方法及装置 |
CN112636906A (zh) * | 2020-12-11 | 2021-04-09 | 海光信息技术股份有限公司 | 密钥协商方法及装置 |
US11372986B1 (en) | 2021-01-18 | 2022-06-28 | Axiom Technologies LLC | Systems and methods for encrypted content management |
GB2604857B (en) * | 2021-03-09 | 2023-05-17 | Garrison Tech Ltd | Devices and methods for performing cryptographic handshaking |
CN113114459B (zh) * | 2021-05-21 | 2023-06-02 | 上海银基信息安全技术股份有限公司 | 安全认证方法、装置、设备和存储介质 |
US11783654B2 (en) * | 2021-06-06 | 2023-10-10 | Apple Inc. | Techniques for authenticating building/room access terminals |
GB2622177A (en) * | 2021-08-10 | 2024-03-06 | Keyless Tech Srl | Authentication processing services for generating high-entropy cryptographic keys |
US20230246818A1 (en) * | 2022-01-31 | 2023-08-03 | Salesforce.Com, Inc. | Secure data migration |
US11758393B1 (en) * | 2022-03-31 | 2023-09-12 | Lenovo (Singapore) Pte. Ltd. | VPN authentication with forward secrecy |
WO2023230975A1 (zh) * | 2022-06-02 | 2023-12-07 | Oppo广东移动通信有限公司 | 建立互操作通道的方法、装置、芯片和存储介质 |
US20240086919A1 (en) * | 2022-08-03 | 2024-03-14 | 1080 Network Inc. | Systems, methods, and computing platforms for managing network enabled security codes |
US20240046261A1 (en) * | 2022-08-03 | 2024-02-08 | 1080 Network, Llc | Network-level policy validation for network-based exchanges |
US11997105B2 (en) | 2022-08-03 | 2024-05-28 | 1080 Network, Inc. | Network-level user validation for network-based exchanges that leverages universally unique ephemeral key to eliminate use of persistent credentials |
US11811752B1 (en) * | 2022-08-03 | 2023-11-07 | 1080 Network, Inc. | Systems, methods, and computing platforms for executing credential-less network-based communication exchanges |
US20240129138A1 (en) * | 2022-10-14 | 2024-04-18 | Assa Abloy Ab | Remote access via system-level trusted authorities |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453159B1 (en) | 1999-02-25 | 2002-09-17 | Telxon Corporation | Multi-level encryption system for wireless network |
US7707420B1 (en) * | 1999-06-23 | 2010-04-27 | Research In Motion Limited | Public key encryption with digital signature scheme |
US7254232B2 (en) | 2001-02-14 | 2007-08-07 | Copytele, Inc. | Method and system for selecting encryption keys from a plurality of encryption keys |
US7085376B2 (en) | 2001-02-14 | 2006-08-01 | Copytele, Inc. | Method and system for securely exchanging encryption key determination information |
US7127063B2 (en) * | 2001-12-31 | 2006-10-24 | Certicom Corp. | Method and apparatus for computing a shared secret key |
US20060265595A1 (en) | 2003-04-02 | 2006-11-23 | Scottodiluzio Salvatore E | Cascading key encryption |
US7409545B2 (en) | 2003-09-18 | 2008-08-05 | Sun Microsystems, Inc. | Ephemeral decryption utilizing binding functions |
KR100571820B1 (ko) | 2003-10-20 | 2006-04-17 | 삼성전자주식회사 | 신원 정보를 기반으로 하는 암호 시스템에서의 컨퍼런스세션 키 분배 방법 |
US20050149732A1 (en) * | 2004-01-07 | 2005-07-07 | Microsoft Corporation | Use of static Diffie-Hellman key with IPSec for authentication |
US8031865B2 (en) | 2004-01-08 | 2011-10-04 | Encryption Solutions, Inc. | Multiple level security system and method for encrypting data within documents |
US7346773B2 (en) | 2004-01-12 | 2008-03-18 | Cisco Technology, Inc. | Enabling stateless server-based pre-shared secrets |
US7996673B2 (en) * | 2004-05-12 | 2011-08-09 | Echoworx Corporation | System, method and computer product for sending encrypted messages to recipients where the sender does not possess the credentials of the recipient |
US7747865B2 (en) * | 2005-02-10 | 2010-06-29 | International Business Machines Corporation | Method and structure for challenge-response signatures and high-performance secure Diffie-Hellman protocols |
US7627760B2 (en) | 2005-07-21 | 2009-12-01 | Microsoft Corporation | Extended authenticated key exchange |
EP1748615A1 (en) | 2005-07-27 | 2007-01-31 | Sun Microsystems France S.A. | Method and system for providing public key encryption security in insecure networks |
DE102006004868B4 (de) | 2005-11-04 | 2010-06-02 | Siemens Ag | Verfahren und Server zum Bereitstellen eines Mobilitätsschlüssels |
CN100542091C (zh) * | 2006-07-07 | 2009-09-16 | 上海交通大学 | 一种基于身份的密钥生成方法及系统 |
KR101366243B1 (ko) | 2006-12-04 | 2014-02-20 | 삼성전자주식회사 | 인증을 통한 데이터 전송 방법 및 그 장치 |
CA2682066C (en) | 2007-01-24 | 2015-12-01 | Railpower, Llc | Multi-power source locomotive control |
US8656167B2 (en) | 2008-02-22 | 2014-02-18 | Security First Corp. | Systems and methods for secure workgroup management and communication |
JP4613969B2 (ja) | 2008-03-03 | 2011-01-19 | ソニー株式会社 | 通信装置、及び通信方法 |
US8406735B2 (en) | 2008-06-24 | 2013-03-26 | Stmicroelectronics S.R.L. | Method for pairing electronic equipment in a wireless network system |
US8935528B2 (en) * | 2008-06-26 | 2015-01-13 | Microsoft Corporation | Techniques for ensuring authentication and integrity of communications |
USH2270H1 (en) | 2009-07-09 | 2012-06-05 | Actividentity, Inc. | Open protocol for authentication and key establishment with privacy |
US8918648B2 (en) * | 2010-02-25 | 2014-12-23 | Certicom Corp. | Digital signature and key agreement schemes |
US8429408B2 (en) | 2010-06-11 | 2013-04-23 | Certicom Corp. | Masking the output of random number generators in key generation protocols |
CA2811923A1 (en) | 2010-09-21 | 2012-03-29 | Actividentity, Inc. | Shared secret establishment and distribution |
EP2434715A1 (en) | 2010-09-24 | 2012-03-28 | Gemalto SA | Method for establishing a secure communication channel |
EP2518932A3 (en) | 2010-10-05 | 2015-11-18 | Brandenburgische Technische Universität Cottbus-Senftenberg | A method of password-based authentication and session key agreement for secure data transmission, a method for securely transmitting data, and an electronic data transmission system |
US8756706B2 (en) * | 2010-10-12 | 2014-06-17 | Blackberry Limited | Method for securing credentials in a remote repository |
US8566577B2 (en) | 2010-11-30 | 2013-10-22 | Blackberry Limited | Method and device for storing secured sent message data |
US8549299B2 (en) | 2011-02-28 | 2013-10-01 | Certicom Corp. | Accelerated key agreement with assisted computations |
KR101233254B1 (ko) | 2011-04-26 | 2013-02-14 | 숭실대학교산학협력단 | 가변길이 인증코드를 사용하는 무선 통신 단말간 세션키 공유 방법 |
US20120314865A1 (en) | 2011-06-07 | 2012-12-13 | Broadcom Corporation | NFC Communications Device for Setting Up Encrypted Email Communication |
US20130091353A1 (en) | 2011-08-01 | 2013-04-11 | General Instrument Corporation | Apparatus and method for secure communication |
DE102011080876A1 (de) | 2011-08-12 | 2013-02-14 | Tridonic Gmbh & Co Kg | Management des Gerätebesitzes und Inbetriebnahme in drahtlosen Netzwerken mit Verschlüsselung durch öffentliche Schlüssel |
US8837741B2 (en) * | 2011-09-12 | 2014-09-16 | Qualcomm Incorporated | Systems and methods for encoding exchanges with a set of shared ephemeral key data |
CN102420810A (zh) * | 2011-09-28 | 2012-04-18 | 盛乐信息技术(上海)有限公司 | 基于无证书公钥机制的网络文件系统及方法 |
JP5367039B2 (ja) | 2011-09-30 | 2013-12-11 | 株式会社東芝 | サーバ装置及びプログラム |
CN104247327B (zh) | 2012-02-21 | 2017-11-10 | 密克罗奇普技术公司 | 使用密钥加密密钥的密码发射系统 |
US8948386B2 (en) * | 2012-06-27 | 2015-02-03 | Certicom Corp. | Authentication of a mobile device by a network and key generation |
CN103701596A (zh) * | 2012-09-27 | 2014-04-02 | 西门子公司 | 文件访问及响应文件访问请求的方法、系统和设备 |
EP2944067B1 (en) | 2013-01-10 | 2023-03-01 | NEC Corporation | Mtc key management for key derivation at both ue and network |
GB201310084D0 (en) * | 2013-06-06 | 2013-07-17 | Mastercard International Inc | Improvements to electronic authentication systems |
CN112116344B (zh) * | 2013-07-15 | 2024-08-13 | 维萨国际服务协会 | 安全的远程支付交易处理 |
CN103546289B (zh) * | 2013-09-29 | 2017-01-11 | 北京握奇智能科技有限公司 | 一种基于USBKey的安全传输数据的方法及系统 |
EP4027576B1 (en) | 2014-01-13 | 2023-11-22 | Visa International Service Association | Efficient methods for protecting identity in authenticated transmissions |
US20150213433A1 (en) * | 2014-01-28 | 2015-07-30 | Apple Inc. | Secure provisioning of credentials on an electronic device using elliptic curve cryptography |
CN103795543B (zh) * | 2014-02-12 | 2016-09-21 | 中国石油大学(华东) | 一种用于rfid系统的安全双向认证方法 |
AU2015277000C1 (en) | 2014-06-18 | 2019-11-28 | Visa International Service Association | Efficient methods for authenticated communication |
CN106797311B (zh) | 2014-08-29 | 2020-07-14 | 维萨国际服务协会 | 用于安全密码生成的系统、方法和存储介质 |
-
2015
- 2015-06-18 AU AU2015277000A patent/AU2015277000C1/en active Active
- 2015-06-18 CN CN202010298355.9A patent/CN111355749A/zh active Pending
- 2015-06-18 EP EP15810102.2A patent/EP3158680B1/en active Active
- 2015-06-18 EP EP21158837.1A patent/EP3860041B1/en active Active
- 2015-06-18 US US14/743,874 patent/US10574633B2/en active Active
- 2015-06-18 CN CN201580032715.8A patent/CN106664206B/zh active Active
- 2015-06-18 WO PCT/US2015/036524 patent/WO2015195978A1/en active Application Filing
-
2019
- 2019-08-14 AU AU2019216646A patent/AU2019216646B2/en active Active
- 2019-11-25 US US16/694,668 patent/US11394697B2/en active Active
-
2022
- 2022-07-08 US US17/860,917 patent/US12021850B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN111355749A (zh) | 2020-06-30 |
AU2015277000B2 (en) | 2019-05-16 |
WO2015195978A1 (en) | 2015-12-23 |
EP3158680B1 (en) | 2021-02-24 |
EP3860041A1 (en) | 2021-08-04 |
US12021850B2 (en) | 2024-06-25 |
US20200092269A1 (en) | 2020-03-19 |
US20220353252A1 (en) | 2022-11-03 |
US10574633B2 (en) | 2020-02-25 |
EP3158680A4 (en) | 2018-02-07 |
US20150372811A1 (en) | 2015-12-24 |
US11394697B2 (en) | 2022-07-19 |
EP3860041B1 (en) | 2023-03-15 |
EP3158680A1 (en) | 2017-04-26 |
AU2019216646A1 (en) | 2019-09-05 |
AU2019216646B2 (en) | 2021-01-28 |
AU2015277000C1 (en) | 2019-11-28 |
AU2015277000A1 (en) | 2016-11-17 |
CN106664206A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12021850B2 (en) | Efficient methods for authenticated communication | |
US11856104B2 (en) | Methods for secure credential provisioning | |
US12021987B2 (en) | Methods for secure cryptogram generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |