METHOD AND SYSTEM FOR USER AUTHENTICATION

A method and a system for user login authentication are provided. The system receives an input of username from a user. The system prompts the user to select one or more types of attributes followed by an input of the one or more attributes associated with the selection. The system receives an input of password from the user. The system generates a user identity by combining the username, the selected attributes, and a system generated attribute. The system authenticates the user by comparing the generated user identity and the password with corresponding entries created and saved earlier in a user login profile.

BACKGROUND

In general, user authentication is required to gain access to an operating system, a computer application, a website, etc. Conventional authentication typically depends on a fixed username and password combination. The password can be one-time password (OTP), or a fixed password. A common technology used for the delivery of one-time passwords is text messaging, or short messaging service (SMS). However, incorporating an one-time password solution, i.e., sending one-time password messages is very expensive especially for an enterprise environment, or intranet users. Moreover, one-time password messages are less secure, because the one-time password messages are transported on the global SS7 network which is unencrypted, unauthenticated, and has no integrity protection.

Therefore, there is long felt need for a secure and cost efficient user authentication.

SUMMARY OF THE INVENTION

This summary is provided to introduce a selection of concepts in a simplified form that are further disclosed in the detailed description of the invention. This summary is not intended to identity key or essential inventive concepts of the claimed subject matter, nor is it intended for determining the scope of the claimed subject matter.

The method and system disclosed herein addresses the above recited need for a secure and cost efficient user authentication. The method comprises creating a user login profile and then using the created user login profile for user login authentication.

The method for creating the user login profile comprises a client application executable by at least one processor configured to manage a graphical user interface of an user device and actions associated with the creation of user login profile. To create the user login profile, the client application displays a login user interface on the user device. The login user interface comprises a plurality of fields to enter a username, one or more attributes associated with the username, and a password. The attributes comprises one or more of date, day, current hour, current minute, location, math equation, word based on date, word based on time, word plus number based on date, word plus number based on time, and any combination thereof. The client application receives an input of the username from a user. The client application prompts the user to select one or more types of the attribute followed by an input of one or more attributes associated with the selection. The client application receives an input of the password from the user. The client application generates a user identity by combining the username, the selected attributes, and a system generated attribute. The client application creates the user login profile for the user using the generated user identity and the password, and the created user login profile is saved in a database along with the system generated attribute.

The method for user login authentication comprises a client application executable by at least one processor configured to manage a graphical user interface of a user device and actions associated with the user login authentication. To perform the user login authentication, the client application displays a login user interface on the user device. The login user interface comprises multiple fields to enter a username, one or more attributes associated with the username, and a password. The client application receives an input of the username from a user. The client application prompts the user to select one or more types of the attribute followed by an input of one or more attributes associated with the selection. The client application receives an input of the password from the user. The client application generates a user identity by combining the username, the selected attributes, and the previously saved system generated attribute. The client application authenticates the user by comparing the generated user identity and the password with corresponding entries created and saved earlier in a user login profile. If the user is unable to login after a predetermined number of login attempts the client application sends a one-time password to a registered device of the user to enable the user to re-create the user login profile.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1exemplarily illustrates a method for creating a user login profile. The method disclosed herein provides101a client application executable by at least one processor configured to manage a graphical user interface of a user device402and actions associated with the creation of user login profile. To create the user login profile, the client application displays102a login user interface300on the user device402. The login user interface300comprises multiple fields to enter a username, one or more attributes associated with the username, and a password. The client application receives103an input of the username from a user. The client application prompts104the user to select one or more types of the attribute followed by an input of one or more attributes associated with the selection. The types of attributes comprises one or more of date, day, current hour, current minute, location, math equation, word based on date, word based on time, word plus number based on date, word plus number based on time, and any combination thereof. The client application receives105an input of the password from the user. The client application generates106a user identity by combining the username, the selected attributes, and a system generated attribute. The client application creates107the user login profile for the user using the generated user identity and the password. The created user login profile is saved108in a database along with the system generated attribute.

FIG. 2exemplarily illustrates a method for user login authentication. The method disclosed herein provides201a client application executable by at least one processor configured to manage a graphical user interface of a user device402and actions associated with the user login authentication. To perform202the user login authentication, the client application displays202aa login user interface300on the user device402. The login user interface300comprises multiple fields to enter a username, one or more attributes associated with the username, and a password. The client application receives202ban input of the username from a user. The client application prompts202cthe user to select one or more types of attributes followed by an input of one or more attributes associated with the selection. The types of the attributes comprises one or more of date, day, current hour, current minute, location, math equation, word based on date, word based on time, word plus number based on date, word plus number based on time, and any combination thereof. The client application receives202dan input of the password from the user. The client application generates202ea user identity by combining the username, the selected attributes, and the previously saved system generated attribute. The client application authenticates the user login by comparing202fthe generated user identity and the password with corresponding entries in a user login profile stored in a database. The client application further sends a one-time password to a registered device of the user when the user is unable to login after a predetermined number of login attempts to enable the user to re-create the user login profile.

