Delen via


Peer Channel-toepassingen beveiligen

Net als andere bindingen onder WinFX is NetPeerTcpBinding beveiliging standaard ingeschakeld en biedt zowel transport- als berichtbeveiliging (of beide). In dit onderwerp worden deze twee typen beveiliging besproken. Het type beveiliging wordt opgegeven door de beveiligingsmodustag in de bindingsspecificatie (SecurityMode).

Beveiliging op basis van transport

Peer Channel ondersteunt twee typen verificatiereferenties voor het beveiligen van transport, waarvoor beide de ClientCredentialSettings.Peer eigenschap op de bijbehorende ChannelFactoryeigenschap moeten instellen:

  • Wachtwoord. Clients gebruiken kennis van een geheim wachtwoord om verbindingen te verifiëren. Wanneer dit referentietype wordt gebruikt, ClientCredentialSettings.Peer.MeshPassword moet u een geldig wachtwoord en eventueel een X509Certificate2 exemplaar hebben.

  • Certificaat. Specifieke toepassingsverificatie wordt gebruikt. Wanneer dit referentietype wordt gebruikt, moet u een concrete implementatie van X509CertificateValidator in ClientCredentialSettings.Peer.PeerAuthentication.

Beveiliging op basis van berichten

Met behulp van berichtbeveiliging kan een toepassing uitgaande berichten ondertekenen, zodat alle ontvangende partijen kunnen controleren of het bericht wordt verzonden door een vertrouwde partij en dat het bericht niet is gemanipuleerd. Peer Channel ondersteunt momenteel alleen X.509-aanmeldingsberichten.

Beste praktijken

  • In deze sectie worden de aanbevolen procedures besproken voor het beveiligen van Peer Channel-toepassingen.

Beveiliging met Peer Channel-toepassingen inschakelen

Vanwege de gedistribueerde aard van de Peer Channel-protocollen is het moeilijk om mesh-lidmaatschap, vertrouwelijkheid en privacy af te dwingen in een onbeveiligde mesh. Het is ook belangrijk om te onthouden dat u de communicatie tussen clients en de resolverservice beveiligt. Gebruik onder Peer Name Resolution Protocol (PNRP) beveiligde namen om adresvervalsing en andere veelvoorkomende aanvallen te voorkomen. Beveilig een aangepaste resolverservice door beveiliging in te schakelen voor de verbinding die clients gebruiken om contact op te maken met de resolverservice, met inbegrip van beveiliging op basis van berichten en transport.

Het sterkste mogelijke beveiligingsmodel gebruiken

Als elk lid van de mesh bijvoorbeeld afzonderlijk moet worden geïdentificeerd, gebruikt u verificatiemodel op basis van certificaten. Als dat niet mogelijk is, gebruikt u verificatie op basis van wachtwoorden volgens de huidige aanbevelingen om ze veilig te houden. Dit omvat het delen van wachtwoorden alleen met vertrouwde partijen, het verzenden van wachtwoorden met behulp van een beveiligd medium, het regelmatig wijzigen van wachtwoorden en ervoor zorgen dat wachtwoorden sterk zijn (ten minste acht tekens lang, minstens één letter uit beide gevallen, een cijfer en een speciaal teken bevatten).

Zelfondertekende certificaten nooit accepteren

Accepteer nooit een certificaatreferentie op basis van onderwerpnamen. Iedereen kan een certificaat maken en iedereen kan een naam kiezen die u valideert. Valideer certificaten op basis van verlenende instantiereferenties (een vertrouwde verlener of een basiscertificeringsinstantie) om de mogelijkheid van adresvervalsing te voorkomen.

Berichtverificatie gebruiken

Gebruik berichtverificatie om te controleren of een bericht afkomstig is van een vertrouwde bron en dat niemand tijdens de verzending met het bericht heeft geknoeid. Zonder berichtverificatie is het eenvoudig voor een kwaadwillende client om berichten in de mesh te spoofen of te knoeien.

Voorbeelden van peer-kanaalcode

Peer Channel-scenario's

Zie ook