Authentication
Authentication
1 Digitally signed by
Dr. Nirmalya Dr. Nirmalya Kar
Kar Date: 2024.04.01
10:30:48 +05'30'
Agenda
• Authentication
• Security Handshakes
– One-way
– Two-way
• Mediated Authentication
• Kerberos
2
Authentication
Prove continuity in relationship
– Basis of trust
– Identification Who you are
(biometrics)
Physical authentication:
where you are
What you have
(tokens)
What you know
Password: snoopy1
Mother’s maiden name: jones
Pets name: snoopy
3
Network Authentication
• Password
• One-time Passwords (ex. tokens)
• Network address
– Caller-id - credit card
– IP address
– MAC address – banks
• Cryptographic protocols
4
Concerns
• Impersonation
• Malicious insiders
• Eavesdropping
– Keyboard sniffers
– Shoulder-surfing
– Network sniffers
– Trojan horses
6
7
2-Way Authentication
8
Password-based Authentication
• Proof by sharing
• Doesn’t prevent insider attacks (system admin)
• What is an appropriate password
– length? snoopy, snoopy1, snoopy12
– reusable ? snoppy1, snoopy2, …. snoopy10, snoopy1
– timeframe?
• How to do initial password distribution? lastname123,
employee#
• Simple approach, works with humans
… until user has too many to remember
– reuse across systems
– Variations of something common: dog’s name
– post-it on monitor
– inconvenient to update, varying rules on what is appropriately
complex, how often to change
snoopy1, Snoopy1, snoopy-1
Storing Passwords
• Per-node
• Central repository
• Hashed passwords
• Password encryption
– Salted passwords
10
Password Guessing
• Online
– Limited tries, exponential delays, alarm
– But attacker can temporarily disable a user’s account –
ex. 3 tries and account locked until user calls help desk
• Offline: “dictionary” attack
– Must capture password file
– Try "obvious" passwords: snoopy, snoopy1, 1snoopy
– Significant dates, easy patterns, personal information
– While most systems disallow “dictionary words”,
complexity rules still give information – know need a digit,
punctuation character …
Snoopy-12
11
Passwords as Keys
12
One-Time Passwords
13
• Example:
– Hash password 1000 times, store result on server
– Client hashes 999 times, sends to server
– Server verifies hash of received value matches stored
– result
– Store received hash
• Must be re-initialized periodically - over secure
channel
14
15
Lamport’s Hash
• One-time passwords
• Server stores n, hashn(password)
• User sends x = hashn-1(password)
• Server computes hash(x), if = stored value, replaces stored value
with n-1 , x
16
OTP Generators (Tokens)
• Examples
– RSA
– VASCO Digipass
• Use a block cipher
– Repeatedly encrypt
– Continuously update every x seconds
– Update each time user presses button
• Some work in both directions
– Customer enters OTP
– Server returns OTP, customer (manually) compares it
to value on token
17
18
Tokens - Issues
• Help desk required
– Synchronization not perfect
– Premature battery death
• Cost
– $15-$25
– banks with million customers
• User still needs pin (something you know + something
you have)
• “Necklace of Tokens” issue
– Only recently integrated with cell phones
– Still rare to have multiple tokens on single device
• Non-standard algorithms
– OATH effort
19
Cryptographic Authentication
• Tokens, smart cards use crypto
• Use a password (or key) in a cryptographic protocol
– Prove possession of key
– Mutual authentication
• Usually coupled with encryption of data after
authentication
• Certificates
– PKI covered in another lecture
20
21
Pairwise Keying
Bob:xyz
Alice:abc
Fey: ghj
George: 123
Emily: mkl
Bob:xyz
Dave: klj
Alice:who
Fey: bin
Carol: 123
Emily: dog
Dave: cat
22
Trusted Intermediaries (KDC)
George-Bob:xyz Bob:13
George-Alice:who Carol: 31
Key Distribution Center
George-Fey: bin Dave: 7
… ….
23
KDC
• Can impersonate any node
• Single point of failure
• Potential bottleneck
24
Certificate Authority
• Central point for certificates
• Signs cert for Alice containing her public key
• Others need only CA’s public key
• Revocation?
– Real time with online KDC
– Offline CA –expiration date, certificate revocation list
25
Agenda
• Authentication
• Security Handshakes
– One-way
– Two-way
• Mediated Authentication
• Kerberos
26
Security Handshakes
27
One-way Challenge-Response
Alice I’m Alice Bob
challenge R
K = shared key
f(K,R)
f:
– encryption function – Bob just decrypts and verifies time in within
allowed skew
– hash – Bob needs to hash all times in allowable interval or Alice sends
time
Problems?
– Authentication not mutual
– Connection hijacking after authentication – attacker spoofs Alice or
Bob’s source address and send packets if conversation not encrypted
– Off-line password/key attack – depends on length of K
– Compromise of database/disk if K is stored, or temporary memory
access
28
One-Way using Timestamp
Alice I’m Alice, f(K,timestamp) Bob
• Problems?
– Impersonate Alice if intercept and send message – race condition
– Keep list of used time stamps to prevent quick replay, but if use same K
with multiple servers, could send message to another server and
impersonate Alice
– Clock skew/synchronization
29
30
One-way Problems
• First case:
– Can send anything to Alice as R and get Alice
to sign it
• Second case:
– Intercepted an encrypted message for Alice,
send it and get Alice to decrypt it
31
Mutual Authentication
32
Mutual Authentication with Secret Key
R1
f(K,R1)
R2
f(K,R2)
33
R1, f(K,R2)
f(K,R1)
34
Mutual Authentication with Secret Key
Reflection attack:
Now use
f(K,R1) in R3, f(K,R1)
above attempt
Solutions:
•Separate keys for each direction
•Requirements on R values: odd in one direction, even in
the other, concatenate with senders’ name
35
Password/Key Guessing
• Also note, Trudy can get Bob to encrypt a value (or a
several of values) and then try an offline attack to guess
K
• Have Bob return R1 value for Alice to encrypt
R1
R2, f(K,R1)
f(K,R2)
36
Timestamps
f(K,timestamp+1)
37
[R1]Apub, R2
R1
38
Session Key
• Once authentication occurs, want to encrypt
data exchanged
• Session key
• If key to one session obtained, can’t decrypt all
sessions
• Don’t want known/easy to derive relationship
among session keys
39
40
Agenda
• Authentication
• Security Handshakes
– One-way
– Two-way
• Mediated Authentication
• Kerberos
41
Mediated Authentication
• Needham-Schroeder
• Otway-Rees
42
Needham-Schroeder
Alice KDC Bob
N1, Alice wants to talk to Bob
EKab(N3 - 1)
43
Expanded Needham-Schroeder
• Issue - ticket doesn’t expire
• If Trudy obtains Alice’s key and ticket, Trudy can connect to Bob
even if Alice changes key.
Alice Bob
I want to talk to you
Ekb(Nb)
EKab(N2), ticket
EKab(N2 - 1, N3)
EKab(N3 - 1)
44
Needham-Schroeder
• Reflection attack in last steps if ECB
mode (and nonce size = block size)
Trudy->Bob: EKab(N2), ticket Trudy doesn’t have
Bob->Trudy: EKab(N2 - 1, N4) Kab to obtain N4,
needs N4-1 in next
step, so get Bob to
encrypt N4-1
Trudy->Bob: EKab(N4), ticket Extract 1st block of
Bob->Trudy: EKab(N4 - 1, N5) ciphertext
45
Otway-Rees
Alice Bob
Nc, "Alice", "Bob", EKa(Na, Nc, "Alice", "Bob")
KDC
Nc, EKa(Na, Kab), EKb(Nb, Kab)
EKa(Na, Kab)
EKab(something recognizable)
46
Encrypted Key Exchange (EKE)
Shared weak secret W = hash(Alice’s password)
Bob
Both compute
K = gab mod p EK(C1,C2) Both compute
K = gab mod p
EK(C2)
47
Kerberos
• Based on Needham-Schroeder
• Uses time and includes ticket expiration
• Later in lecture
48
49
50
Nonces
• Random number
– 128-bit value negligible chance of being
repeated
• Timestamp
– Synchronization
– Predictable
• Sequence number
– Maintain state
– Predictable?
51
Random Numbers
• Be careful with seed
• Size
• Easily known value: timestamp
• Divulging seed – don’t use some value
included unencrypted in message
52
Performance
• Number of messages exchanged
• Number of operations
– using secret key algorithm
– using public key algorithm
– using hash
• And number of bytes involved
53
Checklist
• Eavesdropping
• Initiation of conversation/partial
conversations
• Impersonation by accepting a connection
• Access to disk/database at either end
• Man-in-middle
54
Agenda
• Authentication
• Security Handshakes
– One-way
– Two-way
• Mediated Authentication
• Kerberos
55
Needham-Schroeder
Alice KDC Bob
N1, Alice wants to talk to Bob
EKab(N3 - 1)
56
Overview
• Originally developed at MIT
• An essential part of Windows servers
• Authentication infrastructure
– Designed to authenticate users to servers
– Users must use their password as their initial
key and must not be forced to retype it
constantly
• Based on Needham-Schroeder, with
timestamps to limit key lifetime
57
Versions
• MIT support: version 4 end-of-life in 2006
– DES
– Protocol flaw
• Original Needham-Schroeder protocol implicitly requires nonmalleable
encryption: prevent an attacker, given a ciphertext, from producing a
different ciphertext whose plaintext is meaningfully related to the plaintext of
the original ciphertext.
• Kerberos version 4 fails to provide by inadequately authenticating its
messages. Nonmalleability concept was not well-developed at the time.
– nonstandard propagating cipher block chaining (PCBC) mode.
ciphertext block swaps being undetectable without additional integrity
checking.
– Implementation flaws
• Version 5
– Fixes/improvements (delegation, ticket lifetime, key versions …)
– Encoding changes
– Optional, variable-length fields, types
• Adds flexibility, but increases number of bytes per message and processing
overhead
58
Design Goals
• Users only have passwords to
authenticate themselves
• The network is completely insecure
• It’s possible to protect the Kerberos server
• The workstations have not been tampered
with (not a safe assumption)
59
Resources Protected
• Network access to home directory
• Printer
• IM system
• Remote login
• Anything else that requires authentication
60
Principals
• A Kerberos entity is known as a principal
• Could be a user or a system service
• Principal names are tuples:
V4: <primary name, instance, realm>
V5: <primary name + variable fields, realm>
• The realm identifies the Kerberos server
61
62
Shared Secret
• Each principal (user, device) shares a
secret (master key) with the Kerberos
KDC
• For users, this is their password (actually,
a key derived from the password)
• The KDC is assumed to be secure and
trustworthy; anything it says can be
believed
63
64
Obtaining TGT
65
Ticket Request
TGS_REQ
Alice wants to talk to Bob
Login to Bob TGT
Alice Authenticator = ESA(timestamp) KDC
Workstation
Creates key KAB
Decrypts TGT to get SA
TGS_REP
ESA(Bob, KAB, ticket to Bob) Decrypts authenticator to verify
timestamp
Looks up Bob’s key KB
Creates ticket EKB(Alice, KAB)
66
Access Remote Resource
AP_REQ
Ticket to Bob = EKB(Alice, KAB)
Authenticator = EKAB(timestamp)
Workstation Bob
(Alice)
AP_REP
EKAB(timestamp+1)
67
Messages
• Message fields listed in text
• Part of assigned readings
• Know what they mean/are for
• Don’t need to memorize list of fields for
midterm
68
Service Tickets
• Service tickets are almost identical to
ticket-granting tickets
• The differences is that they have the name
of a different service — say, “email” —
rather than the ticket-granting service
• They’re encrypted in a key shared by the
KDC and the service
69
70
Authentication, Not Authorization
• Kerberos is an authentication service
• It does not (usually) provide authorization
• The services know a genuine name for the
client, vouched for by the KDC
• They then make their own authorization
decision based on this name
71
Bidirectional Authentication
• Sometimes, the client wants to be sure of
the server’s identity
• It asks the server to prove that it, too,
knows the session key
• The server replies with EKAB(timestamp+1)
using the same timestamp as was in the
authenticator
72
Ticket Lifetime
• TGTs typically last about 8–12 hours —
the length of a login session
• Service tickets can be long- or short-lived,
but don’t outlive the TGT
• Live tickets are cached by the client
• When service tickets expire, they’re
automatically and transparently renewed
73
Inter-Realm Tickets
• A ticket from one realm can’t be used in another,
since a KDC in one realm doesn’t share secrets
with services in another realm
• Realms can issue tickets to each other
• A client can ask its KDC for a TGT to another
realm’s KDC
• The remote realm trusts the user’s KDC to
vouch for the user’s identity
• It then issues service tickets with the original
realm’s name for the principal, not its own realm
name
74
Putting Authorization in Tickets
75
Proxy Tickets
• Suppose a client wants to print a file
• The print spooler doesn’t want to copy the
user’s file; that’s expensive
• The user obtains a proxy ticket granting
the print spooler access to its files
• The print spooler uses that ticket to read
the user’s file
76
Restricting the Print Spooler
• The client doesn’t want the spooler to have
access to all of its files
• It lists the appropriate file names in the proxy
ticket request; the KDC puts that list of names
into the proxy ticket
• When the print spooler presents the proxy ticket
to a file server, it will only be given those files
• Note: the file server must verify that the client
has access to those files.
77
Limitations of Kerberos
• Ticket cache security
• Password-guessing
• Subverted login command
78
Ticket Cache Security
• Where are cached tickets stored?
• Often in /tmp — is the OS protection good
enough?
• Less of an issue on single-user
workstations; often a threat on multi-user
machines
• Note: /tmp needs to be a local disk, and
not something mounted via NFS. . .
79
Subverting Login
• No great solutions.
• Keystroke loggers are a real threat today
• Some theoretical work on secure network
booting
80
Version 5 Changes
81
Delegation
• Delegation of rights
– Alice wants Bob to access resource X on behalf of
Alice for time t.
• Example: Alice logs into host Bob then wants to log into host
X from Bob
– Alice can request ticket with Bob’s address or a list of
addresses
– Ticket can include application specific data – not used
by Kerberos but used by host
• Can set to not allow delegation
82
Ticket Lifetime
• V4: 21 hours max
• V5: up to Dec. 31, 9999
• Lifetime in seconds
• Not revocable – be careful
• Time ticket granted, start time and stop time
• Renew until – instead of long lifetime, give option to keep
renewing
– If stop using/needing ticket, won’t remain open
• Postdating
• Grant ticket to run some process in future
– Batch job at end of week but requested ticket at beginning of
week
83
Key Version
• Suppose Alice has ticket to Bob
• Bob changes his key with KDC
• KDC keeps versions both versions of
Bob’s key (key, version)
• Alice’s ticket keeps working until it expires
• Any other renewable or post-dated ticket
will work with old key
84
Master Keys and Realms
• Master keys – key between entity (such as Alice)
and KDC
• Alice registered to realms R1, R2
– Uses same password
• Hash password with realm name to get master
key
• If attacker gets Alice’s password, still can
compute both master keys
• But R1 and R2 don’t have the other’s master key
for Alice. If attacker breaks into one, won’t get
both keys.
85
Repairs
• Insert new cipher (AES) to replace DES
• Checksum fix for integrity – replaced by
choice of algorithm
• PCBC – replaced by choice (AES-CBC
common)
86
Hierarchy of Realms
A
B C
D E F
G H I J
H to D, go through E then B
List transited realms in ticket, don’t give transited realms power to
impersonate others
If don’t trust one realm, all realms visited after that one are suspect
87
Hierarchy of Realms
May have short cut links
F talks directly to B instead of
A C then A then B
B C
D E F
G H I J
88
Password Guessing
• V4: anyone can send ticket request to KDC
89
Password-Guessing
• Kerberos tickets have verifiable plaintext
• An attacker can run password-guessing
programs on intercepted ticket-granting
tickets (Merritt and Bellovin invented EKE
while studying this problem with
Kerberos.)
• Kerberos uses passphrases instead of
passwords
• Does this make guessing harder? Not sure
90
Password Guessing
• On many Kerberos systems, anyone can ask the
KDC for a TGT
• There’s no need to eavesdrop to get them —
you can get all the TGTs you want over the
Internet.
• Solution: preauthentication
• The initial request includes a timestamp
encrypted with Kc
• It’s still verifiable plaintext, but collecting TGTs
becomes harder again
91
92
Other Protocols in Practice
• SSH
• TLS
• IPsec
93
Top 4 Forms of
Authentication Mechanisms
94
95
96
97
98
99
100