An RFID Distance Bounding
Protocol
Gerhard P. Hancke and Markus G. Kuhn May 22, 2006
Distance bounding
Prover
d
Verifier
Places an upper bound on
physical distance
Does not provide absolute
location
Operates on physical
characteristics of the
communication medium.
Supplements existing security
mechanisms
RFID devices
Power Clock Token RFID RFID Reader DataVarious applications
Passive devices with low
resources
Limited range
Used to link an item or person
to a location
Relay attack
RFID Token Token Proxy Reader Proxy DataSimple, well known attack
Circumvents application layer
security protocols
Relay attack demonstration
Proxy Token
14443 A/B test card circuit Signal processing with
discrete components
Proxy Reader
Commercial reader module Reprogrammed with our firmware
Relay attack detection
Delay
Could be reduced with complex hardware
Cannot be less than 3 ns/m
Physical layer
High-resolution timing
Our Protocol
Goals
Suited to RFID environment
Verifier handles demanding processing functions Prover performs simple functions
Provide same level of security as other distance bounding
protocols
Should not be worse because it has hardware constraints
Implementation
Suggest practical ideas on how to implement our protocol Protocol should supplement current RFID standards, not
Protocol assumptions
Security target
Places an upper bound on the distance between Verifier
and Prover
Does not provide non-repudiation of location to a third
party
The Prover does not collude with an attacker
Crypto primitives
Protocol assumptions (2)
Time base
Verifier is computationally strong
Perform accurate timing operations
Prover is computationally weak
Cannot determine accurate timing information
Uses external clock signal (received carrier)
Prover can detect large deviations in clock frequency
Communication channels
Low bandwidth error corrected channel
Protocol description
Secret key
K
Verifier (RFID reader)
Function
h
Generate nonce
N
VN
VProver (RFID token)
Secret key
K
Functionh
Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
nGenerate nonce
N
VN
VProver (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
h
(
K, N
V) =
R
hC
ii
= 01001100
1 0 0 1 1 0 1 1←
R
0 0 1 1 1 0 1 1 0←
R
1Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
n Generate nonceN
VhC
ii
=
0
1001100
N
VC
1= 0
R
Ci i= 1
R
C1 1= 1
Prover (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
1 0 0 1 1 0 1 1←
R
0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 0←
R
1 1 1 1 0 1 1 0h
(
K, N
V) =
R
Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
nGenerate nonce
N
VN
VProver (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
h
(
K, N
V) =
R
1 0 0 1 1 0 1 1←
R
0 0 1 1 1 0 1 1 0←
R
1R
Ci i= 11
C
2= 1
R
C2 2= 1
1 1 0 1 1 0 0 1 1 0 1 1hC
ii
= 0
1
001100
Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
nGenerate nonce
N
VN
VProver (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
h
(
K, N
V) =
R
1 0 1 1 0R
Ci i= 110
C
3= 0
R
C3 3= 0
1 0 0 1 1 0 1 1←
R
0 0 1 1 1 0 1 1 0←
R
1 1 1 0 1 1hC
ii
= 01
0
01100
Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
nGenerate nonce
N
VN
VProver (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
h
(
K, N
V) =
R
R
Ci i= 1101
C
4= 0
R
C4 4= 1
0 1 1 0 1 0 1 1hC
ii
= 010
0
1100
1 0 0 1 1 0 1 1←
R
0 0 1 1 1 0 1 1 0←
R
1Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
nGenerate nonce
N
VN
VProver (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
h
(
K, N
V) =
R
R
C5 5= 0
C
5= 1
1 0 0 1 1 0 1 1←
R
0 1 1 0 0 1 1 0 1 1 1 0 1 1 0←
R
1R
Ci i= 11010
hC
ii
= 0100
1
100
Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
nGenerate nonce
N
VN
VProver (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
h
(
K, N
V) =
R
R
Ci i= 110101
C
6= 1
R
C6 6= 1
1 0 1 1hC
ii
= 01001
1
00
1 0 0 1 1 0 1 1←
R
0 0 1 1 1 0 1 1 0←
R
1Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
nGenerate nonce
N
VN
VProver (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
h
(
K, N
V) =
R
R
Ci i= 1101011
R
C7 7= 1
C
7= 0
0 0 1 1 1 0 1 1 0←
R
1 1 0 0 1 1 0 1 1←
R
0 1hC
ii
= 010011
0
0
Protocol description
Secret key
K
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
nGenerate nonce
N
VN
VProver (RFID token)
Secret key
K
Calculate SplitR
=
R
0||R
1 Functionh
h
(
K, N
V) =
R
R
C8 8= 1
C
8= 0
R
Ci i= 11010111
hC
ii
= 0100110
0
0 1 1 1 0 1 1 0←
R
1 1 0 0 1 1 0 1 1←
R
0Protocol description
Secret keyK
Functionh
N
V Secret keyK
Functionh
1 0 1 0 1 0 0 1←
R
0 1 0 1 0 0 1 1 0←
R
1hC
ii
= 01001100
C
iR
Ci i ExpectedR
iCi ReceivedR
Ci i 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 Verifier AttackerProtocol description
Secret keyK
Functionh
N
V Secret keyK
Functionh
1 1 0 1 1 0 1 1←
R
0 1 1 0 0 0 1 0 0←
R
1hC
ii
= 01001100
ExpectedR
iCi ReceivedR
Ci i 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 VerifierC
iR
Ci i Malicious ProverVerifier
↔
Malicious Prover
Protocol description
Functionh
hC
ii
= 01001100
ExpectedR
iCi 1 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 Verifier Secret keyK
N
V ReceivedR
Ci i Secret keyK
Functionh
AttackerN
VR
CiC
iA
CR
AC Functionh
Secret keyK
h
(
K, N
V) =
R
Prover 1 0 0 1 1 0 1 1←
R
0 0 1 1 1 0 1 1 0←
R
1 0 1 0 1 0 1 0 0R
1 1 0 0 0 1 0 0 1R
0Protocol description
Functionh
hC
ii
= 01001100
ExpectedR
iCi 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 Verifier Secret keyK
N
V ReceivedR
Ci i Secret keyK
Functionh
AttackerN
VR
Ci iC
iA
CR
ACN
VA
C¯R
AC¯ Functionh
Secret keyK
h
(
K, N
V) =
R
Proverh
(
K, N
V) =
R
1 0 0 1 1 0 1 1←
R
0 0 1 1 1 0 1 1 0←
R
1 0 1 1 1 1 0 1 0R
1 0 1 0 0 1 0 1 1R
0 0 1 1 1 0 1 1 0R
1 1 0 0 1 1 0 1 1R
0 0 1 1 1 0 1 1 0←
R
1 1 0 0 1 1 0 1 1←
R
0Overclocking attack
Protocol description
Prover (RFID token)
Secret key
K
Calculateh
(
K, N
V,
N
P) =
R
SplitR
=
R
0||R
1 Functionh
1 0 0 1 1 0 1 1←
R
0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 0←
R
1 1 1 1 0 1 1 0 Generate nonceN
P Secret keyK
Verifier (RFID reader)
Generate random bits Function
h
C
1, . . . , C
n Generate nonceN
VhC
ii
=
0
1001100
N
VN
PC
1= 0
R
Ci i= 1
R
C1 1= 1
Noise
Bit errors will probably occur on the rapid exchange channel
Accept if at least
k
bits out of
n
are correct
False accept: pFA = n X i=k n i · 3 4 i · 1 4 n−i False reject: pFR = k−1 X i=0 n i · (1 − ǫ)i · ǫn−i
Noise (2)
Example of parameter tradeoffs in the presence of noise
10−5 100 E E R — 100 200 300 400 k – –
Related work
t
m= 2
·
t
p+
t
dd
=
v
p·
t
m−
t
d2
t
m=
round trip timet
p=
one-way propagation timet
d=
processing delayd
=
distancev
p=
signal propagation speedDistance Bounding Protocols
Beth and Desmedt (1991)
Brands and Chaum (1993)
Brands and Chaum
C
iRi
commit(
m
)Verifier (RFID reader)
Generate random bits
C
1, . . . , C
nopen commit sign(
M
) Verify sign(M
)Verify commit
Prover (RFID token)
Generate random bits
m
1, . . . , m
nR
i=
C
i⊕
m
imessage
M
=
C
i|R
i|
. . .
|C
n|
R
nBrands and Chaum
C
iRi
commit(
m
)Verifier (RFID reader)
Generate random bits
C
1, . . . , C
nopen commit sign(
M
),C
,R
Verify sign(M
)Verify commit
Prover (RFID token)
Generate random bits
m
1, . . . , m
nR
i=
C
i⊕
m
imessage
M
=
C
i|R
i|
. . .
|C
n|
R
nAdditional commit and sign operations
Additional bits on slow channel
Performance vs Brands and Chaum
For EER = 10−4 and ǫ = 0.1
Assume bit exchange rate = fcarrier/4
Standard
Time (B and C)
Time (Our protocol)
n
= 70
n
= 360
15693 ‘fast’
5.3237 ms
0.1062 ms
26.4 kbp/s, 13.56 MHz
15693 ‘long’
21.1687 ms
0.1062 ms
Performance vs Brands and Chaum (2)
For EER = 10−10 and ǫ = 0.05
Assume bit exchange rate = fcarrier/4
Standard
Time (B and C)
Time (Our protocol)
n
= 125
n
= 440
15693 ‘fast’
9.5066 ms
0.1298 ms
26.4 kbp/s, 13.56 MHz
15693 ‘long’
37.8012 ms
0.1298 ms
6.62 kbp/s, 13.56 MHz
14443 A/B
2.3954 ms
0.1298 ms
106 kbp/s, 13.56 MHz
Positioning technology
Positioning Technology used today
Radio Frequency
Secure but complex
Ultrasound
Appear closer by relaying data with faster RF link
Received Signal Strength
Resolution
Estimate
r
≈
Bc, where
B
is the channel bandwidth
RFID communication inadequate
e.g. for ISO 14443 at 106 kbp/s, r ≈ 3 km
Ultra Wideband Pulses
Higher bandwidth equals better resolution
RFID implementation issues
Error free operation requires high resources e.g. synchronization, bit placement
Crude implementation possible but would allow bit errors Sufficient for bit exchange channel
Proposed bit exchange channel
Carrier wave
Use carrier for loose synchronization
e.g. Zero crossing
Proposed bit exchange channel
t
pCarrier wave
Challenge pulse
C
it
tt
rReader (Verifier) adjusts
t
tto match sampling delay
t
rin
Proposed bit exchange channel
t
p Carrier wave Response pulseR
Ci i Challenge pulseC
it
tt
dt
rProposed bit exchange channel
t
pt
p Carrier wave Response pulseR
Ci i Challenge pulseC
it
st
tt
dt
rd
=
c
·
(
t
s−
t
t−
t
d)
/
2
Conclusion
Few more bit exchanges to achieve same cryptographic
security
Chance of attacker guessing correct response 34 vs 12
Faster operation
Extra bits transmitted on faster bit exchange channel
Much less data transmitted on slow error corrected channel
Practical implementation suited for RFID
Low power and processing requirements for Prover
Future work
Practical implementation
Pseudorandom functions suited for RFID device Rapid bit exchange channel
UWB antennas for card form factor
Mutual distance bounding protocol
For applications where illegitimate reading attempts are more common e.g e-Passports