Abstract:
Authentication mechanisms for accessing one or more applications by a user by using collaborative agents for automating authentication to the one or more applications. The use of collaborative agents obviates a need for the user to remember fortified authentication credentials for each application.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
   Priority of International Patent Application No. PCT/SG2005/000303, filed on Aug. 31, 2005, is claimed under 35 U.S.C. § 119. 
   TECHNICAL FIELD 
   The present invention is directed to system security, and more specifically to using collaborative agents for automating authentication for allowing a user to access a plurality of applications to obviate a need for the user to remember fortified authentication credentials for each application. 
   BACKGROUND 
   Frequently, access to applications is protected by weak authentication credentials. Users use weak forms of authentication because users find it difficult to remember fortified forms of authentication. The user&#39;s difficulty is compounded when different authentication credentials are required to access each application of a myriad of applications. An example of a weak form of authentication is a simple password that is easy to guess. 
   Enterprises have a need for fortified authentication credentials in order to protect access to their enterprise application system. Fortified authentication is driven by risk mitigation and regulatory compliance. In one approach, enterprises implement a two-factor authentication for each application in their enterprise application system. A two-factor authentication combines a strong password with an authentication token. Such a two-factor authentication leverages what the user possesses (the authentication token) and what the user knows (the password). The use of fortified authentication including the use of two-factor authentication in order to access each application distributed across several computers, including remote computers, imposes a considerable burden on the user. 
   In view of the foregoing, there is a need for a method and system for using fortified authentication credentials without requiring the user to manually authenticate herself for logging into each computer on which a desired application is managed and without requiring the manual authentication that is required to access each desired application. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a high-level block diagram that illustrates some components used in a fortified authentication system using collaborative agents, according to certain embodiments. 
       FIG. 2  is a flowchart that illustrates the collaboration of agents when a user initially logs into the user&#39;s local computer, according to certain embodiments. 
       FIG. 3  is a flowchart that illustrates the collaboration of agents when a user initially logs into a remote computer, according to certain embodiments. 
       FIG. 4  is a flowchart that illustrates the synchronization of authentication credentials, according to certain embodiments. 
   

   DETAILED DESCRIPTION 
   According to one aspect of certain embodiments, a user that wishes to access any number of authentication-protected applications that are distributed across several local and remote computers is aided by computer-implemented agents that collaborate to obtain access to the protected applications. According to certain embodiments, the collaborative agents work together to automate seamless login procedures onto local and remote computers that require fortified authentication for access. Further, the collaborative agents work together to automate authentication procedures to access any desired application whether running on a local or remote computer. When the user tries to log into an application running locally or remotely, the corresponding agent automatically injects application authentication credentials on behalf of the user, according to certain embodiments. 
   According to one aspect, fortified authentication for protecting access to the several local and remote computers as well as access to any desired application from a plurality applications include a strong password. A strong password is a complex password that is difficult to guess. For example, a strong password can be combination of numbers and symbols combined with letters of the alphabet in varying case format. Another example of a strong password is a dynamically generated one-time password (OTP). According to another aspect, fortified authentication includes the use of a second factor authentication credential. Examples of second factor authentication credentials include smart cards, proximity cards, and fingerprints. 
   Smart cards provide a public/private key pair that can be used for authentication. Proximity cards are access cards that provide an RFID that uniquely identifies a given access card. 
   According to certain embodiments, the user securely logs into a computer-implemented agent running on the user&#39;s local computer. The computer-implemented agent running on the user&#39;s local computer is also herein referred to as a local agent. Once the user is logged into the local agent, the local agent automates the authentication for accessing any application that the user desires to access. According to certain embodiments, the local agent automatically retrieves authentication credential information associated with the user. The local agent establishes secure communication channels with one or more remote computers in order to log in and begin communication with the corresponding computer-implemented agent implemented on the one or more remote computers. The computer-implemented agent running on a remote computer is also herein referred to as a remote agent. The local and remote agents collaborate to exchange and/or update authentication information for accessing applications. 
     FIG. 1  is a high-level block diagram that illustrates some components used in a fortified authentication system using collaborative agents, according to certain embodiments.  FIG. 1  shows second factor authentication components  104 , local computer  102  associated with a user, a computer-implemented local agent  106 , local applications  108  running on local computer  102 , a credential management server  110 , a remote computer  112 , a computer-implemented remote agent  114 , and remote applications  116  running on remote computer  112 . The manner in which the components in  FIG. 1  are used is described in greater detail with reference to  FIG. 2 ,  FIG. 3  and  FIG. 4  herein. For purposes of explanation, assume that a user logs into a local computer and may choose to run one or more applications. Further assume that some of the applications that the user wishes to access run on one or more remote computers while some other applications, also desired by the user, run on the user&#39;s local computer. While  FIG. 1  shows only one remote computer and one credential server, the embodiments may include several remote computers and credential servers that can be accessed by the user if proper authentication credentials are used. The number of remote computers and credential servers vary from implementation to implementation. Further, the second factor authentication components and credential management server are optional. 
     FIG. 2  is a flowchart that illustrates the collaboration of agents when a user initially logs into the user&#39;s local computer, according to certain embodiments. At block  202  of  FIG. 2 , a user securely logs in to the local agent, such as local agent  106  of  FIG. 1 , on the user&#39;s local computer, such as local computer  102  of  FIG. 1 . As an example, the user can securely log in to the local agent by using appropriate login credentials, such as a user name, password and optionally a second factor authentication credential. Examples of second factor authentication credentials include a smart card, a proximity card, and the user&#39;s fingerprint or other physical features that are captured by a suitable biometric device. Upon successful login to the local agent, the local agent can retrieve operating system credentials that can be used for logging the user to the Windows or UNIX desktop on the local computer. Alternatively, according to certain embodiments, if the user is already logged into the Windows or UNIX desktop on the local computer, the user has the option to log into the local agent from the Windows or UNIX desktop. 
   At block  204 , once the user successfully logs into the local agent, the local agent retrieves the user&#39;s authentication credentials. The user&#39;s authentication credentials include authentication credentials for logging in to a remote computer or for opening applications that run on the local computer and/or the remote computer. For example, the local agent can load the user&#39;s credential wallet from the local computer&#39;s hard disk or download the credential wallet form the credential management server, according to certain embodiments. In certain embodiments, the local agent may load the user&#39;s credential wallet from a removable media, such as a thumb drive, for example. 
   According to certain embodiments, the local agent obtains the user&#39;s user name and password from the credential wallet in order to log into the desktop application of operating system of the local computer. For example, the local agent can obtain login credential information from the credential wallet in order to log in to the Windows desktop user interface or to the UNIX desktop user interface. The embodiments are not limited to any particular type of desktop application. 
   At block  206 , the user attempts to log into a remote computer, such as remote computer  112  of  FIG. 1 . For example, the user may launch a remote desktop protocol (RDP) client application in order to log into the remote Windows terminal computer. As another example, the user may launch a Citrix independent computing architecture (ICA) application in order to log into the remote Citrix Metaframe computer. In response to the user&#39;s attempt to log into the remote computer, the local agent recognizes the login screen and injects the appropriate user name and password from the credential wallet in order to log the user in to the remote computer. According to certain embodiments, the remote desktop application such as the RDP client application or the Citrix ICA client application is automatically launched when the user has successfully logged onto the local agent. The local agent then automatically injects the appropriate user name and password from the credential wallet in order to log the user into the remote Windows or remote Citrix metaframe. 
   At block  208 , after successfully logging on to the remote computer, the computer-implemented remote agent associated with the remote computer starts up automatically and begins collaborating with the local agent at the user&#39;s local computer. For example, the remote agent sends a message, through a secure channel of communication, to the local agent requesting the user&#39;s credential wallet. In response, the local agent sends the user&#39;s credential wallet to the remote agent. 
   At block  210 , the remote agent automates the login procedure to any application that the user wishes to access. In other words, when the user attempts to log onto any application on the remote computer, the remote agent is able to obtain the appropriate application credential in order to obtain access to the application on behalf of the user. 
     FIG. 3  is a flowchart that illustrates the collaboration of agents when a user initially logs onto a local computer in order to access a remote computer, according to certain embodiments. At block  302 , the user attempts to log into a remote agent on a remote computer before logging onto the local agent on the user&#39;s local computer. For example, the user launches the remote desktop protocol (RDP) client application or the Citrix ICA client application on the remote computer. In response, at block  304 , the remote agent associated with the remote computer prompts the user for authentication credentials in order to log into the remote agent. For example, the remote agent may ask the user to enter his user name, password and a second factor credential for authentication. The second factor authentication is an optional feature. According to certain embodiments, the remote agent may ask the user to enter only his user name and password. 
   At block  306 , the remote agent, after verifying the user&#39;s password, collaborates with the local agent by asking the local agent to monitor for input of the second factor credential in order to verify the second factor credentials. If the local agent has already verified the second factor credentials, then the local agent notifies the remote agent that the user is authenticated. If the local agent has not already verified the second factor credentials, then the local agent waits for the user to present the second factor credentials. 
   For example, in the case of an RFID proximity card, the local agent can detect the tapping of the RFID card and in response, can send the corresponding RFID to the remote agent for verification. 
   In the case of a fingerprint authentication, the local agent captures the user&#39;s fingerprint and sends the captured fingerprint to the remote agent for verification. In the case of a smart card token, the local agent detects the insertion of the smart card token at a USB port at the local computer or detects data from a smart card reader associated with the local computer. After detecting the insertion of the smart card token, the local agent sends a request to the remote agent for the password entered by the user. The remote agent responds with the password and the local agent verifies the smart card PIN with the password received from the remote agent. The local agent then notifies the remote agent of the PIN verification results. If the case of a USB thumb drive with ID, the local agent sends the ID to the remote agent and the remote agent verifies the ID. 
   At block  308 , upon successfully logging onto the remote agent, the remote agent loads the user&#39;s credential wallet. At block  310 , the remote agent automatically injects the appropriate user name and password from the credential wallet in order to log the user onto the remote Windows or remote Citrix metaframe. Alternatively, according to certain embodiments, if the user is already logged onto the Windows or UNIX desktop on the remote computer, the user has the option to log into the remote agent from the Windows or UNIX desktop on the remote computer. 
   At block  312 , when the user attempts to log onto any application on the remote computer, the remote agent is then able to obtain the appropriate application credential from the credential wallet for automating the login procedure in order to obtain access to the application on behalf of the user. 
   Alternatively, the remote agent may verify the second factor credential first before verifying the user&#39;s password. For example, the user has presented his second factor token, such as an RFID proximity card, and the local agent sends the RFID to the remote agent. The remote agent then asks the user for his password and verifies both the RFID and the password. In the case of a fingerprint authentication, the local agent captures the user&#39;s fingerprint and sends the captured fingerprint to the remote agent for verification. The remote agent asks the user for his password and verifies both the fingerprint and password. In the case of a smart card token, the local agent detects the insertion of the smart card token at a USB port at the local computer or detects data from a smart card reader associated with the local computer. After detecting the insertion of the smart card token, the local agent asks the remote agent for the password of the user. The remote agent asks the user for his password and sends the password to the local agent. The local agent verifies the smart card PIN with the password received from the remote agent. The local agent then notifies the remote agent of the PIN verification results. If the case of a USB thumb drive with ID, the local agent sends the ID to the remote agent. The remote agent then asks the user for his password and verifies both the password and the ID. 
   According to certain embodiments, when the user wishes to access an application program on the remote computer, the remote agent on the remote computer asks the local agent for application credentials. As a non-limiting example, the remote agent may ask the local agent for a one-time password for injecting to the desired application program. The local agent generates a one-time password using a USB Smart card token, for example. The local agent sends the generated one-time password to the remote agent. The remote agent then injects the one-time password to the desired application program so that the user can gain access to the desired application program. According to certain embodiments, before the remote agent injects the one-time password, the remote agent may ask the user to re-enter the PIN associated with USB Smart card token. The remote agent then sends the entered PIN to the local agent for re-verification. Only upon re-verification of the PIN does the remote agent inject the one-time password to the desired application program. 
     FIG. 4  is a flowchart that illustrates the synchronization of authentication credentials, according to certain embodiments. At block  402 , any changes in user name and password information is captured by the appropriate agent. For example, if changes in the authentication credentials occur on the local computer, then the local agent captures the changes. Similarly, if changes in the authentication credentials occur on the remote computer, then the remote agent captures the changes. 
   At block  404 , after the changes in authentication credentials are captured, then all relevant credential storage systems are updated with the new credential information. At block  406 , the agent that initially captured the changes in the authentication credentials notifies the other agents on remote computers of the updated authentication credentials. At block  408 , in response to the notification of updated authentication credentials, the notified agents update their respective credential storage systems. 
   In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. It will be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.