The Structure of Authority: Why Security Is Not a Separable Concern

Mark Samuel Miller, Bill Tulloh, Jonathan S. Shapiro. The Structure of Authority: Why Security Is Not a Separable Concern. In Peter Van Roy, editor, Multiparadigm Programming in Mozart/Oz, Second International Conference, MOZ 2004, Charleroi, Belgium, October 7-8, 2004, Revised Selected and Invited Papers. Volume 3389 of Lecture Notes in Computer Science, pages 2-20, Springer, 2004. [doi]

Abstract

Common programming practice grants excess authority for the sake of functionality; programming principles require least authority for the sake of security. If we practice our principles, we could have both security and functionality. Treating security as a separate concern has not succeeded in bridging the gap between principle and practice, because it operates without knowledge of what constitutes least authority. Only when requests are made – whether by humans acting through a user interface, or by one object invoking another – can we determine how much authority is adequate. Without this knowledge, we must provide programs with enough authority to do anything they might be requested to do.

We examine the practice of least authority at four major layers of abstraction – from humans in an organization down to individual objects within a programming language. We explain the special role of object-capability languages – such as E or the proposed Oz-E – in supporting practical least authority.