Authentication
Let's explore what authentication is and what are the approaches to perform authentication.
Authentication is the process of determining whether someone or something is who or what it declares itself to be.
When we build systems, the problem of authentication comes up in two main contexts:
- When a user tries to authenticate to a computing system (user-to-system).
- When a system tries to authenticate to another system (system-to-system).
User-to-system authentication
When we discuss user-to-system authentication, there are three main categories of approaches in which authentication can be performed, known as authentication factors. We will discuss these factors in the following section:
The knowledge factors
The knowledge factors correspond to something the authenticated entity knows. For example, this could be a password or the answer to a question.
The ownership factors
The ownership factors correspond to something the authenticated entity has. For example, this could be an ID card or a hardware authentication device.
The inherence factors
The inherence factors correspond to ...