Alice: j'ai besoin du fichier
Bob: Bien sûr, et je veux d'abord le crypter. Veuillez mettre la clé symétrique PGP forte avec la méthode copier-coller à https://onetimesecret.com/ et envoyez-moi le lien.
Alice. Terminé, l'URL est xxxxxxxx
Bob: Très drôle, le lien est vide.
Alice: Je sais, ce n'était qu'un test si je peux te faire confiance ... Voici le bon, xxxxxxxx
Bob: Merci beaucoup. Avez-vous vu dans le dernier épisode de Big Brother UK, la scène avec la coupe de cheveux?
Alice: j'ai quoi?
Bob: Malika a utilisé une tondeuse de manière confortable ...
Alice: Hmm.
Bob: Oubliez ça, voici la pièce jointe, fortement cryptée avec l'algorithme AES128. S'amuser.
Alice: Merci aussi. Je vous en prie. Au revoir
Alice et Bob ont utilisé un service entre eux pour échanger un mot de passe. Le premier regard est qu'ils ont bien fait. Mais ils doivent faire confiance au site Web onetimesecret. Si l'attaquant est propriétaire du site Web, il connaît également la clé symétrique PGP. Quelle est la meilleure alternative pour échanger une clé?
L'échange de clés se fait régulièrement sans utiliser de services externes, en utilisant la cryptographie. L'algorithme d'échange de clés le plus populaire est Diffie-Hellman .
Citant Wikipédia:
La méthode d'échange de clés Diffie – Hellman permet à deux parties qui n'ont aucune connaissance préalable l'une de l'autre d'établir conjointement une clé secrète partagée sur un canal non sécurisé .
Si vous utilisez Diffie-Hellman, n'utilisez pas la version anonyme, mais la DH fixe ou éphémère. Voir cette réponse .
De toute évidence, ne lancez pas votre propre cryptographie pour quelque chose de réel (c'est-à-dire en dehors de l'auto-étude). Utilisez quelque chose comme OpenSSL pour cela.
Quelle est la meilleure alternative pour échanger une clé?
Mieux de quelle manière? Sécurité? Simplicité?
Dans le cas de la sécurité, disposez de plusieurs méthodes de transmission des clés.
Par exemple, donnez 10 caractères par téléphone, 10 caractères par texte, certains plus via onetimesecret, d'autres via un autre site Web (par exemple, https://read-once.info ).
De cette façon, même si l'un des sites Web/méthodes de transmission n'est pas fiable, ils n'ont pas la clé complète, mais seulement une petite partie.
Bien sûr, au lieu du texte brut, vous pouvez également le chiffrer d'abord avec la clé publique d'Alice. Si vous le souhaitez, vous pouvez également donner des informations inutiles (ou pas assez) pour qu'Alice trouve facilement la bonne clé.
Par exemple, donnez à Alice "ABC", "123", "! @ #" Et "XYZ" par différentes méthodes de transmission lorsque la clé complète est "XYZ123ABC" ("! @ #" Non utilisée).
Autrement dit, demandez à Alice de permuter toutes les pièces données.
Je ne ferais pas confiance à un tiers pour stocker des secrets, mais j'aime la commodité de pouvoir partager via un lien URL.
Pour essayer de tirer le meilleur parti des deux mondes, j'ai écrit self-destruct-o ( https://self-destruct-o.control-alt-del.org/ ).
C'est un concept similaire à onetimesecret mais avec quelques avantages:
Vous pouvez envoyer le lien par e-mail et partager la phrase de passe sur un deuxième canal (par exemple: téléphone, sms) et être sûr que personne ne peut intercepter le secret.
Plus de détails ici: https://www.control-alt-del.org/post/one-time-password-sharing-securely/
Il existe de nombreuses façons de partager correctement les clés. Par exemple, si vous avez réussi à vérifier une clé publique PGP, vous pouvez l'utiliser pour crypter. Cependant, cela nécessiterait toujours une certaine vérification en personne pour être parfaitement sûr.
Cependant, si vous voulez une solution plus proche de votre exemple et "suffisamment sécurisée", il existe un service Nice appelé privatebin . Il est open source et vous pouvez l'héberger vous-même. Plus important encore, la pâte est cryptée dans votre navigateur à l'aide d'une clé symétrique, qui fait partie du lien. Il est décrypté dans le navigateur des destinataires. Ainsi, le propriétaire du site Privatebin ne peut pas lire votre pâte sans pouvoir également voir votre conversation et obtenir le lien.
Une autre option est la cryptographie sociale, par exemple en utilisant Deamonsaw . Le fonctionnement de la cryptographie sociale est que vous utilisez des connaissances partagées pour créer des couches de mots de passe. Ainsi, par exemple, vous demandez à l'autre personne d'utiliser le lieu que vous avez rencontré pour la première fois comme mot de passe pour la première couche. Ensuite, vous leur demandez autre chose pour le deuxième et ainsi de suite, jusqu'à ce que vous soyez sûr que seule la bonne personne pourrait connaître toutes les réponses.