Overzicht van Windows Communication Foundation-beveiliging
Windows Communication Foundation (WCF) is een op SOAP-berichten gebaseerd gedistribueerd programmeerplatform en het beveiligen van berichten tussen clients en services is essentieel voor het beveiligen van gegevens. WCF biedt een veelzijdig en interoperabel platform voor het uitwisselen van beveiligde berichten op basis van zowel de bestaande beveiligingsinfrastructuur als de erkende beveiligingsstandaarden voor SOAP-berichten.
WCF maakt gebruik van concepten die bekend zijn als u beveiligde, gedistribueerde toepassingen hebt gebouwd met bestaande technologieën zoals HTTPS, geïntegreerde Beveiliging van Windows of gebruikersnamen en wachtwoorden om gebruikers te verifiëren. WCF kan niet alleen worden geïntegreerd met bestaande beveiligingsinfrastructuren, maar breidt ook gedistribueerde beveiliging uit buiten Windows-domeinen met behulp van beveiligde SOAP-berichten. Overweeg WCF een implementatie van bestaande beveiligingsmechanismen met het grote voordeel van het gebruik van SOAP als het protocol naast bestaande protocollen. Referenties die een client of een service identificeren, zoals gebruikersnaam en wachtwoord of X.509-certificaten, hebben bijvoorbeeld interoperabele SOAP-profielen op basis van XML. Met behulp van deze profielen worden berichten veilig uitgewisseld door gebruik te maken van open specificaties zoals digitale XML-handtekeningen en XML-versleuteling. Zie Web Services-protocollen die worden ondersteund door door systeem geleverde interoperabiliteitsbindingen voor een lijst met specificaties.
Een andere parallelle is het Component Object Model (COM) op het Windows-platform, waarmee beveiligde, gedistribueerde toepassingen mogelijk zijn. COM heeft een uitgebreid beveiligingsmechanisme waarbij beveiligingscontext tussen onderdelen kan worden gestroomd; dit mechanisme dwingt integriteit, vertrouwelijkheid en verificatie af. COM maakt echter geen platformoverschrijdende beveiligde berichten mogelijk, zoals WCF wel. Met WCF kunt u services en clients bouwen die afkomstig zijn van Windows-domeinen via internet. De interoperabele berichten van WCF zijn essentieel voor het bouwen van dynamische, bedrijfsgestuurde services die u helpen vertrouwen te hebben in de beveiliging van uw gegevens.
Voordelen van Windows Communication Foundation-beveiliging
WCF is een gedistribueerd programmeerplatform op basis van SOAP-berichten. Met WCF kunt u toepassingen maken die fungeren als zowel services als serviceclients en berichten maken en verwerken van een onbeperkt aantal andere services en clients. In een dergelijke gedistribueerde toepassing kunnen berichten van knooppunt naar knooppunt stromen, via firewalls, op internet en via talloze SOAP-tussenpersonen. Dit introduceert een verscheidenheid aan beveiligingsrisico's voor berichten. In de volgende voorbeelden ziet u enkele veelvoorkomende bedreigingen die WCF-beveiliging kan helpen beperken bij het uitwisselen van berichten tussen entiteiten:
Observatie van netwerkverkeer om gevoelige informatie te verkrijgen. In een scenario voor onlinebankieren vraagt een klant bijvoorbeeld om de overboeking van het ene naar het andere account. Een kwaadwillende gebruiker onderschept het bericht en voert later met het rekeningnummer en wachtwoord een overboeking uit van het gecompromitteerde account.
Malafide entiteiten die fungeren als services zonder kennis van de client. In dit scenario fungeert een kwaadwillende gebruiker (de rogue) als een onlineservice en onderschept berichten van de client om gevoelige informatie te verkrijgen. Vervolgens gebruikt de rogue de gestolen gegevens om geld over te dragen van de gecompromitteerde rekening. Deze aanval is ook bekend als een phishing-aanval.
Wijziging van berichten om een ander resultaat te verkrijgen dan de beller bedoelde. Als u bijvoorbeeld het rekeningnummer wijzigt waarop een storting wordt gedaan, kan het geld naar een malafide rekening gaan.
Hacker replays waarin een overlast hacker dezelfde inkooporder replay. Een online boekwinkel ontvangt bijvoorbeeld honderden bestellingen en stuurt de boeken naar een klant die ze niet heeft besteld.
Onvermogen van een service om een client te verifiëren. In dit geval kan de service niet garanderen dat de juiste persoon de transactie heeft uitgevoerd.
Kortom: overdrachtsbeveiliging biedt de volgende garanties:
Verificatie van service-eindpunt (respondent).
Verificatie van client-principal (initiator).
Berichtintegriteit.
Vertrouwelijkheid van berichten.
Detectie van opnieuw afspelen.
Integratie met bestaande beveiligingsinfrastructuren
Vaak beschikken webserviceimplementaties over bestaande beveiligingsoplossingen, bijvoorbeeld Secure Sockets Layer (SSL) of het Kerberos-protocol. Sommigen profiteren van een beveiligingsinfrastructuur die al is geïmplementeerd, zoals Windows-domeinen die gebruikmaken van Active Directory. Het is vaak noodzakelijk om te integreren met deze bestaande technologieën terwijl nieuwere technologieën worden geëvalueerd en gebruikt.
WCF-beveiliging kan worden geïntegreerd met bestaande transportbeveiligingsmodellen en kan gebruikmaken van bestaande infrastructuur voor nieuwere overdrachtsbeveiligingsmodellen op basis van SOAP-berichtbeveiliging.
Integratie met bestaande verificatiemodellen
Een belangrijk onderdeel van elk communicatiebeveiligingsmodel is de mogelijkheid om entiteiten in communicatie te identificeren en te verifiëren. Deze entiteiten in communicatie gebruiken 'digitale identiteiten' of referenties om zichzelf te verifiëren met de communicerende peers. Naarmate gedistribueerde communicatieplatforms zich verder ontwikkelen, zijn verschillende referentieverificatie- en gerelateerde beveiligingsmodellen geïmplementeerd. Op internet is het gebruik van een gebruikersnaam en wachtwoord bijvoorbeeld gebruikelijk om gebruikers te identificeren. Op het intranet wordt het gebruik van een Kerberos-domeincontroller voor het maken van back-ups van gebruikers- en serviceverificatie gebruikelijk. In bepaalde scenario's, zoals tussen twee zakenpartners, kunnen certificaten worden gebruikt om de partners wederzijds te verifiëren.
In de wereld van webservices, waarbij dezelfde service mogelijk wordt blootgesteld aan interne zakelijke klanten en aan externe partners of internetklanten, is het dus belangrijk dat de infrastructuur voorziet in integratie met deze bestaande beveiligingsverificatiemodellen. WCF-beveiliging ondersteunt een groot aantal referentietypen (verificatiemodellen), waaronder:
Anonieme beller.
Clientreferenties voor gebruikersnaam.
Certificaatclientreferenties.
Windows (zowel Kerberos-protocol als NT LanMan [NTLM]).
Standaarden en interoperabiliteit
In een wereld met grote bestaande implementaties is homogeniteit zeldzaam. Gedistribueerde computing-/communicatieplatforms moeten samenwerken met de technologieën die verschillende leveranciers aanbieden. Op dezelfde manier moet de beveiliging ook interoperabel zijn.
Om interoperabele beveiligingssystemen mogelijk te maken, hebben bedrijven die actief zijn in de webservicesindustrie verschillende standaarden geschreven. In het bijzonder met betrekking tot beveiliging zijn enkele belangrijke standaarden voorgesteld: WS-Security: SOAP Message Security (geaccepteerd door de instantie van OASIS-standaarden en voorheen bekend als WS-Security), WS-Trust, WS-SecureConversation en WS-SecurityPolicy.
WCF ondersteunt een groot aantal interoperabiliteitsscenario's. De BasicHttpBinding klasse is gericht op het BSP (Basic Security Profile) en de WSHttpBinding klasse is gericht op de nieuwste beveiligingsstandaarden, zoals WS-Security 1.1 en WS-SecureConversation. Door aan deze standaarden te voldoen, kan WCF-beveiliging samenwerken en integreren met webservices die worden gehost op andere besturingssystemen en platforms dan Microsoft Windows.
Functionele gebieden van WCF-beveiliging
WCF-beveiliging is onderverdeeld in drie functionele gebieden: overdrachtsbeveiliging, toegangsbeheer en controle. De volgende secties bespreken deze gebieden kort en bieden koppelingen voor meer informatie.
Beveiliging overdragen
Overdrachtsbeveiliging omvat drie belangrijke beveiligingsfuncties: integriteit, vertrouwelijkheid en verificatie. Integriteit is de mogelijkheid om te detecteren of er met een bericht is geknoeid. Vertrouwelijkheid is de mogelijkheid om een bericht onleesbaar te houden door iemand anders dan de beoogde ontvanger. Dit wordt bereikt via cryptografie. Verificatie is de mogelijkheid om een geclaimde identiteit te verifiëren. Samen helpen deze drie functies ervoor te zorgen dat berichten veilig van het ene punt naar het andere binnenkomen.
Transport- en berichtbeveiligingsmodi
Er worden twee hoofdmechanismen gebruikt voor het implementeren van overdrachtsbeveiliging in WCF: transportbeveiligingsmodus en berichtbeveiligingsmodus .
Transportbeveiligingsmodus maakt gebruik van een protocol op transportniveau, zoals HTTPS, om overdrachtsbeveiliging te bereiken. De transportmodus heeft het voordeel dat veel wordt gebruikt, beschikbaar is op veel platforms en minder rekenkundig complex is. Het heeft echter het nadeel dat berichten alleen van punt-naar-punt worden beveiligd.
De berichtbeveiligingsmodus gebruikt daarentegen WS-Security (en andere specificaties) om overdrachtsbeveiliging te implementeren. Omdat de berichtbeveiliging rechtstreeks wordt toegepast op de SOAP-berichten en zich in de SOAP-enveloppen bevindt, samen met de toepassingsgegevens, heeft het het voordeel dat het transportprotocolonafhankelijk, uitbreidbaarder is en end-to-end beveiliging (versus punt-naar-punt) garandeert; het nadeel is dat het meerdere keren langzamer is dan de transportbeveiligingsmodus, omdat het te maken heeft met de XML-aard van de SOAP-berichten.
Zie Services en clients beveiligen voor meer informatie over deze verschillen.
Een derde beveiligingsmodus maakt gebruik van beide eerdere modi en biedt voordelen van beide. Deze modus wordt aangeroepen TransportWithMessageCredential
. In deze modus wordt berichtbeveiliging gebruikt om de client en transportbeveiliging te verifiëren om de server te verifiëren en vertrouwelijkheid en integriteit van berichten te bieden. Hierdoor is de TransportWithMessageCredential
beveiligingsmodus bijna net zo snel als de transportbeveiligingsmodus en biedt clientverificatie uitbreidbaarheid op dezelfde manier als berichtbeveiliging. In tegenstelling tot de berichtbeveiligingsmodus biedt deze echter geen volledige end-to-end beveiliging.
Toegangsbeheer
Toegangsbeheer wordt ook wel autorisatie genoemd. Met autorisatie kunnen verschillende gebruikers verschillende bevoegdheden hebben om gegevens weer te geven. Omdat de personeelsbestanden van een bedrijf bijvoorbeeld gevoelige werknemersgegevens bevatten, mogen alleen managers werknemersgegevens bekijken. Verder kunnen managers alleen gegevens voor hun direct ondergeschikten bekijken. In dit geval is toegangsbeheer gebaseerd op zowel de rol (manager) als de specifieke identiteit van de manager (om te voorkomen dat één manager de werknemersrecords van een andere manager bekijkt).
In WCF worden functies voor toegangsbeheer geboden via integratie met de Common Language Runtime (CLR) PrincipalPermissionAttribute en via een set API's die het identiteitsmodel worden genoemd. Zie Beveiliging uitbreiden voor meer informatie over toegangsbeheer en op claims gebaseerde autorisatie.
Controle
Controle is de logboekregistratie van beveiligings gebeurtenissen in het Windows-gebeurtenislogboek. U kunt beveiligingsgebeurtenissen vastleggen, zoals verificatiefouten (of successen). Zie Controle voor meer informatie. Zie Voor meer informatie over programmeren: Beveiligingsgebeurtenissen controleren.
Zie ook
- PrincipalPermissionAttribute
- Services beveiligen
- Algemene beveiligingsscenario's
- Bindingen en beveiliging
- Services en clients beveiligen
- Verificatie
- Autorisatie
- Federatie en uitgegeven tokens
- Controle
- Beveiligingsrichtlijnen en aanbevolen procedures
- Services configureren met behulp van configuratiebestanden
- Door het systeem geleverde bindingen
- Overzicht van het maken van eindpunten
- Beveiliging uitbreiden
- Beveiligingsmodel voor Windows Server App Fabric