For indirect resources, the agent that controls the resource enforces its own
access restrictions, rejecting or allowing requests from other agents based on the
security vector attached to the incoming communication. Typically, the resource
agent would simply check each request against an access list, although one request
could return capabilities for use in later requests. Care must be taken with
capabilities, however, since a migrating agent will carry its capabilities along with
it, possibly through malicious machines. One reasonable solution is to allow an
agent to obtain a capability only if it is on the same machine as the resource, and
include sufficient identification information in the capability so that it becomes
invalid as soon as the agent leaves6; this solution makes it impossible for valid
5 The