Secure Design Principles

Sitting here on a cold, snowy day thinking about secure design principles. These are key to think about during the design phase of a feature/project?

Total Mediation – every access to every resource must be validated every time

Economy of Mechanism – keep it as simple as possible

Fail-Safe – in case of failure, default to a secure state

Defense in Depth – layer security

Open Design – the security of a system should not be dependent on secrecy of its design or implementation

Psychological Acceptability – security mechanisms must not make resources more difficult to access then if they weren’t there

Least Privilege – limit access to a system/feature to only those that *need* to access it for the shortest duration possible

Minimize attack surface – reduce risk by reducing the attack surface area

Secure Defaults – default to a secure state

Any others you can think of?