FIG. 3exemplarily illustrates a screenshot of a login user interface300for creating a user login profile and for performing user login authentication. As exemplarily illustrated inFIG. 3, the login user interface300comprises multiple fields301,302,303,304, and305to enter a username, one or more attributes associated with the username, and a password. To create the user login profile the user inputs a username into the field301. The user selects one or more types of the attribute in the field302a,followed by an input of one or more attributes into the fields303and304associated with the selection. The user inputs a password into the field305. Types of the attributes comprise one or more of date, day, current hour, current minute, location, math equation, word based on date, word based on time, word plus number based on date, word plus number based on time, and any combination thereof. The client application generates a user identity by combining the username, the values of the selected attributes and a system generated attribute, as exemplarily illustrated in the equation below. The user selects the field306to create the user login profile. The client application creates the user login profile for the user using the generated user identity and the password. The created user login profile is saved in a database along with the system generated attribute.

As exemplarily illustrated inFIG. 3, to login into a system, for example, an operating system, a computer application, a website, etc., the user inputs a username into the field301. The user selects one or more types of the attribute in the field302a,followed by an input of one or more attributes into the fields303and304associated with the selection. The user inputs a password into the field305. Types of the attributes comprise one or more of date, day, current hour, current minute, location, math equation, word based on date, word based on time, word plus number based on date, word plus number based on time, and any combination thereof. The client application generates a user identity by combining the username, the values of the selected first attributes, and the previously saved system generated attribute, as exemplarily illustrated in the equation above. The user selects the filed307to login into the system. The client application performs the user login authentication by comparing the generated user identity and the password with corresponding entries created and saved earlier in the user login profile.

FIG. 4exemplarily illustrates a computer implemented system400comprising an authentication system403for creating a user login profile and for performing user login authentication. The authentication system403is a computer system that is programmable using a high level computer programming language. In an embodiment, the authentication system403uses programmed and purposeful hardware. The authentication system403is implemented on a computing device, for example, a personal computer, a tablet computing device, a mobile computer, a portable computing device, a laptop, a touch device, a workstation, a server, portable electronic device, a network enabled computing device, an interactive network enabled communication device, any other suitable computing equipment, combinations of multiple pieces of computing equipment, etc. In an embodiment, the computing equipment is used to implement applications such as media playback applications, a web browser, an electronic mail (email) application, a calendar application, etc. In another embodiment, the computing equipment, for example, one or more servers are associated with one or more online services. In an embodiment, the authentication system403is configured as a web based platform, for example, a website hosted on a server or a network of servers.

The authentication system403communicates with user devices402via the network401, for example, a short range network or a long range network. The user devices402comprise electronic devices, for example, personal computers, tablet computing devices, mobile computers, mobile phones, smartphones, portable computing devices, personal digital assistants, laptops, wearable computing devices such as the Google Glass® of Google Inc., the Apple Watch® of Apple Inc., etc., touch centric devices, client devices, portable electronic devices, network enabled computing devices, interactive network enabled communication devices, any other suitable computing equipment, combinations of multiple pieces of computing equipment, etc. In an embodiment, the user devices402are hybrid computing devices that combine the functionality of multiple devices. Examples of a hybrid computing device comprise a cellular telephone that includes a media player functionality, a gaming device that includes a wireless communications capability, a cellular telephone that includes a document reader and multimedia functions, and a portable device that has network browsing, document rendering, and network communication capabilities.

The network401is, for example, the internet, an intranet, a wireless network, a communication network that implements Bluetooth® of Bluetooth Sig, Inc., a network that implements Wi-Fi® of Wi-Fi Alliance Corporation, an ultra-wideband communication network (UWB), a wireless universal serial bus (USB) communication network, a communication network that implements ZigBee® of ZigBee Alliance Corporation, a general packet radio service (GPRS) network, a mobile telecommunication network such as a global system for mobile (GSM) communications network, a code division multiple access (CDMA) network, a third generation (3G) mobile communication network, a fourth generation (4G) mobile communication network, a fifth generation (5G) mobile communication network, a long-term evolution (LTE) mobile communication network, a public telephone network, etc., a local area network, a wide area network, an internet connection network, an infrared communication network, etc., or a network formed from any combination of these networks. In an embodiment, the authentication system403is accessible to a satellite internet of users, for example, through a broad spectrum of technologies and devices such as cellular phones, tablet computing devices, etc., with access to the internet.

