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 ChannelFactory
eigenschap 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 eenX509Certificate2
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.