Zoom Logo

Secure Data Storage - WG - Shared screen with speaker view
Dmitri Zagidulin
02:57
agenda/attendance: https://hackmd.io/QhJCRlTvQ9qr7FsWL_-FXg
Orie Steele (Transmute)
05:07
Welcome ForgeRock!
Juan Caballero
05:13
"Legacy?" You guys look great for your age!
Dmitri Zagidulin
05:20
https://hackmd.io/QhJCRlTvQ9qr7FsWL_-FXg
Manu Sporny
05:30
/me's face melts.
Manu Sporny
06:36
q+ to provide some reasoning why this might help us choose something.
Adrian Gropper
07:16
need video of face meling
Dmitri Zagidulin
07:17
Authorization scheme selection criteriaie What features and use cases will an EDV authorization scheme need to support?Criteria to start the conversation:What language are we going to use to discuss Proof of Cryptographic Possession / Cryptographic Invocation (examples DPOP in OAuth2.0 vs ZCAP cryptographic invocation)need to agree on the languageneed to agree on if it’s a required selection criteriaDelegation (multi-step delegation, with attenuation)need a good clear example of why delegation might be usefulStructured Scopes (whatever authorization token we settle on should specify resource / action etc). (Like the structured scopes in auth.xyz)as opposed to: OAuth2’s flat freeform scopesReplication / Portability(if my Vault is replicated, so should the permissions)
Dmitri Zagidulin
07:29
(hmm that did not paste gracefully)
Dmitri Zagidulin
09:28
q+ to add
Adrian Gropper
09:39
What’s D-POP
Manu Sporny
10:05
q+ to note use terminology from specific specs yet... handwave around terminology a bit for high-level.
Orie Steele (Transmute)
10:29
DPOP is like HTTP Signatures, but with no digest of the post body….
Orie Steele (Transmute)
10:41
Which I have no idea why…
Dmitri Zagidulin
10:44
DPOP - Demonstration of Proof of Possession
Orie Steele (Transmute)
11:00
Agree with manu
tobiaslooker
11:07
q+
Orie Steele (Transmute)
11:11
Lets just say “does the caller need a private key"
Orie Steele (Transmute)
11:16
q+
Orie Steele (Transmute)
11:48
q-
Adrian Gropper
12:25
q+ to ask about registration
Dave Longley
12:30
"each authorization requires the use of cryptographic material"
Orie Steele (Transmute)
12:46
^
Manu Sporny
12:57
^ dlongley's description works for me too
Evan Tedesco
13:09
DPOP: https://datatracker.ietf.org/doc/draft-ietf-oauth-dpop/
Dave Longley
13:30
q+
tobiaslooker
13:34
@dlongley that doesn’t go far enough for me though as an access_token features a digital signature which is crypto material?
Manu Sporny
14:03
yes, but not for "each"
Andreas Freund
14:06
the cryptographic material needs to represent a cryptographic binding
Andreas Freund
14:28
or contain
tobiaslooker
14:47
Yes ^ there is a cryptographic binding established to the authorised client which must be proved when the client invokes / makes a request
tobiaslooker
15:20
s/proved/invoked ..?
Andreas Freund
15:23
^ is a prerequisite
Andreas Freund
16:20
there has to be an action before the cryptographic material is generated that established the bidning
Orie Steele (Transmute)
16:36
+1 to NOT requiring everything to be registered
Orie Steele (Transmute)
16:46
And supporting decentralized delegation
Dave Longley
16:58
+1 yes, not requiring *everything* to be registered is preferred by me
tobiaslooker
17:25
Can we clarify what we mean by registered? E.g registered with who?
Juan Caballero
17:35
^thank you +1
Adrian Gropper
17:37
q+
Andreas Freund
17:51
I did not mean registered … just that authirzation was given through a binding
tobiaslooker
18:15
q+
Dave Longley
18:16
Some "root" cryptographic material must be registered with the EDV. From there -- if that material is used to delegate access to other parties, those other parties will not necessarily need to register their material.
Orie Steele (Transmute)
18:19
Registration != authentication != authorization
Andreas Freund
18:38
+1 orie
Andreas Freund
19:17
@dave -- the decision point might not be in the EDV but just the enforcement point
Dave Longley
19:35
@Andreas -- yes, I expect the EDV to only be an enforcement point
Manu Sporny
19:35
yes
Orie Steele (Transmute)
19:37
yes
Orie Steele (Transmute)
20:09
q+
Adrian Gropper
21:00
What’s decentralized delegation?
Orie Steele (Transmute)
21:06
PROPOSAL: The authorization system MUST NOT support decentralized delegation.
Dave Longley
21:10
-1
Manu Sporny
21:11
-1
Evan Tedesco
21:13
-1
Orie Steele (Transmute)
21:13
-1
Dmitri Zagidulin
21:18
-1
Martin Riedel
21:34
-1
Adrian Gropper
22:10
q+
Dave Longley
22:16
And, additionally, those parties can further delegate to other parties as well.
Juan Caballero
22:44
I feel a little negged, even
Adrian Gropper
22:51
-1
Orie Steele (Transmute)
23:11
PROPOSAL: The authorization system MUST support decentralized delegation.
Juan Caballero
23:14
bro, do you even decentralize?
Manu Sporny
23:16
+1
Dave Longley
23:17
+1
Orie Steele (Transmute)
23:20
+1
Evan Tedesco
23:21
+1
Martin Riedel
23:24
+1
Adrian Gropper
23:24
+1
tobiaslooker
23:25
+1
Dmitri Zagidulin
23:27
+1
Andreas Freund
23:28
+1
tobiaslooker
23:31
q+
Juan Caballero
24:16
q+ just to ask on a scale from 1 to 10 how hard it is to do decentralized delegation in, say, OIDC as it stands today?
Manu Sporny
24:21
q+
Adrian Gropper
24:33
q+ to answer Juan
Juan Caballero
24:35
q- tobias just did it
Dmitri Zagidulin
24:46
@Juan - OIDC does not really do delegation in the way you're thinking
tobiaslooker
25:40
Can you attenuated delegation?
tobiaslooker
25:51
*do attenuated delegation
Orie Steele (Transmute)
26:17
+1 to what Manu just said
Dave Longley
26:17
If there are multiple keys to choose from to begin with, you can share just some of them
Dave Longley
26:58
^tobias --- there are ways to do it without requiring proof of possession, not saying they are great.
Andreas Freund
26:58
attenuate = reduced in force, effect, or physical thickness.
Orie Steele (Transmute)
27:12
PROPOSAL: The authorization mechanism MUST NOT rely on SOME FORM or Proof of Possession
Orie Steele (Transmute)
27:26
q+ to intro proposal
Manu Sporny
28:27
-1
Dave Longley
28:28
-1
Juan Caballero
28:31
must not rely on ANY ONE form or ANY form ?
tobiaslooker
28:36
Could we do Cryptographic proof of possession?
Orie Steele (Transmute)
28:40
-1
Martin Riedel
28:41
-1
tobiaslooker
28:46
q+
Andreas Freund
28:47
-1
Adrian Gropper
29:12
-1
tobiaslooker
29:20
-1
Martin Riedel
29:43
Orie are you always choosing a negative form of formulating a proposal to account for some kind of bias? —> MUST NOT :)
Orie Steele (Transmute)
29:46
PROPOSAL: The authorization mechanism MUST rely on SOME FORM or Proof of Possession
Martin Riedel
29:52
+1
Evan Tedesco
29:54
+1
Manu Sporny
29:55
+1
Dave Longley
29:58
+1
Orie Steele (Transmute)
30:00
Cryptographic proof of posession
Orie Steele (Transmute)
30:01
+1
tobiaslooker
30:06
+1
Adrian Gropper
30:07
+1
Orie Steele (Transmute)
30:28
q+ to answer marit
Dmitri Zagidulin
30:30
+1
Orie Steele (Transmute)
30:33
martin
tobiaslooker
31:29
q+
Juan Caballero
31:52
From Andreas Freund to Everyone: 10:26 PMattenuate = reduced in force, effect, or physical thickness.
Dave Longley
31:58
to reduce in force (here it means to reduce authority)
Dmitri Zagidulin
32:16
q+
Dave Longley
32:21
an example: you have the authority to read and write an EDV document, and you can delegate the ability *just* to read to someone else
Orie Steele (Transmute)
32:27
q+ to explain the care example
Orie Steele (Transmute)
32:31
car
Dmitri Zagidulin
32:37
q-
Martin Riedel
33:13
q+
Dave Longley
33:26
seems like a serious trust problem there, tobias.
Manu Sporny
33:34
man, what a terrible relationship Tobias has with his girlfriend!? Don't trust her to drive around the block.
tobiaslooker
33:34
:)
Manu Sporny
33:48
:P
tobiaslooker
34:17
q+
Manu Sporny
34:17
Character assassination on Tobias by Orie... you saw it here, folks. :P
Juan Caballero
34:20
transitive delegation?
Dave Longley
35:21
q+
Manu Sporny
35:53
it just leads to password sharing.
Dave Longley
36:08
q- kaliya said it.
tobiaslooker
36:09
Exactly
Manu Sporny
36:15
+1 to what Kaliya said!
Dave Longley
36:23
+1 to Kaliya
Manu Sporny
36:31
I've shared so many tokens just today, because I can't delegate.
tobiaslooker
36:32
100% kaliya
tobiaslooker
36:45
Perfect explaination
Martin Riedel
36:48
thanks. so we generally WANT to allow transitive delegation
Dave Longley
36:54
yes
Manu Sporny
36:59
I've given perfect strangers my credit card when ordering food at a restaurant! Crazy!
Adrian Gropper
37:00
q+
Dave Longley
37:00
ha, yes to Martin :)
Orie Steele (Transmute)
37:01
Yes, someone make a proposal
tobiaslooker
37:25
I think the recognition is if we don’t support it explicitly delegation will still happen
Orie Steele (Transmute)
37:33
^correct
tobiaslooker
37:59
q+
Rouven Heck
38:01
I think that we soon should build systems, which prevent anyone to see or be able to share a private key
Rouven Heck
38:09
all in hardware...
Manu Sporny
38:24
PROPOSAL: The Authorization mechanisms this group will consider MUST NOT allow for delegation.
Dave Longley
38:24
PROPOSAL: The authorization system MUST include a mechanism for attenuated delegation of authority.
Orie Steele (Transmute)
38:41
Lets do the NOT first.
Orie Steele (Transmute)
38:49
PROPOSAL: The Authorization mechanisms this group will consider MUST NOT allow for delegation.
Dave Longley
38:49
yes, let's do the NOT first
Dmitri Zagidulin
38:56
Manu - er wait, that was our first Proposal, from Orie
Orie Steele (Transmute)
39:02
sorry
Dmitri Zagidulin
39:04
as in, the first proposal in this call, was exactly that
Orie Steele (Transmute)
39:05
Chairs fix this
Manu Sporny
39:20
my bad
Dmitri Zagidulin
39:26
no worries
Manu Sporny
39:36
I meant attentuation
Orie Steele (Transmute)
39:42
PROPOSAL: The authorization system MUST NOT include a mechanism for attenuated delegation of authority.
Martin Riedel
40:05
-1
Dave Longley
40:06
-1
Manu Sporny
40:09
-1
Orie Steele (Transmute)
40:11
-1
Kaliya Identity Woman
40:11
-1
Adrian Gropper
40:11
-1
tobiaslooker
40:13
-1
Evan Tedesco
40:14
-1
Dmitri Zagidulin
40:19
-1
Michael Shea
40:28
-1
Orie Steele (Transmute)
40:32
PROPOSAL: The authorization system MUST include a mechanism for attenuated delegation of authority.
Orie Steele (Transmute)
40:35
+1
Evan Tedesco
40:38
+1
Manu Sporny
40:39
+1
Martin Riedel
40:43
+1
Adrian Gropper
40:48
+1
Michael Shea
40:49
+1
Dave Longley
40:50
+1
tobiaslooker
41:01
+1
Dave Longley
41:19
q+
Orie Steele (Transmute)
42:41
PROPOSAL: the authorization system MUST NOT integrity check the entire HTTP request.
Manu Sporny
42:49
Delegation-by-feather-caps.
tobiaslooker
42:55
Haha
Adrian Gropper
42:58
q+
Orie Steele (Transmute)
43:00
q+
tobiaslooker
43:05
@Dave is this not defining the authorisation scheme?
Dave Longley
43:20
@tobias -- I don't think so, I'm just trying to reduce scope.
tobiaslooker
43:29
As that sets forth the granularity of which authority can be granted?
Adrian Gropper
43:40
good riddance OAuth2
Manu Sporny
43:45
haha
Dave Longley
44:05
q+ to respond
Manu Sporny
44:07
we've got a group of anti-establishment rebels in this group...
Manu Sporny
44:23
the Empire won't be pleased.
Martin Riedel
44:43
q+
Rouven Heck
44:57
haha
tobiaslooker
45:07
Can you give a concrete example @Dave?
Dmitri Zagidulin
45:44
q+
Manu Sporny
46:09
the one that is the MUST
Dave Longley
46:13
it's for the MUST
Manu Sporny
46:14
it's a great question.
Juan Caballero
46:16
is per-resource attenuation a must, for example?
Dave Longley
46:20
great question though, yes.
Manu Sporny
46:27
I'd be a -1 for /every/
Dave Longley
46:28
because if it's not a MUST you can do whatever you want.
Michael Shea
46:40
Elon MUST?
Manu Sporny
46:50
haha
Kaliya Identity Woman
46:51
lol
Manu Sporny
47:02
err
Manu Sporny
47:20
/me gonna +1 this one...
Dmitri Zagidulin
47:53
PROPOSAL: the authorization system MUST NOT integrity check the entire HTTP request.
Manu Sporny
47:56
+1
Orie Steele (Transmute)
47:57
-1
Orie Steele (Transmute)
48:00
oops
Adrian Gropper
48:01
+0 Don’t understand HTTP-specific
Dmitri Zagidulin
48:05
-1
Manu Sporny
48:16
impossible to achieve
Manu Sporny
48:17
q+
Dave Longley
48:21
-1 you may or you may not
Adrian Gropper
48:34
+0
Dave Longley
48:40
(depends on the particular HTTP request)
Manu Sporny
50:04
PROPOSAL: The authorization system MUST NOT integrity check the parts of the HTTP request that critical to the security of the operation being performed.
Orie Steele (Transmute)
50:08
-1
Dave Longley
50:12
-1
Dmitri Zagidulin
50:15
q+ to give context
Adrian Gropper
50:19
-1
Dave Longley
50:24
(and an http body too)
tobiaslooker
50:32
-1
tobiaslooker
50:34
q+
Manu Sporny
50:37
-1
Dave Longley
50:59
tobias is on the queue
Manu Sporny
51:21
... long ago, when the Internet was forming out of the primordial goo that was ENIAC...
tobiaslooker
52:42
PROPOSAL: The authorization system MUST NOT require integrity checking of HTTP requests
Manu Sporny
52:51
-1
Dave Longley
52:57
-1
tobiaslooker
53:03
-1
Adrian Gropper
53:07
-1
Evan Tedesco
53:08
-1
Martin Riedel
53:13
-1
Michael Shea
53:13
-1
Orie Steele (Transmute)
53:17
-1
Manu Sporny
53:57
/me Tobias should do the counter proposal as well...
Orie Steele (Transmute)
54:20
q+
Dave Longley
54:55
PROPOSAL: The authorization system MUST integrity check all parts of the HTTP request that are critical to the security of the operation being performed.
Orie Steele (Transmute)
55:16
+1
Manu Sporny
55:18
+1 (relevant headers and body)
Dave Longley
55:20
+1
tobiaslooker
55:23
+1
Dmitri Zagidulin
55:23
+1
Adrian Gropper
55:24
+1
Martin Riedel
55:32
+1
Evan Tedesco
55:34
+1
Michael Shea
55:36
+1
Dave Longley
55:59
tried to cover "relevant headers and body" with "parts" (so i agree)
tobiaslooker
56:10
Essentially where those *critical parts* are yet to be concretely defined?
Orie Steele (Transmute)
56:12
q+ to ask for a list of choices that meet our current criteria?
Manu Sporny
56:51
/me feels like he's in a twilight zone episode that is going to end soon... everyone was agreeing, but it didn't really happen, and you now have to encode everything the group decided in ASN.1 using big-endian signalling.
tobiaslooker
57:06
Haha!
Dmitri Zagidulin
57:10
YESSS ASN.1 !!
Dave Longley
57:26
The intent of the sender must not be able to be changed (tamper evident)
tobiaslooker
57:41
+1 to Daves sentiment
Manu Sporny
57:48
isn't that the same as integrity checking?
Orie Steele (Transmute)
57:53
It is
Dave Longley
58:03
yes... :)
tobiaslooker
58:07
q+
Manu Sporny
58:18
repudiation vs. integrity?
Orie Steele (Transmute)
58:34
^ thats a good option
Manu Sporny
58:35
did we agree to digital signatures?
Orie Steele (Transmute)
58:39
We did not
Dave Longley
58:40
well, i dont' think we got to (non-)repudiation yet
Dmitri Zagidulin
59:00
all those are on the menu for later discussion!
Manu Sporny
59:18
agree
Orie Steele (Transmute)
59:28
“Authentication” != “Integrity checking"
Manu Sporny
01:00:17
/me is shocked.
Kaliya Identity Woman
01:00:23
Go team
Evan Tedesco
01:00:27
:)