Información (la versión 3.0) de privacidad de Windows Communication Foundation

Microsoft se compromete a proteger la privacidad de usuarios finales. Al generar una aplicación utilizando Windows Communication Foundation (WCF), versión 3.0, su aplicación puede afectar a la privacidad de sus usuarios finales. Por ejemplo, su aplicación puede recoger explícitamente información de contacto del usuario o puede solicitar o enviar información a través de Internet a su sitio web. Si incrusta la tecnología de Microsoft en su aplicación, esa tecnología puede tener su propio comportamiento que podría afectar a la privacidad. WCF no envía ninguna información a Microsoft de su aplicación a menos que usted o el usuario final decida enviárnoslo.

WCF en breve

WCF es un marco de mensajería distribuido mediante el marco de Microsoft .NET que permite a los programadores generar las aplicaciones distribuidas. Los mensajes comunicados entre dos aplicaciones contienen encabezado e información del cuerpo.

Los encabezados pueden contener enrutamiento de mensajes, información de seguridad, transacciones, y más, en función de los servicios utilizados por la aplicación. Generalmente, se cifran los mensajes de forma predeterminada. Una excepción es cuando se utiliza BasicHttpBinding, diseñado para el uso con Servicio Web no seguros, heredados. Como diseñador de la aplicación, usted es responsable del último diseño. Los mensajes del cuerpo SOAP contienen datos específicos de la aplicación; sin embargo, estos datos, como información personal definida por la aplicación, se pueden proteger utilizando cifrado WCF o características de confidencialidad. Las secciones siguientes describen las características que pueden afectan a la privacidad.

Mensajería

Cada mensaje WCF tiene un encabezado de dirección que especifica el destino del mensaje y donde debería ir la respuesta.

El componente de dirección de una dirección de extremo es un Identificador uniforme de recursos (URI) que identifica el extremo. La dirección puede ser una dirección de red o una dirección lógica. La dirección puede incluir nombre del equipo (nombre del host, nombre de dominio completo) y una dirección IP. La dirección del extremo también puede contener un identificador único global (GUID) o una colección de GUID para el direccionamiento temporal utilizado para discernir cada dirección. Cada mensaje contiene un id. de mensaje que es un GUID. Esta característica sigue la regla de referencia WS-Addressing.

El nivel de mensajería WCF no escribe datos personales en el equipo local. Sin embargo, podría propagar información personal en el nivel de la red si un programador del servicio ha creado un servicio que expone dicha información (por ejemplo, utilizando el nombre de una persona en un nombre de extremo o incluso información personal en el Lenguaje de descripción de servicios web (WSDL) del extremo pero no requiero que los clientes utilicen http para tener acceso al WSDL). Además, si un programador ejecuta la herramienta Service Model Metadata Utility Tool (Svcutil.exe) contra un extremo que expone información personal, el resultado de la herramienta podría contener esa información y el archivo de salida se escribe en el disco duro local.

Hospedaje

La característica de alojamiento en WCF permite a las aplicaciones iniciarse a petición o habilitar el uso compartido del puerto entre varias aplicaciones. Una aplicación WCF se puede hospedar en Internet Information Services (IIS), similar a ASP.NET.

Al hospedarse, no se expone ninguna información específica sobre la red y no mantiene los datos en el equipo.

Seguridad de los mensajes

La seguridad WCF proporciona las funciones de seguridad para las aplicaciones de mensajería. Las funciones de seguridad proporcionadas incluyen autenticación y autorización.

La autenticación se lleva a cabo pasando las credenciales entre clientes y servicios. La autenticación se puede llevar a cabo a través de la seguridad de nivel de transporte o a través de seguridad del nivel del mensaje SOAP, tal y como se muestra a continuación:

  • En seguridad del mensaje SOAP, la autenticación se realiza a través de las credenciales como el nombre de usuario/contraseñas, certificados X.509, vales de Kerberos y tokens de SAML, los cuales podrían contener datos personales, en función del emisor.
  • En el uso de seguridad de transporte, la autenticación se realiza a través de los mecanismos de autenticación de transporte tradicionales como los esquemas de autenticación de HTTP (Básica, implícita, Negociada, Autorización de Windows Integrada, NTLM, Ninguna, y Anónima) y autenticación de formularios.

