Skip to content

Design Principles

Principle of Least Privilege

The principle states that a subject should be given only those privileges that it needs in order to complete its tasks.

If a specific action requires extra access rights, it can be augmented and the taken back when the action is performed.

Principle of Fail-Safe Defaults

The principle states that unless a subject is given explicit access to an object, it should be denied access to the object.

This principle requires that the default access should be none. If the subject is unable to complete its action, it should undo those changes it made in the security state of the system before it terminates.

Principle of Economy of Mechanism

The principle states that the security mechanisms should be as simple as possible.

If a design and implementation are simple, fewer possibilities exist for errors.

Example

EXAMPLE: The ident protocol [769] sends the user name associated with a process that has a TCP connection to a remote host. A mechanism on host A that allows access based on the results of an ident protocol result makes the assumption that the originating host is trustworthy. If host B decides to attack host A, it can connect and then send any identity it chooses in response to the ident request. This is an example of a mechanism making an incorrect assumption about the environment (specifically, that host B can be trusted).

Interfaces to other modules are suspects, making assumptions about input or output parameters.

Principle of Complete Mediation

The principle requires that all accesses to objects be checked to ensure that they are allowed.

Principle of Open Design

The principle states that the security of a mechanism should not depend on the secrecy of its design or implementation

A knowledgeable user can defeat the system by discovering secrets.

Principle of Separation of Privilege

The principle states that a system should not grant permission based on a single condition.

Example

EXAMPLE: On Berkeley-based versions of the UNIX operating system, users are not allowed to change from their accounts to the root account unless two conditions are met. The first condition is that the user knows the root password. The second condition is that the user is in the wheel group (the group with GID 0). Meeting either condition is not sufficient to acquire root access; meeting both conditions is required.

Principle of Least Common Mechanism

The principle states that mechanisms used to access resources should not be shared.

Sharing of internet with attackers can cause attacks to succeed. Instead the attackers should be able to access only part of internet, using proxy servers or traffic throttling.

Principle of Psychological Acceptability

The principle states that security mechanisms should not make the resource more difficult to access that if the security mechanisms were not present.

Principle Key Concept Memory Trigger
Least Privilege Minimum rights for the task "Need to know" basis.
Fail-Safe Defaults Deny by default No ID? No entry.
Economy of Mechanism Keep it simple Simple = Fewer bugs.
Complete Mediation Check every access No "I was just here" passes.
Open Design No "Security by Obscurity" Blueprints can be public.
Separation of Privilege $1 + 1$ requirements Two keys for one lock.
Least Common Mechanism Don't share paths Separate the "lanes."
Psychological Acceptability Don't annoy the user Make it usable.