Partilhar via


Informações de privacidade do Windows Communication Foundation

A Microsoft está empenhada em proteger a privacidade do utilizador final. Quando você cria um aplicativo usando o Windows Communication Foundation (WCF), versão 3.0, seu aplicativo pode afetar a privacidade dos usuários finais. Por exemplo, seu aplicativo pode coletar explicitamente informações de contato do usuário ou pode solicitar ou enviar informações pela Internet para seu site. Se você incorporar a tecnologia da Microsoft em seu aplicativo, essa tecnologia pode ter seu próprio comportamento que pode afetar a privacidade. O WCF não envia nenhuma informação para a Microsoft a partir do seu aplicativo, a menos que você ou o usuário final opte por enviá-las para nós.

WCF em resumo

WCF é uma estrutura de mensagens distribuídas usando o Microsoft .NET Framework que permite aos desenvolvedores criar aplicativos distribuídos. As mensagens comunicadas entre dois aplicativos contêm informações de cabeçalho e corpo.

Os cabeçalhos podem conter roteamento de mensagens, informações de segurança, transações e muito mais, dependendo dos serviços usados pelo aplicativo. Normalmente, as mensagens são encriptadas por predefinição. A única exceção é ao usar o BasicHttpBinding, que foi projetado para uso com serviços Web herdados não seguros. Como designer do aplicativo, você é responsável pelo design final. As mensagens no corpo SOAP contêm dados específicos do aplicativo; no entanto, esses dados, como informações pessoais definidas pelo aplicativo, podem ser protegidos usando criptografia WCF ou recursos de confidencialidade. As seções a seguir descrevem os recursos que potencialmente afetam a privacidade.

Mensagens

Cada mensagem WCF tem um cabeçalho de endereço que especifica o destino da mensagem e para onde a resposta deve ir.

O componente de endereço de um endereço de ponto de extremidade é um URI (Uniform Resource Identifier) que identifica o ponto de extremidade. O endereço pode ser um endereço de rede ou um endereço lógico. O endereço pode incluir o nome da máquina (nome do host, nome de domínio totalmente qualificado) e um endereço IP. O endereço do ponto de extremidade também pode conter um identificador global exclusivo (GUID) ou uma coleção de GUIDs para endereçamento temporário usado para discernir cada endereço. Cada mensagem contém um ID de mensagem que é um GUID. Esse recurso segue o padrão de referência WS-Addressing.

A camada de mensagens WCF não grava nenhuma informação pessoal na máquina local. No entanto, ele pode propagar informações pessoais no nível da rede se um desenvolvedor de serviço tiver criado um serviço que exponha essas informações (por exemplo, usando o nome de uma pessoa em um nome de ponto de extremidade ou incluindo informações pessoais na linguagem de descrição de serviços da Web do ponto de extremidade, mas não exigindo que os clientes usem https para acessar o WSDL). Além disso, se um desenvolvedor executar a ferramenta ServiceModel Metadata Utility Tool (Svcutil.exe) em um ponto de extremidade que expõe informações pessoais, a saída da ferramenta poderá conter essas informações e o arquivo de saída será gravado no disco rígido local.

Alojamento

O recurso de hospedagem no WCF permite que os aplicativos iniciem sob demanda ou habilitem o compartilhamento de portas entre vários aplicativos. Um aplicativo WCF pode ser hospedado no Internet Information Services (IIS), semelhante ao ASP.NET.

A hospedagem não expõe nenhuma informação específica na rede e não mantém dados na máquina.

Segurança da mensagem

A segurança WCF fornece os recursos de segurança para aplicativos de mensagens. As funções de segurança fornecidas incluem autenticação e autorização.

A autenticação é realizada passando credenciais entre os clientes e serviços. A autenticação pode ser feita por meio de segurança no nível de transporte ou por meio da segurança no nível de mensagem SOAP, da seguinte maneira:

  • Na segurança de mensagens SOAP, a autenticação é realizada por meio de credenciais como nome de usuário/senhas, certificados X.509, tíquetes Kerberos e tokens SAML, todos os quais podem conter informações pessoais, dependendo do emissor.

  • Usando a segurança de transporte, a autenticação é feita por meio de mecanismos tradicionais de autenticação de transporte, como esquemas de autenticação HTTP (Básico, Digest, Negociar, Autorização Integrada do Windows, NTLM, Nenhum e Anônimo) e autenticação de formulário.

