Skip to main content
Engineering LibreTexts

5.1: Overview

  • Page ID
    75652
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Secure computer systems ensure that users' privacy and possessions are protected against malicious and inquisitive users. Security is a broad topic, ranging from issues such as not allowing your friend to read your files to protecting a nation’s infrastructure against attacks. Defending against an adversary is a negative goal. The designer of a computer system must ensure that an adversary cannot breach the security of the system in any way. Furthermore, the designer must make it difficult for an adversary to side-step the security mechanism; one of the simplest ways for an adversary to steal confidential information is to bribe someone on the inside.

    Because security is a negative goal, it requires designers to be careful and pay attention to the details. Each detail might provide an opportunity for an adversary to breach the system security. Fortunately, many of the previously-encountered design principles can also guide the designer of secure systems. For example, the principles of the safety net approach from Chapter 2, be explicit (state your assumptions so that they can be reviewed) and design for iteration (assume you will make errors), apply equally, or perhaps even with more force, to security.

    The conceptual model for protecting computer systems against adversaries is that some agent presents to a computer system a claimed identity and requests the system to perform some specified action. To achieve security, the system must obtain trustworthy answers to the following three questions before performing the requested action:

    1. Authenticity: Is the agent’s claimed identity authentic? (Or, is someone masquerading as the agent?)
    2. Integrity: Is this request actually the one the agent made? (Or, did someone tamper with it?)
    3. Authorization: Has a proper authority granted permission to this agent to perform this action?

    The primary underpinning of security of a system is the set of mechanisms that ensures that these questions are answered satisfactorily for every action that the system performs. This idea is known as the principle of complete mediation.

    Complete mediation:

    For every requested action, check authenticity, integrity, and authorization.

    To protect against inside attacks (adversaries who are actually users that have the appropriate permissions, but abuse them) or adversaries who successfully break the security mechanisms, the service must also maintain audit trails of who used the system, what authorization decisions have been made, etc. This information may help determine who the adversary was after the attack, how the adversary breached the security of the system, and bring the adversary to justice. In the end, a primary instrument to deter adversaries is to increase the likelihood of detection and punishment.

    The next section provides a general introduction to security. It discusses possible threats (Section 5.2.1), why security is a negative goal (Section 5.2.2), presents the safety net approach (Section 5.2.3), lays out principles for designing secure computer systems (Section 5.2.4), the basic model for structuring secure computer systems (Section 5.2.6), an implementation strategy based on minimizing the trusted computing base (Section 5.2.7), and concludes with a road map for the rest of this chapter (Section 5.2.8). The rest of the chapter works the ideas introduced in Section 5.2 in more detail, but by no means provides a complete treatment of computer security. Computer security is an active area of research with many open problems and the interested reader is encouraged to explore the research literature to get deeper into the topic.


    5.1: Overview is shared under a not declared license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?