CHAPTER 3Secure Design

In the previous chapter we discussed security requirements. When making any product, requirements are a must, and ensuring you have security built into your requirements from the beginning is the first step to ensure your final product will be of high quality. In this chapter we will discuss the next phase of the System Development Life Cycle: Design (Figure 3-1).

Schematic illustration of the System Development Life Cycle.

Figure 3-1: The System Development Life Cycle (SDLC)

When designing software applications, software architects not only need to worry about business requirements (what the customer has asked for) and functional requirements (user requirements, scheduling, system requirements), but also non-functional requirements that are often taken for granted, such as usability, quality, and the focus of this book: security.

Secure by design, in software engineering, means that the software has been designed from the ground up to be secure. Malicious practices are taken for granted and care is taken to minimize impact when a security vulnerability is discovered or on invalid user input.

Wikipedia23

When we talk about designing software, there are several different ways this might be interpreted, so let's define it here.

Software design is planning out how you will build your software, and how it will connect or work with anything else it needs to. This can be a very high-level document that shows ...

Get Alice and Bob Learn Application Security now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.