[cap-talk] The Limits of POLA's Utility - Social Engineering

Nick Szabo szabo at szabo.best.vwh.net
Wed Jun 7 17:36:56 EDT 2006


Toby Murray:
> I take the implied point that Bob might not "deserve" helping in this 
> instance. That said, it's interesting to look at the historical 
> precursors to POLA and where they were motivated from. I've read some of 
> Nick Szabo's stuff that draws parallels between eg. the Separation of 
> Powers and POLA. 

I take POLA and separation of powers to be two distinct but related ideas:

* POLA says to delegate the least power (i.e. create the least vulnerability 
to abuse) as is necessary to accomplish a task.  This is related to the 
"necessary and proper" clause and the non-delegation doctrine in 
constitutional law, to "need to know" in spy agencies, etc.

* Separation of powers (a.k.a. separation of duties) says that, if it is 
necessary to delegate a large amount of power (i.e., if it is necessary to
create a large vulnerability, or "trusted third party"), break the power up 
and delegate separate pieces of it to separate agents in such a way that the 
cooperation of all the agents is required to complete the task -- in 
other words, so that collusion of all the agents is required to exploit 
the vulnerability.

Both involve minimizing the amount of power delegated to any particular
agent. Both assume wisdom on the part of the designer, in deciding how
much power is needed and how much vulnerability is created, which I don't
think is always justified.  This is why I have elsewhere described other
methods of distributing power that don't involve agency or delegation.

BTW, depending on the design, a crucial distinction between capability
security as discussed by many here and traditional ACL security: 
does all vulnerability start with "root" until some designer, such as
a system administrator, breaks it up into pieces by delegation, or does 
vulnerability not exist at all until the user creates it?  At least 
some of the discussion here at least hints at the latter.  This issue
is either orthogonal to the ACL vs. capability distinction or it is an
unheralded distinction between the two.  In any case, I think it is
a crucial distinction to make -- a kind of Copernican change in 
world-view.

> Surely, these are arguments along the 
> lines of "The system must protect users against their own [bad] nature, 
> for the good of all".

I'd say the idea is to protect other people from a user's bad nature (or 
even just from his negligence).  This might or might not entail protecting 
the user from his own bad nature.   For example, arguably people should 
be forced to use capability security so that their machines cannot so
easily be taken over and used to attack other machines.  This might 
be accomplished, for example, by making such users legally liable for damages
caused by attackers using their machine, even if they didn't know about 
the vulnerability or the breach.

All of the above must be reconciled with the general propositions that we 
are all more productive if knowledge is distributed (this quite conflicts 
with "need to know," for example) and all happier when we are not 
restricted from doing as we like, up to harming others.  Since reconciliation
of these factors in the design of a system requires uncommon wisdom, and 
sometimes wisdom approaching omniscience, on the part of the designer,
we should often distribute power in ways besides delegation: for example
by having the right to make other persons vulnerable be a property right
revocable only upon abuse (along with good definitions for what constitutes
abuse).  This point of view, common in the law, seems to be alien to
almost every computer security scheme I've come across (including 
capability security), probably since up until widespread use of the
Internet security needs have been dominated by the internal needs of
organizations where principle-agent relationships and delegation prevailed.  

Nick Szabo
http://szabo.best.vwh.net
http://unenumerated.blogspot.com


More information about the cap-talk mailing list