US20210139127A1 - Methods and systems for identifying and authorizing a user based on a mini-game login - Google Patents

Methods and systems for identifying and authorizing a user based on a mini-game login Download PDF

Info

Publication number
US20210139127A1
US20210139127A1 US17/156,931 US202117156931A US2021139127A1 US 20210139127 A1 US20210139127 A1 US 20210139127A1 US 202117156931 A US202117156931 A US 202117156931A US 2021139127 A1 US2021139127 A1 US 2021139127A1
Authority
US
United States
Prior art keywords
user
authentication
game
game play
server device
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.)
Pending
Application number
US17/156,931
Inventor
Austin Walters
Anh Truong
Vincent Pham
Reza Farivar
Mark Watson
Jeremy Goodsitt
Fardin Abdi Taghi Abad
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Capital One Services LLC
Original Assignee
Capital One Services LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Capital One Services LLC filed Critical Capital One Services LLC
Priority to US17/156,931 priority Critical patent/US20210139127A1/en
Assigned to CAPITAL ONE SERVICES, LLC reassignment CAPITAL ONE SERVICES, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TRUONG, ANH, ABDI TAGHI ABAD, FARDIN, FARIVAR, REZA, GOODSITT, JEREMY, PHAM, VINCENT, WALTERS, AUSTIN, WATSON, MARK
Publication of US20210139127A1 publication Critical patent/US20210139127A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B63SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
    • B63HMARINE PROPULSION OR STEERING
    • B63H21/00Use of propulsion power plant or units on vessels
    • B63H21/21Control means for engine or transmission, specially adapted for use on marine vessels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B63SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
    • B63HMARINE PROPULSION OR STEERING
    • B63H20/00Outboard propulsion units, e.g. outboard motors or Z-drives; Arrangements thereof on vessels
    • B63H20/007Trolling propulsion units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Definitions

  • Various embodiments of the present disclosure relate generally to analyzing user authentication, and, more particularly, to verifying user login attempts.
  • websites require users to log in to accounts to gain access to sensitive information.
  • User accounts may be compromised by autonomous network programs (e.g., “bots”) that may maliciously compromise user accounts via unauthorized, but successful, logins.
  • layers of security may be added to supplement login requirements on many websites. For example, Turing tests such as “completely automated public Turing tests to tell computers and humans apart” or “CAPTCHA” may be used to distinguish between human login attempts and login attempts by bots.
  • security questions may be added to user login requests to add a further layer of security.
  • bots increase in sophistication, these security layers may become easier for bots to break and/or circumvent.
  • the present disclosure is directed to overcoming one or more of these above-referenced challenges.
  • the background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art, or suggestions of the prior art, by inclusion in this section.
  • a method may comprise, at an authentication server device configured to communicate with a network server device over a network, receiving from the network server device a login request that is associated with a user; assigning the user to a user category based on attributes of the user; selecting an authentication game for the user based on the user category; assigning the user to a game play cluster for the selected authentication game, wherein the cluster has one or more cluster classifiers that each represent expected game play results for the authentication game; sending the authentication game to the network server device over the network for interaction with the user; receiving a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game; comparing the data representing the game play results with a corresponding one or more of the cluster classifiers; based on the comparing, determining whether the game play results match the expected game play results; and when the determining indicates that the game play results match the expected game play results,
  • a method may comprise, at an authentication server device configured to communicate with a network server device over a network, receiving from the network server device a login request that is associated with a user; determining whether an authentication verification should be sent to the user based on previous login attempts by the user; when the determining does not indicate that the authentication verification should be sent to the user: approving the login request for the user and storing, in a database, information about the login request; and when the determining indicates that the authentication verification should be sent to the user: assigning the user to a user category based on attributes of the user; selecting an authentication game for the user based on the user category; assigning the user to a game play cluster for the selected authentication game, wherein the cluster has one or more cluster classifiers that each represent expected game play results for the authentication game; sending the authentication game to the network server device over the network for interaction with the user; receiving a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game; comparing
  • a system may comprise a database configured to store user data; and an authentication server in communication with the database and with a network server device over a network, and further configured to: receive from the network server device a login request that is associated with a user; assign the user to a user category based on attributes of the user received from the database; select an authentication game for the user based on the user category; assign the user to a game play cluster for the selected authentication game, wherein the cluster has one or more cluster classifiers that each represent expected game play results for the authentication game; send the authentication game to the network server device over the network for interaction with the user; receive a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game; compare the data representing the game play results with a corresponding one or more of the cluster classifiers; based on the comparing, determine whether the game play results match the expected game play results; and upon determining that the game play results match the expected game play results, approve the login request for the
  • FIG. 1 depicts an example system infrastructure, according to one or more embodiments.
  • FIG. 2 depicts a data flow diagram showing communications between a user device, a network server, an authentication server, and a database, according to one or more embodiments.
  • FIG. 3 depicts a flowchart of example method of verifying user authentication, according to one or more embodiments.
  • FIG. 4 depicts a flow chart of another example method of verifying user authentication, according to one or more embodiments.
  • FIG. 5 shows an example block diagram of a computing device configured to execute various techniques and methods described herein, according to one or more embodiments.
  • the term “based on” means “based at least in part on.”
  • the singular forms “a,” “an,” and “the” include plural referents unless the context dictates otherwise.
  • the term “exemplary” is used in the sense of “example” rather than “ideal.”
  • the terms “comprises,” “comprising,” “includes,” “including,” or other variations thereof, are intended to cover a non-exclusive inclusion such that a process, method, or product that comprises a list of elements does not necessarily include only those elements, but may include other elements not expressly listed or inherent to such a process, method, article, or apparatus.
  • Relative terms, such as, “substantially” and “generally,” are used to indicate a possible variation of ⁇ 10% of a stated or understood value.
  • authentication verification techniques such as an authentication game, may be used to verify user login attempts.
  • FIG. 1 is a diagram depicting an example of a system environment 100 according to one or more embodiments of the present disclosure.
  • the system environment (“system”) 100 may include a user device 110 , a network server 120 , an authentication server 130 , and a database 140 .
  • the system 100 also includes a network 150 .
  • the user device 110 , network server 120 , and the authentication server 130 are configured to communicate with each other (e.g., send and receive data to each other) via the network 150 .
  • the network 150 may be a wide area network (WAN) such as the Internet.
  • WAN wide area network
  • the user device 110 may be operated by a user (not shown in FIG. 1 ) to access resources on the network server 120 .
  • the network server 120 may be a webserver that hosts a website or a mobile application, and the user may attempt to access the website via a web browser on the user device 110 across the network 150 .
  • the user device 110 may be a computing device, such as a mobile device, laptop, desktop computer, tablet, or other network enabled device as will be described in connection with FIG. 5 , below. It should be appreciated that though the techniques herein may describe a website and a web server, the techniques are applicable to any data configured to be served to the user device 110 (e.g., a mobile application or other content hosting software).
  • the network server 120 may be a computing device (e.g., a server) that is configured to host the website which the user is attempting to access.
  • the network server 120 may host a secure website that requires user authentication before a user can access the contents of the website.
  • the network server 120 may host a financial website for a bank or other financial company/institution, and the user may attempt to access his or her account information on the website via the user device 110 by authenticating with the network server 120 to gain such access.
  • the network server 120 may communicate with the authentication server 130 to verify appropriate authentication by a user, according to the techniques described herein.
  • the authentication server 130 may be a computing device (e.g., a server) that is configured to provide operations to verify user authentication, according to the techniques described herein.
  • the authentication server 130 may store in memory authentication logic 160 that, when executed by a processor of the authentication server 130 , causes the processor to perform the user authentication verification techniques described herein.
  • the authentication server 130 is configured to communicate with the database 140 , for example, to store information related to user authentication and to retrieve information related to user authentication, as described by the techniques herein.
  • the authentication server 130 may communicate with the database 140 via a network (e.g., network 150 ) or other communication link.
  • the database 140 may be stored in memory on the authentication server 130 itself.
  • a user may attempt to login to a secure website hosted by the network server 120 via the user device 110 .
  • the user may provide a user name and a corresponding password via a web browser or software application (e.g., a mobile application) to the network server 120 to gain access to his or her account on the secure website.
  • the user may not be the only network entity attempting to gain access to the website.
  • third parties such as other human attackers or malicious network programs, such as “bots,” may attempt to gain unauthorized access to the user's account on the website.
  • Third parties may employ several hacking techniques to replicate the user's login information (e.g., the user name and corresponding password) to gain unauthorized access to the user's account. For example, third parties may use brute force password-guessing methods to ultimately arrive at the user's correct password.
  • the network server 120 may enlist the authentication server 130 to provide additional layers of security to verify user authentication.
  • the authentication server 130 may receive information about the user during the login request made by the user device 110 to the network server 120 , and in response, the authentication server 130 may select an additional layer of security to network server 120 based on information about the user.
  • the authentication server 130 may analyze the user information and may select one or more appropriate interactive games for the user to complete before the user authentication is approved and verified.
  • the game play results of the user can be compared to expected game play results (e.g., expected game play results for the same user and/or for other similar users) to verify authentication and to determine whether to grant access to the user account.
  • the authentication server 130 may determine whether the game play results of the user are played as “successfully” or as “poorly” as the user is expected to have played (given previous game play scenarios by the user or other game play scenarios by similar users).
  • a malicious third party would have to engage the interactive game as successfully and/or as poorly as the user would during an authentic login attempt in order to gain access.
  • the interactive game may be presented to the user on the website on which the user is attempting to login via the user device 110 , and the user may engage with the interactive game via the user device 110 .
  • FIG. 2 shows an example data flow diagram 200 depicting data messages exchanged between the user device 110 , the network server 120 , the authentication server 130 , and the database 140 .
  • the data messages exchanged in FIG. 2 represent a system for verifying user authentication, according to the techniques herein.
  • the user device 110 may send a website login request to the network server 120 .
  • the login request may be initiated by a user (not shown in FIG. 2 ) who is operating the user device 110 .
  • the login request may be a request for access to secure information (e.g., a user's financial account) hosted by the network server 120 or otherwise accessible by the network server 120 .
  • secure information e.g., a user's financial account
  • the network device 120 may communicate with the authentication server 130 to receive additional security authentication for the login request. For example, the network device 120 may determine that the user login attempt indicates a suspicious login attempt (e.g., by assessing suspicious user device 110 such as a flagged IP address, a previously flagged user, a number of unsuccessful login attempts exceeding a predetermined number in a predetermined period of time, etc.). In some embodiments, the network device 120 may communicate with the authentication server 130 regardless of the user login indicating a suspicious login attempt. At step 215 , the network server 120 may forward the login request to the authentication server 130 .
  • the login request that the network server 120 forwards to the authentication server 130 may comprise information about the user. Such user information may include pre-processing information such as user demographic information, user location information, and/or information about the user device 110 (e.g., Internet Protocol (IP) address information, media access control (MAC) address information, etc.).
  • IP Internet Protocol
  • MAC media access control
  • the authentication server 130 may extract user attributes from the user information. Based on the extracted user attributes, the authentication server 130 , at step 225 , may request user category information from the database 140 , and receive, at step 230 , the user category information from the database 140 .
  • the user category information may indicate a user group or cluster to which a user is assigned. In one example, the user may be assigned to a category based on the user's previous login attempts. For example, the authentication server 130 may assign the user to a user category by requesting from the database 140 user category information for the user from previous login attempts.
  • the user category information may comprise game play results and performances from a previous authentication game played by the user during a previous login attempt for the website hosted by the network server 120 .
  • the user category information may also comprise information of other users in a similar category as the user.
  • the user category information may include information of users with a similar demographic profile or location as the user.
  • the user category information may include expected game play results for a variety of authentication games based on the performance of other users in a similar category of the user. For example, when the authentication server 130 requests at 225 the user category information, the database 140 may return to the authentication server 130 expected game play results for users who are similar to the user making the login request.
  • the authentication server 130 may select an authentication game to be sent to the network server 120 for interaction with the user via the user device 110 .
  • the authentication server 130 may also assign the user to a game play cluster associated with the selected authentication game.
  • the authentication game may be selected based on a variety of criteria. For example, the authentication game may be selected based on the user's demographic information (e.g., age, gender, education, income level, Internet Protocol (IP) address, device type, browser type, language, keyboard layout, screen size, marital status, occupation, etc.) or other user information.
  • IP Internet Protocol
  • the authentication game may also be selected based on the available user category information.
  • the authentication game may be an authentication game previously sent to the user during a previous login attempt by the user.
  • the authentication server 130 may select an authentication game for which it has the most voluminous or most accurate expected game play result data (e.g., from the user category information).
  • the authentication game may be a game that the user can engage and interact with via the user device 110 , and the authentication game may be limited in duration, during which time game play results of the user may be measured. For example, the user may play the game between three seconds and 120 seconds, and the game play metrics and data may be collected during this time.
  • the authentication server 130 may send the authentication game to the network server 120 .
  • the authentication serer 130 may send the authentication game to the network server 120 when the authentication server determines that the login request it received (e.g., at reference numeral 215 ) is a potential fraudulent login attempt. That is, the login attempt may provide an indication to the network server 120 of potentially fraudulent activity, thus triggering the network server 130 to forward the login request to the authentication server 130 (as shown in 215 ) for additional security layers.
  • the network server 120 may forward the login request to the authentication server 130 for all user login attempts.
  • the network server 120 may present the authentication game to the user via the user device 110 , as shown at step 245 .
  • the network server 120 may provide a link or forwarding address to the user device 110 that, upon interaction with the link or forwarding address, causes the user device 110 to display the authentication game.
  • the network server 120 may provide the authentication game itself to the user device 110 via, for example, an application program interface (API).
  • API application program interface
  • the user may engage the user device 110 to play the authentication game.
  • the network server 120 may store data representing the user's game play (e.g., the user's interaction with the authentication game via the user device 110 ).
  • the network server 120 may store data including game play results that occur while the game is played (e.g., how the user maneuvers during the game), and game play results after game play is completed.
  • the user device 110 may send, at step 250 , game play results to the network server 120 (including both in-game game play results and post-game game play results).
  • the network server 120 may forward the game play results to the authentication server 130 , as shown at step 255 .
  • the authentication server 130 serves the game to the user, and the user plays the game.
  • the authentication server 130 uses the authentication logic 160 to compare the game play results with results stored in the database 140 .
  • the authentication server 130 may request from the database 140 , game play cluster classifier information.
  • the game play cluster classifier information (e.g., “game play cluster classifiers”) may represent information about expected game play results for corresponding authentication games.
  • the database 140 may store game play cluster classifiers corresponding to expected game play results for the authentication game.
  • the game play cluster information may include expected game play results for a variety of authentication games for the user category to which the user was assigned.
  • the expected game play results may include quickness of play, accuracy of play, length of play, reaction times and speeds during game play, movements, movement dynamics for how a user plays a game (e.g., playing in an up direction first, followed by a down direction versus playing in a down direction and a right direction), etc.
  • the expected game play results may represent, for example, previous game performances by the user during earlier login attempts when presented with the authentication game.
  • the expected game play results may also represent, for example, game performances by other users in the user category for the authentication game.
  • the expected game play results may represent predicted game play results based on the user information and the assigned user category.
  • a first classifier may correspond to expected game play movements
  • a second classifier may correspond to expected game play speeds
  • the game play cluster classifiers may correspond to the user category to which the user is assigned in steps 225 and 230 .
  • the user may be assigned into a first user category, and at step 260 , the authentication server 130 may request from the database 140 game play cluster classifiers that are associated with the first user category.
  • the game play cluster classifiers may vary from authentication game to authentication game, and may vary from user category to user category.
  • the authentication server 130 may receive from the database 140 the game play cluster classifiers, and at step 267 , the authentication server 130 may compare the game play results with the game play cluster classifers. At 270 , the authentication server 130 may determine an authentication result. The authentication server 130 may determines the authentication result, for example, by comparing the data representing the game play results (e.g., received from the network server 120 at step 255 ) to the expected game play results represented by the game play cluster classifiers received at step 265 . At step 275 , the authentication server 130 may send an approval or a denial for the user login request to the network server 120 .
  • the authentication server 130 may send an approval to the network server 120 for the user login request.
  • the authentication server 130 may send a denial of the user login request to the network server 120 .
  • the authentication server 130 may further flag the user's account or the user device 110 as a suspicious account or a suspicious user device, and may store this indication in the database 140 .
  • the authentication server 130 may update the database 140 to include the game play results performed by the user (e.g., the game play results received by the authentication server 130 at step 255 ). For example, the authentication server 130 may reclassify the user to a different game play cluster based on the game play results. In one example, the user may increase or decrease a game performance metric, but his or her login may otherwise be verified, and the authentication server 120 may update the database 140 and store an indication to modify the game play cluster for the user category to which the user was assigned.
  • the authentication server 130 may also store in the database 140 data about the user (e.g., if the user information is new to the authentication server 130 ), may store data about the user device 110 , and may store data about the authentication result (e.g., if the login was approved or denied).
  • FIG. 3 depicts a flowchart 300 of an example method of the authentication server 130 verifying user authentication.
  • the operations in flowchart 300 may be performed by a processor of the authentication server 130 at the direction of the authentication logic 160 .
  • the authentication server 130 may receive a login request associated with a user.
  • the authentication server 130 may assign the user to a user category, at operation 310 , based on attributes of the user.
  • the authentication server 130 may select an authentication game for the user based on the user category, and at operation 320 , may assign the user to a game play cluster for the selected authentication game.
  • the authentication server 130 may send the authentication game to the user for interaction with the user.
  • the authentication server 130 may receive game play results at operation 330 , and at operation 335 , may compare data representing the game play results with a corresponding one or more cluster classifiers. At operation 340 , the authentication server 130 may determine whether the game play results match the expected game play results, and at operation 345 , the authentication server 130 may approve the login request for the user when the game play results match the expected game play results.
  • FIG. 4 shows a flow chart 400 representing another example method for the authentication server 130 verifying user authentication.
  • the operations in flowchart 400 may be performed by a processor of the authentication server 130 at the direction of the authentication logic 160 .
  • the authentication server 130 may receive a login request that is associated with a user.
  • the authentication server 130 may make a determination of whether an authentication verification should be sent to the user. As stated above, the authentication server 130 may make this determination based on attributes of the user device 110 from which the login request originated indicating a suspicious login attempt. The authentication server 130 may also make this determination based on previous login attempts by the user exceeding a predetermined number (e.g., indicating a potential brute force access attempt). There may be other examples of how the authentication server 130 determines whether the authentication verification should be sent.
  • a predetermined number e.g., indicating a potential brute force access attempt
  • the authentication server 130 may assign the user to a user category, and at operation 420 , select an authentication game for the user.
  • the authentication server 130 may assign the user to a game play cluster, and at operation 430 send the authentication game for interaction with the user.
  • the authentication server 130 may receive game play results at operation 435 , and compare data representing the game play results with a corresponding one or more cluster classifiers at operation 440 .
  • the authentication server 130 may determine whether the game play results match the expected game play results, and at operation 450 , the authentication server 130 may approve the login request for the user when the game play results match the expected game play results.
  • the authentication server 130 may approve the login request for the user at operation 455 , and at operation 460 may store information about the login request (e.g., in database 140 ).
  • any process discussed in this disclosure that is understood to be computer-implementable, such as the processes illustrated in FIGS. 2-4 , may be performed by one or more processors of a computer system.
  • a process or process step performed by one or more processors may also be referred to as an operation.
  • the one or more processors may be configured to perform such processes by having access to instructions (e.g., software or computer-readable code) that, when executed by the one or more processors, cause the one or more processors to perform the processes.
  • the instructions may be stored in a memory of the computer system.
  • a processor may be a central processing unit (CPU), a graphics processing unit (GPU), or any suitable types of processing unit.
  • a computer system such as the network server 120 , the authentication server 130 , and/or user device 110 , may include one or more computing devices. If the one or more processors of the computer system are implemented as a plurality of processors, the plurality of processors may be included in a single computing device or distributed among a plurality of computing devices. If a computer system comprises a plurality of computing devices, the memory of the computer system may include the respective memory of each computing device of the plurality of computing devices.
  • FIG. 5 illustrates an example block diagram of a computer system/computing device 500 (e.g., the authentication server 130 ).
  • the computing device 500 may include processor(s) 510 (e.g., CPU, GPU, or other such processing unit(s)), a memory 520 , and communication interface(s) 540 (e.g., a network interface) to communicate with other devices.
  • Memory 520 may include volatile memory, such as RAM, and/or non-volatile memory, such as ROM and storage media. Examples of storage media include solid-state storage media (e.g., solid state drives and/or removable flash memory), optical storage media (e.g., optical discs), and/or magnetic storage media (e.g., hard disk drives).
  • the aforementioned instructions may be stored in any volatile and/or non-volatile memory component of memory 520 .
  • the computing device 500 may, in some embodiments, further include input device(s) 550 (e.g., a keyboard, mouse, or touchscreen) and output device(s) 560 (e.g., a display, printer).
  • input device(s) 550 e.g., a keyboard, mouse, or touchscreen
  • output device(s) 560 e.g., a display, printer
  • the aforementioned elements of the computing device 500 may be connected to one another through a bus 530 , which represents one or more busses.
  • the processor(s) 510 of the computing device 500 includes both a CPU and a GPU.
  • Non-transitory computer-readable medium Instructions executable by one or more processors may be stored on a non-transitory computer-readable medium. Therefore, whenever a computer-implemented method is described in this disclosure, this disclosure shall also be understood as describing a non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform the computer-implemented method. Examples of non-transitory computer-readable medium include RAM, ROM, solid-state storage media (e.g., solid state drives), optical storage media (e.g., optical discs), and magnetic storage media (e.g., hard disk drives). A non-transitory computer-readable medium may be part of the memory of a computer system or separate from any computer system.

