Skip to content

Commit 9c728d5

Browse files
authored
Update 3967-device-signing-upload-uia.md
1 parent 5bcf40b commit 9c728d5

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

proposals/3967-device-signing-upload-uia.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,22 @@ issue with respect to setting up cross-signing.
2323

2424
## Proposal
2525

26-
For the `POST /_matrix/client/v3/keys/device_signing/upload` endpoint the
27-
Homeserver should only require User-Interactive Authentication (UIA) if the user
28-
already has an existing cross-signing master key uploaded to the Homeserver.
26+
For the `POST /_matrix/client/v3/keys/device_signing/upload` endpoint, the
27+
Homeserver MUST require User-Interactive Authentication (UIA) _unless_:
28+
- there is no existing cross-signing master key uploaded to the Homeserver, OR
29+
- there is an existing cross-signing master key and it exactly matches the
30+
cross-signing master key provided in the request body. If there are any additional
31+
keys provided in the request (self signing key, user signing key) they MUST also
32+
match the existing keys stored on the server. In other words, the request contains
33+
no new keys. If there are new keys, UIA MUST be performed.
34+
35+
In these scenarios, this endpoint is not protected by UIA. This means the client does not
36+
need to send an `auth` JSON object with their request.
37+
38+
This change allows clients to freely upload 1 set of keys, but not modify/overwrite keys if
39+
they already exist. By allowing clients to upload the same set of keys more than once, this
40+
makes this endpoint idempotent in the case where the response is lost over the network, which
41+
would otherwise cause a UIA challenge upon retry.
2942

3043
## Potential issues
3144

0 commit comments

Comments
 (0)