Boris Zbarsky wrote:
Brendan and I have been doing some thinking about actually defining what security model we're using. Our current model has a bit of a neither-fish-nor-fowl aspect to it.

I've written up the two directions we think we could go at <http://wiki.mozilla.org/Security:Security_Checks_In_Glue> and <http://wiki.mozilla.org/Security:Scattered_Security_Checks>.

The former model describes a setup close to what Netscape 2-4 had, according to Brendan. The latter model describes what we _think_ we're doing right now. Except we're doing a really bad job of it, and I question whether we could ever really do it effectively. So I personally lean toward the glue model...

In any case, I'd love feedback on these documents, as well as any alternate proposals for what we should be doing.

Those are really clear, thanks.

Is it fair to say that for Security_Checks_In_Glue, on entry to a DOM method we're just pre-evaluating all the security checks that would be performed during this method call by a correctly-implemented Scattered_Security_Checks?

If that's so, then issues with correct principal switching and propagation go away as an implementation issue, but conceptually they still need to be considered by Security_Checks_In_Glue when we figure out what permissions are needed by each method.

Maybe the thing to do is to go with Security_Checks_In_Glue, but replace our scattered security checks with security assertion annotations that are processed by some tool (say Oink-based) to statically verify that the glue checks ensure they won't fail. That would give us the benefits of Security_Checks_In_Glue --- performance, ease of understanding for Javascript developers, early abort --- while avoiding the disadvantages of inconsistency between a method's glue checks and what it actually does.

Rob
_______________________________________________
dev-security mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-security

Reply via email to