Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak,...

23
Anonymous Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Mutual Chip Authentication Lucjan Hanzlik, Kamil Kluczniak , Lukasz Krzywiecki, Miroslaw Kutylowski Wroclaw University of Technology Wroclaw, Poland ACS, TRUSTCOM 2013, Melbourne

Transcript of Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak,...

Page 1: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski Mutual Chip Authentication

Lucjan Hanzlik, Kamil Kluczniak, Łukasz Krzywiecki,Mirosław Kutyłowski

Wrocław University of TechnologyWrocław, Poland

ACS, TRUSTCOM 2013, Melbourne

Page 2: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

Introduction

Personal identity cards - eIDstrong cryptographic authentication.wireless communication.

AdvantagesProtection against forgeries.Remote authentication.

E.g.: new German identity card (Personalausweis).

Page 3: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

Extended Access Control (EAC)

GoalAuthenticated key exchange between a chip and a terminal.

Part 1: Terminal AuthenticationAuthentication of an ephemeral key from the terminal.The ephemeral key is signed by the terminal.

Part 2: Chip authenticationDerivation of a session key.Authentication of the chip by proving the knowledge ofa DH secret key.

Page 4: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

EAC

Chip TerminalxC - private, xT - signing key,yC = gxC - public, yT - verification key,cert(yC) cert(yT )

Terminal auth

verify certificatecert(yT )←−−−−− choose xep at random

choose rAyep←−− yep := gxep

rA−→ s := SigxT (rA||yep)

verify s with yTs←−

Chip authcert(yC )−−−−−→ verify certificate

K := yxCep K := yxep

CKA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)KC := H(K , 3) KC := H(K , 3)

rB := MACKC(cT )

rB−→ verify tag with KCKsession := (KA,KB) Ksession := (KA,KB)

Page 5: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

EAC

Chip Terminal

xC - private, xT - signing key,

yC = gxC - public, yT - verification key,

cert(yC) cert(yT )Terminal auth

verify certificatecert(yT )←−−−−− choose xep at random

choose rAyep←−− yep := gxep

rA−→ s := SigxT (rA||yep)

verify s with yTs←−

Chip authcert(yC )−−−−−→ verify certificate

K := yxCep K := yxep

CKA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)KC := H(K , 3) KC := H(K , 3)

rB := MACKC(cT )

rB−→ verify tag with KCKsession := (KA,KB) Ksession := (KA,KB)

Page 6: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

EAC

Chip TerminalxC - private, xT - signing key,yC = gxC - public, yT - verification key,cert(yC) cert(yT )

Terminal auth

verify certificate cert(yT )←−−−−−choose xep at random

choose rAyep←−− yep := gxep

rA−→ s := SigxT (rA||yep)

verify s with yTs←−

Chip authcert(yC )−−−−−→ verify certificate

K := yxCep K := yxep

CKA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)KC := H(K , 3) KC := H(K , 3)

rB := MACKC(cT )

rB−→ verify tag with KCKsession := (KA,KB) Ksession := (KA,KB)

Page 7: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

EAC

Chip TerminalxC - private, xT - signing key,yC = gxC - public, yT - verification key,cert(yC) cert(yT )

Terminal auth

verify certificatecert(yT )←−−−−−

choose xep at random

choose rAyep←−− yep := gxep

rA−→s := SigxT (rA||yep)

verify s with yTs←−

Chip authcert(yC )−−−−−→ verify certificate

K := yxCep K := yxep

CKA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)KC := H(K , 3) KC := H(K , 3)

rB := MACKC(cT )

rB−→ verify tag with KCKsession := (KA,KB) Ksession := (KA,KB)

Page 8: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

EAC

Chip TerminalxC - private, xT - signing key,yC = gxC - public, yT - verification key,cert(yC) cert(yT )

Terminal auth

verify certificatecert(yT )←−−−−− choose xep at random

choose rAyep←−− yep := gxep

rA−→s := SigxT (rA||yep)

verify s with yTs←−

Chip authcert(yC )−−−−−→ verify certificate

K := yxCep K := yxep

CKA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)KC := H(K , 3) KC := H(K , 3)

rB := MACKC(cT )

rB−→ verify tag with KCKsession := (KA,KB) Ksession := (KA,KB)

Page 9: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

EAC

Chip TerminalxC - private, xT - signing key,yC = gxC - public, yT - verification key,cert(yC) cert(yT )

Terminal auth

verify certificatecert(yT )←−−−−− choose xep at random

choose rAyep←−− yep := gxep

rA−→ s := SigxT (rA||yep)

