Share via


Cómo proteger conexiones y autenticar solicitudes (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

En este tema se describen los métodos principales que usa Windows en tiempo de ejecución para permitir que las aplicaciones de Windows en tiempo de ejecución protejan las conexiones y proporcionen las credenciales de autenticación necesarias para establecer y usar conexiones de red seguras.

Tecnologías

Crear conexiones de sockets seguras

Los protocolos Capa de sockets seguros (SSL) y Seguridad de la capa de transporte (TLS) son protocolos criptográficos diseñados para proporcionar autenticación y cifrado para comunicaciones de red. Estos protocolos están diseñados para evitar interceptaciones y alteraciones cuando se envían y reciben datos de red. Usan un modelo de cliente-servidor para los intercambios de protocolos. También usan certificados digitales y entidades de certificación para comprobar que el servidor sea el que dice ser. El protocolo TLS está documentado en IETF RFC 5246. El protocolo SSL anterior estaba documentado por Netscape Communications. SSL se usa normalmente para hacer referencia a ambos protocolos.

Un objeto StreamSocket se puede configurar para usar SSL/TLS en comunicaciones entre el cliente y el servidor. Esta compatibilidad con SSL/TLS se limita al uso del objeto StreamSocket como el cliente en la negociación de SSL/TLS. Actualmente StreamSocketListener con el StreamSocket creado, no puede usar SSL/TLS cuando se recibe una conexión para habilitarlo en el StreamSocket creado, porque la negociación de SSL/TLS como servidor no se implementa para un StreamSocket.

Para obtener ejemplos sobre cómo crear o actualizar una conexión de sockets segura a un servicio de red, consulta Cómo proteger conexiones de sockets con TLS/SSL.

Crear conexiones Websocket seguras

Al igual que las conexiones de sockets tradicionales, las conexiones WebSocket también pueden cifrarse con Seguridad de la capa de transporte (TLS) o Capa de sockets seguros (SSL), cuando se usan las características StreamWebSocket y MessageWebSocket en Windows 8 para una aplicación de la Tienda Windows. En la mayoría de los casos, querrás usar una conexión WebSocket segura. Esto aumentará las posibilidades de que tu conexión se realice correctamente, ya que muchos servidores proxy rechazarán las conexiones WebSocket no cifradas.

Para obtener ejemplos sobre cómo crear o actualizar una conexión de sockets segura a un servicio de red, consulta Cómo proteger conexiones WebSocket con TLS/SSL.

Además del cifrado con TLS/SSL, un servidor podría necesitar un valor de encabezado Sec-WebSocket-Protocol para completar el protocolo de enlace inicial. Este valor, representado por las propiedades StreamWebSocketInformation.Protocol y MessageWebSocketInformation.Protocol, indica la versión del protocolo de la conexión y permite que el servidor interprete correctamente el protocolo de enlace de apertura y los datos que se intercambiar después. Con esta información del protocolo, si en algún momento el servidor no puede interpretar los datos entrantes de manera segura, se puede cerrar la conexión.

Si la solicitud inicial del cliente no contiene este valor o proporciona un valor que no coincide con el que espera el servidor, el valor esperado se envía desde el servidor al cliente en un error de protocolo de enlace de WebSocket.

Proporcionar credenciales de autenticación a un servicio web

Las API de redes de Windows en tiempo de ejecución que permiten que las aplicaciones de Windows en tiempo de ejecución interactúen con servicios web seguros proporcionan sus propios métodos para inicializar un cliente o establecer un encabezado de solicitud con credenciales de autenticación de proxy y servidor. Cada método se establece con un objeto PasswordCredential que indica un nombre de usuario, una contraseña y el recurso para el cual se usan estas credenciales. En la siguiente tabla, se proporciona una asociación de estas API:

WebSockets

Background Transfer

Syndication

AtomPub

 

Temas relacionados

Cómo proteger conexiones de sockets con TLS/SSL

Cómo proteger conexiones WebSocket con TLS/SSL

Conectar a servicios de red