# Patent

## Title
Techniques for authenticating a user with heightened security

## Abstract

A method performed by a computing device is described. The method includes (a) receiving an authentication request from an application server seeking to authenticate a user for access to a service provided by the application server, (b) communicating with a first authentication server to obtain a first authentication of the user, (c) communicating with a second authentication server to obtain a second authentication of the user, the second authentication server being distinct from the first authentication server and the second authentication being of a type distinct from the first authentication, (d) rejecting the authentication request if and only if one or both of the first authentication and the second authentication is negative, and (e) upon rejecting the authentication request, sending a rejection message to the application server without informing the application server whether the first authentication or the second authentication was negative.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This Patent Application is related to co-pending U.S. patent application entitled “BROKERING MULTIPLE AUTHENTICATIONS THROUGH A SINGLE PROXY,” filed on even date herewith by Anton Khitrenovich, Oleg Freylafert, Yedidya Dotan, Larry Friedman, and Karl Ackerman having Ser. No. 13/611,919, the contents and teachings of which are incorporated herein by this reference.
This Patent Application is related to co-pending U.S. patent application entitled “BROKERING MULTIPLE AUTHENTICATIONS THROUGH A SINGLE PROXY,” filed on even date herewith by Anton Khitrenovich, Oleg Freylafert, Yedidya Dotan, Larry Friedman, and Karl Ackerman having Ser. No. 13/611,919, the contents and teachings of which are incorporated herein by this reference.
BACKGROUND
Application servers, such as virtual private network gateway servers restrict access by performing user authentication. In one conventional arrangement, the application server delegates responsibility for the authentication to a remote authentication server (e.g., a username/password authentication server) by sending an access request message to the remote authentication server. In another arrangement, after the remote authentication server authenticates the user, the application server initiates supplemental authentication by sending a second access request message to a second remote authentication server or a proxy device.
SUMMARY
The above-described approach may suffer from deficiencies. For example, in the conventional approach, the supplemental authentication is performed by the second remote authentication server only after success of the first authentication. Thus, if a fraudster attempts, from a single client machine, to log in to many different user accounts in a ploy to find an account with an easy-to-crack password, the second remote authentication server will not have knowledge of the failed requests from the same client machine to different accounts. If the supplemental authentication uses a risk-based authentication scheme, it would be useful for the second remote authentication server to have access to the knowledge of the failed attempts because it may signify that the login attempt is a high-risk transaction. However, in conventional approaches, information about these failed attempts is not provided to the second remote authentication server.
As an additional example, if the first authentication is one time password based authentication in which the user has a token that provides a temporary passcode, if the remote authentication server challenges the user to respond with an updated passcode (e.g., due to the use of an old passcode), that challenge information is not provided to the second remote authentication server even if the primary authentication eventually succeeds after several challenges. However, such information may be useful to the second remote authentication server if it performs risk-based authentication because multiple challenges may be indicative of a replay attack.
Thus, techniques are presented for utilizing an authentication broker for contacting multiple authentication servers and sending information gleaned from a first authentication by a first authentication server to a second authentication server for use by that second authentication server. Thus, the application server only needs to communicate with a single device—the authentication broker—to allow for efficient authentication by two authentication servers, the second authentication server being aware of details of the first authentication. These embodiments also provide enhanced security and robustness.
Further presented are features addressing a potential security loophole if failure of the first authentication precludes the second authentication from taking place wherein a fraudster may obtain knowledge that the first authentication was rejected rather than the second authentication (which was not performed). This may be dangerous because, if the fraudster has this knowledge, then it may facilitate the ability of the fraudster to evade the authentications. Thus, embodiments of the present invention are directed to techniques for performing a first authentication by a first authentication server and a second authentication by a second authentication server regardless of whether the first authentication succeeds or fails and refraining from indicating to the user which authentication failed if authentication is rejected.
In one embodiment, a method performed by a computing device is described. The method includes (a) receiving an authentication request from an application server seeking to authenticate a user for access to a service provided by the application server, (b) communicating with a first authentication server to obtain a first authentication of the user, (c) communicating with a second authentication server to obtain a second authentication of the user, the second authentication server being distinct from the first authentication server and the second authentication being of a type distinct from the first authentication, (d) rejecting the authentication request if and only if one or both of the first authentication and the second authentication is negative, and (e) upon rejecting the authentication request, sending a rejection message to the application server without informing the application server whether the first authentication or the second authentication was negative. A corresponding apparatus and computer program product are also described.



BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, features and advantages will be apparent from the following description of particular embodiments of the present disclosure, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of various embodiments of the present disclosure.
FIG. 1 depicts an example system for use in performing various embodiments.
FIG. 2 depicts an example apparatus of various embodiments.
FIG. 3 depicts an example method of various embodiments.
FIG. 4 depicts an example method of various embodiments.
FIG. 5 depicts an example method of various embodiments.
FIG. 6 depicts an example method of various embodiments.
FIG. 7 depicts an example method of various embodiments.