La autenticación puede producir una sesión segura establecida entre los extremos en comunicación. Un GUID, cuya duración es igual a la sesión de seguridad, identifica la sesión. La tabla siguiente muestra lo que se guarda y dónde.

Datos Almacenamiento

Las credenciales de presentación, como el nombre de usuario, certificados X.509, tokens de Kerberos, y referencias a las credenciales.

Mecanismos de administración de credencial de Windows estándar como el almacén de certificados de Windows.

Información de suscripción del usuario, como nombres de usuario y contraseñas.

ASP.NET proveedores de suscripciones

Información de identidad sobre el servicio utilizado para autenticar el servicio a los clientes.

La dirección del extremo del servicio.

Información del agente de llamada.

Registros de auditoría.

Auditoría

La auditoría registra si se ha completado o se ha producido un error en la autenticación y eventos de autorización. Los registros de la auditoría contienen los datos siguientes: servicio URI, acción URI y la identificación del agente de llamada.

La auditoría también registra cuando el administrador modifica la configuración de registro de mensajes (activándolo o desactivándolo), porque el registro de mensajes puede registrar los datos específicos de la aplicación en encabezados y cuerpos. Para Windows XP, un registro está registrado en el registro de eventos de aplicación. Para Windows Vista y Windows Server 2003, un registro está registrado en el registro de eventos de seguridad.

Transacciones

La característica de transacciones proporciona servicios transaccionales a una aplicación WCF.

Los encabezados de las transacciones utilizados en la propagación de la transacción pueden contener los id. de transacción o id. de inscripción, que son GUID.

La característica de las transacciones utiliza el Administrador de transacciones (un componente de Windows) de Microsoft DTC (Coordinador de transacciones distribuidas) para administrar el estado de la transacción. De forma predeterminada, se cifran las comunicaciones entre Administradores de las Transacciones. Los administradores de transacciones pueden registrar referencias de extremo, id. de transacción e id. de inscripción como parte de su estado duradero. La duración del archivo de registro del Administrador de la Transacción determina la duración de este estado. El servicio de MSDTC posee y mantiene este registro.

La característica de las Transacciones implementa las reglas de WS-Coordination y WS-Atomic Transaction.

Sesiones de confianza

Las sesiones de confianza en WCF proporcionan la transferencia de mensajes cuando se producen errores en el transporte o errores intermediarios. Incluso proporcionan una transferencia de mensajes,, exactamente una vez, cuando el transporte subyacente desconecta (por ejemplo, una conexión TCP en una red inalámbrica) o pierde un mensaje (un proxy HTTP al colocar un mensaje de salida o entrante). Las sesiones de confianza también recuperan el mensaje reordenando (como puede pasar en el caso de enrutamiento de varias rutas de acceso), conservando el orden en el que se enviaron los mensajes.

Las sesiones de confianza se implementan utilizando el protocolo WS-ReliableMessaging (WS-RM). Agregan los encabezados WS-RM que contienen información de la sesión, la cual se utiliza para identificar todos los mensajes asociados a una sesión de confianza determinada. Cada sesión de WS-RM tiene un identificador, que es un GUID.

No se retiene información personal en el equipo de usuario final.

Canals en la cola

Las colas almacenan mensajes de una aplicación emisora en nombre de una aplicación receptora y, después, reenvían estos mensajes a la aplicación receptora. Ayudan a garantizar la transferencia de mensajes de las aplicaciones emisoras a las aplicaciones receptoras cuando, por ejemplo, la aplicación receptora es transitoria. WCF proporciona compatibilidad para poner en cola utilizando Message Queue Server (MSMQ) como transporte.