A autenticação pode resultar em uma sessão segura estabelecida entre os pontos de extremidade de comunicação. A sessão é identificada por um GUID que dura o tempo de vida da sessão de segurança. A tabela a seguir mostra o que é mantido e onde.

Dados Armazenamento
Credenciais de apresentação, como nome de usuário, certificados X.509, tokens Kerberos e referências a credenciais. Mecanismos padrão de gerenciamento de credenciais do Windows, como o repositório de certificados do Windows.
Informações de associação de usuário, como nomes de usuário e senhas. ASP.NET provedores de associação.
Informações de identidade sobre o serviço usado para autenticar o serviço para clientes. Endereço do ponto de extremidade do serviço.
Informações do chamador. Logs de auditoria.

Auditoria

A auditoria registra o sucesso e a falha dos eventos de autenticação e autorização. Os registros de auditoria contêm os seguintes dados: URI de serviço, URI de ação e identificação do chamador.

A auditoria também registra quando o administrador modifica a configuração do log de mensagens (ativando-o ou desativando-o), porque o log de mensagens pode registrar dados específicos do aplicativo em cabeçalhos e corpos. Para o Windows XP, um registro é registrado no log de eventos do aplicativo. Para Windows Vista e Windows Server 2003, um registro é registrado no log de eventos de segurança.

Transações

O recurso de transações fornece serviços transacionais para um aplicativo WCF.

Os cabeçalhos de transação usados na propagação de transações podem conter IDs de transação ou IDs de alistamento, que são GUIDs.

O recurso Transações usa o Microsoft Distributed Transaction Coordinator (MSDTC) Transaction Manager (um componente do Windows) para gerenciar o estado da transação. Por padrão, as comunicações entre os Gerentes de Transações são criptografadas. Os Gerentes de Transações podem registrar referências de pontos de extremidade, IDs de Transação e IDs de Alistamento como parte de seu estado durável. O tempo de vida desse estado é determinado pelo tempo de vida do arquivo de log do Transaction Manager. O serviço MSDTC possui e mantém esse log.

O recurso Transações implementa os padrões WS-Coordination e WS-Atomic Transaction.

Sessões fiáveis

Sessões confiáveis no WCF fornecem a transferência de mensagens quando ocorrem falhas de transporte ou intermediárias. Eles fornecem uma transferência exata de mensagens uma vez, mesmo quando o transporte subjacente se desconecta (por exemplo, uma conexão TCP em uma rede sem fio) ou perde uma mensagem (um proxy HTTP soltando uma mensagem de entrada ou de saída). Sessões confiáveis também recuperam a reordenação de mensagens (como pode acontecer no caso de roteamento de vários caminhos), preservando a ordem em que as mensagens foram enviadas.

Sessões confiáveis são implementadas usando o protocolo WS-ReliableMessaging (WS-RM). Eles adicionam cabeçalhos WS-RM que contêm informações de sessão, que são usadas para identificar todas as mensagens associadas a uma sessão confiável específica. Cada sessão WS-RM tem um identificador, que é um GUID.

Nenhuma informação pessoal é retida na máquina do usuário final.

Canais em fila

As filas armazenam mensagens de um aplicativo de envio em nome de um aplicativo de recebimento e, posteriormente, encaminham essas mensagens para o aplicativo de recebimento. Eles ajudam a garantir a transferência de mensagens do envio de aplicativos para o recebimento de aplicativos quando, por exemplo, o aplicativo recetor é transitório. WCF fornece suporte para enfileiramento usando o Microsoft Message Queuing (MSMQ) como um transporte.

O recurso de canais enfileirados não adiciona cabeçalhos a uma mensagem. Em vez disso, ele cria uma mensagem do serviço de enfileiramento de mensagens com as propriedades apropriadas da mensagem do serviço de enfileiramento de mensagens definidas e invoca métodos do serviço de enfileiramento de mensagens para colocar a mensagem na fila do serviço de enfileiramento de mensagens. O serviço de enfileiramento de mensagens é um componente opcional fornecido com o Windows.

Nenhuma informação é retida na máquina do usuário final pelo recurso de canais enfileirados, pois ele usa o serviço de enfileiramento de mensagens como a infraestrutura de enfileiramento.

