Claims
- 1. In a client computer system that attempts Web-based access to a resource at a server computer system, a 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. The method as recited in claim 1, wherein the act of the client computer system sending a first request for Web-based access to the resource comprises an act of sending previously received encrypted information and a previously received unique session identifier.
- 3. The method as recited in claim 2, wherein the act of the client computer system being redirected to a login page comprises an act of the client computer system being redirected to a login page as a result the previously received encrypted information not being validated by the server computer system.
- 4. The method as recited in claim 1, wherein the act of the client computer system sending a first request for Web-based access to the resource comprises an act of sending an HTTP message requesting Web-based access to an electronic mail resource at an electronic mail server.
- 5. The method as recited in claim 1, wherein the 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 comprises an act of receiving the encrypted information along with a unique session identifier.
- 6. The method as recited in claim 5, further comprising:
an act of storing the received encrypted information and the received unique session identifier in corresponding cookies at the client computer system.
- 7. The method as recited in claim 1, wherein act of the client computer system sending a second request for Web-based access to the resource comprises an act of sending the encrypted information along with a unique session identifier.
- 8. The method as recited in claim 1 wherein, the act of the client computer system utilizing the login page to submit user credentials to the server computer system comprises an act of the an act of the client computer system utilizing the login page to submit user credentials to the server computer system over a secure, mutually authenticated connection.
- 9. 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, a 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.
- 10. The method as recited in claim 9, wherein the act of the server computer system receiving a first request for Web-based access to a resource comprises an act of receiving previously generated encrypted information and a previously generated unique session identifier.
- 11. The method as recited in claim 9, wherein the act of the server computer system redirecting the client to a login page in response to the first request comprises an act of the server computer system redirecting the client to a login page as a result the previously generated encrypted information not being validated by the server computer system.
- 12. The method as recited in claim 9, wherein the act of the server computer system receiving a first request for Web-based access to a resource comprises an act of receiving an HTTP message requesting Web-based access to an electronic mail resource at an electronic mail server.
- 13. The method as recited in claim 9, wherein the 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 comprises an act of sending the encrypted information along with a unique session identifier.
- 14. The method as recited in claim 9, wherein act of the server computer system receiving a second request for Web-based access to the resource comprises an act of receiving the encrypted information along with a unique session identifier.
- 15. 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, a 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 receiving a first request for Web-based access to a resource, the first request being sent by the client computer system; a step for using a key from a rotating key store to secure client side credentials so as to reduce the chance of the client-side credentials providing a malicious user with unauthorized access to resource; 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 encrypted information.
- 16. In a client computer system, a method 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.
- 17. The method as recited in claim 16, wherein the act of the client computer system sending a request for Web-based access to a resource comprises an act of sending an HTTP message requesting Web-based access to an electronic mail resource at an electronic mail server.
- 18. The method as recited in claim 16, wherein the 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 comprises an act of receiving updated session identifier and refreshed encrypted information as a result of a key used in the generation of the encrypted information not being the most current key in a rotating key store.
- 19. The method as recited in claim 16, wherein the act of the client computer system storing the updated unique session identifier and the refreshed encrypted information in corresponding cookies at the client comprises an act of the unique session identifier and the refreshed encrypted information overwriting the unique session identifier and encrypted information in browser memory.
- 20. In a server computer system, a method 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.
- 21. The method as recited in claim 20, wherein the act of attempting to validate at least a portion of the user credentials using the most current key in a rotating key store comprises an act of determining that based on the most current key in the rotating key store the at least a portion of the user credentials are valid.
- 22. The method as recited in claim 20, wherein the act of attempting to validate the at least a portion of the user credentials using the most current key in a rotating key store comprises an act of determining that based on the most current key in the rotating key store the at least a portion of the user credentials are not valid.
- 23. The method as recited in claim 20, further comprising:
an act of the server computer system determining that based on a previously generated key in the rotating key store the at least a portion of the user credentials are valid, the previously generated key being inserted into the rotating key store before the most current key.
- 24. The method as recited in claim 20, wherein the 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 should be derived from the most current key in the rotating key store comprises an act of determining that refreshed encrypted information representing the at least a portion of the user credentials and a time-dependent signature should be derived from the most current key in the rotating key store.
- 25. The method as recited in claim 24, wherein the act of determining that refreshed encrypted information representing the at least a portion of the user credentials and a time-dependent signature should be derived from the most current key in the rotating key store comprises an act of determining that the server computer system validated the at least a portion of the user credentials based on a previously generated key in the rotating key store, the previously generated key being inserted into the rotating key store before the most current key.
- 26. The method as recited in claim 24, wherein the act of determining that refreshed encrypted information representing the at least a portion of the user credentials and a time-dependent signature should be derived from the most current key in the rotating key store comprises an act of determining that the server computer system could not validate at the at least a portion of the user credentials with any key in the rotating key store.
- 27. The method as recited in claim 26, further comprising:
an act of the server computer system re-directing the client computer system to a login page that provides an interface for receiving user credentials.
- 28. The method as recited in claim 20, wherein the 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 comprises an act of deriving refreshed encrypted information and a time-dependent signature from the most current key in the rotating key store.
- 29. The method as recited in claim 28, further comprising:
an act of the server computer system sending the requested resource, the updated unique session identifier, and refreshed encrypted information to the client computer system.
- 30. In a server computer system that includes a communication filter, the communication filter being capable of altering message headers, a method for determining communication properties associated with a client computer system, the method comprising:
an act of sending a login page to the client computer system, the login page including an interface for selecting one or more selectable communication properties that may alter how HTTP messages are to be processed; an act of receiving selections of at least one of the one or more selectable communication properties selectable from the login page, the selected communication properties indicating to the communication filter how HTTP communication with the client computer system is to be processed; an act of interrogating the client computer system to determine if the received at least one communication property selections are supported as well as to identify other relevant communication properties supported by the client computer system; and an act of configuring the communication filter to process HTTP communication with the client in accordance with any selected communication properties and identified other relevant communication properties supported by the client.
- 31. The method as recited in claim 30, wherein the act of receiving selections of at least one of the one or more selectable communication properties selectable from the login page comprises an act of receiving a communication property selection that indicates the trustworthiness of the client computer system.
- 32. The method as recited in claim 30, wherein the act of receiving selections of at least one of the one or more selectable communication properties selectable from the login page comprises an act of receiving a communication property selection that indicates the content processing capabilities and/or desired level of functionality of the client computer system.
- 33. The method as recited in claim 30, wherein an act of interrogating the client computer system comprises act of determining that the client computer system supports HTTP compression.
- 34. In a client computer system, a method for indicating desired communication properties to a server computer system, the method comprising:
an act of receiving a login page from the server computer system, the login page including an interface for selecting one or more selectable communication properties that may alter how the server processes HTTP messages; an act of presenting the login page at the client; an act of receiving selections of at least one of the one or more communication properties at the login page; and an act of sending the communication property selections to a communication filter at the server computer system, the communication property selections indicating to the communication filter how HTTP communication with the client computer system is to be processed.
- 35. The method as recited in claim 34, wherein the act of receiving selections of at least one of the one or more communication properties at the login page comprises an act of receiving a selection that indicates the trustworthiness of the client computer system.
- 36. The method as recited in claim 34, wherein the act of receiving selections of at least one of the one or more communication properties at the login page comprises an act of receiving a selection that indicates the content processing capabilities and/or desired level of functionality of the client computer system.
- 37. The method as recited in claim 34, wherein the act of sending the communication property selections to a communication filter at the server computer system comprises an act of sending the communication property selections along with user credentials.
- 38. 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 following:
send a first request for Web-based access to the resource; be redirected to a login page, the login page providing an interface for accepting user credentials; utilize the login page to submit user credentials to the server computer system; receive 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 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 send a second request for Web-based access to the resource, the second request now including the encrypted information.
- 39. The computer program product as recited in claim 38, wherein the one or more computer-readable media are physical media.
- 40. 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 following:
receive a first request for Web-based access to a resource, the first request being sent by the client computer system; redirect 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; receive user credentials that were submitted at the login page; send 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 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 receive 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.
- 41. The computer program product as recited in claim 40, wherein the one or more computer-readable media are physical media.
- 42. 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 following:
receive 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; attempt to validate the at least a portion of the user credentials using the most current key in a rotating key store; forward the request to a module that controls Web-based access to the requested resource; and determine if refreshed encrypted information representing the at least a portion user credentials and a time-dependent signature are to be derived from the most current key in the rotating key store.
- 43. The computer program product as recited in claim 42, wherein the one or more computer-readable media are physical media.
- 44. A computer program product for us in a server computer system that includes a communication filter, the communication filter being capable of altering message headers, the computer program product for implementing a method for determining communication properties associated with a client 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 following:
send a login page to the client computer system, the login page including an interface for selecting one or more selectable communication properties that may alter how HTTP messages are to be processed; receive selections of at least one of the one or more selectable communication properties selectable from the login page, the selected communication properties indicating to the communication filter how HTTP communication with the client computer system is to be processed; interrogate the client computer system to determine if the received at least one communication property selections are supported as well as to identify other relevant communication properties supported by the client computer system; and configure the communication filter to process HTTP communication with the client in accordance with any selected communication properties and identified other relevant communication properties supported by the client.
- 45. The computer program product as recited in claim 44, wherein the one or more computer-readable media are physical media.
- 46. 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.
- 47. 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.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims the benefit of United States provisional patent application Serial No. 60/428,152, filed Nov. 20, 2002, and entitled “System And Method For Cookie Based Authentication” which provisional application is incorporated herein by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60428152 |
Nov 2002 |
US |