As exemplarily illustrated inFIG. 4, authentication system403comprises a non-transitory computer readable storage medium, for example, a memory unit406for storing programs and data, and at least one processor404communicatively coupled to the non-transitory computer readable storage medium. As used herein, “non-transitory computer readable storage medium” refers to all computer readable media, for example, non-volatile media, volatile media, and transmission media, except for a transitory, propagating signal. Non-volatile media comprise, for example, solid state drives, optical discs or magnetic disks, and other persistent memory volatile media including a dynamic random access memory (DRAM), which typically constitute a main memory. Volatile media comprise, for example, a register memory, a processor cache, a random access memory (RAM), etc. Transmission media comprise, for example, coaxial cables, copper wire, fiber optic cables, modems, etc., including wires that constitute a system bus coupled to the processor404. The non-transitory computer readable storage medium is configured to store computer program instructions defined by modules, for example,407a-407fetc., of the authentication system403. The modules407a-407fare installed and stored in the memory unit406of the authentication system403. The memory unit406is used for storing program instructions, applications, and data. The memory unit406is, for example, a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by the processor404. The memory unit406also stores temporary variables and other intermediate information used during execution of the instructions by the processor404. The authentication system403further comprises a read only memory (ROM) or another type of static storage device that stores static information and instructions for the processor404.

The processor404is configured to execute the computer program instructions defined by the modules, for example,407a-407f,etc., of the authentication system403. The processor404refers to any of one or more microprocessors, central processing unit (CPU) devices, finite state machines, computers, microcontrollers, digital signal processors, logic, a logic device, a user circuit, an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a chip, etc., or any combination thereof, capable of executing computer programs or a series of commands, instructions, or state transitions. In an embodiment, the processor404is implemented as a processor set comprising, for example, a programmed microprocessor and a math or graphics co-processor. The processor404is selected, for example, from the Intel® processors such as the Itanium® microprocessor or the Pentium® processors, Advanced Micro Devices (AMD®) processors such as the Athlon® processor, UltraSPARC® processors, microSPARC® processors, hp® processors, International Business Machines (IBM®) processors such as the PowerPC® microprocessor, the MIPS® reduced instruction set computer (RISC) processor of MIPS Technologies, Inc., RISC based computer processors of ARM Holdings, Motorola® processors, Qualcomm® processors, etc. The authentication system403disclosed herein is not limited to employing a processor404. In an embodiment, the authentication system403employs a controller or a microcontroller.

As exemplarily illustrated inFIG. 4, the authentication system403further comprises a data bus415, a network interface409, an input/output (I/O) controller410, input devices411, a fixed media drive412such as a hard drive, a removable media drive413for receiving removable media, output devices414, etc. The data bus415permits communications between the modules, for example,407a-407fetc., of the authentication system403. The network interface409enables connection of authentication system403to the network401. In an embodiment, the network interface409is provided as an interface card also referred to as a line card. The network interface409comprises, for example, one or more of an infrared (IR) interface, an interface implementing Wi-Fi® of Wi-Fi Alliance Corporation, a universal serial bus (USB) interface, a FireWire® interface of Apple Inc., an Ethernet interface, a frame relay interface, a cable interface, a digital subscriber line (DSL) interface, a token ring interface, a peripheral controller interconnect (PCI) interface, a local area network (LAN) interface, a wide area network (WAN) interface, interfaces using serial protocols, interfaces using parallel protocols, Ethernet communication interfaces, asynchronous transfer mode (ATM) interfaces, a high speed serial interface (HSSI), a fiber distributed data interface (FDDI), interfaces based on a transmission control protocol (TCP)/internet protocol (IP), interfaces based on wireless communications technology such as satellite technology, radio frequency (RF) technology, near field communication, etc. The I/O controller410controls input actions and output actions performed by the authentication system403.

The display screen405, via the graphical user interface (GUI)405a,displays multiple fields to enter a username, one or more first attributes associated with the username, a password, and one or more second attributes associated with the password. The display screen405is, for example, a video display, a liquid crystal display, a plasma display, an organic light emitting diode (OLED) based display, etc. The authentication system403provides the GUI405aon the display screen405. The GUI405ais, for example, an online web interface, a web based downloadable application interface, a mobile based downloadable application interface, etc. The display screen405displays the GUI405a.The input devices411are used for inputting data into the authentication system403. The input devices411are, for example, a keyboard such as an alphanumeric keyboard, a microphone, a joystick, a pointing device such as a computer mouse, a touch pad, a light pen, a physical button, a touch sensitive display device, a track ball, a pointing stick, any device capable of sensing a tactile input, etc. The output devices414output the results of operations performed by the authentication system403.