DETAILED DESCRIPTION
Embodiments of the invention are directed to techniques for performing a first authentication by a first authentication server and a second authentication by a second authentication server regardless of whether the first authentication succeeds or fails and refraining from indicating to the user which authentication failed if authentication is rejected.
FIG. 1 depicts an example system 30 for use in performing various embodiments. System 30 includes a client machine 32, an application server 34, an authentication broker machine 36, a credential-based authentication (CBA) server 38, a risk-based authentication (RBA) adapter 40, and an RBA server 42.
Client 32 may be any kind of computing device, such as, for example, a personal computer, a workstation, a server, an enterprise server, a laptop computer, a mobile computer, a smart phone, a tablet computer, etc. A user 31 operates the client 32 in order to attempt to gain access to a service 35 (e.g., a web site, a file share, a virtual private network, etc.) running on or accessible via the application server 34, or to access a protected resource 37 (e.g., a storage array, a camera, a virtual private network, etc.) guarded by the application server 34. For example, the user 31 may desire to access a virtual private network (VPN) accessible via the application server 34 as a VPN gateway. In order to do so, the user 31 executes login client 33 on the client 32 and attempts to log in to the application server 34 to access the VPN or other service 35 or resource 37 using the login client 33. It should be noted that a user 31 accessing a protected resource 37 guarded by the application server 34 may be considered to be a species of the more generic description of a user 31 accessing a service 35 running on or accessible via the application server 34, since the service 35 may include the application server 34 providing a gateway to the protected resource 37.
Application server 34 may be any kind of computing device, such as, for example, a personal computer, a workstation, a server, an enterprise server, a laptop computer, a mobile computer, a smart phone, a tablet computer, etc., although typically application server 34 will be a server or an enterprise server.
Authentication broker 36 may be any kind of computing device, such as, for example, a personal computer, a workstation, a server, an enterprise server, a laptop computer, a mobile computer, a smart phone, a tablet computer, etc., although typically authentication broker 36 will be a server or an enterprise server. Further detail with respect to authentication broker 36 will be provided below in connection with FIG. 2.
CBA server 38 may be any kind of computing device, such as, for example, a personal computer, a workstation, a server, an enterprise server, a laptop computer, a mobile computer, a smart phone, a tablet computer, etc., although typically CBA server 38 will be a server or an enterprise server, such as an RSA SecurID Appliance (produced by RSA, The Security Division of EMC, based in Hopkinton, Mass.) running Authentication Manager software produced by RSA, The Security Division of EMC. CBA server 38 is configured to perform CBA on credentials provided by client 32 via application server 34 and authentication broker 36. For example, user 31 may type a username and password into login client 33 running on client 32. The username and password, in this example, are the credentials that are sent to the CBA server 38 via application server 34 and authentication broker 36. As another example, user 31 may operate a token (for example an RSA SecurID token produced by RSA, The Security Division of EMC) to generate a one-time passcode (OTP). The user 31 may either type the OTP into the login client 33 running on client 32 (possibly together with a username and password) or the token may connect directly to client 32 in order to directly transmit the OTP to the login client 33. In this example, the credentials may include the OTP (as well as, in some embodiments, also the username and password).
RBA adapter 40 may be any kind of computing device, such as, for example, a personal computer, a workstation, a server, an enterprise server, a laptop computer, a mobile computer, a smart phone, a tablet computer, etc., although typically RBA adapter 40 will be a server or an enterprise server. RBA adapter 40 is configured to collect additional data from the user 31 and client 32 in order to pass the additional data on to RBA server 42 in order for RBA to be performed, such as, for example, Adaptive Authentication provided by RSA, The Security Division of EMC. While CBA is a deterministic determination based on the correctness of the credentials, RBA is a complex determination that evaluates a plurality of factors (e.g., number of login attempts, location of the user 31, time since last successful login, time since last login attempt, whether the client 32 has been used for successful logins before, whether the client 32 is known to be used by fraudsters, etc.) associated with a particular transaction (e.g., a login attempt) in order to assess a risk that that particular transaction is fraudulent. In some embodiments, RBA allows for asking a user for more data (e.g., a user-generated challenge question, such as “What high school did you go to?”) in suspicious circumstances. In some of these embodiments, this communication of additional data may involve out-of-band communication (e.g., user 31 receives information via e-mail, SMS text message, or telephone and then transmits the received information to the RBA adapter 40 in-band; user 31 is requested to send additional data to the RBA adapter via e-mail, SMS text message, or telephone, etc.) The additional data collected by RBA adapter 40 may include the network address of the client 32, the type and version of the browser and/or login client 33 running on client 32, etc.
RBA server 42 may be any kind of computing device, such as, for example, a personal computer, a workstation, a server, an enterprise server, a laptop computer, a mobile computer, a smart phone, a tablet computer, etc., although typically RBA adapter 40 will be a server or an enterprise server. RBA server 42 is configured to perform RBA, as mentioned above.
The various components 32, 34, 36, 37, 38, 40, 42 of the system 30 communicate with one another along communication paths as indicated by the solid lines in FIG. 1. These communication paths may be of any type, but typically they are network-based, for example, over a local area network, a wide area network, or a storage area network, although other arrangements are possible, such as, for example, point-to-point connections, serial bus connections, or a fabric of hubs and switches.
The dotted line indicates that RBA adapter 40 is configured to communicate an RBA decision to the authentication broker 36, however, this may be done in an indirect manner. For example, RBA adapter 40 sends the RBA decision (which it has received from RBA server 42) to a depository server 44, which stores the RBA decision in conjunction with a username and/or transaction identifier. Authentication broker 36 is then able to query depository server 44 in order to obtain the RBA decision.
FIG. 2 depicts an example authentication broker 36 in further detail. Authentication broker 36 includes a network interface 52. Authentication broker 36 is able to communicate with application server 34, CBA server 38, RBA server 42, and either depository server 44 or RBA adapter 40 using network adapter 52. In some embodiments, these communications are done over separate network connections, while in other embodiments, one network connection may provide communication with more than one of the application server 34, CBA server 38, RBA server 42, and either depository server 44 or RBA adapter 40.
Authentication broker also contains a processor 54 and memory 56. Processor 54 may be any kind of processor configured to perform operations, such as, for example, a microprocessor, a multi-core microprocessor, a digital signal processor, a collection of electronic circuits, or one or more of the above. Memory 56 may be any kind of digital memory, such as, for example, random access memory, read-only memory, static memory, volatile memory, non-volatile memory, system memory, solid-state storage, disk-based storage, or some combination of the above. Memory 56 stores programs executing on processor 54 as well as data used by those programs. Memory 56 stores an operating system 58, a Remote Authentication Dial In User Service (RADIUS) proxy application 60, a session broker program 68, and a SOAP client program 70, all of which run on processor 54. Memory 56 typically includes both a system memory portion for storing programs and data in active use by the processor 54 as well as a persistent storage portion (e.g., solid-state storage and/or disk-based storage) for storing programs and data even while the authentication broker 36 is powered off. The RADIUS proxy application 60, session broker program 68, and SOAP client program 70 are typically stored both in system memory and in persistent storage so that they may be loaded into system memory from persistent storage upon a system restart. The RADIUS proxy application 60, session broker program 68, and SOAP client program 70, when stored in non-transient form in system memory, form a computer program product. The RADIUS proxy application 60, session broker program 68, and SOAP client program 70, when stored in non-transient form in persistent storage, form a computer program product as well.
Authentication broker 36 is designed to serve as a front-end for various functions, such as, for example, CBA. In order to do so, it includes the functionality of RADIUS proxy 60, whereby it is able to offload CBA tasks to a remote server, such as CBA server 38, which is able to specialize in CBA, while authentication broker 36 is able to perform other tasks. It should be understood that, in some embodiments, the functionality of CBA server 38 may be provided by a CBA application server running on the same machine as authentication broker 36.
RADIUS proxy 60 operates according to the RADIUS protocol, defined by RFC 2865 promulgated by the Internet Engineering Task Force of Fremont, Calif. in June, 2000 and updated by various additional RFCs, such as RFC 2868, RFC 3575, and RFC 5080. The contents and teachings of RFCs 2685, 2868, 3575, and 5080 are incorporated herein by this reference in their entirety. RADIUS proxy 60 contains a request path 62 and a response path 64. Request path 62 receives incoming RADIUS request messages received via network interface 52 from application server 34 and forwards (in some cases with modification) the request messages on towards the CBA server 38 via network interface 52. Response path 64 receives incoming RADIUS response messages received via network interface 52 from CBA server 38 and forwards (in some cases with modification) the response messages on towards the application server 34 via network interface 52. Interception module 66 sits within request path 62 and response path 64 and intercepts certain request messages and response messages for processing by session broker 68. Thus, many RADIUS response messages, upon receipt by response path 64 are intercepted by interception module 66 and sent to session broker 68, which sends details of each particular RADIUS response message to SOAP client 70 to be sent to the RBA server 42 via network interface 52. SOAP client 70 sends information to the RBA server in an XML-based format, such as the SOAP format, version 1.2, promulgated by the World Wide Web consortium of Cambridge, Mass. as a Recommendation on Apr. 27, 2007, the contents and teachings of which are incorporated herein by this reference in their entirety. In addition, RADIUS access-accept and access-reject messages may be converted into access-challenge messages with different parameters by session broker 68 prior to being returned to response path 64.
FIGS. 3-5 illustrate the operation of system 30 in detail according to various embodiments. It should be understood that any time a piece of software, such as, for example, login client 33 or session broker 68, is described as performing a method, process, step, or function, in actuality what is meant is that the device on which the piece of software is running (e.g., authentication broker 36 via operation of processor 54) performs the method, process, step, or function when executing that piece of software.
FIG. 3 illustrates, as method 100, the operation of system 30 when the CBA server 38 initially grants authentication to a login attempt. When a user 31 desires to login to a service 35 or resource 37 via application server 34, user 31 initiates a login attempt via login client 33 on client 32 by providing user credentials (e.g., username, password, and/or OTP). Client 32 then sends a login message 102 to application server 34 containing the credentials. Upon receipt, application server 34 sends the credentials to the authentication broker 36 by sending a RADIUS access-request message 104 with the credentials as parameters. Request path 62 of the authentication broker 36 receives the access-request message 104 and forwards the request on to the CBA server 38 as message 106. CBA server 38 performs an authentication function 108 in order to decide whether to accept, reject, or challenge the login attempt according to well-known procedures. In the scenario of FIG. 3, CBA server 38 positively accepts the authentication attempt and proceeds to sends a RADIUS access-accept message 110 back to the authentication broker 36. Response path 64 of the authentication broker 36 receives the access-accept message 110, which is intercepted by interception module 66 for processing 112 by session broker 68. Session broker 68 then directs SOAP client 70 to send decision information 114 to the RBA server 42, the decision information 114 including the user credentials and an indication that the authentication request was accepted by the CBA server 38. Session broker 68 also modifies the incoming access-accept message 110 to create a RADIUS access-challenge message 116, containing a parameter indicating that an RBA challenge should be performed. Session broker 68 then sends the access-challenge message 116 to the response path 64 so that the access-challenge message 116 can be sent to the application server 34 via network interface 52.
Upon receiving the access-challenge message 116 with the parameter indicating that an RBA challenge should be performed, application server 34 sends a re-direct command 118 to the login client 33 directing the login client 33 towards RBA adapter 40. Login client 33 sends a page request 120 for an RBA page to RBA adapter 40, which responds by returning an RBA page 122 to the login client 33. RBA page 122 includes various queries for additional information that may be useful in performing RBA. Some of these queries may be automatically responded to by login client 33, while other queries may be responded to by user 31. These additional details 124 in response to the queries are then sent from login client 33 to RBA adapter 40. RBA adapter 40 is then able to create and send an access request message 126 containing the additional details 124 to the RBA server 42 for performance of RBA 128. The RBA 128 includes either a positive or a negative determination based on a real-time risk assessment of the login attempt in light of the additional details 124 and the previously-received decision information (as well as other stored information regarding previous login attempts by the same user 31 or received from the same client 32). RBA server 42 then sends an access response message 130 indicating whether the RBA was positive or negative back to the RBA adapter 40. RBA adapter 40 then informs authentication broker 36 (typically indirectly via depository server 44) of the RBA access decision 132. RBA adapter 40 also sends a reply page 134 back to the login client 33. In some embodiments, reply page 134 only includes a hidden indication of whether the RBA was positive or negative so that the login client 33 does not display that information to the user 31. In other embodiments, reply message 134 may not even include any information about the RBA decision at all, the reply message 134 merely directing the login client 33 to reply to the application server 34 in response to the re-direct command 118. In any case, login client 33 sends a re-login request message 136 to the application server 34. Application server 34 then sends a RADIUS access-request message 138 to the authentication broker 36.
Since the authentication broker 36 already knows what the result of the RBA authentication was (via RBA access decision 132 from RBA adapter 40 or depository server 44), authentication broker 36 is able to easily process the access-request message 138 in processing step 140. As long as both the CBA and the RBA were both positive, the login attempt is successful, and response path 64, under control of session broker 68, sends a RADIUS access-accept message back to application server 34 as the access response 142. However, if one or both of the CBA and the RBA were negative, then response path 64, under control of session broker 68, sends a RADIUS access-reject message back to application server 34 as the access response 142. Application server 34 performs a processing operation 144 on the access response 142, and sends an appropriate access decision 146 back to the login client 33, so that the user 31 is informed whether the login attempt was successful or not. If successful, user 31 is then able to access the service 35 or resource 37 as initially desired.
FIG. 4 illustrates, as method 200, the operation of system 30 when the CBA server 38 initially rejects authentication for a login attempt. When a user 31 desires to login to a service 35 or resource 37 via application server 34, user 31 initiates a login attempt via login client 33 on client 32 by providing user credentials (e.g., username, password, and/or OTP). Client 32 then sends a login message 202 to application server containing the credentials. Upon receipt, application server 34 sends the credentials to the authentication broker 36 by sending a RADIUS access-request message 204 with the credentials as parameters. Request path 62 of the authentication broker 36 receives the access-request message 204 and forwards the request on to the CBA server 38 as message 206. CBA server 38 performs an authentication function 208 in order to decide whether to accept, reject, or challenge the login attempt. In the scenario of FIG. 4, CBA server 38 positively rejects the authentication attempt and proceeds to sends a RADIUS access-reject message 210 back to the authentication broker 36. Response path 64 of the authentication broker 36 receives the access-reject message 210, which is intercepted by interception module 66 for processing 212 by session broker 68. Session broker 68 then directs SOAP client 70 to send decision information 214 to the RBA server 42, the decision information 214 including the user credentials and an indication that the authentication request was rejected by the CBA server 38.
At this point, in one embodiment (described in further detail in connection with FIG. 6, below), operation skips over the steps of box 215 down to the bottom of FIG. 4, and response path 64 merely forwards the access-reject message 210 unmodified as access reject message 242 to application server 34. Application server 34 performs a processing operation 244 on the access response 142, and sends an access rejection message 246 back to the login client 33, so that the user 31 is informed that login attempt was unsuccessful.
Alternatively, in another embodiment (associated with FIG. 7, below), operation proceeds with the contents of box 215 in order to initiate RBA upon performing processing 212 and sending decision information 214. There are two reasons why it may be advantageous to operate in this manner. First, it allows collection of additional details by the RBA adapter 40 that would not be available to the RBA server 42 for future RBA decisions were the contents of box 215 omitted. Second, operation from the perspective of the user 31 appears the same whether or not the CBA server 38 accepted or rejected the authentication, thereby preventing the user 31 from learning whether any rejection was issued by the CBA server 38 or the RBA server 42. This hiding of information can increase system security by giving less direction to a fraudster seeking to impersonate a valid user 31.
In box 215, upon performing processing 212 (in response to receiving the access-reject message), session broker 68 modifies the incoming access-reject message 210 to create a RADIUS access-challenge message 216, containing a parameter indicating that an RBA challenge should be performed. Session broker 68 then sends the modified access-challenge message 216 to the response path 64 so that the modified access-challenge message 216 can be sent to the application server 34 via network interface 52. Upon receiving the modified access-challenge message 216 with the parameter indicating that an RBA challenge should be performed, application server 34 sends a re-direct command 218 to the login client 33 directing the login client 33 towards RBA adapter 40. Login client 33 sends a page request 220 for an RBA page to RBA adapter 40, which responds by returning an RBA page 222 to the login client 33. RBA page 222 includes various queries for additional information that may be useful in performing RBA. Some of these queries may be automatically responded to by login client 33, while other queries may be responded to by user 31. Additional details 224 in response to the queries are then sent from login client 33 to RBA adapter 40. RBA adapter 40 is then able to create and send an access request message 226 containing the additional details 224 to the RBA server 42. In response to receiving the access request message 226, RBA server 42 may immediately respond with a rejection message 230, since RBA server 42 already knows (from decision information 214) that the CBA server 38 has already rejected the authentication. RBA adapter 40 then sends a reply page 234 back to the login client 33. In some embodiments, reply page 234 only includes a hidden indication of whether the RBA was positive or negative so that the login client 33 does not display that information to the user 31. In other embodiments, reply message 234 may not even include any information about the RBA decision at all, the reply message 234 merely directing the login client 33 to respond to the application server 34. In any case, login client 33 sends a re-login request message 236 to the application server 34. Application server 34 then sends a RADIUS access-request message 238 to the authentication broker 36. Since the authentication broker 36 already knows that the CBA server 38 has already rejected the authentication, session broker 68 knows that the proper response to the access-request message 238 is to issue an access-reject message 242 as described previously.
Although communication of the additional details 224 from the RBA adapter 40 to the RBA server 42 has been described as being done via an access request message 226 with a corresponding rejection message 230 being sent back, this may not be necessary in embodiments in which the RBA adapter 40 is already aware that the CBA server 38 has already rejected the authentication. In such embodiments, the additional details 224 from the RBA adapter 40 to the RBA server 42 may be sent as an informational message rather than as an access request message and the rejection message 230 is not sent, since the RBA adapter 40 is already aware that the CBA server 38 has already rejected the authentication.
FIG. 5 illustrates, as method 300 the operation of system 30 when the CBA server 38 initially responds to a login attempt with a challenge. When a user 31 desires to login to a service 35 or resource 37 via application server 34, user 31 initiates a login attempt via login client 33 on client 32 by providing user credentials (e.g., username, password, and/or OTP). Client 32 then sends a login message 302 to application server 34 containing the credentials. Upon receipt, application server 34 sends the credentials to the authentication broker 36 by sending a RADIUS access-request message 304 with the credentials as parameters. Request path 62 of the authentication broker 36 receives the access-request message 304 and forwards the request on to the CBA server 38 as message 306. CBA server 38 performs an authentication function 308 in order to decide whether to accept, reject, or challenge the login attempt. In the scenario of FIG. 5, CBA server 38 challenges the login attempt by sending a RADIUS access-challenge message 310 back to the authentication broker 36. The access-challenge message 310 includes parameters that indicate what kind of challenge is being issued. For example, if the CBA server 38 is challenging the login attempt by requiring a next token code (e.g., user 31 is to be directed to enter a new OTP from the token since the previously-entered OTP was too old), the parameters of the access-challenge message 310 would include an indication that an NTC (“Next Token Code”) challenge is being issued. Response path 64 of the authentication broker 36 receives the access-challenge message 310, which is intercepted by interception module 66 for processing 312 by session broker 68. Session broker 68 then directs SOAP client 70 to send decision information 314 to the RBA server 42, the decision information 314 including the user credentials and an indication that the authentication request was challenged by the CBA server 38 with an NTC request. Session broker 68 also uses the incoming access-challenge message 310 to create a modified RADIUS access-challenge message 316, containing a parameter indicating that an NTC challenge should be performed. Session broker 68 then sends the modified access-challenge message 316 to the response path 64 so that the modified access-challenge message 316 can be sent to the application server 34 via network interface 52.
Upon receiving the modified access-challenge message 316 with the parameter indicating that an NTC challenge should be performed, application server 34 sends an NTC challenge page 322 (or a CBA challenge page for another type of CBA challenge) to the login client 33. The user 31 is then able to respond to the challenge by entering in a new OTP or other challenge information in order that the login client 33 is then able to send the NTC 324 or other challenge information back to the application server 34. Upon receipt, application server 34 sends the NTC 324 to the authentication broker 36 to be authenticated by sending a RADIUS access-request message 338 with the NTC as a parameter. Request path 62 of the authentication broker 36 receives the access-request message 338 and forwards the request on to the CBA server 38 as message 350. CBA server 38 then performs an authentication function 108, 208, 308 in order to decide whether to accept, reject, or challenge the login attempt, and operation resumes with the step 110, 210, or 310 of methods 100, 200, or 300, respectively, as appropriate.
FIG. 6 illustrates an example method 400 performed by authentication broker 34 according to various embodiments. In step 410, RADIUS proxy 60, at request path 62, receives a login message (e.g., RADIUS access-request message 104, 204, 304) from the application server 34 via network interface 52 upon the user 31 attempting to gain access to a service 35 provided by the application server 34 (or to login to access a resource 37 protected by the application server 34). The login message includes a user credential, such as, for example one or more of a username, password, and OTP included as a parameter within access-request message 104, 204, 304.
In step 420, RADIUS proxy 60, at request path 62, forwards the user credential to the CBA server 38 via the network interface 52 for CBA to be performed by the CBA server 38. Typically, this forwarding involves sending RADIUS access-request message 106, 206, 306 (which may either be an exact copy of RADIUS access-request message 104, 204, 304, respectively, or it may include minor modifications).
In step 430, RADIUS proxy 60, at response path 64, receives an authentication decision message (e.g., RADIUS access-accept message 110, RADIUS access-reject message 210, or RADIUS access-challenge message 310) from the CBA server 38.
In step 440, interception module 66 intercepts the received authentication decision message and sends it to the session broker 68, which directs the SOAP client 70 to send, via the network interface 52, decision information 114, 214, 314 regarding the received authentication decision message to the RBA server 42, the decision information 114, 214, 314 to be used by the RBA server 42 in performing RBA decisions. The decision information 114, 214, 314 includes the user credentials as well as an indication of the authentication decision (positive, negative, or challenge) made by the CBA server 38.
In parallel with step 440, authentication broker 36 also performs one of steps 450, 460, and 470. Session broker 68 determines which of steps 450, 460, 470 to perform based on what kind of authentication decision message has been received.
In step 450, if the authentication decision is positive (e.g., if it is access-accept message 110), then session broker 68 generates a challenge message (e.g., access-challenge message 116) indicating that the application server 34 should initiate RBA to be performed by the RBA server 42 supplementary to the CBA and inserts that challenge message into the response path 64 to be sent to the application server 34 via network interface 52. In response, in step 452, authentication broker 36 receives, at request path 62, a challenge response message (e.g., access-request message 138) from the application server 34 via network interface 52. In some embodiments, the challenge response message includes an indication of what the RBA decision was, while, in other embodiments, the challenge response message includes no indication as to what the RBA decision was (in order to avoid the user 31 finding out what the RBA decision was). Interception module 66 intercepts the challenge message and sends it to the session broker 68, which, in step 454, verifies what the result of the RBA was independently of the application server 34 (for example by contacting depository server 44 to retrieve the RBA decision without any possibility of tampering by the user 31). In step 456, if the verification indicates that the RBA was successful, then, since the CBA was also successful, then session broker 68 generates an acceptance message (e.g., a RADIUS access-accept message) as access response message 142, indicating that the authentication was successful, and inserts that acceptance message into the response path 64 to be sent to the application server 34 via network interface 52, thereby causing application server 34 to grant the user 31 access to the service 35 or resource 37.
In step 460, if the authentication decision is negative (e.g., if it is access-reject message 210), then, in step 466, session broker 68 generates a rejection message (e.g., access-reject message 242) indicating that the authentication was unsuccessful, and inserts that rejection message into the response path 64 to be sent to the application server 34 via network interface 52, thereby causing application server 34 to refuse the user 31 access to the service 35 or resource 37. In some embodiments, prior to performing step 466, in step 462, session broker 68 generates a challenge message (e.g., access-challenge message 216) indicating that the application server 34 should initiate RBA to be performed by the RBA server 42 supplementary to the CBA and inserts that challenge message into the response path 64 to be sent to the application server 34 via network interface 52. In response, in step 464, authentication broker 36 receives, at request path 62, a challenge response message (e.g., access-request message 238) from the application server 34 via network interface 52. At this point, since the session broker 68 knows that the CBA was unsuccessful, it doesn't matter what the result of the RBA was (steps 462 and 464 serving to ensure that the RBA server 42 obtains the necessary additional details 224 and to hide the outcome of the CBA from the user 31 by performing RBA regardless of the result of the CBA), so authentication broker 36 is able to immediately issue a rejection by proceeding to step 466.
In step 470, if the authentication decision is a challenge (e.g., if it is access-challenge message 310), then session broker 68 generates a challenge message (e.g., access-challenge message 316) indicating that the application server 34 should initiate a CBA challenge and inserts that challenge message into the response path 64 to be sent to the application server 34 via network interface 52. Operation then proceeds with step 410, as the authentication broker 36 then receives a challenge response message (e.g., access-request message 338) containing the NTC as the user credentials, the challenge response message then being processed in the same manner as an initial access-request message 204, 304, 404.
FIG. 7 illustrates an example method 500 performed by authentication broker 36 according to various embodiments. It should be understood that method 500 includes a more generalized description of method 400 according to embodiments in which RBA is performed even if CBA is unsuccessful. However, in method 500, being more general, CBA and RBA may be replaced by other authentication techniques.
In step 510, authentication broker 36 receives an authentication request message (e.g., access-request message 104, 204, 304) from an application server 34 seeking to authenticate a user 31 for access to a service 35 (or resource 37) provided by the application server 34.
In step 520, authentication broker 36 communicates with a first authentication server (e.g., CBA server 38) to obtain a first authentication of the user 31 (e.g., using CBA and one or more credentials provided by the user 31). The result of the communication with the first authentication server may be positive, negative, or a challenge.
In step 530, authentication broker 36 communicates with a second authentication server (e.g., RBA server 42) to obtain a second authentication of the user 31 (e.g., using RBA additional details 124, 224 provided by the user 31 to perform RBA). The result of the communication with the second authentication server may be either positive or negative.
The first authentication (step 520) and the second authentication (step 530), although depicted as being done in that order, may actually be performed in parallel or, even, the second authentication (step 530) may precede the first authentication (step 520). Typically, however, the first authentication (step 520) is done first so that the authentication server 36 is able to send decision information 114, 214, 314 regarding the first authentication to the second authentication server for use in the second authentication.
In step 540, authentication broker 36 rejects the authentication request if either (or both) of the first authentication (step 520) and the second authentication (step 530) yield negative results. Otherwise, if both of the first authentication (step 520) and the second authentication (step 530) yield positive results, then authentication broker 36 accepts the authentication request. If the first authentication attempt (step 520) yields a challenge, then the first authentication attempt (step 520) may be repeated until a positive or negative result is reached (or until the second authentication attempt yields a negative result, which would render the result of the first authentication attempt moot).
Upon rejecting the authentication request (see step 540, above), in step 550 authentication broker 36 sends a rejection message (e.g., access-reject message 242) to the application server 34 without informing the application server 34 whether the first authentication (step 520) or the second authentication (step 530) was negative.
Thus, techniques have been described for performing a first authentication by a first authentication server (e.g., CBA server 38) and a second authentication by a second authentication server (e.g., RBA server 42) regardless of whether the first authentication succeeds or fails and refraining from indicating to the user 31 which authentication failed if authentication is rejected.
While various embodiments of the present disclosure have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as defined by the appended claims.
For example, it should be understood that, although reference has been made to the RADIUS protocol, this is by way of example only. Various other authentication protocols, such as, for example, SAML and OAuth, could be used instead with only minor modifications.
As an additional example, it should be understood that, although reference has been made to the SOAP protocol, this is by way of example only. Various other remoting protocols, such as, for example, REST, CORBA, and COM, could be used instead with only minor modifications.
As an additional example, it should be understood that, although the RBA process 120-134, 220-234 has been described as involving one set of queries (within RBA page 122, 222) for additional information and one set of additional details 124, 224, this is by way of example only. In some embodiments, there may be more than one back-and-forth exchanges in which RBA adapter 40 sends several RBA pages 122, 222 to client 32 with various queries and client 32 sends several sets of additional details 124, 224 back to RBA adapter 40. There may also be several exchanges of access request messages 126, 226 and access response messages 130, 230 between RBA adapter 40 and RBA server 42, as needed.
As an additional example, it should be understood that although various embodiments have been described as being methods, software embodying these methods is also included. Thus, one embodiment includes a tangible non-transient computer-readable medium (such as, for example, a hard disk, a floppy disk, an optical disk, computer memory, flash memory, etc.) programmed with instructions, which, when performed by a computer or a set of computers, cause one or more of the methods described in various embodiments to be performed. Another embodiment includes a computer which is programmed to perform one or more of the methods described in various embodiments.
Furthermore, it should be understood that all embodiments which have been described may be combined in all possible combinations with each other, except to the extent that such combinations have been explicitly excluded.
Finally, nothing in this Specification shall be construed as an admission of any sort. Even if a technique, method, apparatus, or other concept is specifically labeled as “prior art” or as “conventional,” Applicants make no admission that such technique, method, apparatus, or other concept is actually prior art under 35 U.S.C. §102, such determination being a legal determination that depends upon many factors, not all of which are known to Applicants at this time.

