Notes/UNB/Year 4/Semester 1/CS2418/10-4-2023.md
2024-01-22 10:12:48 -04:00

30 lines
2.2 KiB
Markdown

Lecture Topic: User authentication
Exploiting User Mistakes:
If the system assigns password the user is more likely to write it down because of difficulty in remembering it.
A user might share a password between colleagues to make it easier to share files
Social engineering may be used to trick users into sharing passwords
Many systems have administration accounts with preconfigured passwords
Exploiting Multiple Password Use:
Attacks can be much more effective if users share the same password between services
Electronic Monitoring:
If a password is communicated across a network to log on to a remote system, it is vulnerable to eavesdropping. Encryption will not fix this, because the attacker can simply replay the encrypted password to the endpoint.
Why is password based authentication still popular?
Physical tokens can be expensive and inconvenient, and biometrics require hardware that authenticates said biometrics that can be potentially exploited
The use of hashed passwords:
You can hash a password to not store plaintext passwords on a server or service. This hash is designed to be slow to execute as to slow down attackers who are trying to brute force the passwords.
Salting is when you add a random salt value to a password to avoid duplicates in a password database, as hashes of common passwords can be analyzed to deduce the plaintext password. It makes it way harder to perform dictionary attacks on the database as the hash function would not give the same hash as the hash + salt
This scheme comes from UNIX, and a password file. It stores the user ID, salt, and the hash code, and the slow hash function uses the salt + plaintext password and compares this result to the hash code for authentication.
The salt is okay to store because the salt is truly random data and knowing the salt does not make it easier to reverse the plaintext based on the hash code.
Password Cracking of User-Chosen passwords:
A traditional approach is to use a large dictionary and trying each entry against the password file.
Another approach is to use precomputed hashes, and compare this against the password file directly. This approach can be countered by using a large salt value and a large hash length