Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Future Proposal for Cryptographic Challenge Login Flow and E2E Key Backup Recovery #3793

Closed
ara4n opened this issue Oct 18, 2018 · 3 comments
Labels
kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. obsolete A proposal which has been overtaken by other proposals proposal A matrix spec change proposal

Comments

@ara4n
Copy link
Member

ara4n commented Oct 18, 2018

Documentation: https://docs.google.com/document/d/1QXMJmLiRWQxZOlynVVk99KhumlM7-7bTrGatBG0AQfU/edit#heading=h.apnhwogtw3jb

I'm recording this as a (very rough and ready, and not yet markdown) MSC in order to capture it, even though the conclusion is consciously to postpone it until a later date.

@ara4n ara4n added the proposal A matrix spec change proposal label Oct 18, 2018
@uhoreg
Copy link
Member

uhoreg commented Jan 29, 2019

Given that cross-signing is going to require people to type in a passphrase to unlock the self-signing key, and the self-signing key is exactly the right shape to do a cryptographic challenge for logging in, I'm wondering if we should take a look at this again.

@turt2live turt2live added the kind:feature MSC for not-core and not-maintenance stuff label Apr 20, 2020
@uhoreg
Copy link
Member

uhoreg commented May 16, 2020

There's a bunch of prior art that we can look at, such as SCRAM or PAKE. There are also some fairly simplistic protocols that are at least better than what we currently have.

In addition to preventing the server from seeing the password, some potentially nice things to have are:

  • allowing the user to authenticate the server. This is a feature of SCRAM, where the user can make sure that the server they're talking to is the server that had previously been given information about their password (i.e. either the server they had previously registered with, or a server that somehow knew their password)
  • generating a key with which requests can be signed. This means that a leaked access token would not result in an account getting pwned, since the attacker would also need to forge signatures on the request. There are probably many details that need to be worked out here.

One big potential pitfall is that if a user logs in using a client that doesn't support this new protocol, then their password will be sent to the server anyways.

@turt2live turt2live added the needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. label Jun 8, 2021
@richvdh richvdh transferred this issue from matrix-org/matrix-spec-proposals Mar 1, 2022
@richvdh
Copy link
Member

richvdh commented Mar 2, 2022

I think this has been superceded by MSC2957, MSC3262 and MSC3265.

@richvdh richvdh closed this as completed Mar 2, 2022
@ara4n ara4n transferred this issue from matrix-org/matrix-spec May 9, 2022
@turt2live turt2live added the obsolete A proposal which has been overtaken by other proposals label Jul 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. obsolete A proposal which has been overtaken by other proposals proposal A matrix spec change proposal
Projects
None yet
Development

No branches or pull requests

5 participants