Abstract

A computer-implemented method is provided for verifying user authentication. An authentication server may receive from a network server device a login request that is associated with a user. The user may be assigned to a user category based on attributes of the user. An authentication game may be selected for the user based on the user category. The user may be assigned to a game play cluster for the selected authentication game. The authentication game may be sent to the network server device over a network for interaction with the user. A game result may be received from the network server device. Data representing the game paly results may be compared with corresponding one or more cluster classifiers. Based on the comparing, the authentication server may determine whether the game play results match the expected game play results. When the game play results match the expected game play results, the login request may be approved.

Description

    TECHNICAL FIELD
  • Various embodiments of the present disclosure relate generally to analyzing user authentication, and, more particularly, to verifying user login attempts.
  • BACKGROUND
  • Often, websites require users to log in to accounts to gain access to sensitive information. User accounts may be compromised by autonomous network programs (e.g., “bots”) that may maliciously compromise user accounts via unauthorized, but successful, logins. Additionally, layers of security may be added to supplement login requirements on many websites. For example, Turing tests such as “completely automated public Turing tests to tell computers and humans apart” or “CAPTCHA” may be used to distinguish between human login attempts and login attempts by bots. Additionally, security questions may be added to user login requests to add a further layer of security. However, as bots increase in sophistication, these security layers may become easier for bots to break and/or circumvent.
  • The present disclosure is directed to overcoming one or more of these above-referenced challenges. The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art, or suggestions of the prior art, by inclusion in this section.
  • SUMMARY OF THE DISCLOSURE
  • According to certain aspects of the disclosure, methods and systems are disclosed for verifying user authentication. In one aspect, a method is provided that may comprise, at an authentication server device configured to communicate with a network server device over a network, receiving from the network server device a login request that is associated with a user; assigning the user to a user category based on attributes of the user; selecting an authentication game for the user based on the user category; assigning the user to a game play cluster for the selected authentication game, wherein the cluster has one or more cluster classifiers that each represent expected game play results for the authentication game; sending the authentication game to the network server device over the network for interaction with the user; receiving a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game; comparing the data representing the game play results with a corresponding one or more of the cluster classifiers; based on the comparing, determining whether the game play results match the expected game play results; and when the determining indicates that the game play results match the expected game play results, approving the login request for the user.
  • In another aspect, a method is provided that may comprise, at an authentication server device configured to communicate with a network server device over a network, receiving from the network server device a login request that is associated with a user; determining whether an authentication verification should be sent to the user based on previous login attempts by the user; when the determining does not indicate that the authentication verification should be sent to the user: approving the login request for the user and storing, in a database, information about the login request; and when the determining indicates that the authentication verification should be sent to the user: assigning the user to a user category based on attributes of the user; selecting an authentication game for the user based on the user category; assigning the user to a game play cluster for the selected authentication game, wherein the cluster has one or more cluster classifiers that each represent expected game play results for the authentication game; sending the authentication game to the network server device over the network for interaction with the user; receiving a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game; comparing the data representing the game play results with a corresponding one or more of the cluster classifiers; based on the comparing determining whether the game play results match the expected game play results; and when the determining indicates that the game play results match the expected game play results, approving the login request for the user.
  • In yet another aspect, a system is provided that may comprise a database configured to store user data; and an authentication server in communication with the database and with a network server device over a network, and further configured to: receive from the network server device a login request that is associated with a user; assign the user to a user category based on attributes of the user received from the database; select an authentication game for the user based on the user category; assign the user to a game play cluster for the selected authentication game, wherein the cluster has one or more cluster classifiers that each represent expected game play results for the authentication game; send the authentication game to the network server device over the network for interaction with the user; receive a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game; compare the data representing the game play results with a corresponding one or more of the cluster classifiers; based on the comparing, determine whether the game play results match the expected game play results; and upon determining that the game play results match the expected game play results, approve the login request for the user.
  • It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosed embodiments, as claimed.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various exemplary embodiments and together with the description, serve to explain the principles of the disclosed embodiments.
  • FIG. 1 depicts an example system infrastructure, according to one or more embodiments.
  • FIG. 2 depicts a data flow diagram showing communications between a user device, a network server, an authentication server, and a database, according to one or more embodiments.
  • FIG. 3 depicts a flowchart of example method of verifying user authentication, according to one or more embodiments.
  • FIG. 4 depicts a flow chart of another example method of verifying user authentication, according to one or more embodiments.
  • FIG. 5 shows an example block diagram of a computing device configured to execute various techniques and methods described herein, according to one or more embodiments.
  • DETAILED DESCRIPTION OF EMBODIMENTS
  • The terminology used below may be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the present disclosure. Indeed, certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section. Both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the features, as claimed.
  • In this disclosure, the term “based on” means “based at least in part on.” The singular forms “a,” “an,” and “the” include plural referents unless the context dictates otherwise. The term “exemplary” is used in the sense of “example” rather than “ideal.” The terms “comprises,” “comprising,” “includes,” “including,” or other variations thereof, are intended to cover a non-exclusive inclusion such that a process, method, or product that comprises a list of elements does not necessarily include only those elements, but may include other elements not expressly listed or inherent to such a process, method, article, or apparatus. Relative terms, such as, “substantially” and “generally,” are used to indicate a possible variation of ±10% of a stated or understood value.
  • In the following description, embodiments will be described with reference to the accompanying drawings. As will be discussed in more detail below, in various embodiments, authentication verification techniques, such as an authentication game, may be used to verify user login attempts.
  • FIG. 1 is a diagram depicting an example of a system environment 100 according to one or more embodiments of the present disclosure. The system environment (“system”) 100 may include a user device 110, a network server 120, an authentication server 130, and a database 140. The system 100 also includes a network 150. The user device 110, network server 120, and the authentication server 130 are configured to communicate with each other (e.g., send and receive data to each other) via the network 150. In one example, the network 150 may be a wide area network (WAN) such as the Internet.
  • The user device 110 may be operated by a user (not shown in FIG. 1) to access resources on the network server 120. For example, the network server 120 may be a webserver that hosts a website or a mobile application, and the user may attempt to access the website via a web browser on the user device 110 across the network 150. The user device 110 may be a computing device, such as a mobile device, laptop, desktop computer, tablet, or other network enabled device as will be described in connection with FIG. 5, below. It should be appreciated that though the techniques herein may describe a website and a web server, the techniques are applicable to any data configured to be served to the user device 110 (e.g., a mobile application or other content hosting software).
  • The network server 120 may be a computing device (e.g., a server) that is configured to host the website which the user is attempting to access. The network server 120, for example, may host a secure website that requires user authentication before a user can access the contents of the website. In one example, the network server 120 may host a financial website for a bank or other financial company/institution, and the user may attempt to access his or her account information on the website via the user device 110 by authenticating with the network server 120 to gain such access. The network server 120 may communicate with the authentication server 130 to verify appropriate authentication by a user, according to the techniques described herein.
  • The authentication server 130 may be a computing device (e.g., a server) that is configured to provide operations to verify user authentication, according to the techniques described herein. For example, the authentication server 130 may store in memory authentication logic 160 that, when executed by a processor of the authentication server 130, causes the processor to perform the user authentication verification techniques described herein. The authentication server 130 is configured to communicate with the database 140, for example, to store information related to user authentication and to retrieve information related to user authentication, as described by the techniques herein. In one example, the authentication server 130 may communicate with the database 140 via a network (e.g., network 150) or other communication link. In another example, the database 140 may be stored in memory on the authentication server 130 itself.
  • As stated above, in general, the techniques described herein are directed to verifying user authentication. As mentioned, a user may attempt to login to a secure website hosted by the network server 120 via the user device 110. For example, the user may provide a user name and a corresponding password via a web browser or software application (e.g., a mobile application) to the network server 120 to gain access to his or her account on the secure website. The user, however, may not be the only network entity attempting to gain access to the website. For example, third parties, such as other human attackers or malicious network programs, such as “bots,” may attempt to gain unauthorized access to the user's account on the website. Third parties may employ several hacking techniques to replicate the user's login information (e.g., the user name and corresponding password) to gain unauthorized access to the user's account. For example, third parties may use brute force password-guessing methods to ultimately arrive at the user's correct password.
  • Thus, the authentication techniques provided by a network server 120 alone may not be sufficient to protect against malicious attacks by third parties. In order to prevent and/or combat such attacks, the network server 120 may enlist the authentication server 130 to provide additional layers of security to verify user authentication. For example, as described by the techniques herein, the authentication server 130 may receive information about the user during the login request made by the user device 110 to the network server 120, and in response, the authentication server 130 may select an additional layer of security to network server 120 based on information about the user. In one example, the authentication server 130 may analyze the user information and may select one or more appropriate interactive games for the user to complete before the user authentication is approved and verified. The game play results of the user can be compared to expected game play results (e.g., expected game play results for the same user and/or for other similar users) to verify authentication and to determine whether to grant access to the user account. For example, the authentication server 130 may determine whether the game play results of the user are played as “successfully” or as “poorly” as the user is expected to have played (given previous game play scenarios by the user or other game play scenarios by similar users). Thus, a malicious third party would have to engage the interactive game as successfully and/or as poorly as the user would during an authentic login attempt in order to gain access. In one example, the interactive game may be presented to the user on the website on which the user is attempting to login via the user device 110, and the user may engage with the interactive game via the user device 110.
  • Reference is now made to FIG. 2. FIG. 2 shows an example data flow diagram 200 depicting data messages exchanged between the user device 110, the network server 120, the authentication server 130, and the database 140. In one example, the data messages exchanged in FIG. 2 represent a system for verifying user authentication, according to the techniques herein. At step 210, the user device 110 may send a website login request to the network server 120. The login request may be initiated by a user (not shown in FIG. 2) who is operating the user device 110. The login request may be a request for access to secure information (e.g., a user's financial account) hosted by the network server 120 or otherwise accessible by the network server 120. In order to add additional security to the login request and to verify that the login request is authentic and appropriate, the network device 120 may communicate with the authentication server 130 to receive additional security authentication for the login request. For example, the network device 120 may determine that the user login attempt indicates a suspicious login attempt (e.g., by assessing suspicious user device 110 such as a flagged IP address, a previously flagged user, a number of unsuccessful login attempts exceeding a predetermined number in a predetermined period of time, etc.). In some embodiments, the network device 120 may communicate with the authentication server 130 regardless of the user login indicating a suspicious login attempt. At step 215, the network server 120 may forward the login request to the authentication server 130. The login request that the network server 120 forwards to the authentication server 130 may comprise information about the user. Such user information may include pre-processing information such as user demographic information, user location information, and/or information about the user device 110 (e.g., Internet Protocol (IP) address information, media access control (MAC) address information, etc.).
  • At step 220, the authentication server 130 may extract user attributes from the user information. Based on the extracted user attributes, the authentication server 130, at step 225, may request user category information from the database 140, and receive, at step 230, the user category information from the database 140. The user category information may indicate a user group or cluster to which a user is assigned. In one example, the user may be assigned to a category based on the user's previous login attempts. For example, the authentication server 130 may assign the user to a user category by requesting from the database 140 user category information for the user from previous login attempts. In one example, the user category information may comprise game play results and performances from a previous authentication game played by the user during a previous login attempt for the website hosted by the network server 120.
  • The user category information may also comprise information of other users in a similar category as the user. For example, the user category information may include information of users with a similar demographic profile or location as the user. The user category information may include expected game play results for a variety of authentication games based on the performance of other users in a similar category of the user. For example, when the authentication server 130 requests at 225 the user category information, the database 140 may return to the authentication server 130 expected game play results for users who are similar to the user making the login request.
  • At step 235, the authentication server 130 may select an authentication game to be sent to the network server 120 for interaction with the user via the user device 110. The authentication server 130 may also assign the user to a game play cluster associated with the selected authentication game. The authentication game may be selected based on a variety of criteria. For example, the authentication game may be selected based on the user's demographic information (e.g., age, gender, education, income level, Internet Protocol (IP) address, device type, browser type, language, keyboard layout, screen size, marital status, occupation, etc.) or other user information. The authentication game may also be selected based on the available user category information. The authentication game may be an authentication game previously sent to the user during a previous login attempt by the user. In one example, the authentication server 130 may select an authentication game for which it has the most voluminous or most accurate expected game play result data (e.g., from the user category information). In one example, the authentication game may be a game that the user can engage and interact with via the user device 110, and the authentication game may be limited in duration, during which time game play results of the user may be measured. For example, the user may play the game between three seconds and 120 seconds, and the game play metrics and data may be collected during this time.
  • At step 240, the authentication server 130 may send the authentication game to the network server 120. It should be appreciated that the authentication serer 130 may send the authentication game to the network server 120 when the authentication server determines that the login request it received (e.g., at reference numeral 215) is a potential fraudulent login attempt. That is, the login attempt may provide an indication to the network server 120 of potentially fraudulent activity, thus triggering the network server 130 to forward the login request to the authentication server 130 (as shown in 215) for additional security layers. In one example, the network server 120 may forward the login request to the authentication server 130 for all user login attempts. After the authentication server 130 sends the authentication game to the network server 120, the network server 120 may present the authentication game to the user via the user device 110, as shown at step 245. For example, the network server 120 may provide a link or forwarding address to the user device 110 that, upon interaction with the link or forwarding address, causes the user device 110 to display the authentication game. In another example, the network server 120 may provide the authentication game itself to the user device 110 via, for example, an application program interface (API).
  • The user may engage the user device 110 to play the authentication game. The network server 120 may store data representing the user's game play (e.g., the user's interaction with the authentication game via the user device 110). For example, the network server 120 may store data including game play results that occur while the game is played (e.g., how the user maneuvers during the game), and game play results after game play is completed. Thus, the user device 110 may send, at step 250, game play results to the network server 120 (including both in-game game play results and post-game game play results). The network server 120 may forward the game play results to the authentication server 130, as shown at step 255. In one example, the authentication server 130 serves the game to the user, and the user plays the game. The authentication server 130 uses the authentication logic 160 to compare the game play results with results stored in the database 140.
  • Upon receiving the game play results from the network server 120, the authentication server 130, at step 260, may request from the database 140, game play cluster classifier information. The game play cluster classifier information (e.g., “game play cluster classifiers”) may represent information about expected game play results for corresponding authentication games. For example, for the authentication game that is sent to the network server 120 at step 240, the database 140 may store game play cluster classifiers corresponding to expected game play results for the authentication game. The game play cluster information may include expected game play results for a variety of authentication games for the user category to which the user was assigned. For example, the expected game play results may include quickness of play, accuracy of play, length of play, reaction times and speeds during game play, movements, movement dynamics for how a user plays a game (e.g., playing in an up direction first, followed by a down direction versus playing in a down direction and a right direction), etc. The expected game play results may represent, for example, previous game performances by the user during earlier login attempts when presented with the authentication game. The expected game play results may also represent, for example, game performances by other users in the user category for the authentication game. In another example, the expected game play results may represent predicted game play results based on the user information and the assigned user category.
  • For example, a first classifier may correspond to expected game play movements, a second classifier may correspond to expected game play speeds, and so on for various game play measurements. The game play cluster classifiers may correspond to the user category to which the user is assigned in steps 225 and 230. For example, the user may be assigned into a first user category, and at step 260, the authentication server 130 may request from the database 140 game play cluster classifiers that are associated with the first user category. Thus, the game play cluster classifiers may vary from authentication game to authentication game, and may vary from user category to user category.
  • At step 265, the authentication server 130 may receive from the database 140 the game play cluster classifiers, and at step 267, the authentication server 130 may compare the game play results with the game play cluster classifers. At 270, the authentication server 130 may determine an authentication result. The authentication server 130 may determines the authentication result, for example, by comparing the data representing the game play results (e.g., received from the network server 120 at step 255) to the expected game play results represented by the game play cluster classifiers received at step 265. At step 275, the authentication server 130 may send an approval or a denial for the user login request to the network server 120. For example, when the game play results match the expected game play results, the authentication server 130 may send an approval to the network server 120 for the user login request. On the other hand, when the game play results do not match the expected game play results, the authentication server 130 may send a denial of the user login request to the network server 120. In one example, when the authentication server 130 sends a denial of the user login request to the network server 120, the authentication server 130 may further flag the user's account or the user device 110 as a suspicious account or a suspicious user device, and may store this indication in the database 140.
  • At step 280, the authentication server 130 may update the database 140 to include the game play results performed by the user (e.g., the game play results received by the authentication server 130 at step 255). For example, the authentication server 130 may reclassify the user to a different game play cluster based on the game play results. In one example, the user may increase or decrease a game performance metric, but his or her login may otherwise be verified, and the authentication server 120 may update the database 140 and store an indication to modify the game play cluster for the user category to which the user was assigned. The authentication server 130 may also store in the database 140 data about the user (e.g., if the user information is new to the authentication server 130), may store data about the user device 110, and may store data about the authentication result (e.g., if the login was approved or denied).
  • FIG. 3 depicts a flowchart 300 of an example method of the authentication server 130 verifying user authentication. The operations in flowchart 300 may be performed by a processor of the authentication server 130 at the direction of the authentication logic 160. At operation 305, the authentication server 130 may receive a login request associated with a user. The authentication server 130 may assign the user to a user category, at operation 310, based on attributes of the user. At operation 315, the authentication server 130 may select an authentication game for the user based on the user category, and at operation 320, may assign the user to a game play cluster for the selected authentication game. At operation 325, the authentication server 130 may send the authentication game to the user for interaction with the user. The authentication server 130 may receive game play results at operation 330, and at operation 335, may compare data representing the game play results with a corresponding one or more cluster classifiers. At operation 340, the authentication server 130 may determine whether the game play results match the expected game play results, and at operation 345, the authentication server 130 may approve the login request for the user when the game play results match the expected game play results.
  • FIG. 4 shows a flow chart 400 representing another example method for the authentication server 130 verifying user authentication. The operations in flowchart 400 may be performed by a processor of the authentication server 130 at the direction of the authentication logic 160. At operation 405, the authentication server 130 may receive a login request that is associated with a user. At operation 410, the authentication server 130 may make a determination of whether an authentication verification should be sent to the user. As stated above, the authentication server 130 may make this determination based on attributes of the user device 110 from which the login request originated indicating a suspicious login attempt. The authentication server 130 may also make this determination based on previous login attempts by the user exceeding a predetermined number (e.g., indicating a potential brute force access attempt). There may be other examples of how the authentication server 130 determines whether the authentication verification should be sent.
  • When the authentication server 130 determines that the authentication verification should be sent to the user (e.g., operation 410: Yes), the authentication server 130, at operation 415, may assign the user to a user category, and at operation 420, select an authentication game for the user. At operation 425, the authentication server 130 may assign the user to a game play cluster, and at operation 430 send the authentication game for interaction with the user. The authentication server 130 may receive game play results at operation 435, and compare data representing the game play results with a corresponding one or more cluster classifiers at operation 440. At operation 445, the authentication server 130 may determine whether the game play results match the expected game play results, and at operation 450, the authentication server 130 may approve the login request for the user when the game play results match the expected game play results.
  • When the authentication server 130 determines that authentication verification should not be sent to the user (e.g., operation 410: NO), the authentication server 130 may approve the login request for the user at operation 455, and at operation 460 may store information about the login request (e.g., in database 140).
  • In general, any process discussed in this disclosure that is understood to be computer-implementable, such as the processes illustrated in FIGS. 2-4, may be performed by one or more processors of a computer system. A process or process step performed by one or more processors may also be referred to as an operation. The one or more processors may be configured to perform such processes by having access to instructions (e.g., software or computer-readable code) that, when executed by the one or more processors, cause the one or more processors to perform the processes. The instructions may be stored in a memory of the computer system. A processor may be a central processing unit (CPU), a graphics processing unit (GPU), or any suitable types of processing unit.
  • A computer system, such as the network server 120, the authentication server 130, and/or user device 110, may include one or more computing devices. If the one or more processors of the computer system are implemented as a plurality of processors, the plurality of processors may be included in a single computing device or distributed among a plurality of computing devices. If a computer system comprises a plurality of computing devices, the memory of the computer system may include the respective memory of each computing device of the plurality of computing devices.
  • FIG. 5 illustrates an example block diagram of a computer system/computing device 500 (e.g., the authentication server 130). The computing device 500 may include processor(s) 510 (e.g., CPU, GPU, or other such processing unit(s)), a memory 520, and communication interface(s) 540 (e.g., a network interface) to communicate with other devices. Memory 520 may include volatile memory, such as RAM, and/or non-volatile memory, such as ROM and storage media. Examples of storage media include solid-state storage media (e.g., solid state drives and/or removable flash memory), optical storage media (e.g., optical discs), and/or magnetic storage media (e.g., hard disk drives). The aforementioned instructions (e.g., software or computer-readable code such as the authentication logic 160) may be stored in any volatile and/or non-volatile memory component of memory 520. The computing device 500 may, in some embodiments, further include input device(s) 550 (e.g., a keyboard, mouse, or touchscreen) and output device(s) 560 (e.g., a display, printer). The aforementioned elements of the computing device 500 may be connected to one another through a bus 530, which represents one or more busses. In some embodiments, the processor(s) 510 of the computing device 500 includes both a CPU and a GPU.
  • Instructions executable by one or more processors may be stored on a non-transitory computer-readable medium. Therefore, whenever a computer-implemented method is described in this disclosure, this disclosure shall also be understood as describing a non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform the computer-implemented method. Examples of non-transitory computer-readable medium include RAM, ROM, solid-state storage media (e.g., solid state drives), optical storage media (e.g., optical discs), and magnetic storage media (e.g., hard disk drives). A non-transitory computer-readable medium may be part of the memory of a computer system or separate from any computer system.
  • It should be appreciated that in the above description of exemplary embodiments, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claims require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the Detailed Description are hereby expressly incorporated into this Detailed Description, with each claim standing on its own as a separate embodiment of this disclosure.
  • Furthermore, while some embodiments described herein include some but not other features included in other embodiments, combinations of features of different embodiments are meant to be within the scope of the disclosure, and form different embodiments, as would be understood by those skilled in the art. For example, in the following claims, any of the claimed embodiments can be used in any combination.
  • Thus, while certain embodiments have been described, those skilled in the art will recognize that other and further modifications may be made thereto without departing from the spirit of the disclosure, and it is intended to claim all such changes and modifications as falling within the scope of the disclosure. For example, functionality may be added or deleted from the block diagrams and operations may be interchanged among functional blocks. Steps may be added or deleted to methods described within the scope of the present disclosure.
  • The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other implementations, which fall within the true spirit and scope of the present disclosure. Thus, to the maximum extent allowed by law, the scope of the present disclosure is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description. While various implementations of the disclosure have been described, it will be apparent to those of ordinary skill in the art that many more implementations and implementations are possible within the scope of the disclosure. Accordingly, the disclosure is not to be restricted.

