[cap-talk] Toby's Confused deputy statement
Sandro Magi
naasking at higherlogics.com
Tue Feb 5 10:02:41 EST 2008
Toby Murray wrote:
> The essence of the confused deputy problem is that the server is granted
> more permission than the client, but the client can cause the server to
> (incorrectly) exercise its permission on behalf of the client.
>
> Suppose the client has sa capability that in the server's hands, allows
> the server to directly perform some action that the client cannot
> directly perform (i.e. grants the server more permission than it does
> the client).
>
> The server is now potentially confusable, depending on how it has been
> coded.
>
> Suppose this extra permission granted to the server should not be used
> on the client's behalf.
> If in delegating the capability to the server, the client may cause the
> server to use this extra permission on the client's behalf, then the
> server has become a confused deputy.
>
> This applies equally to authority, but now we have to be more careful.
>
> Suppose the client has a capability that in the server's hands, allows
> the server to cause some action to occur that the client cannot cause
> with the same capability WITHOUT DELEGATING IT TO THE SERVER. (This last
> part is the important part, because if the server is confusable, then by
> definition the client may be able to cause the server to cause this
> other action on the client's behalf, in which case the client can
> (indirectly) cause the action and it is part of its authority.)
>
> The server is now potentially confusable, depending on how it has been
> coded.
>
> If this action that the server can cause is not permitted to be caused
> by the client and if by delegating the capability to the server, the
> client can cause the server to cause this action to occur, then the
> sever has become a confused deputy.
>
> I think that's right now. Do you agree?
I think the "confused deputy" is a safety property of an access control
system (call this property C). If the access control system provides
enough information to deputies to avoid misusing their authority, then
the access control system has property C. Pure capability systems have
property C.
Whether the deputy in question is programmed to use this information
correctly and thus avoids confusing itself is another matter entirely.
As Jonathan stated, this is a buggy program, not a confused deputy.
An interesting question is whether a Horton-like mechanism built ON
capabilities can introduce real confused deputies. I think it's quite
plausible. However, Horton is built on a rights amplification primitive,
EQ, if I recall correctly. This leads me to wildly conjecture that
rights amplification can lead to confused deputies in capability
systems. Proof is left as an exercise for the reader. :-)
Sandro
More information about the cap-talk
mailing list