Bob chooses a random challenge, which he sends to Alice
Alice computes and sends to Bob
Bob computes and if , Bob "accepts"
Flow Diagram:
Alice Bob
1. <-------- r --------
2. y = MAC(r) --------─ y -------->
3. y = MAC(r)?
What if you ask Bob to verify his identify against the same random challenge ?
Attacking Protocol 1: Parallel Session Attacks
Session 1
Oscar Bob
1. <-------- r --------
Session 2
Bob Oscar
1. <-------- r --------
2. y = MAC(r) --------─ y --------> scheme broken
Session 1
Oscar Bob
2. y --------─ y --------> accept
Attacking Protocol 1: Parallel Session Attacks
Session 1: Oscar <---r--- Bob
↓
+-----+
│ r | (same challenge)
+-----+
↓
Session 2: Oscar ----r---> Bob
|
+------y----+
↓
+-----+
│ y | (Bob's MAC)
+-----+
↓
Session 1: Oscar ----r---> Bob (ACCEPT)
More than just a secure algorithm is required
Protocol 2: (Secure) Identity-Bound Challenge and Response
Bob chooses a random challenge, which he sends to Alice
Alice computes and sends to Bob
Bob computes and if , Bob "accepts"
Flow Diagram:
Alice Bob
1. <-------- r --------
2. y = MAC(id(alice)||r) --------─ y -------->
3. y = MAC(id(alice)||r)?
No longer weak to parallel session attacks! But is it secure against other attacks?
Proving Security of Protocol 2
Assumptions:
secret key: is known only to Alice and Bob
random challenges: 's are perfectly random and of bits
MAC security: Assume the MAC is secure, i.e.
there does NOT exist a forger for the MAC, where
is the maximum probability that Oscar can compute
even when given known message codes for
Proof Idea:
There are only 3 cases where was computed before being used in this session
by Alice in a previous session. But is random and this would mean it was reused
by Oscar without knowing what is, this will have a very small probability of being correct
by Bob in a previous session: but Bob will only compute so he can't have computed , so we will ignore this case
Proof:
previously computed by Alice
was reused from one of the previous sessions, the probability of this happening is
Proof:
has been forged by Oscar
the MAC is secure
thus the probability of a successful forgery is
Thus we can conclude
if is an secure message authentication code, and suppose random challenges are bits in length. Then Protocol 2 is a secure identification scheme
Attacking Protocol 2: Intruder-in-the-middle
Alice Oscar Bob
1. <---------r------- <-----------r----------
2. y = MAC(ID(alice)||r) ----------y-------> ------------y---------->
3. accept
However in this scenario Oscar is passive and we do not consider this interaction to be insecure.
If Oscar was considered to be active, he would
carry out an information-gathering phase
then try to exploit this information and deceive Alice/Bob
This attack model would still have the same security analysis
Mutual Authentication
When opening a new channel of communication, both Alice and Bob must authenticate themselves to each other.
random challenges: 's are perfectly random and of bits
MAC security: Assume the MAC is secure, i.e.
there does NOT exist a forger for the MAC, where
is the maximum probability that Oscar can compute
even when given known message codes for
Proof Idea:
There are only 3 cases where a valid tag (y₁ or y₂) could have been computed before being used in the current session:
By Alice or Bob in a previous session:
This would require the same pair of random challenges (r₁, r₂) to be reused.Since both challenges are fresh and uniformly random, the probability of this happening is extremely small.
By Oscar without knowing what is, this will have a very small probability of being correct
By the honest partner in this session:
This is expected behaviour, Alice and Bob compute and verify their own tags, so this case is ignored.
Given a secure MAC algorithm, protocol 4 is a secure mutual identification scheme