Encrypted cached content system
An encrypted cached content system includes a user IHS, a content provider IHS, and a caching IHS. The caching IHS includes a caching engine that is configured to receive a content request from the user IHS. The caching engine generates a user-side key using content identifying information in the content request, and forwards the content request to the content provider IHS over a network as a content partial information request. In response to receiving a content partial information response from the content provider IHS over a network, the caching engine generates a content-provider-side key using header information in the content partial information response. The caching engine performs a hashing operation on the content request using a combination of the user-side key and the content-provider-side key to produce a hashed content request, and uses the hashed content request to retrieve content from the cache.
1. An encrypted cached content system, comprising:
a user subsystem;
a content provider subsystem; and
a caching subsystem that is connected to each of the user subsystem and the content provider subsystem, wherein the caching subsystem includes a cache and is configured to:
receive, from the user subsystem, a content request that identifies content;
send, to the content provider subsystem over at least one network, the content request;
receive, from the content provider subsystem over the at least one network, a content response that includes the content;
provide, to the user subsystem, the content;
generate a user-side key using content request information that is included in the content request and that is unique to the content being requested;
generate a content-provider-side key using content response information that is included in the content response;
encrypt the content using the user-side key and the content-provider-side key to produce encrypted content;
store the encrypted content in the cache;
perform a hashing operation on the content request using a combination of the user-side key and the content-provider-side key to produce a hashed content request; and
associate the encrypted content and the hashed content request in a database.
2. The encrypted cached content system of claim 1 , wherein the content response includes header information, and wherein the content-provider-side key is encrypted, at least in part, using the header information.
3. The encrypted cached content system of claim 2 , wherein the content-provider-side key is encrypted using the header information and at least a portion of the content.
4. The encrypted cached content system of claim 2 , wherein the header information includes at least one of a last modified time, an ETAG value, content-length information, and a mime-type.
5. The encrypted cached content system of claim 1 , wherein the content request includes a Hypertext Transfer Protocol (HTTP) GET request.
6. The encrypted cached content system of claim 1 , wherein the content request information that is included in the content request includes a Uniform Resource Identifier (URI).
7. The encrypted cached content system of claim 1 , wherein the caching subsystem is configured to:
determine that the content request is requesting content that is not stored in the cache and, in response, send the content request to the content provider subsystem.
8. A caching information handling system (IHS), comprising:
a storage system including a cache;
a processing system coupled to the storage system; and
a non-transitory memory coupled to the processing system and including instructions that, when executed by the processing system, cause the processing system to provide a caching engine that is configured to:
receive, from a user subsystem, a content request that identifies content;
send, to a content provider subsystem over at least one network, the content request;
receive, from the content provider subsystem over the at least one network, a content response that includes the content;
provide, to the user subsystem, the content;
generate a user-side key using content request information that is included in the content request and that is unique to the content being requested;
generate a content-provider-side key using content response information that is included in the content response;
encrypt the content using the user-side key and the content-provider-side key to produce encrypted content;
store the encrypted content in the cache;
perform a hashing operation on the content request using a combination of the user-side key and the content-provider-side key to produce a hashed content request; and
associate the encrypted content and the hashed content request in a database.
9. The caching IHS of claim 8 , wherein the content response includes header information, and wherein the content-provider-side key is encrypted, at least in part, using the header information.
10. The caching IHS of claim 9 , wherein the content-provider-side key is encrypted using the header information and at least a portion of the content.
11. The caching IHS of claim 9 , wherein the header information includes at least one of a last modified time, an ETAG value, content-length information, and a mime-type.
12. The caching IHS of claim 8 , wherein the content request includes a Hypertext Transfer Protocol (HTTP) GET request.
13. The caching IHS of claim 8 , wherein the content request information that is included in the content request includes a Uniform Resource Identifier (URI).
14. The caching IHS of claim 8 , wherein the caching engine is configured to:
determine that the content request is requesting content that is not stored in the cache and, in response, send the content request to the content provider subsystem.
15. A method of caching content, comprising:
receiving, by a caching subsystem that includes a cache from a user subsystem, a content request that identifies content;
sending, by the caching subsystem to a content provider subsystem over at least one network, the content request;
receiving, by the caching subsystem from the content provider subsystem over the at least one network, a content response that includes the content;
providing, by the caching subsystem to the user subsystem, the content;
generating, by the caching subsystem, a user-side key using content request information that is included in the content request and that is unique to the content being requested;
generating, by the caching subsystem, a content-provider-side key using content response information that is included in the content response;
encrypting, by the caching subsystem, the content using the user-side key and the content-provider-side key to produce encrypted content;
storing, by the caching subsystem, the encrypted content in the cache;
performing, by the caching subsystem, a hashing operation on the content request using a combination of the user-side key and the content-provider-side key to produce a hashed content request; and
associating, by the caching subsystem, the encrypted content and the hashed content request in a database.
16. The method of claim 15 , wherein the content response includes header information, and wherein the content-provider-side key is encrypted, at least in part, using the header information.
17. The method of claim 16 , wherein the content-provider-side key is encrypted using the header information and at least a portion of the content.
18. The method of claim 16 , wherein the header information includes at least one of a last modified time, an ETAG value, content-length information, and a mime-type.
19. The method of claim 15 , wherein the content request information that is included in the content request includes a Uniform Resource Identifier (URI).
20. The method of claim 15 , further comprising:
determining, by the caching subsystem, that the content request is requesting content that is not stored in the cache and, in response, send the content request to the content provider subsystem.