Claims (21)

1-20. (canceled)
21. A method for verifying user authentication, the method comprising:
receiving, by an authentication server device, a login request;
selecting, by the authentication server device, an authentication game;
sending, by the authentication server device, the authentication game to a network server device over a network for interaction with a user;
receiving, by the authentication server device, a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game including data pertaining to one or more of game play speed or reaction time;
comparing, by the authentication server device, the data representing the game play results with one or more expected game play results; and
based on the comparison, determining a response to the login request.
22. The method of claim 21, wherein the login request comprises at least one of a user name or password.
23. The method of claim 21, wherein the game play results data further includes data pertaining to game play accuracy.
24. The method of claim 21, wherein the game play results include data pertaining to the user's maneuvers during the authentication game.
25. The method of claim 21, wherein the game play results include data pertaining to game play movements during the authentication game.
26. The method of claim 21, further comprising:
approving, by the authentication server device, the login request based on the determined response to the login request.
27. The method of claim 21, further comprising:
receiving, by the authentication server device, additional information regarding the user including one or more of user demographic information, user location information, and information about the user device.
28. The method of claim 21, wherein the authentication game is selected based on one or more of the user's age, gender, education, income level, marital status, language, nationality, or occupation.
29. The method of claim 21, wherein the authentication game is selected based on one or more of a user device type, browser type, keyboard layout, or screen size.
30. The method of claim 21, wherein the one or more expected game play results are determined based on the user's prior game play results.
31. A system for verifying user authentication, the system comprising:
a database configured to store user data; and
an authentication server in communication with the database and with a network server device over a network, and further configured to:
receive from the network server device a login request;
select an authentication game;
send the authentication game to the network server device over a network for interaction with a user;
receive a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game including data pertaining to one or more of game play speed or reaction time;
compare the data representing the game play results with one or more expected game play results; and
based on the comparison, determine a response to the login request.
32. The system of claim 31, wherein the login request comprises at least one of a user name or password.
33. The system of claim 31, wherein the game play results data further includes data pertaining to game play accuracy.
34. The system of claim 31, wherein the game play results include data pertaining to the user's maneuvers during the authentication game.
35. The system of claim 31, wherein the authentication game is selected based on one or more of the user's age, gender, education, income level, marital status, language, nationality, or occupation.
36. The system of claim 31, wherein the authentication game is selected based on one or more of a user device type, browser type, keyboard layout, or screen size.
37. The system of claim 31, wherein the authentication server is further configured to:
approve the login request based on the determined response to the login request.
38. The system of claim 31, wherein the one or more expected game play results are determined based on the user's prior game play results.
39. The system of claim 31, wherein the authentication server is further configured to:
receive additional information regarding the user including one or more of user demographic information, user location information, or information about the user device.
40. A method for verifying user authentication, the method comprising:
receiving, by an authentication server device, a login request;
receiving, by the authentication server device, information regarding the user including one or more of user demographic information, user location information, or information about a user device;
selecting, by the authentication server device, an authentication game based on the received information;
sending, by the authentication server device, the authentication game to a network server device over a network for interaction with a user;
receiving, by the authentication server device, a game result from the network server device, wherein the game result includes data representing game play results from the interaction of the user with the authentication game, wherein the data representing game play results further includes data pertaining to one or more of game play speed or reaction time;
comparing, by the authentication server device, the data representing the game play results with one or more expected game play results; and
based on the comparison, determining, by the authentication server device, a response to the login request.
US17/156,931 2017-12-08 2021-01-25 Methods and systems for identifying and authorizing a user based on a mini-game login Pending US20210139127A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/156,931 US20210139127A1 (en) 2017-12-08 2021-01-25 Methods and systems for identifying and authorizing a user based on a mini-game login

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/835,752 US10513322B2 (en) 2017-12-08 2017-12-08 Foot pedal for a trolling motor assembly
US16/676,795 US11220317B2 (en) 2017-12-08 2019-11-07 Foot pedal for a trolling motor assembly
US17/156,931 US20210139127A1 (en) 2017-12-08 2021-01-25 Methods and systems for identifying and authorizing a user based on a mini-game login

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US16/676,795 Continuation US11220317B2 (en) 2017-12-08 2019-11-07 Foot pedal for a trolling motor assembly