La característica de los canales en cola no agrega encabezados a un mensaje. En su lugar, crea un mensaje de Message Queue Server con propiedades de mensaje de Message Queue Server adecuadas establecidas e invoca los métodos Message Queuing para colocar el mensaje en la cola de Message Queue Server. Message Queue Server es un componente opcional distribuido con Windows.

No se retiene información en el equipo del usuario final mediante la característica de canal en cola, porque utiliza la infraestructura Message Queue Server.

Integración de COM+

Esta característica ajusta la funcionalidad COM y COM+ existentes para crear servicios que son compatibles con servicios WCF. Esta característica no utiliza los encabezados específicos y no retiene los datos en el equipo del usuario final.

Moniker de servicio COM

Esto proporciona un contenedor no administrado a un cliente WCF estándar. Esta característica no tiene encabezados específicos en la conexión ni conserva datos en el equipo.

Canal del mismo nivel

Un canal del mismo nivel habilita el desarrollo de aplicaciones multipartidarias utilizando WCF. La mensajería multipartidaria se produce en el contexto de una malla. Un nombre al cual se pueden unir los nodos identifica las mallas. Cada nodo del canal del mismo nivel crea un agente de escucha de TCP en un puerto especificado por el usuario y establece las conexiones con otros nodos en la malla para garantizar la resiliencia. Para conectar a otros nodos en la malla, los nodos también intercambian algunos datos, incluso la dirección del agente de escucha y las direcciones IP del equipo, con otros nodos de la malla. Los mensajes enviados en la malla pueden contener información de seguridad que pertenece al remitente para evitar que se suplante y se manipule el mensaje.

No se almacena información personal en el equipo de usuario final.

Experiencia profesional de TI

Traza

La característica de los diagnósticos de la infraestructura WCF registra mensajes que pasan a través del transporte y los niveles de modelo de servicio, y las actividades y eventos asociados a estos mensajes. Esta característica está desactivada de forma predeterminada. Se habilita mediante el archivo de configuración de la aplicación y el comportamiento de la traza se puede modificar utilizando el proveedor de WMI WCF en tiempo de ejecución. Cuando se habilita, la infraestructura de la traza emite un seguimiento de diagnóstico que contiene mensajes, actividades y eventos de procesamiento a los agentes de escucha configurados. Las opciones de configuración del agente de escucha del administrador determinan el formato y ubicación del resultado, pero es normalmente un archivo con formato XML. El administrador es responsable de establecer la lista de control de acceso (ACL) en los archivos de traza. En particular, cuando está hospedado por el Sistema de Activación de Windows (WAS), el administrador debería asegurarse de que los archivos no provienen del directorio raíz virtual público si no se desea.

Hay dos tipos de traza: Registro de mensajes y traza de diagnóstico de modelo de servicio, descritos en la sección siguiente. Cada tipo se configura a través de su propio origen de seguimiento: MessageLogging y System.ServiceModel. Estos orígenes de seguimiento de registro capturan locales a la aplicación.

Registro de mensajes

El origen de seguimiento del registro de mensajes (MessageLogging) permite a un administrador registrar los mensajes que fluyen a través del sistema. A través de la configuración, el usuario puede decidir si quiere registrar mensajes completos o solamente encabezados de mensaje, registrar en el transporte y/o niveles de modelo de servicio y si quiere incluir mensajes incorrectos. Además, el usuario puede configurar el filtro para restringir qué mensajes están registrados.

De forma predeterminada, el registro de mensajes está deshabilitado. El administrador del equipo local puede evitar que el administrador del nivel de la aplicación active el registro de mensajes.

Registro de mensajes cifrado y descifrado