Integração COM+

Esse recurso encapsula a funcionalidade COM e COM + existente para criar serviços compatíveis com os serviços WCF. Esse recurso não usa cabeçalhos específicos e não retém dados na máquina do usuário final.

Apelido de serviço COM

Isso fornece um wrapper não gerenciado para um cliente WCF padrão. Este recurso não tem cabeçalhos específicos no fio nem persiste dados na máquina.

Canal de pares

Um canal de mesmo nível permite o desenvolvimento de aplicativos de várias partes usando WCF. As mensagens com várias partes ocorrem no contexto de uma malha. As malhas são identificadas por um nome ao qual os nós podem aderir. Cada nó no canal ponto a ponto cria um ouvinte TCP em uma porta especificada pelo usuário e estabelece conexões com outros nós na malha para garantir resiliência. Para se conectar a outros nós na malha, os nós também trocam alguns dados, incluindo o endereço do ouvinte e os endereços IP da máquina, com outros nós na malha. As mensagens enviadas na malha podem conter informações de segurança que pertencem ao remetente para evitar falsificação e adulteração de mensagens.

Nenhuma informação pessoal é armazenada na máquina do utilizador final.

Experiência profissional em TI

Rastreio

O recurso de diagnóstico da infraestrutura do WCF registra mensagens que passam pelas camadas de modelo de transporte e serviço e as atividades e eventos associados a essas mensagens. Esse recurso está desativado por padrão. Ele é habilitado usando o arquivo de configuração do aplicativo e o comportamento de rastreamento pode ser modificado usando o provedor WMI WCF em tempo de execução. Quando habilitada, a infraestrutura de rastreamento emite um rastreamento de diagnóstico que contém mensagens, atividades e eventos de processamento para ouvintes configurados. O formato e o local da saída são determinados pelas opções de configuração do ouvinte do administrador, mas normalmente é um arquivo formatado em XML. O administrador é responsável por definir a lista de controle de acesso (ACL) nos arquivos de rastreamento. Em particular, quando hospedado pelo Sistema de Ativação do Windows (WAS), o administrador deve certificar-se de que os arquivos não são servidos a partir do diretório raiz virtual público, se isso não for desejado.

Há dois tipos de rastreamento: Log de mensagens e rastreamento de diagnóstico do Modelo de Serviço, descritos na seção a seguir. Cada tipo é configurado através de sua própria fonte de rastreamento: MessageLogging e System.ServiceModel. Ambas as fontes de rastreamento de log capturam dados que são locais para o aplicativo.

Registo de mensagens

A origem de rastreamento de log de mensagens (MessageLogging) permite que um administrador registre as mensagens que fluem pelo sistema. Através da configuração, o usuário pode decidir registrar mensagens inteiras ou cabeçalhos de mensagens apenas, se deseja fazer login nas camadas de modelo de transporte e/ou serviço e se deve incluir mensagens malformadas. Além disso, o usuário pode configurar a filtragem para restringir quais mensagens são registradas.

Por padrão, o log de mensagens está desabilitado. O administrador da máquina local pode impedir que o administrador no nível do aplicativo ative o logon de mensagens.

Registo de mensagens encriptadas e desencriptadas

As mensagens são registadas, encriptadas ou desencriptadas, conforme descrito nos seguintes termos.

Log de Transporte Registra mensagens recebidas e enviadas no nível de transporte. Essas mensagens contêm todos os cabeçalhos e podem ser criptografadas antes de serem enviadas por fio e quando recebidas.

Se as mensagens são criptografadas antes de serem enviadas na transferência e quando são recebidas, elas também são registradas criptografadas. Uma exceção é quando um protocolo de segurança é usado (https): eles são então registrados descriptografados antes de serem enviados e depois de serem recebidos, mesmo que sejam criptografados no fio.

Log de Serviço Registra mensagens recebidas ou enviadas no nível do modelo de serviço, após o processamento do cabeçalho do canal ter ocorrido, imediatamente antes e depois de inserir o código do usuário.

As mensagens registadas a este nível são desencriptadas, mesmo que tenham sido protegidas e encriptadas no fio.

Log de mensagens malformado Registra mensagens que a infraestrutura do WCF não pode entender ou processar.

As mensagens são registradas no estado em que se encontram, ou seja, criptografadas ou não

