The present invention relates to authentication in general, and in particular to authentication in a client-server environment, and more specifically to authentication of clients in the Internet.
Authentication is a procedure of determining whether someone or something is, in fact, who or what it is declared to be. In private and public computer networks authentication is commonly done by the use of logon passwords. Typically, every server maintains its own data persistency in order to store authentication data. Therefore, passwords which are available to the client on one server, may be already blocked by another client on another server. This increases the number of different authentication sets which have to be remembered and maintained by the client. In applications that are distributed over several servers with different user authentication systems (e.g. accessing an application through a portal server where the portal server uses its own user database) the client would have to logon more than once.
Workarounds to allow single signon contain approaches like storing logon data for the application servers on the portal server or the use of centralized user databases like Microsoft's®.NET Passport (http://www.passport.com) or Liberty from the Liberty Alliance (http://www.projectliberty.org). This requires that the client is willing to have personal data stored on a third party site with all the data security issues that come along with this approach. Also if the Passport service should be down one cannot logon to the desired service even if the site one wants to use is available.
Using a user ID/password set for authentication also has the disadvantage that it results in extra network traffic. On a client request the server has to answer by asking for the login data. Only after this is provided, the originally requested information is sent back to the client (see also
Finally, passwords can often be stolen, accidentally revealed, or simply forgotten.
For this reason, Internet business and many other transactions require a more stringent authentication process. The use of digital certificates issued and verified by a Certificate Authority (CA) as part of a public key infrastructure is considered to become the standard way to perform authentication on the Internet.
Digital signatures enable the recipient (server) to verify the identity of the sender (client) and the origin as well as the integrity of the document.
Digital signatures are based on asymmetric cryptographic algorithms. The documents are signed with the private key of the sender. The recipient can take the sender's public key, which is provided to him by a Trusted Third Party, and validate the integrity of the document received.
The implementation of a digital signature procedure into an already existing password logon infrastructure requires great modifications on the server side as well as the client side, e.g. additional card reader with specific security applications. Therefore, such implementations cause much effort on costs and time with the consequences that preferably only new client-server infrastructures will be using the digital signature procedure. The existence of those two authentication procedures in the client-server environment has the disadvantage that a client has to check at first whether the destination server is supporting the password logon or the digital signature procedure. Depending on that result the client will use the required authentication process supported by the server. It causes much unnecessary network traffic between client and server since the server application itself finally determines the type of authentication. Furthermore, the present digital signature authentication procedures have the disadvantage that several screens between client and server have to be exchanged between client and server until the client can provide its authentication information. This causes much unnecessary network traffic.
Starting from this, the object of the present invention is to provide a method and system for authenticating clients in a client-server environment by avoiding the disadvantages of the above-mentioned prior art.
The idea of the present invention is to replace the existing password/user ID based authentication process by a new digital signature authentication process in which preferably the first HTTP-request header is extended by the client authentication information independently of the authentication process used by the destination server and without server requesting authentication information. The authentication information preferably includes the client certificate containing the client public key, signed by certification authority, and preferably a hash value calculated over the HTTP-request header data being sent in the request, and encrypted with the Client's private key. The certificate and digital signature may be added during the creation of the HTTP-request header in the client system itself, or may be added later in a server acting as a gateway, proxy, or tunnel.
A destination server that does not support the new digital signature authentication process will simply ignore the certificate and digital signature in the HTTP-request header and will automatically initiate its own authentication process. The present invention simplifies the existing digital signature authentication process and concurrently allows the coexistence of different authentication processes without changing the HTTP-protocol or causing unnecessary network traffic.
The above, as well as additional objectives, features and advantages of the present invention will be apparent in the following detailed written description.
The novel features of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives, and advantages thereof, will be best understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference to
The HTTP-protocol (Hypertext Transfer Protocol) is an application level protocol for distributed systems. It is a set of rules for exchanging files (text, graphic, images, sound, video, and other multimedia files). Any web server machine 3 contains a HTTP-daemon or so called HTTP-server 4, a program that is designed to wait for HTTP-requests and handle them when arrive. Furthermore, each client machine 1 contains a web browser or so-called HTTP-client 2, sending requests to web server machine 3. When the browser user enters a request by either opening a web file (typing in a URL) or clicking on a hypertext link, the browser builds an HTTP-request and sends it to the Internet Protocol Address indicated in the URL. The HTTP-server 4 in the destination server machine 3 receives the request and, after processing, the requested file is returned. In another client-server environment client 1 is communicating with the server 3 via a gateway, a tunnel, or a proxy-server 5 (see
Usually HTTP takes place over TCP/IP (Transmission Control Protocol/Internet Protocol), however HTTP is not dependent on TCP/IP.
TCP defines a set of rules to exchange messages with other Internet points at the information package level, and IP defines a set of rules to send and receive messages at the Internet address level.
An HTTP-request header consists of the HTTP method (GET, HEAD, POST, etc.), the Universal Resource Identifier (URI), the protocol version and optional supplemental information.
An HTTP-response consists of a status line, which indicates success or failure of the request, a description of the information in the response (meta information) and the actual information request.
With respect to
Resources to be accessed by the HTTP-request (e.g. file, servlet)
The host name of the server (e.g. www.ibm.com) Browser name and version (e.g. Netscape Version 7.1) Operating system of the client (e.g. Windows XP) Character set that can be understood by the browser (e.g. iso-8859-1).
Each HTTP-header may include supplemental information not defined by the HTTP-protocol and which does not conflict with existing applications using the HTTP-protocol. That means that an application which uses the HTTP-protocol and which is not configured to process that supplemental information simply ignores that supplemental information without interrupting its execution.
With respect to
Following additional information according to the present invention must be included into the HTTP-request header:
the client certificate containing the public key and signed by a certification authority, and
digital signature calculated over the HTTP-request header and if available HTTP-body (Post).
The certificate and digital signature can be processed by specific tools on the server. A client certificate is a document distributed by a Trusted Third Party that binds a public key to a specific person. The Trusted Party guarantees that the information contained in the certificate is valid and correct. Certificates are standardized by 509. They should contain the digital signature of the Trusted Third party, the name of the person owning the public key, and the public key itself.
With respect to
With respect to
With respect to
With respect to
With respect to
Anyway, because the present invention describes additional header data in the HTTP protocol, all combinations of existing clients and servers that are able to process the additional data in the header can work together. If one of the systems is not enabled to handle additional data everything will work as known today.
To keep the existing base of billions of installed client browsers, an additional signature software could handle the HTTP extension by acting as a proxy component on the local client machine (see
Future versions of Web Browsers then may have the functionality build in (
The digital signature can be created using a signature smart card or any other signature hardware. Also a pure software solution with an encrypted key store on the client computer would be a possible implementation.
In this example it is assumed that an application 5 is accessed through a portal server 3. In the state of art this situation is handled by either storing the client's identity data on a server that is accessible by the portal server 3 and the application server 5 (e.g. Microsoft's®.NET Passport) or the identity data for the application server needs to be stored on the portal server 3. Both approaches require the user to have his/her data stored on a third party system which is subject to many security issues.
By digitally signing the request as explained in
The approach even provides higher security since the application server 5 might want to handle only those requests that passed the portal server 3. In this case the portal server 3 forwards the request and additionally signs it. This enables the application server 5 to verify both signatures in order to either grant or deny access to its services. Client la would gain access to the application server 5 while Client lb would not be served because its request does not go through the portal server 3.
With respect to
If signing is switched on the client's browser inserts certificate and digital signature into the HTTP-request header, and sends that HTTP-request header to the server 30. By appending the extra fields to the HTTP header request header the server is able to retrieve the requester's identity from the certificate (authentication) 35. The Client's certificate contains the requester's name and public key.
Because it is signed by a trusted authority, the server is able to verify that it is a valid certificate issued by the trusted authority. Verification that the message has been really sent by the owner of the certificate is possible, because only the owner of the private key belonging to the certificate can have generated the digital signature value in the HTTP-request header which has been calculated over the HTTP-request header data and can be verified through the use of the public key contained in the certificate. If the authentication has been successful, the server provides access to the requested data 60.
With respect to
For example, during a purchase process, the client receives and sends data (e.g. a series of text or html pages or blocks of formatted data like XML) from and to the server representing the online shopping system until the order gets confirmed by a specific data transfer operation (e.g. HTTP Post). In today's applications, the server issues a request to obtain a user Id and password from the client during this process. The user has to supply these data manually before they are sent to the server by the client application (see
In an application corresponding to the present invention (see
By checking the identity of the user (which can be done at any time during the flow), the server may find out that the user never visited this site before. The server may then send data containing a request to specify preferences and detailed user data (profile creation page). The user supplies these data, the client application sends it to the server and the server stores these data used for personalization in its data base. Since every data transfer is signed, the user ID of the client is known to the server as soon as the client visits the first page. The personalization may therefore take place early during the process.
When the user chooses to switch off signing, the server recognizes this fact and may send a page containing an indication to switch on signing or might use traditional user ID/password scenarios instead (not shown).
Number | Date | Country | Kind |
---|---|---|---|
03102111.6 | Jul 2003 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP04/50864 | 5/19/2004 | WO | 5/15/2006 |