Los mensajes se registran, cifran o descifran, tal y como se ha descrito en los términos siguientes.

  • Registro de transporte
    Registra los mensajes recibidos y enviados en el nivel de transporte. Estos mensajes contienen todos los encabezados y se pueden cifrar antes de ser enviados en la conexión y al recibirse.

    Si se cifran los mensajes antes de ser enviados en la conexión y cuando se reciben, están registrados y cifrados también. Una excepción es cuando se utiliza un protocolo de seguridad (https): están registrados y descifrado antes de ser enviados y después de ser recibidos, incluso si se cifran en la conexión.

  • Registro del servicio
    Registra mensajes recibidos o enviados en el nivel de modelo del servicio, después de que se haya producido el procesamiento del encabezado del canal procesar, justo antes y después de escribir el código de usuario.

    Se descifran los mensajes registrados en este nivel incluso si se protegieron y cifraron en la conexión.

  • Registro de mensajes incorrectos
    Registra mensajes que la infraestructura WCF no puede entender o procesar.

    Los mensajes están registrados tal cual, es decir, cifrados o no

Cuando los mensajes están registrados en forma descifrado o no cifrado, de forma predeterminada WCF quita las claves de seguridad y potencialmente datos personales de los mensajes antes de registrarlos. Las secciones siguientes describen qué información se quita, y cuándo. El administrador del equipo e implementador de la aplicación deben tomar ciertas medidas de configuración para cambiar el comportamiento predeterminado con el fin de registrar las claves y potencialmente datos personales.

Información quitada de los encabezados del mensaje al registrar mensajes descifrados/no cifrados

Cuando los mensajes están registrados en forma de descifrados/no cifrados, las claves de seguridad y potencialmente los datos personales se quitan de forma predeterminada de los encabezados del mensaje y los cuerpos del mensaje antes de registrarse. La lista siguiente muestra lo que WCF considera como claves y potencialmente datos personales.

Claves que se quitan:

- Para xmlns:wst = "https://schemas.xmlsoap.org/ws/2004/04/trust" y xmlns:wst = "https://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" y xmlns:wsse = "http://docs.oasis-open.org/wss/2005/xx/oasis-2005xx-wss-wssecurity-secext-1.1.xsd"

wsse:Password

wsse:Nonce

Datos personales posibles que se quitan:

- Para xmlns:wsse = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.1.xsd" y 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: aserción" se quitan los elementos en negrita (abajo):

<Assertion

MajorVersion="1"

MinorVersion="1"

AssertionId =" [ID]"

Issuer="[string]"

IssueInstant="[dateTime]"

>

<Conditions NotBefore="[dateTime]" NotOnOrAfter="[dateTime]">

<AudienceRestrictionCondition>

<Audience>[uri]</Audience>+

</AudienceRestrictionCondition>*

<DoNotCacheCondition />*

<!-- abstract base type

<Condition />*

-->

¿</Conditions>?

<Advice>

<AssertionIDReference>[ID]</AssertionIDReference>*

<Assertion>[assertion]</Assertion>*

[any]*

</Advice>?

<!-- Abstract base types

<Statement />*

<SubjectStatement>

<Subject>

<NameIdentifier

NameQualifier="[string]"?

Format="[uri]"?

>

[string]

</NameIdentifier>?

<SubjectConfirmation>

<ConfirmationMethod>[anyUri]</ConfirmationMethod>+

<SubjectConfirmationData>[any]</SubjectConfirmationData>?

<ds:KeyInfo>...</ds:KeyInfo>?

</SubjectConfirmation>?

</Subject>

</SubjectStatement>*

-->

<AuthenticationStatement

AuthenticationMethod =" [uri]"

AuthenticationInstant="[dateTime]"

>

[Subject]

<SubjectLocality

IPAddress="[string]"?

DNSAddress="[string]"?

/>?

<AuthorityBinding

AuthorityKind =" [QName]"

Location="[uri]"

Enlace =" [uri]"

/>*

</AuthenticationStatement>*

<AttributeStatement>

