Dela via


Sekretessinformation för Windows Communication Foundation

Microsoft har åtagit sig att skydda slutanvändares sekretess. När du skapar ett program med Windows Communication Foundation (WCF), version 3.0, kan ditt program påverka slutanvändarsekretessen. Ditt program kan till exempel uttryckligen samla in användarkontaktinformation, eller begära eller skicka information via Internet till webbplatsen. Om du bäddar in Microsoft-teknik i ditt program kan tekniken ha ett eget beteende som kan påverka sekretessen. WCF skickar ingen information till Microsoft från ditt program om inte du eller slutanvändaren väljer att skicka den till oss.

WCF i korthet

WCF är ett distribuerat meddelanderamverk med hjälp av Microsoft .NET Framework som gör det möjligt för utvecklare att skapa distribuerade program. Meddelanden som förmedlas mellan två program innehåller rubrik- och brödtextinformation.

Rubriker kan innehålla meddelanderoutning, säkerhetsinformation, transaktioner med mera beroende på vilka tjänster som används av programmet. Meddelanden krypteras vanligtvis som standard. Det enda undantaget är när du använder BasicHttpBinding, som har utformats för användning med icke-skyddade äldre webbtjänster. Som programdesigner ansvarar du för den slutliga designen. Meddelanden i SOAP-brödtexten innehåller programspecifika data. Dessa data, till exempel programdefinierad personlig information, kan dock skyddas med hjälp av WCF-kryptering eller sekretessfunktioner. I följande avsnitt beskrivs de funktioner som kan påverka sekretessen.

Meddelandetjänster

Varje WCF-meddelande har en adressrubrik som anger meddelandets mål och vart svaret ska gå.

Adresskomponenten för en slutpunktsadress är en URI (Uniform Resource Identifier) som identifierar slutpunkten. Adressen kan vara en nätverksadress eller en logisk adress. Adressen kan innehålla datornamn (värdnamn, fullständigt domännamn) och en IP-adress. Slutpunktsadressen kan också innehålla en globalt unik identifierare (GUID) eller en samling GUID:er för tillfällig adressering som används för att urskilja varje adress. Varje meddelande innehåller ett meddelande-ID som är ett GUID. Den här funktionen följer referensstandarden för WS-adressering.

WCF-meddelandelagret skriver ingen personlig information till den lokala datorn. Den kan dock sprida personlig information på nätverksnivå om en tjänstutvecklare har skapat en tjänst som exponerar sådan information (till exempel genom att använda en persons namn i ett slutpunktsnamn eller inkludera personlig information i slutpunktens beskrivningsspråk för webbtjänster, men som inte kräver att klienter använder https för att få åtkomst till WSDL). Om en utvecklare dessutom kör verktyget ServiceModel Metadata Utility Tool (Svcutil.exe) mot en slutpunkt som exponerar personlig information, kan verktygets utdata innehålla den informationen och utdatafilen skrivs till den lokala hårddisken.

Värd

Med värdfunktionen i WCF kan program starta på begäran eller aktivera portdelning mellan flera program. Ett WCF-program kan finnas i Internet Information Services (IIS), ungefär som ASP.NET.

Värdtjänster exponerar inte någon specifik information i nätverket och lagrar inte data på datorn.

Meddelandesäkerhet

WCF-säkerhet tillhandahåller säkerhetsfunktionerna för meddelandeprogram. Säkerhetsfunktionerna som tillhandahålls omfattar autentisering och auktorisering.

Autentiseringen utförs genom att autentiseringsuppgifterna skickas mellan klienterna och tjänsterna. Autentisering kan antingen ske via säkerhet på transportnivå eller via SOAP-säkerhet på meddelandenivå enligt följande:

  • I SOAP-meddelandesäkerhet utförs autentisering via autentiseringsuppgifter som användarnamn/lösenord, X.509-certifikat, Kerberos-biljetter och SAML-token, som alla kan innehålla personlig information, beroende på utfärdaren.

  • Med transportsäkerhet utförs autentisering via traditionella transportautentiseringsmekanismer som HTTP-autentiseringsscheman (Basic, Digest, Negotiate, Integrated Windows Authorization, NTLM, None och Anonymous) och formulärautentisering.

Autentisering kan resultera i en säker session som upprättas mellan de kommunicerande slutpunkterna. Sessionen identifieras av ett GUID som varar hela säkerhetssessionens livslängd. I följande tabell visas vad som behålls och var.

