Orthogonal Security

A concept whose time has long since come. Curiously never been implemented.

Security is an orthogonal property of individual objects, exactly like persistence. One achieves orthogonal security in precisely the same way as Transparent Persistence. By building it in at such a low level that programmers never see the damned thing unless they absolutely have to.

Just because security is orthogonal doesn't mean that a programmer can't go out of their way to screw it up. The same is true of any well-designed orthogonally persistent system. It must be possible for a programmer to disable persistence for certain special applications such as to keep passwords out of permanent storage.

What does orthogonal security entail?

It entails pervasive use of the Facet Pattern and the Principle Of Least Privilege. Of course, the only way to do that at a low-level, at a level lower than the programmer interacts with, is to put generic and extensible Permission Flags on all capabilities.

So far, nobody has done orthogonal security properly. In fact, there are even some people, much like the trogs who question orthogonal persistence, who question the need for pervasive permissions in a modern secure OS.

Contrasted and distinct from Orthogonal Security is Trusted Systems.


See original on c2.com