[Subject]

<Attribute

AttributeName="[string]"

AttributeNamespace =" [uri]"

>

<AttributeValue>[any]</AttributeValue>+

</Attribute>+

</AttributeStatement>*

<AuthorizationDecisionStatement

Resource =" [uri]"

Decision="[Permit|Deny|Indeterminate]"

>

[Subject]

<Action Namespace="[uri]">[string]</Action>+

<Evidence>

<AssertionIDReference>[ID]</AssertionIDReference>+

<Assertion>[assertion]</Assertion>+

</Evidence>?

</AuthorizationDecisionStatement>*

</Assertion>

Información quitada de los cuerpos del mensaje al registrar mensajes descifrados/no cifrados

Como se ha descrito previamente, WCF quita las claves y los datos personales potencialmente conocidos de los encabezados del mensaje de los mensajes registrados descifrados/no cifrados. Además, WCF quita las claves y los datos personales potencialmente conocidos de los cuerpos del mensaje de los elementos del cuerpo y acciones de la lista siguiente, que describe los mensajes de seguridad implicados en el intercambio de claves.

Para los siguientes espacios de nombres:

xmlns:wst = "https://schemas.xmlsoap.org/ws/2004/04/trust" y xmlns:wst = "https://schemas.xmlsoap.org/ws/2005/02/trust (por ejemplo, si no hay ninguna acción disponible)"

La información se quita de estos elementos del cuerpo, lo cual implica intercambio de claves:

wst:RequestSecurityToken

wst:RequestSecurityTokenResponse

wst:RequestSecurityTokenResponseCollection

La información también se quita en cada una de las acciones siguientes:

https://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue

https://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue

https://schemas.xmlsoap.org/ws/2005/02/trust/RST/Renew

https://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Renew

https://schemas.xmlsoap.org/ws/2005/02/trust/RST/Cancel

https://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Cancel

https://schemas.xmlsoap.org/ws/2005/02/trust/RST/Validate

https://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Validate

https://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT

https://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT

https://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Amend

https://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Amend

https://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Renew

https://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Renew

https://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Cancel

https://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Cancel

https://schemas.xmlsoap.org/ws/2004/04/security/trust/RST/SCT

https://schemas.xmlsoap.org/ws/2004/04/security/trust/RSTR/SCT

https://schemas.xmlsoap.org/ws/2004/04/security/trust/RST/SCT-Amend

https://schemas.xmlsoap.org/ws/2004/04/security/trust/RSTR/SCT-Amend

No se quita información de los encabezados y datos del cuerpo específicos de la aplicación

WCF no realiza el seguimiento de datos personales en encabezados específicos de la aplicación (por ejemplo, cadenas de consulta) o datos del cuerpo (por ejemplo, número de la tarjeta de crédito).

Cuando el registro de mensajes está activado, los datos personales en encabezados específicos de la aplicación e información del cuerpo pueden estar visibles en los registros. De nuevo, el implementador de la aplicación es el responsable de establecer las ACL en los archivos de registro y configuración. También puede desactivar el registro si no desea que esta información esté visible, o puede filtrar fuera esta información de los archivos de registro una vez registrado.

Traza de modelo de servicio

El origen de la traza de modelo de servicio (System.ServiceModel) permite la traza de actividades y eventos relacionados con el procesamiento de mensajes. Esta característica utiliza la funcionalidad de diagnóstico del marco .NET de System.Diagnostics. Como con la propiedad MessageLogging, el usuario puede configurar la ubicación y su ACL mediante los archivos de configuración de la aplicación del marco .NET. Como con el registro de mensajes, la ubicación del archivo se configura siempre cuando el administrador habilita la traza; de este modo, el administrador controla el ACL.