## Claims

1. A method performed by a computing device, the method comprising:
receiving an authentication request from an application server seeking to authenticate a user for access to a service provided by the application server;
communicating with a first remote authentication server over a network connection to obtain a first authentication of the user;
obtaining a second authentication of the user, the second authentication being of a type distinct from the first authentication, the second authentication having been performed by a second remote authentication server distinct from the first remote authentication server;
in response to one or both of the obtained first authentication and the obtained second authentication being negative, rejecting the authentication request; and
upon rejecting the authentication request, sending a rejection message to the application server, the rejection message indicating that the authentication request has been rejected without indicating whether the first authentication or the second authentication was negative;

wherein:
the first authentication is a credential-based authentication performed by the first authentication server using a credential supplied by the user;
the second authentication is a risk-based authentication performed by the second authentication server supplemental to the first authentication, by the second authentication server evaluating a risk posed by a set of risk factors associated with the authentication request; and
the application server, upon receiving the rejection message from the computing device is configured to inform the user that access to the service has been denied while refraining from informing the user which of the credential-based authentication or the risk-based authentication was negative.

2. The method of claim 1 wherein the method further comprises the computing device sending decision information about the credential-based authentication received from the first authentication server to the second authentication server prior to the second authentication server performing the risk-based authentication, the decision information to be used by the second authentication server in performing risk-based authentication decisions.

