The 5G-AKA Authentication Protocol Privacy
Adrien Koutsos LVS, ENS Paris-Saclay January 18, 2019
Adrien Koutsos 5G-AKA Privacy January 18, 2019 1 / 43
The 5G-AKA Authentication Protocol Privacy Adrien Koutsos LVS, ENS - - PowerPoint PPT Presentation
The 5G-AKA Authentication Protocol Privacy Adrien Koutsos LVS, ENS Paris-Saclay January 18, 2019 Adrien Koutsos 5G-AKA Privacy January 18, 2019 1 / 43 1 The 4g - aka and 5g - aka Protocols The 4g - aka Protocol The imsi Catcher Attack The 5g
Adrien Koutsos 5G-AKA Privacy January 18, 2019 1 / 43
1 The 4g-aka and 5g-aka Protocols
2 The aka+ Protocol
3 Security Proofs
4 Conclusion
Adrien Koutsos 5G-AKA Privacy January 18, 2019 2 / 43
1 The 4g-aka and 5g-aka Protocols
2 The aka+ Protocol
3 Security Proofs
4 Conclusion
Adrien Koutsos 5G-AKA Privacy January 18, 2019 3 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 4 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 4 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 5 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 5 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 5 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 5 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 6 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 6 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 6 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 7 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 7 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 7 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 8 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 8 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 8 / 43
UE id, k, sqnu HN id, k, sqnn id
k(n) , H1 k(sqnn , n)
bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2
k(n)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (n) , H1,∗ k (sqnu , n)
sqnn ← sqnu + 1 bmac ∧ ¬bsqn Input x: nR, sqnR ← π1(x), π2(x) ⊕ H5
k(nR)
bmac ← H1
k(sqnR , nR) = π3(x)
bsqn ← range(sqnu, sqnR)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 9 / 43
UE id, k, sqnu HN id, k, sqnn id
k(n) , H1 k(sqnn , n)
bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2
k(n)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (n) , H1,∗ k (sqnu , n)
sqnn ← sqnu + 1 bmac ∧ ¬bsqn Input x: nR, sqnR ← π1(x), π2(x) ⊕ H5
k(nR)
bmac ← H1
k(sqnR , nR) = π3(x)
bsqn ← range(sqnu, sqnR)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 9 / 43
UE id, k, sqnu HN id, k, sqnn id
k(n) , H1 k(sqnn , n)
bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2
k(n)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (n) , H1,∗ k (sqnu , n)
sqnn ← sqnu + 1 bmac ∧ ¬bsqn Input x: nR, sqnR ← π1(x), π2(x) ⊕ H5
k(nR)
bmac ← H1
k(sqnR , nR) = π3(x)
bsqn ← range(sqnu, sqnR)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 9 / 43
UE id, k, sqnu HN id, k, sqnn id
k(n) , H1 k(sqnn , n)
bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2
k(n)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (n) , H1,∗ k (sqnu , n)
sqnn ← sqnu + 1 bmac ∧ ¬bsqn Input x: nR, sqnR ← π1(x), π2(x) ⊕ H5
k(nR)
bmac ← H1
k(sqnR , nR) = π3(x)
bsqn ← range(sqnu, sqnR)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 9 / 43
UE id, k, sqnu HN id, k, sqnn id
k(n) , H1 k(sqnn , n)
bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2
k(n)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (n) , H1,∗ k (sqnu , n)
sqnn ← sqnu + 1 bmac ∧ ¬bsqn Input x: nR, sqnR ← π1(x), π2(x) ⊕ H5
k(nR)
bmac ← H1
k(sqnR , nR) = π3(x)
bsqn ← range(sqnu, sqnR)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 9 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 10 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 10 / 43
UE id, tmp-id, k, sqnu HN id, tmp-id, k, sqnn tmp-id or id
k(n) , H1 k(sqnn , n)
bsqn ← check range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2
k(n)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (n) , H1,∗ k (sqnu , n)
sqnn ← sqnu + 1 bmac ∧ ¬bsqn assign-tmp-id
Adrien Koutsos 5G-AKA Privacy January 18, 2019 11 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 12 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 12 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 13 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 13 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 14 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 14 / 43
UE id, tmp-id, k, pkn, sqnu HN id, tmp-id, k, skn, sqnn tmp-id or {id}pkn
k(n) , H1 k(sqnn , n)
bsqn ← check range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2
k(n)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (n) , H1,∗ k (sqnu , n)
sqnn ← sqnu + 1 bmac ∧ ¬bsqn assign-tmp-id
Adrien Koutsos 5G-AKA Privacy January 18, 2019 15 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 16 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 16 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 16 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 17 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 17 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 17 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 17 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 17 / 43
k(n) , H1 k(sqnn , n)
k(n)
k (n) , H1,∗ k (sqnu , n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 18 / 43
k(n) , H1 k(sqnn , n)
k(n)
k (n) , H1,∗ k (sqnu , n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 18 / 43
k(n) , H1 k(sqnn , n)
k(n)
k (n) , H1,∗ k (sqnu , n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 18 / 43
k(n) , H1 k(sqnn , n)
k(n)
k (n) , H1,∗ k (sqnu , n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 18 / 43
k(n) , H1 k(sqnn , n)
k(n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 19 / 43
k(n) , H1 k(sqnn , n)
k(n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 19 / 43
k(n) , H1 k(sqnn , n)
k(n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 19 / 43
k(n) , H1 k(sqnn , n)
k(n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 19 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 20 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 20 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 20 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 20 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 20 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 20 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 21 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 21 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 21 / 43
1 The 4g-aka and 5g-aka Protocols
2 The aka+ Protocol
3 Security Proofs
4 Conclusion
Adrien Koutsos 5G-AKA Privacy January 18, 2019 22 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 23 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 24 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 24 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 24 / 43
UE(idt) HN tauth ≡
k(n) , H1 k(sqnn , n)
k(n)
UE(id′) Attacker tauth “Auth-Failure” If id′ = idt
k (n) , H1,∗ k (sqnu , n)
The Failure Message Attack UE(idt) HN {idt}pkn UE(id′) HN {id′}pkn
{idt}pkn tauth ≡
k(n) , H1 k(sqnn , n)
If id′ = idt H2
k(n)
If id′ = idt The Encrypted id Replay Attack
Adrien Koutsos 5G-AKA Privacy January 18, 2019 25 / 43
UE(idt) HN tauth ≡
k(n) , H1 k(sqnn , n)
k(n)
UE(id′) Attacker tauth “Auth-Failure” If id′ = idt
k (n) , H1,∗ k (sqnu , n)
The Failure Message Attack UE(idt) HN {idt}pkn UE(id′) HN {id′}pkn
{idt}pkn tauth ≡
k(n) , H1 k(sqnn , n)
If id′ = idt H2
k(n)
If id′ = idt The Encrypted id Replay Attack
Adrien Koutsos 5G-AKA Privacy January 18, 2019 25 / 43
UE(idt) HN tauth ≡
k(n) , H1 k(sqnn , n)
k(n)
UE(id′) Attacker tauth “Auth-Failure” If id′ = idt
k (n) , H1,∗ k (sqnu , n)
The Failure Message Attack UE(idt) HN {idt}pkn UE(id′) HN {id′}pkn
{idt}pkn tauth ≡
k(n) , H1 k(sqnn , n)
If id′ = idt H2
k(n)
If id′ = idt The Encrypted id Replay Attack
Adrien Koutsos 5G-AKA Privacy January 18, 2019 25 / 43
UE(idt) HN tauth ≡
k(n) , H1 k(sqnn , n)
k(n)
UE(id′) Attacker tauth “Auth-Failure” If id′ = idt
k (n) , H1,∗ k (sqnu , n)
The Failure Message Attack UE(idt) HN {idt}pkn UE(id′) HN {id′}pkn
{idt}pkn tauth ≡
k(n) , H1 k(sqnn , n)
If id′ = idt H2
k(n)
If id′ = idt The Encrypted id Replay Attack
Adrien Koutsos 5G-AKA Privacy January 18, 2019 25 / 43
km({id , sqnu}pkn , n)
HN tauth ≡
k(n) , H1 k(sqnn , n)
k(n)
UE(id′) Attacker tauth “Auth-Failure” If id′ = idt
k (n) , H1,∗ k (sqnu , n)
The Failure Message Attack UE(idt) HN {idt}pkn UE(id′) HN {id′}pkn
{idt}pkn tauth ≡
k(n) , H1 k(sqnn , n)
If id′ = idt H2
k(n)
If id′ = idt The Encrypted id Replay Attack
Adrien Koutsos 5G-AKA Privacy January 18, 2019 25 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 26 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 26 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 26 / 43
UEid stateid
u
HN staten n
pkn , Mac1 kid
m({id , sqnu}ne
pkn , n)
bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sqnu ≥ sqnid
n
if bInc then sqnid
n
← sqnu + 1 sessionid
n
← n tmp-idid
n ← tmp-id
Mac2
kid
m(n , sqnu + 1)
bMac if check-mac then authenticated HN
Adrien Koutsos 5G-AKA Privacy January 18, 2019 27 / 43
UEid stateid
u
HN staten n
pkn , Mac1 kid
m({id , sqnu}ne
pkn , n)
bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sqnu ≥ sqnid
n
if bInc then sqnid
n
← sqnu + 1 sessionid
n
← n tmp-idid
n ← tmp-id
Mac2
kid
m(n , sqnu + 1)
bMac if check-mac then authenticated HN
Adrien Koutsos 5G-AKA Privacy January 18, 2019 27 / 43
UEid stateid
u
HN staten n
pkn , Mac1 kid
m({id , sqnu}ne
pkn , n)
bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sqnu ≥ sqnid
n
if bInc then sqnid
n
← sqnu + 1 sessionid
n
← n tmp-idid
n ← tmp-id
Mac2
kid
m(n , sqnu + 1)
bMac if check-mac then authenticated HN
Adrien Koutsos 5G-AKA Privacy January 18, 2019 27 / 43
UEid stateid
u
HN staten tmp-idu valid-tmpu valid-tmpu ← false bid ← tmp-idid
n = tmp-idu = UnSet
if bid then tmp-idid
n ← UnSet
sessionid
n
← n
n ⊕ Hkid(n) , Mac3 kid
m(n , sqnid
n , tmp-idu)
bacc ← check-mac ∧ range(sqnu, sqnid
n )
if bacc then sqnu ← sqnu + 1 Mac4
kid
m(n)
bacc bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sessionid
n = n
if bInc then sqnid
n
← sqnid
n + 1
tmp-idid
n ← tmp-id
Adrien Koutsos 5G-AKA Privacy January 18, 2019 28 / 43
UEid stateid
u
HN staten tmp-idu valid-tmpu valid-tmpu ← false bid ← tmp-idid
n = tmp-idu = UnSet
if bid then tmp-idid
n ← UnSet
sessionid
n
← n
n ⊕ Hkid(n) , Mac3 kid
m(n , sqnid
n , tmp-idu)
bacc ← check-mac ∧ range(sqnu, sqnid
n )
if bacc then sqnu ← sqnu + 1 Mac4
kid
m(n)
bacc bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sessionid
n = n
if bInc then sqnid
n
← sqnid
n + 1
tmp-idid
n ← tmp-id
Adrien Koutsos 5G-AKA Privacy January 18, 2019 28 / 43
UEid stateid
u
HN staten tmp-idu valid-tmpu valid-tmpu ← false bid ← tmp-idid
n = tmp-idu = UnSet
if bid then tmp-idid
n ← UnSet
sessionid
n
← n
n ⊕ Hkid(n) , Mac3 kid
m(n , sqnid
n , tmp-idu)
bacc ← check-mac ∧ range(sqnu, sqnid
n )
if bacc then sqnu ← sqnu + 1 Mac4
kid
m(n)
bacc bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sessionid
n = n
if bInc then sqnid
n
← sqnid
n + 1
tmp-idid
n ← tmp-id
Adrien Koutsos 5G-AKA Privacy January 18, 2019 28 / 43
UEid stateid
u
HN staten tmp-idu valid-tmpu valid-tmpu ← false bid ← tmp-idid
n = tmp-idu = UnSet
if bid then tmp-idid
n ← UnSet
sessionid
n
← n
n ⊕ Hkid(n) , Mac3 kid
m(n , sqnid
n , tmp-idu)
bacc ← check-mac ∧ range(sqnu, sqnid
n )
if bacc then sqnu ← sqnu + 1 Mac4
kid
m(n)
bacc bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sessionid
n = n
if bInc then sqnid
n
← sqnid
n + 1
tmp-idid
n ← tmp-id
Adrien Koutsos 5G-AKA Privacy January 18, 2019 28 / 43
u
kid(n) , Mac5 kid
m(tmp-id , n)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 29 / 43
1 The 4g-aka and 5g-aka Protocols
2 The aka+ Protocol
3 Security Proofs
4 Conclusion
Adrien Koutsos 5G-AKA Privacy January 18, 2019 30 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 31 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 31 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 31 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 32 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 32 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 33 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 33 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 33 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 33 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 34 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 34 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 35 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 35 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 35 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 35 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 36 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 36 / 43
km( {id , sqnu}pkn , n)
τ
τ ) Adrien Koutsos 5G-AKA Privacy January 18, 2019 37 / 43
km( {id , sqnu}pkn , n)
τ
τ ) Adrien Koutsos 5G-AKA Privacy January 18, 2019 37 / 43
km( {id , sqnu}pkn , n)
τ
τ )
τ
τ ) Adrien Koutsos 5G-AKA Privacy January 18, 2019 37 / 43
km( {id , sqnu}pkn , n)
τ
τ (sqnu)}ne pkn
τ
τ )
τ
τ ) Adrien Koutsos 5G-AKA Privacy January 18, 2019 37 / 43
km( {id , sqnu}pkn , n)
τ
τ (sqnu)}ne pkn
τ ,
τ
kid
m(tenc
τ
τ ))
τ
τ )
τ
τ ) Adrien Koutsos 5G-AKA Privacy January 18, 2019 37 / 43
km( {id , sqnu}pkn , n)
τ
τ (sqnu)}ne pkn
τ ,
τ
kid
m(tenc
τ
τ ))
τ
τ (sqnid u ))
τ )
τ · σup τ
τ
τ ) Adrien Koutsos 5G-AKA Privacy January 18, 2019 37 / 43
u∈S s = Mackm(u)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 38 / 43
u∈S s = Mackm(u)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 38 / 43
u∈S s = Mackm(u)
m(t3)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 38 / 43
u∈S s = Mackm(u)
m(t3)
5G-AKA Privacy January 18, 2019 38 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 39 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 40 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 40 / 43
_ is ind-cca1.
Adrien Koutsos 5G-AKA Privacy January 18, 2019 40 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 41 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 41 / 43
u )
u ) − στ(sqnid n )
u )
u ) − στ(sqnidτ n )
Adrien Koutsos 5G-AKA Privacy January 18, 2019 41 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 42 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 42 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 42 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 42 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 42 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 43 / 43
Adrien Koutsos 5G-AKA Privacy January 18, 2019 1 / 11
Adrien Koutsos 5G-AKA Privacy January 18, 2019 2 / 11
Adrien Koutsos 5G-AKA Privacy January 18, 2019 3 / 11
UE id, tmp-id, k, sqnu HN id, tmp-id, k, sqnn tmp-id or id if tmp-id was used: tmp-id ← UnSet
k(n) , H1 k(sqnn , n)
nR, sqnR ← π1(x), π2(x) ⊕ H5
k(nR)
bmac ← H1
k(sqnR , nR) = π3(x)
bsqn ← range(sqnu, sqnR) sqnn ← sqnn + 1 sqnu ← sqnR H2
k(nR)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (nR) , H1,∗ k (sqnu , nR)
sqn∗
R ← π1(y) ⊕ H5,∗ k (n)
if H1,∗
k (sqn∗ R , n) = π2(y) then sqnn ← sqn∗ R + 1
bmac ∧ ¬bsqn
Adrien Koutsos 5G-AKA Privacy January 18, 2019 4 / 11
UE id, tmp-id, k, pkn, sqnu HN id, tmp-id, k, skn, sqnn tmp-id or {id}ne
pkn
if tmp-id was used: tmp-id ← UnSet
k(n) , H1 k(sqnn , n)
nR, sqnR ← π1(x), π2(x) ⊕ H5
k(nR)
bmac ← H1
k(sqnR , nR) = π3(x)
bsqn ← range(sqnu, sqnR) sqnn ← sqnn + 1 sqnu ← sqnR H2
k(nR)
bmac ∧ bsqn “Auth-Failure” ¬bmac
k (nR) , H1,∗ k (sqnu , nR)
sqn∗
R ← π1(y) ⊕ H5,∗ k (n)
if H1,∗
k (sqn∗ R , n) = π2(y) then sqnn ← sqn∗ R + 1
bmac ∧ ¬bsqn
Adrien Koutsos 5G-AKA Privacy January 18, 2019 5 / 11
UE stateid
u
HN(j) staten nj Input nR: b-authu ← nR
pkn , Mac1 kid
m({id , sqnu}ne
pkn , nR)
Input y: idR , sqnR ← dec(π1(y), skn) bid
Mac ← π2(y) = Mac1 kid
m(π1(y) , nj)
∧ idR = id bid
Inc ← bid Mac ∧ sqnR ≥ sqnid n
if bid
Mac then b-authj n, e-authj n ← id
if bid
Inc then sqnid n
← sqnR + 1 sessionid
n
← nj tmp-idid
n ← tmp-idj
Mac2
kid
m(nj , sqnR + 1)
bMac Input z: bok ← z = Mac2
kid
m(b-authu , sqnu)
e-authu ← if bok then b-authu else fail
Adrien Koutsos 5G-AKA Privacy January 18, 2019 6 / 11
UE(id) stateid
u
HN(j) staten tmp-idu valid-tmpu valid-tmpu ← false Input x: bid ← tmp-idid
n = x ∧ tmp-idid n = UnSet
if bid then tmp-idid
n ← UnSet
b-authj
n
← id sessionid
n
← nj
n ⊕ Hkid(nj) , Mac3 kid
m(nj , sqnid
n , tmp-idid n )
Input y: nR, sqnR ← π1(y), π2(y) ⊕ Hkid(nR) bacc ← π3(y) = Mac3
kid
m(nR , sqnR , tmp-idu))
∧ range(sqnu, sqnR) if bacc then b-authu, e-authu ← nR sqnu ← sqnu + 1 if ¬bacc then b-authu, e-authu ← fail Mac4
kid
m(nR)
bacc Input z: bid
Mac ← (b-authj n = id) ∧ (z = Mac4 kid
m(nj))
bid
Inc ← bid Mac ∧ sessionid n = nj
if bid
Mac then e-authj n
← id if bid
Inc
then sqnid
n
← sqnid
n + 1
tmp-idid
n ← tmp-idj
Adrien Koutsos 5G-AKA Privacy January 18, 2019 7 / 11
u
kid(nj) , Mac5 kid
m(
n = id
kid
m(e-authu)
kid
m(tmp-idR , e-authu)
Adrien Koutsos 5G-AKA Privacy January 18, 2019 8 / 11
Adrien Koutsos 5G-AKA Privacy January 18, 2019 9 / 11
Adrien Koutsos 5G-AKA Privacy January 18, 2019 10 / 11
Adrien Koutsos 5G-AKA Privacy January 18, 2019 11 / 11