J'ai un défi de sécurité réseau intéressant que je ne peux pas déterminer la meilleure façon d'attaquer.Comment négocier une connexion sécurisée entre les pare-feu en utilisant un hôte non sécurisé?
Je dois fournir un moyen de permettre à deux ordinateurs (A et B) situés derrière des pare-feu d'établir une connexion sécurisée entre eux en utilisant uniquement un serveur commun "non autorisé" sur Internet (quelque part comme RackSpace). (le serveur est considéré comme non fiable car les clients derrière les pare-feux ne lui feront pas confiance puisqu'il est sur un serveur ouvert) Je ne peux pas ajuster les paramètres du pare-feu pour permettre aux réseaux de se connecter directement car les connexions ne sont pas connues temps. Ceci est très similaire à un problème de connexion NAT vers NAT comme celui traité par les outils d'aide de bureau à distance (crossloop, copilote, etc.).
Ce que je voudrais vraiment trouver est un moyen d'ouvrir une connexion SSL entre les deux hôtes et d'avoir la connexion du serveur public. De préférence, lorsque l'hôte A tente de se connecter à l'hôte B, il doit fournir un jeton que le courtier peut vérifier auprès de l'hôte B avant d'établir la connexion.
Pour ajouter une autre pli à cela, le mécanisme de connexion doit prendre en charge deux types de communication. Tout d'abord, une requête/réponse HTTP à un service Web REST et une deuxième connexion de socket persistante pour permettre le passage de message en temps réel. J'ai examiné les techniques que je connais comme OpenSSL en utilisant des certificats, OAuth, etc, mais je ne vois rien qui fasse exactement ce dont j'ai besoin.
Est-ce que quelqu'un d'autre a déjà manipulé quelque chose comme ça? Des pointeurs?
Vous devez accorder une attention particulière à la vérification de l'autre partie, car l'hôte non fiable transmet votre trafic ... quelque part, qui peut ou peut ne pas être votre destination prévue. – Piskvor