Integrating DAGA into the cothority framework and using it to build a login service
DEDIS, EPFL 2018/19 - Lucas Pires Responsible: Prof. Bryan Ford, Dr. Ewa Syta Supervisor: Linus Gasser
1
Integrating DAGA into the cothority framework and using it to build - - PowerPoint PPT Presentation
Integrating DAGA into the cothority framework and using it to build a login service DEDIS, EPFL 2018/19 - Lucas Pires Responsible: Prof. Bryan Ford, Dr. Ewa Syta Supervisor: Linus Gasser 1 Integrating DAGA into the cothority framework and
DEDIS, EPFL 2018/19 - Lucas Pires Responsible: Prof. Bryan Ford, Dr. Ewa Syta Supervisor: Linus Gasser
1
Deniable Anonymous Group Authentication
2
3
4
5 Properties Description Big picture
6
6
Entity / user
6
Anytrust servers Entity / user
6
Anytrust servers Entity / user Group
Decision
7
Anytrust servers Entity / user
Group
Decision
7
Anytrust servers Entity / user
Group
Decision
8
Entity / user
Group
Decision Anytrust servers
+ Linkage Tag
9
Group
Decision Entity / user Anytrust servers
+ Linkage Tag
10
Group
Decision Anytrust servers Entity / user
+ Linkage Tag
11
Verifiers Prover Context
Build request / client’s protocol
Adapted / redrawn from https://github.com/dedis/student_17/blob/master/pfs_pop/presentation_pfs_pop.pdf
11
Verifiers Prover Context
Build request / client’s protocol Initial tag
Adapted / redrawn from https://github.com/dedis/student_17/blob/master/pfs_pop/presentation_pfs_pop.pdf
11
Verifiers Prover Context
Build request / client’s protocol Initial tag Proof generation
Adapted / redrawn from https://github.com/dedis/student_17/blob/master/pfs_pop/presentation_pfs_pop.pdf
Distributed randomness / challenge generation ∑ Challenge ∑ commitments
11
Verifiers Prover Context
Build request / client’s protocol Initial tag Proof generation
Adapted / redrawn from https://github.com/dedis/student_17/blob/master/pfs_pop/presentation_pfs_pop.pdf
Distributed randomness / challenge generation ∑ Challenge ∑ commitments Request (with ∑ responses) Servers’ protocol Collective proof verification, decision and Tag building Linkage tag
12
13
(context generation / challenge generation / DAGA servers’ protocol)
14
(context generation / challenge generation / DAGA servers’ protocol)
15 DAGA Cothority
16
Client / 3rd party service admin 1) Collect public keys of subscribers 2) Build a roster of willing conodes (partnerships or open access nodes)
Administrative phase
16
Client / 3rd party service admin
Context generation protocol Random node
1) Collect public keys of subscribers 2) Build a roster of willing conodes (partnerships or open access nodes) 3) Call CreateContext(keys, roster)
Administrative phase Other nodes
16
Client / 3rd party service admin Context
Context generation protocol Random node
1) Collect public keys of subscribers 2) Build a roster of willing conodes (partnerships or open access nodes) 3) Call CreateContext(keys, roster)
Administrative phase Other nodes New Cothority For the new context
Entity
Build auth. Message M Initial tag Proof generation challenge generation protocol ∑ Challenge Call Auth(M, ) Servers’ protocol Linkage tag
DAGA cothority
Call PKClient(∑ commitments, )
DAGA context Need to keep state across endpoint calls ➔ avoid by storing it in clients
18
(context generation / challenge generation / DAGA servers’ protocol)
19
2) Local Setup:
1) DETERLab Setup:
Local DETERLab Wall time [s] Number of group members Number of group members
20
Taken from https://github.com/dedis/student_17/blob/master/pfs_pop/presentation_pfs_pop.pdf
Original paper (2014) Previous student
21
Wall time [s] Local 4 servers Local 16 servers Number of group members Number of group members
22
Traffic [KiB]
Previous student’s results
23
(context generation / challenge generation / DAGA servers’ protocol)
24
25
DAGA cothority Entity / user
25
DAGA cothority Entity / user Service Provider
25
DAGA cothority Entity / user Service Provider
25
DAGA cothority Entity / user Service Provider
Authentication Delegation Protocol
26
RP IdP
26
RP
GET rp/login
IdP
26
RP
GET IdP/daga_auth REDIRECT IdP/daga_auth GET rp/login
IdP
26
RP
IdP authenticates user-agent GET IdP/daga_auth REDIRECT IdP/daga_auth 200 authentication page GET rp/login GET rp/callback with code REDIRECT rp/callback with code
IdP
26
RP
IdP authenticates user-agent GET IdP/daga_auth REDIRECT IdP/daga_auth 200 authentication page GET rp/login GET rp/callback with code POST IdP/token_endpoint with code 200 token REDIRECT rp/callback with code
IdP
27
RP IdP
GET IdP/daga_auth REDIRECT IdP/daga_auth 200 authentication page GET rp/login
27
RP IdP
GET IdP/daga_auth REDIRECT IdP/daga_auth 200 authentication page GET rp/login
27
RP IdP
DAGA client daemon Browser / WEB UI REDIRECT IdP/daga_auth 200 authentication page GET rp/login GET IdP/daga_auth
28
RP IdP
DAGA client daemon Browser / WEB UI
28
RP IdP
DAGA client daemon Browser / WEB UI Arguments, context + key
28
RP IdP
DAGA client daemon Browser / WEB UI Arguments, context + key Call PKClient(commitments) Challenge
28
RP IdP
DAGA client daemon Browser / WEB UI Arguments, context + key Call PKClient(commitments) Challenge Auth. Msg
28
RP IdP
DAGA client daemon Browser / WEB UI Arguments, context + key Call PKClient(commitments) Challenge Auth. Msg POST back with Auth. msg
28
RP IdP
DAGA client daemon Browser / WEB UI Arguments, context + key Call PKClient(commitments) Challenge Auth. Msg POST back with Auth. msg Call Auth(Auth. msg) Linkage Tag
28
RP IdP
DAGA client daemon Browser / WEB UI Arguments, context + key Call PKClient(commitments) Challenge Auth. Msg POST back with Auth. msg Call Auth(Auth. msg) Linkage Tag GET rp/callback with code REDIRECT rp/callback with code
28
RP IdP
DAGA client daemon Browser / WEB UI Arguments, context + key Call PKClient(commitments) Challenge Auth. Msg POST back with Auth. msg Call Auth(Auth. msg) Linkage Tag GET rp/callback with code POST IdP/token_endpoint with code 200 token REDIRECT rp/callback with code
29
30
30
30
30
31
Taken from https://github.com/dedis/student_17/blob/master/pfs_pop/report_pfs_pop.pdf
32
Local 8 servers, linear Local 8 servers, linear
33