-
Notifications
You must be signed in to change notification settings - Fork 412
MSC4161: Crypto terminology for non-technical users #4161
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
base: main
Are you sure you want to change the base?
Changes from 17 commits
5f08ae9
32f386b
cd26b70
a7b5a77
a79b289
89412cc
d15576e
af70e43
720cdeb
de285aa
57fc5c1
a4b95b4
0499900
b919630
007a15f
45928bb
3a2d012
56b5daf
fba4f5c
9246021
0c9d812
705f7bb
4bcee33
f654c2e
3c7695f
7a789c5
3ed51ec
b44397b
04df819
bdbd7b4
7a9a84b
c13bd45
d087885
a938372
9cacbe7
0a449f6
f4de07d
2954056
ecfd1ad
6754d25
00993d9
2f2c745
bb56dff
4a943ef
8ede8fc
d68f033
0cc24c5
ba56376
b7f3f8b
9976599
40c268d
cc83a41
30acaac
38e2f25
fa893e1
d7ed82b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
turt2live marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,310 @@ | ||||||
# MSC4161: Crypto terminology for non-technical users | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let me start with the positive note - I believe that, at this stage in Matrix evolution, this initiative is very worth while. I think that we need to unify and clean up the language used throughout Matrix, and that is not specific to the cryptography part. That being said, I think we have to answer a fundamental question before we go for this. This is one of the first, if not the first, MSC that entirely focuses on recommendations to user interfaces and user experience rather than APIs and call flows. If we are to enter the UI/UX guidelines territory, I would prefer that we first agree whether the SCT remit and capability extends there, and how far. A few comments below have what I think needs further discussion. TL;DR (but please respond under specific comments):
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't see this MSC as a comprehensive document really covering the ground - and that's fine. I don't believe we should even focus on cryptography, it's just one of more technically advanced areas where we ended up exposing too much of protocol internals to the users. I'm totally happy to start with this but I don't want this MSC to be the start and the end. It would be great to see more effort, from the entire community, on improving UX in Matrix for different user categories. It would be disappointing if this MSC becomes a lonely shot in the direction of UI/UX guidelines. I don't have a clear path but I know it should be more than an appendix, linked to from the CS API spec. We'll probably have to do some advocacy to raise awareness; we'll also need to think about i18n and l10n to extend good wording to other languages than English (we have prior experience on that!); probably there are more areas. I recognise that everybody signals There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure we at SCT have experience and expertise on the subject. Being one of those covering the clients domain area, I may have to go for some research and self-education before I can responsibly make decisions on this. And/or we might have to call someone in who has appropriate background. Fortunately, Matrix is used by some UI-conscious communities (GNOME, in particular) so we might not need to search too far away. This is especially critical given how much bike-shedding this subject may cause - particularly around the words and phrases shown in the UI. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Speaking of this MSC: I would appreciate having more external references. So far the MSC looks like a result of the original research breaking new ground, with minimal prior art. There's probably just a couple of places where other platforms are mentioned, and there are no references to decentralised platforms like E-mail or Web (GMail is not decentralised). It would be great to make sure at least some research has been done if we are to officially endorse specific terms. For example: next to others, I'm not a fan of "devices", I really believe it's a misnomer we borrowed from centralised mobile-first platforms. I can still grudgingly accept it if we couldn't find a better alternative. But the only discussed alternative was "session", which I agree is (even) weaker. I was surprised that "clients" (taken from e-mail), or "applications/apps" (desktop and mobile environments) are not even namechecked. Or consider "identity" - I don't know if it's good or bad because I don't see the research behind the choice. I only know it's difficult to translate it to Russian and a few other Slavic languages and, separately, that it confused me when I stumbled on "the identity has changed" wording in WhatsApp. Maybe there's something better, maybe there isn't - it's not clear from the MSC. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can adjust phrases but the fundamental vocabulary is not something we can "iterate" easily on; once end users (especially non-technical) get used to it, they won't appreciate changes if/when we discover that something doesn't really work. I would suggest that we actually spec the glossary, leaving specific phrases to a lighter "implementation guide" kind of a document. The implication here is that the glossary is something we actively promote as the standard way to express things in Matrix (and tbh I would really consider it being universal, without "technical/non-technical" separation), while the phrases would be a sort of reference for client authors that we can change quicker, probably without MSCs. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This is a very good point. I have attempted to provide some external references in 38e2f25 - if you like the general style of this I can try to do it for some other words. In some cases I think what we are doing in the MSC is just standardising words that are already in use, so maybe the references should rather be to existing Matrix clients - what do you think? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
We could definitely do a split like this if there is support for it. So far I have thought of what we are doing as a glossary, with the words in bold as normative, and the additional words used for explanation of the glossary, not necessarily an implementation guide. So I am not yet personally convinced that we need a split, but maybe we could make it clearer that the examples are for explanation purposes? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I'd certainly welcome input from people with other expertise - this is so far mainly constructed from observing words already in use in multiple Matrix clients, and with expert input from product management and design professionals within Element. We have made adjustments based on input from other clients and community members too, but have not managed to get a huge amount of engagement. However, I'd be keen not to add an impossible barrier to this MSC. Even if it needs improvements later (which I agree could be painful) I think it can improve the lives of users soon after it is merged, and if it is never merged we will never see those improvements. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I believe MSC4270 is an attempt to address this comment by establishing a context within which this MSC can be applied. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Thanks, I added more alternatives in fa893e1 . I personally don't think there are better words than "device", but we can try! btw I'm not sure how "devices" is related to being centralised? (I do see how it's from mobile-first platforms, and I think we should embrace that a little since it is how so many people engage with messaging.) |
||||||
|
||||||
## Background | ||||||
|
||||||
Matrix makes use of advanced cryptographic techniques to provide secure | ||||||
messaging. These techniques often involve precise and detailed language that is | ||||||
unfamiliar to non-technical users. | ||||||
|
||||||
This document provides a list of concepts and explanations that are intended to | ||||||
be suitable for use in Matrix clients that are aimed at non-technical users. | ||||||
|
||||||
Ideally, encryption in Matrix should be entirely invisible to end-users (much as | ||||||
WhatsApp or Signal users are not exposed to encryption specifics). This | ||||||
initiative is referred to as "Invisible Cryptography" and is tracked as: | ||||||
|
||||||
* [MSC4153](https://github.com/matrix-org/matrix-spec-proposals/pull/4153) - | ||||||
Exclude non-cross-signed devices, | ||||||
* [MSC4048](https://github.com/matrix-org/matrix-spec-proposals/pull/4048) - | ||||||
Authenticated key backup, | ||||||
* [MSC4147](https://github.com/matrix-org/matrix-spec-proposals/pull/4147) - | ||||||
Including device keys with Olm-encrypted events, and | ||||||
* MSC4161 - this document | ||||||
|
||||||
## Goals | ||||||
|
||||||
We hope that Matrix client developers will like the terms and wording we | ||||||
provide, and adapt their user interfaces and documentation to use them. (If this | ||||||
MSC is accepted, Element will use it as a reference for English wording in its | ||||||
clients.) | ||||||
andybalaam marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
||||||
Where concepts and terms exactly match existing terms in the Matrix spec, we | ||||||
propose changing the spec to use the terms from this document. Where they do not | ||||||
match, we are very comfortable with different words being used in the spec, | ||||||
given it is a highly technical document, as opposed to a client user interface. | ||||||
|
||||||
|
||||||
We hope that this MSC will: | ||||||
|
||||||
* Cause small changes in the spec (as described in the previous paragraph), and | ||||||
* Become an appendix in the spec, with a description that makes clear that the | ||||||
intended audience is different from most of the spec, meaning different words | ||||||
are used from the main spec body. | ||||||
andybalaam marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
||||||
Clients may, of course, choose to use different language. Some clients may | ||||||
deliberately choose to use more technical language, to suit the profiles of | ||||||
their users. This document is aimed at clients targeting non-technical users. | ||||||
turt2live marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure that the proposed language is actually aimed solely at non-technical users. I'm sure it will bring better Matrix experience to technical users who haven't seen the protocol specifications, just as well. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree, but I want to make sure the scope of this document is as clear as possible, to avoid unnecessary debate about issues that are more technical than the issues addressed here. |
||||||
|
||||||
Where changes are made in the spec, we suggest that notes be added mentioning | ||||||
the old name, as in [this | ||||||
example](https://github.com/matrix-org/matrix-spec/pull/1819/files#diff-8b25d378e077f18eb06ebdb9c376e194c8a4c8b95cf909fca6448659a627f283R1326). | ||||||
|
||||||
## Proposal | ||||||
|
||||||
When communicating about cryptography with non-technical users, we propose using | ||||||
the following terms and concepts. | ||||||
andybalaam marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
||||||
### Devices | ||||||
andybalaam marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
||||||
Instances of a client are called 'devices' (not 'sessions'). Aligned with | ||||||
|
Instances of a client are called 'devices' (not 'sessions'). Aligned with | |
Instances of a client are preferably called 'devices' (or 'sessions' as a second choice). Aligned with |
The spec would then use devices
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated this MSC here 00993d9 with similar language to the above, with a slightly more even-handed wording. Given the strength of feeling on this issue I don't want to describe 'sessions' as a second choice, but rather an alternative.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implementation requirements (in my opinion):
The research may be done through studies or deployment to a portion of the user base with analytics to show "easier" use of the app.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having discussed this briefly with the SCT, the actual implementation requirements are more along the lines of requiring Element to implement this MSC. This is because of the client's large user base, allowing us to determine if the terms appeal to users in that kind of environment.
Other clients can and should implement this MSC still, however. Those implementation would further add data to the terms proposed in this MSC, either favourably or otherwise :)