Est-il possible de pirater un client WCF pour passer des informations d'identification de message sans SSL?

StackOverflow https://stackoverflow.com/questions/1667882

  •  13-09-2019
  •  | 
  •  

Question

écrit une coutume WCF lier un certain temps pour permettre ma charge ferme équilibrée pour héberger des services via IIS. La raison de la liaison personnalisée était que chaque serveur n'a pas SSL mais nécessaire la possibilité d'accepter un titre de client de nom d'utilisateur + mot de passe. La procuration devant cette ferme a SSL sorte que le trafic serait chiffré à l'extérieur du pare-feu. Cela fonctionne très bien, mais la liaison coutume maintenant, je suis au point où je dois regarder le trafic de ma machine locale et voulait le faire w / out SSL dans le mix.

La question est la suivante - sur le client .net si je placerai mon mode de sécurité = « TransportWithMessageCredential » Je dois avoir SSL d'autre que je reçois l'erreur fun « système non valide, attendu https »

Est-il possible d'écrire quelque chose sur mesure pour le client à « ignorer » que SSL est manquant, mais encore me laisser passer le nom d'utilisateur + mot de passe via l'en-tête SOAP?

Était-ce utile?

La solution

Eh oui, je l'ai écrit un billet de blog sur ce un certain temps appelé "Comment faire pour: SSL Authentification unique avec WCF --ou-- TransportWithMessageCredential sur HTTP plaine".

Le court est que vous devez créer votre propre sous-classe HttpTransportBindingElement qui « des mensonges » au sujet d'assurer la sécurité.

Autres conseils

Il y a un correctif .net 3.5 sp1 qui ajoute une propriété AllowInsecureTransport à la SecurityBindingElement . Ce sera également en .net 4 beta 2.

Je suppose que, sur votre liaison obtenez personnalisée, que vous aussi une erreur si vous utilisez simplement le mode de sécurité = « Message »? Une coutume liant était pas vraiment nécessaire, puisque (si je ne me trompe pas), vous pouvez utiliser le wsHttpBinding avec le mode sécurité = « Message » (ne nécessitant pas de SSL).

Une autre alternative est de simplement générer un certificat SSL vous, installez-le dans IIS, et mettre en œuvre une fiducie toute politique de certificat dans votre code d'appel, mais ce qui est généralement mal vu (comme l'envoi de noms d'utilisateur et mots de passe sur un canal non sécurisé) .

Une troisième option consiste à modifier les opérations de contrat pour accepter les noms d'utilisateur et mots de passe (ou une sorte de jeton) en tant que paramètre ou modifier vos contrats de données afin que vous puissiez envoyer les informations ainsi que tout objet que vous pouvez déjà envoyer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top