Data Lagring
Presentationsuppgifter, till exempel användarnamn, X.509-certifikat, Kerberos-token och referenser till autentiseringsuppgifter. Standardhanteringsmekanismer för Windows-autentiseringsuppgifter, till exempel Windows-certifikatarkivet.
Information om användarmedlemskap, till exempel användarnamn och lösenord. ASP.NET medlemskapsleverantörer.
Identitetsinformation om tjänsten som används för att autentisera tjänsten till klienter. Slutpunktsadress för tjänsten.
Information om uppringaren. Granskningsloggar.

Granskning

Granskning registrerar lyckade och misslyckade autentiserings- och auktoriseringshändelser. Granskningsposter innehåller följande data: tjänst-URI, åtgärds-URI och anroparens identifiering.

Granskning registrerar även när administratören ändrar konfigurationen av meddelandeloggning (aktiverar eller inaktiverar den), eftersom meddelandeloggning kan logga programspecifika data i rubriker och organ. För Windows XP loggas en post i programhändelseloggen. För Windows Vista och Windows Server 2003 loggas en post i säkerhetshändelseloggen.

Transaktioner

Transaktionsfunktionen tillhandahåller transaktionstjänster till ett WCF-program.

Transaktionshuvuden som används i transaktionsspridningen kan innehålla transaktions-ID:t eller ID:t för enlistning, som är GUID:er.

Funktionen Transaktioner använder Transaktionshanteraren för Microsoft Distributed Transaction Coordinator (MSDTC) (en Windows-komponent) för att hantera transaktionstillstånd. Som standard krypteras kommunikationen mellan transaktionshanterare. Transaktionshanterare kan logga slutpunktsreferenser, transaktions-ID:n och enlistnings-ID:n som en del av sitt varaktiga tillstånd. Livslängden för det här tillståndet bestäms av livslängden för Transaktionshanterarens loggfil. MSDTC-tjänsten äger och underhåller loggen.

Funktionen Transaktioner implementerar WS-Coordination- och WS-Atomic Transaction-standarderna.

Tillförlitliga sessioner

Tillförlitliga sessioner i WCF ger överföring av meddelanden när transport- eller mellanliggande fel inträffar. De ger en exakt en gång överföring av meddelanden även när den underliggande transporten kopplas från (till exempel en TCP-anslutning i ett trådlöst nätverk) eller förlorar ett meddelande (en HTTP-proxy som släpper ett utgående eller inkommande meddelande). Tillförlitliga sessioner återställer också omordning av meddelanden (vilket kan inträffa vid multipath-routning), vilket bevarar ordningen i vilken meddelandena skickades.

Tillförlitliga sessioner implementeras med WS-ReliableMessaging-protokollet (WS-RM). De lägger till WS-RM-huvuden som innehåller sessionsinformation, som används för att identifiera alla meddelanden som är associerade med en viss tillförlitlig session. Varje WS-RM-session har en identifierare, som är ett GUID.

Ingen personlig information behålls på slutanvändarens dator.

Kanaler i kö

Köer lagrar meddelanden från ett sändande program för ett mottagande program och vidarebefordrar senare dessa meddelanden till det mottagande programmet. De hjälper till att säkerställa överföring av meddelanden från att skicka program till att ta emot program när till exempel det mottagande programmet är tillfälligt. WCF tillhandahåller stöd för köer med hjälp av Microsoft Message Queuing (MSMQ) som en transport.

Funktionen för köade kanaler lägger inte till rubriker i ett meddelande. I stället skapas ett Meddelandekömeddelande med lämpliga message Queuing-meddelandeegenskaper inställda och anropar Message Queuing-metoder för att placera meddelandet i kön För meddelandekö. Message Queuing är en valfri komponent som levereras med Windows.

Ingen information behålls på slutanvändarens dator av funktionen för köade kanaler, eftersom den använder Message Queuing som köinfrastruktur.

COM+-integrering

Den här funktionen omsluter befintliga COM- och COM+-funktioner för att skapa tjänster som är kompatibla med WCF-tjänster. Den här funktionen använder inte specifika rubriker och behåller inte data på slutanvändarens dator.

COM-tjänstmoniker

Detta ger en ohanterad omslutning till en standard-WCF-klient. Den här funktionen har inte specifika huvuden på kabeln och bevarar inte heller data på datorn.

Peer-kanal

En peer-kanal möjliggör utveckling av program med flera delar med hjälp av WCF. Multiparty-meddelanden sker i kontexten för ett nät. Nät identifieras med ett namn som noder kan ansluta till. Varje nod i peer-kanalen skapar en TCP-lyssnare på en användardefinierad port och upprättar anslutningar med andra noder i nätet för att säkerställa återhämtning. För att ansluta till andra noder i nätet utbyter noder även vissa data, inklusive lyssnaradressen och datorns IP-adresser, med andra noder i nätet. Meddelanden som skickas runt i nätet kan innehålla säkerhetsinformation som gäller avsändaren för att förhindra förfalskning och manipulering av meddelanden.

Ingen personlig information lagras på slutanvändarens dator.

IT-yrkeserfarenhet

Spårning

Diagnostikfunktionen i WCF-infrastrukturen loggar meddelanden som passerar genom transport- och tjänstmodelllagren och de aktiviteter och händelser som är associerade med dessa meddelanden. Den här funktionen är inaktiverad som standard. Det är aktiverat med hjälp av programmets konfigurationsfil och spårningsbeteendet kan ändras med WCF WMI-providern vid körning. När den är aktiverad genererar spårningsinfrastrukturen en diagnostikspårning som innehåller meddelanden, aktiviteter och bearbetningshändelser till konfigurerade lyssnare. Formatet och platsen för utdata bestäms av administratörens val av lyssnarkonfiguration, men är vanligtvis en XML-formaterad fil. Administratören ansvarar för att ange åtkomstkontrollistan (ACL) för spårningsfilerna. I synnerhet när den hanteras av Windows-aktiveringssystemet (WAS) bör administratören se till att filerna inte hanteras från den offentliga virtuella rotkatalogen om det inte är önskvärt.

Det finns två typer av spårning: Meddelandeloggning och diagnostisk spårning av tjänstmodell, som beskrivs i följande avsnitt. Varje typ konfigureras via sin egen spårningskälla: MessageLogging och System.ServiceModel. Båda dessa loggningsspårningskällor samlar in data som är lokala för programmet.

Meddelandeloggning

Med spårningskällan för meddelandeloggning (MessageLogging) kan en administratör logga de meddelanden som flödar genom systemet. Genom konfigurationen kan användaren välja att endast logga hela meddelanden eller meddelandehuvuden, om de ska loggas på transport- och/eller tjänstmodelllagren och om felaktiga meddelanden ska inkluderas. Användaren kan också konfigurera filtrering för att begränsa vilka meddelanden som loggas.

Som standard inaktiveras meddelandeloggning. Den lokala datoradministratören kan förhindra att administratören på programnivå aktiverar meddelandeloggning.

Krypterad och dekrypterad meddelandeloggning

Meddelanden loggas, krypteras eller dekrypteras enligt beskrivningen i följande termer.

Transportloggloggar meddelanden som tas emot och skickas på transportnivå. Dessa meddelanden innehåller alla rubriker och kan krypteras innan de skickas på tråden och när de tas emot.

Om meddelanden krypteras innan de skickas på tråden och när de tas emot loggas även de krypterade. Ett undantag är när ett säkerhetsprotokoll används (https): de loggas sedan dekrypterade innan de skickas och efter att ha tagits emot även om de är krypterade på tråden.

Tjänstloggning loggar meddelanden som tagits emot eller skickats på tjänstmodellnivå, efter att kanalhuvudbearbetningen har utförts, strax före och efter att användarkoden har angetts.

Meddelanden som loggas på den här nivån dekrypteras även om de har skyddats och krypterats på tråden.

Felaktig meddelandeloggning loggar meddelanden som WCF-infrastrukturen inte kan förstå eller bearbeta.

Meddelanden loggas som de är, dvs. krypterade eller inte

När meddelanden loggas i dekrypterat eller okrypterat formulär tar WCF som standard bort säkerhetsnycklar och potentiellt personlig information från meddelandena innan de loggas. I nästa avsnitt beskrivs vilken information som tas bort och när. Datoradministratören och programdistributionsverktyget måste båda vidta vissa konfigurationsåtgärder för att ändra standardbeteendet till loggnycklar och potentiellt personlig information.

Information som tagits bort från meddelandehuvuden vid loggning av dekrypterade/okrypterade meddelanden

När meddelanden loggas i dekrypterat eller okrypterat formulär tas säkerhetsnycklar och potentiellt personlig information bort som standard från meddelandehuvuden och meddelandekroppar innan de loggas. Följande lista visar vad WCF anser vara nycklar och potentiellt personlig information.

Nycklar som har tagits bort:

  • För xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust" och xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"

    wst:BinarySecret wst:Entropy

  • För xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.1.xsd" och xmlns:wsse="http://docs.oasis-open.org/wss/2005/xx/oasis-2005xx-wss-wssecurity-secext-1.1.xsd"

    wsse:Password wsse:Nonce

Potentiellt personlig information som tas bort:

  • För xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.1.xsd" och xmlns:wsse="http://docs.oasis-open.org/wss/2005/xx/oasis-2005xx-wss-wssecurity-secext-1.1.xsd"

    wsse:Username wsse:BinarySecurityToken

  • För xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" följande objekt i bold tas bort:

<Assertion MajorVersion="1" MinorVersion="1" AssertionId="[ID]" Issuer="[string]" IssueInstant="[dateTime]"

<Villkor NotBefore="[dateTime]" NotOnOrAfter="[dateTime]"><AudienceRestrictionCondition><Audience>[uri]</Audience>+ </AudienceRestrictionCondition>* <DoNotCacheCondition />* <-- abstrakt bastyp <Villkor />*

</Villkor>? <Advice><AssertionIDReference>[ID]</AssertionIDReference>* <Assertion>[assertion]</Assertion>* [any]* </Advice>? <-- Sammanfattningsbastyper <Statement />* <SubjectStatement><Subject> <NameIdentifierNameQualifier="[string]"?Format="[uri]"?>[string]</NameIdentifier>?<SubjectConfirmation><ConfirmationMethod>[anyUri]</ConfirmationMethod>+ <SubjectConfirmationData>[any]</SubjectConfirmationData>? <ds:KeyInfo>...</ds:KeyInfo>? </SubjectConfirmation>? </Subject></SubjectStatement>*

<AuthenticationStatement AuthenticationMethod="[uri]" AuthenticationInstant="[dateTime]"

[Ämne] <SubjectLocalityIPAddress="[string]"?DNSAddress="[string]"?/>?<AuthorityBinding AuthorityKind="[QName]" Location="[uri]" Binding="[uri]" />* </AuthenticationStatement>* <AttributeStatement> [Subject] <Attribute Attribute AttributeName="[string]" AttributeNamespace="[uri]"

<AttributeValue>[any]</AttributeValue>+</Attribute>+ </AttributeStatement>* <AuthorizationDecisionStatement Resource="[uri]" Decision="[Permit|Neka|Obestämd]"

[Ämne] <Action Namespace="[uri]">[string]</Action>+ <Evidence><AssertionIDReference>[ID]</AssertionIDReference>+ <Assertion>[assertion]</Assertion>+ </Evidence>? </AuthorizationDecisionStatement>* </Assertion>

Information som tas bort från meddelandetexter vid loggning av dekrypterade/okrypterade meddelanden

Som tidigare beskrivits tar WCF bort nycklar och känd potentiellt personlig information från meddelandehuvuden för loggade dekrypterade och okrypterade meddelanden. Dessutom tar WCF bort nycklar och känd potentiellt personlig information från meddelandeorgan för brödtextelementen och åtgärderna i följande lista, som beskriver säkerhetsmeddelanden som ingår i nyckelutbyte.

För följande namnområden:

xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust" och xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust" (till exempel om det inte finns någon tillgänglig åtgärd)

Information tas bort för dessa brödtextelement, som omfattar nyckelutbyte:

wst:RequestSecurityToken

wst:RequestSecurityTokenResponse

wst:RequestSecurityTokenResponseCollection

Information tas också bort för var och en av följande åtgärder:

  • http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Renew
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Renew
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Cancel
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Cancel
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Validate
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Validate
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Amend
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Amend
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Renew
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Renew
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Cancel
  • http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Cancel
  • http://schemas.xmlsoap.org/ws/2004/04/security/trust/RST/SCT
  • http://schemas.xmlsoap.org/ws/2004/04/security/trust/RSTR/SCT
  • http://schemas.xmlsoap.org/ws/2004/04/security/trust/RST/SCT-Amend
  • http://schemas.xmlsoap.org/ws/2004/04/security/trust/RSTR/SCT-Amend

Ingen information tas bort från programspecifika rubriker och brödtextdata

WCF spårar inte personlig information i programspecifika rubriker (till exempel frågesträngar) eller brödtextdata (till exempel kreditkortsnummer).

När meddelandeloggning är aktiverat kan personlig information i programspecifika rubriker och brödtextinformation visas i loggarna. Återigen ansvarar programdistributionsprogrammet för att ange ACL:er för konfigurations- och loggfilerna. De kan också inaktivera loggning om de inte vill att den här informationen ska vara synlig eller filtrera bort den här informationen från loggfilerna när den har loggats.

Spårning av tjänstmodell

Tjänstmodellens spårningskälla (System.ServiceModel) möjliggör spårning av aktiviteter och händelser som är relaterade till meddelandebearbetning. Den här funktionen använder diagnostikfunktionerna för .NET Framework från System.Diagnostics. Precis som MessageLogging med egenskapen är platsen och dess ACL användarkonfigurerbara med hjälp av .NET Framework-programkonfigurationsfiler. Precis som med meddelandeloggning konfigureras filplatsen alltid när administratören aktiverar spårning. administratören styr därför ACL:en.

Spårningar innehåller meddelandehuvuden när ett meddelande finns i omfånget. Samma regler för att dölja potentiellt personlig information i meddelanderubriker i föregående avsnitt gäller: den personliga information som tidigare identifierats tas bort som standard från rubrikerna i spårningar. Både datoradministratören och programdistributionsverktyget måste ändra konfigurationen för att kunna logga potentiellt personlig information. Personlig information som finns i programspecifika rubriker loggas dock i spårningar. Programdistributionsverktyget ansvarar för att ange ACL:er för konfigurations- och spårningsfilerna. De kan också inaktivera spårning för att dölja den här informationen eller filtrera bort den här informationen från spårningsfilerna när den har loggats.

Som en del av ServiceModel-spårning länkar unika ID:er (kallas aktivitets-ID:er och vanligtvis ett GUID) samman olika aktiviteter när ett meddelande flödar genom olika delar av infrastrukturen.

Anpassade spårningslyssnare

För både meddelandeloggning och spårning kan en anpassad spårningslyssnare konfigureras, som kan skicka spårningar och meddelanden på tråden (till exempel till en fjärrdatabas). Programdistributionsverktyget ansvarar för att konfigurera anpassade lyssnare eller göra det möjligt för användare att göra det. De ansvarar också för all personlig information som exponeras på fjärrplatsen och för korrekt tillämpning av ACL:er på den här platsen.

Andra funktioner för IT-proffs

WCF har en WMI-provider som exponerar konfigurationsinformationen för WCF-infrastrukturen via WMI (levereras med Windows). Som standard är WMI-gränssnittet tillgängligt för administratörer.

WCF-konfigurationen använder .NET Framework-konfigurationsmekanismen. Konfigurationsfilerna lagras på datorn. Programutvecklaren och administratören skapar konfigurationsfilerna och ACL för var och en av programmets krav. En konfigurationsfil kan innehålla slutpunktsadresser och länkar till certifikat i certifikatarkivet. Certifikaten kan användas för att tillhandahålla programdata för att konfigurera olika egenskaper för de funktioner som används av programmet.

WCF använder också .NET Framework-processdumpningsfunktionen genom att anropa FailFast metoden.

IT-verktyg

WCF tillhandahåller också följande IT-professionella verktyg som levereras i Windows SDK.

SvcTraceViewer.exe

Visningsprogrammet visar WCF-spårningsfiler. Visningsprogrammet visar den information som finns i spårningarna.

SvcConfigEditor.exe

Med redigeraren kan användaren skapa och redigera WCF-konfigurationsfiler. Redigeraren visar den information som finns i konfigurationsfilerna. Samma uppgift kan utföras med en textredigerare.

ServiceModel_Reg

Med det här verktyget kan användaren hantera ServiceModel-installationer på en dator. Verktyget visar statusmeddelanden i ett konsolfönster när det körs och kan i processen visa information om konfigurationen av WCF-installationen.

WSATConfig.exe och WSATUI.dll

Med de här verktygen kan IT-proffs konfigurera samverkande WS-AtomicTransaction-nätverksstöd i WCF. Verktygen visar och tillåter användaren att ändra värdena för de vanligaste WS-AtomicTransaction-inställningarna som lagras i registret.

Övergripande funktioner

Följande funktioner är övergripande. De kan alltså bestå av någon av ovanstående funktioner.

Tjänstramverk

Rubriker kan innehålla ett instans-ID, som är ett GUID som associerar ett meddelande med en instans av en CLR-klass.

Web Services Description Language (WSDL) innehåller en definition av porten. Varje port har en slutpunktsadress och en bindning som representerar de tjänster som används av programmet. Att exponera WSDL kan stängas av med hjälp av konfigurationen. Ingen information behålls på datorn.

Se även