Las trazas contienen los encabezados del mensaje cuando un mensaje está en ámbito. Se aplican las mismas reglas para ocultar los posibles datos personales en encabezados del mensaje de la sección anterior: los datos personales previamente identificados se quitan de forma predeterminada de los encabezados en trazas. El administrador del equipo y el implementador de la aplicación deben modificar la configuración para registrar potencialmente datos personales. Sin embargo, los datos personales contenidos en encabezados específicos de la aplicación están registrados en trazas. El implementador de la aplicación es el responsable de establecer las ACL en los archivos de seguimiento y configuración. También puede desactivar el seguimiento si no desea que esta información esté visible, o puede filtrar fuera esta información de los archivos de seguimiento una vez registrado.

Como parte de Seguimiento ServiceModel, los id. únicos (llamados id. de actividad y normalmente un GUID) vinculan actividades diferentes juntas como un mensaje fluye a través de diferentes partes de la infraestructura.

Agentes de escucha de seguimiento personalizados

Para el registro de mensajes y siguiendo paso a paso, se puede configurar un agente de escucha de seguimiento personalizado que puede enviar rastros y mensajes en la conexión (por ejemplo, a una base de datos remota). El implementador de la aplicación es el responsable de configurar agentes de escucha personalizados o habilitar los usuarios para ello. También es responsable de obtener los datos personales expuestos en la ubicación remota y de aplicar correctamente ACL a esta ubicación.

Otras características para profesionales de TI

WCF tiene un proveedor de WMI que expone la información de configuración de infraestructura WCF a través de WMI (incluido con Windows). De forma predeterminada, la interfaz WMI está disponible para los administradores.

La configuración WCF utiliza el mecanismo de configuración de .NET Framework. Los archivos de configuración están almacenados en el equipo. El desarrollador de aplicaciones y el administrador crean los archivos de configuración y ACL para cada uno de los requisitos de la aplicación. Un archivo de configuración puede contener las direcciones del extremo y vínculos a los certificados en el almacén de certificados. Los certificados se pueden utilizar para proporcionar los datos de la aplicación con el fin de configurar varias propiedades de las características utilizadas por la aplicación.

WCF tiene contadores de rendimiento que aparecen en el formato siguiente: Class.Interface.Method@<endpointAddress>.

WCF también utiliza la funcionalidad de volcado de .NET Framework llamando al método FailFast.

IT Pro Tools

WCF también proporciona las siguiente herramientas profesionales de TI distribuidas en Windows SDK.

SvcTraceViewer.exe

El visor muestra los archivos de seguimiento WCF. El visor muestra la información cualquier contenida en los seguimientos.

SvcConfigEditor.exe

El editor permite al usuario crear y modificar los archivos de configuración WCF. El editor muestra la información cualquier contenida en los archivos de configuración. La misma tarea se puede lograr con un editor de texto.

ServiceModel_Reg

Esta herramienta permite al usuario administrar las instalaciones de ServiceModel en un equipo. La herramienta muestra los mensajes del estado en una ventana de consola cuando ejecuta y, en el proceso, puede mostrar información sobre la configuración de la instalación WCF.

WSATConfig.exe y WSATUI.dll

Estas herramientas permiten a los profesionales de TI configurar la compatibilidad de red de WS-AtomicTransaction interoperable en WCF. Las herramientas muestran y permiten al usuario cambiar los valores de la configuración más utilizada de WS-AtomicTransaction almacenada en el registro.

Características del corte del cruce

Las características siguientes son transversales. Es decir, se pueden crear con cualquiera de las características anteriores.

Marco de servicios

Los encabezados pueden contener un id. de instancia, que es un GUID que asocia un mensaje a una instancia de una clase CLR.

El Lenguaje de descripción de servicios (WSDL) contiene una definición del puerto. Cada puerto tiene una dirección del extremo y un enlace que representa los servicios utilizados por la aplicación. Exponer WSDL se puede desactivar utilizando la configuración. No se retiene información en el equipo.

Consulte también

Otros recursos

Windows Communication Foundation
Seguridad en Windows Communication Foundation