You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

109 lines
3.7 KiB

  1. ======================
  2. Third Party Identities
  3. ======================
  4. A description of how email addresses, mobile phone numbers and other third
  5. party identifiers can be used to authenticate and discover users in Matrix.
  6. Overview
  7. ========
  8. New users need to authenticate their account. An email or SMS text message can
  9. be a convenient form of authentication. Users already have email addresses
  10. and phone numbers for contacts in their address book. They want to communicate
  11. with those contacts in Matrix without manually exchanging a Matrix User ID with
  12. them.
  13. Third Party IDs
  14. ---------------
  15. [[TODO(markjh): Describe the format of a 3PID]]
  16. Third Party ID Associations
  17. ---------------------------
  18. An Associaton is a binding between a Matrix User ID and a Third Party ID (3PID).
  19. Each 3PID can be associated with one Matrix User ID at a time.
  20. [[TODO(markjh): JSON format of the association.]]
  21. Verification
  22. ------------
  23. An Assocation must be verified by a trusted Verification Server. Email
  24. addresses and phone numbers can be verified by sending a token to the address
  25. which a client can supply to the verifier to confirm ownership.
  26. An email Verification Server may be capable of verifying all email 3PIDs or may
  27. be restricted to verifying addresses for a particular domain. A phone number
  28. Verification Server may be capable of verifying all phone numbers or may be
  29. restricted to verifying numbers for a given country or phone prefix.
  30. Verification Servers fulfil a similar role to Certificate Authorities in PKI so
  31. a similar level of vetting should be required before clients trust their
  32. signatures.
  33. A Verification Server may wish to check for existing Associations for a 3PID
  34. before creating a new Association.
  35. Discovery
  36. ---------
  37. Users can discover Associations using a trusted Identity Server. Each
  38. Association will be signed by the Identity Server. An Identity Server may store
  39. the entire space of Associations or may delegate to other Identity Servers when
  40. looking up Associations.
  41. Each Association returned from an Identity Server must be signed by a
  42. Verification Server. Clients should check these signatures.
  43. Identity Servers fulfil a similar role to DNS servers.
  44. Privacy
  45. -------
  46. A User may publish the association between their phone number and Matrix User ID
  47. on the Identity Server without publishing the number in their Profile hosted on
  48. their Home Server.
  49. Identity Servers should refrain from publishing reverse mappings and should
  50. take steps, such as rate limiting, to prevent attackers enumerating the space of
  51. mappings.
  52. Federation
  53. ==========
  54. Delegation
  55. ----------
  56. Verification Servers could delegate signing to another server by issuing
  57. certificate to that server allowing it to verify and sign a subset of 3PID on
  58. its behalf. It would be necessary to provide a language for describing which
  59. subset of 3PIDs that server had authority to validate. Alternatively it could
  60. delegate the verification step to another server but sign the resulting
  61. association itself.
  62. The 3PID space will have a heirachical structure like DNS so Identity Servers
  63. can delegate lookups to other servers. An Identity Server should be prepared
  64. to host or delegate any valid association within the subset of the 3PIDs it is
  65. resonsible for.
  66. Multiple Root Verification Servers
  67. ----------------------------------
  68. There can be multiple root Verification Servers and an Association could be
  69. signed by multiple servers if different clients trust different subsets of
  70. the verification servers.
  71. Multiple Root Identity Servers
  72. ------------------------------
  73. There can be be multiple root Identity Servers. Clients will add each
  74. Association to all root Identity Servers.
  75. [[TODO(markjh): Describe how clients find the list of root Identity Servers]]