Design Principles for Security
Least privilege. Use the fewest privileges possible
Economy of mechanism. Protection system should be small, simple, and straightforward
Open design. Protection mechanism must not depend on the ignorance of attackers
Complete mediation. Every access attempt must be checked
Permission based. Denial of access is default condition
Separation of privilege. Access to objects should depend on more than one condition, such as user authentication plus a cryptographic key
Least common mechanism. Systems employing physical or logical separation reduce the risk from sharing.
Ease of use. If a protection mechanism is easy to use, it is unlikely to be avoided