The authentication system403comprises a client application407. The modules of the client application407comprise a display module407a,an input module407b,an attribute module407c,a user identity module407d,a login profile generation module407eand a login authentication module407fstored in the memory unit406of the authentication system403. The display module407adisplays a login user interface300on the user device402. The login user interface300comprises multiple fields to enter a username, one or more attributes associated with the username, and a password. The input module407breceives an input of the username from a user. The attribute module407cprompts the user to select one or more types of the attribute followed by an input of one or more attributes associated with the selection. The input module407breceives an input of the password from the user. The user identity module407dgenerates a user identity by combining the username, the selected attributes, and a system generated attribute. The login profile generation module407ecreates the user login profile for the user using the generated user identity and the password. The client application407saves the created user login profile in the database408along with the system generated attribute. The login authentication module407fauthenticates the user by comparing the generated user identity and the password with corresponding entries created and saved earlier in the user login profile. The authentication system403further comprises a short message service module to send a one-time password to a registered device of the user when the user is unable to login after a predetermined number of login attempts to enable the user to re-create the user login profile.

The non-transitory computer readable storage medium disclosed herein stores computer program codes that comprise instructions executable by at least one processor for creating a user login profile and for performing user login authentication. The computer program codes comprise codes for creating a user login profile and codes for performing user login authentication. The codes for creating the user login profile comprises a first computer program code for displaying a login user interface on the user device, wherein the login user interface comprises a plurality of fields to enter a username, one or more attributes associated with the username, and a password; a second computer program code for receiving an input of the username from a user; a third computer program code for prompting the user to select one or more types of the attribute followed by an input of one or more the attributes associated with the selection; a fourth computer program code for receiving an input of the password from the user; a fifth computer program code for generating a user identity by combining the username, the selected attributes, and a system generated attribute; a sixth computer program code for creating the user login profile for the user using the generated user identity and the password; and a seventh computer program code for saving the created user login profile in a database along with the system generated attribute.

The codes for performing user login authentication comprise an eighth computer program code for displaying a login user interface on the user device, wherein the login user interface comprises a plurality of fields to enter a username, one or more attributes associated with the username, and a password; a ninth computer program code for receiving an input of the username from a user; a tenth computer program code for prompting the user to select one or more types of the attribute followed by an input of one or more attributes associated with the selection; an eleventh computer program code for receiving an input of the password from the user; a twelfth computer program code for generating a user identity by combining the username, the selected attributes, and the previously saved system generated attribute; and a thirteenth computer program code for authenticating the user by comparing the generated user identity and the password with corresponding entries created and saved earlier in a user login profile. The computer program codes further comprise a fourteenth computer program code for sending an one-time password to a registered device of the user when the user is unable to login after a predetermined number of login attempts to enable the user to re-create the user login profile.

It will be readily apparent in different embodiments that the various methods, algorithms, and computer programs disclosed herein are implemented on non-transitory computer readable storage media appropriately programmed for computing devices. The non-transitory computer readable storage media participates in providing data, for example, instructions that are read by a computer, a processor or a similar device. In different embodiments, the “non-transitory computer readable storage media” further refers to a single medium or multiple media, for example, a centralized database, a distributed database, and/or associated caches and servers that store one or more sets of instructions that are read by a computer, a processor or a similar device. The “non-transitory computer readable storage media” further refers to any medium capable of storing or encoding a set of instructions for execution by a computer, a processor or a similar device and that causes a computer, a processor or a similar device to perform any one or more of the methods disclosed herein. Common forms of non-transitory computer readable storage media comprise, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, a laser disc, a Blu-ray Disc® of the Blu-ray Disc Association, any magnetic medium, a compact disc-read only memory (CD-ROM), a digital versatile disc (DVD), any optical medium, a flash memory card, punch cards, paper tape, any other physical medium with patterns of holes, a random access memory (RAM), a programmable read only memory (PROM), an erasable programmable read only memory (EPROM), an electrically erasable programmable read only memory (EEPROM), a flash memory, any other memory chip or cartridge, or any other medium from which a computer can read.

