Add security considerations

pull/3239/head
Will Hunt 3 years ago
parent cb7bbf3787
commit 03491c5cfd

@ -82,7 +82,28 @@ create more work for all parties involved for little benefit.
## Security considerations
None
Appservices could use this new functionality to generate devices for any userId that are within it's namespace e.g. setting the
user namespace regex to `@.*:example.com` would allow appservice to control anyone on the homeserver. While this sounds scary, in practise
this is not a problem because:
- Appservice namespaces are mainained by the homeserver admin. If the namespace were to change, then it's reasonable
to assume that the server admin is aware. There is no defense mechanism to stop a malicious server admin from creating new
devices for a given user's account as they could also do so by simply modifying the database.
- While an appservice *could* try to masquerade as a user maliciously without the server admin expecting it, it would still
be bound by the restrictions of the namespace. Server admins are expected to be aware of the implications of adding new
appservices to their server so the burden of responsibility lies with the server admin.
- Appservices already can /sync as any user using the `as_token` and send any messages as any user in the namespace, the only
difference is that without a dedicated access token they are unable to receive device messages. While in theory this
does make them unable to see encrypted messages, this is not designed to be a security mechanism.
- An appservice trying to log in as a user will always create a new device, which means the user would be informed of the
new device on their existing sessions. It should be very obvious if a malicous appservice is creating new devices on your account.
In conclusion this MSC only automates the creation of new devices for users inside an AS namespace, which is something
a server admin could already do. Appservices should always be treated with care and so with these facts in mind the MSC should
be considered secure.
## Unstable prefix

Loading…
Cancel
Save