Publications (1)

Publication Number Publication Date
US20210139127A1 true US20210139127A1 (en) 2021-05-13

Family

ID=66734517

Family Applications (5)

Application Number Title Priority Date Filing Date
US15/835,752 Active US10513322B2 (en) 2017-12-08 2017-12-08 Foot pedal for a trolling motor assembly
US16/276,033 Active 2037-12-09 US10843781B2 (en) 2017-12-08 2019-02-14 Foot pedal for a trolling motor assembly
US16/676,795 Active 2038-04-11 US11220317B2 (en) 2017-12-08 2019-11-07 Foot pedal for a trolling motor assembly
US17/156,931 Pending US20210139127A1 (en) 2017-12-08 2021-01-25 Methods and systems for identifying and authorizing a user based on a mini-game login
US17/543,802 Pending US20220089267A1 (en) 2017-12-08 2021-12-07 Foot pedal for a trolling motor assembly

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US15/835,752 Active US10513322B2 (en) 2017-12-08 2017-12-08 Foot pedal for a trolling motor assembly
US16/276,033 Active 2037-12-09 US10843781B2 (en) 2017-12-08 2019-02-14 Foot pedal for a trolling motor assembly
US16/676,795 Active 2038-04-11 US11220317B2 (en) 2017-12-08 2019-11-07 Foot pedal for a trolling motor assembly