In an embodiment, the computer programs that implement the methods and algorithms disclosed herein are stored and transmitted using a variety of media, for example, the computer readable media in a number of manners. In an embodiment, hard-wired circuitry or custom hardware is used in place of, or in combination with, software instructions for implementing the processes of various embodiments. Therefore, the embodiments are not limited to any specific combination of hardware and software. The computer program codes comprising computer executable instructions can be implemented in any programming language. Examples of programming languages that can be used comprise C, C++, C#, Java®, JavaScript®, Fortran, Ruby, Peri®, Python®, Visual Basic®, hypertext preprocessor (PHP), Microsoft® .NET, Objective-C®, etc. Other object-oriented, functional, scripting, and/or logical programming languages can also be used. In an embodiment, the computer program codes or software programs are stored on or in one or more mediums as object code. In another embodiment, various aspects of the method and the authentication system403disclosed herein are implemented in a non-programmed environment comprising documents created, for example, in a hypertext markup language (HTML), an extensible markup language (XML), or other format that render aspects of a graphical user interface (GUI) or perform other functions, when viewed in a visual area or a window of a browser program. In another embodiment, various aspects of the method and the authentication system403disclosed herein are implemented as programmed elements, or non-programmed elements, or any suitable combination thereof.

Where databases408are described, it will be understood by one of ordinary skill in the art that (i) alternative database structures to those described may be employed, and (ii) other memory structures besides databases may be employed. Any illustrations or descriptions of any sample databases disclosed herein are illustrative arrangements for stored representations of information. In an embodiment, any number of other arrangements are employed besides those suggested by tables illustrated in the drawings or elsewhere Similarly, any illustrated entries of the databases represent exemplary information only; one of ordinary skill in the art will understand that the number and content of the entries can be different from those disclosed herein. In another embodiment, despite any depiction of the databases as tables, other formats including relational databases, object-based models, and/or distributed databases are used to store and manipulate the data types disclosed herein. Object methods or behaviors of a database can be used to implement various processes such as those disclosed herein. In another embodiment, the databases are, in a known manner, stored locally or remotely from a device that accesses data in such a database. In embodiments where there are multiple databases in the authentication system403, the databases are integrated to communicate with each other for enabling simultaneous updates of data linked across the databases, when there are any updates to the data in one of the databases.

The method and the authentication system403disclosed herein can be configured to work in a network environment comprising one or more computers that are in communication with one or more devices via a network. In an embodiment, the computers communicate with the devices directly or indirectly, via a wired medium or a wireless medium such as the Internet, a local area network (LAN), a wide area network (WAN) or the Ethernet, a token ring, or via any appropriate communications mediums or combination of communications mediums. Each of the devices comprises processors, examples of which are disclosed above, that are adapted to communicate with the computers. In an embodiment, each of the computers is equipped with a network communication device, for example, a network interface card, a modem, or other network connection device suitable for connecting to a network. Each of the computers and the devices executes an operating system, examples of which are disclosed above. While the operating system may differ depending on the type of computer, the operating system provides the appropriate communications protocols to establish communication links with the network. Any number and type of machines may be in communication with the computers.

The computer implemented method and the authentication system403disclosed herein are not limited to a particular computer system platform, processor, operating system, or network. In an embodiment, one or more aspects of the computer implemented method and the authentication system403disclosed herein are distributed among one or more computer systems, for example, servers configured to provide one or more services to one or more client computers, or to perform a complete task in a distributed system. For example, one or more aspects of the computer implemented method and the authentication system403disclosed herein are performed on a client-server system that comprises components distributed among one or more server systems that perform multiple functions according to various embodiments. These components comprise, for example, executable, intermediate, or interpreted code, which communicate over a network using a communication protocol. The computer implemented method and the authentication system403disclosed herein are not limited to be executable on any particular system or group of systems, and are not limited to any particular distributed architecture, network, or communication protocol.

The foregoing examples have been provided merely for explanation and are in no way to be construed as limiting of the method and the authentication system403disclosed herein. While the method and the authentication system403have been described with reference to various embodiments, it is understood that the words, which have been used herein, are words of description and illustration, rather than words of limitation. Furthermore, although the method and the authentication system403have been described herein with reference to particular means, materials, and embodiments, the method and the authentication system403are not intended to be limited to the particulars disclosed herein; rather, the method and the authentication system403extend to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims. While multiple embodiments are disclosed, it will be understood by those skilled in the art, having the benefit of the teachings of this specification, that the method and authentication system403disclosed herein are capable of modifications and other embodiments may be effected and changes may be made thereto, without departing from the scope and spirit of the method and the authentication system403disclosed herein.