EP1422907A2

Securely processing client credentials used for web-based access to resources

Abstract

The present invention provides for securely processing client credentials used for Web-based access to resources. A login page with an interface for entering user credentials is presented at a client and entered user credentials are sent to the server. In response to receiving user credentials, the server generates a unique session identifier for the client. The server also derives a digital signature for the user credentials based on a current key in a rotating key store and the unique session identifier. The server then encrypts the digital signature and the user credentials based on an encryption key derived from the current key and the unique session identifier. When encrypted credentials are received back at the client, keys from the rotating key store are used to attempt to validate the credentials. If user credentials can not be validated, a user is again presented with the login page.

EP1422907A2, drawing sheet 1
Sheet 1 of 16

Term

Term ended

Projected expiry passed 20 November 2023, 2.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

34 claims: 10 independent, 24 dependent

  1. 1
    A method in a client computer system that attempts Web-based access to a resource at a server computer system, the method for securing client-side credentials that are to be used to become authorized to access the resource, the method comprising:an act of the client computer system sending a first request for Web-based access to the resource;an act of the client computer system being redirected to a login page, the login page providing an interface for accepting user credentials;an act of the client computer system utilizing the login page to submit user credentials to the server computer system;an act of the client computer system receiving encrypted information that represents at least a portion of the submitted user credentials and a time-dependent signature, the time-dependent signature being derived from the at least a portion of the submitted user credentials and a signature time-dependent key, the encrypted information being encrypted using an encryption time-dependent key, the signature time-dependent key and the encryption time-dependent key both being derived from a key in a rotating key store;and act of the client computer system sending a second request for Web-based access to the resource, the second request now including the encrypted information.
  2. 9
    A method in a server computer system that receives requests from client computer systems, the requests requesting Web-based access to resources at the server computer system, the method for securing client-side credentials that are to be used to become authorized to access resources, the method comprising:an act of the server computer system receiving a first request for Web-based access to a resource, the first request being sent by the client computer system;an act of the server computer system redirecting the client computer system to a login page in response to the first request, the login page allowing the client computer system to enter user credentials;an act of the server receiving user credentials that were submitted at the login page;an act of the server computer system sending encrypted information that represents at least a portion of the submitted user credentials and a time-dependent signature, the time-dependent signature being derived from the at least a portion of the user submitted credentials and a signature time-dependent key, the encrypted information being encrypted using an encryption time-dependent key, the signature time-dependent key and the encryption time-dependent key both being derived from a key in a rotating key store;and an act of the server computer system receiving a second request for Web-based access to the resource, the second request being sent from the client computer system and including the encrypted information.
  3. 15
    A method in a client computer system for maintaining user credentials used for Web-based access to a resource at a server computer system, the method comprising:an act of the client computer system sending a request for Web-based access to a resource, the request including a unique session identifier and encrypted information representing at least a portion of user credentials and a time-dependent signature, the time-dependent signature being derived from the at least a portion of the user credentials and a signature time-dependent key, the encrypted information being encrypted using an encryption time-dependent key, the signature time-dependent key and the encryption time-dependent key both being derived from a key in a rotating key store;an act of the client computer system receiving the requested resource along with an updated unique session identifier and refreshed encrypted information at a client-side browser, the refreshed encrypted information representing the at least a portion of the user credentials and a refreshed time-dependent signature, the time-dependent signature being derived from the at least a portion of the user credentials and a refreshed signature time-dependent key, the encrypted information being encrypted using an refreshed encryption time-dependent key, the refreshed signature time-dependent key and the refreshed encryption time-dependent key both being derived from a more recent key in the rotating key store;and an act of the client computer system storing the updated session identifier and the refreshed encrypted information in corresponding cookies at the client.
  4. 19
    A method in a server computer system for determining the validity of user credentials used for Web-based access to resources at the server computer system, the method comprising:an act of the server computer system receiving a request for Web-based access to a resource at the server, the request including a unique session identifier and encrypted information representing at least a portion of user credentials and a time-dependent signature, the time-dependent signature being derived from the at least a portion of the user credentials and a signature time-dependent key, the encrypted information being encrypted using an encryption time-dependent key, the signature time-dependent key and the encryption time-dependent key both being derived from a key in a rotating key store;an act of the server computer system attempting to validate at least a portion of the user credentials using the most current key in a rotating key store;an act of the server computer system forwarding the request to a module that controls Web-based access to the requested resource;and an act of the server computer system determining if refreshed encrypted information representing the at least a portion of the user credentials and a time-dependent signature are to be derived from the most current key in the rotating key store.
  5. 29
    A computer program product for use in a client computer system that attempts Web-based access to a resource at a server computer system, the computer program product for implementing a method for securing client-side credentials that are to be used to become authorized to access the resource, the computer program product comprising one or more computer-readable media having stored thereon computer executable instructions that, when executed by a processor, cause the client computer system to perform the method of one of claims 1 to 8.
  6. 30
    A computer program product for use in a server computer system that receives requests from client computer systems, the requests requesting Web-based access to resources at the server computer system, the computer program product for implementing a method for securing client-side credentials that are to be used to become authorized to access resources, the computer program product comprising one or more computer-readable media having stored thereon computer executable instructions that, when executed by a processor, cause the server computer system to perform the method of one of claims 9 to 14.
  7. 31
    A computer program product for use in a client computer system, for implementing a method for maintaining user credentials used for Web-based access to a resource at a server computer, the computer program product comprising one or more computer-readable media having stored thereon computer executable instructions that, when executed by a processor, cause the client computer system to perform the method of one of claims 15 to 18.
  8. 32
    A computer program product for use in a server computer system, the computer program product for implementing a method for determining the validity of user credentials used for Web-based access to resources at the server computer system, the computer program product comprising one or more computer-readable media having stored thereon computer executable instructions that, when executed by a processor, cause the server computer system to perform the method of one of claims 19 to 28.
  9. 33
    A server computer system, configured to filter HTTP messages, the server computer system comprising:one or more processing units;and one or more computer-readable media having stored thereon a communication filter, the communication filter being configured to: receive an HTTP message;identify the client computer system that sent the HTTP message based on a unique session identifier included in the HTTP message;access client state information associated with the client;attempt to validate encrypted information representing user credentials and a time-dependent signature;and determine if the HTTP message is to be altered based on communication properties indicated in the client state information.
  10. 34
    One or more computer-readable media having stored thereon a data structure that defines a format for securely representing credential information for Web-based access to resources, the data structure comprising:a credentials field representing user credentials for authenticating with a module that controls Web-based access to the resource;a flags field representing one or more communication properties that are to be used when transferring HTTP messages between the module and the client computer system that submitted the user credentials represented in the credentials field;and a hashed message authentication code field representing a time-dependent digital signature that can be used to validate the user credentials represented in the credentials field and the communication properties represented in the flags field.