Family Applications After (1)

Application Number Title Priority Date Filing Date
US17/543,802 Pending US20220089267A1 (en) 2017-12-08 2021-12-07 Foot pedal for a trolling motor assembly

Country Status (1)

Country Link
US (5) US10513322B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11458406B2 (en) * 2020-02-21 2022-10-04 Electronic Arts Inc. Progressive human user detection challenges with rewards

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD917565S1 (en) 2017-07-13 2021-04-27 Brunswick Corporation Tiller for outboard motor
USD886865S1 (en) 2017-10-31 2020-06-09 Navico Holding As Trolling motor mount
USD886863S1 (en) * 2017-10-31 2020-06-09 Navico Holding As Trolling motor foot pedal
USD886864S1 (en) 2017-10-31 2020-06-09 Navico Holding As Trolling motor head
US10513322B2 (en) 2017-12-08 2019-12-24 Navico Holding As Foot pedal for a trolling motor assembly
US10739771B2 (en) 2017-12-11 2020-08-11 Garmin Switzerland Gmbh Multiple motor control system for navigating a marine vessel
US10717509B2 (en) * 2018-12-04 2020-07-21 Navico Holding As Trolling motor system with damage prevention feedback mechanism and associated methods
US10604222B1 (en) * 2018-12-04 2020-03-31 Navico Holding As Foot pedal for a trolling motor assembly
USD963698S1 (en) * 2019-06-26 2022-09-13 Brunswick Corporation Trolling motor foot pedal
US11008085B2 (en) 2019-07-29 2021-05-18 Navico Holding As Trolling motor steering assembly with stall prevention
US11597486B1 (en) 2019-12-18 2023-03-07 Brunswick Corporation Tiller for outboard motor
US11084563B1 (en) 2019-12-18 2021-08-10 Brunswick Corporation Tiller for outboard motor
USD948577S1 (en) 2019-12-23 2022-04-12 Navico Holding As Trolling motor head
USD925605S1 (en) * 2019-12-23 2021-07-20 Navico Holding As Trolling motor foot pedal
USD948576S1 (en) 2019-12-23 2022-04-12 Navico Holding As Trolling motor mount
US11046408B1 (en) 2020-02-20 2021-06-29 Navico Holding As Systems and methods for rotational control of a trolling motor
US11858609B2 (en) 2020-05-27 2024-01-02 Garmin Switzerland Gmbh Foot controller system for marine motor
US11531341B2 (en) 2020-06-12 2022-12-20 Garmin Switzerland Gmbh Marine autopilot system
US11796661B2 (en) 2021-05-21 2023-10-24 Navico, Inc. Orientation device for marine sonar systems
US11760457B2 (en) 2021-07-09 2023-09-19 Navico, Inc. Trolling motor foot pedal controlled sonar device

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140047527A1 (en) * 2012-08-07 2014-02-13 Timothy Ngo System and Method for Detecting and Preventing Automated Interaction Based on Detected Actions Performed by User to Solve a Proffered Puzzle
US20150128236A1 (en) * 2013-11-04 2015-05-07 Google Inc. Systems and Methods for Verifying a User Based on Reputational Information
US9348981B1 (en) * 2011-01-23 2016-05-24 Google Inc. System and method for generating user authentication challenges
US20170090569A1 (en) * 2015-09-25 2017-03-30 Immersion Corporation Haptic captcha
US20180211059A1 (en) * 2017-01-23 2018-07-26 Health2047, Inc. Trust based access to records via encrypted protocol communications with authentication system
US20190220863A1 (en) * 2016-12-04 2019-07-18 Biocatch Ltd. Method, Device, and System of Detecting Mule Accounts and Accounts used for Money Laundering
US20200004988A1 (en) * 2016-06-10 2020-01-02 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US20200053074A1 (en) * 2018-08-13 2020-02-13 Hoi Lam Lum Systems and methods for multi-factor authentication
US10675544B2 (en) * 2017-03-31 2020-06-09 Sony Interactive Entertainment LLC Personalized user interface based on in-application behavior
US20200279455A1 (en) * 2019-02-28 2020-09-03 At&T Intellectual Property I, L.P. Method to detect and counteract suspicious activity in an application environment

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2877733A (en) * 1957-01-22 1959-03-17 Garrett H Harris Electric steering and power control system for outboard motors
US3598947A (en) * 1969-11-03 1971-08-10 Osborn Engineering Corp Pedal operated control for electric fishing motors
US3807345A (en) * 1972-01-20 1974-04-30 Magalectric Corp Trolling motor steering and speed control means
US4722706A (en) * 1986-11-13 1988-02-02 Young Edward W Trolling motor foot pedal roller base
US5491636A (en) 1994-04-19 1996-02-13 Glen E. Robertson Anchorless boat positioning employing global positioning system
US5892338A (en) * 1995-07-12 1999-04-06 Zebco Corporation Radio frequency remote control for trolling motors
US6054831A (en) 1998-03-24 2000-04-25 Zebco Corporation Radio frequency remote control for trolling motors
US6325684B1 (en) * 1999-06-11 2001-12-04 Johnson Outdoors, Inc., Trolling motor steering control
US6447347B1 (en) 2000-07-06 2002-09-10 Louis P. Steinhauser Trolling motor position responsive system
US6652331B2 (en) 2000-07-13 2003-11-25 Brunswick Corporation Trolling motor with integral sonar transducer
US6661742B2 (en) 2000-10-13 2003-12-09 Johnson Outdoors Inc. Trolling motor with sonar transducer
US6524144B2 (en) 2001-01-29 2003-02-25 B. Phil Pasley Spring assembly for trolling motor bracket
US6507164B1 (en) 2001-04-20 2003-01-14 Brunswick Corporation Current based power management for a trolling motor
US6678589B2 (en) 2002-04-08 2004-01-13 Glen E. Robertson Boat positioning and anchoring system
US20030214483A1 (en) 2002-05-14 2003-11-20 Hammer Douglas A. Foot control mechanism for computer mouse
US6909946B1 (en) 2002-10-31 2005-06-21 Garmin Ltd. System and method for wirelessly linking electronic marine components
US6902446B1 (en) 2003-04-07 2005-06-07 Brunswick Corporation DC motor with integral controller
US6919704B1 (en) 2003-07-09 2005-07-19 Brunswick Corporation Reverse battery protection for a trolling motor
US7268703B1 (en) 2003-09-18 2007-09-11 Garmin Ltd. Methods, systems, and devices for cartographic alerts
US7004804B2 (en) 2004-05-17 2006-02-28 Johnson Outdoors Inc. Trolling motor mount
PL1891461T3 (en) 2004-08-02 2014-11-28 Johnson Outdoors Inc Sonar imaging system for mounting to watercraft
US7303595B1 (en) 2005-02-28 2007-12-04 Brunswick Corporation Impact absorbing isolator sleeve and assembly for mounting a trolling motor
US7452251B2 (en) 2006-01-20 2008-11-18 Torqeedo Gmbh Integrated outboard motor
US7538511B2 (en) 2007-01-17 2009-05-26 Johnson Outdoors Inc. Modular trolling motor control system
US20090037040A1 (en) 2007-08-03 2009-02-05 Johnson Outdoors, Inc. Bidirectional wireless controls for marine devices
USD594034S1 (en) 2007-09-12 2009-06-09 Johnson Outdoors Inc. Trolling motor mount
US8082100B2 (en) 2007-10-19 2011-12-20 Grace Ted V Watercraft automation and aquatic effort data utilization
US7722417B2 (en) 2008-03-04 2010-05-25 Johnson Outdoors Inc. Trolling motor mount with mono main arm
US8305844B2 (en) 2008-08-07 2012-11-06 Depasqua Louis Sonar navigation system and method
US8814129B2 (en) 2008-10-31 2014-08-26 William J. Todd Trolling motor mount
CA2700817C (en) 2009-04-23 2017-07-11 Rm Industries, Inc. Trolling motor steering system
US8106617B1 (en) 2009-05-29 2012-01-31 Brunswick Corporation Motor power-management protection method and circuit
US8761976B2 (en) 2010-07-16 2014-06-24 Johnson Outdoors Inc. System and method for controlling a trolling motor
US8645012B2 (en) 2010-08-20 2014-02-04 Johnson Outdoors Inc. System and method for automatically navigating a depth contour
JP2012061043A (en) 2010-09-14 2012-03-29 Brother Ind Ltd Sewing machine operating device and sewing machine having the same
US8792306B2 (en) 2011-02-14 2014-07-29 Robert Harold Palmer Apparatuses and methods for attracting aquatic animals
WO2013126761A1 (en) 2012-02-22 2013-08-29 Johnson Outdoors Inc. 360 degree imaging sonar and method
US9160210B2 (en) 2012-04-02 2015-10-13 Brunswick Corporation Rotary encoders for use with trolling motors
US8888065B2 (en) 2013-01-22 2014-11-18 Dennis M. Logan Trolling motor stabilizer mount
US9127707B1 (en) 2013-03-13 2015-09-08 T-H Marine Supplies, Inc. Trolling motor lift cord apparatus
US8991280B2 (en) 2013-03-14 2015-03-31 Brunswick Corporation Steering apparatus providing variable steering ratios
US9459350B2 (en) 2013-03-15 2016-10-04 Johnson Outdoors Inc. Sector-scanning device
US9278745B2 (en) 2013-04-10 2016-03-08 William Edward Kooi, JR. Vertical travel assistance unit for a trolling motor
US9746874B2 (en) 2013-07-08 2017-08-29 Johnson Technologies Corporation Ergonomically symmetric pedal control system
US9527558B2 (en) 2013-07-09 2016-12-27 JST Performance, LLC Method and apparatus for marine-based lighting mechanisms
US9296455B2 (en) 2014-04-17 2016-03-29 Johnson Outdoors Inc. Trolling motor
US9676462B2 (en) 2014-07-02 2017-06-13 Johnson Outdoors Inc. Trolling motor with power steering
US10464653B2 (en) 2014-07-16 2019-11-05 Neil D. Anderson Networked architecture for a control system for a steerable thrusting device
US9290256B1 (en) 2014-11-14 2016-03-22 Brunswick Corporation Systems and methods for steering a trolling motor
US10336425B2 (en) * 2017-02-27 2019-07-02 Navico Holding As Variable rate of turn for a trolling motor
US10513322B2 (en) 2017-12-08 2019-12-24 Navico Holding As Foot pedal for a trolling motor assembly

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9348981B1 (en) * 2011-01-23 2016-05-24 Google Inc. System and method for generating user authentication challenges
US20140047527A1 (en) * 2012-08-07 2014-02-13 Timothy Ngo System and Method for Detecting and Preventing Automated Interaction Based on Detected Actions Performed by User to Solve a Proffered Puzzle
US20150128236A1 (en) * 2013-11-04 2015-05-07 Google Inc. Systems and Methods for Verifying a User Based on Reputational Information
US20170090569A1 (en) * 2015-09-25 2017-03-30 Immersion Corporation Haptic captcha
US20200004988A1 (en) * 2016-06-10 2020-01-02 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US20190220863A1 (en) * 2016-12-04 2019-07-18 Biocatch Ltd. Method, Device, and System of Detecting Mule Accounts and Accounts used for Money Laundering
US20180211059A1 (en) * 2017-01-23 2018-07-26 Health2047, Inc. Trust based access to records via encrypted protocol communications with authentication system
US10675544B2 (en) * 2017-03-31 2020-06-09 Sony Interactive Entertainment LLC Personalized user interface based on in-application behavior
US20200053074A1 (en) * 2018-08-13 2020-02-13 Hoi Lam Lum Systems and methods for multi-factor authentication
US20200279455A1 (en) * 2019-02-28 2020-09-03 At&T Intellectual Property I, L.P. Method to detect and counteract suspicious activity in an application environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11458406B2 (en) * 2020-02-21 2022-10-04 Electronic Arts Inc. Progressive human user detection challenges with rewards

