Plaque It!
Sponsored by: Flash of Genius |
[0001] This application claims the benefit of U.S. Provisional Application No. 60/185,579 filed Feb. 28, 2000 and entitled “Method and System for Token-Based Authentication,” incorporated herein by this reference.
[0002] This application relates to co-pending U.S. patent application Ser. No. 09/688,112 filed Sep. 22, 2000, entitled “Method and System for Single Sign-On User access to Multiple Web Servers” which claimed the benefit of U.S. Provisional Application No. 60/155,853 filed Sep. 24, 1999, each of which is incorporated herein by this reference.
[0003] The present invention relates generally to the field of access authentication into a website and more particularly to a method and system for user access authentication to a website using a smart card.
[0004] The invention disclosed in co-pending application U.S. patent application Ser. No. 09/688,112 filed Sep. 22, 2000, entitled “Method and System for Single Sign-On User Access to Multiple Web Servers” (“single sign-on mechanism”) provides for single sign-on user access to a federation of web servers that allows a user already authenticated on one website to have access, for example, to another website without having to be re-authenticated via provision of a valid user name and password. The single sign-on mechanism enables user authentication at the first website, selection of the second website's Uniform Resource Locator (URL), and passage of an authentication token by the first website server to the second website server that contains sufficient information for the second website server to recognize the user as a valid user.
[0005] In other words, with the single sign-on mechanism, once the user goes into the Internet, logging in to one web server using the typical user path, that particular web server generates an authentication cookie which allows the user to access the other web server under the same domain. However, the process of logging in by the user is typically performed by simply entering a static user name and password, which provides little, if any, security.
[0006] It is a feature and advantage of the present invention to provide a method and system for token based user access authentication that enables secure user access to a web server using, for example, a smart card.
[0007] It is a further feature and advantage of the present invention to provide a method and system for token based user access authentication that allows improved management of access to a particular web server.
[0008] To achieve the stated and other features, advantages and objects, an embodiment of the present invention provides a method and system for token based user access authentication which makes use of the token authentication process of the single sign-on mechanism, but does not employ a user name and password in the log on process. Instead, an embodiment of the present invention makes use of a smart card with a certificate which allows the user to log on by authenticating himself or herself to the smart card with a Personal Identification Number (PIN). The smart card then uses a mutual authentication to verify the identity of cardholder and the access server and establish a secure link between client terminal to access server with the Secure Sockets Layer (SSL) protocol.
[0009] An embodiment of the present invention provides a method and system for token-based authentication in an environment of single sign-on access for a user to a federation of web servers. The method enables authentication at an entity's web site server, selection of a service provider URL, and passage of a one-time perishable authentication token by the entity's web site server to a service provider's server. The token contains sufficient information to enable the service provider's server to recognize the entity as a valid service provider user, and may take the form of a cookie that can be shared across domains. An exemplary system may be an online brokerage firm with accompanying bill payment services provided at a separate domain.
[0010] According to an embodiment of the method of token-based authentication of the present invention, the user with a token, such as a smart card, at a workstation, such as a client terminal or other computing device, such as personal computer or a web-enabled wireless device with a card reading device, is authenticated by an application, for example, on the smart card. The user authenticates to the application on the token, such as the smart card, by entering the user's personal identification number or other identifying information at the workstation. A mutual authentication is established between the client workstation and an access server, such as the access server for an online banking system, coupled to the client workstation over a network, such as the Internet, using a digital certificate which is stored on the token, such as the smart card.
[0011] The mutual authentication process for an embodiment of the present invention, involves reading out the digital certificate by invoking a browser on the client workstation to retrieve the digital certificate from the smart card. In the mutual authentication process, the user with the smart card is allowed to access the browser at the client workstation to retrieve a smart card logon page which resides on the access server. The smart card logon page is a secure web site via Secure Hypertext Transfer Protocol that contains codes to invoke the browser at the client workstation for reading contents of the smart card and is a web site that is configured to require both Secure Sockets Layer Protocol server authentication and Secure Sockets Layer Protocol client authentication. The smart card logon page reads and sends the cardholder's digital certificate which has the logical card ID number imbedded from the smart card to the access server via a network, such as the Internet, using a Secure Sockets Layer Protocol link between the browser at the client workstation and the access server.
[0012] In an embodiment of the present invention, the digital certificate is validated against a database of the access server to verify that the token, such as the smart card, hence the certificate, is valid. The digital certificate validation process involves validating the logical card-ID of the smart card against the access server database to verify that the smart card is not invalid and is found in the access server database. Upon validating the digital certificate, authentication of the user is confirmed, and the logical card-ID returned from the smart card is mapped into a system user ID by the access server, based on mappings stored in the access server database. The access server also generates at least one authentication cookie which indicates a server, such as the access server, that the user is entitled to use for logging on and at least one additional server, such as an online banking system server, that the user is entitled to access with the authentication cookie;
[0013] The authentication cookie for an embodiment of the present invention is encrypted by a private key associated with a server certificate of the access server, and a time stamp is associated with the authentication cookie by the access server. The access server can also generate multiple authentication cookies which indicate any number of additional servers, such as a federation of web servers, that the user is entitled to access with the authentication cookie. The access server sends the authentication cookie or cookies to the browser of the client workstation and redirects the browser at the client workstation to one or more additional servers, such as the online banking system server. The additional server or servers verifies the authentication cookie for access for the user to the additional server or servers, such as the online home banking system server. Verification of the authentication cookie involves, for example, reading the authentication cookie by the home page of the online banking system server, retrieving the online banking system user ID, and performing a trusted logon on behalf of the user.
[0014] Additional objects, advantages and novel features of the invention will be set forth in part in the description which follows, and in part will become more apparent to those skilled in the art upon examination of the following, or may be learned by practice of the invention.
[0015]
[0016]
[0017]
[0018]
[0019]
[0020] Referring now in detail to an embodiment of the invention, an example of which is illustrated in the accompanying drawings,
[0021] Referring further to
[0022] An aspect of an embodiment of the present invention also makes use, for example, of the same smart card with a different platform, such as a cell phone, to access the same web server with the same solution.
[0023] In an embodiment of the present invention, an Internet Service Provider (ISP) is dialed up, and from the ISP the first server
[0024] Referring again to
[0025] Once the cardholder
[0026] When the client workstation
[0027] In an embodiment of the present invention, the administration and the Help Desk access the access server
[0028] An online banking aspect of an embodiment of the present invention provides a token based authentication solution for secure access to a web site, for example, for an online banking system, which utilizes a smart card solution as one aspect of end-to-end e-commerce solutions, including electronic purchasing, payments, settlement, reconciliation, and ready access to information.
[0029] The smart card solution for an embodiment of the present invention is managed, for example, by a financial institution, such as a bank. Thus, the bank procures, configures and deploys the workstations, such as PC
[0030] In an embodiment of the present invention, authentication of the user
[0031] In the authentication process for an embodiment of the present invention, each user's workstation, such as PC
[0032]
[0033] The web site for an embodiment of the present invention is configured to require both SSL server authentication and SSL client authentication. The logon page also contains codes to invoke the Netscape plug-in for reading the contents of the smart card
[0034] Referring further to
[0035] Referring again to
[0036] In an online banking system trusted logon aspect for an embodiment of the present invention, the online banking system
[0037] In an aspect of embodiment of the present invention, when the smart card user
[0038] Under a normal situation, in an embodiment of the present invention, when the user
[0039] In a smart card management and user support aspect of an embodiment of the present invention, smart card issuance is completed by the bank, and each participant is issued two cards, one of which is for backup purposes. A smart card security manager workstation is installed at the bank for smart card management. The bank conducts on-site installation and training. During the training process, the cardholder
[0040] In this aspect, lost smart cards are reported to the bank's online banking system Help Desk. The CSR puts the smart card ID on the “hot card list” to disable the lost card. At that time, the CSR enables a backup card. In addition, a replacement is issued and sent to the cardholder
[0041] Aspects of an embodiment of the present invention involve, for example, enabling the online banking system home page to read authentication cookies, the online banking system trusted logon, implementing the smart card logon page, incorporating authentication cookie management to the IIS ASP page, redirecting the browser of the user's PC
[0042] An embodiment of the present invention provides trusted logon from a smartcard authenticated user into the web site of the online banking system
[0043] Continuing with the example of current functionality, upon entering the user's logon and password, the usename/password combination is verified against the database, and one of four occurrences is possible. A first possible occurrence is that the user is validated and redirected into the online banking system application. A second possible occurrence is that the user is notified that either the username or password is invalid and allowed to try again, up to three attempts, at which time the user is locked out of the system and only a CSR can reactivate the user. A third possible occurrence is that the user is notified that the account has been “locked out” and that the user must contact a CSR to reactivate the user. A fourth possible occurrence is that the user is asked to change his or her password, after successful completion of which the user is redirected into the online banking application.
[0044]
[0045] An embodiment of the present invention includes software that provides a means of utilizing encryption techniques, such as Entrust encryption techniques, to encrypt and digitally sign a string (hereafter referred to as a token) and return it to a parent application for use, for example, to set a cookie used for trusted logon. Additionally, the software decrypts and verifies the digital signature of a passed token and then returns the token to the host application. It should be noted that this document refers to Entrust encryption, which is provided with enhanced functionality, but does not purport to delineate how Entrust performs its functionality.
[0046] This software is dependent on a number of Dynamic Link Libraries (DLLs), which in most cases are located in the WINNT\SYSTEM32 directory of the host system. The DLLs on which this software is dependent include, for example, AUTHTOKEN.DLL, ENTAPI32.DLL, ETFILE32.DLL, GCSCRYPT.DLL, OLEAUTOLOG.DLL, and PVSREGKEY.DLL. AUTHTOKEN.DLL is an internally developed application in C++ which activates the ETFILE and ENTAPI DLLs and which must be registered in order to function properly. ENTAPI32.DLL is a third party vendor DLL provided by Entrust, the current version of which is 4.0i.0.207, that does not need to be registered, but must be located in the PATH.
[0047] ETFILE32.DLL is a third party vendor DLL provided by Entrust, the current version of which is 4.0i.0.207, that does not need to be registered but must be located in the PATH. GCSCRYPT.DLL is an internally developed application in C++ that uses triple Data Encryption Standard (DES) encryption to encrypt and decrypt a string. The key used is hard-coded into the application, and the particular DLL must be registered in order to function properly. OLEAUTOLOG.DLL is an internally developed application in C++ used for logging and debugging purposes. Logging level can be set through the registry and needs to be registered in order to function properly. PVSREGKEY.DLL is a third party vendor DLL provided by Procard as part of the Pathway product line. This DLL is used to access the registry but can be replaced with an internally developed object.
[0048] Exposed functions for the software include, for example, public function EncryptSign(strReceiver as string, strClear as string, strCrypt as string, Optional blnURLEncode as Boolean=False) as long. strReceiver is a string with no minimum or maximum length that specifies the name of the profile to which the token is being “sent” and which is also referred to as the token destination. strClear is a string with no minimum or maximum length that contains the clear text value of the token to be encrypted and signed. strCrypt is a string with no minimum or maximum length that is sent into the method (presumed to be empty) and returns with the value of the encrypted token to be passed to the external system. blnUrlEncode is a Boolean with default False that URL-encodes the strCrypt prior to exiting function if set to True and returns long, error code; 0=Success, non-0=Failure.
[0049] Exposed functions for the software also include, for example, public function DecryptVerify(strCrypt as string, strClear as string, strSender as string, Optional blnURLEncoded as Boolean=False) as long. strCrypt is a string with no minimum or maximum length that contains the encrypted value that one attempts to decrypt of which one attempts to verify the signature. strClear is a string with no minimum or maximum length that is sent into the method (presumed to be empty) and returns with the value of the clear text token to be utilized by the parent application. strSender is a string with no minimum or maximum length that is sent into the method (presumed to be empty) and returns with the value of the profile from which the token is being “received”, and which is also referred to as the token originator. blnURLEncoded is a Boolean with default False that causes the strCrypt to be URL-decoded prior to decryption and verification of the token, if set to true, and returns long, Error Code; 0=Success, non-0=Failure.
[0050] In an embodiment of the present invention, EncryptSign creates an instance of the AuthToken DLL that in turn activates the Entrust API and File Toolkit functions. EncryptSign uses the strReceiver value to look up in the registry to identify the information necessary to perform encryption and digitally sign the token. This information includes, but may not be limited to, the location of the ENTRUST.INI file, as well as the location of the key files, and profile passwords used for the encryption process. Each sender and/or receiver should have only one certificate, and all servers should have the exact same registry information, .INI files, DLL Files, and Entrust profiles/address books to ensure proper operation.
[0051] Entrust creates a token that is very large and makes it difficult to use efficiently, if at all. For example, IIS will not set a cookie that is larger that four kilobytes (KB) long, and most Entrust encrypted and signed strings are larger that that. Therefore, in an embodiment of the present invention, certain information is stripped out, which can be easily recreated from the .KEY files of the sender and receiver. The system then precedes this string with coded information that identifies the sender, receiver, and version information of the DLL that is encrypting and signing the data. When using IIS, in most cases this information will not need to be URL-encoded, which is the default. However, URL-encoding may be turned on if necessary for specific application purposes.
[0052] DecryptVerify simply reverses the process carried out by EncryptSign. DecryptVerify URL-decodes the string and utilizes the coded data at the beginning of the encrypted string to decide which sender has created the token. This information is then used to determine the value to look up in the registry to identify the information necessary to perform the decryption and digital signature verification. This information includes, but may not be limited to, the location of the ENTRUST.INI file, as well as the location of the key files, and profile passwords used for the encryption process. When using IIS, in most cases the token will not need to be URL-decoded, which is the default. However, URL-decoding may be turned on if necessary for specific application purposes.
[0053] The information contained in the registry is then used to open up the profile and key files for the sender and receiver to reconstruct the original token. An instance of the AuthToken DLL is then created that in turn activates the Entrust API and File Toolkit functions. The reconstructed encrypted value is passed to AuthToken, where the actual decryption and signature verification takes place. The returned value identifies which profile originated the token and the contents of the token in clear text.
[0054] Error return codes include 0 for no error or successful completion, and non-0 for error on execution or failure. Logging options include 0 for errors only, 1 for previous and token notification (displays encrypted token), 2 for previous and token notification (displays decrypted token), 3 for verbose, and 4 for ridiculous. The content of the log can be found in a file in WINNT\SYSTEM32 names OLEAutoLog-YYYY-MM-DD.log, and therefore a separate log file is created for each day's transactions. It should be noted that if there are other applications that are using the OLEAUTOLOG DLL, there will be other information contained in this log. The OLEAUTOLOG DLL reads, for example:
[0055] MACHINENAME processname DATE TIME CITITOKEN:LogInfo
[0056] The logging options are set in the registry key, for example:
[0057] \HKEY_LOCAL_MACHINE\SOFTWARE\CITITOKEN as a DWORD value called “LoggingLevel”, and if that value does not exist, then 0 (errors only) is assumed.
[0058] In an embodiment of the present invention, a “show source token” setting launches a notepad application on the server that is either doing the encryption or decryption and contains the token as Entrust sees it. “Show source token” is set in the registry key, for example:
[0059] \HKEY_LOCAL_MACHINE\SOFTWARE\CITITOKEN as a DWORD value called “ShowSourceToken” and if that value does not exist, then 0 (do not show source token) is assumed, otherwise, the source token is shown. A dummy mode setting basically disables encryption and decryption, and no matter what is passed to the functions, the exact same value is returned. In the case of EncryptSign, the return value is the concatenation of the sender, strReceiver and the clear text token separated by a ^ character. In the case of DecryptVerify, the value passed in must be as described in EncryptSign above, but will return the strSender and clear text token in separate strings. The logging options are set in the registry key, for example
[0060] \HKEY_LOCAL_MACHINE\SOFTWARE\CITITOKEN as a DWORD value called “DummyMode”, and if that value does not exist, then 0 (standard mode) is assumed; otherwise, dummy mode is activated.
[0061] Various preferred embodiments of the invention have been described in fulfillment of the various objects of the invention. It should be recognized that these embodiments are merely illustrative of the principles of the present invention. Numerous modifications and adaptations thereof will be readily apparent to those skilled in the art without departing from the spirit and scope of the present invention.