Patent ID: 12250207

DETAILED DESCRIPTION

A technique is provided that integrates authentication from a mobile device (e.g., using biometrics, social informational data, questions and answers, and more) to allow login to laptops and desktops while they are disconnected from the Internet using a USB cable connection, Bluetooth or local wifi or any other similar protocol and/or connected to Internet without USB. The technique provides a cloud clearinghouse that ties a person's or entity's mobile device(s) to an identity that's used to authenticate a person (could be the same person) on a laptop, desktop, or similar computer system.

Also introduced here is a technique with which to access a user's web applications. The user registers and signs on to an aggregator system using any supported login identity provider username and password. When the user registers for the first time, the system collects additional information to verify the user for a subsequent access to the system. The system also automatically creates a system secret username and secret, highly securely generated password, both of which are unknown and inaccessible to the user. The secret username and password are stored in a lightweight directory access protocol (LDAP) server or database or in a distributed cloud database system. The system also maps the login identity provider user name to the secret user name and password for subsequent usage.

References in this description to “an embodiment”, “one embodiment”, or the like, mean that the particular feature, function, structure or characteristic being described is included in at least one embodiment of the present invention. Occurrences of such phrases in this specification do not necessarily all refer to the same embodiment. On the other hand, the embodiments referred to also are not necessarily mutually exclusive.

An Exemplary Embodiment of an Aggregator Platform without Usernames and Passwords

An exemplary embodiment of an aggregator platform without usernames and passwords is a social single sign-on (“sSSO”) platform. It should be appreciated that the technique discussed herein can also refer to the aggregator system or application, depending on the context of the discussion. Such platform comprises a server that aggregates a plurality of web applications both internal to an organization and that are public facing to login identity providers including social networking sites such as for example LinkedIn or Facebook (Menlo Park, CA; “Facebook”). The platform presents the aggregation of such web applications as links provided to a particular user.

Examples of login identity providers include but are not limited to social networking sites, Linkedin and Facebook. A sample non-exhaustive list can be found inFIG.4, which is described in further detail below.

Non-exhaustive examples of web applications that can be aggregated by the server can be found inFIG.1.FIG.1is a sample innovative interface of a user's page on a sSSO application, which displays a collection of web applications which the user had previously added to his sSSO application.

It should be appreciated that the aggregator platform is not limited to the social single sign-on environment. The techniques introduced herein are applicable to aggregators that allow end users to add an application, such that to link to the application at any future time, and from any device, would not need to reenter an ID and/or password. However, employing the social single sign-on implementation of the technique as discussion herein is for purposes of understanding the innovation herein and not for limiting purposes.

To access any of the user's web applications, the user registers and signs on to a social sign-on system (“sSSO”) using any supported login identity provider user name and password. For example, the user can register to sSSO using his user name and password that he uses for his Linkedin account. If the user is registering for the first time, the sSSO collects additional information to verify the user later such as for a subsequent access to sSSO. For example, sSSO can collect but is not limited to collecting the user's mobile phone number, questions and answers related to information unique to the user, pictures, biometric data, and/or social information from the identity providers, such as for example information regarding friends, pictures, dates, and conversations. sSSO also automatically creates an sSSO secret user name and a sSSO secret, highly securely generated password. Both such secret user name and secret password are unknown and inaccessible to the user. In an embodiment, this secret user name and secret password are stored in an lightweight directory access protocol (LDAP) server or database or in a distributed cloud database system, etc. sSSO also maps or links the login identity provider user name to the secret user name and password of sSSO system for subsequent usage.

After the user has registered, the user can start using signal sign-on to login automatically to web applications available to the sSSO system. The login identity provider is mapped to the sSSO secret internal user name for purposes of displaying the configured SSO enabled web applications to the appropriate sSSO logged in user. In short, the sSSO secret internal user name is used to display the right apps (web applications) to the right user. Thus, for example, when the user obtains a new, upgraded smartphone, the user does not need to download and reenter the user ID and password for each of his web applications. The user can access any and all of his applications registered in the sSSO from the sSSO application.

FIG.2is a sample user interface showing icons representing an enabled and a not enabled SSO application. In this example, the leftmost icon, e.g. Office, represents an SSO enabled application while the icon to the right represents a web application, e.g. Office Depot, that is not enabled. In this example, the sSSO application is configured to display a visual indicator, such as the triangle with the exclamation sign inside, to indicate that such web application is not sSSO enabled.

In an embodiment, to enable a web application for sSSO requires entering a user name and optionally a password. An example implementation can be found inFIG.3.FIG.3is a sample user interface of a registration screen to register a particular web application. In the registration screen, a user can enter his or her user name and optionally his or her password for the particular web application.

If the SSO web application, e.g. Office Depot inFIG.3, is also a login identity provider then sSSO automatically maps or otherwise links the new login identity provider to the sSSO internal secret user name, which enables that login identity provider, e.g. Office Depot, to be used for login in purposes in addition to the existing registered login identity provider, e.g. the original sSSO system. As another example, Facebook and LinkedIn could both be login identity providers to the sSSO system assuming the LinkedIn web application was enabled for single sign-on.

If the sSSO user decides to login using a new unregistered login identity provider, e.g. Facebook, and the user never enabled that login identity provider web application for SSO, the sSSO system will attempt to identify the end user. For example, the sSSO system can go to and use a stored list of usernames and related metadata such as email addresses, actual names, etc., and display candidate selections, e.g. a list of users with similar names from the registered login identity providers, e.g. FACEBOOK: Julie@yahoo.com. That is, the sSSO system prompts the user to pick the login identity provider user name that they recognize. The login identity provider user name can be received by other input means such as for example the user entering his or her user name in a text box, audibly providing the user name, selecting an image that is recognized by the user, providing biometric data such as a finger print, and so on. In addition to using the received user input, the sSSO verifies the identity of the sSSO user by using additional registration information, that is information which was provided by the user when the user registered. For example, such additional registration information can include but is not limited to SMS, Questions/Answers, already registered login identity provider information, biometric information, etc.