Quando as mensagens são registradas de forma descriptografada ou não criptografada, por padrão, o WCF remove chaves de segurança e informações potencialmente pessoais das mensagens antes de registrá-las. As próximas seções descrevem quais informações foram removidas e quando. O administrador da máquina e o implantador de aplicativos devem executar determinadas ações de configuração para alterar o comportamento padrão para registrar chaves e informações potencialmente pessoais.

Informações removidas dos cabeçalhos das mensagens ao registrar mensagens descriptografadas/não criptografadas

Quando as mensagens são registadas de forma desencriptada ou não encriptada, as chaves de segurança e as informações potencialmente pessoais são removidas por predefinição dos cabeçalhos e corpos das mensagens antes de serem registadas. A lista a seguir mostra o que o WCF considera chaves e informações potencialmente pessoais.

Chaves removidas:

  • Para xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust" e xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"

    wst:BinarySecret wst:Entropy

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

    wsse:Password wsse:Nonce

Informações potencialmente pessoais removidas:

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

    wsse:Username wsse:BinarySecurityToken

  • Para xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" os seguintes itens em bold são removidos:

<Asserção MajorVersion="1" MinorVersion="1" AssertionId="[ID]" Issuer="[string]" IssueInstant="[dateTime]"

<Condições NotBefore="[dateTime]" NotOnOrAfter="[dateTime]">AudienceRestrictionCondition<>Audience>[uri]</Audience>+ </AudienceRestrictionCondition>* <DoNotCacheCondition />* <-- tipo <base abstrato Condition />*<

</Condições>? <Advice><AssertionIDReference>[ID]</AssertionIDReference>* <Assertion>[assertion]</Assertion>* [any]* </Advice>? <-- Tipos <de base abstrata Enunciado />* <AssuntoSujeito da declaração><> <NameIdentifierNameQualifier="[string]"?Format="[uri]"?>[string]</NameIdentifier>?<AssuntoConfirmação ConfirmationMethod>[anyUri]</ConfirmationMethod>+ <SubjectConfirmationData>[any]</SubjectConfirmationData>?>< <ds:KeyInfo>...</ds:KeyInfo>? </AssuntoConfirmação>? </Assunto></AssuntoDeclaração*>

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

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

<AttributeValue>[any]</AttributeValue>+</Attribute>+ </AttributeStatement>* <AuthorizationDecisionStatement Resource="[uri]" Decision="[Permit|Negar|Indeterminado]"

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

Informações removidas dos corpos de mensagens ao registrar mensagens descriptografadas/não criptografadas

Conforme descrito anteriormente, o WCF remove chaves e informações potencialmente pessoais conhecidas dos cabeçalhos das mensagens para mensagens descriptografadas e não criptografadas registradas. Além disso, o WCF remove chaves e informações potencialmente pessoais conhecidas dos corpos de mensagens para os elementos e ações do corpo na lista a seguir, que descrevem mensagens de segurança envolvidas na troca de chaves.

Para os seguintes namespaces:

xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust" e xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust" (por exemplo, se nenhuma ação estiver disponível)

As informações são removidas para estes elementos do corpo, que envolvem a troca de chaves:

wst:RequestSecurityToken

wst:RequestSecurityTokenResponse

wst:RequestSecurityTokenResponseCollection

As informações também são removidas para cada uma das seguintes Ações:

  • 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

Nenhuma informação é removida dos cabeçalhos e dados do corpo específicos do aplicativo

O WCF não rastreia informações pessoais em cabeçalhos específicos do aplicativo (por exemplo, cadeias de caracteres de consulta) ou dados do corpo (por exemplo, número de cartão de crédito).

Quando o log de mensagens está ativado, as informações pessoais em cabeçalhos específicos do aplicativo e informações do corpo podem estar visíveis nos logs. Novamente, o implantador de aplicativos é responsável por definir as ACLs nos arquivos de configuração e log. Eles também podem desativar o registro em log se não quiserem que essas informações fiquem visíveis ou filtrar essas informações dos arquivos de log depois que elas forem registradas.

Rastreamento do modelo de serviço

