1. A system for protecting computers against cache poisoning, the system comprising:
- a cache-entity table configured to maintain a plurality of associations between a plurality of data caches and a plurality of entities, wherein each of said caches is associated with a different one of said entities; and
- a cache manager configured to
- receive data that is associated with any of said entities and store said received data in any of said caches that said cache-entity table indicates is associated with said entity, and
- receive a data request that is associated with any of said entities and retrieve said requested data from any of said caches that said cache-entity table indicates is associated with said requesting entity,
- wherein any of said cache-entity table and cache manager are implemented in either of computer hardware and computer software embodied in a computer-readable medium.
2. A system according to claim 1 and further comprising a data request processor configured to provide to said cache manager with any of said data.
3. A system according to claim 2 wherein said data request processor is configured to receive said data request from any of said entities and query said cache manager to determine if said requested data is available from any of said caches.
4. A system according to claim 1 wherein said cache manager is configured to identify any entry that appears in at least a predefined number of said caches, move said entry from said caches to a global cache, and retrieve said requested data from said global cache.
5. A method for protecting computers against cache poisoning, the method comprising:
- maintaining a plurality of associations between a plurality of data caches and a plurality of entities, wherein each of said caches is associated with a different one of said entities;
- receiving data that is associated with any of said entities;
- storing said received data in any of said caches that said cache-entity table indicates is associated with said entity;
- receiving a data request that is associated with any of said entities; and
- retrieving said requested data from any of said caches that said cache-entity table indicates is associated with said requesting entity.
6. A method for protecting computers against cache poisoning, the method comprising:
- maintaining a plurality of associations between a plurality of data caches and a plurality of entities, wherein each of said caches is associated with a different one of said entities;
- receiving data that is associated with any of said entities;
- storing said received data in any of said caches that said cache-entity table indicates is associated with said entity;
- identifying any entry that appears in at least a predefined number of said caches;
- moving said entry from said caches to a global cache;
- receiving a data request that is associated with any of said entities;
- retrieving said requested data from said global cache if said requested data is in said global cache; and
- retrieving said requested data from any of said caches that said cache-entity table indicates is associated with said requesting entity if said requested data is not in said global cache.
7. A computer program product for protecting computers against cache poisoning, the computer program product comprising:
- a computer readable medium; and
- computer program instructions operative to
- maintain a plurality of associations between a plurality of data caches and a plurality of entities, wherein each of said caches is associated with a different one of said entities;
- receive data that is associated with any of said entities;
- store said received data in any of said caches that said cache-entity table indicates is associated with said entity;
- identify any entry that appears in at least a predefined number of said caches;
- move said entry from said caches to a global cache;
- receive a data request that is associated with any of said entities;
- retrieve said requested data from said global cache if said requested data is in said global cache; and
- retrieve said requested data from any of said caches that said cache-entity table indicates is associated with said requesting entity if said requested data is not in said global cache,
- wherein said program instructions are stored on said computer readable medium.