Definition
User Authentication
User authentication is the process of verifying the identity of a user or process attempting to access a system.
Authentication Factors
Authentication typically relies on one or more of the following:
- Possession: Something the user has (e.g., a physical key, chip card, or token).
- Attribute (Biometrics): Something the user is (e.g., fingerprint, iris scan, facial recognition).
- Knowledge: Something the user knows (e.g., a password or PIN).
Passwords
Passwords are the most common but often weakest authentication factor.
- Vulnerabilities: Default passwords, dictionary attacks, brute-forcing short names, and social engineering.
- Search Space: The number of possible 7-character passwords (using 95 printable chars) is approx. .
- Salt: To increase the search space and prevent pre-computed attacks (like rainbow tables), the system adds bits of random data (salt) to the password before hashing (e.g., a 12-bit salt increases the space by a factor of ).
Countermeasures
- One-time Passwords (OTP): Codes valid for a single session.
- Challenge-Response: The system issues a challenge that the user must answer using a secret key.
- Login Delays: Intentionally slowing down the system after failed attempts to prevent rapid brute-forcing.
- Logging: Recording and displaying the date/time of the last successful login.