Sichern von PeerkanalanwendungenSecuring Peer Channel Applications

Wie für andere Bindungen unter WinFXWinFX wurde für NetPeerTcpBinding Sicherheit standardmäßig aktiviert, und es wird transport- und nachrichtenbasierte Sicherheit (oder beides) unterstützt.Like other bindings under the WinFXWinFX, NetPeerTcpBinding has security enabled by default and offers both transport- and message-based security (or both). In diesem Thema werden diese beiden Typen von Sicherheit erläutert.This topic discusses these two types of security. Der Typ der Sicherheit wird vom Sicherheitsmodus-Tag in der Bindungsspezifikation (SecurityMode) angegeben.The type of security is specified by the security mode tag in the binding specification (SecurityMode).

Transportbasierte SicherheitTransport-Based Security

Peerkanal unterstützt zwei Arten von Authentifizierungs-Anmeldeinformationen für die Transportsicherung, die beide das Festlegen der ClientCredentialSettings.Peer-Eigenschaft auf die zugeordnete ChannelFactory erfordern:Peer Channel supports two types of authentication credentials for securing transport, both of which require setting out the ClientCredentialSettings.Peer property on the associated ChannelFactory:

  • Kennwort.Password. Clients verwenden das Wissen eines geheimen Kennworts, um Verbindungen zu authentifizieren.Clients use knowledge of a secret password to authenticate connections. Wenn dieser Anmeldeinformationstyp verwendet wird, muss ClientCredentialSettings.Peer.MeshPassword ein gültiges Kennwort enthalten und optional eine X509Certificate2-Instanz.When this credential type is used, ClientCredentialSettings.Peer.MeshPassword must carry a valid password and optionally an X509Certificate2 instance.

  • Zertifikat.Certificate. Eine bestimmte Anwendungsauthentifizierung wird verwendet.Specific application authentication is used. Wenn dieser Anmeldeinformationstyp verwendet wird, müssen Sie eine konkrete Implementierung von X509CertificateValidator in ClientCredentialSettings.Peer.PeerAuthentication verwenden.When this credential type is used, you must use a concrete implementation of X509CertificateValidator in ClientCredentialSettings.Peer.PeerAuthentication.

Nachrichtenbasierte SicherheitMessage-Based Security

Mit der Nachrichtensicherheit kann eine Anwendung ausgehende Nachrichten signieren, sodass alle Empfänger überprüfen können, dass die Nachricht von einer vertrauenswürdigen Partei gesendet und nicht manipuliert wurde.Using message security, an application can sign outgoing messages so that all receiving parties can verify the message is sent by a trusted party and that the message was not tampered with. Derzeit unterstützt Peerkanal nur X.509-Anmeldeinformations-Nachrichtensignierung.Currently, Peer Channel supports only X.509 credential message signing.

Bewährte MethodenBest Practices

  • In diesem Abschnitt wird die empfohlene Vorgehensweise zum Sichern von Peerkanalanwendungen erläutert.This section discusses the best practices for securing Peer Channel applications.

Aktivieren von Sicherheit mit PeerkanalanwendungenEnable Security with Peer Channel Applications

Aufgrund der Verteilungseigenschaft der Peerkanalprotokolle ist es schwierig, Netzmitgliedschaft, Vertraulichkeit und Datenschutz in einem ungesicherten Netz zu erzwingen.Due to the distributed nature of the Peer Channel protocols, it is hard to enforce mesh membership, confidentiality, and privacy in an unsecured mesh. Es ist auch wichtig, die Kommunikation zwischen Clients und dem Auflösungsdienst zu sichern.It is also important to remember to secure communication between clients and the resolver service. Verwenden Sie unter Peer Name Resolution Protocol (PNRP) sichere Namen, um Spoofing und andere häufige Angriffe zu vermeiden.Under Peer Name Resolution Protocol (PNRP), use secure names to avoid spoofing and other common attacks. Sichern Sie einen benutzerdefinierten Auflösungsdienst durch Aktivieren der Sicherheit auf den Verbindungsclients, die den Auflösungsdienst kontaktieren, einschließlich der nachrichten- und transportbasierten Sicherheit.Secure a custom resolver service by enabling security on the connection clients use to contact the resolver service, including both message- and transport-based security.

Verwenden des möglichst stärksten SicherheitsmodellsUse the Strongest Possible Security Model

Verwenden Sie z. B. das zertifikatbasierte Authentifizierungsmodell, wenn jeder Mesh-Member einzeln identifiziert werden muss.For example, if each member of the mesh needs to be individually identified, use certificate-based authentication model. Wenn das nicht möglich ist, verwenden Sie die kennwortbasierte Authentifizierung, die aktuellen Empfehlungen folgt, um sie sicher zu halten.If that is not possible, use password-based authentication following current recommendations to keep them secure. Dies umfasst die Freigabe von Kennwörtern nur für vertrauenswürdige Benutzer, die Übertragung von Kennwörtern in einem sicheren Medium, häufiges Ändern von Kennwörtern und Verwenden sicherer Kennwörter (mindestens acht Zeichen, mit mindestens einem Buchstaben in Groß- und Kleinschreibung, einer Ziffer und einem Sonderzeichen).This includes sharing passwords only with trusted parties, transmitting passwords using a secure medium, changing passwords frequently, and ensuring that passwords are strong (at least eight characters long, include at least one letter from both cases, a digit, and a special character).

Kein Akzeptieren selbstsignierter ZertifikateNever Accept Self-Signed Certificates

Akzeptieren Sie nie auf Antragstellernamen basierende Zertifikatanmeldeinformationen.Never accept a certificate credential based on subject names. Beachten Sie, dass jeder Benutzer ein Zertifikat erstellen kann, und jeder einen Namen auswählen kann, den Sie überprüfen.Note that anyone can create a certificate, and anyone can choose a name that you are validating. Überprüfen Sie Zertifikate basierend auf dem Ausgeben von Autoritätsanmeldeinformationen (entweder ein vertrauenswürdiger Aussteller oder eine Stammzertifizierungsstelle), um mögliches Spoofing zu vermeiden.To avoid the possibility of spoofing, validate certificates based on issuing authority credentials (either a trusted issuer or a root certification authority).

Verwenden der NachrichtenauthentifizierungUse Message Authentication

Verwenden Sie die Nachrichtenauthentifizierung, um zu überprüfen, ob eine Nachricht von einer vertrauenswürdigen Quelle stammt und bei der Übertragung nicht manipuliert wurde.Use message authentication to verify that a message originated from a trusted source and that no one has tampered with the message during transmission. Ohne Nachrichtenauthentifizierung ist es für einen böswilligen Client einfach, Nachrichten im Mesh zu spoofen oder zu manipulieren.Without message authentication, it is easy for a malicious client to spoof or tamper with messages in the mesh.

Peerkanal-CodebeispielePeer Channel Code Examples

PeerkanalszenarienPeer Channel Scenarios

Siehe auchSee Also

PeerkanalsicherheitPeer Channel Security
Erstellen einer PeerkanalanwendungBuilding a Peer Channel Application