On Wed, 2005-10-26 at 17:05 -0700, Nathaniel Smith wrote:
> It might make doing trust stuff significantly easier.  I _think_ a
> design criterion for a trust system is that I want to be able to
> specify rules for trusting certs that aren't branch certs, and I want
> to do this per-branch.  This seems very tricky, if the rule for
> deciding whether you trust a 'foo' cert begins "collect all branch
> certs on the same rev, invoke the branch trust rules on them, for
> each branch cert that turns out to be trusted, find that branch's
> trust rules for 'foo' certs, and then somehow combine the results of
> applying each branch's rules". 

If they don't all match, print a warning and exit?

>  And there are probably horrible
> convoluted attacks:
>   Alice has tag and branch cert rights to branch A.
>   Bob has tag and branch cert rights to branch B.
>   Alice wants to check out the tag 'A-release' so she can send it to
>     the CD manufacturers.
>   Bob does good work over on his project, so Alice does trust him to
>     tag revs on branch B, but he happens to hate project A.
>   Bob takes a buggy rev R on branch A, and adds two certs to it:
>     branch: B
>     tag: A-release
> Now rev R is, according to the trust rules, quite definitely in both A
> and B.  The A-release tag on it is trusted with respect to branch B's
> rules, but not respected with respect to branch A's rules.  So... do
> we trust the A-release tag, or what?  I guess the unavoidable
> conclusion is that you can't determine cert trust based on just the
> contents of the DB plus the current trust rules, but also need to know
> something about the current context?  (checkout -b B -r t:A-release
> should work, checkout -b A -r t:A-release should silently ignore it?)
> This seems bad.  Maybe I'm missing something.

Perhaps this is a reason to keep different projects in different
databases? Bob could just put the A-release tag on something that's
*only* on his branch, and it'd work just as well.

> (Okay, maybe trust issues _have_ been stewing around in the back of my
> head for more than 3 months.  But I don't really understand them, so
> it's maybe premature to use them as arguments in a discussion...)
> 
> This idea does add a significant new piece to the model -- instead of
> the nice clean DAG of snapshots _here_, and generic metadata mechanism
> _there_ setup, we have a piece of magic metadata, that needs to be
> handled differently, etc.
> 
> Umm.  Probably lots of other things to say, too, but I'll stop here
> for now :-).




_______________________________________________
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel

Reply via email to