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

Simplifier la gestion du chiffrement #254

Open
areox-net opened this issue Dec 20, 2023 · 12 comments
Open

Simplifier la gestion du chiffrement #254

areox-net opened this issue Dec 20, 2023 · 12 comments
Assignees
Labels

Comments

@areox-net
Copy link

areox-net commented Dec 20, 2023

Premières idées: https://www.notion.so/mercurial-timer-ec4/UX-Simplification-du-chiffrement-83021f1c4ae241888688a70d4bf0e982

@areox-net areox-net self-assigned this Dec 20, 2023
@areox-net
Copy link
Author

areox-net commented Jan 15, 2024

Voici des premières pistes de design pour améliorer la manipulation du Code de Récuperation:

  • Changer le nom en "Code Tchap"
  • Lui donner une apparence plus visuelle "friendly" (avec un QR code en plus des characters bruts)
  • Permettre le téléchargement du Code sous forme d'un fichier (un PDF avec le QR code et le Code?)

image

  • Demander le Code à l'utilisateur comme dernière étape de génération d'un nouveau Code pour bien vérifier qu'il l'a conservé (Voir procedure Dashlane)

image

  • Demander le Code à chaque accès et le demander régulierement meme aux membres qui restent connectés (details à voir: quel intitulé pour le bouton "skip")
  • Sur mobile, avoir la possibilité de coller le code, téléverser un fichier ET scanner le QR code.
    CodeTchap-EnterCode

@areox-net
Copy link
Author

areox-net commented Jan 15, 2024

Atre piste alternative:
Utiliser l'option Passphrase de Element mais avec un format controlé par Tchap et friendly pour l'utilisateur. Cette passphrase pourrait etre composée par deux mots en français, un character special et 4 chiffres.
Exemple:
Renard+2386+Moliere

@areox-net
Copy link
Author

areox-net commented Mar 18, 2024

Prochaine étapes suite aux résultats des recherches utilisateurs disponible ici https://www.notion.so/mercurial-timer-ec4/Etude-Quali-R-sultats-e2dca94373bf472ea42bd0ce787b8d32 et aux évolutions à venir sur ElementX

  • Proposer une évolution du design UX (maquettes): parcours, nommage, forme du code
  • Tester la nouvelle UX proposée en interview?
  • Mettre en place des tracker analytics pour avoir des stats sur l'usage

@areox-net
Copy link
Author

Voici les écrans finaux vu en atelier:

Elements centraux

  • Changement d'usage du code: il serait desormais demandé à chaque connexion pour s'authentifier de manière sécurisé (plus de lien avec la Sauvegarde Auto)
  • Nouveau nom: Code Tchap

Parcours

1. Génération du Code Tchap
On le rend plus visuel avec un QR code associé (qui contient le string de characters)
On donne la possibilité de le télécharger sous forme de fichier texte ou de l'imprimer (papier ou PDF)

image

2. On demande tout de suite de le rentrer pour vérifier que l'user l'a bien noté/conservé
image

3. Si on l'imprime ou sauvegarde en PDF le Code Tchap prend la forme d'un A4 que l'on peu plier en deux
image

4. Quand l'user se connecte depuis le web, on lui demande son Code Tchap
image

5. Pareil sur mobile. Ici l'user a aussi la possibilité de scanner le QR code du fichier PDF ou d'une feuille imprimée
image

Possibles améliorations ulterieures: Changer la forme du Code Tchap autogeneré en utilisant du language naturel (aussi dans le format passphrase)
image

Proposition de plan d'action en étapes:

  1. Présenter notre proposition à Element
  2. Si Element n'est pas interessé à aporter ces changements de leur coté, commencer par tester le fait de rentrer Code Tchap au moment du login de demander la confirmation à sa création
  3. Tester l'ajout du QR code
  4. Tester des changements de forme du code auto-généré

@areox-net areox-net added the P1 Priority High label Jun 12, 2024
@areox-net
Copy link
Author

areox-net commented Jun 18, 2024

Pour terminer notre proposition avant de la soumettre à Element il reste à resoudre deux aspects:

  1. Comment traiter le cas où un utilisateur n'a pas de code sous la main mais a besoin d'acceder urgement à Tchap? Proposer sistèmatiquement la Generation d'un nouveau code est risqué: l'user pourrait perdre son historique alors qu'il a son code au bureau
  2. Faire en sorte que notre proposition marche aussi sur Element où la vérification cross-appareil est encore d'actualité et préferé au Recovery Key