An Exemplary Embodiment of Social Single Sign-On Without Username or Password from a Single Sign-On Provider

An embodiment can be understood with reference toFIG.4.FIG.4is a schematic diagram of a system architecture for an aggregator platform, such as for example sSSO, without username or password from the provider, such as for example a SSO provider,400. A user402logs into a social single sign-on (sSSO) application408, e.g. such as at a website, SocialSSO.com for example, in a network environment such as in a cloud environment. A plurality of social login identity providers404are communicably connected with sSSO408such that for example a user can log onto sSSO408through any of these connected social logins identity providers404. sSSO408is communicably connected to a repository, sSSO login database (DB)410. In this illustrative example, repository410is storing two usernames associated with user402:Julia@yahoo.com associated with her Facebook account and JuliaT@icloud.com associated with her Linkedin account. sSSO408is communicably connected to web applications in the cloud406. When the user registered with sSSO408, sSSO408requested additional data from the user that could be used in identifying the user at subsequent points in time. Types of such data include but are not limited to user data, passwords, mobile data, questions and answers, biometric data, and social data. sSSO408stores such data in a second repository414via a distributed directory information service over an Internet Protocol (IP) network412such as for example a Lightweight Directory Access Protocol (LDAP) system412. These user names and other data stored in repository414and accessible via service412are invisible and inaccessible to the users. Thus, user402can login to sSSO408using any of her existing social usernames (as shown in repository410) associated with the respective social login identity provider, which is linked to the user's secret data stored in repository414. Then, after making the link, sSSO proceeds to verify the user by using any of such data in repository414, such as for example, asking for a cell phone number or a asking a question and expecting a specific answer that matches a stored answer.

Social Federation Social Single Sign-On

Social Federation social single sign-on (“sFed”) can be a system, API, or service that enables an organization such as a company, a university, or a government agency, etc. or end user to easily and securely enable an external party such as a contractor, vendor, alumni, family, friends, etc. access to internal (private) and external (public) web applications without using traditional federation technologies or manyually requiring setting up a new user name and password. sFed combined with sSSO easily and securely shares web site login-related data with any user who already has a username and password on a login identity provider website.

An embodiment of the invention can be understood with reference toFIG.5A.FIG.5Ais a flow diagram of a process for registration to a social federation system. To use the sFed system requires an external party to register in sSSO or any registered sSSO user to invite an unregistered sSSO user. After they have been registered, the sFed system detects sSSO registration and registered login identity provider user name. Using the sFed system, API, or service, the organization sFed administrator or a sSSO user can delegate (share) sSSO enabled web applications to a registered user or invite an unregistered sSSO user which automatically registers the user into the sSSO system by requiring the invited user to login once to the sSSO system using a login identity provider user name. For example, FACEBOOK: Julie@yahoo.com registers on sSSO and sFed verifies her identity by sending her a SMS token, or question associated with an expected (Q/A), or requiring a biometric confirmation. Thus, in an embodiment, requiring a user to remember and enter login informational data is not needed. sSSO is configured to transmit an alert to the user, where the user can respond with identifying-related data as discussed above.

An embodiment of the invention can be understood with reference toFIG.5B.FIG.5Bis a process flow for registration to the sSSO system. A user such as an sSSO Client or sSSO Administrator sends an invitation to a recipient, e.g. sSSO Share App Recipient, for the purposes of sharing or delegating an application. If the sSSO recipient is already registered with sSSO, e.g. is a Registered sSSO User, then when such sSSO recipient logs in to sSSO and accepts the invitation, the delegated application is added by the sSSO system to the recipient's collection of sSSO applications. If the sSSO recipient is not yet registered with sSSO, then with the invitation, such recipient is provided the opportunity to register with the sSSO system by providing single or multi-factor verification data. Subsequently, the recipient is a registered sSSO user and the application is added to such user's collection of sSSO applications.

In an embodiment, sSSO enables a user to share login capability along with sharing an application.

FIG.6is a sample user interface showing an SSO user sharing an application with an unregistered or registered SSO user. The user initiates the process for the selected SSO application, e.g. Egnyte, by clicking on the icon.

FIG.7is a sample user interface showing a user has selected a share command to send to a recipient user. The share command can be sent via multiple methods including but not limited to email, SMS, social network, copying, etc.

FIG.8is a sample user interface showing how after the SSO user proceeds with registration or login to SSO, they subsequently have capability of seeing or accessing shared SSO applications. For example, the user can access the shared applications by selecting a drop menu that contains a link to a shared apps page. In this example, the system provides a link to shared applications for each recipient.

An embodiment provides a sSSO delegation administrator model and corresponding functionality. An administrator can delegate a particular sSSO user to a particular sSSO application, as shown inFIG.9for example.FIG.9is a sample user interface of a delegation page in which a user can enter a delegation type, e.g. SocialLogin.me, provider type, e.g. Sign in with Facebook, a provider user name, e.g. Julie@yahoo.com, applicable filters, and a selection of one or more applications to share, e.g. Go Daddy.

FIG.10is a sample user interface showing a non-exhaustive sample dropdown list of the provider types ofFIG.9, each selected type enabling the user to sign in to sSSO and/or sSSO's various enabled web applications or sSSO enterprise connected applications.

