Identification
Correctly identifying a user or entity
How a user claims identity to the system
(User authentication) Establishing the validity of the claim
Digital User Auth (NIST SP-800) establish confidence in user identities that are presented electronically to an information system.
-> base for access control and user accountability
-> ensuring authenticity lets admins to set permissions and audit a users activity
NIST 800-63 Guideline
Enrollment and Identity Proofing
IAL1: No requirement to a specific real-life identity. Any attributes +authentication process are self-asserted.
IAL2: Supports real-world existence, claimed identify and verifies applicant is associated with real-world identity. Adds remote or physical identity proofing
IAL3: Physical presence for identity proofing.
Authentication Architectural Model
It must prevent impersonation and uncontrolled transferability
Means of Authentication
Something the individual knows: password, PIN, answers to questions
Something the individual possessess: keycards, smart cards physical keys (token)
Something the individual is (static biometric): fingerprint, retina, face
Something the individual is (dynamic biometric): voice pattern, handwriting characteristics, typing rythm.
Multifactor authentication
Using a combination of more than one means of authentication
The strength increases based on the n number of means combined
NIST 800-63 - Assurance Level
Degree of confidence in vetting process + degree of confidence claimant is subscriber
L1: Little or no confidence -> credentials provided
L2: Some confidence -> credentials through a secured channel
L3: High confidence -> restricted services high value, 2 ind authentication techniques
L4: Very high confidence -> restricted services highest value, MFA and in-person registration
Impact: low, moderate and high
Risk: low, moderate and high
Potential Impact Categories for Authentication
If low -> L1, 2 or 3 for harm, unauth release of information and personal safety
If Mod -> L2 or L3, L4 if it’s personal safety
if High -> L4 assurance level
Password-Based authentication
claimant provides ID + password
- has access to system
- has certain privileges
- Discretionary Access Control
Password Auth - Attack - Offline Dictionary
If password is saved as a one-way hash in DB
Attack:
attacker bypasses controls and checks hashes against DB
Countermeasure:
- Controls to prevent unauth access
- Intrusion detection to identify a compromise
- Rapid reissuance of passwords
Password Auth - Attack - Specific Account / Guessing against single user
Attack:
attacker targets an account and tries to guess its password. (of a single user by using information retrieved)
Countermeasures:
- Lockout mechanism after a number of failed login. Up to 5 intents
Countermeasures (Single user):
- User training in password creation, and length of time until password change
Password Auth - Attack - Popular Password
Attack:
attacker uses popular password to guess against a list of IDs
Countermeasures:
- Inhibit common passwords
- Scan IPs of authentication requests and client cookies for submission patterns
Password Auth - Attack - Workstation Hijacking
Attack:
Logged-in workstation unattended
Countermeasure:
- Automatically lock workstation after period of inactivity
- Intrusion detection schemes changes in user behavior
Password Auth - Attack - Exploiting user mistakes
Attack:
Users might:
- write down the password
- share it without security controls
- use a default system password
- give it in a social engineering attack
Countermeasures:
- User training
- Intrusion detection
- Simpler passwords with other auth mechanism
Password Auth - Attack - Exploiting multiple password use
Attack:
Password shared through different devices in a network increases attack surface
Countermeasures:
Policy that forbids reusing same password for different devices
Password Auth - Attack - Electronic Monitoring
Attack:
Password sent through network is vulnerable to eavesdropping
Countermeasure:
Advanced encryption
Using hash passwords
user selects or is assigned a password, the password is combine with a fixed-length salt value and stored. The salt value is generated using Pseudorandom or Random Number Generation.
Def: hash function h(x) =z, z is called digest
It is one way if it is unfeasible to compute z’s preimage. I.e. h’(z) = x
Prevents:
Two duplicate passwords to have same hash
Increases offline dictionary attacks complexity by 2^b where b = len(salt)
It becomes almost impossible to find multiple password use
UNIX password scheme is vulnerable to brute-force attacks
UNIX
crypt(3):DES
12-bit salt. crypt3([0..]) output is input for next round (25 rounds) # 64 bit zeros
Final 64 -> 11 char seq
- Discourages guessing attacks
- Widely used but vulnerable to supercomputers
MD5
salt up to 48 bits -> 128-bit hash value. Slower than crypt(3) 1000 iterations
Bcrypt:Blowfith symmetric block cipher
passwords up to 55 chars, random salt of 128 bits -> 192 bit hash. Higher cost increases calculation and can be assigned to privileged users
Password cracking
dictionary attack
use precomputation (trade space for time) -> rainbow table
Markov modeling techniques to reduce size of the password space
Probabilistic context-free grammar for password cracking
Harden the password file access control
use a shadow password file (separate file from user IDs) with privilege assigned to only certain users
Password Selection Strategies
User education -> hard with large user base or high turnover
Computer generated -> hard to accept/remember, generate sequence of pronounceable syllables and concatenate them
Reactive password checking -> run a system check on all guessable passwords, cancel any that don’t conform and notify user. Impractical due to resources and cost
Complex password policy/proactive pwd checker. System checks if password is allowed. Balance between user acceptability and strength
NIST SP 800-63-2 - Proactive password checking
Passwords must:
have at least 16 characters (basic16)
have at least 8 characters w/ uppercase + lowercase letter, symbol and a digit. Not a dictionary word (comprehensive8)
basic16 superior vs large number of guesses and easier for users. Better policy
Use dictionary of disallowed passwords
Bloom Filter @review
Rejecting words based on a list.
A bloom filter of order k consists of a set of k ind hash functions where each function maps a pwd into a hash value in the range 0 to N-1
S = {H_1(x),…,H_k(x)}
H_i(x_j) = y, 1<=i<=k; 1<=j<=D; 0 <= y <= N-1 and D = |X|. x_j in X (word in pwd dict)
Hash table of N bits is initialized to 0
For each password, its k hash values are calculated, and bits set to 1
If at least one bit is 1 for a new password it is rejected
Increasing the number of hash functions reduces the probability of having false positives when checking with the bloom filter
Token-Based Authentication - Memory cards
Memory Cards (bank cards back magnetic stripe)
For authentication, provides memory cards plus password (PIN)
Must gain physical possession plus knowing the PIN
Drawbacks (NIST SP 800-12):
- Requires special reader. maintain sec of reader’s HW and SW
- Token loss. System access is lost momentarily, cost in replacement and if found only PIN needs to be guessed
- User dissatisfaction. Use may be deemed inconvenient in some places
Token-Based Auth - Smart Cards
Smart cards (has embedded microprocessor)
Auth Protocols
Static auth -> user auth to token and token to computer
Dynamic pwd gen -> generates a pwd periodically, used to auth into computer. Must have sync with computer to know token has latest password
Challenge-response -> computer gen challenge, token gen response based on challenge.
Public-key crypto, token encrypt challenge with token’s private key
Contain:
Microprocessor + (co-processing cryptographic circuit)
I/O ports exposed electrical contacts or embedded antenna for wireless comm
Read-only memory -> static data, card number and user’s name
Electrically erasable programmable ROM (EEPORM) -> application data and programs, protocols to execute, dynamic data (remaining talk time in telephone card)
RAM -> temporary data generated when apps execute
Token-based Auth - eID
Electronic Identity Cards
Provided by governments used to provide stronger proof of identify
Contains:
Personal data -> name DOB address
Doc Number
Card access number: 6 digit deicmal random number as password
Machine readable Zone (MRZ) may also be used as a password
Functions:
ePass -> (gov use) stores a digital representation of the cardholder’s identity (offline - passport control checkpoint)
eID -> (gov/comm use) stores an identity record that auth service can access with cardholders permission. Citizen chooses (validate possessor is actual legitimate cardholder)
eSign -> gen digital signature with a private key and a certificate provided by a private sector Trust Center
Biometric Authentication
Facial -> relative location and shape of key facial features or face thermogram with underlying cascular system
Fingerprints -> pattern of ridges and furrows on the surface. Automated recognition extracts features as a numerical surrogate
Hand geometry -> features of the hand, shape, length and width of fingers
Retinal pattern -> veins beneath the retinal surface is unique (projects low-intensity beam of visual or infrared)
Iris -> detailed structure
Signature -> handwriting, hard because multiple samples are not identical
Voice -> voice patterns, hard because pattern changes over time
Each user needs to be enrolled,
All numeric values taken from the features (feature extractor) are called the user’s template.
Verification -> feature + PIN -> template == feature (feature matcher)
Identification -> feature -> is present in DB? (feature matcher)