Delen via


Gedistribueerde toepassingsbeveiliging

WcF-beveiliging (Windows Communication Foundation) is onderverdeeld in drie belangrijke functionele gebieden: overdrachtsbeveiliging, toegangsbeheer en controle. Overdrachtbeveiliging biedt integriteit, vertrouwelijkheid en verificatie. Overdrachtbeveiliging wordt geleverd door een van de volgende: transportbeveiliging, berichtbeveiliging of TransportWithMessageCredential.

Zie Beveiligingsoverzicht voor een overzicht van WCF-berichtbeveiliging. Zie Autorisatie en controle voor meer informatie over de andere twee onderdelen van WCF-beveiliging.

Beveiligingsscenario's overdragen

Veelvoorkomende scenario's waarin WCF-overdrachtbeveiliging wordt gebruikt, zijn onder andere:

  • Veilige overdracht met Behulp van Windows. Een WCF-client en -service worden geïmplementeerd in een Windows-domein (of een Windows-forest). De berichten bevatten persoonlijke gegevens, dus vereisten omvatten wederzijdse verificatie van de client en service, berichtintegriteit en vertrouwelijkheid van berichten. Daarnaast is bewijs vereist dat een bepaalde transactie heeft plaatsgevonden, bijvoorbeeld dat de ontvanger van het bericht de handtekeninggegevens moet vastleggen.

  • Veilige overdracht met behulp van UserName en HTTPS. Een WCF-client en -service moeten worden ontwikkeld om via internet te kunnen werken. De clientreferenties worden geverifieerd voor een database met gebruikersnaam-/wachtwoordparen. De service wordt geïmplementeerd op een HTTPS-adres met behulp van een vertrouwd SSL-certificaat (Secure Sockets Layer). Omdat de berichten via internet worden verzonden, moeten de client en service wederzijds worden geverifieerd en moeten de vertrouwelijkheid en integriteit van de berichten behouden blijven tijdens de overdracht.

  • Veilige overdracht met behulp van certificaten. Een WCF-client en -service moeten worden ontwikkeld om via het openbare internet te kunnen werken. De client en service hebben beide certificaten die kunnen worden gebruikt om de berichten te beveiligen. De client en service gebruiken internet om met elkaar te communiceren en om hoogwaardige transacties uit te voeren waarvoor berichtintegriteit, vertrouwelijkheid en wederzijdse verificatie is vereist.

Integriteit, vertrouwelijkheid en verificatie

Drie functies( integriteit, vertrouwelijkheid en verificatie) worden samen overdrachtsbeveiliging genoemd. Overdrachtbeveiliging biedt de functies die helpen de bedreigingen voor een gedistribueerde toepassing te beperken. In de volgende tabel worden kort de drie functies beschreven waaruit overdrachtsbeveiliging bestaat.

Functie Beschrijving
Integriteit Integriteit is de zekerheid dat gegevens volledig en nauwkeurig zijn, vooral nadat ze van het ene punt naar het andere zijn gekruist en mogelijk door veel actoren zijn gelezen. Integriteit moet worden gehandhaafd om manipulatie met de gegevens te voorkomen en wordt meestal bereikt door digitale ondertekening van een bericht.
Vertrouwelijkheid Vertrouwelijkheid is de zekerheid dat een bericht niet is gelezen door iemand anders dan de beoogde lezer. Een creditcardnummer moet bijvoorbeeld vertrouwelijk worden gehouden wanneer het via internet wordt verzonden. Vertrouwelijkheid wordt vaak geboden door de versleuteling van gegevens met behulp van een schema voor een openbare sleutel/persoonlijke sleutel.
Verificatie Verificatie is de verificatie van een geclaimde identiteit. Wanneer u bijvoorbeeld een bankrekening gebruikt, is het noodzakelijk dat alleen de werkelijke eigenaar van het account geld mag opnemen. Verificatie kan op verschillende manieren worden verstrekt. Een veelgebruikte methode is het gebruikers-/wachtwoordsysteem. Een tweede is het gebruik van een X.509-certificaat dat wordt geleverd door een derde partij.