If the sFed administrator or sSSO end user is delegating (sharing) a SSO enabled web application, that is using a fixed username and password or a known user name and password to multiple people or shared within the organization to the sSSO user, then system is configured to cause the shared web application to automatically appear on the sSSO users' sSSO interface. For example, sFed uses an API or direct database calls to add the new SSO enabled web application to the user's sSSO interface.

If the sFed administrator is delegating a SSO enabled web application that is using a username and password that is unique to the sSSO user, then sFed automatically creates a user name and password on the enabled web application. For example, sFed can use a format for exchanging authentication and authorization data between parties such as between an identity provider and a service provider, e.g. Security Assertion Markup Language (SAML). Or sFed can use internal methods. Then the SSO enabled web application automatically appears enabled on the sSSO user's sSSO interface.

Web Crawler for Applications Requiring Logons

A technique is introduced by which a web crawler system crawls for web applications that require logons, regardless of content. Each identified web application is added to a database, such as for example the sSSO databases410or414, of such type of applications. In accordance to one technique, the web crawler system discovers a web application and then attempts to logon to the application with a bogus ID and a bogus password. If the attempt is unsuccessful, the web crawler system creates a definition for the web application, where the definition defines attributes of the web application. The web crawler system uses these attributes to categorize the web application within the database. Based on matching the categorization and user profiles, the web crawler system offers the web application to a particular user to add the web application to the user's aggregation of web applications. For instance, the web crawler system can display or send a message to the particular user indicating, “You like bicycles. Perhaps you′d like to add this bicycle application (′bikeapp.com) to your aggregated applications.”

Alternate Embodiments

A smartphone or tablet paradigm or environment illustrates how the innovation solves the technical problem of using computer network resources and bandwidth efficiently by streamlining user interactions with the network.FIG.11illustrates an example of a user interface showing a home page of the aggregator system.FIG.12illustrates an example of two different devices, a tablet and a smartphone, each displaying the home page web page of the aggregator system.FIG.13illustrates an example of a user interface showing four web applications that a user can configure to add to his aggregator system.FIG.14illustrates an example of a user interface showing icons representing web applications which were added to the system and from which the user can launch with just one click.

For any new device and in particular for the devices shown, the innovation streamlines user interactions with network, because the user does not need to download and reenter a user ID and password for each of the user's applications. With the technique introduced herein, the user can launch any application already registered in the aggregator platform with a single click, for instance as shown inFIG.14.

A further efficiency, among others, is afforded the technique introduced here by enabling a user from any device the ability to login with one click to the aggregator system, e.g. as shown inFIG.11.

A further efficiency is afforded the technique by allowing the user, in addition to launching with one click to a designated application, to add and configure a new application to his already registered applications, as shown inFIGS.12and13.

An Example Machine Overview

FIG.15is a block schematic diagram of a machine in the exemplary form of a computer system1500within which a set of instructions may be programmed to cause the machine to execute the logic steps of the invention. In alternative embodiments, the machine may comprise a network router, a network switch, a network bridge, personal digital assistant (PDA), a cellular telephone, a Web appliance or any machine capable of executing a sequence of instructions that specify actions to be taken by that machine.

The computer system1500includes a processor1502, a main memory1504and a static memory1506, which communicate with each other via a bus1508. The computer system1500may further include a display unit1510, for example, a liquid crystal display (LCD) or a cathode ray tube (CRT). The computer system1500also includes an alphanumeric input device1512, for example, a keyboard; a cursor control device1514, for example, a mouse; a disk drive unit1516, a signal generation device1518, for example, a speaker, and a network interface device1528.

The disk drive unit1516includes a machine-readable medium1524on which is stored a set of executable instructions, i.e. software,1526embodying any one, or all, of the methodologies described herein below. The software1526is also shown to reside, completely or at least partially, within the main memory1504and/or within the processor1502. The software1526may further be transmitted or received over a network1530by means of a network interface device1528.

In contrast to the system1500discussed above, a different embodiment uses logic circuitry instead of computer-executed instructions to implement processing entities. Depending upon the particular requirements of the application in the areas of speed, expense, tooling costs, and the like, this logic may be implemented by constructing an application-specific integrated circuit (ASIC) having thousands of tiny integrated transistors. Such an ASIC may be implemented with CMOS (complementary metal oxide semiconductor), TTL (transistor-transistor logic), VLSI (very large systems integration), or another suitable construction. Other alternatives include a digital signal processing chip (DSP), discrete circuitry (such as resistors, capacitors, diodes, inductors, and transistors), field programmable gate array (FPGA), programmable logic array (PLA), programmable logic device (PLD), and the like.

It is to be understood that embodiments may be used as or to support software programs or software modules executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine or computer readable medium. A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine, e.g. a computer. For example, a machine readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals, for example, carrier waves, infrared signals, digital signals, etc.; or any other type of media suitable for storing or transmitting information.

Further, it is to be understood that embodiments may include performing computations with cloud computing. For the purposes of discussion herein, cloud computing may mean executing algorithms on any network that is accessible by internet-enabled devices, servers, or clients and that do not require complex hardware configurations, e.g. requiring cables, and complex software configurations, e.g. requiring a consultant to install. For example, embodiments may provide one or more cloud computing solutions that enable users, e.g. users on the go, to login to sSSO web applications using social network identity providers or share sSSO web applications anywhere on such internet-enabled devices, servers, or clients. It further should be appreciated that one or more cloud computing embodiments include allowing a user to login to sSSO web applications using social network identity providers or share sSSO web applications using mobile devices, tablets, and the like, as such devices are becoming standard consumer devices.

Overview of Mobile Device Enabled Desktop Tethered and Tetherless Authentication

