Question

Scénario:

Un service Web disponible que je publiquement le plein contrôle sur. Mais je veux que cette application de bureau spécifique (mon application publiée) pour avoir accès au service Web. Je pouvais stocker un mot de passe secret dans le client de bureau, mais ce serait facile à craquer.

Y at-il connu la mise en œuvre qui impose cela? PKI, clés Asymétrique?

Était-ce utile?

La solution

Si le public aura accès aux copies de cette application Desktop, tout bon sera en mesure d'inversion à se fissurer et « imiter » ses transactions avec le serveur. Il doens't quelle que soit la sécurité est votre cryptographie, tout ce que vous a besoin pour l'application crypter / décrypter les données sont inclus dans les binaires, de sorte que le pirate n'a besoin que de le creuser en sortir.

L'objectif de la cryptographie est de protéger les données alors qu'il est en cours de transfert, des pirates « middle-man », mais si vous avez accès à tout le monde des pairs, vous pouvez facilement le casser.

Votre serveur ne doit jamais faire confiance à ce qui vient du côté client.

[modifier reprise]

En dépit de vous ne pouvez pas garantir à 100% un client supposé à votre serveur est ou non votre application ou un « émulateur » faite par thirdies, vous pouvez compliquer les choses pour eux. C'est une pratique courante dans le jeu anti-triche pour parfois, au hasard, rendre le client App une question de truc comme « ce qui est le hachage de votre main.exe de l'offset A à compenser B? » ou « à partir de maintenant le type de paquet 0x07 de swaps avec le type de paquet 0x5F ». Une fois qu'un faux est détecté, serveur entrer dans un « mode stupide », agir dysfonctionnel, et la liste noire de leur IP / compte à ce mode pendant plusieurs heures afin qu'ils ne peuvent pas avoir sûr de ce que leur programme fait mal.

Si vous détectez quelqu'un construit un émulateur, faites les tout recommencer: pêle-mêle les tables de type de paquets, des tables de cryptographie, changer certains formats de paquets et forcer vos clients à mettre à jour. Vous ne verrez pas crackers te tracasse pendant un certain temps ... LOL

Autres conseils

WS-Security fournit pour le cryptage X509.

Une partie de cette mise en œuvre comprend la possibilité de ne donner aux clients particuliers la clé publique générée. De cette façon, que vos clients sélectionnés peuvent se connecter au service.

La façon la plus simple est la sécurité des messages en utilisant des certificats client et serveur. La meilleure façon est d'importer les certificats clients dans vos machines serveur et le client coder en dur cert dans le fichier thumbprint app.config. L'autre façon est la négociation de certs que je ne l'ai pas essayé avant.

Si vous utilisez IIS pour héberger le service puis certificats client en utilisant le protocole SSL est une autre option.

lien MSDN sur WCF de sécurité.

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