Sécurisation des applications de canal homologue
Comme d'autres liaisons sous le .NET Framework 3.0, NetPeerTcpBinding a la sécurité activée par défaut et offre les sécurités de transport et de message. Cette rubrique traite de ces deux types de sécurité. Le type de sécurité est spécifié par la balise de mode de sécurité dans la spécification de liaison (SecurityMode).
Sécurité basée sur le transport
Le canal homologue prend en charge deux types d'informations d'identification pour l'authentification en vue de sécuriser le transport. Les deux impliquent la définition de la propriété ClientCredentialSettings.Peer sur la ChannelFactory associée :
- Mot de passe. Les clients utilisent leur connaissance d'un mot de passe secret pour authentifier les connexions. Lorsque ce type d'informations d'identification est utilisé, ClientCredentialSettings.Peer.MeshPassword doit contenir un mot de passe valide et éventuellement une instance X509Certificate2.
- Certificat. L'authentification d'application spécifique est utilisée. Lorsque ce type d'informations d'identification est utilisé, vous devez utiliser une implémentation concrète de X509CertificateValidator dans ClientCredentialSettings.Peer.PeerAuthentication.
Sécurité basée sur le message
Avec la sécurité basée sur le message, une application peut signer les messages sortants afin que tous les destinataires puissent vérifier que le message a été envoyé par un correspondant approuvé et qu'il n'a pas été falsifié. Actuellement, le canal homologue prend en charge uniquement la signature des messages d'informations d'identification X.509.
Meilleures pratiques
- Cette section présente les meilleures pratiques pour sécuriser les applications de canal homologue.
Activer la sécurité avec les applications de canal homologue
En raison de la nature distribuée des protocoles de canal homologue, il est difficile d'appliquer l'appartenance de maille et la confidentialité dans une maille non protégée. Il convient également de penser à sécuriser la communication entre les clients et le service de résolution. Sous le protocole PNRP (Peer Name Resolution Protocol), utilisez des noms sécurisés afin d'éviter l'usurpation et autres attaques courantes. Sécurisez un service de résolution personnalisé en activant la sécurité sur les clients de connexion utilisés pour contacter le service de résolution, avec à la fois la sécurité de message et la sécurité de transport.
Utiliser le modèle de sécurité le plus fort possible
Par exemple, si chaque membre de la maille doit être identifié individuellement, utilisez un modèle d'authentification basé les certificats. Si cela est impossible, utilisez l'authentification basée sur mot de passe et suivez les recommandations actuelles afin d'assurer leur sécurité. Cela implique le partage des mots de passe uniquement avec des correspondants de confiance, la transmission des mots de passe à l'aide d'un support sécurisé, la modification fréquente des mots de passe et la garantie que les mots de passe sont forts (longueur d'au moins huit caractères, au moins une lettre de chaque casse, un chiffre et un caractère spécial).
Ne jamais accepter de certificats auto-signés
N'acceptez jamais d'informations d'identification de certificat basées sur des noms de sujet. Notez que n'importe qui peut créer un certificat et choisir un nom que vous validez. Pour éviter la possibilité d'usurpation, validez les certificats sur la base des informations d'identification d'autorité émettrice (un émetteur approuvé ou une autorité de certification racine).
Utiliser l'authentification de message
Utilisez l'authentification de message pour vérifier qu'un message provient d'une source fiable et que personne ne l'a falsifié durant la transmission. Sans authentification de message, il est facile pour un client malveillant d'usurper ou de falsifier des messages dans la maille.
Exemples de code de canal homologue
Peer Channel Custom Authentication
Peer Channel Message Authentication
Voir aussi
Concepts
Sécurité de canal homologue
Création d'une application de canal homologue