In accordance with an embodiment, a technique or system integrates authentication from a mobile device (e.g., using biometrics, social, questions and answers, and more) to allow login to laptops and desktops while disconnected from the Internet using a USB cable connection, Bluetooth or local wifi and/or connected to Internet without USB. The innovation provides a cloud clearinghouse that ties a person's or entity's mobile device(s) to an identity that's used to authenticate a person (could be the same person) on a laptop, desktop, or similar computer system.

In an embodiment, an application is installed on the laptop or desktop to recognize the mobile device.

In an embodiment, a Cloud Universal Identification (“Cloud UID”) system stores various identifying attributes and aspects of a user or device. For example, in an embodiment, Cloud UID stores and can retrieve for matching: an email address, a social login, an ID from the Cloud UID's database, a numeric ID, a Windows login, or Active Directory ID.

In an embodiment, prior to a login attempt, a credential provider is installed on the user's PC, laptop, Mac, or similar device. The PC, laptop, Mac, or similar device is communicably connected with Cloud UID and this connection allows the credential provider to authenticate the user. In an embodiment, the credential provider communicates with Cloud UID such that it is able to validate a user is who the user claims to be or that the device is what the device claims to be.

In an embodiment, during a login process, the PC, laptop, Mac, or similar device is turned on by a user. It should be appreciated that the user can be any user, not necessarily the person whose account is associated with the PC, laptop, Mac, or similar device. At the display of the PC, laptop, Mac, or similar device, the user is presented with an option to login via mobile device (“mobile login”). Upon selection of mobile login, an alert is sent to the mobile device registered or associated with the PC, laptop, Mac, or similar device. The alert can indicate something like, “Someone is trying to log in to your laptop. Ok to proceed? If so, please reply by clicking the Yes button, otherwise do nothing or click the No button.” Thus, for example, suppose Parent1is working late at the office, but Child1needs to log in to Parent1's desktop at home. Upon Child1's turning on the desktop, the credential provider can send a message to Cloud UID requesting authentication. Cloud UID can identify the desktop or any other related identifying data (e.g., an associated email address, etc.) from the message by the credential provider and, because “mobile login” was selected and indicated in the message from the credential provider, look up in its database for a way to communication with the registered mobile device. Upon receiving an affirmative indication from the mobile device via any network, the Cloud UID can retrieve and send the log in information (e.g., ID and password) registered for or associated with the desktop automatically and without user intervention to the desktop, resulting in the desktop being logged into.

In an embodiment, the Cloud UID is configured to implement1,2,3, or N factor authentication in conjunction with sending an alert to the mobile device. That is, the Cloud UID requests further and specific data (e.g., email address, active directory ID, social login, etc.) from the turned-on PC, laptop, Mac, or similar device based on is configured factor authentication.

In an embodiment, an app is provided that can be downloaded from an app store onto the mobile device, in which a user enters an ID, which then ties the ID in the cloud to the mobile device, such as for example, via the phone number of the device.

In an embodiment, a credential provider app can be downloaded from a business site and stored on the computing device to cause the computing device to communicate with the Cloud UID.

In an embodiment, in execution, the laptop or desktop sends a notification to the mobile device to perform the authentication process. Thus, for example, suppose a woman is on a social date and brought her laptop with her. Suppose the woman went to the bathroom and left the laptop with the other person with whom she is out on a date. If this other person tries to logon to the laptop while the woman is out of sight, the innovation causes the woman's cell phone to notify or alert her that someone is requesting authentication to log onto the laptop. The woman can choose to proceed or deny the request to log into the laptop.

In an embodiment, a credential provider installed on the computing device talks to the CUID server to obtain clearance to allow a login request. Once the credential provider program obtains clearance, the credential provider allows the requestor to log in to the computing device.

An Exemplary of Mobile Device Enabled Desktop Tethered and Tetherless Authentication System and Method

An embodiment can be understood with reference toFIG.16, a schematic diagram showing the interactions among participating parties of a mobile device enabled desktop tethered and tetherless authentication application or system. In an embodiment, a cloud universal identification server1602is communicably connected to a computing device1606and a mobile device1604. As well, computing device1606is communicably connected to mobile device1604. The connection can be over the Internet, Intranet, USB, wifi, Bluetooth, and any other communications protocol. In an embodiment, cloud universal identification server1602, computing device1606, and mobile device1604communicate using APIs.

In an embodiment, the entity1610trying to log into computing device1606does not have to be the same entity1608to which computing device1606belongs or is otherwise authorized to use or own computing device1606. For example, entity1610can be a child trying to log into his parent's1608computing device1606and, yet, in accordance with the innovation, it is the parent1608who authorizes the logging in process.

In an embodiment, entity1608has previously registered with and has had stored data reflective of a plurality of identity attributes as discussed within this application. For example, entity1608could be the parent of the example above who already has housing loan information, color preferences, social media friends, birthdate, biometric data such as fingerprints, etc., previously stored in a secure storage (not shown) communicably connected to cloud universal identification server1602.

In an embodiment, cloud universal identification server1602is system400described in detail above and/or any of its subparts such as for example LDAP412or database414.

In an embodiment, cloud universal identification server1602continually updates information about entity1608as entity1608continues to directly or indirectly provide identity information, such as new or updated medical records, new job applications, and the like. Such digital information can be available to cloud universal identification server1602via APIs.

In an embodiment, cloud universal identification server1602receives registration information that associates a mobile device with the plurality of identifying attributes associated with the user. For example, entity1608can register their mobile device1604with cloud universal identification server1602. In another embodiment, entity1608can register their mobile device1604with code previously installed on computing device1606. In an embodiment, entity1608registers a plurality of mobile devices1608with either or both of cloud universal identification server1602and computing device1606.

In an embodiment, entity1608can register a plurality of computing devices1606with cloud universal identification server1602.

Thus, authentication can occur on any registered computing device via any registered mobile device of entity1608.

