Multi-factor authentication for providing credentials for secure messages via contactless cards
By decrypting and verifying the security components of the SMS functional device on the computing device, the problem of lack of security in traditional message services is solved, and the effect of safely transmitting sensitive information is achieved.
Patent Information
- Application Number
- CN202510126081.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-26
- Filing Date
- 2020-11-24
- Publication Date
- 2025-04-25
AI Technical Summary
Traditional messaging services lack security and are difficult to transmit potentially sensitive information without worrying about communicating with impostors.
By receiving messages from the Short Message Service (SMS) functional device on the computing device, the security component is decrypted to obtain hash of the one-time password and account identifier, verifying the password validity and phone number matching, and then launching a secure SMS session.
Enhanced the security of the message service, reduces the risk of impostors participating in message service sessions, and enables the exchange of potentially sensitive information safely.
Smart Images

Figure CN119893507A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims priority to U.S. Patent Application Serial No. 16 / 727,162, filed on December 26, 2019, entitled “MULTI-FACTOR AUTHENTICATION PROVIDING A CREDENTIAL VIA A CONTACTLESS CARD FOR SECURE MESSAGING” (issued on August 25, 2020 as U.S. Patent No. 10,757,574). The contents of the above patent application are incorporated herein by reference in their entirety. Background Art
[0003] Messaging services enable multiple parties to communicate via written messages in a fast and convenient manner. Messaging services are increasingly used in business contexts. For example, a customer can have a messaging service conversation with a company's customer service representative. One limitation of traditional messaging services is the lack of security. A party to a messaging service conversation can forge a phone number or assume a false identity in a traditional messaging service conversation. Therefore, it is difficult to transmit potentially sensitive information, such as confidential information, via traditional messaging services without worrying about communicating with an imposter. Summary of the invention
[0004] According to an exemplary embodiment, a method implemented by a computing device is performed. According to this method, a message is received at the computing device from a short message service (SMS)-enabled device having an associated telephone number. The message indicates a desire to initiate an SMS session, and the message 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. Determine whether the one-time password is valid. Determine the account associated with the account identifier, and determine the telephone number associated with the determined account. Determine whether the associated telephone number matches the telephone number associated with the account number. When sending the SMS password is valid and the associated telephone number is a matching telephone number, a secure SMS session is initiated by sending an SMS message to the SMS-enabled device. When the password is invalid and / or the associated password is not a matching telephone number, initiation of a secure SMS session with the SMS-enabled device is denied.
[0005] The decryption may use a symmetric decryption algorithm. The method may include the additional steps of checking the geographic location of the SMS-enabled device and using the geographic location as another authentication factor in determining whether to initiate the secure SMS session. The receiving the message may include receiving an SMS message. 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 in determining whether the password has expired. The counter maintained by the computing device may be synchronized with a counter maintained by the contactless card.
[0006] According to an exemplary embodiment, a method that can be implemented by a device capable of a short message service (SMS) is performed. According to this method, a cryptographically secure one-time password is received from a contactless card at the SMS-enabled device via near field communication. The cryptographically secure one-time password includes at least a cryptographic hash of the one-time password and an account identifier. The one-time password is encrypted by a symmetric encryption algorithm, and the one-time password is only valid for a set time period. A message is sent from the SMS-enabled device to a party to request initiation of a secure SMS session, wherein the message includes the cryptographically secure 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. When a secure SMS session is initiated, a chatbot can be used to participate in the secure SMS session.
[0007] 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 a website of the party or sending a message directly to the party. The method may also include sending geographic location information from the SMS-enabled device to the party. The SMS message may be received from a chatbot.
[0008] According to an exemplary embodiment, a method is performed by a contactless card. According to the 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 passes at least one password and an account identifier through a hash function to create a hash value. The hash value is encrypted. The encrypted hash value is passed to an application running on the computing device. The application is prompted to send a message to a remote computing device to initiate a message 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 message session.
[0009] The one-time password may be a time-based password. The contactless card may maintain a counter whose value may be used to create a cryptographic hash value. The value of the counter is passed through the hash function. In some cases, the value of the counter is passed through the hash function along with the one-time password and the account identifier. The one-time password is valid only 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. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1 A suitable environment for implementing the exemplary embodiments is described.
[0011] Figure 2 A flow chart is described illustrating steps that may be performed by an authentication initiator in an exemplary embodiment.
[0012] Figure 3 A block diagram is described showing the interaction between a contactless card and a messaging-enabled device in an exemplary embodiment.
[0013] Figure 4 The flow of messages relative to a server computing device is described.
[0014] Figure 5A An illustrative front side of a contactless card is depicted.
[0015] Figure 5B Describes the hardware components of a contactless card.
[0016] Figure 5C A block diagram of a message-enabled computing device is depicted.
[0017] Figure 5D Depicts a block diagram of a server computing device and storage.
[0018] Fig. 6A Depicted is a diagram illustrating hashing an input to produce a hash value.
[0019] Figure 6B Describes different types of inputs to hash functions.
[0020] Figure 7 Cryptographic operations are described to generate secure packets.
[0021] Figure 8 A flow chart illustrating steps that may be performed to authenticate an initiator is described.
[0022] Fig. 9 Other types of authentication factors are described. DETAILED DESCRIPTION
[0023] An exemplary embodiment may use a contactless card as a secondary form of authentication for a secure messaging service in a multi-factor authentication. When a message for a secure messaging service originates from a device with an associated phone number, the phone number may be used as the primary credential for authenticating the identity by the message service recipient. The recipient of a request to initiate a message service session (such as a server computing device) may be programmed to use the phone number of the originating device to query a record of a party's identity and its associated phone number as the primary credential, and then may require an authentication credential derived from a contactless card as a secondary credential for the initiator. In some cases, the credential derived from the contactless card is a one-time password that is valid only for a time period. The recipient determines whether the one-time password is valid. If both credentials are valid, a secure messaging session with the initiator may be initiated.
[0024] The messaging service may take different forms. For example, the messaging service may be a short messaging service (SMS) service. The messaging service may be an instant messaging service, a social media messaging service, a video messaging service, a chat application, or a virtual assistant application, etc.
[0025] Since the message service described herein can adopt the multi-factor authentication of the initiator for the message service session, the confidence of the non-initiator participating in the message session in communicating with the authenticated party is enhanced. Therefore, the risk of an impostor participating in the message service session is greatly reduced. Therefore, the secure message service disclosed herein is very suitable for exchanging potential sensitive information, such as financial information, health information, business information, driving records, criminal records and other types of confidential information. The secure message service described herein is very suitable for communication between customers and financial institution representatives, patients and health care providers, insured and insurance company representatives, customers and lawyers, customers and accountants, and company employees, etc. Encryption and secure hashing can be used to protect the content of messages exchanged via the secure message service.
[0026] The one-time password may be encrypted as part of a security packet passed from an originator initiating a secure messaging session to a recipient. The security packet may contain identifying information for the originator, such as account information. The one-time password may be hashed with a counter value before being added to the packet and encrypted. The counter serves as a time indicator and helps define the life of the password.
[0027] As part of the authentication, the receiver decrypts the security packet. The receiver may maintain its own counter value that is 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 too much in value from the counter value maintained by the receiver, it may be an indication that the one-time password is no longer valid. The receiver checks whether the one-time password is correct. In addition, the receiver may use the account information to retrieve the phone number of a party associated with the account. The receiver may check whether the retrieved phone number matches the phone number of the device from which the request originated. If the phone numbers match and the one-time password is correct and not expired, the receiver may initiate a message service by prompting the non-initiator to send a message to the initiator. The non-initiator may be a person or a chatbot, and may communicate via a server or a separate client device. If the initiator fails authentication, no message may be sent from the non-initiator, or a rejection message may be sent from the non-initiator.
[0028] Figure 1 An environment 100 suitable for practicing exemplary embodiments is described. The 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 safe 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, a desktop computer, a laptop computer, a tablet computer, a 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.
[0029] As will be described in more detail below, the contactless card 102 can be used for authentication of the initiator 101 by first docking with the messaging computing device 104. The messaging computing device 104 has a near field communication (NFC) card reader that can read the contactless card 102 and communicate bidirectionally with the contactless card 102. The messaging computing device 104 is docked with a network 106. The network 106 can include a wired network and / or a wireless network. The network 106 can 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 recipient) receives a request to initiate a secure messaging system from the initiator 101 via the messaging service through the messaging computing device 104 and is responsible for performing the authentication. The non-initiator 110 can be a party accessing the server computing device 108, or a client of the server computing device that uses another computing device to participate in a chat session. The non-initiator 110 can be a person, a chatbot, or an intelligent agent.
[0030] Figure 2 A flowchart showing steps that may be performed in an example embodiment to authenticate an initiator who wishes to initiate a secure messaging service session with a non-initiator is shown. These steps are described below with respect to Figure 3 and Figure 4 The process can be described from one party to the contactless card 302 (see Figure 3 ) is tapped to a reader 307 in a messaging 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 computing device 306. In other cases, the contactless card 302 need not be tapped to 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 security packet 304 is sent from the contactless card 302 to the messaging computing device 306 including the security packet. The contactless card 302 may prompt an application running on the messaging computing device 306 via the communication to generate a message to the recipient. In a direct approach, the application is a chat program, such as an SMS messaging application or an application for one of various other messaging services. As described below, the messaging computing device 306 generates an authentication to attempt to initiate a secure messaging session. In an indirect method, the contactless card 302 provides a server with a uniform resource locator (URL) that includes a telephone number of the server to be contacted from the messaging computing device 306 in an attempt to initiate a secure messaging service. The messaging computing device 306 generates a message 308 encapsulating a security packet 310, which is sent to the server computing device 406 (see FIG. 4 ) as a request to initiate a secure messaging system. Figure 4 )(204).
[0031] The request may be sent to the server computing device 406 via the messaging service or via another channel. As described above, the security packet 310 may include a one-time password and identification information for the initiator. These will be discussed in more detail below. The server computing device 406 receives the message 402 and extracts the one-time password and other information (such as identification information and counter values) from the security packet 404 (206). Based on the extracted information, the server computing device 406 successfully authenticates the initiator, or unsuccessfully authenticates the initiator (208). In the case where the initiator is successfully authenticated, a response message 410 from the non-initiator 408 is sent to the initiator (212) via the messaging service. The response message 410 may inform the initiator that they have been authenticated, or, for example, may simply greet the initiator and may ask the initiator about the content of their contact with the non-initiator 408. In contrast, if the initiator is not successfully authenticated, a response message 410 rejecting the request of 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.
[0032] Figure 5A The contactless card 500 shown may be a payment card such as a credit card, debit card or gift card issued by a service provider 505 (shown on the front or back of the card 500). In some exemplary embodiments, the contactless card 500 is unrelated to 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 laminated layer composed of plastic, metal 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 properties of an ID-1 format that conforms to 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 the present disclosure may have different characteristics, and the present disclosure does not require the contactless card to be implemented in the payment card.
[0033] The contactless card 500 may also include identification information 515 and a contact pad 520 displayed on the front and / or back of the card. The contact pad 520 may be configured to establish contact with another communication device (such as a user device, a smartphone, a laptop, a desktop, or a tablet). The contactless card 500 may also include processing circuitry, an antenna, and a Figure 5AOther components not shown in the figure. 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 ( Figure 5A not shown).
[0034] like Figure 5B As shown, Figure 5A The contact pad 520 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 processors, memories, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives, and anti-tampering hardware, as necessary to perform the functions described herein.
[0035] The memory 535 can be a read-only memory, a write-once-read-many memory or a read / write memory, for example, a RAM, a ROM and an EEPROM, and the contactless card 500 may include one or more of such memories. The read-only memory can be programmed to be read-only or one-time programmable at the factory. One-time programmability provides the opportunity to write once and then read multiple times. The write-once-read-many memory can be programmed at a certain point in time after the memory chip leaves the factory. Once the memory is programmed, it may not be rewritten, but it can be read multiple times. The read / write memory can be programmed and reprogrammed many times after leaving the factory. It can also be read multiple times.
[0036] The memory 535 can be configured to store one or more applets 540, one or more counters 545, and a customer identifier 550. One or more applets 540 may include one or more software applications configured to be executed on one or more contactless cards, such as Java card applets. However, it should be understood that the applets 540 are not limited to Java card applets, but can be any software application that can operate on a contactless card or other device with limited memory. One or more counters 545 may include a digital counter sufficient to store an integer. The customer identifier 550 may include a unique alphanumeric identifier assigned to the 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 the customer and the account assigned to the customer, and may further identify the contactless card associated with the customer account.
[0037] The processor and memory elements of the above exemplary embodiments are described with reference to the contact pads, but the present disclosure is not limited thereto. It should be understood that these elements can be implemented outside the contact pads 520, or completely separated therefrom, or as further elements outside the processor 530 and memory 535 elements located within the contact pads 520.
[0038] In some examples, the contactless card 500 may include one or more antennas 555. The one or more antennas 555 may be placed within the contactless card 500 and around the processing circuit 525 of the contact pad 520. For example, the one or more antennas 555 may be integrated with the processing circuit 525, and the one or more antennas 555 may be used with an external booster coil. As another example, the one or more antennas 555 may be located outside the contact pad 520 and the processing circuit 525.
[0039] In one embodiment, the coil of the contactless card 500 can be used as the secondary of an air core transformer. The terminal can communicate with the contactless card 500 by cutting off power or modulating amplitude. The contactless card 500 can infer data transmitted from the terminal by using gaps in the contactless card power connection, which can be functionally maintained by one or more capacitors. The contactless card 500 can communicate in reverse by switching a load or load modulation on the coil of the contactless card. Load modulation can be detected in the terminal coil by interference.
[0040] As described above, the contactless card 500 can be built on a software platform that can operate on a smart card or other device with limited memory (such as a Java card), and can securely execute one or more applications or applets. Applets can be added to contactless cards to provide one-time passwords (OTPs) for multi-factor authentication (MFA) in various mobile application-based use cases. The applet 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 including an encrypted secure OTP encoded as an NDEF text tag.
[0041] Figure 5CA block diagram showing illustrative components of a messaging-capable computing device 540 is depicted. The messaging-capable 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), or the like. The processor 542 may be implemented as a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a controller, a circuit, or the like that provides the functionality described herein to a processor of the messaging-capable computing device 540. The messaging-capable computing device 540 may include a memory 544. The memory 544 may include volatile memory 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 that stores 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 Figure 5C As depicted, memory 544 stores applications 546, such as messaging applications or applications that provide functionality described herein. Memory 544 may also store computer executable instructions for providing proximity protocol support 208 for NFC communications. In addition, memory 544 may store a web browser 551 for facilitating web access. It should be understood that storage 204 may store other programs and data not described.
[0042] 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 functionality may include a camera 556 for capturing images and / or video. The camera 556 may also be used to scan optical codes.
[0043] Figure 5D 560. The server computing device 560 may take many forms, including but not limited to a desktop computer, a workstation, or a server. The server computing device 560 may include a processor 562. The processor 562 may take any of a variety of forms, such as Figure 5C The server computing device 560 may include or have access to a memory 564. The memory 564 may include Figure 5CThe memory 564 may store various storage forms related to the message function computing device in the embodiment of the present invention. The memory 564 may store programs, applets and / or executable code that can be executed by the processor 562. For example, the memory may store a synchronization counter 566 as described below. The memory 564 may also store decryption software 568 for decrypting security packets and hashed content and encryption / decryption keys 571. The memory 564 may store message service software 573 for secure message services. The memory 564 may store software for a web server 572 and a chatbot 574. The memory 564 may store account information 576 for a client or customer. In some example embodiments, the account information 576 may be stored in a database.
[0044] Typically, the server computing device 560 (or another computing device) and the contactless card 500 can be configured with the same master key (also referred to as a master symmetric key). More specifically, each contactless card 500 is programmed with a different master key that has a corresponding pair in the server computing device 560. For example, when the contactless card 500 is manufactured, 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 record 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 to all parties except the contactless card 500 and the server computing device 560, thereby improving the security of the system.
[0045] The master key can be used in conjunction with the counter 104 to enhance security using key diversification. Counters 545 and 566 contain values that are synchronized between the contactless card 500 and the server computing device 560. The counter value may include a number that changes 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 function computing device 540). In order to transmit NFC data between the contactless card 500 and the messaging function computing device 540, the application 546 can communicate with the contactless card 500 when the contactless card 500 is close enough to the NFC reader 561 of the messaging function computing device 540. The NFC reader 561 can be configured to read from and / or communicate with the contactless card 500.
[0046] For example, a user may tap the contactless card 500 onto the messaging computing device 540, thereby bringing the contactless card 500 close enough to the NFC reader 561 of the messaging computing device 540 so that the NFC data transmission between the messaging computing device 540 may trigger the NFC reader 561 via an API call. Additionally and / or alternatively, the messaging computing device 540 may also trigger the NFC reader 561 based on periodic polling of the NFC reader 561. More generally, the messaging computing device 540 may use any feasible method to trigger the NFC reader 561 for communication. After communication is established between the messaging computing device 540 and the contactless card 500, the contactless card 500 may generate a message authentication code (MAC) code text. In some examples, this may occur when the contactless card 500 is read by the application 546. In particular, this may occur when a near field data exchange (NDEF) tag is read, such as an NFC read, which may be created in accordance with the NFC data exchange format. For example, a card reader (such as application 546 and / or NFC card reader 561) may transmit a message (such as an applet selection message) with the applet ID of the applet generated by the NDEF. After confirming the selection, a series of select file messages may be transmitted, followed by a read file message. For example, the sequence may include "select capability file", "read capability file", and "select NDEF file". At this time, the counter value maintained by the contactless card 500 may be updated or incremented, followed by "read NDEF file". At this time, a message including a header and a shared secret may be generated. A session key may then be generated. A MAC code text may be created from the message, which may include a header and a shared secret. The MAC code text may then be concatenated with one or more random data blocks, and the MAC code text and random number (RND) may be encrypted with the session key. Thereafter, the code text and header may be concatenated and encoded as ASCII hexadecimal and returned in an NDEF message format (in response to the "read NDEF file" message). In some examples, the MAC code text may be transmitted as an NDEF tag, and in other examples, the MAC code text may contain a uniform resource indicator (e.g., as a formatted string). Contactless card 500 may then transmit the MAC code text to messaging computing device 540, which may then forward the MAC code text to server computing device 560 for verification, as explained below. However, in some embodiments, messaging computing device 540 may verify the MAC code text.
[0047] More generally, when preparing to send data (e.g., to a server 560 and / or a messaging-enabled computing device 540), the contactless card 540 may increment a counter 545. The contactless card 500 may then provide the master key and the counter value as inputs to a cryptographic algorithm that produces a diversified key as output. The cryptographic algorithm may include an encryption algorithm, a hash-based message authentication code (HMAC) algorithm, a password-based message authentication code (CMAC) algorithm, and the like. 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. The contactless card 500 may then encrypt the data (e.g., the customer identifier 107 and any other data) using the diversified key. The contactless card 500 may then transmit the encrypted data to an application 546 of a messaging-enabled computing device 546 (e.g., via an NFC connection, a Bluetooth connection, etc.). The application 546 of the computing device 540 with messaging capabilities can then transmit the encrypted data to the server computing device 560 via the network 106. In at least one embodiment, the contactless card 500 transmits the counter value with the encrypted data. In these embodiments, the contactless card 500 can transmit the encrypted counter value or the unencrypted counter value.
[0048] Although a counter is used as an example, other data may be used to protect communications between the contactless card 500, the messaging computing device 540, and / or the server computing device 560. For example, the counter may be replaced with a random unauthorized code, a new diversified key may be generated each time, the entire value of the counter may be sent from the contactless card 500 and the server computing device 560, a portion of the counter may be sent from the contactless card 500 and the server computing device 560, a counter independently maintained by the contactless card 500 and the server computing device 560 but not sent between the two, a one-time password exchanged between the contactless card 500 and the server computing device 560, and a cryptographic hash of the data. In some examples, the parties may use one or more portions of a diversified key to create multiple diversified keys.
[0049] Security Group 404 ( Figure 4 ) can be generated using a cryptographic hash function, such as MD5 or SHA-1. Fig. 6A A block diagram 600 is shown that illustrates how a cryptographic hash function may be used in an exemplary embodiment. Fig. 6AIn the example shown, three inputs 602, 604, and 606 are passed together through a hash function 608. The choice to describe three inputs is for illustration and not limitation. Other numbers of inputs may be used in some cases. The hash function 608 produces an output hash value 610. Due to the characteristics of the hash function 608, it is computationally difficult to derive the inputs 602, 604, and 606 from the hash value 610 without knowing the key 607 used by the hash function 608. The key 609 is kept secret. The key 607 may be dynamically generated for each session and may be specific to a contactless card. Therefore, the hash function 608 provides a layer of security for the content (e.g., inputs 602, 604, and 606) contained in the security packet 404.
[0050] In an exemplary embodiment, inputs 602, 604, and 606 may vary depending on the information the parties wish to exchange and the protocol used to authenticate the initiator. Figure 6B A diagram 640 showing possible types of inputs 642 that may be hashed in example embodiments. In these example embodiments, a one-time password 644 generated by a contactless card may be included as an input. An account identifier 646 may be provided for the originator. This may be an account number or other identifier that uniquely identifies the originator's account. As described above, the account identifier may be a phone number for the originator. In some cases, the originator's phone number may not be included in the hash value 610, but may be derived from a message sent from the messaging-enabled computing device 540. The input 642 may include the originator's name 650.
[0051] As an added security, hash value 610 may be encrypted. Figure 7 A block diagram 700 is shown that depicts such encryption. The hash value 702 generated as described above is passed to an encryption engine 704, which encrypts the hash value using an encryption key 706. The resulting output is a secure packet 708. The encryption engine 704 may use any of a variety of encryption algorithms, such as DES, AES, RSA, DSA, or similar algorithms. These may be symmetric cryptographic algorithms, such as DES and AES, or asymmetric cryptographic algorithms, such as RSA and DSA. Assume that the server computing device 406 ( Figure 4 ) has the appropriate key to decrypt the secure packet. Figure 7 Not shown, but other content may be encrypted along with hash value 702.
[0052] Figure 8A flow chart depicting steps 800 performed to authenticate an initiator once a server computing device as a recipient receives an authentication message with a security packet. Initially, the server computing device decrypts the security packet using a decryption key. Additionally, the decryption key is used to decrypt the hash to extract the inputs hashed together by the hash function (801). The extracted password and counter value can be compared to a valid password and a valid counter value (802). A determination is made as to 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 passwords match and the extracted password has not expired, other extracted information can be compared (806).
[0053] Other information may be other authentication factors 902, such as Fig. 9 900 in FIG. Other authentication factors 902 may include a telephone number of a messaging-enabled computing device, which may be compared to a telephone number recorded by the initiating party. Other authentication factors 902 may include a geographic location 906 for the initiating party. The geographic location 906 may be information such as GPS information, area code, and exchange prefix information, which may be compared to information about the party's place of residence. Other authentication factors 902 may include a shared secret shared between the authenticated party and the server computing device.
[0054] If the other information is valid (808), the initiator can be verified (812). If not, the initiator is not authenticated (810). Similarly, if the extracted counter value indicates that the password does not match or the password has expired, the initiator is not authenticated (810).
[0055] Although the present invention has been described with reference to exemplary embodiments herein, it will be understood that various changes in scope and details may be made without departing from the intended scope defined in the following claims.
Claims
1. A method implemented by a computing device, comprising: receiving, at the computing device, a message from a short message service (SMS) capable device having an associated telephone number, wherein the message indicates a desire to initiate an SMS session, and wherein the message includes a security component; decrypting the security component to obtain a hash of at least the one-time password and the account identifier; extracting the one-time password and the account identifier; Determining whether the one-time password is valid; determining an account associated with the account identifier; Access the phone number associated with the identified account; determining whether the associated telephone number matches a telephone number associated with the account; initiating a secure SMS session by sending an SMS message to the SMS capable device when the password is valid and the associated phone number is a matching phone number; as well as When the password is invalid and / or the password is not associated with a matching phone number, initiation of a secure SMS session with the SMS capable device is denied.
2. The method according to claim 1, wherein: The decryption uses a symmetric decryption algorithm.
3. The method according to claim 1, further comprising: checking the geographic location of the SMS enabled device; as well as The geographic location is used as another authentication factor in determining whether to initiate the secure SMS session.
4. The method according to claim 1, wherein: The receiving a message includes receiving an SMS message.
5. The method of claim 1, further comprising, when the secure SMS session is initiated, engaging in the secure SMS session using a chatbot.
6. The method according to claim 1, wherein: The one-time password is a time-based password.
7. The method according to claim 1, wherein: The computing device maintains a counter, and wherein the computing device uses a value of the counter when determining whether a password has expired.
8. The method according to claim 7, wherein: A counter maintained by the computing device is synchronized with a counter maintained by the contactless card.
9. A method for implementing a short message service (SMS) function device, comprising: receiving a cryptographically secure one-time password from a contactless card at the SMS capable device via near field communication, wherein: The cryptographically secure one-time password includes a cryptographic hash of at least the one-time password and an account identifier, The one-time password is encrypted by a symmetric encryption algorithm, and The one-time password is only valid for a set time period; sending a message from the SMS capable device to a party requesting initiation of a secure SMS session, wherein the message includes the cryptographically secure one-time password, and wherein the SMS capable device has an associated telephone number; and An SMS message is received at the SMS capable device from the party when the password is valid and when the telephone number of the SMS capable device is associated with the account identified by the account identifier.
10. A method performed by a contactless card, comprising: Initiating a near field communication (NFC) session with a computing device; As part of the NFC session, communicating with an application running on the computing device; passing at least the one-time password and the account identifier through a hash function to create a hash value; encrypting the hash value; passing the encrypted hash value to an application running on the computing device; as well as 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 a party wishing to initiate the messaging session.