Systems and Methods for Single-Step Out-of-Band Authentication
20210399895 · 2021-12-23
Inventors
Cpc classification
H04L63/0428
ELECTRICITY
H04L9/0819
ELECTRICITY
H04L9/0825
ELECTRICITY
G06F21/6209
PHYSICS
H04L9/0877
ELECTRICITY
H04L2209/72
ELECTRICITY
H04L9/3234
ELECTRICITY
H04L63/18
ELECTRICITY
H04L9/0894
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
G06K7/14
PHYSICS
Abstract
A method of performing out-of-band user authentication includes, by a service electronic device associated with a service a request to initiate a session of the service, generating an authentication token, encrypting the authentication token to generate an encrypted authentication token, and transmitting the encrypted authentication token to the electronic device.
Claims
1. A method of performing out-of-band user authentication by a server electronic device, comprising: receiving a request for a signed-encrypted authentication token associated with an electronic device from a service electronic device, wherein the request includes a read token and an indication of a memory location accessible by the server electronic device; verifying that the read token matches information stored at the memory location; and in response to verifying that the read token matches information stored at the memory location, sending the signed-encrypted authentication token to the service electronic device for further verification.
2. The method of claim 1, wherein the memory location is associated with a stored location of the signed-encrypted authentication token in a computer storage media of the server device.
3. The method of claim 1, further comprising, by the service electronic device: encrypting an authentication token to generate an encrypted authentication token; and sending the encrypted authentication token to the electronic device for a signature.
4. The method of claim 3, wherein, prior to receiving the request for the signed-encrypted authentication token, the server electronic device receives the signed-encrypted authentication token from the electronic device.
5. The method of claim 1, further comprising, by the service electronic device: decrypting the signed-encrypted authentication token; and verifying a signature associated with the electronic device.
6. The method of claim 1, further comprising, prior to receiving the request for the signed-encrypted authentication token: receiving a security token from the electronic device; and writing the security token to the memory location.
7. The method of claim 6, further comprising send the indication of the memory location to the electronic device.
8. The method of claim 6, further comprising, after sending the signed-encrypted authentication token to the service electronic device: receiving at least one of the security token and indication of the memory location; verifying that the security token matches information stored at the memory location; and sending an indication of a successful sign out to the electronic device.
9. A system comprising: one or more computing devices; and memory storing instructions, the instructions being executable by the one or more computing devices, wherein the one or more computing devices are configured to: receive a request for a signed-encrypted authentication token associated with an electronic device from a service electronic device, wherein the request includes a read token and an indication of a memory location accessible by the server electronic device; verify that the read token matches information stored at the memory location; and in response to verifying that the read token matches information stored at the memory location, send the signed-encrypted authentication token to the service electronic device for further verification.
10. The system of claim 9, wherein the memory location is associated with a stored location of the signed-encrypted authentication token in a memory of the server device.
11. The system of claim 9, further comprising, by the service electronic device: encrypting an authentication token to generate an encrypted authentication token; and sending the encrypted authentication token to the electronic device for a signature.
12. The system of claim 11, wherein, prior to receiving the request for the signed-encrypted authentication token, the server electronic device receives the signed-encrypted authentication token from the electronic device.
13. The system of claim 9, further comprising, by the service electronic device: decrypting the signed-encrypted authentication token; and verifying a signature associated with the electronic device.
14. The system of claim 9, further comprising, prior to receiving the request for the signed-encrypted authentication token: receiving a security token from the electronic device; and writing the security token to the memory location.
15. The system of claim 14, further comprising send the indication of the memory location to the electronic device.
16. A non-transitory computing-device readable storage medium on which computing-device readable instructions of a program are stored, the instructions, when executed by one or more computing devices, causing the one or more computing devices to perform a method, the method comprising: receiving a request for a signed-encrypted authentication token associated with an electronic device from a service electronic device, wherein the request includes a read token and an indication of a memory location accessible by the server electronic device; verifying that the read token matches information stored at the memory location; and in response to verifying that the read token matches information stored at the memory location, sending the signed-encrypted authentication token to the service electronic device for further verification.
17. The non-transitory computing-device readable storage medium of claim 16, wherein the memory location is associated with a stored location of the signed-encrypted authentication token in a memory of the server device.
18. The non-transitory computing-device readable storage medium of claim of claim 16, further comprising, by the service electronic device: encrypting an authentication token to generate an encrypted authentication token; and sending the encrypted authentication token to the electronic device for a signature.
19. The non-transitory computing-device readable storage medium of claim of claim 18, wherein, prior to receiving the request for the signed-encrypted authentication token, the server electronic device receives the signed-encrypted authentication token from the electronic device.
20. The non-transitory computing-device readable storage medium of claim of claim 16, further comprising, by the service electronic device: decrypting the signed-encrypted authentication token; and verifying a signature associated with the electronic device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The foregoing and other objects, features, and advantages of the present disclosure set forth herein will be apparent from the following description of particular embodiments of those inventive concepts, as illustrated in the accompanying drawings. Also, in the drawings the like reference characters refer to the same parts throughout the different views. The drawings depict only typical embodiments of the present disclosure and, therefore, are not to be considered limiting in scope.
[0012]
[0013]
[0014]
[0015]
[0016]
DETAILED DESCRIPTION
[0017] As used in this document, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. Unless defined otherwise, all technical and scientific terms used herein have the same meanings as commonly understood by one of ordinary skill in the art. As used in this document, the term “comprising” means “including, but not limited to.”
[0018] An “electronic device” or a “computing device” refers to a device that includes a processor and memory. Each device may have its own processor and/or memory, or the processor and/or memory may be shared with other devices as in a virtual machine or container arrangement. The memory will contain or receive programming instructions that, when executed by the processor, cause the electronic device to perform one or more operations according to the programming instructions. Examples of electronic devices include, for example, smartphones, personal digital assistants, cameras, tablet devices, electronic readers, personal computers, servers, and the like.
[0019] The terms “memory,” “memory device,” “data store,” “data storage facility” and the like each refer to a non-transitory device on which computer-readable data, programming instructions or both are stored. Except where specifically stated otherwise, the terms “memory,” “memory device,” “data store,” “data storage facility” and the like are intended to include single device embodiments, embodiments in which multiple memory devices together or collectively store a set of data or instructions, as well as individual sectors within such devices.
[0020] The terms “processor” and “processing device” refer to a hardware component of an electronic device that is configured to execute programming instructions. Except where specifically stated otherwise, the singular term “processor” or “processing device” is intended to include both single-processing device embodiments and embodiments in which multiple processing devices together or collectively perform a process.
[0021] In this document, when terms such “first” and “second” are used to modify a noun, such use is simply intended to distinguish one item from another, and is not intended to require a sequential order unless specifically stated.
[0022] Aspects of the present disclosure involve a system that enables simplified, single-step, out-of-band user authentication for users requesting access to various software services and/or related content, such as requesting access to a webpage, software service, software application, and/or the like.
[0023] Generally, out-of-band user authentication represents a type of two-factor authentication process that involves a username and password processed through a first, primary, communication channel and a secondary verification method through a separate communication channel that is different from the primary communication channel. For example, a typical out-of-band authentication process may involve providing: 1) a username and password of a user (first factor) to a webpage, application, or service; and 2) a piece of unique data or information (second factor) that only the user can immediately access and know, such as a physical token. Using a username/password in conjunction with a piece of information that only the user knows makes it harder for potential intruders to gain access to the webpage, application, or service and thereby obtain private data and functionality.
[0024] The use of out-of-band user authentication may present challenges. For example, since out-of-band user authentication involves two steps, the process is inconvenient and cumbersome to users—the users have to provide credentials to an original application or website, obtain a separate key from a separate communication channel, memorize the obtained key, and re-enter it at the original application or website to access the desired webpage, application, or service. Such a process is time consuming and error-prone. Moreover, out-of-band user authentication mechanisms are vulnerable to “man-in-the-middle attacks” because the authenticating entity cannot verify the authenticity of the entity supplying the authentication credentials. Finally, out-of-band user authentication mechanisms are vulnerable to “Trojan Attacks”, wherein malicious software referred to as a “Trojan” is installed on user's computer. Then, when a user logs into a secure software service, the Trojan software manipulates the software to obtain proprietary information and software.
[0025] The systems disclosed in the present application solves these specific technical problems, among others, by providing a single-step, out-of-band user authentication process. More specifically, the disclosed system simplifies the two-factor authentication process by replacing the username and password login pattern (i.e., the first factor) with a single-step pattern that uses a public-key and location information identifying an expected storage location of validated user authentication data. Once the single-step pattern has been established, the system automatically authenticates users (i.e., allows users to login) based on secure responses identifying the expected storage location, thereby proving the authentication of the user.
[0026]
[0027] In an illustrative usage scenario, a user may interact with user-interface (UI) 118 of one or more electronic devices 122.sub.1, 122.sub.2, . . . 122.sub.N to request access to various services, such as a webpage, a site, software service, application, content and/or the like (referred to throughout this disclosure as a “service”), located at a service computing device 102 that is associated with one or more services (illustrated as webpage 103 and software service 105). The one or more electronic devices 122.sub.1, 122.sub.2, . . . 122.sub.N, may be a personal computer, work station, mobile device, mobile phone, tablet device, processor, and/or other processing device capable of implementing and/or executing processes, software, applications, etc., that includes network-enabled devices and/or software, such as a user-interface 118 for communication over the communications network 130 (e.g., browsing the internet). Additionally, the one or more electronic devices 122.sub.1, 122.sub.2, . . . 122.sub.N, may include one or more processors that process software or other machine-readable instructions and may include a memory to store the software or other machine-readable instructions and data. In various embodiments, an application or other interface of an electronic device 122.sub.1, 122.sub.2, . . . 122.sub.N may permit the electronic device to communicate with a service electronic device, a server electronic device or another electronic device. For example, an Internet browser or an application that is installed on an electronic device may be used.
[0028] The request may be transmitted from the service computing device 102 to an out-of-band secure network 104, which may be any type of private communications computing network including one or more computing devices, such as server electronic device 107. In one specific example, the secure network 104 and/or server electronic device 107 may manage the encryption and decryption of public and/or private keys used to authenticate users involved in a single-step, out-of-band authentication process, wherein the users are requesting access to webpages 103 and/or software services 105 of the service computing device 102.
[0029]
[0030] At 208, a security token (ST), read token (RT) and/or delete token (DT) may be generated by and stored at the electronic device. One or more of the generated tokens may extend one or more benefits or privileges to a holder of the token. For example, a ST may grant to its holder access to certain secret or private information. As another example, a RT may permit its owner to read certain secret or private information. And as another example, a DT may permit its owner to delete certain secret or private information. The ST, RT and/or DT may be randomly generated by the electronic device.
[0031] At 210, the ST may be transmitted from the electronic device to a server electronic device of a secure network. The server electronic device may receive 212 the ST, and may write the ST to a memory location (KL) associated with the server electronic. In an embodiment, KL may be assigned randomly. At 214, the server electronic device may return an identifier associated with the KL (KL identifier) to the electronic device for storage. The KL identifier may uniquely identify KL, and may be an address, a pointer, or other identifier. At 216, the electronic device may transmit PK, RT and/or the KL identifier to a service electronic device. At 218, the service electronic device may generate a new account using PK, RT and/or the KL identifier. At 220, the PK, SK, ST, RT, DT and/or KL identifier may be deleted from memory associated with the electronic device.
[0032]
[0033] In response to the request, at 304, the service electronic device may generate an authentication token (“AT”). The service electronic device may encrypt 306 the AT using the PK of the electronic device. At 308, the service electronic device may transmit the encrypted AT to the particular electronic device. In various embodiments, the service electronic device may transmit the encrypted AT to an electronic device embedded in an image, a graphic and/or the like. For instance, the service may transmit the encrypted AT to an electronic device embedded in a Quick Response (QR) code. At 310, the electronic device may obtain the encrypted AT, such as by scanning the QR code that includes the encrypted AT. At 312, the electronic device may obtain PK, SK and/or S-PK from storage of the electronic device.
[0034] At 314, the electronic device may decrypt the encrypted AT using the obtained SK. At 316, the electronic device may sign the AT with the SK to generate a signed authentication token (AT.sup.SK). At 318, the electronic device may encrypt AT.sup.SK with S-PK to generate a signed-encrypted authentication token ((AT.sup.SK).sup.S-PK). At 320, ST, RT, and/or the indication of KL may be obtained from storage on the particular electronic device.
[0035] At 322, a server electronic device may receive (AT.sup.SK).sup.S-PK) ST, RT and/or the KL identifier from an electronic device and may verify that ST corresponds to information stored at KL. The server electronic device may write 324 RT and (AT.sup.SK).sup.S-PK) to KL. At 326, the particular electronic device may be notified that the authentication is done and provides access to the service.
[0036] At 328, the service may send a request for (AT.sup.SK).sup.S-PK) to the server electronic device that includes RT and the KL identifier. At 330, the server electronic device may verify that RT corresponds to the information stored at KL, and may return information purporting to be (AT.sup.SK).sup.S-PK) when there is a correlation. In an embodiment, the service may receive 332 the sent information from the server electronic device. The service may decrypt 334 the sent information with S-SK and then verify the signature using PK.
[0037] At 336, if the decrypted information corresponds to AT, the user's session may be authenticated. At 338, the PK, SK, RT, ST and/or KL indicator may be deleted from the electronic device.
[0038]
[0039] In various embodiments, the server electronic device may delete 414 RT and/or (AT.sup.SK).sup.S-PK) from KL. The electronic device may delete 416 ST and/or the indication of KL from storage on the electronic device.
[0040]
[0041] Components of the computing device 500 may include various hardware components, such as a processing unit 502, a data store 504 (e.g., a system memory), and a system bus 506 that couples various system components of the computing device 500 to the processing unit 502. The system bus 506 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. For example, such architectures may include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
[0042] The computing device 500 may further include a variety of computer-readable media 508 that includes removable/non-removable media and volatile/nonvolatile media, but excludes transitory propagated signals. Computer-readable media 508 may also include computer storage media and communication media. Computer storage media includes removable/non-removable media and volatile/nonvolatile media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules or other data, such as RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store the desired information/data and which may be accessed by the computer 500. Communication media includes computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For example, communication media may include wired media such as a wired network or direct-wired connection and wireless media such as acoustic, RF, infrared, and/or other wireless media, or some combination thereof. Computer-readable media may be embodied as a computer program product, such as software stored on computer storage media.
[0043] The data storage or system memory 504 includes computer storage media in the form of volatile/nonvolatile memory such as read only memory (ROM) and random access memory (RAM). A basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within the computing device 500 (e.g., during start-up) is typically stored in ROM. RAM typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 502. For example, in one embodiment, data storage 504 holds an operating system, application programs, and other program modules and program data.
[0044] Data storage 504 may also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, data storage 504 may be: a hard disk drive that reads from or writes to non-removable, nonvolatile magnetic media; a magnetic disk drive that reads from or writes to a removable, nonvolatile magnetic disk; and/or an optical disk drive that reads from or writes to a removable, nonvolatile optical disk such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media may include magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The drives and their associated computer storage media, described above and illustrated in
[0045] A user may enter commands and information through a user interface 510 or other input devices such as a tablet, electronic digitizer, a microphone, keyboard, and/or pointing device, commonly referred to as mouse, trackball, or touch pad. Other input devices may include a joystick, game pad, satellite dish, scanner, or the like. Additionally, voice inputs, gesture inputs (e.g., via hands or fingers), or other natural user interfaces may also be used with the appropriate input devices, such as a microphone, camera, tablet, touch pad, glove, or other sensor. These and other input devices are often connected to the processing unit 502 through a user interface 510 that is coupled to the system bus 506, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 512 or other type of display device is also connected to the system bus 506 via an interface, such as a video interface. The monitor 512 may also be integrated with a touch-screen panel or the like.
[0046] The computing device 500 may operate in a networked or cloud-computing environment using logical connections of a network interface or adapter 514 to one or more remote devices, such as a remote computer. The remote computer may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computing device 500. The logical connections depicted in
[0047] When used in a networked or cloud-computing environment, the computing device 500 may be connected to a public and/or private network through the network interface or adapter 514. In such embodiments, a modem or other means for establishing communications over the network is connected to the system bus 506 via the network interface or adapter 514 or other appropriate mechanism. A wireless networking component including an interface and antenna may be coupled through a suitable device such as an access point or peer computer to a network. In a networked environment, program modules depicted relative to the computing 500, or portions thereof, may be stored in the remote memory storage device.
[0048] The foregoing merely illustrates the principles of the disclosure. Various modifications and alterations to the described embodiments will be apparent to those skilled in the art in view of the teachings herein. It will thus be appreciated that those skilled in the art will be able to devise numerous systems, arrangements and methods which, although not explicitly shown or described herein, embody the principles of the disclosure and are thus within the spirit and scope of the present disclosure. From the above description and drawings, it will be understood by those of ordinary skill in the art that the particular embodiments shown and described are for purposes of illustrations only and are not intended to limit the scope of the present disclosure. References to details of particular embodiments are not intended to limit the scope of the disclosure.