US20170078879A1 - Device, method, and system for augmented reality security - Google Patents
Device, method, and system for augmented reality security Download PDFInfo
- Publication number
- US20170078879A1 US20170078879A1 US15/215,749 US201615215749A US2017078879A1 US 20170078879 A1 US20170078879 A1 US 20170078879A1 US 201615215749 A US201615215749 A US 201615215749A US 2017078879 A1 US2017078879 A1 US 2017078879A1
- Authority
- US
- United States
- Prior art keywords
- computing device
- user
- content
- mobile computing
- authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
- H04W12/084—Access security using delegated authorisation, e.g. open authorisation [OAuth] protocol
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Definitions
- a user may wish to authenticate to a friend's networked television set in order to share personal pictures or a movie; a user may wish to complete a purchase transaction using an online e-commerce identity; a user may provide personal information to a digital sign or kiosk in a retail store, in order to perform a personalized search for goods; and/or a user may log in to a website on a public computer, such as in an internet café.
- authenticating oneself directly on the public, untrusted device may expose the user's password, identification, and/or other personal information.
- the public, untrusted device may have a virus or malware configured to capture and store such personal data.
- FIG. 1 is a simplified block diagram of at least one embodiment of a system for authenticating a user of a mobile computing device to a content server;
- FIG. 2 is a simplified block diagram of at least one embodiment of an environment of a target computing device of the system of FIG. 1 ;
- FIG. 3 is a simplified block diagram of at least one embodiment of an environment of a mobile computing device of the system of FIG. 1 ;
- FIG. 4 is a simplified block diagram of at least one embodiment of an environment of an authentication server of the system of FIG. 1 ;
- FIG. 5 is a simplified block diagram of at least one embodiment of an environment of a content server of the system of FIG. 1 ;
- FIG. 6 is a simplified flow diagram of at least one embodiment of a method for authenticating a user of a mobile computing device to a content server, which may be executed by the target computing device of FIG. 2 ;
- FIG. 7 is a simplified flow diagram of at least one embodiment of a method for authenticating a user of a mobile computing device to a content server, which may be executed by the mobile computing device of FIG. 3 ;
- FIG. 8 is a simplified flow diagram of at least one embodiment of a method for authenticating a user of a mobile computing device to a content server, which may be executed by the authentication server of FIG. 4 ;
- FIG. 9 is a simplified flow diagram of at least one embodiment of a method for authenticating a user of a mobile computing device to a content server, which may be executed by the content server of FIG. 5 .
- references in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof.
- Embodiments of the invention implemented in a computer system may include one or more bus-based interconnects between components and/or one or more point-to-point interconnects between components.
- Embodiments of the invention may also be implemented as instructions carried by or stored on a transitory or non-transitory machine-readable (e.g., computer-readable) medium, which may be read and executed by one or more processors.
- a machine-readable medium may be embodied as any device, mechanism, or physical structure for storing or transmitting information in a form readable by a machine (e.g., a computing device).
- a machine-readable medium may be embodied as read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; mini- or micro-SD cards, memory sticks, electrical signals, and others.
- schematic elements used to represent instruction blocks may be implemented using any suitable form of machine-readable instruction, such as software or firmware applications, programs, functions, modules, routines, processes, procedures, plug-ins, applets, widgets, code fragments and/or others, and that each such instruction may be implemented using any suitable programming language, library, application programming interface (API), and/or other software development tools.
- API application programming interface
- some embodiments may be implemented using Java, C++, and/or other programming languages.
- schematic elements used to represent data or information may be implemented using any suitable electronic arrangement or structure, such as a register, data store, table, record, array, index, hash, map, tree, list, graph, file (of any file type), folder, directory, database, and/or others.
- connecting elements such as solid or dashed lines or arrows
- the absence of any such connecting elements is not meant to imply that no connection, relationship or association can exist.
- some connections, relationships or associations between elements may not be shown in the drawings so as not to obscure the disclosure.
- a single connecting element may be used to represent multiple connections, relationships or associations between elements.
- a connecting element represents a communication of signals, data or instructions
- such element may represent one or multiple signal paths (e.g., a bus), as may be needed, to effect the communication.
- a system 100 for authenticating a user comprises a mobile computing device 102 controlled by the user, a target computing device 104 to access content on the content server 110 , an authentication server 106 to authenticate the user, and, optionally, a third-party login server 108 to authenticate the user, all communicating over a network 112 .
- the target computing device 104 is configured to establish a communication session with the content server 110 to generate a pairing token (not shown) using a session ID identifying the communication session.
- the target computing device 104 presents the pairing token to the mobile computing device 102 , which captures the pairing token.
- the mobile computing device 102 contacts the authentication server 106 and optionally the third-party login server 108 over the network 112 and authenticates the user.
- the target computing device 104 receives an authentication token from the authentication server 106 over the network 112 .
- the target computing device 104 uses the authentication token to access content on the content server 110 , over the network 112 .
- the pairing token may be embodied as a visual or audio cue, and as such may be presented and captured using standard components of the target computing device 104 and mobile computing device 102 , such as digital displays and digital cameras. Therefore, visual or audio pairing tokens may be implemented using standard, existing computing devices without requiring additional hardware components, in contrast to pairing methods using non-standard hardware, such as near-field communication (NFC) radio technology.
- NFC near-field communication
- the system 100 allows the user to access content without entering sensitive information such as the user's credentials directly into the target computing device 104 , which may be untrusted and potentially compromised. Instead, the user enters all sensitive information into the mobile computing device 102 , which is controlled by the user and therefore usually trusted by the user. In this fashion, information security may be increased by associating physical security of the mobile computing device 102 with information security and thereby exploiting humans' intuitive sense of physical security.
- the system 100 allows the use of a target computing device 104 that may not include a full user interface or may not include a web browser, because the user credentials are entered on the user's mobile computing device 102 .
- the target computing device 104 may be a digital sign or kiosk device that lacks a keyboard, or a networked television set where password entry by remote control is cumbersome.
- Using the mobile computing device 102 to receive the user credentials makes the system 100 easy to use and encourages the use of longer, stronger passwords.
- the mobile computing device 102 of the system 100 may be embodied as any type of computing device capable of performing the functions described herein.
- the mobile computing device 102 may be embodied as, without limitation, a smart phone, a cellular telephone, a handset, a messaging device, a tablet computer, a laptop computer, a notebook computer, a mobile computing device, a multiprocessor system, a processor-based system, a consumer electronic device, and/or any other mobile computing device configured to capture the pairing token from the target computing device 104 and authenticate the user to the authentication server 106 .
- the mobile computing device 102 includes a processor 120 , an I/O subsystem 124 , a memory 126 , a data storage 128 , a communication circuitry 130 , and one or more peripheral devices 132 .
- a processor 120 the mobile computing device 102 includes a processor 120 , an I/O subsystem 124 , a memory 126 , a data storage 128 , a communication circuitry 130 , and one or more peripheral devices 132 .
- several of the foregoing components may be incorporated on a motherboard or main board of the mobile computing device 102 , while other components may be communicatively coupled to the motherboard via, for example, a peripheral port.
- the mobile computing device 102 may include other components, sub-components, and devices commonly found in a computer and/or computing device, which are not illustrated in FIG. 1 for clarity of the description.
- the processor 120 of the mobile computing device 102 may be embodied as any type of processor capable of executing software/firmware, such as a microprocessor, digital signal processor, microcontroller, or the like.
- the processor 120 is illustratively embodied as a single core processor having a processor core 122 . However, in other embodiments, the processor 120 may be embodied as a multi-core processor having multiple processor cores 122 . Additionally, the mobile computing device 102 may include additional processors 120 having one or more processor cores 122 .
- the I/O subsystem 124 of the mobile computing device 102 may be embodied as circuitry and/or components to facilitate input/output operations with the processor 120 and/or other components of the mobile computing device 102 .
- the I/O subsystem 124 may be embodied as a memory controller hub (MCH or “northbridge”), an input/output controller hub (ICH or “southbridge”), and a firmware device.
- the firmware device of the I/O subsystem 124 may be embodied as a memory device for storing Basic Input/Output System (BIOS) data and/or instructions and/or other information (e.g., a BIOS driver used during booting of the mobile computing device 102 ).
- BIOS Basic Input/Output System
- the I/O subsystem 124 may be embodied as a platform controller hub (PCH).
- the memory controller hub (MCH) may be incorporated in or otherwise associated with the processor 120 , and the processor 120 may communicate directly with the memory 126 (as shown by the hashed line in FIG. 1 ).
- the I/O subsystem 124 may form a portion of a system-on-a-chip (SoC) and be incorporated, along with the processor 120 and other components of the mobile computing device 102 , on a single integrated circuit chip.
- SoC system-on-a-chip
- the processor 120 is communicatively coupled to the I/O subsystem 124 via a number of signal paths.
- These signal paths may be embodied as any type of signal paths capable of facilitating communication between the components of the mobile computing device 102 .
- the signal paths may be embodied as any number of point-to-point links, wires, cables, light guides, printed circuit board traces, vias, bus, intervening devices, and/or the like.
- the memory 126 of the mobile computing device 102 may be embodied as or otherwise include one or more memory devices or data storage locations including, for example, dynamic random access memory devices (DRAM), synchronous dynamic random access memory devices (SDRAM), double-data rate synchronous dynamic random access memory device (DDR SDRAM), mask read-only memory (ROM) devices, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) devices, flash memory devices, and/or other volatile and/or non-volatile memory devices.
- the memory 126 is communicatively coupled to the I/O subsystem 124 via a number of signal paths. Although only a single memory device 126 is illustrated in FIG. 1 , the mobile computing device 102 may include additional memory devices in other embodiments.
- Various data and software may be stored in the memory 126 . For example, one or more operating systems, applications, programs, libraries, and drivers that make up the software stack executed by the processor 120 may reside in memory 126 during execution.
- the data storage 128 may be embodied as any type of device or devices configured for the short-term or long-term storage of data.
- the data storage 128 may include any one or more memory devices and circuits, memory cards, hard disk drives, solid-state drives, or other data storage devices.
- the communication circuitry 130 of the mobile computing device 102 may include any number of devices and circuitry for enabling communications between the mobile computing device 102 and the authentication server 106 and third-party login server 108 over the network 112 as discussed in more detail below.
- the communication circuitry 130 may be configured to use any one or more, or combination thereof, communication protocols to communicate with the network 112 such as, for example, a cellular communication protocol (e.g., Wideband Code Division Multiple Access (W-CDMA)), a wireless network communication protocol (e.g., Wi-Fi®, WiMAX), a wired network communication protocol (e.g., TCP/IP), and/or other communication protocols.
- W-CDMA Wideband Code Division Multiple Access
- Wi-Fi® Wireless Fidelity
- WiMAX wireless network communication protocol
- TCP/IP wired network communication protocol
- the mobile computing device 102 may also include one or more peripheral devices 132 .
- peripheral devices 132 may include any number of additional input/output devices, interface devices, and/or other peripheral devices.
- the peripheral devices 132 may include a display, touch screen, graphics circuitry, keyboard, mouse, speaker system, and/or other input/output devices, interface devices, and/or peripheral devices.
- the mobile computing device 102 also includes a camera 134 and a display 136 .
- the camera 134 may be embodied as a digital camera or other digital imaging device integrated with the mobile computing device 102 .
- the camera 134 includes an electronic image sensor, such as an active-pixel sensor (APS), e.g., a complementary metal-oxide-semiconductor (CMOS) sensor, or a charge-coupled device (CCD).
- APS active-pixel sensor
- CMOS complementary metal-oxide-semiconductor
- CCD charge-coupled device
- no particular minimum image resolution is required of the camera 134 ; that is, the image resolution provided by standard camera phones, as well as that of more sophisticated devices, is suitable for the purposes of the present disclosure.
- the display 136 of the mobile computing device 102 may be embodied as any type of display capable of displaying digital information such as a liquid crystal display (LCD), a light emitting diode (LED), a plasma display, a cathode ray tube (CRT), or other type of display device.
- the display 136 may be coupled with a touch screen to facilitate user interaction.
- the mobile computing device 102 may include an audio sensor 138 .
- the audio sensor 138 may be embodied as any sensor capable of capturing audio signals such as a microphone, a line input jack, an analog-to-digital converter (ADC), or other type of audio sensor.
- ADC analog-to-digital converter
- the audio sensor 138 is represented in FIG. 1 with hashed lines to indicate the audio sensor 138 is not present in some embodiments.
- the target computing device 104 may be any type of computing device capable of performing the functions described herein.
- the target computing device may be a less-capable device with limited modes of user interaction, such as a digital sign device, an electronic kiosk, a point-of-sale (POS) device, or the like.
- the target computing device may be a more-capable computing device, such as a desktop computer, a laptop computer, a notebook computer, or a tablet computer.
- the target computing device 104 may include components substantially similar to the mobile computing device 102 , which have been identified in FIG. 1 with a common reference numbering scheme. As such, the description provided above of the components of the mobile computing device 102 may be equally applicable to those similar components of the target computing device 104 and are not repeated herein so as not to obscure the present disclosure. Of course, it should be appreciated that in some embodiments the mobile computing device 102 and the target computing device 104 may be dissimilar to each other, as discussed above.
- the target computing device 104 may include an audio device 176 .
- the audio device 176 may be embodied as any device capable of generating audio signals, such as a speaker, an audio transducer, a line out jack, a digital-to-analog converter (DAC), or other type of audio device.
- the audio device 176 is represented in FIG. 1 with hashed lines to indicate the audio device 176 is not present in some embodiments.
- the mobile computing device 102 and the target computing device 104 are configured to transmit messages to the authentication server 106 , the content server 110 , and, optionally, the third-party login server 108 over the network 112 .
- the network 112 may be embodied as any number of various wired and/or wireless networks.
- the network 112 may be embodied as or otherwise include a wired or wireless local area network (LAN), a wired or wireless wide area network (WAN), and/or a publicly-accessible, global network such as the Internet.
- the network 112 may include any number of additional devices, such as additional computers, routers, and switches, to facilitate communications between the mobile computing device 102 , the target computing device 104 , the authentication server 106 , the content server 110 , and, optionally, the third-party login server 108 .
- additional devices such as additional computers, routers, and switches, to facilitate communications between the mobile computing device 102 , the target computing device 104 , the authentication server 106 , the content server 110 , and, optionally, the third-party login server 108 .
- the authentication server 106 is configured to receive authentication data from the mobile computing device 102 , authenticate the user, optionally using the third-party login server 108 , and provide an authentication token to the target computing device 104 , as discussed in more detail below.
- the authentication server 106 may be embodied as any type of data server (e.g., a web server) or similar computing device capable of performing the functions described herein. As such, the authentication server 106 may include components and features similar to the mobile computing device 102 and the target computing device 104 , such as a processor, I/O subsystem, memory, data storage, communication circuitry, and various peripheral devices, which are not illustrated in FIG. 1 for clarity of the present description.
- the content server 110 is configured to establish a content session with the target computing device 104 and provide access to content on the device to the target computing device 104 in response to receiving an authentication token, as discussed in more detail below.
- the content server 110 may be embodied as any type of data server (e.g., a web server) or similar computing device capable of performing the functions described herein.
- the content server may include components and features similar to the mobile computing device 102 and the target computing device 104 , such as a processor, I/O subsystem, memory, data storage, communication circuitry, and various peripheral devices, which are not illustrated in FIG. 1 for clarity of the present description.
- the content server 110 may be embodied as an independent server or computing device separate from the authentication server 106 as shown in FIG. 1 .
- the third-party login server 108 is configured to provide third-party login services for system 100 .
- Example third-party login servers may include web account providers such as Yahoo!®, or Google®, social networks such as Facebook® or Twitter®, e-commerce vendors such as Amazon®, or more generally any third-party server implementing an authorization protocol such as the OAuth authorization protocol.
- the third-party login server 108 may be embodied as any type of data server (e.g., a web server) or similar computing device capable of performing the functions described herein.
- the third-party login server may include components and features similar to the mobile computing device 102 and the target computing device 104 , such as a processor, I/O subsystem, memory, data storage, communication circuitry, and various peripheral devices, which are not illustrated in FIG. 1 for clarity of the present description.
- Third-party login server 108 may not be present in all embodiments, as indicated by its hashed outline in FIG. 1 .
- the target computing device 104 establishes an environment 200 during operation.
- the illustrative embodiment 200 includes an application 202 , a pairing module 204 , an authentication module 206 , and a content management module 208 .
- Each of the pairing module 204 , the authentication module 206 , and the content management module 208 may be embodied as hardware, firmware, software, or a combination thereof.
- the application 202 may be embodied as any type of software or firmware application configured to allow the user to access content provided by the content server 110 .
- the application 202 may be embodied as a point of sale application, a web browser, or a digital sign display application.
- the pairing module 204 is configured to generate a pairing token and present the pairing token to the mobile computing device 102 .
- the pairing token may be embodied as a visual or audio cue capable of being presented using standard components of the target computing device 104 .
- the authentication module 206 is configured to poll the authentication server 106 and receive an authentication token when the user has successfully authenticated.
- the authentication module 206 may be included in the environment of content server 110 , discussed in connection with FIG. 5 , below.
- the target computing device 104 may be located behind a network firewall and may be unable to contact the authentication server 106 directly.
- the content management module 208 is configured to establish a communication session with the content server 110 , receive a session ID identifying the communication session, and access content on the content server 110 using the authentication token received from the authentication server 106 .
- the pairing module 204 may generate the pairing token using this session ID, as discussed in more detail below.
- the content management module 208 may process content from the content server 110 .
- the content management module 208 may display the content or may complete a purchase transaction.
- the mobile computing device 102 establishes an environment 300 during operation.
- the illustrative embodiment 300 includes a pairing module 302 , a user interface module 304 , and an authentication module 306 , each of which may be embodied as hardware, firmware, software, or a combination thereof.
- the pairing module 302 is configured to capture a pairing token presented by the target computing device 104 and determine the session ID from the pairing token.
- the user interface module 304 may be configured to present an authentication user interface to the user. In some embodiments, the user interface module 304 may allow the user to define access to his or her personal information.
- the authentication module 306 is configured to register the mobile computing device 102 with the authentication server 106 , collect user credentials from the user, authenticate the user to the mobile computing device 102 as a function of the user credentials, and authenticate the mobile computing device 102 to the authentication server 106 using the session ID. In some embodiments, the authentication module 306 may update the user's profile, including the user's personal information. In some embodiments, the authentication module 306 may collect user credentials and authenticate the user using the third-party login server 108 .
- the authentication server 106 establishes an environment 400 during operation.
- the illustrative embodiment 400 includes a registration module 402 , a token management module 404 , and an authentication module 406 , each of which may be embodied as hardware, firmware, software, or a combination thereof.
- the registration module 402 is configured to register a mobile computing device 102 with the authentication server 106 .
- the token management module 404 is configured to generate an authentication token associated with the session ID. In some embodiments, the token management module 404 may generate the authentication token as a function of the session ID.
- the authentication module 406 is configured to receive the session ID from the mobile computing device 102 and to authenticate the user as a function of the user credentials. In some embodiments, the authentication module 406 is configured to receive a username and a password from the mobile computing device. In alternative embodiments, the authentication module 406 is configured to authenticate the user using the third-party login server 108 .
- the content server 110 establishes an environment 500 during operation.
- the illustrative embodiment 500 includes a content management module 502 , a session management module 504 , and a content database 506 , each of which may be embodied as hardware, firmware, software, or a combination thereof.
- the content management module 502 is configured to provide content to the target computing device 104 in response to receiving an authentication token.
- the session management module 504 is configured to generate a session ID to identify a communication session established between the content server 110 and the target computing device 104 .
- the authentication token is associated with the session ID and in some embodiments may be a function of the session ID.
- the content database 506 is configured to store the content data that is accessed by the target computing device 104 using the content management module 502 .
- the target computing device 104 may execute a method 600 for authenticating a user of the mobile computing device 102 to the content server 110 .
- the method 600 begins with block 602 , in which the target computing device 104 determines whether an interaction request from the user has been detected.
- the interaction request may include any suitable user interaction, such as pressing a button, selecting an on-screen user interface control, speaking a voice command, or otherwise.
- the interaction request may not be express; for example, a digital sign device may be prepared to interact with any user within eyesight.
- the method 600 advances to block 604 .
- the content management module 208 sets up a communication session with the content server 110 .
- Content provided by the content server 110 may include interactive content such as web pages, media content such as music or video, payment processing information such as credit card information, personal information about the user stored on the content server, or other digital content.
- the content management module 208 receives a session ID from the content server 110 .
- the session ID identifies the communication session between the target computing device 104 and the content server 110 .
- the session ID may be embodied as a numeric code, a text label, a uniform resource identifier (URI), or similar identifier.
- URI uniform resource identifier
- the pairing module 204 generates a pairing token using the session ID.
- the pairing token may be embodied as any feature of the target computing device detectable by the mobile computing device 102 using standard input methods.
- the pairing token may be embodied as a two-dimensional bar code such as a quick response (“QR”) code.
- the pairing token may be an audio signal.
- the pairing module 204 presents the pairing token to the mobile computing device 102 .
- the pairing token is presented by displaying a two-dimensional bar code on the display 174 of the target computing device 104 .
- the pairing token is presented by playing an audio signal on the audio device 176 of the target computing device 104 .
- the mobile computing device 102 proceeds to authenticate the user as discussed in more detail below.
- the authentication module 206 polls the authentication server 106 for an authentication token.
- the authentication token is generated by the authentication server 106 in response to the user successfully authenticating, as described in more detail below.
- the authentication module 206 determines if the user has successfully authenticated. If not, method 600 loops back to block 612 to continue polling the authentication server. If the user has successfully authenticated, method 600 proceeds to block 616 .
- the authentication module 206 is embodied as polling the authentication server 106 , it should be apparent to those skilled in the art that other techniques for querying the authentication server 106 are possible, for example, registering with the server and waiting for an asynchronous server response.
- the content management module 208 accesses content on the content server 110 using the authentication token.
- the content management module 208 may access the user's profile information stored on the content server.
- the target computing device 104 is not required to receive user credentials directly from the user or the mobile computing device 102 .
- processing the content may include displaying the content on a display 174 of the target computing device 104 , as with audiovisual content or interactive web content.
- processing the content may include completing a purchase transaction on the target computing device 104 , as with payment processing content. Blocks 622 and 624 are illustrated with hashed lines to indicate they are optional.
- the mobile computing device 102 may execute a method 700 to authenticate a user of the mobile computing device 102 to a content server 110 .
- the method 700 begins with block 702 , in which the registration module 308 registers with the authentication server 106 . Registration may include establishing a user profile, including user credentials such as a username and a password.
- the registration module 308 may update the user's profile, including updating the user's personal information.
- the pairing module 302 determines whether an interaction with the target computing device 104 has occurred. If not, the method 700 loops back to block 706 and repeats. When an interaction with the target computing device 104 occurs, the method 700 advances to block 708 in which the pairing module 302 captures the pairing token presented by the target computing device 104 .
- the pairing token may be embodied as any feature of the target computing device 104 detectable by the mobile computing device 102 using standard input methods. For example, in some embodiments, the mobile computing device 102 may capture a two-dimensional bar code such as a quick response (“QR”) code using the camera 134 .
- QR quick response
- the mobile computing device 102 may capture an audio signal using the audio sensor 138 .
- the pairing module 302 determines the session ID from the captured pairing token. That is, the session ID may be embedded in or otherwise represented by the pairing token. As described above, the session ID identifies a communication session between the target computing device 104 and the content server 110 , and the pairing token is generated using the session ID.
- the authentication module 306 authenticates the user to the mobile computing device 102 . That is, the user of the mobile computing device 102 inputs or otherwise supplies his or her user credentials to the mobile computing device 102 .
- the user interface module 304 may present an authentication user interface to the user. This authentication user interface may be a native application, a web page, a remote access application, or other user interface. The authentication user interface may be provided by the authentication server 106 or by the third-party login server 108 .
- the user credential module 312 may collect user credentials of the user. The user credentials may be collected using the user interface module 304 .
- the third-party provider module 314 may perform a login with the third-party login server 108 .
- the user interface module 304 may allow the user to define access to his or her personal information. For example, the user may allow or disallow access to his or her user profile. Alternatively, the user may define an allowed level of access to the user's personal information (e.g. how much and which type of personal information is accessible).
- the authentication module 306 determines whether or not the user has successfully authenticated to mobile computing device 102 . If not, the method 700 loops back to block 706 and awaits another interaction with the target device. If the user has successfully authenticated to the mobile computing device 102 , the method 700 advances to block 724 .
- the authentication module 306 authenticates the mobile computing device 102 to the authentication server 106 .
- the session management module 310 sends the session ID to the authentication server.
- the user credential module 312 may send the user credentials to the authentication server 106 .
- the third-party provider module may authenticate the user with the third-party login server 108 .
- the user credentials may be embodied as a username and a password, or the user credentials may be a user identity provided by the third-party login server 108 .
- the authentication module 306 determines whether authentication with the authentication server 106 was successful. If authentication was not successful, the method 700 loops back to block 712 , wherein the user may attempt to re-authenticate. If authentication was successful, the method 700 advances to block 734 .
- the user interface module 304 may indicate to the user that the authentication process was successful. By doing so, the user is prompted to return to the target computing device 104 . As discussed above in connection with FIG. 6 , upon successful authentication, the target computing device 104 will receive an authentication token from the authentication server 106 and use the authentication token to access content on the content server 110 .
- the authentication server 106 may execute a method 800 to authenticate a user of the mobile computing device 102 to a content server 110 .
- the method 800 begins with block 802 , in which the authentication server 106 waits for a registration request from the mobile computing device 102 .
- the method 800 advances to block 804 , where the registration module 402 registers the mobile computing device 102 with authentication server 106 .
- the authentication server 106 waits for an authentication request received from mobile computing device 102 .
- the method 800 advances to block 808 .
- the authentication module 406 receives authentication data from the mobile computing device 102 .
- the session management module 408 receives the session ID. As described above, the session ID identifies a content session established between the target computing device 104 and the content server 110 .
- the user credential module 410 may receive the user credentials. The user credentials may be a username and a password, or the user credentials may be a user identity provided by the third-party login server 108 .
- the third-party provider module 412 may receive a third-party provider preference from the mobile computing device 102 . The third-party provider preference may identify the appropriate third-party login server 108 .
- the authentication module 406 authenticates the user as a function of the user credentials.
- the authentication module 406 validates the user credentials.
- User credentials may be validated by confirming that the username and password received from the mobile computing device 102 are correct, such as by validating the username and password against a flat file or against a directory service such as LDAP, ActiveDirectory, or the like.
- the third-party provider module 412 may authenticate the user with the third-party login server 108 .
- the authentication module 406 determines whether the user successfully authenticated. If not successfully authenticated, the method 800 may advance to optional block 824 , where the authentication server 106 returns an error condition to the mobile computing device 102 , and then the method 800 loops back to block 806 to await another authentication request. If authentication was successful, the method 800 advances to block 826 .
- the token management module 404 generates an authentication token.
- the authentication token is associated with the session ID.
- the authentication token may be a function of the session ID.
- the authentication token may be generated by cryptographically signing data including the session ID, a random number to prevent replay attacks, and additional context information. Any suitable cryptographic signature scheme may be used, for example RSA, DSA, or ElGamal.
- the token management module 404 provides the authentication token to the target computing device 104 .
- the target computing device may poll the authentication server 106 repeatedly until the authentication token becomes available following successful authentication of the user.
- the target computing device 104 may use the authentication token to access content on the content server 110 .
- the content server 110 may execute a method 900 to authenticate a user of the mobile computing device 102 to the content server 110 .
- the method 900 begins with block 902 , where the content server 110 waits for a session request from the target computing device 104 .
- the method 900 advances to block 904 .
- the session management module 504 generates a session ID to identify the content session between the target computing device 104 and the content server 110 .
- the session management module 504 provides the session ID to the target computing device 104 .
- the session ID is used to generate the pairing token passed from the target computing device 104 to the mobile computing device 102 , and is in turn used by the mobile computing device 102 to authenticate the user to the authentication server 106 .
- the content management module 502 determines whether an authentication token has been received from the target computing device 104 . If not, the method 900 continues to wait at block 908 . If an authentication token is received, the method 900 advances to block 910 .
- the content management module 502 provides content to the target computing device 104 .
- the target computing device 104 uses the authentication token to access the content.
- the content may be supplied by the content database 506 .
- content may include interactive content, media content, payment processing content, personal information about the user, or other digital content.
- An embodiment of the devices, systems, and methods disclosed herein are provided below.
- An embodiment of the devices, systems, and methods may include any one or more, and any combination of, the examples described below.
- Example 1 includes a computing device to authenticate a user to a content server.
- the computing device includes a pairing module to (i) generate a pairing token using a session ID received from the content server and (ii) present the pairing token to a mobile computing device controlled by the user to allow the user to authenticate to an authentication server; an authentication module to receive an authentication token from the authentication server in response to successful authentication of the user by the mobile computing device; and a content management module to access content on the content server using the authentication token.
- Example 2 includes the subject matter of Example 1, and wherein to access content on the content server comprises to access user profile information of the user.
- Example 3 includes the subject matter of any of Examples 1 and 2, and wherein the content management module is to process the content accessed from the content server.
- Example 4 includes the subject matter of any of Examples 1-3, and wherein to process the content comprises to display the content accessed from the content server.
- Example 5 includes the subject matter of any of Examples 1-4, and wherein to process the content comprises to complete a purchase transaction on the computing device.
- Example 6 includes the subject matter of any of Examples 1-5, and further including a display, wherein the pairing token comprises a two-dimensional bar code and the pairing module is to present the pairing token by displaying the pairing token on the display of the computing device.
- Example 7 includes the subject matter of any of Examples 1-6, and wherein the pairing token comprises a quick response (“QR”) code.
- QR quick response
- Example 8 includes the subject matter of any of Examples 1-7, and further including an audio device, wherein the pairing token comprises an audio signal and the pairing module is to present the pairing token by playing the pairing token using the audio device of the computing device.
- Example 9 includes a mobile computing device to authenticate a user to a content server.
- the mobile computing device includes a pairing module to (i) capture a pairing token presented by a target computing device; and (ii) determine a session ID from the pairing token, wherein the session ID identifies a communication session between the target computing device and the content server; and an authentication module to (i) to collect user credentials provided by the user; (ii) authenticate the user to the mobile computing device as a function of the user credentials; and (iii) authenticate the mobile computing device to an authentication server using the session ID.
- Example 10 includes the subject matter of Example 9, and wherein the authentication module is to authenticate the mobile computing device to the authentication server in response to successfully authenticating the user to the mobile computing device.
- Example 11 includes the subject matter of any of Examples 9 and 10, and further including a camera, wherein the pairing token comprises a two-dimensional bar code and the pairing module is to capture the pairing token using the camera.
- Example 12 includes the subject matter of any of Examples 9-11, and further including a camera, wherein the pairing token comprises a quick response (“QR”) code and the pairing module is to capture the pairing token using the camera.
- QR quick response
- Example 13 includes the subject matter of any of Examples 9-12, further including an audio sensor, wherein the pairing token comprises an audio signal, and the pairing module is to capture the pairing token using the audio sensor.
- Example 14 includes the subject matter of any of Examples 9-13, and wherein the user credentials comprise a username and a password.
- Example 15 includes the subject matter of any of Examples 9-14, and further including a user interface module to (i) present a login user interface and (ii) receive user credentials provided by the user using the login user interface.
- Example 16 includes the subject matter of any of Examples 9-15, and further including a user interface module to (i) receive a login user interface from a third-party login server, (ii) present the login user interface to the user, and (iii) receive user credentials provided by the user using the login user interface.
- a user interface module to (i) receive a login user interface from a third-party login server, (ii) present the login user interface to the user, and (iii) receive user credentials provided by the user using the login user interface.
- Example 17 includes the subject matter of any of Examples 9-16, and further including a user interface module to present a user interface to the user, wherein the user interface is to allow the user to define a level of access to personal information of the user stored on the content server.
- Example 18 includes an authentication server to authenticate a user of a mobile computing device to a content server.
- the authentication server includes an authentication module to (i) receive a session ID from the mobile computing device, wherein the session ID identifies a communication session between the content server and a target computing device, (ii) receive user credentials of the user of the mobile computing device, and (iii) authenticate the user as a function of the user credentials; and a token management module to generate an authentication token associated with the session ID in response to the user being successfully authenticated.
- Example 19 includes the subject matter of Example 18, and wherein the user credentials comprise a username and a password.
- Example 20 includes the subject matter of any of Examples 18 and 19, and wherein the authentication module is to receive user credentials of the user from the mobile computing device.
- Example 21 includes the subject matter of any of Examples 18-20, and wherein the authentication module is to validate the user credentials.
- Example 22 includes the subject matter of any of Examples 18-21, and wherein the authentication module is to authenticate the user credentials using a third-party login server.
- Example 23 includes the subject matter of any of Examples 18-22, and wherein the token management module is to generate an authentication token as a function of the session ID.
- Example 24 includes a method to authenticate a user of a mobile computing device to a content server.
- the method includes generating, on a target computing device, a pairing token using a session ID received from the content server, wherein the session ID identifies a communication session between the target computing device and the content server; presenting, from the target computing device, the pairing token to the mobile computing device; receiving, on the target computing device, an authentication token from an authentication server in response to successful authentication of the user by the mobile computing device; and accessing, with the target computing device, content on the content server using the authentication token.
- Example 25 includes the subject matter of Example 24, and wherein accessing content on the content server comprises accessing user profile information stored on the content server.
- Example 26 includes the subject matter of any of Examples 24 and 25, and further including processing, on the target computing device, the content accessed on the content server.
- Example 27 includes the subject matter of any of Examples 24-26, and wherein processing the content comprises displaying on the target computing device the content accessed on the content server.
- Example 28 includes the subject matter of any of Examples 24-27, and wherein processing the content comprises completing a purchase transaction on the target computing device.
- Example 29 includes the subject matter of any of Examples 24-28, and wherein presenting the pairing token comprises displaying a two-dimensional bar code on a display of the target computing device.
- Example 30 includes the subject matter of any of Examples 24-29, and wherein presenting the pairing token comprises displaying a quick response (“QR”) code on a display of the target computing device.
- QR quick response
- Example 31 includes the subject matter of any of Examples 24-30, and wherein presenting the pairing token comprises playing an audio signal using an audio device of the target computing device.
- Example 32 includes a device comprising a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the device to perform the method of any of Examples 24-31.
- Example 33 includes one or more machine readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a device performing the method of any of Examples 24-31.
- Example 34 includes a method to authenticate a user of a mobile computing device to a content server.
- the method includes capturing, on the mobile computing device, a pairing token presented by a target computing device; determining, on the mobile computing device, a session ID from the pairing token, wherein the session ID identifies a communication session between the target computing device and the content server; authenticating the user to the mobile computing device by collecting user credentials on the mobile computing device; and authenticating the mobile computing device to an authentication server using the session ID.
- Example 35 includes the subject matter of Example 34, and wherein capturing the pairing token comprises capturing a two-dimensional bar code using a camera of the mobile computing device.
- Example 36 includes the subject matter of any of Examples 34 and 35, and wherein capturing the pairing token comprises capturing a quick response (“QR”) code using a camera of the mobile computing device.
- QR quick response
- Example 37 includes the subject matter of any of Examples 34-36, and wherein capturing the pairing token comprises capturing an audio signal using an audio sensor of the mobile computing device.
- Example 38 includes the subject matter of any of Examples 34-37, and wherein collecting user credentials comprises collecting a username and a password.
- Example 39 includes the subject matter of any of Examples 34-38, and wherein collecting user credentials comprises presenting, on the mobile computing device, a login user interface; and receiving, with the mobile computing device, the user credentials using the login user interface.
- Example 40 includes the subject matter of any of Examples 34-39, and wherein collecting user credentials comprises receiving, on the mobile computing device, a login user interface provided by a third-party login server; presenting, on the mobile computing device, the login user interface; and receiving, with the mobile computing device, the user credentials using the login user interface.
- Example 41 includes the subject matter of any of Examples 34-40, and further including presenting, on the mobile computing device, a user interface; and allowing, with the user interface, the user to define a level of access to personal information of the user stored on the content server.
- Example 42 includes a device comprising a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the device to perform the method of any of Example s 34-41.
- Example 43 includes one or more machine readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a device performing the method of any of Examples 34-41.
- Example 44 includes a method for an authentication server to authenticate a user of a mobile computing device to a content server, the method comprising receiving, on the authentication server, a session ID from the mobile computing device, wherein the session ID identifies a communication session between the target computing device and the content server; receiving, on the authentication server, user credentials of the user of the mobile computing device; authenticating, on the authentication server, the user as a function of the user credentials; and generating, on the authentication server, an authentication token associated with the session ID in response to successfully authenticating the user.
- Example 45 includes the subject matter of Example 44, and wherein receiving the user credentials comprises receiving a username and a password.
- Example 46 includes the subject matter of any of Examples 44 and 45, and wherein receiving the user credentials comprises receiving the user credentials from the mobile computing device.
- Example 47 includes the subject matter of any of Examples 44-46, and further including validating the user credentials on the authentication server.
- Example 48 includes the subject matter of any of Examples 44-47, and wherein authenticating the user comprises authenticating the user using a third-party login server.
- Example 49 includes the subject matter of any of Examples 44-48, and wherein generating the authentication token comprises generating the authentication token as a function of the session ID.
- Example 50 includes a device comprising a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the device to perform the method of any of Examples 44-49.
- Example 51 includes one or more machine readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a device performing the method of any of Examples 44-49.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Devices and methods for authenticating a user of a mobile computing device to a content server include establishing a communication session between a target computing device and the content server that is identified by a session ID. The target computing device generates a pairing token using the session ID, which pairing token may be a two-dimensional bar code such as a quick response (“QR”) code, and presents the pairing token to the mobile computing device. The mobile computing device captures the pairing token and authenticates the user of the mobile computing device to an authentication server. The target computing device receives an authentication token from the authentication server in response to the mobile computing device successfully authenticating the user to the authentication server. The target computing device accesses content on the content server using the authentication token. Other embodiments are described and claimed.
Description
- This application is a continuation of U.S. application Ser. No. 14/660,406, filed Mar. 17, 2015, entitled “DEVICE, METHOD, AND SYSTEM FOR AUGMENTED REALITY SECURITY”, which is a continuation of U.S. application Ser. No. 13/630,655, entitled “DEVICE, METHOD, AND SYSTEM FOR AUGMENTED REALITY SECURITY,” which was filed on Sep. 28, 2012, and which issued as U.S. Pat. No. 8,990,914 on Mar. 24, 2015.
- As computing becomes more social and spans across devices, users need to authenticate themselves while using an increasing number of foreign devices. Often, those foreign devices are public, untrusted devices or are less-capable, special-purpose devices. Authenticating on such foreign devices allows the user to receive personalized services or to perform tasks using personal data. For example, a user may wish to authenticate to a friend's networked television set in order to share personal pictures or a movie; a user may wish to complete a purchase transaction using an online e-commerce identity; a user may provide personal information to a digital sign or kiosk in a retail store, in order to perform a personalized search for goods; and/or a user may log in to a website on a public computer, such as in an internet café. Of course, authenticating oneself directly on the public, untrusted device may expose the user's password, identification, and/or other personal information. For example, the public, untrusted device may have a virus or malware configured to capture and store such personal data.
- The concepts described herein is illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
-
FIG. 1 is a simplified block diagram of at least one embodiment of a system for authenticating a user of a mobile computing device to a content server; -
FIG. 2 is a simplified block diagram of at least one embodiment of an environment of a target computing device of the system ofFIG. 1 ; -
FIG. 3 is a simplified block diagram of at least one embodiment of an environment of a mobile computing device of the system ofFIG. 1 ; -
FIG. 4 is a simplified block diagram of at least one embodiment of an environment of an authentication server of the system ofFIG. 1 ; -
FIG. 5 is a simplified block diagram of at least one embodiment of an environment of a content server of the system ofFIG. 1 ; -
FIG. 6 is a simplified flow diagram of at least one embodiment of a method for authenticating a user of a mobile computing device to a content server, which may be executed by the target computing device ofFIG. 2 ; -
FIG. 7 is a simplified flow diagram of at least one embodiment of a method for authenticating a user of a mobile computing device to a content server, which may be executed by the mobile computing device ofFIG. 3 ; -
FIG. 8 is a simplified flow diagram of at least one embodiment of a method for authenticating a user of a mobile computing device to a content server, which may be executed by the authentication server ofFIG. 4 ; and -
FIG. 9 is a simplified flow diagram of at least one embodiment of a method for authenticating a user of a mobile computing device to a content server, which may be executed by the content server ofFIG. 5 . - While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific exemplary embodiments thereof have been shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the present disclosure and the appended claims.
- In the following description, numerous specific details such as logic implementations, opcodes, means to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present disclosure. It will be appreciated, however, by one skilled in the art that embodiments of the disclosure may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
- References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the invention implemented in a computer system may include one or more bus-based interconnects between components and/or one or more point-to-point interconnects between components. Embodiments of the invention may also be implemented as instructions carried by or stored on a transitory or non-transitory machine-readable (e.g., computer-readable) medium, which may be read and executed by one or more processors. A machine-readable medium may be embodied as any device, mechanism, or physical structure for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may be embodied as read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; mini- or micro-SD cards, memory sticks, electrical signals, and others.
- In the drawings, specific arrangements or orderings of schematic elements, such as those representing devices, modules, instruction blocks and data elements, may be shown for ease of description. However, it should be understood by those skilled in the art that the specific ordering or arrangement of the schematic elements in the drawings is not meant to imply that a particular order or sequence of processing, or separation of processes, is required. Further, the inclusion of a schematic element in a drawing is not meant to imply that such element is required in all embodiments or that the features represented by such element may not be included in or combined with other elements in some embodiments.
- In general, schematic elements used to represent instruction blocks may be implemented using any suitable form of machine-readable instruction, such as software or firmware applications, programs, functions, modules, routines, processes, procedures, plug-ins, applets, widgets, code fragments and/or others, and that each such instruction may be implemented using any suitable programming language, library, application programming interface (API), and/or other software development tools. For example, some embodiments may be implemented using Java, C++, and/or other programming languages. Similarly, schematic elements used to represent data or information may be implemented using any suitable electronic arrangement or structure, such as a register, data store, table, record, array, index, hash, map, tree, list, graph, file (of any file type), folder, directory, database, and/or others.
- Further, in the drawings, where connecting elements, such as solid or dashed lines or arrows, are used to illustrate a connection, relationship or association between or among two or more other schematic elements, the absence of any such connecting elements is not meant to imply that no connection, relationship or association can exist. In other words, some connections, relationships or associations between elements may not be shown in the drawings so as not to obscure the disclosure. In addition, for ease of illustration, a single connecting element may be used to represent multiple connections, relationships or associations between elements. For example, where a connecting element represents a communication of signals, data or instructions, it should be understood by those skilled in the art that such element may represent one or multiple signal paths (e.g., a bus), as may be needed, to effect the communication.
- Referring now to
FIG. 1 , in one embodiment, asystem 100 for authenticating a user comprises amobile computing device 102 controlled by the user, atarget computing device 104 to access content on thecontent server 110, anauthentication server 106 to authenticate the user, and, optionally, a third-party login server 108 to authenticate the user, all communicating over anetwork 112. To do so, as discussed in more detail below, thetarget computing device 104 is configured to establish a communication session with thecontent server 110 to generate a pairing token (not shown) using a session ID identifying the communication session. Thetarget computing device 104 presents the pairing token to themobile computing device 102, which captures the pairing token. Given the pairing token, themobile computing device 102 contacts theauthentication server 106 and optionally the third-party login server 108 over thenetwork 112 and authenticates the user. Upon successful authentication of the user, thetarget computing device 104 receives an authentication token from theauthentication server 106 over thenetwork 112. Thetarget computing device 104 uses the authentication token to access content on thecontent server 110, over thenetwork 112. - The pairing token may be embodied as a visual or audio cue, and as such may be presented and captured using standard components of the
target computing device 104 andmobile computing device 102, such as digital displays and digital cameras. Therefore, visual or audio pairing tokens may be implemented using standard, existing computing devices without requiring additional hardware components, in contrast to pairing methods using non-standard hardware, such as near-field communication (NFC) radio technology. - The
system 100 allows the user to access content without entering sensitive information such as the user's credentials directly into thetarget computing device 104, which may be untrusted and potentially compromised. Instead, the user enters all sensitive information into themobile computing device 102, which is controlled by the user and therefore usually trusted by the user. In this fashion, information security may be increased by associating physical security of themobile computing device 102 with information security and thereby exploiting humans' intuitive sense of physical security. - Additionally, the
system 100 allows the use of atarget computing device 104 that may not include a full user interface or may not include a web browser, because the user credentials are entered on the user'smobile computing device 102. For example, thetarget computing device 104 may be a digital sign or kiosk device that lacks a keyboard, or a networked television set where password entry by remote control is cumbersome. Using themobile computing device 102 to receive the user credentials makes thesystem 100 easy to use and encourages the use of longer, stronger passwords. - Referring back to
FIG. 1 , themobile computing device 102 of thesystem 100 may be embodied as any type of computing device capable of performing the functions described herein. For example, themobile computing device 102 may be embodied as, without limitation, a smart phone, a cellular telephone, a handset, a messaging device, a tablet computer, a laptop computer, a notebook computer, a mobile computing device, a multiprocessor system, a processor-based system, a consumer electronic device, and/or any other mobile computing device configured to capture the pairing token from thetarget computing device 104 and authenticate the user to theauthentication server 106. - In the illustrative embodiment of
FIG. 1 , themobile computing device 102 includes aprocessor 120, an I/O subsystem 124, amemory 126, adata storage 128, acommunication circuitry 130, and one or moreperipheral devices 132. In some embodiments, several of the foregoing components may be incorporated on a motherboard or main board of themobile computing device 102, while other components may be communicatively coupled to the motherboard via, for example, a peripheral port. Furthermore, it should be appreciated that themobile computing device 102 may include other components, sub-components, and devices commonly found in a computer and/or computing device, which are not illustrated inFIG. 1 for clarity of the description. - The
processor 120 of themobile computing device 102 may be embodied as any type of processor capable of executing software/firmware, such as a microprocessor, digital signal processor, microcontroller, or the like. Theprocessor 120 is illustratively embodied as a single core processor having aprocessor core 122. However, in other embodiments, theprocessor 120 may be embodied as a multi-core processor havingmultiple processor cores 122. Additionally, themobile computing device 102 may includeadditional processors 120 having one ormore processor cores 122. - The I/
O subsystem 124 of themobile computing device 102 may be embodied as circuitry and/or components to facilitate input/output operations with theprocessor 120 and/or other components of themobile computing device 102. In some embodiments, the I/O subsystem 124 may be embodied as a memory controller hub (MCH or “northbridge”), an input/output controller hub (ICH or “southbridge”), and a firmware device. In such embodiments, the firmware device of the I/O subsystem 124 may be embodied as a memory device for storing Basic Input/Output System (BIOS) data and/or instructions and/or other information (e.g., a BIOS driver used during booting of the mobile computing device 102). However, in other embodiments, I/O subsystems having other configurations may be used. For example, in some embodiments, the I/O subsystem 124 may be embodied as a platform controller hub (PCH). In such embodiments, the memory controller hub (MCH) may be incorporated in or otherwise associated with theprocessor 120, and theprocessor 120 may communicate directly with the memory 126 (as shown by the hashed line inFIG. 1 ). Additionally, in other embodiments, the I/O subsystem 124 may form a portion of a system-on-a-chip (SoC) and be incorporated, along with theprocessor 120 and other components of themobile computing device 102, on a single integrated circuit chip. - The
processor 120 is communicatively coupled to the I/O subsystem 124 via a number of signal paths. These signal paths (and other signal paths illustrated inFIG. 1 ) may be embodied as any type of signal paths capable of facilitating communication between the components of themobile computing device 102. For example, the signal paths may be embodied as any number of point-to-point links, wires, cables, light guides, printed circuit board traces, vias, bus, intervening devices, and/or the like. - The
memory 126 of themobile computing device 102 may be embodied as or otherwise include one or more memory devices or data storage locations including, for example, dynamic random access memory devices (DRAM), synchronous dynamic random access memory devices (SDRAM), double-data rate synchronous dynamic random access memory device (DDR SDRAM), mask read-only memory (ROM) devices, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) devices, flash memory devices, and/or other volatile and/or non-volatile memory devices. Thememory 126 is communicatively coupled to the I/O subsystem 124 via a number of signal paths. Although only asingle memory device 126 is illustrated inFIG. 1 , themobile computing device 102 may include additional memory devices in other embodiments. Various data and software may be stored in thememory 126. For example, one or more operating systems, applications, programs, libraries, and drivers that make up the software stack executed by theprocessor 120 may reside inmemory 126 during execution. - The
data storage 128 may be embodied as any type of device or devices configured for the short-term or long-term storage of data. For example, thedata storage 128 may include any one or more memory devices and circuits, memory cards, hard disk drives, solid-state drives, or other data storage devices. - The
communication circuitry 130 of themobile computing device 102 may include any number of devices and circuitry for enabling communications between themobile computing device 102 and theauthentication server 106 and third-party login server 108 over thenetwork 112 as discussed in more detail below. Thecommunication circuitry 130 may be configured to use any one or more, or combination thereof, communication protocols to communicate with thenetwork 112 such as, for example, a cellular communication protocol (e.g., Wideband Code Division Multiple Access (W-CDMA)), a wireless network communication protocol (e.g., Wi-Fi®, WiMAX), a wired network communication protocol (e.g., TCP/IP), and/or other communication protocols. - In some embodiments, the
mobile computing device 102 may also include one or moreperipheral devices 132. Suchperipheral devices 132 may include any number of additional input/output devices, interface devices, and/or other peripheral devices. For example, in some embodiments, theperipheral devices 132 may include a display, touch screen, graphics circuitry, keyboard, mouse, speaker system, and/or other input/output devices, interface devices, and/or peripheral devices. - In the illustrative embodiment, the
mobile computing device 102 also includes acamera 134 and adisplay 136. Thecamera 134 may be embodied as a digital camera or other digital imaging device integrated with themobile computing device 102. Thecamera 134 includes an electronic image sensor, such as an active-pixel sensor (APS), e.g., a complementary metal-oxide-semiconductor (CMOS) sensor, or a charge-coupled device (CCD). In the illustrative embodiment, no particular minimum image resolution is required of thecamera 134; that is, the image resolution provided by standard camera phones, as well as that of more sophisticated devices, is suitable for the purposes of the present disclosure. - The
display 136 of themobile computing device 102 may be embodied as any type of display capable of displaying digital information such as a liquid crystal display (LCD), a light emitting diode (LED), a plasma display, a cathode ray tube (CRT), or other type of display device. In some embodiments, thedisplay 136 may be coupled with a touch screen to facilitate user interaction. - In some embodiments, the
mobile computing device 102 may include anaudio sensor 138. Theaudio sensor 138 may be embodied as any sensor capable of capturing audio signals such as a microphone, a line input jack, an analog-to-digital converter (ADC), or other type of audio sensor. Theaudio sensor 138 is represented inFIG. 1 with hashed lines to indicate theaudio sensor 138 is not present in some embodiments. - The
target computing device 104 may be any type of computing device capable of performing the functions described herein. In some embodiments, the target computing device may be a less-capable device with limited modes of user interaction, such as a digital sign device, an electronic kiosk, a point-of-sale (POS) device, or the like. In alternative embodiments, the target computing device may be a more-capable computing device, such as a desktop computer, a laptop computer, a notebook computer, or a tablet computer. - The
target computing device 104 may include components substantially similar to themobile computing device 102, which have been identified inFIG. 1 with a common reference numbering scheme. As such, the description provided above of the components of themobile computing device 102 may be equally applicable to those similar components of thetarget computing device 104 and are not repeated herein so as not to obscure the present disclosure. Of course, it should be appreciated that in some embodiments themobile computing device 102 and thetarget computing device 104 may be dissimilar to each other, as discussed above. - Further, in some embodiments, the
target computing device 104 may include anaudio device 176. Theaudio device 176 may be embodied as any device capable of generating audio signals, such as a speaker, an audio transducer, a line out jack, a digital-to-analog converter (DAC), or other type of audio device. Theaudio device 176 is represented inFIG. 1 with hashed lines to indicate theaudio device 176 is not present in some embodiments. - As discussed in more detail below, the
mobile computing device 102 and thetarget computing device 104 are configured to transmit messages to theauthentication server 106, thecontent server 110, and, optionally, the third-party login server 108 over thenetwork 112. Thenetwork 112 may be embodied as any number of various wired and/or wireless networks. For example, thenetwork 112 may be embodied as or otherwise include a wired or wireless local area network (LAN), a wired or wireless wide area network (WAN), and/or a publicly-accessible, global network such as the Internet. As such, thenetwork 112 may include any number of additional devices, such as additional computers, routers, and switches, to facilitate communications between themobile computing device 102, thetarget computing device 104, theauthentication server 106, thecontent server 110, and, optionally, the third-party login server 108. - The
authentication server 106 is configured to receive authentication data from themobile computing device 102, authenticate the user, optionally using the third-party login server 108, and provide an authentication token to thetarget computing device 104, as discussed in more detail below. - The
authentication server 106 may be embodied as any type of data server (e.g., a web server) or similar computing device capable of performing the functions described herein. As such, theauthentication server 106 may include components and features similar to themobile computing device 102 and thetarget computing device 104, such as a processor, I/O subsystem, memory, data storage, communication circuitry, and various peripheral devices, which are not illustrated inFIG. 1 for clarity of the present description. - The
content server 110 is configured to establish a content session with thetarget computing device 104 and provide access to content on the device to thetarget computing device 104 in response to receiving an authentication token, as discussed in more detail below. Similar to theauthentication server 106, thecontent server 110 may be embodied as any type of data server (e.g., a web server) or similar computing device capable of performing the functions described herein. As such, the content server may include components and features similar to themobile computing device 102 and thetarget computing device 104, such as a processor, I/O subsystem, memory, data storage, communication circuitry, and various peripheral devices, which are not illustrated inFIG. 1 for clarity of the present description. Thecontent server 110 may be embodied as an independent server or computing device separate from theauthentication server 106 as shown inFIG. 1 . - The third-
party login server 108 is configured to provide third-party login services forsystem 100. Example third-party login servers may include web account providers such as Yahoo!®, or Google®, social networks such as Facebook® or Twitter®, e-commerce vendors such as Amazon®, or more generally any third-party server implementing an authorization protocol such as the OAuth authorization protocol. - Similar to the
authentication server 106 and thecontent server 110, the third-party login server 108 may be embodied as any type of data server (e.g., a web server) or similar computing device capable of performing the functions described herein. As such, the third-party login server may include components and features similar to themobile computing device 102 and thetarget computing device 104, such as a processor, I/O subsystem, memory, data storage, communication circuitry, and various peripheral devices, which are not illustrated inFIG. 1 for clarity of the present description. Third-party login server 108 may not be present in all embodiments, as indicated by its hashed outline inFIG. 1 . - Referring now to
FIG. 2 , in one embodiment, thetarget computing device 104 establishes anenvironment 200 during operation. Theillustrative embodiment 200 includes anapplication 202, apairing module 204, anauthentication module 206, and acontent management module 208. Each of thepairing module 204, theauthentication module 206, and thecontent management module 208 may be embodied as hardware, firmware, software, or a combination thereof. Theapplication 202 may be embodied as any type of software or firmware application configured to allow the user to access content provided by thecontent server 110. For example, theapplication 202 may be embodied as a point of sale application, a web browser, or a digital sign display application. - The
pairing module 204 is configured to generate a pairing token and present the pairing token to themobile computing device 102. As discussed above, the pairing token may be embodied as a visual or audio cue capable of being presented using standard components of thetarget computing device 104. - The
authentication module 206 is configured to poll theauthentication server 106 and receive an authentication token when the user has successfully authenticated. Alternatively, in some embodiments theauthentication module 206 may be included in the environment ofcontent server 110, discussed in connection withFIG. 5 , below. For example, thetarget computing device 104 may be located behind a network firewall and may be unable to contact theauthentication server 106 directly. - The
content management module 208 is configured to establish a communication session with thecontent server 110, receive a session ID identifying the communication session, and access content on thecontent server 110 using the authentication token received from theauthentication server 106. Thepairing module 204 may generate the pairing token using this session ID, as discussed in more detail below. In some embodiments, thecontent management module 208 may process content from thecontent server 110. For example, thecontent management module 208 may display the content or may complete a purchase transaction. - Referring now to
FIG. 3 , in one embodiment, themobile computing device 102 establishes anenvironment 300 during operation. Theillustrative embodiment 300 includes apairing module 302, auser interface module 304, and anauthentication module 306, each of which may be embodied as hardware, firmware, software, or a combination thereof. Thepairing module 302 is configured to capture a pairing token presented by thetarget computing device 104 and determine the session ID from the pairing token. - The
user interface module 304 may be configured to present an authentication user interface to the user. In some embodiments, theuser interface module 304 may allow the user to define access to his or her personal information. - The
authentication module 306 is configured to register themobile computing device 102 with theauthentication server 106, collect user credentials from the user, authenticate the user to themobile computing device 102 as a function of the user credentials, and authenticate themobile computing device 102 to theauthentication server 106 using the session ID. In some embodiments, theauthentication module 306 may update the user's profile, including the user's personal information. In some embodiments, theauthentication module 306 may collect user credentials and authenticate the user using the third-party login server 108. - Referring now to
FIG. 4 , in one embodiment, theauthentication server 106 establishes anenvironment 400 during operation. Theillustrative embodiment 400 includes aregistration module 402, atoken management module 404, and anauthentication module 406, each of which may be embodied as hardware, firmware, software, or a combination thereof. Theregistration module 402 is configured to register amobile computing device 102 with theauthentication server 106. - The
token management module 404 is configured to generate an authentication token associated with the session ID. In some embodiments, thetoken management module 404 may generate the authentication token as a function of the session ID. - The
authentication module 406 is configured to receive the session ID from themobile computing device 102 and to authenticate the user as a function of the user credentials. In some embodiments, theauthentication module 406 is configured to receive a username and a password from the mobile computing device. In alternative embodiments, theauthentication module 406 is configured to authenticate the user using the third-party login server 108. - Referring now to
FIG. 5 , in one embodiment, thecontent server 110 establishes anenvironment 500 during operation. Theillustrative embodiment 500 includes acontent management module 502, asession management module 504, and acontent database 506, each of which may be embodied as hardware, firmware, software, or a combination thereof. Thecontent management module 502 is configured to provide content to thetarget computing device 104 in response to receiving an authentication token. - The
session management module 504 is configured to generate a session ID to identify a communication session established between thecontent server 110 and thetarget computing device 104. As discussed above, the authentication token is associated with the session ID and in some embodiments may be a function of the session ID. Thecontent database 506 is configured to store the content data that is accessed by thetarget computing device 104 using thecontent management module 502. - Referring now to
FIG. 6 , in use, thetarget computing device 104 may execute amethod 600 for authenticating a user of themobile computing device 102 to thecontent server 110. Themethod 600 begins withblock 602, in which thetarget computing device 104 determines whether an interaction request from the user has been detected. The interaction request may include any suitable user interaction, such as pressing a button, selecting an on-screen user interface control, speaking a voice command, or otherwise. In some embodiments, the interaction request may not be express; for example, a digital sign device may be prepared to interact with any user within eyesight. - Upon the target computing device detecting an interaction request, the
method 600 advances to block 604. Inblock 604, thecontent management module 208 sets up a communication session with thecontent server 110. Content provided by thecontent server 110 may include interactive content such as web pages, media content such as music or video, payment processing information such as credit card information, personal information about the user stored on the content server, or other digital content. Inblock 606, thecontent management module 208 receives a session ID from thecontent server 110. The session ID identifies the communication session between thetarget computing device 104 and thecontent server 110. The session ID may be embodied as a numeric code, a text label, a uniform resource identifier (URI), or similar identifier. - In
block 608, thepairing module 204 generates a pairing token using the session ID. The pairing token may be embodied as any feature of the target computing device detectable by themobile computing device 102 using standard input methods. For example, in some embodiments, the pairing token may be embodied as a two-dimensional bar code such as a quick response (“QR”) code. In alternative embodiments, the pairing token may be an audio signal. - In
block 610, thepairing module 204 presents the pairing token to themobile computing device 102. In some embodiments, the pairing token is presented by displaying a two-dimensional bar code on thedisplay 174 of thetarget computing device 104. In alternative embodiments, the pairing token is presented by playing an audio signal on theaudio device 176 of thetarget computing device 104. After being presented the pairing token, themobile computing device 102 proceeds to authenticate the user as discussed in more detail below. - In
block 612, theauthentication module 206 polls theauthentication server 106 for an authentication token. The authentication token is generated by theauthentication server 106 in response to the user successfully authenticating, as described in more detail below. Atblock 614, theauthentication module 206 determines if the user has successfully authenticated. If not,method 600 loops back to block 612 to continue polling the authentication server. If the user has successfully authenticated,method 600 proceeds to block 616. Although theauthentication module 206 is embodied as polling theauthentication server 106, it should be apparent to those skilled in the art that other techniques for querying theauthentication server 106 are possible, for example, registering with the server and waiting for an asynchronous server response. - Moving on to block 616, the
content management module 208 accesses content on thecontent server 110 using the authentication token. Inblock 618, in some embodiments, thecontent management module 208 may access the user's profile information stored on the content server. By using the authentication token to access thecontent server 110, thetarget computing device 104 is not required to receive user credentials directly from the user or themobile computing device 102. - In
block 620, thecontent management module 208 processes the content from thecontent server 110. Inblock 622, processing the content may include displaying the content on adisplay 174 of thetarget computing device 104, as with audiovisual content or interactive web content. Inblock 624, processing the content may include completing a purchase transaction on thetarget computing device 104, as with payment processing content. 622 and 624 are illustrated with hashed lines to indicate they are optional.Blocks - Referring now to
FIG. 7 , in use, themobile computing device 102 may execute amethod 700 to authenticate a user of themobile computing device 102 to acontent server 110. Themethod 700 begins withblock 702, in which theregistration module 308 registers with theauthentication server 106. Registration may include establishing a user profile, including user credentials such as a username and a password. Inblock 704, in some embodiments, theregistration module 308 may update the user's profile, including updating the user's personal information. - In
block 706, thepairing module 302 determines whether an interaction with thetarget computing device 104 has occurred. If not, themethod 700 loops back to block 706 and repeats. When an interaction with thetarget computing device 104 occurs, themethod 700 advances to block 708 in which thepairing module 302 captures the pairing token presented by thetarget computing device 104. As described in more detail above in connection with 608 and 610 of theblocks method 600, the pairing token may be embodied as any feature of thetarget computing device 104 detectable by themobile computing device 102 using standard input methods. For example, in some embodiments, themobile computing device 102 may capture a two-dimensional bar code such as a quick response (“QR”) code using thecamera 134. Alternatively, in other embodiments themobile computing device 102 may capture an audio signal using theaudio sensor 138. Inblock 710, thepairing module 302 determines the session ID from the captured pairing token. That is, the session ID may be embedded in or otherwise represented by the pairing token. As described above, the session ID identifies a communication session between thetarget computing device 104 and thecontent server 110, and the pairing token is generated using the session ID. - In
block 712, theauthentication module 306 authenticates the user to themobile computing device 102. That is, the user of themobile computing device 102 inputs or otherwise supplies his or her user credentials to themobile computing device 102. For example, inblock 714, theuser interface module 304 may present an authentication user interface to the user. This authentication user interface may be a native application, a web page, a remote access application, or other user interface. The authentication user interface may be provided by theauthentication server 106 or by the third-party login server 108. Inblock 716, theuser credential module 312 may collect user credentials of the user. The user credentials may be collected using theuser interface module 304. Inblock 718, in some embodiments, the third-party provider module 314 may perform a login with the third-party login server 108. Inblock 720, theuser interface module 304 may allow the user to define access to his or her personal information. For example, the user may allow or disallow access to his or her user profile. Alternatively, the user may define an allowed level of access to the user's personal information (e.g. how much and which type of personal information is accessible). - In
block 722, theauthentication module 306 determines whether or not the user has successfully authenticated tomobile computing device 102. If not, themethod 700 loops back to block 706 and awaits another interaction with the target device. If the user has successfully authenticated to themobile computing device 102, themethod 700 advances to block 724. - In
block 724, theauthentication module 306 authenticates themobile computing device 102 to theauthentication server 106. To do so, inblock 726, thesession management module 310 sends the session ID to the authentication server. In block 728, theuser credential module 312 may send the user credentials to theauthentication server 106. Alternatively, insub-block 730, the third-party provider module may authenticate the user with the third-party login server 108. The user credentials may be embodied as a username and a password, or the user credentials may be a user identity provided by the third-party login server 108. - In
block 732, theauthentication module 306 determines whether authentication with theauthentication server 106 was successful. If authentication was not successful, themethod 700 loops back to block 712, wherein the user may attempt to re-authenticate. If authentication was successful, themethod 700 advances to block 734. - In
block 734, theuser interface module 304 may indicate to the user that the authentication process was successful. By doing so, the user is prompted to return to thetarget computing device 104. As discussed above in connection withFIG. 6 , upon successful authentication, thetarget computing device 104 will receive an authentication token from theauthentication server 106 and use the authentication token to access content on thecontent server 110. - Referring now to
FIG. 8 , in use, theauthentication server 106 may execute amethod 800 to authenticate a user of themobile computing device 102 to acontent server 110. Themethod 800 begins withblock 802, in which theauthentication server 106 waits for a registration request from themobile computing device 102. Upon receiving a registration request, themethod 800 advances to block 804, where theregistration module 402 registers themobile computing device 102 withauthentication server 106. - Following
block 804, some time may elapse as indicated by the broken line between 804 and 806. Inblocks block 806, theauthentication server 106 waits for an authentication request received frommobile computing device 102. Upon receiving an authentication request, themethod 800 advances to block 808. - In
block 808, theauthentication module 406 receives authentication data from themobile computing device 102. Inblock 810, thesession management module 408 receives the session ID. As described above, the session ID identifies a content session established between thetarget computing device 104 and thecontent server 110. Inblock 812, theuser credential module 410 may receive the user credentials. The user credentials may be a username and a password, or the user credentials may be a user identity provided by the third-party login server 108. Inblock 814, the third-party provider module 412 may receive a third-party provider preference from themobile computing device 102. The third-party provider preference may identify the appropriate third-party login server 108. - In
block 816, theauthentication module 406 authenticates the user as a function of the user credentials. Inblock 818, theauthentication module 406 validates the user credentials. User credentials may be validated by confirming that the username and password received from themobile computing device 102 are correct, such as by validating the username and password against a flat file or against a directory service such as LDAP, ActiveDirectory, or the like. Alternatively, inblock 820, the third-party provider module 412 may authenticate the user with the third-party login server 108. - In
block 822, theauthentication module 406 determines whether the user successfully authenticated. If not successfully authenticated, themethod 800 may advance tooptional block 824, where theauthentication server 106 returns an error condition to themobile computing device 102, and then themethod 800 loops back to block 806 to await another authentication request. If authentication was successful, themethod 800 advances to block 826. - In
block 826, thetoken management module 404 generates an authentication token. The authentication token is associated with the session ID. In some embodiments, the authentication token may be a function of the session ID. For example, the authentication token may be generated by cryptographically signing data including the session ID, a random number to prevent replay attacks, and additional context information. Any suitable cryptographic signature scheme may be used, for example RSA, DSA, or ElGamal. - In
block 828, thetoken management module 404 provides the authentication token to thetarget computing device 104. As described in more detail above, the target computing device may poll theauthentication server 106 repeatedly until the authentication token becomes available following successful authentication of the user. Also as described in more detail above, thetarget computing device 104 may use the authentication token to access content on thecontent server 110. - Referring now to
FIG. 9 , in use, thecontent server 110 may execute amethod 900 to authenticate a user of themobile computing device 102 to thecontent server 110. Themethod 900 begins withblock 902, where thecontent server 110 waits for a session request from thetarget computing device 104. Upon receiving a session request, themethod 900 advances to block 904. - In
block 904, thesession management module 504 generates a session ID to identify the content session between thetarget computing device 104 and thecontent server 110. Inblock 906, thesession management module 504 provides the session ID to thetarget computing device 104. As discussed in more detail above, the session ID is used to generate the pairing token passed from thetarget computing device 104 to themobile computing device 102, and is in turn used by themobile computing device 102 to authenticate the user to theauthentication server 106. - In
block 908, thecontent management module 502 determines whether an authentication token has been received from thetarget computing device 104. If not, themethod 900 continues to wait atblock 908. If an authentication token is received, themethod 900 advances to block 910. - In
block 910, thecontent management module 502 provides content to thetarget computing device 104. As discussed above, thetarget computing device 104 uses the authentication token to access the content. The content may be supplied by thecontent database 506. As discussed above, content may include interactive content, media content, payment processing content, personal information about the user, or other digital content. - While the disclosure has been illustrated and described in detail in the drawings and foregoing description, such an illustration and description is to be considered as exemplary and not restrictive in character, it being understood that only illustrative embodiments have been shown and described and that all changes and modifications consistent with the disclosure and recited claims are desired to be protected.
- Illustrative examples of the devices, systems, and methods disclosed herein are provided below. An embodiment of the devices, systems, and methods may include any one or more, and any combination of, the examples described below.
- Example 1 includes a computing device to authenticate a user to a content server. The computing device includes a pairing module to (i) generate a pairing token using a session ID received from the content server and (ii) present the pairing token to a mobile computing device controlled by the user to allow the user to authenticate to an authentication server; an authentication module to receive an authentication token from the authentication server in response to successful authentication of the user by the mobile computing device; and a content management module to access content on the content server using the authentication token.
- Example 2 includes the subject matter of Example 1, and wherein to access content on the content server comprises to access user profile information of the user.
- Example 3 includes the subject matter of any of Examples 1 and 2, and wherein the content management module is to process the content accessed from the content server.
- Example 4 includes the subject matter of any of Examples 1-3, and wherein to process the content comprises to display the content accessed from the content server.
- Example 5 includes the subject matter of any of Examples 1-4, and wherein to process the content comprises to complete a purchase transaction on the computing device.
- Example 6 includes the subject matter of any of Examples 1-5, and further including a display, wherein the pairing token comprises a two-dimensional bar code and the pairing module is to present the pairing token by displaying the pairing token on the display of the computing device.
- Example 7 includes the subject matter of any of Examples 1-6, and wherein the pairing token comprises a quick response (“QR”) code.
- Example 8 includes the subject matter of any of Examples 1-7, and further including an audio device, wherein the pairing token comprises an audio signal and the pairing module is to present the pairing token by playing the pairing token using the audio device of the computing device.
- Example 9 includes a mobile computing device to authenticate a user to a content server. The mobile computing device includes a pairing module to (i) capture a pairing token presented by a target computing device; and (ii) determine a session ID from the pairing token, wherein the session ID identifies a communication session between the target computing device and the content server; and an authentication module to (i) to collect user credentials provided by the user; (ii) authenticate the user to the mobile computing device as a function of the user credentials; and (iii) authenticate the mobile computing device to an authentication server using the session ID.
- Example 10 includes the subject matter of Example 9, and wherein the authentication module is to authenticate the mobile computing device to the authentication server in response to successfully authenticating the user to the mobile computing device.
- Example 11 includes the subject matter of any of Examples 9 and 10, and further including a camera, wherein the pairing token comprises a two-dimensional bar code and the pairing module is to capture the pairing token using the camera.
- Example 12 includes the subject matter of any of Examples 9-11, and further including a camera, wherein the pairing token comprises a quick response (“QR”) code and the pairing module is to capture the pairing token using the camera.
- Example 13 includes the subject matter of any of Examples 9-12, further including an audio sensor, wherein the pairing token comprises an audio signal, and the pairing module is to capture the pairing token using the audio sensor.
- Example 14 includes the subject matter of any of Examples 9-13, and wherein the user credentials comprise a username and a password.
- Example 15 includes the subject matter of any of Examples 9-14, and further including a user interface module to (i) present a login user interface and (ii) receive user credentials provided by the user using the login user interface.
- Example 16 includes the subject matter of any of Examples 9-15, and further including a user interface module to (i) receive a login user interface from a third-party login server, (ii) present the login user interface to the user, and (iii) receive user credentials provided by the user using the login user interface.
- Example 17 includes the subject matter of any of Examples 9-16, and further including a user interface module to present a user interface to the user, wherein the user interface is to allow the user to define a level of access to personal information of the user stored on the content server.
- Example 18 includes an authentication server to authenticate a user of a mobile computing device to a content server. The authentication server includes an authentication module to (i) receive a session ID from the mobile computing device, wherein the session ID identifies a communication session between the content server and a target computing device, (ii) receive user credentials of the user of the mobile computing device, and (iii) authenticate the user as a function of the user credentials; and a token management module to generate an authentication token associated with the session ID in response to the user being successfully authenticated.
- Example 19 includes the subject matter of Example 18, and wherein the user credentials comprise a username and a password.
- Example 20 includes the subject matter of any of Examples 18 and 19, and wherein the authentication module is to receive user credentials of the user from the mobile computing device.
- Example 21 includes the subject matter of any of Examples 18-20, and wherein the authentication module is to validate the user credentials.
- Example 22 includes the subject matter of any of Examples 18-21, and wherein the authentication module is to authenticate the user credentials using a third-party login server.
- Example 23 includes the subject matter of any of Examples 18-22, and wherein the token management module is to generate an authentication token as a function of the session ID.
- Example 24 includes a method to authenticate a user of a mobile computing device to a content server. The method includes generating, on a target computing device, a pairing token using a session ID received from the content server, wherein the session ID identifies a communication session between the target computing device and the content server; presenting, from the target computing device, the pairing token to the mobile computing device; receiving, on the target computing device, an authentication token from an authentication server in response to successful authentication of the user by the mobile computing device; and accessing, with the target computing device, content on the content server using the authentication token.
- Example 25 includes the subject matter of Example 24, and wherein accessing content on the content server comprises accessing user profile information stored on the content server.
- Example 26 includes the subject matter of any of Examples 24 and 25, and further including processing, on the target computing device, the content accessed on the content server.
- Example 27 includes the subject matter of any of Examples 24-26, and wherein processing the content comprises displaying on the target computing device the content accessed on the content server.
- Example 28 includes the subject matter of any of Examples 24-27, and wherein processing the content comprises completing a purchase transaction on the target computing device.
- Example 29 includes the subject matter of any of Examples 24-28, and wherein presenting the pairing token comprises displaying a two-dimensional bar code on a display of the target computing device.
- Example 30 includes the subject matter of any of Examples 24-29, and wherein presenting the pairing token comprises displaying a quick response (“QR”) code on a display of the target computing device.
- Example 31 includes the subject matter of any of Examples 24-30, and wherein presenting the pairing token comprises playing an audio signal using an audio device of the target computing device.
- Example 32 includes a device comprising a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the device to perform the method of any of Examples 24-31.
- Example 33 includes one or more machine readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a device performing the method of any of Examples 24-31.
- Example 34 includes a method to authenticate a user of a mobile computing device to a content server. The method includes capturing, on the mobile computing device, a pairing token presented by a target computing device; determining, on the mobile computing device, a session ID from the pairing token, wherein the session ID identifies a communication session between the target computing device and the content server; authenticating the user to the mobile computing device by collecting user credentials on the mobile computing device; and authenticating the mobile computing device to an authentication server using the session ID.
- Example 35 includes the subject matter of Example 34, and wherein capturing the pairing token comprises capturing a two-dimensional bar code using a camera of the mobile computing device.
- Example 36 includes the subject matter of any of Examples 34 and 35, and wherein capturing the pairing token comprises capturing a quick response (“QR”) code using a camera of the mobile computing device.
- Example 37 includes the subject matter of any of Examples 34-36, and wherein capturing the pairing token comprises capturing an audio signal using an audio sensor of the mobile computing device.
- Example 38 includes the subject matter of any of Examples 34-37, and wherein collecting user credentials comprises collecting a username and a password.
- Example 39 includes the subject matter of any of Examples 34-38, and wherein collecting user credentials comprises presenting, on the mobile computing device, a login user interface; and receiving, with the mobile computing device, the user credentials using the login user interface.
- Example 40 includes the subject matter of any of Examples 34-39, and wherein collecting user credentials comprises receiving, on the mobile computing device, a login user interface provided by a third-party login server; presenting, on the mobile computing device, the login user interface; and receiving, with the mobile computing device, the user credentials using the login user interface.
- Example 41 includes the subject matter of any of Examples 34-40, and further including presenting, on the mobile computing device, a user interface; and allowing, with the user interface, the user to define a level of access to personal information of the user stored on the content server.
- Example 42 includes a device comprising a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the device to perform the method of any of Example s 34-41.
- Example 43 includes one or more machine readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a device performing the method of any of Examples 34-41.
- Example 44 includes a method for an authentication server to authenticate a user of a mobile computing device to a content server, the method comprising receiving, on the authentication server, a session ID from the mobile computing device, wherein the session ID identifies a communication session between the target computing device and the content server; receiving, on the authentication server, user credentials of the user of the mobile computing device; authenticating, on the authentication server, the user as a function of the user credentials; and generating, on the authentication server, an authentication token associated with the session ID in response to successfully authenticating the user.
- Example 45 includes the subject matter of Example 44, and wherein receiving the user credentials comprises receiving a username and a password.
- Example 46 includes the subject matter of any of Examples 44 and 45, and wherein receiving the user credentials comprises receiving the user credentials from the mobile computing device.
- Example 47 includes the subject matter of any of Examples 44-46, and further including validating the user credentials on the authentication server.
- Example 48 includes the subject matter of any of Examples 44-47, and wherein authenticating the user comprises authenticating the user using a third-party login server.
- Example 49 includes the subject matter of any of Examples 44-48, and wherein generating the authentication token comprises generating the authentication token as a function of the session ID.
- Example 50 includes a device comprising a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the device to perform the method of any of Examples 44-49.
- Example 51 includes one or more machine readable storage media comprising a plurality of instructions stored thereon that in response to being executed result in a device performing the method of any of Examples 44-49.
Claims (17)
1. A target computing device to authenticate a user to a content server, the target computing device comprising:
a pairing module to (i) generate a pairing token using a session ID received from the content server and (ii) present the pairing token to a mobile computing device controlled by the user to allow the user to authenticate to an authentication server;
an authentication module to receive an authentication token from the authentication server in response to successful authentication of the user by the mobile computing device; and
a content management module to access content on the content server using the authentication token.
2. The target computing device of claim 1 , wherein to access content on the content server comprises to access user profile information of the user.
3. The target computing device of claim 1 , wherein the content management module is to process the content accessed from the content server.
4. The target computing device of claim 3 , wherein to process the content comprises to display the content accessed from the content server or to complete a purchase transaction on the target computing device.
5. The target computing device of claim 1 , further comprising a display, wherein the pairing token comprises a token selected from the group consisting of a two-dimensional bar code and a quick response (“QR”) code, and the pairing module is to present the pairing token by displaying the pairing token on the display of the target computing device.
6. The target computing device of claim 1 , further comprising an audio device, wherein the pairing token comprises an audio signal and the pairing module is to present the pairing token by playing the pairing token using the audio device of the target computing device.
7. A mobile computing device to authenticate a user to a content server, the mobile computing device comprising:
a pairing module to (i) capture a pairing token presented by a target computing device; and (ii) determine a session ID from the pairing token, wherein the session ID identifies a communication session between the target computing device and the content server; and
an authentication module to (i) to collect user credentials provided by the user; (ii) authenticate the user to the mobile computing device as a function of the user credentials; and (iii) authenticate the mobile computing device to an authentication server using the session ID.
8. The mobile computing device of claim 7 , wherein the authentication module is to authenticate the mobile computing device to the authentication server in response to successfully authenticating the user to the mobile computing device.
9. The mobile computing device of claim 7 , further comprising a camera, wherein the pairing token comprises a token selected from the group consisting of a two-dimensional bar code and a quick response (“QR”) code, and the pairing module is to capture the pairing token using the camera.
10. The mobile computing device of claim 7 , further comprising an audio sensor, wherein the pairing token comprises an audio signal, and the pairing module is to capture the pairing token using the audio sensor.
11. The mobile computing device of claim 7 , further comprising a user interface module to (i) receive a login user interface from a third-party login server, (ii) present the login user interface to the user, and (iii) receive user credentials provided by the user using the login user interface.
12. The mobile computing device of claim 7 , further comprising a user interface module to present a user interface to the user, wherein the user interface is to allow the user to define a level of access to personal information of the user stored on the content server.
13. One or more machine-readable media comprising a plurality of instructions that in response to being executed result in a target computing device:
generating, on the target computing device, a pairing token using a session ID received from a content server, wherein the session ID identifies a communication session between the target computing device and the content server;
presenting, from the target computing device, the pairing token to a mobile computing device;
receiving, on the target computing device, an authentication token from an authentication server in response to successful authentication of a user of the mobile computing device by the mobile computing device; and
accessing, with the target computing device, content on the content server using the authentication token.
14. The machine-readable media of claim 13 , wherein accessing content on the content server comprises accessing user profile information stored on the content server.
15. The machine-readable media of claim 13 , further comprising a plurality of instructions that in response to being executed result in the computing device processing, on the target computing device, the content accessed on the content server.
16. The machine-readable media of claim 15 , wherein processing the content comprises displaying on the target computing device the content accessed on the content server or completing a purchase transaction on the target computing device.
17. The machine-readable media of claim 13 , wherein presenting the pairing token comprises at least one of: displaying a two-dimensional bar code on a display of the target computing device and playing an audio signal using an audio device of the target computing device.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/215,749 US20170078879A1 (en) | 2012-09-28 | 2016-07-21 | Device, method, and system for augmented reality security |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/630,655 US8990914B2 (en) | 2012-09-28 | 2012-09-28 | Device, method, and system for augmented reality security |
| US14/660,406 US9405889B2 (en) | 2012-09-28 | 2015-03-17 | Device, method, and system for augmented reality security |
| US15/215,749 US20170078879A1 (en) | 2012-09-28 | 2016-07-21 | Device, method, and system for augmented reality security |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/660,406 Continuation US9405889B2 (en) | 2012-09-28 | 2015-03-17 | Device, method, and system for augmented reality security |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20170078879A1 true US20170078879A1 (en) | 2017-03-16 |
Family
ID=50386598
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/630,655 Expired - Fee Related US8990914B2 (en) | 2012-09-28 | 2012-09-28 | Device, method, and system for augmented reality security |
| US14/660,406 Active US9405889B2 (en) | 2012-09-28 | 2015-03-17 | Device, method, and system for augmented reality security |
| US15/215,749 Abandoned US20170078879A1 (en) | 2012-09-28 | 2016-07-21 | Device, method, and system for augmented reality security |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/630,655 Expired - Fee Related US8990914B2 (en) | 2012-09-28 | 2012-09-28 | Device, method, and system for augmented reality security |
| US14/660,406 Active US9405889B2 (en) | 2012-09-28 | 2015-03-17 | Device, method, and system for augmented reality security |
Country Status (1)
| Country | Link |
|---|---|
| US (3) | US8990914B2 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108540332A (en) * | 2018-05-18 | 2018-09-14 | 广东赛诺梵信息技术有限公司 | Intelligent dongle |
| CN110572388A (en) * | 2019-09-05 | 2019-12-13 | 北京宝兰德软件股份有限公司 | method for connecting unified authentication server and unified authentication adapter |
| US11282066B1 (en) * | 2019-01-18 | 2022-03-22 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
| US11893551B2 (en) | 2021-04-15 | 2024-02-06 | Bank Of America Corporation | Information security system and method for augmented reality check generation |
Families Citing this family (297)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
| US9244769B2 (en) | 2010-09-28 | 2016-01-26 | Pure Storage, Inc. | Offset protection data in a RAID array |
| US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
| US11636031B2 (en) | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
| US11032259B1 (en) | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
| US9741033B2 (en) * | 2012-12-31 | 2017-08-22 | Piyush Bhatnagar | System and method for point of sale payment data credentials management using out-of-band authentication |
| US9412283B2 (en) * | 2012-12-31 | 2016-08-09 | Piyush Bhatnagar | System, design and process for easy to use credentials management for online accounts using out-of-band authentication |
| US9741265B2 (en) * | 2012-12-31 | 2017-08-22 | Piyush Bhatnagar | System, design and process for secure documents credentials management using out-of-band authentication |
| US9742766B2 (en) * | 2012-12-31 | 2017-08-22 | Piyush Bhatnagar | System, design and process for easy to use credentials management for accessing online portals using out-of-band authentication |
| US9436720B2 (en) | 2013-01-10 | 2016-09-06 | Pure Storage, Inc. | Safety for volume operations |
| US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
| US9035771B2 (en) | 2013-01-31 | 2015-05-19 | Wal-Mart Stores, Inc. | Theft detection system |
| US9124582B2 (en) * | 2013-02-20 | 2015-09-01 | Fmr Llc | Mobile security fob |
| US9356918B2 (en) * | 2013-03-13 | 2016-05-31 | Google Inc. | Identification delegation for devices |
| WO2015002745A1 (en) | 2013-07-01 | 2015-01-08 | Nike Innovate C.V. | Wireless initialization of electronic devices for first time use |
| US11630585B1 (en) | 2016-08-25 | 2023-04-18 | Pure Storage, Inc. | Processing evacuation events in a storage array that includes a plurality of storage devices |
| US20150244704A1 (en) * | 2014-02-27 | 2015-08-27 | Netapp, Inc. | Techniques to authenticate user requests involving multiple applications |
| US20150288667A1 (en) * | 2014-04-08 | 2015-10-08 | Samsung Electronics Co., Ltd. | Apparatus for sharing a session key between devices and method thereof |
| US9779268B1 (en) | 2014-06-03 | 2017-10-03 | Pure Storage, Inc. | Utilizing a non-repeating identifier to encrypt data |
| WO2016003419A1 (en) * | 2014-06-30 | 2016-01-07 | Nuance Communications, Inc. | Mobile device for speech input and text delivery |
| US9679152B1 (en) | 2014-07-24 | 2017-06-13 | Wells Fargo Bank, N.A. | Augmented reality security access |
| US9477852B1 (en) | 2014-07-24 | 2016-10-25 | Wells Fargo Bank, N.A. | Augmented reality numberless transaction card |
| US12175076B2 (en) | 2014-09-08 | 2024-12-24 | Pure Storage, Inc. | Projecting capacity utilization for snapshots |
| US9489132B2 (en) | 2014-10-07 | 2016-11-08 | Pure Storage, Inc. | Utilizing unmapped and unknown states in a replicated storage system |
| CN105578461B (en) | 2014-11-10 | 2019-08-02 | 阿里巴巴集团控股有限公司 | Communication, communication access/call-out method, apparatus and system are established between mobile terminal |
| FR3030083B1 (en) | 2014-12-12 | 2017-07-14 | Cie Ind Et Financiere D'ingenierie Ingenico | METHOD FOR AUTHENTICATING A USER, SERVER, COMMUNICATION TERMINAL AND CORRESPONDING PROGRAMS |
| US9716755B2 (en) | 2015-05-26 | 2017-07-25 | Pure Storage, Inc. | Providing cloud storage array services by a local storage array in a data center |
| US11102298B1 (en) | 2015-05-26 | 2021-08-24 | Pure Storage, Inc. | Locally providing cloud storage services for fleet management |
| US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
| US9300660B1 (en) | 2015-05-29 | 2016-03-29 | Pure Storage, Inc. | Providing authorization and authentication in a cloud for a user of a storage array |
| US10021170B2 (en) | 2015-05-29 | 2018-07-10 | Pure Storage, Inc. | Managing a storage array using client-side services |
| US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
| US9444822B1 (en) * | 2015-05-29 | 2016-09-13 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
| US10063540B2 (en) | 2015-06-07 | 2018-08-28 | Apple Inc. | Trusted status transfer between associated devices |
| US9588691B2 (en) | 2015-06-10 | 2017-03-07 | Pure Storage, Inc. | Dynamically managing control information in a storage device |
| US9594512B1 (en) | 2015-06-19 | 2017-03-14 | Pure Storage, Inc. | Attributing consumed storage capacity among entities storing data in a storage array |
| US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
| US10296236B2 (en) | 2015-07-01 | 2019-05-21 | Pure Storage, Inc. | Offloading device management responsibilities from a storage device in an array of storage devices |
| US9892071B2 (en) | 2015-08-03 | 2018-02-13 | Pure Storage, Inc. | Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array |
| US9851762B1 (en) | 2015-08-06 | 2017-12-26 | Pure Storage, Inc. | Compliant printed circuit board (‘PCB’) within an enclosure |
| US11294588B1 (en) | 2015-08-24 | 2022-04-05 | Pure Storage, Inc. | Placing data within a storage device |
| US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
| US10198194B2 (en) | 2015-08-24 | 2019-02-05 | Pure Storage, Inc. | Placing data within a storage device of a flash array |
| US11625181B1 (en) | 2015-08-24 | 2023-04-11 | Pure Storage, Inc. | Data tiering using snapshots |
| US11153319B2 (en) * | 2015-10-21 | 2021-10-19 | Okta, Inc. | Flexible implementation of user lifecycle events for applications of an enterprise |
| US10514978B1 (en) | 2015-10-23 | 2019-12-24 | Pure Storage, Inc. | Automatic deployment of corrective measures for storage arrays |
| US9384082B1 (en) | 2015-10-23 | 2016-07-05 | Pure Storage, Inc. | Proactively providing corrective measures for storage arrays |
| US11360844B1 (en) | 2015-10-23 | 2022-06-14 | Pure Storage, Inc. | Recovery of a container storage provider |
| US10284232B2 (en) | 2015-10-28 | 2019-05-07 | Pure Storage, Inc. | Dynamic error processing in a storage device |
| US10374868B2 (en) | 2015-10-29 | 2019-08-06 | Pure Storage, Inc. | Distributed command processing in a flash storage system |
| US9740414B2 (en) | 2015-10-29 | 2017-08-22 | Pure Storage, Inc. | Optimizing copy operations |
| US10353777B2 (en) | 2015-10-30 | 2019-07-16 | Pure Storage, Inc. | Ensuring crash-safe forward progress of a system configuration update |
| US12182014B2 (en) | 2015-11-02 | 2024-12-31 | Pure Storage, Inc. | Cost effective storage management |
| US9760479B2 (en) | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
| US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
| US10326836B2 (en) | 2015-12-08 | 2019-06-18 | Pure Storage, Inc. | Partially replicating a snapshot between storage systems |
| US11616834B2 (en) | 2015-12-08 | 2023-03-28 | Pure Storage, Inc. | Efficient replication of a dataset to the cloud |
| US11347697B1 (en) | 2015-12-15 | 2022-05-31 | Pure Storage, Inc. | Proactively optimizing a storage system |
| US10162835B2 (en) | 2015-12-15 | 2018-12-25 | Pure Storage, Inc. | Proactive management of a plurality of storage arrays in a multi-array system |
| US10346043B2 (en) | 2015-12-28 | 2019-07-09 | Pure Storage, Inc. | Adaptive computing for data compression |
| US9886314B2 (en) | 2016-01-28 | 2018-02-06 | Pure Storage, Inc. | Placing workloads in a multi-array system |
| US12253990B2 (en) | 2016-02-11 | 2025-03-18 | Pure Storage, Inc. | Tier-specific data compression |
| US9760297B2 (en) | 2016-02-12 | 2017-09-12 | Pure Storage, Inc. | Managing input/output (‘I/O’) queues in a data storage system |
| US11995315B2 (en) | 2016-03-16 | 2024-05-28 | Pure Storage, Inc. | Converting data formats in a storage system |
| US9959043B2 (en) | 2016-03-16 | 2018-05-01 | Pure Storage, Inc. | Performing a non-disruptive upgrade of data in a storage system |
| US9841921B2 (en) | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
| US11809727B1 (en) | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
| US11112990B1 (en) | 2016-04-27 | 2021-09-07 | Pure Storage, Inc. | Managing storage device evacuation |
| US9811264B1 (en) | 2016-04-28 | 2017-11-07 | Pure Storage, Inc. | Deploying client-specific applications in a storage system utilizing redundant system resources |
| US10303390B1 (en) | 2016-05-02 | 2019-05-28 | Pure Storage, Inc. | Resolving fingerprint collisions in flash storage system |
| US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
| US9507532B1 (en) | 2016-05-20 | 2016-11-29 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices |
| US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
| US10452310B1 (en) | 2016-07-13 | 2019-10-22 | Pure Storage, Inc. | Validating cabling for storage component admission to a storage array |
| US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
| US10459652B2 (en) | 2016-07-27 | 2019-10-29 | Pure Storage, Inc. | Evacuating blades in a storage array that includes a plurality of blades |
| US10474363B1 (en) | 2016-07-29 | 2019-11-12 | Pure Storage, Inc. | Space reporting in a storage system |
| US10146585B2 (en) | 2016-09-07 | 2018-12-04 | Pure Storage, Inc. | Ensuring the fair utilization of system resources using workload based, time-independent scheduling |
| US10908966B1 (en) | 2016-09-07 | 2021-02-02 | Pure Storage, Inc. | Adapting target service times in a storage system |
| US11481261B1 (en) | 2016-09-07 | 2022-10-25 | Pure Storage, Inc. | Preventing extended latency in a storage system |
| US10671439B1 (en) | 2016-09-07 | 2020-06-02 | Pure Storage, Inc. | Workload planning with quality-of-service (‘QOS’) integration |
| US11960348B2 (en) | 2016-09-07 | 2024-04-16 | Pure Storage, Inc. | Cloud-based monitoring of hardware components in a fleet of storage systems |
| US10331588B2 (en) | 2016-09-07 | 2019-06-25 | Pure Storage, Inc. | Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling |
| US11531577B1 (en) | 2016-09-07 | 2022-12-20 | Pure Storage, Inc. | Temporarily limiting access to a storage device |
| US11886922B2 (en) | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
| US12461803B2 (en) | 2016-09-07 | 2025-11-04 | Pure Storage, Inc. | Determining remaining hardware life in a storage device |
| US10235229B1 (en) | 2016-09-07 | 2019-03-19 | Pure Storage, Inc. | Rehabilitating storage devices in a storage array that includes a plurality of storage devices |
| US11379132B1 (en) | 2016-10-20 | 2022-07-05 | Pure Storage, Inc. | Correlating medical sensor data |
| US12405735B2 (en) | 2016-10-20 | 2025-09-02 | Pure Storage, Inc. | Configuring storage systems based on storage utilization patterns |
| US10007459B2 (en) | 2016-10-20 | 2018-06-26 | Pure Storage, Inc. | Performance tuning in a storage system that includes one or more storage devices |
| US10212157B2 (en) | 2016-11-16 | 2019-02-19 | Bank Of America Corporation | Facilitating digital data transfers using augmented reality display devices |
| US10158634B2 (en) | 2016-11-16 | 2018-12-18 | Bank Of America Corporation | Remote document execution and network transfer using augmented reality display devices |
| US11620075B2 (en) | 2016-11-22 | 2023-04-04 | Pure Storage, Inc. | Providing application aware storage |
| US10162566B2 (en) | 2016-11-22 | 2018-12-25 | Pure Storage, Inc. | Accumulating application-level statistics in a storage system |
| US10943229B2 (en) | 2016-11-29 | 2021-03-09 | Bank Of America Corporation | Augmented reality headset and digital wallet |
| US10685386B2 (en) | 2016-11-30 | 2020-06-16 | Bank Of America Corporation | Virtual assessments using augmented reality user devices |
| US10339583B2 (en) | 2016-11-30 | 2019-07-02 | Bank Of America Corporation | Object recognition and analysis using augmented reality user devices |
| US10600111B2 (en) | 2016-11-30 | 2020-03-24 | Bank Of America Corporation | Geolocation notifications using augmented reality user devices |
| US10607230B2 (en) | 2016-12-02 | 2020-03-31 | Bank Of America Corporation | Augmented reality dynamic authentication for electronic transactions |
| US10586220B2 (en) | 2016-12-02 | 2020-03-10 | Bank Of America Corporation | Augmented reality dynamic authentication |
| US10481862B2 (en) | 2016-12-02 | 2019-11-19 | Bank Of America Corporation | Facilitating network security analysis using virtual reality display devices |
| US10311223B2 (en) | 2016-12-02 | 2019-06-04 | Bank Of America Corporation | Virtual reality dynamic authentication |
| US10109096B2 (en) | 2016-12-08 | 2018-10-23 | Bank Of America Corporation | Facilitating dynamic across-network location determination using augmented reality display devices |
| US10109095B2 (en) | 2016-12-08 | 2018-10-23 | Bank Of America Corporation | Facilitating dynamic across-network location determination using augmented reality display devices |
| US10210767B2 (en) | 2016-12-13 | 2019-02-19 | Bank Of America Corporation | Real world gamification using augmented reality user devices |
| US10217375B2 (en) | 2016-12-13 | 2019-02-26 | Bank Of America Corporation | Virtual behavior training using augmented reality user devices |
| US10198205B1 (en) | 2016-12-19 | 2019-02-05 | Pure Storage, Inc. | Dynamically adjusting a number of storage devices utilized to simultaneously service write operations |
| US11461273B1 (en) | 2016-12-20 | 2022-10-04 | Pure Storage, Inc. | Modifying storage distribution in a storage system that includes one or more storage devices |
| US10489307B2 (en) | 2017-01-05 | 2019-11-26 | Pure Storage, Inc. | Periodically re-encrypting user data stored on a storage device |
| US12282436B2 (en) | 2017-01-05 | 2025-04-22 | Pure Storage, Inc. | Instant rekey in a storage system |
| US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
| CN106850592B (en) * | 2017-01-13 | 2018-11-16 | 咪咕视讯科技有限公司 | A kind of information processing method, server and terminal |
| US11340800B1 (en) | 2017-01-19 | 2022-05-24 | Pure Storage, Inc. | Content masking in a storage system |
| US10503700B1 (en) | 2017-01-19 | 2019-12-10 | Pure Storage, Inc. | On-demand content filtering of snapshots within a storage system |
| US11163624B2 (en) | 2017-01-27 | 2021-11-02 | Pure Storage, Inc. | Dynamically adjusting an amount of log data generated for a storage system |
| US12056383B2 (en) | 2017-03-10 | 2024-08-06 | Pure Storage, Inc. | Edge management service |
| US12411739B2 (en) | 2017-03-10 | 2025-09-09 | Pure Storage, Inc. | Initiating recovery actions when a dataset ceases to be synchronously replicated across a set of storage systems |
| US12348583B2 (en) | 2017-03-10 | 2025-07-01 | Pure Storage, Inc. | Replication utilizing cloud-based storage systems |
| US11442825B2 (en) | 2017-03-10 | 2022-09-13 | Pure Storage, Inc. | Establishing a synchronous replication relationship between two or more storage systems |
| US11675520B2 (en) | 2017-03-10 | 2023-06-13 | Pure Storage, Inc. | Application replication among storage systems synchronously replicating a dataset |
| US11089105B1 (en) | 2017-12-14 | 2021-08-10 | Pure Storage, Inc. | Synchronously replicating datasets in cloud-based storage systems |
| US10454810B1 (en) | 2017-03-10 | 2019-10-22 | Pure Storage, Inc. | Managing host definitions across a plurality of storage systems |
| US11941279B2 (en) | 2017-03-10 | 2024-03-26 | Pure Storage, Inc. | Data path virtualization |
| US11803453B1 (en) | 2017-03-10 | 2023-10-31 | Pure Storage, Inc. | Using host connectivity states to avoid queuing I/O requests |
| US11169727B1 (en) | 2017-03-10 | 2021-11-09 | Pure Storage, Inc. | Synchronous replication between storage systems with virtualized storage |
| US10521344B1 (en) | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
| US10503427B2 (en) | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
| US10459664B1 (en) | 2017-04-10 | 2019-10-29 | Pure Storage, Inc. | Virtualized copy-by-reference |
| US9910618B1 (en) | 2017-04-10 | 2018-03-06 | Pure Storage, Inc. | Migrating applications executing on a storage system |
| US11868629B1 (en) | 2017-05-05 | 2024-01-09 | Pure Storage, Inc. | Storage system sizing service |
| US11442669B1 (en) | 2018-03-15 | 2022-09-13 | Pure Storage, Inc. | Orchestrating a virtual storage system |
| US10613791B2 (en) | 2017-06-12 | 2020-04-07 | Pure Storage, Inc. | Portable snapshot replication between storage systems |
| US11016824B1 (en) | 2017-06-12 | 2021-05-25 | Pure Storage, Inc. | Event identification with out-of-order reporting in a cloud-based environment |
| US11989429B1 (en) | 2017-06-12 | 2024-05-21 | Pure Storage, Inc. | Recommending changes to a storage system |
| CN116431072A (en) | 2017-06-12 | 2023-07-14 | 净睿存储股份有限公司 | Accessible fast durable storage integrated into mass storage device |
| US12086650B2 (en) | 2017-06-12 | 2024-09-10 | Pure Storage, Inc. | Workload placement based on carbon emissions |
| US10976962B2 (en) | 2018-03-15 | 2021-04-13 | Pure Storage, Inc. | Servicing I/O operations in a cloud-based storage system |
| US11422731B1 (en) | 2017-06-12 | 2022-08-23 | Pure Storage, Inc. | Metadata-based replication of a dataset |
| US12086651B2 (en) | 2017-06-12 | 2024-09-10 | Pure Storage, Inc. | Migrating workloads using active disaster recovery |
| US11592991B2 (en) | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
| US11609718B1 (en) | 2017-06-12 | 2023-03-21 | Pure Storage, Inc. | Identifying valid data after a storage system recovery |
| US10417092B2 (en) | 2017-09-07 | 2019-09-17 | Pure Storage, Inc. | Incremental RAID stripe update parity calculation |
| US10853148B1 (en) | 2017-06-12 | 2020-12-01 | Pure Storage, Inc. | Migrating workloads between a plurality of execution environments |
| US11593036B2 (en) | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging data within a unified storage element |
| US12061822B1 (en) | 2017-06-12 | 2024-08-13 | Pure Storage, Inc. | Utilizing volume-level policies in a storage system |
| US10552090B2 (en) | 2017-09-07 | 2020-02-04 | Pure Storage, Inc. | Solid state drives with multiple types of addressable memory |
| US10884636B1 (en) | 2017-06-12 | 2021-01-05 | Pure Storage, Inc. | Presenting workload performance in a storage system |
| US11210133B1 (en) | 2017-06-12 | 2021-12-28 | Pure Storage, Inc. | Workload mobility between disparate execution environments |
| US12229405B2 (en) | 2017-06-12 | 2025-02-18 | Pure Storage, Inc. | Application-aware management of a storage system |
| US11340939B1 (en) | 2017-06-12 | 2022-05-24 | Pure Storage, Inc. | Application-aware analytics for storage systems |
| CN107483715B (en) * | 2017-07-04 | 2021-03-02 | 上海小蚁科技有限公司 | Method and system for communication between terminal and equipment, terminal and storage medium |
| US11561714B1 (en) | 2017-07-05 | 2023-01-24 | Pure Storage, Inc. | Storage efficiency driven migration |
| US11477280B1 (en) | 2017-07-26 | 2022-10-18 | Pure Storage, Inc. | Integrating cloud storage services |
| FR3070516B1 (en) * | 2017-08-22 | 2019-09-13 | Evidian | METHOD FOR AUTHENTICATING A USER FROM AN AUTHENTICATION SERVER |
| US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
| US10452444B1 (en) | 2017-10-19 | 2019-10-22 | Pure Storage, Inc. | Storage system with compute resources and shared storage resources |
| US11494692B1 (en) | 2018-03-26 | 2022-11-08 | Pure Storage, Inc. | Hyperscale artificial intelligence and machine learning infrastructure |
| US12067466B2 (en) | 2017-10-19 | 2024-08-20 | Pure Storage, Inc. | Artificial intelligence and machine learning hyperscale infrastructure |
| US10360214B2 (en) | 2017-10-19 | 2019-07-23 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
| US11861423B1 (en) | 2017-10-19 | 2024-01-02 | Pure Storage, Inc. | Accelerating artificial intelligence (‘AI’) workflows |
| US11455168B1 (en) | 2017-10-19 | 2022-09-27 | Pure Storage, Inc. | Batch building for deep learning training workloads |
| US10671434B1 (en) | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Storage based artificial intelligence infrastructure |
| US10671494B1 (en) | 2017-11-01 | 2020-06-02 | Pure Storage, Inc. | Consistent selection of replicated datasets during storage system recovery |
| US10484174B1 (en) | 2017-11-01 | 2019-11-19 | Pure Storage, Inc. | Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices |
| US10509581B1 (en) | 2017-11-01 | 2019-12-17 | Pure Storage, Inc. | Maintaining write consistency in a multi-threaded storage system |
| US10817392B1 (en) | 2017-11-01 | 2020-10-27 | Pure Storage, Inc. | Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices |
| US10467107B1 (en) | 2017-11-01 | 2019-11-05 | Pure Storage, Inc. | Maintaining metadata resiliency among storage device failures |
| US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
| US10990282B1 (en) | 2017-11-28 | 2021-04-27 | Pure Storage, Inc. | Hybrid data tiering with cloud storage |
| US12393332B2 (en) | 2017-11-28 | 2025-08-19 | Pure Storage, Inc. | Providing storage services and managing a pool of storage resources |
| US10936238B2 (en) | 2017-11-28 | 2021-03-02 | Pure Storage, Inc. | Hybrid data tiering |
| US10795598B1 (en) | 2017-12-07 | 2020-10-06 | Pure Storage, Inc. | Volume migration for storage systems synchronously replicating a dataset |
| US11036677B1 (en) | 2017-12-14 | 2021-06-15 | Pure Storage, Inc. | Replicated data integrity |
| US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
| US10992533B1 (en) | 2018-01-30 | 2021-04-27 | Pure Storage, Inc. | Policy based path management |
| US10521151B1 (en) | 2018-03-05 | 2019-12-31 | Pure Storage, Inc. | Determining effective space utilization in a storage system |
| US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
| US11972134B2 (en) | 2018-03-05 | 2024-04-30 | Pure Storage, Inc. | Resource utilization using normalized input/output (‘I/O’) operations |
| US11861170B2 (en) | 2018-03-05 | 2024-01-02 | Pure Storage, Inc. | Sizing resources for a replication target |
| US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
| US10489653B2 (en) | 2018-03-07 | 2019-11-26 | Capital One Services, Llc | Systems and methods for personalized augmented reality view |
| US10095929B1 (en) * | 2018-03-07 | 2018-10-09 | Capital One Services, Llc | Systems and methods for augmented reality view |
| US10296258B1 (en) | 2018-03-09 | 2019-05-21 | Pure Storage, Inc. | Offloading data storage to a decentralized storage network |
| US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
| US12066900B2 (en) | 2018-03-15 | 2024-08-20 | Pure Storage, Inc. | Managing disaster recovery to cloud computing environment |
| US10917471B1 (en) | 2018-03-15 | 2021-02-09 | Pure Storage, Inc. | Active membership in a cloud-based storage system |
| US10924548B1 (en) | 2018-03-15 | 2021-02-16 | Pure Storage, Inc. | Symmetric storage using a cloud-based storage system |
| US11288138B1 (en) | 2018-03-15 | 2022-03-29 | Pure Storage, Inc. | Recovery from a system fault in a cloud-based storage system |
| US11210009B1 (en) | 2018-03-15 | 2021-12-28 | Pure Storage, Inc. | Staging data in a cloud-based storage system |
| US11095706B1 (en) | 2018-03-21 | 2021-08-17 | Pure Storage, Inc. | Secure cloud-based storage system management |
| US11171950B1 (en) | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
| US10838833B1 (en) | 2018-03-26 | 2020-11-17 | Pure Storage, Inc. | Providing for high availability in a data analytics pipeline without replicas |
| US11436344B1 (en) | 2018-04-24 | 2022-09-06 | Pure Storage, Inc. | Secure encryption in deduplication cluster |
| US11392553B1 (en) | 2018-04-24 | 2022-07-19 | Pure Storage, Inc. | Remote data management |
| US12181981B1 (en) | 2018-05-21 | 2024-12-31 | Pure Storage, Inc. | Asynchronously protecting a synchronously replicated dataset |
| US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
| US10992598B2 (en) | 2018-05-21 | 2021-04-27 | Pure Storage, Inc. | Synchronously replicating when a mediation service becomes unavailable |
| US12086431B1 (en) | 2018-05-21 | 2024-09-10 | Pure Storage, Inc. | Selective communication protocol layering for synchronous replication |
| US11675503B1 (en) | 2018-05-21 | 2023-06-13 | Pure Storage, Inc. | Role-based data access |
| US11455409B2 (en) | 2018-05-21 | 2022-09-27 | Pure Storage, Inc. | Storage layer data obfuscation |
| US10871922B2 (en) | 2018-05-22 | 2020-12-22 | Pure Storage, Inc. | Integrated storage management between storage systems and container orchestrators |
| AU2019277064B2 (en) | 2018-05-29 | 2025-02-06 | SentiAR, Inc. | Disposable sticker within augmented reality environment |
| US11416298B1 (en) | 2018-07-20 | 2022-08-16 | Pure Storage, Inc. | Providing application-specific storage by a storage system |
| US11403000B1 (en) | 2018-07-20 | 2022-08-02 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
| US11632360B1 (en) | 2018-07-24 | 2023-04-18 | Pure Storage, Inc. | Remote access to a storage device |
| US11954238B1 (en) | 2018-07-24 | 2024-04-09 | Pure Storage, Inc. | Role-based access control for a storage system |
| US11146564B1 (en) | 2018-07-24 | 2021-10-12 | Pure Storage, Inc. | Login authentication in a cloud storage platform |
| US11860820B1 (en) | 2018-09-11 | 2024-01-02 | Pure Storage, Inc. | Processing data through a storage system in a data pipeline |
| US11138085B2 (en) * | 2018-10-09 | 2021-10-05 | Argo AI, LLC | Execution sequence integrity monitoring system |
| US11144375B2 (en) | 2018-10-09 | 2021-10-12 | Argo AI, LLC | Execution sequence integrity parameter monitoring system |
| US12026381B2 (en) | 2018-10-26 | 2024-07-02 | Pure Storage, Inc. | Preserving identities and policies across replication |
| US10671302B1 (en) | 2018-10-26 | 2020-06-02 | Pure Storage, Inc. | Applying a rate limit across a plurality of storage systems |
| US11340837B1 (en) | 2018-11-18 | 2022-05-24 | Pure Storage, Inc. | Storage system management via a remote console |
| US10963189B1 (en) | 2018-11-18 | 2021-03-30 | Pure Storage, Inc. | Coalescing write operations in a cloud-based storage system |
| US11526405B1 (en) | 2018-11-18 | 2022-12-13 | Pure Storage, Inc. | Cloud-based disaster recovery |
| US12026061B1 (en) | 2018-11-18 | 2024-07-02 | Pure Storage, Inc. | Restoring a cloud-based storage system to a selected state |
| US11379254B1 (en) | 2018-11-18 | 2022-07-05 | Pure Storage, Inc. | Dynamic configuration of a cloud-based storage system |
| US12026060B1 (en) | 2018-11-18 | 2024-07-02 | Pure Storage, Inc. | Reverting between codified states in a cloud-based storage system |
| US11650749B1 (en) | 2018-12-17 | 2023-05-16 | Pure Storage, Inc. | Controlling access to sensitive data in a shared dataset |
| US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
| US11588633B1 (en) | 2019-03-15 | 2023-02-21 | Pure Storage, Inc. | Decommissioning keys in a decryption storage system |
| US11042452B1 (en) | 2019-03-20 | 2021-06-22 | Pure Storage, Inc. | Storage system data recovery using data recovery as a service |
| US11221778B1 (en) | 2019-04-02 | 2022-01-11 | Pure Storage, Inc. | Preparing data for deduplication |
| US11068162B1 (en) | 2019-04-09 | 2021-07-20 | Pure Storage, Inc. | Storage management in a cloud data store |
| US11126364B2 (en) | 2019-07-18 | 2021-09-21 | Pure Storage, Inc. | Virtual storage system architecture |
| US11392555B2 (en) | 2019-05-15 | 2022-07-19 | Pure Storage, Inc. | Cloud-based file services |
| US11853266B2 (en) | 2019-05-15 | 2023-12-26 | Pure Storage, Inc. | Providing a file system in a cloud environment |
| US11327676B1 (en) | 2019-07-18 | 2022-05-10 | Pure Storage, Inc. | Predictive data streaming in a virtual storage system |
| US11210932B2 (en) | 2019-05-21 | 2021-12-28 | Apple Inc. | Discovery of and connection to remote devices |
| US12001355B1 (en) | 2019-05-24 | 2024-06-04 | Pure Storage, Inc. | Chunked memory efficient storage data transfers |
| US11526408B2 (en) | 2019-07-18 | 2022-12-13 | Pure Storage, Inc. | Data recovery in a virtual storage system |
| US12353364B2 (en) | 2019-07-18 | 2025-07-08 | Pure Storage, Inc. | Providing block-based storage |
| US11861221B1 (en) | 2019-07-18 | 2024-01-02 | Pure Storage, Inc. | Providing scalable and reliable container-based storage services |
| US11487715B1 (en) | 2019-07-18 | 2022-11-01 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
| US12254199B2 (en) | 2019-07-18 | 2025-03-18 | Pure Storage, Inc. | Declarative provisioning of storage |
| US11797197B1 (en) | 2019-07-18 | 2023-10-24 | Pure Storage, Inc. | Dynamic scaling of a virtual storage system |
| US11093139B1 (en) | 2019-07-18 | 2021-08-17 | Pure Storage, Inc. | Durably storing data within a virtual storage system |
| US11422751B2 (en) | 2019-07-18 | 2022-08-23 | Pure Storage, Inc. | Creating a virtual storage system |
| US11086553B1 (en) | 2019-08-28 | 2021-08-10 | Pure Storage, Inc. | Tiering duplicated objects in a cloud-based object store |
| US11693713B1 (en) | 2019-09-04 | 2023-07-04 | Pure Storage, Inc. | Self-tuning clusters for resilient microservices |
| US11797569B2 (en) | 2019-09-13 | 2023-10-24 | Pure Storage, Inc. | Configurable data replication |
| US12045252B2 (en) | 2019-09-13 | 2024-07-23 | Pure Storage, Inc. | Providing quality of service (QoS) for replicating datasets |
| US12166820B2 (en) | 2019-09-13 | 2024-12-10 | Pure Storage, Inc. | Replicating multiple storage systems utilizing coordinated snapshots |
| US11625416B1 (en) | 2019-09-13 | 2023-04-11 | Pure Storage, Inc. | Uniform model for distinct types of data replication |
| US11573864B1 (en) | 2019-09-16 | 2023-02-07 | Pure Storage, Inc. | Automating database management in a storage system |
| US11669386B1 (en) | 2019-10-08 | 2023-06-06 | Pure Storage, Inc. | Managing an application's resource stack |
| CN111193708A (en) * | 2019-11-29 | 2020-05-22 | 云深互联(北京)科技有限公司 | Code scanning login method and device based on enterprise browser |
| US11930112B1 (en) | 2019-12-06 | 2024-03-12 | Pure Storage, Inc. | Multi-path end-to-end encryption in a storage system |
| US11709636B1 (en) | 2020-01-13 | 2023-07-25 | Pure Storage, Inc. | Non-sequential readahead for deep learning training |
| US11720497B1 (en) | 2020-01-13 | 2023-08-08 | Pure Storage, Inc. | Inferred nonsequential prefetch based on data access patterns |
| US11733901B1 (en) | 2020-01-13 | 2023-08-22 | Pure Storage, Inc. | Providing persistent storage to transient cloud computing services |
| US12014065B2 (en) | 2020-02-11 | 2024-06-18 | Pure Storage, Inc. | Multi-cloud orchestration as-a-service |
| US11637896B1 (en) | 2020-02-25 | 2023-04-25 | Pure Storage, Inc. | Migrating applications to a cloud-computing environment |
| US11868622B2 (en) | 2020-02-25 | 2024-01-09 | Pure Storage, Inc. | Application recovery across storage systems |
| US12124725B2 (en) | 2020-03-25 | 2024-10-22 | Pure Storage, Inc. | Managing host mappings for replication endpoints |
| US12038881B2 (en) | 2020-03-25 | 2024-07-16 | Pure Storage, Inc. | Replica transitions for file storage |
| US11321006B1 (en) | 2020-03-25 | 2022-05-03 | Pure Storage, Inc. | Data loss prevention during transitions from a replication source |
| US12380127B2 (en) | 2020-04-06 | 2025-08-05 | Pure Storage, Inc. | Maintaining object policy implementation across different storage systems |
| US11301152B1 (en) | 2020-04-06 | 2022-04-12 | Pure Storage, Inc. | Intelligently moving data between storage systems |
| US11630598B1 (en) | 2020-04-06 | 2023-04-18 | Pure Storage, Inc. | Scheduling data replication operations |
| US11494267B2 (en) | 2020-04-14 | 2022-11-08 | Pure Storage, Inc. | Continuous value data redundancy |
| US11921670B1 (en) | 2020-04-20 | 2024-03-05 | Pure Storage, Inc. | Multivariate data backup retention policies |
| US12254206B2 (en) | 2020-05-08 | 2025-03-18 | Pure Storage, Inc. | Non-disruptively moving a storage fleet control plane |
| US12131056B2 (en) | 2020-05-08 | 2024-10-29 | Pure Storage, Inc. | Providing data management as-a-service |
| US11431488B1 (en) | 2020-06-08 | 2022-08-30 | Pure Storage, Inc. | Protecting local key generation using a remote key management service |
| EP4176366A4 (en) * | 2020-07-03 | 2024-10-16 | BankVault Pty Ltd | Method and system for verification of identify of a user |
| US11442652B1 (en) | 2020-07-23 | 2022-09-13 | Pure Storage, Inc. | Replication handling during storage system transportation |
| US11349917B2 (en) | 2020-07-23 | 2022-05-31 | Pure Storage, Inc. | Replication handling among distinct networks |
| US12353907B1 (en) | 2020-09-04 | 2025-07-08 | Pure Storage, Inc. | Application migration using data movement capabilities of a storage system |
| US12131044B2 (en) | 2020-09-04 | 2024-10-29 | Pure Storage, Inc. | Intelligent application placement in a hybrid infrastructure |
| US12430044B2 (en) | 2020-10-23 | 2025-09-30 | Pure Storage, Inc. | Preserving data in a storage system operating in a reduced power mode |
| US12340110B1 (en) | 2020-10-27 | 2025-06-24 | Pure Storage, Inc. | Replicating data in a storage system operating in a reduced power mode |
| US11397545B1 (en) | 2021-01-20 | 2022-07-26 | Pure Storage, Inc. | Emulating persistent reservations in a cloud-based storage system |
| US11853285B1 (en) | 2021-01-22 | 2023-12-26 | Pure Storage, Inc. | Blockchain logging of volume-level events in a storage system |
| US12086649B2 (en) | 2021-05-12 | 2024-09-10 | Pure Storage, Inc. | Rebalancing in a fleet of storage systems using data science |
| US11816129B2 (en) | 2021-06-22 | 2023-11-14 | Pure Storage, Inc. | Generating datasets using approximate baselines |
| US12363105B2 (en) | 2021-06-30 | 2025-07-15 | Sony Group Corporation | Code-based two factor authentication |
| US12159145B2 (en) | 2021-10-18 | 2024-12-03 | Pure Storage, Inc. | Context driven user interfaces for storage systems |
| US12373224B2 (en) | 2021-10-18 | 2025-07-29 | Pure Storage, Inc. | Dynamic, personality-driven user experience |
| US11914867B2 (en) | 2021-10-29 | 2024-02-27 | Pure Storage, Inc. | Coordinated snapshots among storage systems implementing a promotion/demotion model |
| US11893263B2 (en) | 2021-10-29 | 2024-02-06 | Pure Storage, Inc. | Coordinated checkpoints among storage systems implementing checkpoint-based replication |
| US11714723B2 (en) | 2021-10-29 | 2023-08-01 | Pure Storage, Inc. | Coordinated snapshots for data stored across distinct storage environments |
| US11922052B2 (en) | 2021-12-15 | 2024-03-05 | Pure Storage, Inc. | Managing links between storage objects |
| US11847071B2 (en) | 2021-12-30 | 2023-12-19 | Pure Storage, Inc. | Enabling communication between a single-port device and multiple storage system controllers |
| US12001300B2 (en) | 2022-01-04 | 2024-06-04 | Pure Storage, Inc. | Assessing protection for storage resources |
| US12411867B2 (en) | 2022-01-10 | 2025-09-09 | Pure Storage, Inc. | Providing application-side infrastructure to control cross-region replicated object stores |
| US12488018B2 (en) | 2022-01-10 | 2025-12-02 | Pure Storage, Inc. | Controlling the direction of replication between cross-region replicated object stores |
| US12314134B2 (en) | 2022-01-10 | 2025-05-27 | Pure Storage, Inc. | Establishing a guarantee for maintaining a replication relationship between object stores during a communications outage |
| US11860780B2 (en) | 2022-01-28 | 2024-01-02 | Pure Storage, Inc. | Storage cache management |
| US12393485B2 (en) | 2022-01-28 | 2025-08-19 | Pure Storage, Inc. | Recover corrupted data through speculative bitflip and cross-validation |
| US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
| US12481675B2 (en) | 2022-07-29 | 2025-11-25 | Pure Storage, Inc. | Synchronously negotiating an object's creation time across two or more storage systems |
| US12182113B1 (en) | 2022-11-03 | 2024-12-31 | Pure Storage, Inc. | Managing database systems using human-readable declarative definitions |
| EP4387167A1 (en) * | 2022-12-15 | 2024-06-19 | Bull Sas | Method and system for authenticating a user to an authentication server |
| CN115834252B (en) * | 2023-02-09 | 2023-05-26 | 中国证券登记结算有限责任公司 | Service access method and system |
| US12488133B2 (en) | 2023-04-07 | 2025-12-02 | Pure Storage, Inc. | Configurable automated redaction of log data |
| US12353321B2 (en) | 2023-10-03 | 2025-07-08 | Pure Storage, Inc. | Artificial intelligence model for optimal storage system operation |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100007205A1 (en) * | 2008-07-14 | 2010-01-14 | Caterpillar Inc. | Self-lubricated track roller assembly and machine using same |
| US20100161416A1 (en) * | 2008-12-22 | 2010-06-24 | Electronics And Telecommunications Research Institute | Method of providing targeted advertisements |
| US7769845B2 (en) * | 2001-05-04 | 2010-08-03 | Whale Communications Ltd | Method and system for terminating an authentication session upon user sign-off |
| US20110179182A1 (en) * | 2010-01-18 | 2011-07-21 | Tandberg Telecom As | Method for pairing a computer with a video conference device |
| US20110320741A1 (en) * | 2010-06-28 | 2011-12-29 | Nokia Corporation | Method and apparatus providing for direct controlled access to a dynamic user profile |
| US8510820B2 (en) * | 2010-12-02 | 2013-08-13 | Duo Security, Inc. | System and method for embedded authentication |
| US8607306B1 (en) * | 2010-11-10 | 2013-12-10 | Google Inc. | Background auto-submit of login credentials |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8020201B2 (en) * | 2001-10-23 | 2011-09-13 | Intel Corporation | Selecting a security format conversion for wired and wireless devices |
| US8219814B2 (en) * | 2005-06-30 | 2012-07-10 | Psion Teklogix Inc. | System and method of user credential management |
| US20100083371A1 (en) * | 2008-10-01 | 2010-04-01 | Christopher Lee Bennetts | User Access Control System And Method |
| US8516366B2 (en) * | 2008-06-20 | 2013-08-20 | Wetpaint.Com, Inc. | Extensible content service for attributing user-generated content to authored content providers |
| US8745401B1 (en) * | 2010-11-12 | 2014-06-03 | Google Inc. | Authorizing actions performed by an online service provider |
| US8739260B1 (en) * | 2011-02-10 | 2014-05-27 | Secsign Technologies Inc. | Systems and methods for authentication via mobile communication device |
| WO2013085807A1 (en) * | 2011-12-06 | 2013-06-13 | Gregory Dorso | Systems and methods for fast authentication with a mobile device |
| US20140007205A1 (en) * | 2012-06-28 | 2014-01-02 | Bytemobile, Inc. | No-Click Log-In Access to User's Web Account Using a Mobile Device |
-
2012
- 2012-09-28 US US13/630,655 patent/US8990914B2/en not_active Expired - Fee Related
-
2015
- 2015-03-17 US US14/660,406 patent/US9405889B2/en active Active
-
2016
- 2016-07-21 US US15/215,749 patent/US20170078879A1/en not_active Abandoned
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7769845B2 (en) * | 2001-05-04 | 2010-08-03 | Whale Communications Ltd | Method and system for terminating an authentication session upon user sign-off |
| US20100007205A1 (en) * | 2008-07-14 | 2010-01-14 | Caterpillar Inc. | Self-lubricated track roller assembly and machine using same |
| US20100161416A1 (en) * | 2008-12-22 | 2010-06-24 | Electronics And Telecommunications Research Institute | Method of providing targeted advertisements |
| US20110179182A1 (en) * | 2010-01-18 | 2011-07-21 | Tandberg Telecom As | Method for pairing a computer with a video conference device |
| US20110320741A1 (en) * | 2010-06-28 | 2011-12-29 | Nokia Corporation | Method and apparatus providing for direct controlled access to a dynamic user profile |
| US8607306B1 (en) * | 2010-11-10 | 2013-12-10 | Google Inc. | Background auto-submit of login credentials |
| US8510820B2 (en) * | 2010-12-02 | 2013-08-13 | Duo Security, Inc. | System and method for embedded authentication |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108540332A (en) * | 2018-05-18 | 2018-09-14 | 广东赛诺梵信息技术有限公司 | Intelligent dongle |
| US11282066B1 (en) * | 2019-01-18 | 2022-03-22 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
| US20220129882A1 (en) * | 2019-01-18 | 2022-04-28 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
| US11699144B2 (en) * | 2019-01-18 | 2023-07-11 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
| US20230297999A1 (en) * | 2019-01-18 | 2023-09-21 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
| US12154094B2 (en) * | 2019-01-18 | 2024-11-26 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
| US12205102B2 (en) * | 2019-01-18 | 2025-01-21 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
| CN110572388A (en) * | 2019-09-05 | 2019-12-13 | 北京宝兰德软件股份有限公司 | method for connecting unified authentication server and unified authentication adapter |
| US11893551B2 (en) | 2021-04-15 | 2024-02-06 | Bank Of America Corporation | Information security system and method for augmented reality check generation |
Also Published As
| Publication number | Publication date |
|---|---|
| US20150193609A1 (en) | 2015-07-09 |
| US9405889B2 (en) | 2016-08-02 |
| US20140096220A1 (en) | 2014-04-03 |
| US8990914B2 (en) | 2015-03-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9405889B2 (en) | Device, method, and system for augmented reality security | |
| US12041039B2 (en) | System and method for endorsing a new authenticator | |
| US9230089B2 (en) | User device security manager | |
| TWI598761B (en) | Query system and method for determining authentication capability | |
| US9178890B1 (en) | Passwordless strong authentication using trusted devices | |
| US12132831B2 (en) | Method employed in user authentication system and information processing apparatus included in user authentication system | |
| EP3057053B1 (en) | Electronic device and method for processing secure information | |
| CN113711211A (en) | First-factor contactless card authentication system and method | |
| US20220188786A1 (en) | Systems and methods for user data management across multiple devices | |
| KR101214839B1 (en) | Authentication method and authentication system | |
| US20150180869A1 (en) | Cloud-based scalable authentication for electronic devices | |
| US20120227096A1 (en) | Method and apparatus for transferring data | |
| US12223502B2 (en) | Instant digital issuance | |
| US20180101847A1 (en) | User and device authentication for web applications | |
| US9077713B1 (en) | Typeless secure login to web-based services | |
| US9690924B2 (en) | Transparent two-factor authentication via mobile communication device | |
| US11716331B2 (en) | Authentication method, an authentication device and a system comprising the authentication device | |
| CN120128356A (en) | Application Access Control |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DA CRUZ PINTO, JUAN MARCELO;CUENCA-ACUNA, FRANCISCO;SIGNING DATES FROM 20121010 TO 20121012;REEL/FRAME:039214/0464 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |