Dela via


Säkerhetsöversikt för Windows Communication Foundation

Windows Communication Foundation (WCF) är en SOAP-meddelandebaserad distribuerad programmeringsplattform, och att skydda meddelanden mellan klienter och tjänster är viktigt för att skydda data. WCF är en mångsidig och driftskompatibel plattform för utbyte av säkra meddelanden baserat på både den befintliga säkerhetsinfrastrukturen och de erkända säkerhetsstandarderna för SOAP-meddelanden.

WCF använder begrepp som är bekanta om du har skapat säkra, distribuerade program med befintliga tekniker som HTTPS, Windows-integrerad säkerhet eller användarnamn och lösenord för att autentisera användare. WCF integreras inte bara med befintliga säkerhetsinfrastrukturer, utan utökar även distribuerad säkerhet utöver Domäner med endast Windows med hjälp av säkra SOAP-meddelanden. Överväg WCF som en implementering av befintliga säkerhetsmekanismer med den största fördelen att använda SOAP som protokoll utöver befintliga protokoll. Till exempel har autentiseringsuppgifter som identifierar en klient eller en tjänst, till exempel användarnamn och lösenord eller X.509-certifikat, kompatibla XML-baserade SOAP-profiler. Med hjälp av dessa profiler utbyts meddelanden på ett säkert sätt genom att använda öppna specifikationer som digitala XML-signaturer och XML-kryptering. En lista över specifikationer finns i Web Services-protokoll som stöds av systembaserade samverkansbindningar.

En annan parallell är komponentobjektmodellen (COM) på Windows-plattformen, som möjliggör säkra, distribuerade program. COM har en omfattande säkerhetsmekanism där säkerhetskontexten kan flöda mellan komponenter. Den här mekanismen tillämpar integritet, konfidentialitet och autentisering. Com aktiverar dock inte plattformsoberoende, säkra meddelanden som WCF gör. Med hjälp av WCF kan du skapa tjänster och klienter som sträcker sig från Windows-domäner över hela Internet. De samverkande meddelandena från WCF är viktiga för att skapa dynamiska, affärsdrivna tjänster som hjälper dig att känna dig trygg i säkerheten för din information.

Säkerhetsfördelar med Windows Communication Foundation

WCF är en distribuerad programmeringsplattform baserad på SOAP-meddelanden. Med hjälp av WCF kan du skapa program som fungerar som både tjänster och tjänstklienter och skapa och bearbeta meddelanden från ett obegränsat antal andra tjänster och klienter. I ett sådant distribuerat program kan meddelanden flöda från nod till nod, via brandväggar, till Internet och via flera SOAP-mellanhänder. Detta introducerar en mängd olika hot mot meddelandesäkerhet. Följande exempel illustrerar några vanliga hot som WCF-säkerhet kan hjälpa till att minimera vid utbyte av meddelanden mellan entiteter:

  • Övervakning av nätverkstrafik för att få känslig information. I ett onlinebankscenario begär en klient till exempel överföring av medel från ett konto till ett annat. En obehörig användare fångar upp meddelandet och utför senare en överföring av pengar från det komprometterade kontot med kontonumret och lösenordet.

  • Oseriösa entiteter som fungerar som tjänster utan kännedom om klienten. I det här scenariot fungerar en obehörig användare (den obehöriga) som en onlinetjänst och fångar upp meddelanden från klienten för att hämta känslig information. Sedan använder skurken stulna data för att överföra pengar från det komprometterade kontot. Den här attacken är också känd som en nätfiskeattack.

  • Ändring av meddelanden för att få ett annat resultat än den anropande avsett. Om du till exempel ändrar kontonumret som en insättning görs till kan pengarna gå till ett oseriöst konto.

  • Hacker spelar upp där en olägenhetshacker spelar upp samma inköpsorder. Till exempel får en onlinebokhandel hundratals beställningar och skickar böckerna till en kund som inte har beställt dem.

  • En tjänst kan inte autentisera en klient. I det här fallet kan tjänsten inte garantera att rätt person utförde transaktionen.

Sammanfattningsvis ger överföringssäkerhet följande garantier:

  • Autentisering med tjänstslutpunkt (svarande).

  • Klienthuvudnamnsautentisering (initierare).

  • Meddelandeintegritet.

  • Meddelandesekretess.

  • Upprepningsidentifiering.

Integrering med befintliga säkerhetsinfrastrukturer

Webbtjänstdistributioner har ofta befintliga säkerhetslösningar på plats, till exempel SSL (Secure Sockets Layer) eller Kerberos-protokollet. Vissa drar nytta av en säkerhetsinfrastruktur som redan har distribuerats, till exempel Windows-domäner som använder Active Directory. Det är ofta nödvändigt att integrera med dessa befintliga tekniker samtidigt som man utvärderar och antar nyare tekniker.

WCF-säkerhet integreras med befintliga transportsäkerhetsmodeller och kan utnyttja befintlig infrastruktur för nyare överföringssäkerhetsmodeller baserat på SOAP-meddelandesäkerhet.

Integrering med befintliga autentiseringsmodeller

En viktig del av alla kommunikationssäkerhetsmodeller är möjligheten att identifiera och autentisera entiteter i kommunikationen. Dessa entiteter i kommunikation använder "digitala identiteter" eller autentiseringsuppgifter för att autentisera sig själva med de kommunicerande peer-datorerna. I takt med att de distribuerade kommunikationsplattformarna har utvecklats har olika autentiseringsuppgifter och relaterade säkerhetsmodeller implementerats. På Internet är det till exempel vanligt att använda användarnamn och lösenord för att identifiera användare. I intranätet blir det vanligt att använda en Kerberos-domänkontrollant för att säkerhetskopiera användar- och tjänstautentisering. I vissa scenarier, till exempel mellan två affärspartner, kan certifikat användas för att ömsesidigt autentisera partnerna.

I en värld av webbtjänster, där samma tjänst kan exponeras för interna företagskunder samt för externa partner eller Internetkunder, är det därför viktigt att infrastrukturen tillhandahåller integrering med dessa befintliga säkerhetsautentiseringsmodeller. WCF-säkerhet stöder en mängd olika typer av autentiseringsuppgifter (autentiseringsmodeller), inklusive:

  • Anonym uppringare.

  • Autentiseringsuppgifter för användarnamnklient.

  • Certifikatklientautentiseringsuppgifter.

  • Windows (både Kerberos-protokoll och NT LanMan [NTLM]).

Standarder och samverkan

I en värld med stora befintliga distributioner är homogenitet sällsynt. Plattformar för distribuerad databehandling/kommunikation måste samverka med de tekniker som olika leverantörer erbjuder. På samma sätt måste säkerheten också vara driftskompatibel.

För att möjliggöra samverkande säkerhetssystem har företag som är aktiva inom webbtjänstbranschen skapat en mängd olika standarder. Specifikt när det gäller säkerhet har några viktiga standarder föreslagits: WS-Security: SOAP Message Security (accepteras av OASIS-standardorganet och kallades tidigare WS-Security), WS-Trust, WS-SecureConversation och WS-SecurityPolicy.

WCF stöder en mängd olika samverkansscenarier. Klassen BasicHttpBinding riktar sig till BSP (Basic Security Profile) och WSHttpBinding klassen är riktad mot de senaste säkerhetsstandarderna, till exempel WS-Security 1.1 och WS-SecureConversation. Genom att följa dessa standarder kan WCF-säkerhet samverka och integreras med webbtjänster som finns på andra operativsystem och plattformar än Microsoft Windows.

WCF-säkerhetsfunktionsområden

WCF-säkerhet är indelat i tre funktionella områden: överföringssäkerhet, åtkomstkontroll och granskning. I följande avsnitt beskrivs dessa områden kortfattat och länkar för mer information.

Överföringssäkerhet

Överföringssäkerhet omfattar tre viktiga säkerhetsfunktioner: integritet, konfidentialitet och autentisering. Integritet är möjligheten att identifiera om ett meddelande har manipulerats. Konfidentialitet är möjligheten att hålla ett meddelande oläsligt av någon annan än den avsedda mottagaren. Detta uppnås genom kryptografi. Autentisering är möjligheten att verifiera en påstådd identitet. Tillsammans hjälper dessa tre funktioner till att säkerställa att meddelandena kommer från en punkt till en annan på ett säkert sätt.

Transport- och meddelandesäkerhetslägen

Två huvudsakliga mekanismer används för att implementera överföringssäkerhet i WCF: transportsäkerhetsläge och meddelandesäkerhetsläge .

  • Transportsäkerhetsläget använder ett protokoll på transportnivå, till exempel HTTPS, för att uppnå överföringssäkerhet. Transportläget har fördelen att vara allmänt antaget, tillgängligt på många plattformar och mindre beräkningsmässigt komplext. Det har dock nackdelen att endast skydda meddelanden från punkt till punkt.

  • Meddelandesäkerhetsläget använder å andra sidan WS-Security (och andra specifikationer) för att implementera överföringssäkerhet. Eftersom meddelandesäkerheten tillämpas direkt på SOAP-meddelandena och finns i SOAP-kuverten, tillsammans med programdata, har den fördelen att den är transportprotokolloberoende, mer utökningsbar och säkerställer säkerhet från slutpunkt till slutpunkt (jämfört med punkt-till-punkt); Det har nackdelen att vara flera gånger långsammare än transportsäkerhetsläget eftersom det måste hantera XML-typen av SOAP-meddelanden.

Mer information om dessa skillnader finns i Skydda tjänster och klienter.

Ett tredje säkerhetsläge använder båda tidigare lägen och ger fördelar med båda. Det här läget kallas TransportWithMessageCredential. I det här läget används meddelandesäkerhet för att autentisera klienten och transportsäkerheten används för att autentisera servern och tillhandahålla meddelandesekretess och integritet. Tack vare detta TransportWithMessageCredential är säkerhetsläget nästan lika snabbt som transportsäkerhetsläget och ger utökningsbarhet för klientautentisering på samma sätt som meddelandesäkerhet. Men till skillnad från meddelandesäkerhetsläget ger det inte fullständig säkerhet från slutpunkt till slutpunkt.

Åtkomstkontroll

Åtkomstkontroll kallas även auktorisering. Med auktorisering kan olika användare ha olika behörighet att visa data. Eftersom ett företags personalfiler till exempel innehåller känsliga personaldata kan endast chefer visa anställdas data. Dessutom kan chefer endast visa data för sina direkta rapporter. I det här fallet baseras åtkomstkontrollen på både rollen ("chef") och den specifika identiteten för chefen (för att förhindra att en chef tittar på en annan chefs personalposter).

I WCF tillhandahålls funktioner för åtkomstkontroll genom integrering med common language runtime (CLR) PrincipalPermissionAttribute och via en uppsättning API:er som kallas identitetsmodellen. Mer information om åtkomstkontroll och anspråksbaserad auktorisering finns i Utöka säkerhet.

Granskning

Granskning är loggning av säkerhetshändelser till Windows-händelseloggen. Du kan logga säkerhetsrelaterade händelser, till exempel autentiseringsfel (eller lyckade). Mer information finns i Granskning. Information om programmering finns i Så här: Granska säkerhetshändelser.

Se även