Partekatu bidez


Información de privacidad de Windows Communication Foundation

Microsoft se compromete a proteger la privacidad del usuario final. Al compilar una aplicación con Windows Communication Foundation (WCF), versión 3.0, la aplicación puede afectar a la privacidad de los usuarios finales. Por ejemplo, la aplicación puede recopilar explícitamente información de contacto del usuario, o bien puede solicitar o enviar información a través de Internet a su sitio web. Si inserta tecnología de Microsoft en la aplicación, esa tecnología puede tener su propio comportamiento que pueda afectar a la privacidad. WCF no envía ninguna información a Microsoft desde su aplicación a menos que usted o el usuario final decidan enviarlos a nosotros.

WCF en breve

WCF es un marco de mensajería distribuida mediante Microsoft .NET Framework que permite a los desarrolladores compilar aplicaciones distribuidas. Los mensajes comunicados entre dos aplicaciones contienen información de encabezado y cuerpo.

Los encabezados pueden contener enrutamiento de mensajes, información de seguridad, transacciones y mucho más en función de los servicios utilizados por la aplicación. Normalmente, los mensajes se cifran de forma predeterminada. La única excepción es cuando se usa BasicHttpBinding, que se diseñó para su uso con servicios web heredados no protegidos. Como diseñador de aplicaciones, usted es responsable del diseño final. Los mensajes del cuerpo SOAP contienen datos específicos de la aplicación; sin embargo, estos datos, como la información personal definida por la aplicación, se pueden proteger mediante el cifrado WCF o las características de confidencialidad. En las secciones siguientes se describen las características que pueden afectar a la privacidad.

Mensajería

Cada mensaje WCF tiene un encabezado de dirección que especifica el destino del mensaje y dónde debe ir la respuesta.

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

La capa de mensajería WCF no escribe ninguna información personal en el equipo local. Sin embargo, puede propagar información personal en el nivel de red si un desarrollador de servicios ha creado un servicio que expone dicha información (por ejemplo, mediante el uso del nombre de una persona en un nombre de punto de conexión o la información personal en el lenguaje de descripción de servicios web del punto de conexión, pero no requiere que los clientes usen https para acceder al WSDL). Además, si un desarrollador ejecuta la herramienta de utilidad de metadatos serviceModel (Svcutil.exe) en un punto de conexión que expone información personal, la salida de la herramienta podría contener esa información y el archivo de salida se escribe en el disco duro local.

Alojamiento

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

El hospedaje no expone ninguna información específica en la red y no mantiene los datos en la máquina.

Seguridad de mensajes

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

La autenticación se realiza pasando las credenciales entre los clientes y los servicios. La autenticación puede ser a través de la seguridad de nivel de transporte o a través de la seguridad de nivel de mensaje SOAP, como se indica a continuación:

  • En seguridad de mensajes SOAP, la autenticación se realiza a través de credenciales como nombre de usuario y contraseñas, certificados X.509, vales Kerberos y tokens SAML, todos los cuales pueden contener información personal, en función del emisor.

  • Mediante la seguridad de transporte, la autenticación se realiza a través de mecanismos tradicionales de autenticación de transporte como esquemas de autenticación HTTP (Basic, Digest, Negotiate, Integrated Windows Authorization, NTLM, None y Anonymous) y autenticación de formularios.

La autenticación puede dar lugar a una sesión segura establecida entre los puntos de conexión de comunicación. La sesión se identifica mediante un GUID que existe durante toda la sesión de seguridad. En la tabla siguiente se muestra lo que se mantiene y dónde.

Datos Almacenamiento
Credenciales de presentación, como nombre de usuario, certificados X.509, tokens Kerberos y referencias a credenciales. Mecanismos estándar de administración de credenciales de Windows, como el almacén de certificados de Windows.
Información de pertenencia al usuario, como nombres de usuario y contraseñas. Proveedor de pertenencia a ASP.NET.
Información de identidad sobre el servicio usado para autenticar el servicio ante los clientes. Dirección del punto de conexión del servicio.
Información del autor de la llamada. Registros de auditoría.

Auditoría

La auditoría registra el éxito y el error de los eventos de autenticación y autorización. Los registros de auditoría contienen los siguientes datos: URI de servicio, URI de acción y identificación del autor de la llamada.

La auditoría también registra cuando el administrador modifica la configuración del registro de mensajes (activarlo o desactivarlo), ya que el registro de mensajes puede registrar datos específicos de la aplicación en encabezados y cuerpos. Para Windows XP, se registra un registro en el registro de eventos de la aplicación. Para Windows Vista y Windows Server 2003, se registra un registro 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 Transacciones usa el Administrador de transacciones del Coordinador de transacciones distribuidas de Microsoft (MSDTC) (un componente de Windows) para administrar el estado de la transacción. De forma predeterminada, las comunicaciones entre administradores de transacciones se cifran. Los administradores de transacciones pueden registrar referencias de punto de conexión, id. de transacción e id. de inscripción como parte de su estado duradero. La duración de este estado viene determinada por la duración del archivo de registro del Administrador de transacciones. El servicio MSDTC posee y mantiene este registro.

La característica Transacciones implementa los estándares WS-Coordination y WS-Atomic Transaction.

Sesiones confiables

Las sesiones confiables en WCF proporcionan la transferencia de mensajes cuando se producen errores de transporte o intermediario. Proporcionan una transferencia exactamente una vez de mensajes incluso cuando el transporte subyacente se desconecta (por ejemplo, una conexión TCP en una red inalámbrica) o pierde un mensaje (un proxy HTTP que quita un mensaje saliente o entrante). Las sesiones confiables también recuperan el reordenamiento de mensajes (como puede ocurrir en el caso del enrutamiento de múltiples rutas), conservando el orden en el que se enviaron los mensajes.

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

No se conserva ninguna información personal en el equipo del usuario final.

Canales en espera

Las colas almacenan mensajes de una aplicación de envío en nombre de una aplicación receptora y posteriormente reenvían estos mensajes a la aplicación receptora. Ayudan a garantizar la transferencia de mensajes desde el envío de aplicaciones a la recepción de aplicaciones cuando, por ejemplo, la aplicación receptora es transitoria. WCF proporciona soporte para la puesta en cola utilizando Microsoft Message Queuing (MSMQ) como transporte.

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

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

Integración de COM+

Esta característica incluye la funcionalidad COM y COM+ existente para crear servicios compatibles con los servicios WCF. Esta característica no usa encabezados específicos y no conserva los datos en el equipo del usuario final.

Moniker del servicio COM

Esto proporciona un contenedor no administrado para un cliente WCF estándar. Esta característica no tiene encabezados específicos en el cable ni almacena datos en la máquina.

Canal del mismo nivel

Un canal del mismo nivel habilita el desarrollo de aplicaciones en varias partes mediante WCF. La mensajería multiparte 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 TCP en un puerto especificado por el usuario y establece conexiones con otros nodos de la malla para garantizar la resistencia. Para conectarse a otros nodos de la malla, los nodos también intercambian algunos datos, incluida la dirección del agente de escucha y las direcciones IP de la máquina, con otros nodos de la malla. Los mensajes enviados alrededor de la malla pueden contener información de seguridad que pertenece al remitente para evitar la suplantación de mensajes y la manipulación.

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

Experiencia profesional de TI

Rastreo

