HK40125824A - Multi-factor authentication providing a credential via a contactless card for secure messaging - Google Patents
Multi-factor authentication providing a credential via a contactless card for secure messagingInfo
- Publication number
- HK40125824A HK40125824A HK42025114317.8A HK42025114317A HK40125824A HK 40125824 A HK40125824 A HK 40125824A HK 42025114317 A HK42025114317 A HK 42025114317A HK 40125824 A HK40125824 A HK 40125824A
- Authority
- HK
- Hong Kong
- Prior art keywords
- sms
- computing device
- message
- contactless card
- password
- Prior art date
Links
Description
相关申请Related applications
该申请要求获得于2019年12月26日提交的题为“MULTI-FACTOR AUTHENTICATIONPROVIDING A CREDENTIAL VIA A CONTACTLESS CARD FOR SECURE MESSAGING”的美国专利申请序列号16/727,162(于2020年8月25日以美国专利号10,757,574发布)的优先权。上述专利申请的内容通过引用全部纳入本文。This application claims priority to U.S. Patent Application Serial No. 16/727,162, filed December 26, 2019, entitled “MULTI-FACTOR AUTHENTICATION PROVIDING A CREDENTIAL VIA A CONTACTLESS CARD FOR SECURE MESSAGING” (published August 25, 2020, under U.S. Patent No. 10,757,574). The contents of the aforementioned patent application are incorporated herein by reference in their entirety.
背景技术Background Technology
消息服务使多方能够以快速和方便的方式经由书面消息进行通信。消息服务越来越多地用于商业内容中。例如,客户能够与公司的客户服务代表进行消息服务会话。传统消息服务的一个限制是缺乏安全性。消息服务会话的一方能够在传统消息服务会话中伪造电话号码或假定虚假身份。因此,很难在不担心与冒名顶替者通信的情况下经由传统的消息服务传输潜在的敏感信息,诸如机密信息。Messaging services enable multiple parties to communicate quickly and conveniently via written messages. Messaging services are increasingly used in business contexts. For example, customers can have messaging conversations with a company's customer service representatives. One limitation of traditional messaging services is their lack of security. A party in a traditional messaging session can forge phone numbers or assume a false identity. Therefore, it is difficult to transmit potentially sensitive information, such as confidential information, via traditional messaging services without fear of communicating with imposters.
发明内容Summary of the Invention
根据示例性实施例,执行了一种计算设备实现的方法。根据这种方法,在所述计算设备处从具有相关的电话号码的短消息服务(SMS)功能设备接收消息。该消息指示希望发起SMS会话,并且该消息包含安全组件。对安全组件进行解密,以获得至少一次性密码和帐户标识符的散列。提取一次性密码和帐户标识符。确定一次性密码是否有效。确定与该帐户标识符关联的帐户,并确定与所确定帐户有关的电话号码。判断关联的电话号码是否匹配于与该帐号相关的电话号码。当发送SMS密码有效且关联的电话号码是匹配的电话号码时,通过向SMS功能设备发送SMS消息来发起安全SMS会话。当密码无效和/或关联的密码不是匹配的电话号码时,则拒绝发起与SMS功能设备的安全SMS会话。According to an exemplary embodiment, a method implemented in a computing device is performed. According to this method, a message is received at the computing device from a Short Message Service (SMS) functional device having an associated phone number. The message indicates a desire to initiate an SMS session and contains a security component. The security component is decrypted to obtain a hash of at least a one-time password and an account identifier. The one-time password and the account identifier are extracted. It is determined whether the one-time password is valid. The account associated with the account identifier is determined, and the phone number associated with the determined account is determined. It is determined whether the associated phone number matches the phone number associated with the account. When the SMS password is valid and the associated phone number is a matching phone number, a secure SMS session is initiated by sending an SMS message to the SMS functional device. When the password is invalid and/or the associated password is not a matching phone number, the initiation of a secure SMS session with the SMS functional device is rejected.
解密可以使用对称解密算法。该方法可以包括以下附加步骤:检查支持SMS的设备的地理位置,以及使用所述地理位置作为确定是否发起所述安全SMS会话的另一个认证因素。所述接收消息可以包括接收SMS信息。一次性密码可以是基于时间的密码。计算设备可以维护计数器,并可以在确定密码是否已过期时使用所述计数器的值。由计算设备维护的计数器可以与由非接触式卡维护的计数器同步。Decryption can be performed using a symmetric decryption algorithm. The method may include the following additional steps: checking the geographic location of the SMS-enabled device, and using the geographic location as another authentication factor to determine whether to initiate the secure SMS session. The received message may include receiving SMS information. The one-time password may be a time-based password. The computing device may maintain a counter and may use the value of the counter when determining whether a password has expired. The counter maintained by the computing device may be synchronized with a counter maintained by the contactless card.
根据示例性实施例,执行了一种可用短消息服务(SMS)功能的设备实现的方法。根据这种方法,经由近场通信在所述SMS功能设备处从非接触式卡接收加密安全的一次性密码。该加密安全的一次性密码包括至少一次性密码和帐户标识符的加密散列。一次性密码由对称加密算法加密,且一次性密码仅对设定的时间段有效。从所述SMS功能设备向一方发送消息以请求发起安全SMS会话,其中所述消息包括所述加密安全的一次性密码,并且其中所述SMS功能设备具有相关的电话号码。当所述密码有效时并且当所述SMS功能设备的电话号码与由所述帐户标识符识别的帐户相关联时,在所述SMS功能设备处从所述一方接收SMS消息。在发起安全SMS会话时,聊天机器人可用于参与安全SMS会话。According to an exemplary embodiment, a method implemented by a device with Short Message Service (SMS) functionality is performed. According to this method, an encrypted one-time password is received from a contactless card at the SMS-enabled device via near-field communication. The encrypted one-time password includes at least a one-time password and a cryptographic hash of an account identifier. The one-time password is encrypted using a symmetric encryption algorithm and is valid only for a set time period. A message is sent from the SMS-enabled device to a party to request the initiation of a secure SMS session, wherein the message includes the encrypted one-time password, and wherein the SMS-enabled device has an associated phone number. When the password is valid and when the phone number of the SMS-enabled device is associated with an account identified by the account identifier, an SMS message is received from the party at the SMS-enabled device. A chatbot may be used to participate in the secure SMS session when it is initiated.
从SMS功能设备发送消息可以包括发送初始SMS消息。从所述SMS功能设备发送消息包括向所述一方的网站发送消息或直接向所述一方发送消息之一。所述方法还可包括从SMS功能设备向所述一方发送地理位置信息。SMS消息可以从聊天机器人接收。Sending a message from an SMS-enabled device may include sending an initial SMS message. Sending a message from the SMS-enabled device may include sending a message to the party's website or sending a message directly to the party. The method may also include sending geolocation information from the SMS-enabled device to the party. SMS messages may be received from a chatbot.
根据示例性实施例,一种方法由非接触式卡执行。根据这种方法,发起与计算设备的近场通信(NFC)会话。作为NFC会话的一部分,非接触式卡与运行在计算设备上的应用通信,并通过散列函数传递至少一次密码和帐户标识符,以创建散列值。加密所述散列值。将加密的散列值传递给运行在计算设备上的应用。提示所述应用向远程计算设备发送消息,以发起与所述远程计算设备的消息会话,其中所述消息包括所加密的散列值,作为希望发起所述消息会话的一方的身份的证据。According to an exemplary embodiment, a method is performed by a contactless card. According to this method, a Near Field Communication (NFC) session with a computing device is initiated. As part of the NFC session, the contactless card communicates with an application running on the computing device and transmits a password and account identifier at least once via a hash function to create a hash value. The hash value is encrypted. The encrypted hash value is passed to the application running on the computing device. The application is prompted to send a message to a remote computing device to initiate a messaging session with the remote computing device, wherein the message includes the encrypted hash value as evidence of the identity of the party wishing to initiate the messaging session.
一次性密码可以是基于时间的密码。非接触式卡可维护计数器,该计数器的值可用于创建加密散列值。通过所述散列函数传递所述计数器的值。在一些情况下,与所述一次性密码和所述帐户标识符一起通过所述散列函数传递所述计数器的值。所述一次性密码仅对设定的时间段有效。所述NFC会话是响应于在所述计算设备中的读卡器上轻触所述非接触式卡而发起的。The one-time password can be a time-based password. The contactless card maintains a counter whose value can be used to create a cryptographic hash value. The counter value is passed through the hash function. In some cases, the counter value is passed through the hash function along with the one-time password and the account identifier. The one-time password is only valid for a set time period. The NFC session is initiated in response to tapping the contactless card on a card reader in the computing device.
附图说明Attached Figure Description
图1描述了适合实施示例性实施例的环境。Figure 1 illustrates an environment suitable for implementing exemplary embodiments.
图2描述了一个流程图,说明了在示例性实施例中验证发起方可执行的步骤。Figure 2 illustrates a flowchart showing the steps for verifying the initiator's executable behavior in an exemplary embodiment.
图3描述了一个框图,显示了在示例性实施例中非接触式卡和具有消息功能设备之间的交互。Figure 3 illustrates a block diagram showing the interaction between a contactless card and a device with messaging functionality in an exemplary embodiment.
图4描述了相对于服务器计算设备的消息流。Figure 4 illustrates the message flow relative to the server computing device.
图5A描绘了非接触式卡的说明性的正面。Figure 5A depicts an illustrative front view of a contactless card.
图5B描述了非接触式卡的硬件组件。Figure 5B illustrates the hardware components of a contactless card.
图5C描绘了消息功能计算设备的框图。Figure 5C depicts a block diagram of a messaging computing device.
图5D描绘了服务器计算设备和存储的框图。Figure 5D depicts a block diagram of server computing devices and storage.
图6A描绘了说明了对输入进行散列以产生散列值的附图。Figure 6A depicts an illustration of hashing the input to produce a hash value.
图6B描述了散列函数的不同类型的输入。Figure 6B illustrates the different types of inputs to a hash function.
图7描述了加密操作以生成安全分组。Figure 7 illustrates the encryption operations to generate secure blocks.
图8描述了说明了以验证发起方而可以执行的步骤的流程图。Figure 8 illustrates a flowchart showing the steps that can be performed to verify the initiator.
图9描述了其他类型的认证因素。Figure 9 illustrates other types of authentication factors.
具体实施方式Detailed Implementation
示例性实施例可以使用非接触式卡作为多因素认证中用于安全消息服务的次级认证形式。当用于安全消息服务的消息源自具有相关的电话号码的设备时,该电话号码可作为用于由消息服务接收方进行认证身份的主要凭证。发起消息服务会话的请求的接受方(诸如服务器计算设备)可被编程以使用始发设备的电话号码来查询关于一方的身份及其相关的电话号码的记录作为主要凭证,然后可以需要源自非接触式卡的认证凭证作为用于发起方的次级凭证。在一些情况下,源自非接触式卡的凭证是仅在时间段有效的一次性密码。接收方确定一次性密码是否有效。如果两个凭证都有效,则可以发起与发起方的安全消息会话。An exemplary embodiment may use a contactless card as a secondary form of authentication for secure messaging services in multi-factor authentication. When the message source for the secure messaging service is a device with an associated phone number, that phone number can serve as the primary credential for authentication by the message service recipient. The recipient (such as a server computing device) initiating the message service session request can be programmed to use the originating device's phone number to query records about the party's identity and its associated phone number as the primary credential, and may then require authentication credentials from the contactless card as secondary credentials for the initiator. In some cases, the credential from the contactless card is a one-time password valid only for a specific period. The recipient determines whether the one-time password is valid. If both credentials are valid, a secure messaging session with the initiator can be initiated.
消息服务可以采取不同的形式。例如,消息服务可以是短消息服务(SMS)服务。消息服务可以是即时消息服务、社交媒体消息服务、视频消息服务、聊天应用或虚拟助手应用等。Messaging services can take many forms. For example, a messaging service can be a Short Message Service (SMS). Messaging services can also be instant messaging services, social media messaging services, video messaging services, chat applications, or virtual assistant applications, etc.
由于本文中描述的消息服务可以针对消息服务会话采用发起方的多因素认证,因此参与消息会话的非发起方对与经过认证的一方进行通信的信心得到增强。因此,冒名顶替者参与消息服务会话的风险大大降低。因此,本文公开的安全消息服务非常适合交换潜在的敏感信息,诸如财务信息、健康信息、业务信息、驾驶记录、犯罪记录和其他类型的机密信息。本文描述的安全消息服务非常适合于在客户和金融机构代表、患者和医疗保健提供者、被保险人和保险公司代表、客户和律师、客户和会计师以及公司雇员等之间的交流。加密和安全散列可用于保护经由安全消息服务交换的消息的内容。Because the messaging service described herein employs multi-factor authentication for the initiator of the messaging session, non-initiators participating in the session have enhanced confidence in communicating with the authenticated party. Therefore, the risk of impersonation in the messaging session is significantly reduced. Consequently, the secure messaging service disclosed herein is well-suited for exchanging potentially sensitive information, such as financial information, health information, business information, driving records, criminal records, and other types of confidential information. The secure messaging service described herein is ideal for communication between clients and financial institution representatives, patients and healthcare providers, insured and insurance company representatives, clients and lawyers, clients and accountants, and company employees. Encryption and secure hashing can be used to protect the content of messages exchanged via the secure messaging service.
一次性密码可以作为由发起安全消息会话的发起方传递给接收方的安全分组的一部分进行加密。安全分组可以包含用于发起方的识别信息,诸如帐户信息。在将一次性密码添加到分组并加密之前,可以使用计数器值对其进行散列处理。该计数器用作时间指标,并帮助定义密码的寿命。One-time passwords can be encrypted as part of a secure packet passed from the initiator of a secure messaging session to the recipient. This secure packet can contain identifying information for the initiator, such as account information. Before adding the one-time password to the packet and encrypting it, it can be hashed using a counter value. This counter serves as a time indicator and helps define the password's lifespan.
作为认证的一部分,接收方解密安全分组。接收方可以维护自己的计数器值,该计数器值与由发起方维护的计数器值同步。如果安全分组中由发起方使用的计数器值与由接收方维护的计数器值在值上不匹配或差异太大,则其可以是一次性密码不再有效的指示。接收方检查一次性密码是否正确。此外,接收方可以使用帐户信息以检索与该帐户相关的一方的电话号码。接收方可以检查所检索到的电话号码是否与请求来源的设备的电话号码匹配。如果电话号码匹配且一次性密码正确且未过期,则通过提示非发起方向发起方发送消息,接收方可以发起消息服务。非发起方可以是人或聊天机器人,并且可以经由服务器或单独的客户端设备进行通信。如果发起方认证失败,则可以不会从非发起方发送任何消息,或从非发起方发送拒绝消息。As part of authentication, the recipient decrypts the security packet. The recipient can maintain its own counter value, synchronized with the counter value maintained by the initiator. If the counter value used by the initiator in the security packet does not match or differs significantly from the counter value maintained by the recipient, it can be an indication that the one-time password is no longer valid. The recipient checks if the one-time password is correct. Additionally, the recipient can use account information to retrieve the phone number of the party associated with that account. The recipient can check if the retrieved phone number matches the phone number of the device from which the request originated. If the phone number matches and the one-time password is correct and not expired, the recipient can initiate a messaging service by prompting the non-initiator to send a message to the initiator. The non-initiator can be a person or a chatbot and can communicate via a server or a separate client device. If the initiator's authentication fails, no message may be sent from the non-initiator, or a rejection message may be sent from the non-initiator.
图1描述了适合实践示例性实施例的环境100。该环境包括由发行者向发起方101发行的非接触式卡102。发起方101持有非接触式卡102,并且鉴于非接触式卡102可以产生用于验证发起方身份的凭证,建议发起方101保持非接触式卡102的安全并且保存在他们手中。非接触式卡102可与消息功能计算设备104结合使用。消息功能计算设备104支持一个或多个消息服务,诸如上文描述的那些服务。消息功能计算设备104可以是智能手机,台式电脑,笔记本电脑,平板电脑,可穿戴计算设备或任何支持消息服务的计算设备,并且能够使发起方101参与本文所描述的安全信息服务的计算设备。Figure 1 illustrates an environment 100 suitable for implementing an exemplary embodiment. This environment includes a contactless card 102 issued by an issuer to an initiator 101. The initiator 101 holds the contactless card 102, and given that the contactless card 102 can generate credentials for verifying the initiator's identity, it is recommended that the initiator 101 keep the contactless card 102 secure and in their possession. The contactless card 102 can be used in conjunction with a messaging-enabled computing device 104. The messaging-enabled computing device 104 supports one or more messaging services, such as those described above. The messaging-enabled computing device 104 can be a smartphone, desktop computer, laptop computer, tablet computer, wearable computing device, or any computing device that supports messaging services and enables the initiator 101 to participate in the secure messaging services described herein.
正如下面将更详细地描述的那样,通过首先与消息功能计算设备104对接,可将非接触式卡102用于发起方101的认证。消息功能计算设备104具有近场通信(NFC)读卡器,该读卡器可以读取非接触式卡102并与非接触式卡102进行双向通信。消息功能计算设备104与网络106对接。网络106可以包括有线网络和/或无线网络。网络106可以包括局域网(LAN)和/或广域网(WAN),包括因特网。服务器计算设备108与网络106相连。服务器计算设备108(例如,接收方)通过消息服务借助消息功能计算设备104从发起方101接收发起安全消息系统的请求,并负责执行认证。非发起方110可以是访问服务器计算设备108的一方,或是使用另一个计算设备参与聊天会话的服务器计算设备的客户端。非发起方110可以是人、聊天机器人或智能代理。As will be described in more detail below, the contactless card 102 can be used for authentication of the initiator 101 by first interfacing with the messaging computing device 104. The messaging computing device 104 has a near-field communication (NFC) reader that can read the contactless card 102 and communicate bidirectionally with it. The messaging computing device 104 interfacing with a network 106. The network 106 may include a wired network and/or a wireless network. The network 106 may include a local area network (LAN) and/or a wide area network (WAN), including the Internet. A server computing device 108 is connected to the network 106. The server computing device 108 (e.g., the receiver) receives a request to initiate a secure messaging system from the initiator 101 via the messaging computing device 104 through a messaging service and is responsible for performing authentication. The non-initiator 110 may be a party accessing the server computing device 108 or a client of the server computing device participating in a chat session using another computing device. The non-initiator 110 may be a person, a chatbot, or a smart agent.
图2示出了在示例实施例中可执行的步骤的流程图,以对希望与非发起方发起安全消息服务会话的发起方进行认证。这些步骤在下文中相对于图3和图4进行描述。该过程可以从一方将非接触式卡302(见图3)轻触到消息功能计算设备306(202)中的读卡器307开始。在一些实施例中,非接触式卡302和读卡器307经由近场通信(NFC)协议进行通信。轻触发起在非接触式卡和消息功能计算设备306中的读卡器307之间的NFC通信。在其他情况下,非接触式卡302不需要轻触读卡器307,而是可以只需要足够接近读卡器307以发起NFC通信会话。在NFC通信会话中,将安全分组304从非接触式卡302发送到包括安全分组的消息功能计算设备306。非接触式卡302可以经由通信来提示在消息功能计算设备306上运行的应用,以生成给接收方的消息。在一种直接方法中,该应用是聊天程序,诸如SMS消息应用或用于其他各种消息服务之一的应用。如下所述,消息功能计算设备306生成认证以尝试发起安全消息会话。在一种间接方法中,非接触式卡302为服务器提供统一的资源定位符(URL),其包括从消息功能计算设备306联系的服务器的电话号码,以尝试发起安全消息服务。消息功能计算设备306生成封装安全分组310的消息308,该消息308作为发起安全消息系统的请求被发送到服务器计算设备406(见图4)(204)。Figure 2 illustrates a flowchart of the steps that can be performed in an example embodiment to authenticate an initiator who wishes to initiate a secure messaging service session with a non-initiator. These steps are described below with respect to Figures 3 and 4. The process can begin with one party tapping a contactless card 302 (see Figure 3) against a reader 307 in a messaging functional computing device 306 (202). In some embodiments, the contactless card 302 and the reader 307 communicate via a Near Field Communication (NFC) protocol. The tap initiates NFC communication between the contactless card and the reader 307 in the messaging functional computing device 306. In other cases, the contactless card 302 does not need to tap the reader 307, but may only need to be close enough to the reader 307 to initiate an NFC communication session. In the NFC communication session, a secure packet 304 is sent from the contactless card 302 to the messaging functional computing device 306, which includes the secure packet. The contactless card 302 may then prompt an application running on the messaging functional computing device 306 to generate a message for the recipient. In a direct approach, the application is a chat application, such as an SMS messaging application or an application used for one of various other messaging services. As described below, the messaging-enabled computing device 306 generates an authentication to attempt to initiate a secure messaging session. In an indirect approach, a contactless card 302 provides the server with a unified resource locator (URL) including the phone number of the server contacted from the messaging-enabled computing device 306 to attempt to initiate a secure messaging service. The messaging-enabled computing device 306 generates a message 308 encapsulating a secure packet 310, which is sent to the server computing device 406 (see Figure 4) (204) as a request to initiate the secure messaging system.
请求可以经由消息服务或经由另一个通道被发送到服务器计算设备406。如上所述,安全分组310可以包括一次性密码和用于发起方的识别信息。下面将更详细地讨论这些内容。服务器计算设备406接收消息402,并从安全分组404(206)中提取一次性密码和其他信息(诸如识别信息和计数器值)。基于所提取的信息,服务器计算设备406成功验证发起方,或不成功验证发起方(208)。当发起方被认证成功的情况下,经由消息服务将来自非发起方408的响应消息410发送给发起方(212)。响应消息410可以通知发起方他们已经被认证,或者,例如,可以只是简单地问候发起方,并可以询问发起方他们与非发起方408联系的内容。相反,如果发起方没有被成功认证,则将拒绝安全消息系统的请求的响应消息410发送给发起方(210)。在一些可替选的示例性实施例中,在这种情况下不会将任何消息发送回发起方。The request can be sent to server computing device 406 via a messaging service or via another channel. As described above, security packet 310 may include a one-time password and identification information for the initiator. These will be discussed in more detail below. Server computing device 406 receives message 402 and extracts the one-time password and other information (such as identification information and counter values) from security packet 404 (206). Based on the extracted information, server computing device 406 successfully authenticates the initiator or fails to authenticate the initiator (208). If the initiator is successfully authenticated, a response message 410 from non-initiator 408 is sent to the initiator (212) via the messaging service. Response message 410 may notify the initiator that they have been authenticated, or, for example, may simply greet the initiator and may inquire about the content of their communication with non-initiator 408. Conversely, if the initiator is not successfully authenticated, a response message 410 rejecting the request from the secure messaging system is sent to the initiator (210). In some alternative exemplary embodiments, no message is sent back to the initiator in this case.
图5A所示的非接触式卡500,其可以是由服务提供商505(显示在卡500的正面或背面)发行的支付卡,诸如信用卡、借记卡或礼品卡。在一些示例性实施例中,非接触式卡500与支付卡无关,并且可以包括但不限于标识卡。在一些情况下,支付卡可以包括双接口非接触式支付卡。所述非接触式卡500可包括基板510,基板510可包括由塑料、金属和其他材料组成的单层或层压层。典型的基材材料包括聚氯乙烯、聚氯乙烯醋酸酯、丙烯腈丁二烯苯乙烯、聚碳酸酯、聚酯、阳极化钛、钯、金、碳、纸和可生物降解材料。在一些示例中,非接触式卡500可以具有符合ISO/IEC 7810标准的ID-1格式的物理特性,以及非接触式卡500可以符合ISO/IEC 14443标准。但是,应当理解的是,根据本公开的非接触式卡500可以具有不同的特性,并且本公开不需要非接触式卡在支付卡中实现。The contactless card 500 shown in Figure 5A can be a payment card issued by a service provider 505 (displayed on the front or back of the card 500), such as a credit card, debit card, or gift card. In some exemplary embodiments, the contactless card 500 is independent of the payment card and may include, but is not limited to, an identification card. In some cases, the payment card may include a dual-interface contactless payment card. The contactless card 500 may include a substrate 510, which may include a single layer or laminate composed of plastics, metals, and other materials. Typical substrate materials include polyvinyl chloride, polyvinyl chloride acetate, acrylonitrile butadiene styrene, polycarbonate, polyester, anodized titanium, palladium, gold, carbon, paper, and biodegradable materials. In some examples, the contactless card 500 may have physical characteristics conforming to the ID-1 format of the ISO/IEC 7810 standard, and the contactless card 500 may conform to the ISO/IEC 14443 standard. However, it should be understood that the contactless card 500 according to this disclosure may have different characteristics, and this disclosure does not require the contactless card to be implemented in a payment card.
非接触式卡500还可以包括显示在卡正面和/或背面的标识信息515和接触垫520。接触垫520可被配置为与另一通信设备(诸如用户设备、智能手机、笔记本电脑、台式机或平板电脑)建立联系。非接触式卡500还可以包括处理电路、天线和图5A中没有显示的其他组件。这些组件可以位于接触垫520后面或基板510上的其他地方。非接触式卡500还可以包括位于卡片背面的磁条或磁带(图5A中未示出)。The contactless card 500 may also include identification information 515 displayed on the front and/or back of the card and a contact pad 520. The contact pad 520 may be configured to establish contact with another communication device, such as a user equipment, smartphone, laptop, desktop computer, or tablet computer. The contactless card 500 may also include processing circuitry, an antenna, and other components not shown in Figure 5A. These components may be located behind the contact pad 520 or elsewhere on the substrate 510. The contactless card 500 may also include a magnetic stripe or magnetic tape (not shown in Figure 5A) located on the back of the card.
如图5B所示,图5A的接触片520可包括用于存储和处理信息的处理电路525,包括微处理器530和存储器535。应当理解的是,处理电路525可以包含额外的组件,包括处理器、存储器、错误和奇偶校验/CRC校验器、数据编码器、防碰撞算法、控制器、命令解码器、安全原件和防篡改硬件,这些正如执行本文所述功能所必需的。As shown in Figure 5B, the contact 520 of Figure 5A may include processing circuitry 525 for storing and processing information, including a microprocessor 530 and a memory 535. It should be understood that the processing circuitry 525 may include additional components, including a processor, memory, error and parity/CRC checkers, a data encoder, an anti-collision algorithm, a controller, a command decoder, security components, and tamper-proof hardware, as necessary for performing the functions described herein.
存储器535可以是只读存储器、一写多读存储器或读/写存储器,例如,RAM、ROM和EEPROM,而非接触式卡500可以包括这样的存储器中的一个或多个。只读存储器可以在工厂可被编程为只读或一次性可编程。一次性可编程性提供了一次写入然后多次读取的机会。可以在存储芯片离开工厂后的某个时间点对一写/多读存储器进行编程。一旦存储器被编程,它可以不会被重写,但它可以被多次读取。读/写存储器可以在出厂后被编程和重新编程许多次。它也可以被多次读取。Memory 535 can be read-only memory, write-multiple-read memory, or read/write memory, such as RAM, ROM, and EEPROM, while the contactless card 500 may include one or more of such memories. Read-only memory can be programmed at the factory to be read-only or one-time programmable. One-time programmability provides the opportunity to write once and then read multiple times. Write-multiple-read memory can be programmed at some point after the memory chip leaves the factory. Once programmed, the memory may not be overwritten, but it can be read multiple times. Read/write memory can be programmed and reprogrammed many times after leaving the factory. It can also be read multiple times.
存储器535可以配置为存储一个或多个小程序540,一个或多个计数器545以及客户标识符550。一个或多个小程序540可包括一个或多个被配置为在一个或多个非接触式卡上执行的软件应用,诸如Java卡小程序。然而,应当理解的是,小程序540并不局限于Java卡小程序,而是可以是任何可在非接触式卡或其他具有有限存储器的设备上操作的软件应用。一个或多个计数器545可以包括足以存储整数的数字计数器。客户标识符550可包括分配给所述非接触式卡500用户的唯一字母数字标识符,且所述标识符可将所述非接触式卡的用户与其他非接触式卡用户区分开来。在一些示例中,客户标识符550可以同时识别客户和分配给该客户的帐户,并可以进一步识别与该客户帐户相关的非接触式卡。Memory 535 may be configured to store one or more applets 540, one or more counters 545, and a customer identifier 550. The one or more applets 540 may include one or more software applications configured to execute on one or more contactless cards, such as Java card applets. However, it should be understood that applet 540 is not limited to Java card applets, but may be any software application that can operate on a contactless card or other device with limited memory. The one or more counters 545 may include numeric counters sufficient to store integers. The customer identifier 550 may include a unique alphanumeric identifier assigned to a user of the contactless card 500, and the identifier may distinguish the user of the contactless card from other contactless card users. In some examples, the customer identifier 550 may simultaneously identify a customer and the account assigned to that customer, and may further identify the contactless card associated with that customer account.
上述示例性实施例的处理器和存储器元件是参照接触垫进行描述的,但本公开并不限于此。应当理解的是,这些元件可以在接触垫520之外实现,或完全与之分开,或作为位于接触垫520内的处理器530和存储器535元件之外的进一步元件。The processor and memory elements of the exemplary embodiments described above are described with reference to the contact pad, but this disclosure is not limited thereto. It should be understood that these elements may be implemented outside of the contact pad 520, or completely separate from it, or as further elements in addition to the processor 530 and memory 535 elements located within the contact pad 520.
在一些示例中,非接触式卡500可以包含一个或多个天线555。一个或多个天线555可以放置在非接触式卡500内和接触垫520的处理电路525周围。例如,一个或多个天线555可与处理电路525集成,以及一个或多个天线555可与外部升压线圈一起使用。作为另一个示例,一个或多个天线555可以位于接触垫520和处理电路525的外部。In some examples, the contactless card 500 may include one or more antennas 555. The one or more antennas 555 may be positioned within the contactless card 500 and around the processing circuitry 525 of the contact pad 520. For example, the one or more antennas 555 may be integrated with the processing circuitry 525, and the one or more antennas 555 may be used in conjunction with an external boost coil. As another example, the one or more antennas 555 may be located outside the contact pad 520 and the processing circuitry 525.
在一个实施例中,非接触式卡500的线圈可以作为空芯变压器的次级。该终端可通过切断电源或调幅与非接触式卡500通信。非接触式卡500可以利用非接触式卡电源连接中的间隙推断从终端传输的数据,该电源连接可以通过一个或多个电容器进行功能性维护。该非接触式卡500可以通过在该非接触式卡的线圈上切换负载或负载调制进行反向通信。负载调制可以通过干扰在终端线圈中检测到。In one embodiment, the coil of the contactless card 500 can serve as the secondary winding of an air-core transformer. The terminal can communicate with the contactless card 500 by disconnecting the power supply or by amplitude modulation. The contactless card 500 can infer data transmitted from the terminal using gaps in the contactless card's power connection, which can be functionally maintained through one or more capacitors. The contactless card 500 can perform reverse communication by switching the load or modulating the load on the contactless card's coil. Load modulation can be detected in the terminal coil by interference.
如上所述,非接触式卡500可以构建在可在智能卡或具有有限存储器的其他设备(诸如Java卡)上操作的软件平台上,并且可以安全地执行一个或多个应用或小程序。小程序可以被添加到非接触式卡中,以便在各种基于移动应用的用例中为多因素认证(MFA)提供一次性密码(OTP)。小程序可以被配置为响应于一个或多个来自读卡器(诸如移动NFC读卡器)的请求,诸如近场数据交换请求,并产生包括编码为NDEF文本标签的加密安全OTP的NDEF消息。As described above, the contactless card 500 can be built on a software platform that operates on smart cards or other devices with limited memory, such as Java cards, and can securely execute one or more applications or applets. Applets can be added to the contactless card to provide a one-time password (OTP) for multi-factor authentication (MFA) in various mobile application-based use cases. The appletter can be configured to respond to one or more requests from a reader (such as a mobile NFC reader), such as a near-field data exchange request, and generate an NDEF message that includes an encrypted secure OTP encoded as an NDEF text tag.
图5C描绘了显示了消息功能计算设备540的说明性组件的框图。消息功能计算设备540可包括处理器542。处理器542可以是微处理器,诸如中央处理单元(CPU)、图形处理单元(GPU)等。处理器542可被实现为现场可编程门阵列(FPGA)、应用专用集成电路(ASIC)、控制器、电路,或为具有消息能力的计算设备540的处理器提供本文所描述的功能的类似物。消息功能计算设备540可包括存储器544。存储器544可以包括易失性存储器和/或非易失性存储器。存储器544可包括光学和/或磁性存储设备,并且可包括存储由处理器542执行的指令的非瞬态计算机可读存储介质。存储器544可以包括磁盘驱动器、光盘驱动器、固态存储、只读存储器、随机存取存储器、闪存和类似物。如图5C所描绘的,存储器544存储应用546,诸如消息应用或提供本文所述功能的应用。存储器544也可以存储用于NFC通信提供接近协议支持208的计算机可执行指令。此外,存储器544可储存网页浏览器551,用于方便网页访问。应当理解的是,存储204可以存储未描述的其他程序和数据。Figure 5C depicts a block diagram illustrating the components of a messaging-enabled computing device 540. The messaging-enabled computing device 540 may include a processor 542. The processor 542 may be a microprocessor, such as a central processing unit (CPU), a graphics processing unit (GPU), etc. The processor 542 may be implemented as a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a controller, circuitry, or the like, providing the functionality described herein to a processor of the messaging-enabled computing device 540. The messaging-enabled computing device 540 may include a memory 544. The memory 544 may include volatile and/or non-volatile memory. The memory 544 may include optical and/or magnetic storage devices and may include a non-transitory computer-readable storage medium storing instructions executed by the processor 542. The memory 544 may include a disk drive, an optical disk drive, solid-state storage, read-only memory, random access memory, flash memory, and the like. As depicted in Figure 5C, the memory 544 stores an application 546, such as a messaging application or an application providing the functionality described herein. Memory 544 may also store computer-executable instructions for providing proximity protocol support 208 for NFC communication. Furthermore, memory 544 may store a web browser 551 for convenient web access. It should be understood that memory 204 may store other programs and data not described.
消息功能计算设备540可包括用于参与NFC通信的NFC读卡器561。消息功能计算设备540还可以包括显示器552,诸如发光二极管(LED)显示器、液晶显示器(LCD)或视网膜显示器。消息功能计算设备540可包括用于通过无线网络(诸如蜂窝电话网络)进行通信的无线调制解调器554。具有信息传递功能的计算设备540可包括用于捕捉图像和/或视频的相机556。该相机556也可用于扫描光学代码。The messaging computing device 540 may include an NFC reader 561 for participating in NFC communications. The messaging computing device 540 may also include a display 552, such as a light-emitting diode (LED) display, a liquid crystal display (LCD), or a retina display. The messaging computing device 540 may include a wireless modem 554 for communicating over a wireless network, such as a cellular telephone network. The computing device 540 with messaging capabilities may include a camera 556 for capturing images and/or video. The camera 556 may also be used to scan optical codes.
图5D描绘了服务器计算设备560的框图。服务器计算设备560可以有多种形式,包括但不限于桌面计算机、工作站或服务器。服务器计算设备560可以包括处理器562。处理器562可以采用任意多种形式,如与图5C中的消息功能计算设备相关的所讨论的那些形式。服务器计算设备560可以包括或可以访问存储器564。存储器564可以包括与图5C中消息功能计算设备相关的各种存储形式。存储器564可以保存可由处理器562执行的程序、小程序和/或可执行代码。例如,存储器可以存储如下所述的同步计数器566。存储器564还可以存储解密软件568,用于解密安全分组和散列内容以及加密/解密密钥571。存储器564可以存储用于安全消息服务的消息服务软件573。存储器564可以存储用于网页服务器572和聊天机器人574的软件。存储器564可以存储用于客户端或客户的帐户信息576。在一些示例实施例中,该帐户信息576可存储在数据库中。Figure 5D depicts a block diagram of a server computing device 560. The server computing device 560 can take many forms, including but not limited to desktop computers, workstations, or servers. The server computing device 560 may include a processor 562. The processor 562 can take any of many forms, such as those discussed in relation to the messaging function computing device in Figure 5C. The server computing device 560 may include or have access to memory 564. Memory 564 may include various forms of storage associated with the messaging function computing device in Figure 5C. Memory 564 may store programs, applets, and/or executable code that can be executed by the processor 562. For example, memory may store a synchronization counter 566 as described below. Memory 564 may also store decryption software 568 for decrypting secure packets and hashed content, as well as encryption/decryption keys 571. Memory 564 may store messaging service software 573 for secure messaging services. Memory 564 may store software for a web server 572 and a chatbot 574. Memory 564 may store account information 576 for clients or customers. In some example embodiments, the account information 576 may be stored in a database.
通常,服务器计算设备560(或另一计算设备)和非接触式卡500可以用相同的主密钥(也称为主对称密钥)进行配置。更具体地说,每个非接触式卡500都以不同的主密钥进行编程,该主密钥在服务器计算设备560中具有相应的配对。例如,当制造非接触式卡500时,可以将唯一的主密钥编程到非接触式卡500的存储器535中。类似地,唯一的主密钥可以存储在服务器计算设备560的帐户信息576中与非接触式卡500相关的客户记录中(和/或存储在不同的安全位置)。主密钥可以对除非接触式卡500和服务器计算设备560外的所有各方保密,从而提高了系统的安全性。Typically, the server computing device 560 (or another computing device) and the contactless card 500 can be configured with the same master key (also known as a master symmetric key). More specifically, each contactless card 500 is programmed with a different master key, which has a corresponding pair within the server computing device 560. For example, when manufacturing the contactless card 500, a unique master key can be programmed into the memory 535 of the contactless card 500. Similarly, the unique master key can be stored in the customer records associated with the contactless card 500 in the account information 576 of the server computing device 560 (and/or stored in a different secure location). The master key can be kept confidential from all parties except the contactless card 500 and the server computing device 560, thereby improving system security.
主密钥可以与计数器104结合使用,以使用密钥多样化来增强安全性。计数器545和566包含在非接触式卡500和服务器计算设备560之间同步的值。该计数器值可包括每次在非接触式卡500和服务器计算设备560(和/或非接触式卡500和消息功能计算设备540)之间交换数据时改变的数字。为了使NFC数据在非接触式卡500和消息功能计算设备540之间传输,当非接触式卡500足够接近消息功能计算设备540的NFC读卡器561时,应用546可以与非接触式卡500进行通信。NFC读卡器561可以被配置为从非接触式卡500读取和/或与非接触式卡500进行通信。The master key can be used in conjunction with counter 104 to enhance security through key diversification. Counters 545 and 566 contain values synchronized between the contactless card 500 and the server computing device 560. These counter values may include numbers that change each time data is exchanged between the contactless card 500 and the server computing device 560 (and/or the contactless card 500 and the messaging computing device 540). To enable NFC data transfer between the contactless card 500 and the messaging computing device 540, application 546 can communicate with the contactless card 500 when the contactless card 500 is sufficiently close to the NFC reader 561 of the messaging computing device 540. The NFC reader 561 can be configured to read from and/or communicate with the contactless card 500.
例如,用户可以将非接触式卡500轻触到消息功能计算设备540上,从而使非接触式卡500足够靠近消息功能计算设备540的NFC读卡器561,以使在消息功能计算设备540之间的NFC数据传输可以经由API调用触发NFC读卡器561。附加地和/或可替选地,消息功能计算设备540也可以基于周期性轮询NFC读卡器561来触发NFC读卡器561。更通常地,消息功能计算设备540可以使用任何可行的方法触发NFC读卡器561以进行通信。在消息功能计算设备540与非接触式卡500之间建立通信后,非接触式卡500可生成消息认证码(MAC)码文。在一些示例中,当非接触式卡500被应用546读取时可能会发生这种情况。特别是,这可以在近场数据交换(NDEF)标签的读取时发生,诸如NFC读取,其可以按照NFC数据交换格式创建。例如,读卡器(诸如应用546和/或NFC读卡器561)可以传输具有NDEF产生的小程序的小程序ID的消息(诸如小程序选择消息)。在确认选择后,可以传输一系列选择文件消息,随后是读取文件消息。例如,序列可以包括“选择能力文件”,“读取能力文件”和“选择NDEF文件”。此时,由非接触式卡500所维护的计数器值可以会被更新或递增,随后可以是“读取NDEF文件”。此时,可以会生成包含报头和共享秘密的消息。然后可以生成会话密钥。MAC码文可以从消息中创建,其可以包括报头和共享秘密。然后MAC码文可以与一个或多个随机数据块连接,并且MAC码文和随机数(RND)可以用会话密钥加密。此后,码文和报头可以被连接起来,并编码为ASCII十六进制,并以NDEF消息格式返回(响应于“读取NDEF文件”消息)。在一些示例中,MAC码文可以作为NDEF标签传输,并且在其他示例中,MAC码文可以包含统一的资源指示符(例如,作为格式化的字符串)。然后,非接触式卡500可以将MAC码文传输到消息功能计算设备540,然后该计算设备540可以将MAC码文转发给服务器计算设备560进行验证,如下文所解释的那样。然而,在一些实施例中,消息功能计算设备540可以验证MAC码文。For example, a user can tap a contactless card 500 against a messaging computing device 540, bringing the card close enough to the NFC reader 561 of the device to allow NFC data transfer between the devices to trigger the NFC reader 561 via an API call. Additionally and/or alternatively, the messaging computing device 540 can also trigger the NFC reader 561 by periodically polling it. More generally, the messaging computing device 540 can trigger the NFC reader 561 for communication using any feasible method. After communication is established between the messaging computing device 540 and the contactless card 500, the contactless card 500 can generate a Message Authentication Code (MAC) message. In some examples, this may occur when the contactless card 500 is read by an application 546. In particular, this can occur during the reading of Near Field Data Exchange (NDEF) tags, such as NFC reads, which can be created according to the NFC data exchange format. For example, a card reader (such as application 546 and/or NFC card reader 561) can transmit a message (such as a mini-program selection message) with a mini-program ID generated by the NDEF. After confirming the selection, a series of select file messages can be transmitted, followed by read file messages. For example, the sequence could include "select capability file", "read capability file", and "select NDEF file". At this point, a counter value maintained by the contactless card 500 can be updated or incremented, followed by "read NDEF file". At this point, a message containing a header and a shared secret can be generated. A session key can then be generated. A MAC message can be created from the message, which can include a header and a shared secret. The MAC message can then be concatenated with one or more random data blocks, and the MAC message and random number (RND) can be encrypted with the session key. Subsequently, the message and header can be concatenated, encoded into ASCII hexadecimal, and returned in NDEF message format (in response to the "read NDEF file" message). In some examples, the MAC message can be transmitted as an NDEF tag, and in other examples, the MAC message can contain a uniform resource indicator (e.g., as a formatted string). The contactless card 500 can then transmit the MAC message to the messaging function computing device 540, which can then forward the MAC message to the server computing device 560 for verification, as explained below. However, in some embodiments, the messaging function computing device 540 can verify the MAC message itself.
更通常地,当准备发送数据(例如,向服务器560和/或消息功能计算设备540)时,非接触式卡540可以递增计数器545。然后,非接触式卡500可以主密钥和计数器值作为输入提供给密码算法,该算法产生多样化的密钥作为输出。密码算法可以包括加密算法、基于散列的消息认证码(HMAC)算法、基于密码的消息认证码(CMAC)算法等。密码算法的非限制示例可包括对称加密算法,诸如3DES或AES128;对称HMAC算法,诸如HMAC-SHA-256;以及对称CMAC算法,诸如AES-CMAC。然后,非接触式卡500可以使用多样化的密钥加密数据(例如,客户标识符107和任何其他数据)。然后,非接触式卡500可以将加密数据传输到具有消息能力的计算设备546的应用546(例如,经由NFC连接、蓝牙连接等)。然后,具有消息能力的计算设备540的应用546可以经由网络106将加密数据传输到服务器计算设备560。在至少一个实施例中,非接触式卡500传输具有加密数据的计数器值。在这些实施例中,非接触式卡500可传输加密计数器值或未加密计数器值。More typically, when ready to send data (e.g., to server 560 and/or messaging-enabled computing device 540), contactless card 540 may increment counter 545. Contactless card 500 then provides a master key and the counter value as input to a cryptographic algorithm, which produces a variety of keys as output. The cryptographic algorithm may include encryption algorithms, hash-based message authentication code (HMAC) algorithms, password-based message authentication code (CMAC) algorithms, etc. Non-limiting examples of cryptographic algorithms may include symmetric encryption algorithms such as 3DES or AES128; symmetric HMAC algorithms such as HMAC-SHA-256; and symmetric CMAC algorithms such as AES-CMAC. Contactless card 500 can then encrypt data (e.g., customer identifier 107 and any other data) using the variety of keys. Contactless card 500 can then transmit the encrypted data to application 546 of messaging-enabled computing device 546 (e.g., via NFC connection, Bluetooth connection, etc.). Then, application 546 of the messaging-enabled computing device 540 can transmit encrypted data to the server computing device 560 via network 106. In at least one embodiment, the contactless card 500 transmits a counter value containing encrypted data. In these embodiments, the contactless card 500 may transmit either an encrypted counter value or an unencrypted counter value.
虽然以计数器为示例,但也可以使用其他数据来保护非接触式卡500、消息功能计算设备540和/或服务器计算设备560之间的通信。例如,计数器可以被替换为随机非授权码,每次需要生成新的多样化的密钥,从非接触式卡500和服务器计算设备560发送计数器值的全部值,从非接触式卡500和服务器计算设备560发送计数器值的一部分,由非接触式卡500和服务器计算设备560独立维护但不在两者之间发送的计数器,在非接触式卡500和服务器计算设备560之间交换的一次性密码以及数据的加密散列。在一些示例中,各方可以使用多样化的密钥的一个或多个部分来创建多个多样化的密钥。While a counter is used as an example, other data can also be used to secure communication between the contactless card 500, the messaging computing device 540, and/or the server computing device 560. For example, the counter could be replaced with a random unauthorized code, a new diversified key generated each time, the full value of the counter sent from the contactless card 500 and the server computing device 560, a portion of the counter value sent from the contactless card 500 and the server computing device 560, a counter maintained independently by the contactless card 500 and the server computing device 560 but not sent between them, a one-time password exchanged between the contactless card 500 and the server computing device 560, and an encrypted hash of the data. In some examples, parties can use one or more portions of a diversified key to create multiple diversified keys.
安全分组404(图4)的生成可以采用加密散列函数,诸如MD5或SHA-1。图6A显示了框图600,框图600描述了如何在示例性实施例中使用加密散列函数。在图6A所示的示例中,三个输入602、604和606一起通过散列函数608传递。选择描述三个输入是为了说明而不是限制。在一些情况下可以会使用其他数量的输入。散列函数608产生输出散列值610。由于散列函数608的特性,在不知道由散列函数608使用的密钥607的情况下,从散列值610中导出输入602、604和606在计算上是困难的。钥匙609是保密的。密钥607可以为每个会话动态生成,并且可以特定于非接触式卡。因此,散列函数608为安全分组404中包含的内容(例如,输入602、604和606)提供了一层安全性。The generation of secure block 404 (Figure 4) can employ a cryptographic hash function, such as MD5 or SHA-1. Figure 6A shows block diagram 600, which illustrates how a cryptographic hash function can be used in an exemplary embodiment. In the example shown in Figure 6A, three inputs 602, 604, and 606 are passed together through hash function 608. The choice to describe three inputs is for illustrative purposes rather than limiting. In some cases, other numbers of inputs may be used. Hash function 608 produces an output hash value 610. Due to the characteristics of hash function 608, it is computationally difficult to derive inputs 602, 604, and 606 from hash value 610 without knowing the key 607 used by hash function 608. Key 609 is kept secret. Key 607 can be dynamically generated for each session and can be specific to the contactless card. Therefore, hash function 608 provides a layer of security for the contents contained in secure block 404 (e.g., inputs 602, 604, and 606).
在示例性实施例中,输入602、604和606可以会根据各方希望交换的信息和用于验证发起方的协议而有所不同。图6B显示了在示例实施例中可以被散列的输入642的可能类型的图640。在这些示例性实施例中,可包括由非接触式卡生成的一次性密码644作为输入。可以为发起方提供帐户标识符646。这可以是唯一识别发起方帐户的帐号或其他标识符。如上所述,帐户标识符可以是用于发起方的电话号码。在一些情况下,发起方的电话号码可以不包括在散列值610中,但可以来自从消息功能计算设备540发送的消息中导出。输入642可以包括发起方的名称650。In exemplary embodiments, inputs 602, 604, and 606 may vary depending on the information the parties wish to exchange and the protocol used to verify the initiator. Figure 6B shows Figure 640 of possible types of input 642 that can be hashed in an example embodiment. In these exemplary embodiments, a one-time password 644 generated by a contactless card may be included as input. An account identifier 646 may be provided to the initiator. This may be a number or other identifier that uniquely identifies the initiator's account. As mentioned above, the account identifier may be a telephone number used by the initiator. In some cases, the initiator's telephone number may not be included in the hash value 610 but may be derived from a message sent from the messaging function computing device 540. Input 642 may include the initiator's name 650.
作为一种附加的安全性,散列值610可以被加密。图7显示了描述这种加密的框图700。如上所述生成的散列值702被传递给加密引擎704,该引擎使用加密密钥706加密散列值。得到的输出是安全分组708。加密引擎704可以使用多种加密算法中的任何一种,诸如DES、AES、RSA、DSA或类似的算法。这些可以是对称密码算法,诸如DES和AES,或非对称密码算法,诸如RSA和DSA。假定服务器计算设备406(图4)拥有合适的密钥来解密安全分组。虽然没有在图7中未示出,但是其他内容可以与散列值702一起被加密。As an additional security measure, hash value 610 can be encrypted. Figure 7 shows a block diagram 700 illustrating this encryption. The hash value 702 generated as described above is passed to encryption engine 704, which encrypts the hash value using encryption key 706. The resulting output is a secure block 708. Encryption engine 704 can use any of a variety of encryption algorithms, such as DES, AES, RSA, DSA, or similar algorithms. These can be symmetric cryptographic algorithms, such as DES and AES, or asymmetric cryptographic algorithms, such as RSA and DSA. It is assumed that server computing device 406 (Figure 4) possesses a suitable key to decrypt the secure block. Although not shown in Figure 7, other content can be encrypted along with hash value 702.
图8描述了一旦作为接收方的服务器计算设备接收到带有安全分组的认证消息,对发起方进行认证所执行的步骤800的流程图。最初,服务器计算设备使用解密密钥对安全分组进行解密。此外,解密密钥用于解密散列,以提取由散列函数散列在一起的输入(801)。所提取的密码和计数器值可以与有效的密码和有效的计数器值(802)进行比较。确定密码和计数器值是否匹配,或者所提取的计数器值是否指示密码尚未过期(804)。基于所提取的计数器值,如果密码匹配且所提取的密码未过期,则可以比较其他提取的信息(806)。Figure 8 illustrates a flowchart of steps 800 performed to authenticate the initiator once the server computing device, as the receiving party, receives an authentication message with a secure packet. Initially, the server computing device decrypts the secure packet using a decryption key. Furthermore, the decryption key is used to decrypt the hash to extract the input hashed together by the hash function (801). The extracted password and counter value can be compared with a valid password and a valid counter value (802). It is determined whether the password and counter value match, or whether the extracted counter value indicates that the password has not expired (804). Based on the extracted counter value, if the password matches and the extracted password has not expired, other extracted information can be compared (806).
其他信息可以是其他认证因素902,诸如图9中的附图900所示。其他认证因素902可以包括消息功能计算设备的电话号码,可以将其与发起方所记录的电话号码进行比较。其他认证因素902可以包括用于发起方的地理位置906。地理位置906可以是诸如GPS信息、区号和交换前缀信息等的信息,这些信息可以与有关该方的居住地的信息相比较。其他认证因素902可以包括在被验证方和服务器计算设备之间共享的共享秘密。Other information may be other authentication factors 902, such as those shown in Figure 9, Appendix 900. Other authentication factors 902 may include the telephone number of the messaging function computing device, which can be compared with the telephone number recorded by the initiator. Other authentication factors 902 may include the geographic location 906 for the initiator. Geographic location 906 may be information such as GPS information, area code, and exchange prefix information, which can be compared with information about the party's place of residence. Other authentication factors 902 may include a shared secret shared between the verified party and the server computing device.
如果其他信息是有效的(808),则发起方可以被验证(812)。如果不是,则发起方没有被认证(810)。类似地,如果所提取的计数器值指示密码不匹配或密码已经过期,则发起方没有被认证(810)。If the other information is valid (808), the initiator can be verified (812). If not, the initiator is not verified (810). Similarly, if the retrieved counter value indicates that the password does not match or the password has expired, the initiator is not verified (810).
虽然本发明已经通过参考本文的示例性实施例进行了描述,但应当理解的是,在不偏离所附权利要求书中定义的预期范围的情况下,可以对范围和细节进行各种变化。While the invention has been described with reference to exemplary embodiments herein, it should be understood that various changes may be made to the scope and details without departing from the intended scope as defined in the appended claims.
Claims (10)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/727,162 | 2019-12-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK40125824A true HK40125824A (en) | 2025-12-12 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114450990B (en) | Multi-factor authentication via contactless cards to provide credentials for secure messaging | |
| US12062258B2 (en) | Use of a payment card to unlock a lock | |
| US10327142B2 (en) | Secure short message service (SMS) communications | |
| CN113243024A (en) | System and method for password authentication of contactless cards | |
| CN112639785B (en) | System and method for signaling potential attacks on contactless cards | |
| US20250053979A1 (en) | Systems and methods for enhanced security to log in to a mobile application | |
| US20250131231A1 (en) | Systems and methods for automatically locking a contactless card | |
| HK40125824A (en) | Multi-factor authentication providing a credential via a contactless card for secure messaging | |
| HK40066201A (en) | Multi-factor authentication providing a credential via a contactless card for secure messaging | |
| HK40066201B (en) | Multi-factor authentication providing a credential via a contactless card for secure messaging | |
| US20250053983A1 (en) | Systems and methods for increasing security for digital transactions with predetermined risk factors | |
| HK40108444A (en) | Systems and methods for cryptographic authentication of contactless cards | |
| CN121532764A (en) | Systems and methods for enhancing the security of mobile login applications | |
| HK40096672A (en) | Authenticated messaging session with contactless card authentication | |
| HK40050745B (en) | Systems and methods for cryptographic authentication of contactless cards | |
| HK40050830A (en) | Systems and methods for signaling a potential attack on contactless cards | |
| HK40050746A (en) | Systems and methods for cryptographic authentication of contactless cards |