web-dev-qa-db-fra.com

Quel est le moyen le plus sûr de transmettre un message à un autre client via un serveur caché des utilisateurs malveillants de haut niveau?

Supposons que vous soyez constamment menacé par des pirates et des agences à profil élevé qui tentent d'intercepter des messages envoyés entre vous et un ami.

La question est la suivante: quel est le moyen le plus sûr d'envoyer des messages à lui sans un utilisateur ou une agence malveillante ne pouvant être utile:

  1. Intercepter et déchiffrer vos messages de votre ami.
  2. Interrompre votre communication au moyen de MITM ou DDO. Les serveurs de cloud hébergés dans différentes parties du monde permettent-ils de décharger le trafic DDO et de rendant difficile la fermeture des serveurs? Qu'en est-il de plusieurs proxies sans aucune information sensible dans les en-têtes, de sorte que votre fournisseur Internet ne connaisse pas le serveur que vous contactez au cas où quelqu'un parvient à saisir les journaux de navigation sur Internet?
  3. Toute autre attaque telle que attaque de replay , Rencontre-in-thebattack-attaque et ainsi de suite à un mot-notes dériverait enfin le contenu du message ou entraînerait une impersonnation.

Supposons également que vous soyez étudiant et que vous ne pouvez pas vous permettre un puissant ordinateur portable à crunch gros chiffres, un algorithme cryptographiquement lent est d'exclure pour commencer.

C'est la situation que nous sommes dans:

                              C                     B
                       ----------------     ------------------
         A             |              |     |                |
      -------          |    Server    |'''''|     Friend     |
      | You |''''''''''|              |     |                | 
      -------          ----------------     ------------------
                 |                              |
               |                D                 |
             ---------------------------------------
             |                                     |
             |                                     |
             |      Malicious user or agency       |
             |                                     |
             |                                     |
             ---------------------------------------