verify s with yTs←−

Chip auth

cert(yC )−−−−−→ verify certificate

K := yxCep K := yxep

CKA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)KC := H(K , 3) KC := H(K , 3)

rB := MACKC(cT )

rB−→ verify tag with KCKsession := (KA,KB) Ksession := (KA,KB)

Page 10: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

EAC

Chip TerminalxC - private, xT - signing key,yC = gxC - public, yT - verification key,cert(yC) cert(yT )

Terminal auth

verify certificatecert(yT )←−−−−− choose xep at random

choose rAyep←−− yep := gxep

rA−→ s := SigxT (rA||yep)

verify s with yTs←−

Chip authcert(yC )−−−−−→ verify certificate

K := yxCep K := yxep

C

KA := H(K , 1), KA := H(K , 1),

KB := H(K , 2) KB := H(K , 2)

KC := H(K , 3) KC := H(K , 3)

rB := MACKC(cT )

rB−→ verify tag with KCKsession := (KA,KB) Ksession := (KA,KB)

Page 11: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

EAC

Chip TerminalxC - private, xT - signing key,yC = gxC - public, yT - verification key,cert(yC) cert(yT )

Terminal auth

verify certificatecert(yT )←−−−−− choose xep at random

choose rAyep←−− yep := gxep

rA−→ s := SigxT (rA||yep)

verify s with yTs←−

Chip authcert(yC )−−−−−→ verify certificate

K := yxCep K := yxep

CKA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)KC := H(K , 3) KC := H(K , 3)

rB := MACKC(cT ) rB−→ verify tag with KC

Ksession := (KA,KB) Ksession := (KA,KB)

Page 12: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

Privacy problems

Terminalstrong evidence of terminal’s presencethe chip can send an x chosen by a third party andthen returns a terminal’s signature of x .the certificates are transmitted in clear, an observergets information who it talking with the terminal

Goalmake interaction between the chip and the terminalanonymous for an observer,preserve simplicity,provable key security and provable anonymity.

Page 13: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

AMA - Protocol Description

Alice BobxA - private, xB - private,yA = gxA , cert(yA) yB = gxB , cert(yB)random a at random chose b at random

hA := H(a) hB := H(b)

cA := ghAcA−→ cB := ghB

cB←−K := chA

B K := chAB

KA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)K ′

A := H(K , 3), K ′A := H(K , 3),

K ′B := H(K , 4) K ′

B := H(K , 4)

rA := H(cxAB ,K ′

A)EncKA

(cert(yA),rA)−−−−−−−−−−−→ check cert(yA)

rA 6= H(yhBA ,K ′

A)EncKB

(cert(yB),rB)←−−−−−−−−−−− rB := H(cxB

A ,K ′B)

check cert(yB)rB 6= H(yB ,K ′

B)Ksession := H(K , 5) Ksession := H(K , 5)

Page 14: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

AMA - Protocol Description

Alice Bob

xA - private, xB - private,yA = gxA , cert(yA) yB = gxB , cert(yB)random a at random chose b at random

hA := H(a) hB := H(b)

cA := ghAcA−→ cB := ghB

cB←−K := chA

B K := chAB

KA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)K ′

A := H(K , 3), K ′A := H(K , 3),

K ′B := H(K , 4) K ′

B := H(K , 4)

rA := H(cxAB ,K ′

A)EncKA

(cert(yA),rA)−−−−−−−−−−−→ check cert(yA)

rA 6= H(yhBA ,K ′

A)EncKB

(cert(yB),rB)←−−−−−−−−−−− rB := H(cxB

A ,K ′B)

check cert(yB)rB 6= H(yB ,K ′

B)Ksession := H(K , 5) Ksession := H(K , 5)

Page 15: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

AMA - Protocol Description

Alice BobxA - private, xB - private,yA = gxA , cert(yA) yB = gxB , cert(yB)

random a at random chose b at randomhA := H(a) hB := H(b)cA := ghA cA−→ cB := ghB

cB←−K := chA

B K := chAB

KA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)K ′

A := H(K , 3), K ′A := H(K , 3),

K ′B := H(K , 4) K ′

B := H(K , 4)

rA := H(cxAB ,K ′

A)EncKA

(cert(yA),rA)−−−−−−−−−−−→ check cert(yA)

rA 6= H(yhBA ,K ′

A)EncKB

(cert(yB),rB)←−−−−−−−−−−− rB := H(cxB

A ,K ′B)

check cert(yB)rB 6= H(yB ,K ′

B)Ksession := H(K , 5) Ksession := H(K , 5)

