Imagine that Alice delegates to Bob query permission on some resource, say example.com/foo and that Carol delegates update permission to the same resource. Bob now wants to invoke Dave's service, providing the query permission for the first argument and the update permission for the second. He has no way to express his intent.
I'm not sure I understand what the issue is supposed to be here. Dave's service has to have been designed to use its first argument capability to query something, and as a result, use its second argument capability to update something. What intent from Bob should change what?
--
You received this message because you are subscribed to the Google Groups "friam" group.
To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/friam/CANpA1Z2JVogr5hcz0pLWvo6%3DcF9HKZQ20AbhxqeffMHCi39fDA%40mail.gmail.com.
On Sat, Aug 8, 2026 at 2:46 PM Pierre Thierry <pie...@nothos.net> wrote:I'm not sure I understand what the issue is supposed to be here. Dave's service has to have been designed to use its first argument capability to query something, and as a result, use its second argument capability to update something. What intent from Bob should change what?Dave's service takes 2 parameters. It queries the first and updates the second. How does the system know which capability to use when Bob says example.com/foo for each argument? If it provides the arguments in the right order, the invocation succeeds. If it provides them in the wrong order, the invocation fails for lack of permission. I expect Bob would find that puzzling, since he thinks he provided both permissions.
aren't arguments usually documented?
I see that Bob is not designating the resource with certificate capabilities, but with a resource name. Can you do something with the UA to give him a better way to designate his certificates? Maybe some petnames.
I'm just guessing as to how invocation works in this system, imagining Bob sends two certificates to this service as parameters, maybe I am missing something there.
I feel like it's so flawed that I'm kind of perturbed that we keep
calling it a capability system, it feels to me like a directory system
minus the ambient authority of a globally shared filesystem.
Lets ignore all the problems. What other capability systems have
by-name designation of references?
I don't mean "construct an example", I mean in the base system itself
where capabilities are sent by-name, or lists of capabilities are sent
by-name as a part of normal use of the system.
In my opinion it only weakens the model, and there is no reason to
even consider including it under the umbrella of capability systems.
Sorry, I should be less adamant. I should really ask:
If all I see is it weakening the model, then what reason could there
be for including it?
--
You received this message because you are subscribed to the Google Groups "friam" group.
To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/friam/CANpA1Z3-Nx9BtGi_OBA5mK9hEeXznjzq0GGgFJ35zXubCuVNqg%40mail.gmail.com.
On Sat, Aug 8, 2026 at 8:53 PM William ML Leslie <william.l...@gmail.com> wrote:I see that Bob is not designating the resource with certificate capabilities, but with a resource name. Can you do something with the UA to give him a better way to designate his certificates? Maybe some petnames.I am arguing that a certificate capability system that selects capabilities by name is flawed. This example is the best I've come up with to make that point. Your suggestion is one of the many possible workarounds. For example, UCAN allows names, such as example.com/foo, but it also allows you to use the certificate's CID (essentially its hash).
bob expresses what he wants by supplying the arguments in the right positions, based on the documentation? how is it any different than any other api invocation habits?
but yeah 1 capability as both read & write seems like that can confuse things, i guess?
As far as I understand it (Not saying my understanding is right), bob
specifies both the authorization (which has multiple capabilities he
may not actually want to invoke), and the resource he wants to invoke,
and the problem is when bob specifies multiple authorization lists,
the resource he wants to invoke may be ambiguous between the two.
This relies on a "posix crapability" like model of "least privilege",
where to reduce the authority to some subset bob must reissue a new
certificate which subdivides the authority
before passing it to dave in order avoid giving dave his full
privileges by the certificate.
Right, I'm arguing a different thing, that for normal "least
authority" Bob starts from zero authority and adds in each authority
individually.
Certificates would sign each capability individually and bob would
need to pass multiple certificates to pass multiple authorities any
time
he wants to invoke multiple authorities.
In this system when using a certficiate which authorizies multiple
authorities bob must actively take steps to reduce the amount of
authority given through
a certificate by subdividing it.
That is to say, this isn't a critique of your multi-certificate
problem, but a critique of the way even a single-certificate works in
this system.