[~ # ~] a [~ # ~ ~] devrait être capable d'envoyer quelque chose à [~ # ~] b [~ # ~] à [~ # ~] c [~ # ~] sans [~ # ~] D [~ # ~] Être capable de Interact.

Échange la clé à travers [~ # ~ # ~] RSA [~ # ~] et l'utiliser comme cryptage/décryptage avec Say AES128 assez? Qu'envoyez-vous à la fois de RSA et de PGP pour que vous puissiez également déchiffrer la touche RSA avec PGP? Ou est-ce superflu?

J'ai réfléchi à une sorte de Mac-then-chiffreur-and -crypt-chiffrer-chiffrer Schéma: AES128(Message + RSA pub key) + (PGP pub key + nonce) <-> server <-> ((AES128(Message + RSA pub key) + (PGP pub key + nonce)) - nonce) == PGP priv key == RSA priv key | stop

Jetons un diagramme là-bas une fois de plus pour mieux le comprendre:

expéditeur

             -------------     ---------------    
             |           |     |             |
             |  Message  |--+--| RSA pub key |
             |           |     |             |
             -------------     ---------------           
                      \          /    
                       \        /
                        \   D  /
                         \    /
                          \  /
                           \/
                      -------------     -----------------     -----------
                      |           |     |               |     |         |
                      |  AES128   |--+--|  PGP pub key  |--+--|  Nonce  |
                      |           |     |               |     |         |
                      -------------     -----------------     -----------

Récepteur

                                                                 \    /
                      -------------     -----------------     ----\--/---
                      |           |     |               |     |    \/   |
                      |  AES128   |--+--|  PGP pub key  |--+--|  No/\ce |
                      |           |     |               |     |   /  \  |
                      -------------     -----------------     ---/----\--
                           /       \                /           /      \
                          /         \              +                    
                         /           \            /             
  ---------------     -----------     +   -----------------            
  |             |     |         |      \  |               |
  |  RSA pubkey |--+--| Message |       \ |  PGP priv key | <----- Symmetric
  |             |     |         |        \|               |
  ---------------     -----------         -----------------   
          \
           +
            \
         ----------------
         |              |
         | RSA priv key | <---- Asymmetric. Only the receiver knows this key.
         |              |
         ----------------
                    \
                     \
                 -------------
                 |           |
                 |  Message  |
                 |           |
                 -------------

Couplez-le avec (parfait) Secrecy avant le ferait Rendez-le encore plus sûr?

Le résultat devrait être une seule et une seule: une immabilité ou très - Une rupture lente (cela faudrait cent ans, même pour un supercalculateur) par l'utilisateur malveillant.

Si possible, ajoutez des faits, des références, une expertise spécifique ou autre chose qui ne rend pas votre avis de réponse basé sur votre réponse.

11
Alper Turan

Croyez-vous vraiment que vous pouvez détecter si votre ordinateur a été manipulé de manière à renifler les données simples directement sur l'ordinateur ou que le logiciel de cryptage a été modifié de manière à faciliter la reniation? Croyez-vous vraiment que votre père pourrait le faire aussi? Si vous avez téléchargé le logiciel de chiffrement: Comment savez-vous que cela fait ce qu'il prétend et seulement cela? Si vous avez écrit le logiciel de cryptage vous-même: avez-vous vraiment compris tous les algorithmes impliqués et avez-vous veillé à ce que votre mise en œuvre soit non seulement correcte, mais utilise une RNG appropriée et sécurisée, etc. ne fuit pas les informations dans les attaques de chronométrage, etc.? La cryptographie elle-même est déjà difficile mais elle ne résout que la partie du problème, pas tout le problème. N'oubliez pas https://xkcd.com/538/ .

21
Steffen Ullrich

Votre premier problème sera déterminant que le NSA est capable de. Par exemple, votre ordinateur portable a-t-il un keylogger installé? Le BIOS compromet-il? Le micrologiciel du disque dur est-il compromis?

De plus, étant donné que vous souhaitez utiliser un serveur intermédiaire, vous devez savoir que l'opérateur de ce serveur n'est pas en train d'être chanté avec une lettre de sécurité nationale ou similaire, ou si vous devriez trouver un mécanisme qui vous protège au visage. d'un intermédiaire non approuvé.

Avec toutes ces situations, ce serait le jeu.

Deuxièmement, si vous êtes raisonnablement sûr que le matériel ne soit pas compromis, voici ce que je regarderais dans:

  • Obtenez un nouveau bâton USB d'un magasin de vente au détail de masse (non par correspondance) et de payer en espèces.
  • Téléchargez Tails.
  • Déconnecter de l'Internet.
  • Installez des queues sur le bâton USB.
  • Retirez le disque dur (qui vous protégerait contre le micrologiciel Bad HD, bien que ce ne soit pas contre un mauvais BIOS de votre ordinateur).

Bien sûr, votre père devra prendre les mêmes précautions.

Ensuite, définissez ce que vous voulez cacher:

  • Voulez-vous masquer le conten de votre message?
  • Voulez-vous masquer le destinataire de votre message?
  • Voulez-vous cacher le fait que vous avez communiqué du tout?

Si vous voulez simplement dissimuler le contenu de votre message, PGP est-ce. La ligne d'objet et le destinataire seront en texte brut, cependant. De votre question, c'est ça.

Si vous souhaitez dissimuler le destinataire de votre message, vous pouvez utiliser SSH pour vous connecter à un ordinateur tiers (connu non compromis) et laissez-vous un message sous forme de fichier texte. Votre père utiliserait également SSH sur le même ordinateur pour récupérer le message.

Si vous souhaitez dissimuler le fait de la communication, vous devrez vous connecter via le réseau Tor.

La dernière question est l'algorithme à utiliser pour le cryptage. Tout d'abord, n'utilisez pas SHA256. Ce n'est pas un algorithme de cryptage du tout, mais plutôt un algorithme de hachage. Si vous l'utilisiez, vous seriez surpris de voir la rapidité avec laquelle vous pouvez transférer même des fichiers de taille gigaoctet en quelques secondes, même sur une ligne de connexion. Et vous seriez surpris de la raison pour laquelle votre père ne pouvait pas récupérer le fichier que vous avez envoyé. SHA256 génère essentiellement une somme de contrôle de quelques dizaines d'octets et laisse le message original intact.

Votre idée d'un échange de clé séparé avec le cryptage clé publique, suivie d'une phase de transfert de données avec cryptage symétrique, est très bonne pour la communication directe.

Pour la sélection de chiffrement, je vais regarder sur les offres TLS 1.2. RSA pour la clé publique est bonne. AES128 pour le cryptage symétrique est également un bon choix.

Bien sûr, puisque vous utilisez un intermédiaire (votre serveur C), vous serez contraint par tout ce que ce serveur offre.

6
Kevin Keane

Tapis à usage unique

Toute utilisation des mathématiques au-delà des pads d'utilisation d'une fois est une opportunité pour la "NSA" pour casser votre algorithme. L'instant que vous utilisez un algorithme nommé, vous devez accepter la possibilité que NSA a cassé cet algorithme particulier. Manquant d'informations sur les algorithmes qu'ils ont brisés, le seul "NSA-Preuf" est la Tapis d'utilisation d'une fois.

Et vous feriez mieux confiance à vos générateurs de nombres aléatoires et à votre échange de clé! (éditer: et par là, je veux dire real générateurs de nombres aléatoires. Aucun de ces générateurs de nombres de Pseudorandom Sissy qui s'exécutent sur ces nouveaux "Ordinateurs"!)

6
Cort Ammon

prendre l'avion et aller visiter votre père. Une fois que vous êtes dans un endroit où il est juste de vous deux, murmure vos secrets à l'oreille de ton père. Si vous insistez sur le " via un serveur "partie, puis rédigez votre message sur un morceau de papier, le mettre dans le cas du serveur, et alors papa tirer Edwin droit de retour sur.

Ni vous, ni je sais ce que le NSA est capable. Ils peuvent compromettre non seulement vos téléchargements de logiciels, mais tout le monde est. Ils peuvent avoir des bugs de matériel dans votre BIOS de la carte mère, clavier, routeur, disque dur, et un téléphone cellulaire. ils peuvent avoir des exploits pour les articles qu'ils ne sont pas mis sur écoute. ils peuvent avoir des caméras, des microphones et autres détecteurs dans votre maison, dans votre voiture, et sur votre personne (téléphone intelligent).

Oh, et ils ont budget quasi illimité et l'accès à vos dossiers antérieurs. Ils ont des psychologues et des spécialistes du comportement à votre profil. Ils ont une influence sur les médias de masse et de divertissement qui influence l'opinion publique et les valeurs.

Le mouvement ne gagnant est de ne pas jouer.

3
dotancohen

Beaucoup de réponses mais aucune très réalisable pour votre Joe moyen, A.K.A Snowden Jr. Cette réponse est écrite à partir d'un scénario actuel. Beaucoup de choses peuvent se produire ou changer dans quelques années, alors envisager une situation plus de 2 décennies plus tard n'est pas très utile, notamment en ce qui concerne la technologie de l'information.

Solution apportée

Construire/utiliser un ordinateur qui n'a pas de systèmes de communication sans fil, ce qui signifie n ° H/w capable de transmettre ou de recevoir des données sans fil. Aucun Bluetooth, Wi-Fi ou autre capacité de communication sans fil. Désactivez également toute capacité de connexion Ethernet ou Internet. Ne connectez jamais cet ordinateur à Internet même lors de l'installation d'un système d'exploitation. Le système d'exploitation nouvellement installé devrait bien sûr être open source et minutieusement testé simplement pour être sûr. Cryptez tout le disque dur à l'aide d'un logiciel open source comme Veracrypt Utilisation cryptage déniable . Dans votre partition OS "cachée", créez vos touches PGP. Cryptez la clé privée à l'aide de la norme de cryptage symétrique AES-256. Utilisez un nouveau lecteur flash acheté de manière aléatoire et montrez-le sur un périphérique/PC secondaire configuré de la même manière et effacez de manière sécurisée, re-partitionnez et formatez-la. Faites toujours cette étape avant de le connecter à notre PC principal où nous avons réellement nos clés PGP.

Une fois que nous avons saisi et avons crypté notre message sur le PC principal, connectez le lecteur flash "Fraîchement formaté" et copiez notre message dessus.

Ce message crypté peut désormais être envoyé via n'importe quel PC sécurisé (aussi sécurisé qu'un PC connecté normal et Internet connecté), connecté à Internet à l'aide de tout service de messagerie sécurisé comme ProtonMail .

1
Joseph