Page 16: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

AMA - Protocol Description

Alice BobxA - private, xB - private,yA = gxA , cert(yA) yB = gxB , cert(yB)random a at random chose b at randomhA := H(a) hB := H(b)

cA := ghAcA−→ cB := ghB

cB←−K := chA

B K := chAB

KA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)K ′

A := H(K , 3), K ′A := H(K , 3),

K ′B := H(K , 4) K ′

B := H(K , 4)rA := H(cxA

B ,K ′A)

EncKA(cert(yA),rA)

−−−−−−−−−−−→ check cert(yA)

rA 6= H(yhBA ,K ′

A)EncKB

(cert(yB),rB)←−−−−−−−−−−− rB := H(cxB

A ,K ′B)

check cert(yB)rB 6= H(yB ,K ′

B)Ksession := H(K , 5) Ksession := H(K , 5)

Page 17: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

AMA - Protocol Description

Alice BobxA - private, xB - private,yA = gxA , cert(yA) yB = gxB , cert(yB)random a at random chose b at random

hA := H(a) hB := H(b)

cA := ghAcA−→ cB := ghB

cB←−K := chA

B K := chAB

KA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)K ′

A := H(K , 3), K ′A := H(K , 3),

K ′B := H(K , 4) K ′

B := H(K , 4)rA := H(cxA

B ,K ′A)

EncKA(cert(yA),rA)

−−−−−−−−−−−→check cert(yA)

rA 6= H(yhBA ,K ′

A)EncKB

(cert(yB),rB)←−−−−−−−−−−− rB := H(cxB

A ,K ′B)

check cert(yB)rB 6= H(yB ,K ′

B)Ksession := H(K , 5) Ksession := H(K , 5)

Page 18: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

AMA - Protocol Description

Alice BobxA - private, xB - private,yA = gxA , cert(yA) yB = gxB , cert(yB)random a at random chose b at random

hA := H(a) hB := H(b)

cA := ghAcA−→ cB := ghB

cB←−K := chA

B K := chAB

KA := H(K , 1), KA := H(K , 1),KB := H(K , 2) KB := H(K , 2)K ′

A := H(K , 3), K ′A := H(K , 3),

K ′B := H(K , 4) K ′

B := H(K , 4)

rA := H(cxAB ,K ′

A)EncKA

(cert(yA),rA)−−−−−−−−−−−→ check cert(yA)

rA 6= H(yhBA ,K ′

A)EncKB

(cert(yB),rB)←−−−−−−−−−−− rB := H(cxB

A ,K ′B)

check cert(yB)

rB 6= H(yB ,K ′B)

Ksession := H(K , 5) Ksession := H(K , 5)

Page 19: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

Privacy

Transcript indistiguishabilityA communication transcript is undistinguishable fromrandom values.Certificates are hidden from an eavesdropper, he doesnot know the identity of the communicating parties.It is still true if an adversary gets a batch ofcommunication transcripts.

SimultabilityHolding only the certificate (public key) of a user, wecan generate the transcript with the same probabilitydistribution.A communication transcript cannot be used as a proof,for third parties, that a particular user has participatedin the communication.

Page 20: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

Security

Long-term secret key leakageIf the long term secret keys of both parties leak, then apassive adversary still has negligible advantage to learn thesecret key.

Ephemeral key leakageIf the ephemeral keys of both parties leak, then an activeadversary still has negligible advantage to learn the secretkey.

Page 21: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

Efficiency and Implementation

EfficiencyEAC AMA

Exponentiations on chip 1 + certver + signver 4 + certver

Exponentiations on terminal 2 + signgen + certver 4 + certver

Communication rounds 2 2

ImplementationPrototype implementation on Standard Java Card(Gemalto MultiApp ID V2.1)Average execution time for 500 tests:

1.261 seconds - secp192r1 elliptic curve1.602 seconds - secp256r1 elliptic curve

Page 22: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

Conclusions

Anonymous Mutual Authentication (AMA)Symmetric.Secure in Real-or-Random model.Simultable.Identities of protocol participants are hidden fromeavesdroppers.As efficient as EAC.

Page 23: Mutual Chip Authentication - kutylowski.im.pwr.wroc.pl · Mutual Authentication Hanzlik, Kluczniak, Krzywiecki, Kutylowski Introduction Personal identity cards - eID strong cryptographic

AnonymousMutual

Authentication

Hanzlik,Kluczniak,Krzywiecki,Kutylowski

The End

Thanks for your attention.

Acknowledgment. We thank Gemalto company for thetechnical support.