3. The method of claim 1 wherein:
receiving the authentication request from the application server includes receiving the credential supplied by the user from the application server;
communicating with the first remote authentication server to obtain the first authentication of the user includes forwarding the credential from the computing device to the first remote authentication server for evaluation by the credential-based authentication; and
obtaining the second authentication of the user includes directing the application server to re-direct the user to a remote risk-based authentication adapter configured to initiate the risk-based authentication performed by the second remote authentication server.

4. The method of claim 3 wherein the risk-based authentication adapter, upon initiating the risk-based authentication, is configured to:
retrieve additional information from the user not available to the application server; and
forward the additional information to the risk-based authentication server for performing the risk-based authentication.

5. The method of claim 3 wherein receiving the authentication request, forwarding the credential from the computing device to the first authentication server, and directing the application server to re-direct the user to the risk-based authentication adapter are each performed according to the Remote Authentication Dial In User Service (RADIUS) protocol.

6. The method of claim 3 wherein obtaining the second authentication of the user further includes communicating with a depository server to retrieve the second authentication of the user, the remote risk-based authentication adapter having received the second authentication of the user from the second remote authentication server in response to the remote risk-based authentication adapter sending user-specific details to the second remote authentication server, the user-specific details including details about the user not available to the application server.

7. The method of claim 3 wherein the method further includes operating an interception module within a response path of the computing device, the interception module being configured to:
intercept the first authentication of the user received from the first remote authentication user; and
in response to intercepting, instruct the response path to re-direct the user to the remote risk-based authentication adapter.

