-
Notifications
You must be signed in to change notification settings - Fork 4
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
feat: identity verification spec #41
base: master
Are you sure you want to change the base?
Conversation
**sending identity verification requests:** | ||
|
||
- A user MUST only be able to send an identity verification request to a mutual contact | ||
- The challenge question MUST BE at least 1 character |
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.
what minimum do we want here, the design clearly implies it's more than 0 since it's greyed out otherwise.
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.
@iurimatias good question! Should also apply to sending a contact request. Will discuss with Kuba, then will update the designs to include this.
|
||
**general:** | ||
|
||
- Any profile MAY BE marked as untrustworthy |
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.
in the design mark untrustworthy is greyed out after an verify identity request is sent. does that mean that this statement is in fact not true when ther is an ongoing identity verification request?
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 understood it in a way... any contact whose identity verification is not fully completed may be marked as "untrustworthy", but in case if you're waiting for a response from a contact who is mutual contact and marked as "untrustworthy" in the moment you're verifying his answer and click on "Confirm Identity" button, that contact will be marked as verified contact and in the same time his "untrustworthy" mark will be removed (in this case, visually... instead of 2 icons contact+exclamation mark icons next to the user, will be only one set, checkmark icon).
the design has a rename button, is that for local usernames? |
|
||
### Respond to identity verification request | ||
|
||
1. System notifies user of an identity verification request |
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.
System notifies user of an identity verification request via both an ephemeral notification and a persistent notification in the activity center
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.
Once system receives a signal about ID request, depends on "Notifications & Sounds" settings a contact receiving the ID request has set, the app will display appropriate notification (os notification and/or ephemeral notification and/or activity center notification or nothing).
**general:** | ||
|
||
- Any profile MAY BE marked as untrustworthy | ||
- A profile marked as untrustworthy MAY HAVE the untrustworthy mark removed |
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 don't fully understand this line - a profile the user has marked as untrustworty will only have the untrustworthy mark removed if the user clicks on the option to remove it. There are now other scenarios in with the untrustworthy mark will be removed
- Any profile MAY BE marked as untrustworthy | ||
- A profile marked as untrustworthy MAY HAVE the untrustworthy mark removed | ||
- A user MUST confirm the removal of an identity verification status | ||
- A profile added as a contact and marked as trusthworthy CANNOT be blocked |
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 think it would be more correct to say "in order for a profile that is a mutual contact to be blocked, the user must first un-mutually contact (remove the mutual contact) from that profile before blocking that profile. The untrustworthy mark isn't affected by this interaction, and doesn't impact this interaction in any way
|
||
1. User selects a contact | ||
2. User prompts to verify identity | ||
3. Users writes a challenge question or request (for e.g something only the real person would know, or some action that only that person would be able to perform) |
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.
If Status Desktop implements the sending of voice messages, wouldn't that be the most friction-less way to verify the identity of a contact?
We could still combine it with a challenge/response but for most relationships just hearing the voice of your contact would be enough.
- The reply to challenge question MUST BE at least 1 character | ||
- The reply to challenge question MUST BE at most 280 characters | ||
- The reply to challenge question MUST BE composed of only printable ascii characters | ||
- The user MUST BE able to refuse verification of an identity verification request |
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.
@John-44 if an user refuses a verification request, can he receive another verification request immediatly? or there would be a cool-off period before an user is able to send another verification request to the same user?
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.
@richard-ramos there isn't any cool-off period after an identity verification request is declined before a user is able to send another identity verification request. This is because identity verification requests can only be sent to mutual contacts, so if somebody starts spamming a mutual contact with identity verification requests, the mutual contact (probably after telling them to f-off and stop bothering them!) can just un-friend the person who sending them these identity verification requests.
|
||
### Ask to verify identity | ||
|
||
prequisite: user has been added as a contact. |
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.
User must be mutual contact before we initiate "identity verification process", that means not only that we need to add him, but also he must accept our contact request before we send ID request.
2. User prompts to verify identity | ||
3. Users writes a challenge question or request (for e.g something only the real person would know, or some action that only that person would be able to perform) | ||
4. User sends the request to the contact, and waits for a response | ||
5. System notifies the identity verification has received a response (e.g see Activity Center Spec) |
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.
Once receiver of the ID request answers or change previously sent answer, appropriate signal will be received on the side of the sender. Since we don't have particular setting just for "response on ID request" and since we shouldn't follow setting for "Identity Verification Requests" from the "Notifications & Sounds" settings, we should display notification in activity center and os or ephemeral notification in all cases if "Allow Notifications" in "Notifications & Sounds" settings is enabled.
3. Users writes a challenge question or request (for e.g something only the real person would know, or some action that only that person would be able to perform) | ||
4. User sends the request to the contact, and waits for a response | ||
5. System notifies the identity verification has received a response (e.g see Activity Center Spec) | ||
6. User selects the identity verification notification item |
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.
User should be able to verify the answer of the contact responding to an ID request from the following places:
- from activity center (if an item was previously added to AC, depends on "Notifications & Sounds" settings)
- from contact's profile modal, clicking on "Verify Identity" button
- from "Settings -> Messaging -> Contacts, Requests and Blocked Users", from "Contacts" tab, "Contacts" subheader, clicking on "Verify Identity" button
4. User sends the request to the contact, and waits for a response | ||
5. System notifies the identity verification has received a response (e.g see Activity Center Spec) | ||
6. User selects the identity verification notification item | ||
7. User verifies the response and selects "Confirm Identity" |
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.
From the places mentioned in the previous point user should be able to verify the response and selects "Confirm Identity" if he is happy with the answer, otherwise he is allowed either to do nothing or selects "Mark untrustworthy" or remove contact.
6. User selects the identity verification notification item | ||
7. User verifies the response and selects "Confirm Identity" | ||
7.1 alternative: User selects "Mark untrustworthy" | ||
8. System confirms to user that the identity has been verified |
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.
This depends... is identity verification symetric or asymetric action?
In case of sending contact requests that's symetric action definitely, if A adds B as contact, when B accepts a contact requests A is mutual contact for B and B is mutual contact for A.
But in case of identity verification if A sends ID request to B and B answers, and A is happy with the answer that mens B became a verified contact for A, but A is still just a mutual contact for B. So this action should be asymetric, is that correct? @John-44 please confirm.
|
||
### Respond to identity verification request | ||
|
||
1. System notifies user of an identity verification request |
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.
Once system receives a signal about ID request, depends on "Notifications & Sounds" settings a contact receiving the ID request has set, the app will display appropriate notification (os notification and/or ephemeral notification and/or activity center notification or nothing).
### Respond to identity verification request | ||
|
||
1. System notifies user of an identity verification request | ||
2. User selects the identity verification notification item |
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.
User should be able to respond to an ID request from the following places:
- from activity center (if an item was previously added to AC, depends on "Notifications & Sounds" settings)
- from contact's profile modal, clicking on "Respond to ID Request" button (this is not in the design, but would be good to have it as well)
- from "Settings -> Messaging -> Contacts, Requests and Blocked Users", from "Contacts" tab, "Contacts" subheader or from "Pending Requests" tab, "Received" subheader clicking on "Respond to ID Request" button
|
||
**general:** | ||
|
||
- Any profile MAY BE marked as untrustworthy |
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.
Any contact but the contact whose identity verification is completed can be marked as "untrustworthy".
|
||
**general:** | ||
|
||
- Any profile MAY BE marked as untrustworthy |
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 understood it in a way... any contact whose identity verification is not fully completed may be marked as "untrustworthy", but in case if you're waiting for a response from a contact who is mutual contact and marked as "untrustworthy" in the moment you're verifying his answer and click on "Confirm Identity" button, that contact will be marked as verified contact and in the same time his "untrustworthy" mark will be removed (in this case, visually... instead of 2 icons contact+exclamation mark icons next to the user, will be only one set, checkmark icon).
No description provided.