Beveiligingsmodi

WCF heeft verschillende modi voor overdrachtbeveiliging, die worden beschreven in de volgende tabel.

Modus Beschrijving
Geen Er wordt geen beveiliging geboden op de transportlaag of op de berichtlaag. Voor geen van de vooraf gedefinieerde bindingen wordt deze modus standaard gebruikt, behalve het <basicHttpBinding-element> of, bij het gebruik van code, de BasicHttpBinding klasse.
Transport Maakt gebruik van een beveiligd transport, zoals HTTPS voor integriteit, vertrouwelijkheid en wederzijdse verificatie.
Bericht Gebruikt SOAP-berichtbeveiliging voor integriteit, vertrouwelijkheid en wederzijdse verificatie. SOAP-berichten worden beveiligd volgens de WS-Security-normen.
Gemengde modus Maakt gebruik van transportbeveiliging voor integriteit, vertrouwelijkheid en serververificatie. Maakt gebruik van berichtbeveiliging (WS-Security en andere standaarden) voor clientverificatie.

(Deze opsomming voor deze modus is TransportWithMessageCredential.)
Beide Hiermee worden beveiliging en verificatie op beide niveaus uitgevoerd. Deze modus is alleen beschikbaar in het element netMsmqBinding>.<

Referenties en beveiliging overdragen

Een referentie is gegevens die worden gepresenteerd om een geclaimde identiteit of mogelijkheden tot stand te brengen. Het presenteren van een referentie omvat het presenteren van zowel de gegevens als het bewijs van het bezit van de gegevens. WCF ondersteunt verschillende referentietypen op zowel het transport- als berichtbeveiligingsniveau. U kunt een type referentie opgeven voor een WCF-binding.

In veel landen of regio's is een rijbewijs een voorbeeld van een referentie. Een licentie bevat gegevens die de identiteit en mogelijkheden van een gebruiker vertegenwoordigen. Het bevat bewijs van bezit in de vorm van het beeld van de bezitsbezitgever. De licentie wordt uitgegeven door een vertrouwde instantie, meestal een overheidslicentieafdeling. De licentie is verzegeld en kan een hologram bevatten, waarin wordt aangegeven dat er niet met is geknoeid of vervalst.

Denk bijvoorbeeld aan twee typen referenties die worden ondersteund in WCF: gebruikersnaam en (X.509)-certificaatreferenties.

Voor de gebruikersnaamreferentie vertegenwoordigt de gebruikersnaam de geclaimde identiteit en het wachtwoord geeft het bewijs van bezit weer. De vertrouwde instantie in dit geval is het systeem dat de gebruikersnaam en het wachtwoord valideert.

In de certificaatreferentie kunnen de onderwerpnaam, alternatieve onderwerpnaam of specifieke velden in het certificaat worden gebruikt om de geclaimde identiteit en/of mogelijkheden weer te geven. Bewijs van het bezit van de gegevens in de referentie wordt tot stand gebracht met behulp van de bijbehorende persoonlijke sleutel om een handtekening te genereren.

Zie Bindingen en beveiligings - en beveiligingsgedrag voor meer informatie over beveiliging van programmeeroverdracht en het opgeven van referenties.

Referentietypen transportclient

In de volgende tabel ziet u de mogelijke waarden die worden gebruikt bij het maken van een toepassing die gebruikmaakt van overdrachtsbeveiliging. U kunt deze waarden gebruiken in code- of bindingsinstellingen.

Instelling Beschrijving
Geen Hiermee geeft u op dat de client geen referenties hoeft te presenteren. Dit vertaalt zich naar een anonieme client.
Basis Hiermee geeft u basisverificatie op. Zie RFC2617 http-verificatie: basis- en samenvattingsverificatie voor meer informatie.
Digest Hiermee geeft u digest-verificatie op. Zie RFC2617 http-verificatie: basis- en samenvattingsverificatie voor meer informatie.
Ntlm Hiermee geeft u Windows-verificatie op met behulp van SSPI-onderhandeling in een Windows-domein.