La característica de diagnóstico de la infraestructura de WCF registra los mensajes que pasan por las capas de modelo de transporte y servicio, así como 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 seguimiento se puede modificar mediante el proveedor WMI de WCF en tiempo de ejecución. Cuando está habilitada, la infraestructura de seguimiento emite un seguimiento de diagnóstico que contiene mensajes, actividades y eventos de procesamiento para los agentes de escucha configurados. Las opciones de configuración del agente de escucha del administrador determinan el formato y la ubicación de la salida, pero normalmente es un archivo con formato XML. El administrador es responsable de establecer la lista de control de acceso (ACL) en los archivos de seguimiento. En concreto, cuando se hospeda en el Sistema de activación de Windows (WAS), el administrador debe asegurarse de que los archivos no se sirven desde el directorio raíz virtual público si no lo desea.

Hay dos tipos de seguimiento: registro de mensajes y seguimiento de diagnóstico del modelo de servicio, que se describe en la sección siguiente. Cada tipo se configura a través de su propio origen de seguimiento: MessageLogging y System.ServiceModel. Ambos orígenes de seguimiento de registro capturan datos que son locales para 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 registrar mensajes completos o solo los encabezados, especificar si registrar en las capas de modelo de transporte y/o servicio, y determinar si incluir mensajes malformados. Además, el usuario puede configurar el filtrado para restringir qué mensajes se registran.

De forma predeterminada, el registro de mensajes está deshabilitado. El administrador de la máquina local puede impedir que el administrador de nivel de aplicación active el registro de mensajes.

Registro de mensajes cifrados y descifrados

Los mensajes se registran, cifran o descifran, como se describe 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 enviarse por la red y cuando se reciben.

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

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

Los mensajes registrados en este nivel se descifran incluso si estaban protegidos y cifrados en la conexión.

Registro de mensajes con formato incorrecto registra mensajes que la infraestructura de WCF no puede entender ni procesar.

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

Cuando los mensajes se registran en formato descifrado o sin cifrar, WCF quita de forma predeterminada las claves de seguridad y la información personal de los mensajes antes de registrarlos. En las secciones siguientes se describe qué información se quita y cuándo. El administrador de la máquina y el implementador de aplicaciones deben realizar determinadas acciones de configuración para cambiar el comportamiento predeterminado para registrar claves y información potencialmente personal.

Información eliminada de los encabezados de mensaje al registrar mensajes descifrados o sin cifrar

Cuando los mensajes se registran en formato descifrado o sin cifrar, las claves de seguridad y la información potencialmente personal se quitan de forma predeterminada de los encabezados de mensaje y los cuerpos de mensaje antes de que se registren. En la lista siguiente se muestra lo que WCF considera las claves y la información potencialmente personal.

Claves que han sido quitadas:

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

    wsse:Password wsse:Nonce

Información personal potencialmente eliminada:

  • 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:assertion" los siguientes elementos de bold se quitan:

<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 />*

</Condiciones>? <Consejo><ReferenciaIDDeAserción>[ID]</ReferenciaIDDeAserción>* <Aserción>[aserción]</Aserción>* [cualquiera]* </Consejo>? <-- 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>? </Asunto></DeclaraciónDelAsunto>*

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