In an embodiment, cloud universal identification server1602receives, during a login process by entity1610to computing device1606, a request to authenticate the login process at computing device1606.

In an embodiment, the request is received from mobile device1604. In the embodiment, computing device1606had previously installed code, which initially presents to a user a login option to log in via mobile device. Computing device1606is configured to send a type of login request or notification of a login to mobile device1604, upon receiving user input that mobile device login is selected. Computing device1606can know which mobile device to send the request or notification to by various means. Computing device1606can detect the presence of mobile device1604and be configured to send the request or notification to the detected device. Computing device1606can be pre-configured to send any request or notification to specifically mobile device1604. Computing device1606can make a call to cloud universal identification server1602to ask to which mobile device to send the request or notification. Other configurations for identifying which mobile device to notify of the login process are contemplated within this discussion.

In an embodiment, mobile device1604is tethered to computing device1606and computing device1606is not connected to the Internet. In this embodiment, computing device1606sends the request or notification to mobile device1604which has wifi, Bluetooth or other capabilities to communicate over a network with cloud universal identification server1602to complete the login process as discussed herein.

In an embodiment, the request is received from code previously installed on computing device1606.

In an embodiment, cloud universal identification server1602confirms, via a parameter in the request, the identity of computing device1606. For example, cloud universal identification server1602can compare and match the identity of computing device1606received in the request for authentication with one of previously registered computing devices.

In an embodiment, in response to identifying computing device1606, mobile device1604, and their relationship, cloud universal identification server1602transmits to mobile device1604authentication factors associated with the entity1608. In an embodiment, the authentication factors were previously stored in the storage of the cloud universal identification server1602. An example identity authentication system is described in co-assigned patent application titled, “METHOD AND APPARATUS FOR AN IDENTITY ASSURANCE SCORE WITH TIES TO AN ID-LESS AND PASSWORD-LESS AUTHENTICATION SYSTEM,” which is incorporated herein by reference in its entirety. For example, entity1608is asked to provide their favorite color, the model of their current car, and a fingerprint to the touchscreen of mobile device1604.

In an embodiment, cloud universal identification server1602receives data which reflects answers to or satisfaction of the authentication factors from mobile device1604. Subsequently, cloud universal identification server1602confirms such received data by comparing and matching such data with data previously stored on the storage of cloud universal identification server1602. In another embodiment, cloud universal identification server1602confirms such received data by comparing and matching such data with data on the Internet in real-time.

After confirming the authentication of entity1604, cloud universal identification server1602transmits to computing device1606, informational data causing the login process to be successful. For example, the informational data can be presented on a screen on computing device1606to entity1610, indicated a login and password that entity1610needs to type in to log into computing device1606. In another embodiment, cloud universal identification server1602transmits the login information computing device1606and computing devices1606applies that information to complete the login process, without intervention of entity1610.

An Exemplary Embodiment of Mobile Device Enabled Desktop Tethered and Tetherless Authentication

In an embodiment, a computer-implemented method (or in alternative embodiments, a system or non-transitory computer-readable medium) is provided, the method comprising: receiving and storing, at a cloud universal identification server having a digital storage, a plurality of identifying attributes associated with a user; receiving and storing, at the cloud universal identification server, registration information that associates a mobile device with the plurality of identifying attributes associated with the user; during a login process to a computing device associated with the user, receiving a request to authenticate the login process at the computing device, the request received from either the mobile device or from code previously installed on the computing device; confirming, at the cloud universal identification server, the identity of computing device of the request for authentication by positively matching the identity of the computing device with one of previously registered computing devices, registered at the cloud universal identification server; transmitting, by the cloud universal identification server, at least three authentication factors associated with the user, the at least three authentication factors for delivery to the mobile device, and the at least three authentication factors obtained or derived from authentication factors associated with the user previously stored in the storage of the cloud universal identification server; and upon receiving, at the cloud universal identification server and from the mobile device, data that satisfies the at least three authentication factors, transmitting for delivery to the computing device, authentication data causing the login process to be successful; wherein one or more steps are performed on at least a processor coupled to at least a memory. The exemplary method can further comprise wherein the computing device is communicably connected to the cloud universal identification server via the previously installed code and wherein such code recognizes the mobile device via a previous registration of the mobile device to the code. The exemplary method can further comprise wherein the entity initiating the login process is not the user. The exemplary method can further comprise wherein the computing device is any of: a desktop or laptop computer. The exemplary method can further comprise wherein an attribute of the plurality of identifying attributes is any of: an email address, a social login, an ID from the digital storage, a numeric ID, a computer login, or Active Directory ID. The exemplary method can further comprise wherein an app was previously downloaded on mobile device for purposes of associating the mobile device with the cloud universal identification server and with the computing device. The exemplary method can further comprise wherein the computing device is configured to send a notification to the mobile device causing the mobile device to request authentication at the cloud universal identification server. The exemplary method can further comprise wherein a plurality of computing devices associated with the user are registered at the cloud universal identification server. The exemplary method can further comprise wherein a plurality of mobile devices associated with the user are registered at the cloud universal identification server.

An Exemplary Credential Provider

In an embodiment, biometric authentication may be offered on any network attached Windows PC (the user is not assumed to be an Enterprise user or part of a corporate network, but is a personal user on a home computer, e.g. “grandma” and “kids”).

Herein, the innovation is collectively referred to as “the system.”

How

In an embodiment, biometric authentication calls are incorporated into the credential provider (“CP”) product. When attached to a network, the CP will make calls to a provided biometric partner to validate the user's identity from the CP and allow access.