8. The method of claim 1 wherein obtaining the second authentication of the user is performed by the computing device subsequent to the computing device obtaining a negative result for the first authentication from the first remote authentication server.

9. An apparatus comprising:
a network interface;
memory; and
a controller, the controller being configured to:
receive, via the network interface, an authentication request from a remote application server seeking to authenticate a user for access to a service provided by the application server;
communicate, via the network interface, with a first remote authentication server to obtain a first authentication of the user;
obtain, via the network interface, a second authentication of the user, the second authentication being of a type distinct from the first authentication, the second authentication having been performed by a second remote authentication server distinct from the first remote authentication server;
reject the authentication request if and only if one or both of the obtained first authentication and the obtained second authentication is negative; and
upon rejecting the authentication request, send, via the network interface, a rejection message to the application server, the rejection message indicating that the authentication request has been rejected without indicating whether the first authentication or the second authentication was negative;

wherein:
the first authentication is a credential-based authentication performed by the first authentication server using a credential supplied by the user;
the second authentication is a risk-based authentication performed by the second authentication server supplemental to the first authentication, by the second authentication server evaluating a risk posed by a set of risk factors associated with the authentication request; and
the application server, upon receiving the rejection message from the apparatus, is configured to inform the user that access to the service has been denied while refraining from informing the user which of the credential-based authentication or the risk-based authentication was negative.