Proposition

Au login on propose comme prévu de confirmer systématiquement son identité (aka "Se vérifier") par Code Tchap. Cependant on donne l'option alternative de le faire par Vérification sur un autre appareil et on donne l'option de se connecter temporairement sans historique pour gérer les cas urgents.

image

image

Ce dernier cas revient à se connecter sans vérification et passés les 30 minutes il faudra donc demander à nouveau à l'utilisateur de rentrer son Code Tchap. S'il n'a toujours pas son Code Tchap il n'aura pas d'autre choix que générer un nouveau Code.

Que en pensez-vous ?
@yostyle @MatMaul Je suis préneur de vos retours techniques sur la faisabilité et les possibles effets secondaires.

@Nivann
Copy link

Nivann commented Jun 18, 2024

Tchap code : l'utilisateur risque de penser qu'il doit indiquer son mot de passe.

Je pense que le délai de 30 minutes est trop court car si l'utilisateur est dans une urgence ça peut durer plus longtemps que 30 minutes donc je dirai plutot 1h.

@areox-net
Copy link
Author

Retour de Guillaume Foret sur la faisabilité de l'accès temporaire:
Pour repondre a ta question, j'ai compris de Patrick (Element) l'autre jour qu'on ne pourra pas utiliser l'application ans etre vérifié. Cela bloquerait ton cas d'usage, je pense qu'Element devrait reflechir de nouveau sur ce cas

Element va donc dans une direction où on ne pourra pas accéder à Element sans Recovery Key ou Vérification par autre appareil. Cela est donc proche de ce que nous envisageons, la seule différence est que nous allons mettre en avant le Recovery Key (Tchap Code) comme méthode privilégiée et la vérification sera une solution alternative au cas où l'user a un autre appareil.

Ca donnerait ça
image

Le seul scénario indésirable possible serait donc un utilisateur qui a perdu son Code, il en génère un nouveau et perd son historique alors qu'il avait un autre appareil connecté.

Il faudra donc le mettre en garde à l'étape d'après, avec une case à cocher pour acknowledgement
image

Nous pourrions ajouter des picto/mini-illustration à cette modale pour qu'elle soit plus friendly.

@julie-ri
Copy link

julie-ri commented Jul 5, 2024

du coup imaginons qu'il génere un nouveau code et qu'il a un autre appareil connecté -> cet autre appareil a l'historique et aura donc l'intégralité des messages ?

@julie-ri
Copy link

julie-ri commented Jul 5, 2024

Attention sur les écrans il y a qq fautes "Authetifier" au lieu de "Authentifier", "idéntité" au lieu de "identité", " manière sure" au lieu de " manière sûre"

@areox-net
Copy link
Author

du coup imaginons qu'il génere un nouveau code et qu'il a un autre appareil connecté -> cet autre appareil a l'historique et aura donc l'intégralité des messages ?

@julie-ri Je ne suis pas sur. Si j'ai bien compris, avec ce nouveau système meme si l'autre appareil connecté a l'historique le fait de generer un nouveau code peut invalider ses clés et il perderait donc l'historique.
C'est bien ce que tu disait @MatMaul ?

@NicolasBuquet
Copy link

@julie-ri @areox-net Sur l'autre appareil, si il a l'historique, c'est parce qu'il a les clés de déchiffrement stockées localement dans son cache. Tant qu'il ne vide pas son cache, il a accès aux messages dont il possède les clés.
Si il est avertit que le Code Tchap a changé, il pourrait même uploader à nouveau ses clés dans le Key Backup du backend (à voir si cela existe déjà ou bien est prévu dans Element X).

@areox-net
Copy link
Author

Voici le doc completfinal
Tchap-CodeTchap.pdf

Et la reponse de Patrick Maier de Element:

"hi angelo! thanks, hope you're good as well
and thanks for sharing this with me
looks great and very much aligned with our strategic direction 🙏
btw., we have come up with a couple of MSCs to prepare and describe the crypto-related usability improvements that we're working on
MSC4161: Crypto terminology for non-technical users
MSC4153: Exclude non-cross-signed devices
MSC4048: Authenticated key backup
there will be more communication on these items soon which will explain how these things fit together and how they play together to introduce a concept we call 'invisible crypto'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: En étude
Development

No branches or pull requests

4 participants