In an embodiment, the following hold:In order for biometric authentication to work from a given personal computer (“PC”), the PC is able to make a network call to the system's biometric cloud service. The system tethers the PC to the internet by using a Bluetooth, wifi, or USB connection to the user's phone.The CP is configurable with needed information to make an oauth call to the correct bio authentication service in the cloud.In a corporate identity management system (e.g., Avatier's Identity Management System) AIMS install, each AIMS cluster is configured with the needed oath info, butIn a Windows app, each installation must have the needed credentials.Either all users of the CP app authenticate using a common set of oath credentials, or the system segments the users in such a way that they talk to a range of different authentication servicesA user may bio authenticate into local accounts on the PCA user may bio authenticate into a local account on a PC if they have previously provided bio enrollment for the given account at that PC“Enrollment” consists of a one-time operation where the user enters non-bio credentials to log in (e.g. userid and password) and then clicks on a link to perform bio enrollment. The bio enrollment validates that the user can pass a bio challenge, and if so, enroll their information.
Installation Use Cases
Downloading App from System's Site

The user can download a CP installer from a system web site. The file would be an MSI and would require the user to install with administrative authority (using UAC)

Downloading App from MS App Store

The user can download a CP installer from the MS App store. The app would have to pass any Microsoft-imposed limitations/restrictions in order to be added to the store. Updates to the app would require recertification from MS.

Installation Authority

The user must have administrator authority to install the CP. The CP code will be called from the windows LoginUl, which runs as Administrator, so anything it calls must be installed as Administrator (otherwise any user on the system could install anything they wanted (e.g. keyboard logger, hard disk formatter, etc.) and it might end up being run as Administrator anytime anyone attempts to log in to the box.

OAuth Configuration Use Cases

Initial Downloading of OAuth URL and Credentials

During installation of the CP, the installer will retrieve the current OAuth credentials from the system's Bio Credential cloud service. The CP will only function after credentials have been downloaded, validated, and installed. The credentials will consist of a digitally signed credential file and a*.cer file containing the public certificate that the CP can use to validate the signature of the credential file.

Updating to Current OAuth URL and Credentials

The first time the CP is launched on a given day (i.e., at most, once per day) the CP will query the system's Bio Credential cloud service to check for any updates to the credentials. If updates are available, the CP will download the latest credentials and associated*.cer file, validate the signature, and install them. All future bio authentication calls will use the updated OAuth credentials.

OAuth URL

In order to perform a bio challenge against a user, AIMS currently sends http requests to the base URL of the bio web service:

https://gmi-ha.iwsinc.com

Based on the type of call AIMS is making to the web service, AIMS adds additional components to the URL:Generate an authentication token: Appends
/usermanager/oauth/token?scope=SCOPE_TENANT_ADMIN&grant_type=client_crede ntialsSubmit a bio challenge to the server
/tenant/{tenantName}/app/{appCode}/template/{templateName}/person/{}/message

In the text above, the bold items come from the downloaded OAuth credential file. Theitem is user specific and is specified by the user during a login attempt with the CP.

Partitioning of OAuth Credentials

It may be desirable/required for some CP users to send bio requests with one set of OAuth credentials, while other users send with another. However, if the target audience for the product is individuals, then all individuals would most likely send with the same credentials. For load balancing purposes, CP might not send requests with a comment set of credentials. There is contemplated other reasons to do so (e.g. offering different QoS for a fee).

Security Use Cases

Protecting OAuth Credentials From Tampering

It the OAuth credentials were to be tampered with, then the CP could end up contacting a malicious server to service bio requests, which could lead to revealing user's bio information to a hacker (MITM attack) and could lead to allowing malicious users access to a PC (by using a fake server to return fake positive results). The OAuth credentials need to be protected from being tampering (must be encrypted and/or signed).

Using private/public key signing, the OAuth credential providing service should digitally sign each credential file and provide an associated public key

Protecting OAuth Calls From DNS or/etc/hosts Attack

As the end user's machine contacts the bio server, it needs to be provable that it is communicating with the correct server, otherwise a MITM could collect information and/or provide invalid responses to bio challenges. The code sends requests to the host gmi-ha.iwsinc.com, but if the client were to resolve the host to the IP address of a malicious server, then the server could log user's bio information and/or return false positive results.

May indicate a high level of security:

In one use case a requestor's server talks to the system's authentication server using OAuth2credentials through an SSL/TLS framework. Using OAuth2is a standard mechanism for securing communications and should make hijacking that communications channel more difficult.

On the mobile client-side communication is initiated through APN or GMC networks, which is secured with KPI and then the messages themselves are pulled from our authentication server, which is protected using OAuth2credentials through an SSL/TLS framework.

Responses are polled from our servers (using the same security mechanism mentioned above) or sent through postback to designated servers (when using the polling method.) Additionally, each authentication request generates a transactionlD and a responselD, so that can independently verify transaction requests and responses from the server.

Identifying Source of Bio Challenge to End User

Assuming two bio challenges are issued at about the same time (perhaps from two PCs, or may be from a PC and from a web page or a credit card transaction), as the user is presented with the challenges on their device, can the user distinguish which challenge came from which service? What if 2 challenges came at roughly the same time, one from a fraudulent device and one from the real device? If the user could not distinguish between the two, they may approve the first (i.e. the fraudulent one).

Similarly, if an attacker could time things correctly or if they could insert a MITM or even a simple proxy in the network, they could detect that a bio challenge was sent for the user and then immediately send a similar fraudulent challenge just ahead of the true one. This could cause the fraudulent challenge to arrive at the user's device first. The user would be expecting the challenge to arrive and would answer it without suspecting it is fraudulent. The attacker could then use the response to “legitimately” gain access to a resource that they truly don't have the rights to. To solve this issue, the challenge must state from what machine it came; it would be even better if the challenging client displayed a random code and as the challenge arrives, it also contains the same random code to validate which client it came from.

Enrollment Use Cases

Initial Enrollment

After installing the CP, the user first enrolls their biometrics against a local account and then they will be allowed to log into the enrolled local account with biometrics alone. The CP login tile will include field allowing the user to specify who they are and a login button.1. From windows login screen, the user selects the system's CP tile (assuming windows 8+, which is a User First model)2. There are no enrolled users, so the CP does not display an “Unenroll” link (see use cases below) or if it does display the link, it will be disabled.3. The user enters their local account name and presses the login button4. The account is not enrolled, so the CP prompts the user to enter their bio identity (email address with which the bio app is configured on their device)5. The CP sends a challenge to the user's device6. The user successfully answers the challenge7. The user has not shown that they have any rights to log in to the local account, so the CP prompts the user for the current password8. The CP prompts for an optional display name of this authentication, such as “left thumb” or “facial”9. The CP calls Windows LSA (Local Security Authority) service to validate the password10. The password validates, so the CP has verified that the user has rightful access to the local account and that the user can be bio authenticated with the provided bio identity email address11. The CP creates the user's BioEnrollment Data as a tuple consisting of (LocalMachineName, LocalAccountName, Bioldentity, DisplayName).12. The CP stores the BioEnrollment Data in a secure manner. The BioEnrollment datastore is security sensitive data; an attacker could modify the data and gain access to any local account on the box. It is preferable that the data be locally stored for the following reasons:a. It only has meaning on the local boxb. If it were stored publically, then one must concern oneself with how to secure it during transport and while at rest
Unenrollment

In order to unenroll (remove BioEnrollment Data), the user must pass a bio challenge first. The requirement to pass a bio challenge stops a malicious person from removing the BioEnrollment data without the true user's consent. The unenrollment works as follows:1. From windows login screen, the user selects the system's CP tile (assuming windows 8+, which is a User First model)2. If there is at least one enrolled user, then the CP will display an “Unenroll” link, but the link will be disabled while waiting for user input.

Alternative: So as not to reveal the existence of a given account name, the link can always be enabled.3. The user enters their local account name. As the user types the account name, the CP reads the account name one character at a time. If at any moment the local account name matches an enrolled user, then the tile will enable an “Unenroll” link.

Alternative: So as not to reveal the existence of a given account name, the link can always be enabled4. The user clicks on the Unenroll link5. The CP prompts the user with a “This will disable bio authentications for user XYZ. Are you sure?”6. The user chooses Yes7. The CP sends a challenge to the user's device8. The user successfully answers the challenge9. The CP looks up the given local username in its BioEnrollment Data store and finds all matching BioEnrollment Data values. The CP lists the matching values by their DisplayName values and allows the user to select one or more10. The user selects one or more authentications11. The CP removes the user's BioEnrollment Data from local storage
1.5.3 Reenrollment

It shall be possible for a user to reenroll. Reenrollment might be required or desired for reasons such as:The user has injured their original finger/thumb and can't use it.The user would like to add additional forms of bio authentication (e.g. multiple fingerprints)Multiple users might want to be able to access the same shared account
Reenrollment Works as Follows:1. From windows login screen, the user selects the system's CP tile (assuming windows 8+, which is a User First model)2. If there is at least one enrolled user, then the CP will display a “Reenroll” link, but the link will be disabled while waiting for user input.

Alternative: So as not to reveal the existence of a given account name, the link can always be enabled.3. The user enters their local account name. As the user types the account name, the CP reads the account name one character at a time. If at any moment the local account name matches an enrolled user, then the tile will enable a “Reenroll” link.

Alternative: So as not to reveal the existence of a given account name, the link can always be enabled4. The user clicks on the Reenroll link5. The CP prompts the user with a prompt something like “Replace all previous enrollments or add a new one to them? Replace Add”6. The user selects either Replace or Add7. The CP sends a challenge to the user's device8. The user successfully answers the challenge9. The user has not shown that they have any rights to log in to the local account, so the CP prompts the user for the current password10. The CP calls Windows LSA (Local Security Authority) service to validate the password11. The password validates, so the CP has verified that the user has rightful access to the local account and that the user can be bio authenticated with the provided bio identity email address12. The CP creates the user's BioEnrollment Data as a tuple consisting of (LocalMachineName, LocalAccountName, Bioldentity).13. If the user chose to Replace enrollment data, then the CP deletes all prior BioEnrollment Data14. The CP stores the BioEnrollment Data in a secure manner
Authentication Type Rename

It shall be possible for a user to rename a previously saved authentication. The user may have mistyped the name previously or might have provided a vague name (such as “thumb”) and would like to refine it to a more specific value (such as “left thumb”).

Authentication Use Cases

BioAuthentication with Single Enrollment

A user may authenticate into their PC by providing their local userid and passing a biometric challenge. The user must first be enrolled at the local machine once prior to doing a bioauthentication. Bioauthentication works as follows:1. From windows login screen, the user selects the system's CP tile (assuming windows 8+, which is a User First model)2. The user enters their local account name.3. The user presses the standard windows login icon (the blue arrow in windows 8 and 10)4. The CP looks up the given local username in its BioEnrollment Data store and finds the user's BioEnrollment Data, which includes the user's Bioldentity email5. The CP sends a challenge to the user's device6. The user successfully answers the challenge7. The CP returns a true to the windows LoginUl indicating that the user has passed authentication
BioAuthentication with Multiple Enrollments

A user may enroll multiple times (with different fingers, facial, voice, etc) and may wish to choose into their PC by providing their local userid and passing a biometric challenge. The user must first be enrolled at the local machine once prior to doing a bioauthentication. Bioauthentication works as follows:1. From windows login screen, the user selects the system's CP tile (assuming windows 8+, which is a User First model)2. The user enters their local account name.3. The user presses the standard windows login icon (the blue arrow in windows 8 and 10)4. The CP looks up the given local username in its BioEnrollment Data store and finds multiple matching BioEnrollment Data values5. The CP lists each BioEnrollment Data value by name and allows the user to choose which one they want to authenticate with6. The user selects a named BioEnrollment Data value7. The CP sends a challenge to the user's device8. The user successfully answers the challenge9. The CP returns a true to the windows LoginUl indicating that the user has passed authentication
User Stories

Following are user scenarios, according to an embodiment:As an iOS user, I want to download an app to my personal mobile device enabling me to pass biometric tests on it to log in to my personal PC as a local userAs an iOS user, I want to download an app to my personal mobile device enabling me to pass biometric tests on it to log in to my corporate PC as a domain userAs a user of a personal PC, I want to log in to my local account on my PC by authenticating with the fingerprint reader on my mobile deviceAs a corporate user of a corporate PC, I want to log into my AD account on my corporate PC by authenticating with the fingerprint reader of my personal mobile deviceAs an enterprise admin, I want to require my users to use multiple authentication factors when logging into their PC, such as possession of a device and bio metrics.

FIG.17depicts a screen show of a login screen, a link to the CP, according to an embodiment.

FIG.18depicts another screen shot showing a CP that does only fingerprint, according to an embodiment.As a corporate user of a corporate PC, I want to log into my AD account by authenticating into Password StationThe user would click on something in the CP that would launch the AIMS secure browser, challenge the user to authenticate (using questions, bio, . . . anything in the authentication framework).Upon success, the user exits the AIMS browser and is allowed access into their PC without a password
Authenticating Without a Password

The function of a typical CP is to capture credentials (typically userid and password) and serialize them into a known buffer format so that they can be submitted to the LSA (Local Security Administrator).

In the case of a smartcard login, the smartcard appears to contain the needed credentials. The smartcard CP would then get the (encrypted) credentials off of the smart card and provide them, along with a user-entered PIN to the LSA.

There appear to be other ways to authenticate the user (e.g., without a password).

http://stackoverflow.com/questions/41869313/how-to-write-a-ksp-to-hook-up-into-kerb-certificate-logon

RSA provides a CP for logging in to a PC without a password. An embodiment involves an RSA server.

LSA supports custom Authentication Packages. An Authentication Package is a DLL thatanalyzes the credentials collected from the CP (e.g. userid/password, smartcard/pin, etc)Determines if a security principal is allowed to log onEstablishes a new logon session and creates a logon identifierPasses security info to the LSA for the principal's security token

Vendors can create a custom Security Support Provider (SSP) using the MS SSP Interface. For example, Microsoft ships a sample SampSSP with the Platform Software Development Kit (SDK) (in win 7 SDK at C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\security\authentication\sampssp).

A Security Package is deployed as a DLL of one of the following types:SSP/AP (Security Support Provider/Authentication Package)SSP

Example #1: RFID CP A

The following describes an example (includes code) of a CP that allows one to log in with just an RFID card, however one must store your userid/password on one's machine ahead of time. Then, when one does a ctrl-alt-del, one sees an RFID CP tile. If one holds one's RFID card near the reader, it confirms one's identity, decrypts one's stored credentials, and submits them to LSA for normal authentication.

See https://www.codeandsec.com/Windows-RFID-Login-Credential-Provider

In an embodiment,Create a .net CLI to encrypt/write or read/decrypt a user's password using MS DPAPI.The password storage CLI would always run from the logonUI.exe's context, so anything it encrypts would only be readable by the same accountUsing the RFID CP as an example, expect the user to enter their userid and click on bioAuthenticate buttonThe CP would look up the user's biold from the cloud, verify licensing, and if all passes, submit a bio challenge to imageWare on behalf of the userAssuming the user passes the challenge, the CP would then read the encrypted user credentials from local storage and build a set of credentials (with userid+password) and submit to LSA for authentication
Limitations of this Approach:If a user changes their password, bio authentication ceases to work.The system is responsible for storing the password somewhere, as discussed in detail herein.Local storage for local accounts might not be too risky because only one machine is at risk and the embodiment can use MS DPAPI to encrypt data.Domain account is risky because the password needs to be transmitted and stored in the cloud, putting the data it much larger risk during transport and storage.

Example #2: RFID CP B

A similar RFID example exists, but with a lot more code in it. It appears to work the same as the first example, in that one must store the userid and password and then use the RFID authentication to indicate that one may decrypt the credentials and submit to LSA for authentication.

https://github.com/tylermenezes/Rfid-Credential-Provider and https://medium.comi@tylermenezes/rfid-credential-provider-d0bf8ef29b16

Example #3: MySmartLogon

MySmartLogon has a youtube showing how an rfid can be treated similarly to a smartcard to authenticate without a password. It appears to generate PKI certificates for the user during enrollment/provisioning and then the user can log on with the certificate later without a password. It appears that the certificate is stored either in the RFID (not likely) or the RFID's value is used as a key to look up the certificate from somewhere else.

Windows 10 Hello

Windows 10 Hello provides new Authentication and user identity support. (C #SDK is included for windows 10 and Universal Windows Platform (UWP) apps).Biometric loginsWindows Unlock with Hello Companion Devices (using a phone or a USB attached device as part of login). Example: Carry a phone in their pocket that is already paired with PC over Bluetooth. Upon hitting the spacebar on their PC, their phone receives a notification. Approve it and the PC simply unlocksLogging in without a passwordCredential locker for locally storing and retrieving credentials safelyFingerprint bio authentication at application level

Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. Accordingly, the invention should only be limited by the Claims included below.