10. The apparatus of claim 9 wherein the controller is further configured to:
send, via the network interface, decision information about the credential-based authentication received from the first authentication server to the second authentication server prior to the second authentication server performing the risk-based authentication, the decision information to be used by the second authentication server in performing risk-based authentication decisions.

11. The apparatus of claim 9 wherein the controller is configured to:
when receiving the authentication request from the application server, receive the credential supplied by the user from the application server;
when communicating with the first remote authentication server to obtain the first authentication of the user, forward the credential from the computing device to the first remote authentication server for evaluation by the credential-based authentication; and
when obtaining the second authentication of the user, direct the application server to re-direct the user to a risk-based authentication adapter configured to initiate the risk-based authentication performed by the second remote authentication server.

12. The apparatus of claim 11 wherein receiving the authentication request, forwarding the credential from the computing device to the first authentication server, and directing the application server to re-direct the user to the risk-based authentication adapter are each performed according to the Remote Authentication Dial In User Service (RADIUS) protocol.

13. A computer program product comprising a non-transient computer-readable storage medium, storing a set of instructions, which, when executed by a computer, cause the computer to perform the steps of:
receiving an authentication request from an application server seeking to authenticate a user for access to a service provided by the application server;
communicating with a first remote authentication server over a network connection to obtain a first authentication of the user;
obtaining a second authentication of the user, the second authentication being of a type distinct from the first authentication, the second authentication having been performed by a second remote authentication server distinct from the first remote authentication server;
in response to one or both of the obtained first authentication and the obtained second authentication being negative, rejecting the authentication request; and
upon rejecting the authentication request, sending a rejection message to the application server, the rejection message indicating that the authentication request has been rejected without indicating whether the first authentication or the second authentication was negative;