Also Published As

Publication number Publication date
US11220317B2 (en) 2022-01-11
US10843781B2 (en) 2020-11-24
US10513322B2 (en) 2019-12-24
US20190176953A1 (en) 2019-06-13
US20190176952A1 (en) 2019-06-13
US20200070943A1 (en) 2020-03-05
US20220089267A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
US20210139127A1 (en) Methods and systems for identifying and authorizing a user based on a mini-game login
US10216923B2 (en) Dynamically updating CAPTCHA challenges
US10839065B2 (en) Systems and methods for assessing security risk
KR102141836B1 (en) Two factor authentication
US10462665B2 (en) Multifactor network authentication
US10574697B1 (en) Providing a honeypot environment in response to incorrect credentials
WO2017071551A1 (en) Method and device for preventing malicious access to login/registration interface
US20160057157A1 (en) Verification method, apparatus, server and system
KR102429406B1 (en) Check user interactions on the content platform
US9934310B2 (en) Determining repeat website users via browser uniqueness tracking
CN102739638B (en) Establishing privileges through claims of valuable assets
US20160072792A1 (en) Verification method, apparatus, server and system
CN112187702A (en) Method and device for verifying client
US20140373096A1 (en) Roaming Internet-Accessible Application State Across Trusted and Untrusted Platforms
WO2013192021A1 (en) Dynamic human interactive proof
EP3819797A1 (en) Methods and systems for identifying and authorizing a user based on a mini-game login
US11374915B1 (en) Security challenge bypass
WO2020023145A1 (en) Web browser incorporating social and community features
US9015801B1 (en) Methods and systems for handling recovery messages
US11924219B1 (en) Age assurance during an interactive query workflow
US9641538B1 (en) Authenticating an entity
CN109951431B (en) Verification method, system, electronic device and computer readable medium
KR20240021195A (en) Method and system for verifying transactions in a client-server environment

Legal Events

Date Code Title Description
AS Assignment

Owner name: CAPITAL ONE SERVICES, LLC, VIRGINIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WALTERS, AUSTIN;TRUONG, ANH;PHAM, VINCENT;AND OTHERS;SIGNING DATES FROM 20191106 TO 20191107;REEL/FRAME:055090/0438

STPP Information on status: patent application and granting procedure in general

Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED