J'écris une application cliente qui doit interroger une URL et confirmer que l'utilisateur est autorisé à utiliser le client. Pensez-y comme un mécanisme de licence très rudimentaire. La page sur le serveur écrit une chaîne de texte en clair contenant des informations sur l'utilisateur qui sert de validation. Tout cela est fait sur SSL.HTTPWebRequest, validation du point de terminaison SSL et
Cependant, je suis un peu paranoïaque quant à savoir si ce "système" est assez sécurisé. Par exemple, si j'installe Fiddler et que je vérifie SslPolicyError dans ServicePointManager.ServerCertificateValidationCallback, il est valide. Donc, je peux facilement casser le système avec Fiddler. Ce que j'ai remarqué est que dans ce cas, le paramètre X509Certificate tient Issuer: = ... fiddler2.com Maintenant, je peux vérifier si l'émetteur de certificat correspond à ce que le serveur utilise maintenant. Mais le certificat de serveur peut être renouvelé avec une autorité de certification différente. Si cela se produisait, je finirais par avoir à faire en sorte que tous les utilisateurs installent un nouveau client: un cauchemar de support.
Je voudrais savoir,
Est-ce un mauvais système par la conception? Comme dans, SSL est-il insuffisant pour garantir une sécurité suffisante dans ce cas?
ou
Suis-je essayer de valider correctement le point final et si oui quelle est la meilleure façon de faire la validation?
Salut, merci pour la réponse. Je suis vraiment inquiet à propos des utilisateurs malveillants qui utilisent des certificats auto-signés pour passer notre vérification de licence à son propre site: et là en retournant une fausse réponse positive pour rendre notre système pense qu'il est valide. – Sameera
Je ne sais pas quel est votre problème? Êtes-vous inquiet à propos d'un client falsifié ou d'un serveur falsifié? Si vous êtes inquiet au sujet d'un client usurpé, vous pouvez avoir un processus d'enregistrement comme première étape, où le client obtient une clé. Ensuite, le client utilise la clé fournie pour communiquer avec le serveur. La clé est juste un jeton que le serveur assigne, et toute la communication pourrait être faite sur SSL. – feroze
Oui, ce que vous décrivez est similaire à ce que nous avons fini par utiliser. Merci. – Sameera