A origem de rastreamento do Modelo de Serviço (System.ServiceModel) permite o rastreamento de atividades e eventos relacionados ao processamento de mensagens. Esse recurso usa a funcionalidade de diagnóstico do .NET Framework do System.Diagnostics. Assim como a MessageLogging propriedade, o local e sua ACL são configuráveis pelo usuário usando arquivos de configuração do aplicativo .NET Framework. Tal como acontece com o registo de mensagens, a localização do ficheiro é sempre configurada quando o administrador permite o rastreio; assim, o administrador controla a ACL.

Os rastreamentos contêm cabeçalhos de mensagem quando uma mensagem está no escopo. Aplicam-se as mesmas regras para ocultar informações potencialmente pessoais nos cabeçalhos das mensagens na seção anterior: as informações pessoais identificadas anteriormente são removidas por padrão dos cabeçalhos nos rastreamentos. Tanto o administrador da máquina quanto o implantador de aplicativos devem modificar a configuração para registrar informações potencialmente pessoais. No entanto, as informações pessoais contidas em cabeçalhos específicos do aplicativo são registradas em rastreamentos. O implantador de aplicativos é responsável por definir as ACLs nos arquivos de configuração e rastreamento. Eles também podem desativar o rastreamento para ocultar essas informações ou filtrar essas informações dos arquivos de rastreamento depois que elas forem registradas.

Como parte do ServiceModel Tracing, IDs exclusivos (chamados IDs de atividade e, normalmente, um GUID) vinculam diferentes atividades à medida que uma mensagem flui através de diferentes partes da infraestrutura.

Ouvintes de rastreamento personalizados

Para registro e rastreamento de mensagens, um ouvinte de rastreamento personalizado pode ser configurado, que pode enviar rastreamentos e mensagens no fio (por exemplo, para um banco de dados remoto). O implantador de aplicativos é responsável por configurar ouvintes personalizados ou permitir que os usuários façam isso. Eles também são responsáveis por quaisquer informações pessoais expostas no local remoto e pela aplicação adequada de ACLs a esse local.

Outros recursos para profissionais de TI

O WCF tem um provedor WMI que expõe as informações de configuração da infraestrutura do WCF por meio do WMI (fornecido com o Windows). Por padrão, a interface WMI está disponível para administradores.

A configuração do WCF usa o mecanismo de configuração do .NET Framework. Os arquivos de configuração são armazenados na máquina. O desenvolvedor do aplicativo e o administrador criam os arquivos de configuração e a ACL para cada um dos requisitos do aplicativo. Um arquivo de configuração pode conter endereços de ponto de extremidade e links para certificados no armazenamento de certificados. Os certificados podem ser usados para fornecer dados do aplicativo para configurar várias propriedades dos recursos usados pelo aplicativo.

WCF também usa a funcionalidade de despejo de processo do .NET Framework chamando o FailFast método.

Ferramentas para profissionais de TI

O WCF também fornece as seguintes ferramentas profissionais de TI, fornecidas no SDK do Windows.

SvcTraceViewer.exe

O visualizador exibe arquivos de rastreamento WCF. O espectador mostra qualquer informação contida nos vestígios.

SvcConfigEditor.exe

O editor permite ao usuário criar e editar arquivos de configuração WCF. O editor mostra qualquer informação contida nos arquivos de configuração. A mesma tarefa pode ser realizada com um editor de texto.

ServiceModel_Reg

Esta ferramenta permite ao usuário gerenciar instalações ServiceModel em uma máquina. A ferramenta exibe mensagens de status em uma janela do console quando é executada e, no processo, pode exibir informações sobre a configuração da instalação do WCF.

WSATConfig.exe e WSATUI.dll

Essas ferramentas permitem que os profissionais de TI configurem o suporte de rede interoperável WS-AtomicTransaction no WCF. As ferramentas exibem e permitem que o usuário altere os valores das configurações WS-AtomicTransaction mais comumente usadas armazenadas no registro.

Características transversais

As seguintes características são transversais. Ou seja, podem ser compostas com qualquer uma das características anteriores.

Estrutura de serviço

Os cabeçalhos podem conter um ID de instância, que é um GUID que associa uma mensagem a uma instância de uma classe CLR.

O WSDL (Web Services Description Language) contém uma definição da porta. Cada porta tem um endereço de ponto de extremidade e uma associação que representa os serviços usados pelo aplicativo. A exposição do WSDL pode ser desativada usando a configuração. Nenhuma informação é retida na máquina.

Consulte também