wherein:
the first authentication is a credential-based authentication performed by the first authentication server using a credential supplied by the user;
the second authentication is a risk-based authentication performed by the second authentication server supplemental to the first authentication, by the second authentication server evaluating a risk posed by a set of risk factors associated with the authentication request; and
the application server, upon receiving the rejection message from the computer is configured to inform the user that access to the service has been denied while refraining from informing the user which of the credential-based authentication or the risk-based authentication was negative.

14. The computer program product of claim 13 wherein the instructions, when executed by the computer, further cause the computer to perform the step of:
sending decision information about the credential-based authentication received from the first authentication server to the second authentication server prior to the second authentication server performing the risk-based authentication, the decision information to be used by the second authentication server in performing risk-based authentication decisions.

15. The computer program product of claim 13 wherein the instructions, when executed by the computer, further cause the computer to:
when receiving the authentication request from the application server, receive the credential supplied by the user from the application server;
when communicating with the first remote authentication server to obtain the first authentication of the user, forward the credential from the computing device to the first remote authentication server for evaluation by the credential-based authentication; and
when obtaining the second authentication of the user, direct the application server to re-direct the user to a risk-based authentication adapter configured to initiate the risk-based authentication performed by the second remote authentication server.

16. The computer program product of claim 15 wherein receiving the authentication request, forwarding the credential from the computing device to the first authentication server, and directing the application server to re-direct the user to the risk-based authentication adapter are each performed according to the Remote Authentication Dial In User Service (RADIUS) protocol.