SSPI-onderhandeling resulteert in het gebruik van het Kerberos-protocol of NT LanMan (NTLM).
Vensters Hiermee geeft u Windows-verificatie met behulp van SSPI op een Windows-domein. SSPI kiest uit het Kerberos-protocol of NTLM als verificatieservice.

SSPI probeert eerst kerberos-protocol; als dat mislukt, wordt NTLM gebruikt.
Certificaat Voert clientverificatie uit met behulp van een certificaat, meestal X.509.

Typen berichtclientreferenties

In de volgende tabel ziet u de mogelijke waarden die worden gebruikt bij het maken van een toepassing die gebruikmaakt van berichtbeveiliging. U kunt deze waarden gebruiken in code- of bindingsinstellingen.

Instelling Beschrijving
Geen Hiermee kan de service communiceren met anonieme clients.
Vensters Hiermee kunnen SOAP-berichtenuitwisselingen plaatsvinden onder de geverifieerde context van een Windows-referentie. Maakt gebruik van het SSPI-onderhandelingsmechanisme om te kiezen uit het Kerberos-protocol of NTLM als verificatieservice.
Username Hiermee kan de service vereisen dat de client wordt geverifieerd met een gebruikersnaamreferentie. Houd er rekening mee dat WCF geen cryptografische bewerkingen met de gebruikersnaam toestaat, zoals het genereren van een handtekening of het versleutelen van gegevens. Als zodanig dwingt WCF af dat het transport wordt beveiligd bij het gebruik van gebruikersnaamreferenties.
Certificaat Hiermee kan de service vereisen dat de client wordt geverifieerd met behulp van een certificaat.
Cardspace Hiermee kan de service vereisen dat de client wordt geverifieerd met behulp van een CardSpace.

Programmeerreferenties

Voor elk van de clientreferentietypen kunt u met het WCF-programmeermodel de referentiewaarden en referentievalidators opgeven met behulp van servicegedrag en kanaalgedrag.

WCF-beveiliging heeft twee typen referenties: gedrag van servicereferenties en gedrag van kanaalreferenties. Het gedrag van referenties in WCF geeft de werkelijke gegevens op, namelijk referenties die worden gebruikt om te voldoen aan de beveiligingsvereisten die worden uitgedrukt via bindingen. In WCF is een clientklasse het runtimeonderdeel dat wordt geconverteerd tussen aanroepen van bewerkingen en berichten. Alle clients nemen de klasse over ClientBase<TChannel> . Met ClientCredentials de eigenschap op de basisklasse kunt u verschillende waarden van clientreferenties opgeven.

In WCF worden servicegedragkenmerken toegepast op de klasse die een servicecontract (interface) implementeert om de service programmatisch te beheren. Met de ServiceCredentials klasse kunt u certificaten opgeven voor servicereferenties en clientvalidatie-instellingen voor verschillende clientreferentietypen.

Onderhandelingsmodel voor berichtbeveiliging

Met de berichtbeveiligingsmodus kunt u overdrachtsbeveiliging uitvoeren, zodat de servicereferentie is geconfigureerd op de client buiten de band. Als u bijvoorbeeld een certificaat gebruikt dat is opgeslagen in het Windows-certificaatarchief, moet u een hulpprogramma zoals een MMC-module (Microsoft Management Console) gebruiken.

Met de berichtbeveiligingsmodus kunt u ook overdrachtsbeveiliging uitvoeren, zodat de servicereferentie wordt uitgewisseld met de client als onderdeel van een eerste onderhandeling. Als u onderhandeling wilt inschakelen, stelt u de NegotiateServiceCredential eigenschap in op true.

Zie ook