[Asunto] <SubjectLocality IPAddress="[string]"? DNSAddress="[string]"? />? <AuthorityBinding AuthorityKind="[QName]" Location="[uri]" Binding="[uri]" />* /* /* </AuthenticationStatement* >AttributeStatement<> [Subject] <Attribute AttributeName="[string]" AttributeNamespace="[uri]"

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

[Asunto] <Action Namespace="[uri]">[string]</Action>+ <Evidence><AssertionIDReference>[ID]</AssertionIDReference>+ <Assertion>[assertion]</Assertion>+ </Evidence>? </DeclaraciónDeDecisiónDeAutorización>* </Aserción>

Información eliminada de los cuerpos del mensaje al registrar mensajes descifrados o sin cifrar

Como se ha descrito anteriormente, WCF quita las claves y la información potencialmente personal de los encabezados de mensaje para los mensajes descifrados y sin cifrar registrados. Además, WCF quita las claves y la información personal conocida de los cuerpos de mensajes de los elementos del cuerpo y las acciones de la lista siguiente, que describe los mensajes de seguridad relacionados con el intercambio de claves.

Para los siguientes espacios de nombres:

xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust" y xmlns:wst="http://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 elimina para cada una de las acciones siguientes:

  • 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

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

WCF no realiza un seguimiento de la información personal en encabezados específicos de la aplicación (por ejemplo, cadenas de consulta) o datos del cuerpo (por ejemplo, el 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 aplicaciones es responsable de establecer las ACL en los archivos de configuración y registro. También pueden desactivar el registro si no quieren que esta información sea visible o filtrar esta información de los archivos de registro después de que se registre.

Seguimiento del modelo de servicio

El origen de seguimiento del modelo de servicio (System.ServiceModel) permite el seguimiento de actividades y eventos relacionados con el procesamiento de mensajes. Esta característica usa la funcionalidad de diagnóstico de .NET Framework de System.Diagnostics. Al igual que con la MessageLogging propiedad , la ubicación y su ACL son configurables por el usuario mediante archivos de configuración de aplicaciones de .NET Framework. Al igual que con el registro de mensajes, la ubicación del archivo siempre se configura cuando el administrador habilita el seguimiento; por lo tanto, el administrador controla la 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. Tanto el administrador de la máquina como el implementador de aplicaciones deben modificar la configuración para registrar información potencialmente personal. Sin embargo, los datos personales contenidos en encabezados específicos de la aplicación están registrados en trazas. El implementador de aplicaciones es responsable de establecer las ACL en los archivos de configuración y seguimiento. También pueden desactivar el seguimiento para ocultar esta información o filtrar esta información de los archivos de seguimiento después de que se registre.

Como parte del seguimiento de ServiceModel, los identificadores únicos (denominados identificadores de actividad y, normalmente, un GUID) vinculan actividades diferentes como un mensaje fluye a través de diferentes partes de la infraestructura.

Agentes de escucha de seguimiento personalizados

Para el registro y la traza de mensajes, se puede configurar un agente de escucha de traza personalizado que puede enviar rastros y mensajes en la conexión (por ejemplo, a una base de datos remota). El implementador de aplicaciones es responsable de configurar agentes de escucha personalizados o permitir que los usuarios lo hagan. También son responsables de cualquier información personal expuesta en la ubicación remota y de aplicar correctamente las ACL en esta ubicación.

Otras características para profesionales de TI

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

La configuración de WCF usa el mecanismo de configuración de .NET Framework. Los archivos de configuración se almacenan en la máquina. El desarrollador de la aplicación y el administrador crean los archivos de configuración y la ACL para cada uno de los requisitos de la aplicación. Un archivo de configuración puede contener direcciones de punto de conexión y vínculos a certificados en el almacén de certificados. Los certificados se pueden usar para proporcionar datos de aplicación para configurar diversas propiedades de las características usadas por la aplicación.

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

Herramientas profesionales de TI

WCF también proporciona las siguientes herramientas profesionales de TI, que se incluyen en Windows SDK.

SvcTraceViewer.exe

El visor muestra los archivos de seguimiento de WCF. El visor muestra cualquier información que se contenga en las trazas.

SvcConfigEditor.exe

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

ServiceModel_Reg

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

WSATConfig.exe y WSATUI.dll

Estas herramientas permiten a los profesionales de TI configurar el soporte de red interoperable WS-AtomicTransaction en WCF. Las herramientas muestran y permiten al usuario cambiar los valores de las configuraciones de WS-AtomicTransaction más utilizadas almacenadas en el registro.

Características transversales

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

Marco de servicio

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

El lenguaje de descripción de servicios web (WSDL) contiene una definición del puerto. Cada puerto tiene una dirección de punto de conexión y un enlace que representa los servicios utilizados por la aplicación. La exposición de WSDL se puede desactivar mediante la configuración. No se conserva información en la máquina.

Consulte también