Two things the paper says this, which is a very strong property.
> It has been claimed in the past that in the presence of Miller et al.’ s property A, Cs prevent CDAs
"in the presence of property A, Capabilities prevent confused
deputies", that is to say in the absence of any given program and
regardless of any bad program design.
whether property A alone makes it impossible to produce programs
containing confused deputy vulnerabilities.
I just want to point out here Alan, that the version of Property A:
you use above, and the version of Property A: in capability myths
demolished where
yours: "Do not separate designation from authorization", and in myths
demolished "No designation without authority",
are not exactly the same. And I think the way you interpret it is
stronger than how they did.
Especially since when they discuss "implicit designation", they mean a
designation which has been separated from authority
but which is authorized because the ability to designate it implies
the authority or something to that effect.
I tend to assume a very strict "No shared designation", and note that
their model includes provenance which is stronger than anything
required by any of these versions of property A.
*who* is authorizing and who is designating aren't properties that are
of concern to property A.
"No shared designation" implies that only the one who invented the
designation is able to use the designation, and thus all authority is
passed anonymously by value.
rather than by name. This tends to produce a chain of provenance
implied at each point the authority is conveyed, allowing me to just
ignore designation entirely.
What I guess I don't understand is if we take such a loose
interpretation of "no designation without authority", where the
existence of the designation implies the authority who is to say that
acl systems have confused deputies because their designations imply
authority. I suppose the "confusion" is that acl systems list who is
authorized explicitly and those lists are a subset of who may
designate, which is right?
That is to say if we consider who is authorized as the source of
confusion, I can see the argument that these aren't confused deputies
due to the lack of a differing set of authorizations. However it feels
extremely weird to me when we can create posix emulation layers
running on top of on top of pure capability systems, and when we run
the same exact programs with confused deputy problems on other
systems, that these might somehow not be confused deputy problems? If
we can say with some program equivalence proof like homotopy type
theory that these programs are exactly the same with the exact same
vulnerabilities, then I kind of have trouble faulting someone for
referring to them by the same confused deputy nomenclature...
sorry for the long rant...