Seguridad de IIS
En este tema se describe cómo Microsoft SQL Server Compact 3.5 se basa en lo siguiente:
Autenticación de IIS
Autorización de IIS
Cifrado de IIS
Autenticación de IIS
Cuando se configura el Agente de servidor de SQL Server Compact 3.5, se especifica si los clientes deben realizar la autenticación de Internet Information Services (IIS) de Microsoft al conectarse al Agente de servidor de SQL Server Compact 3.5. Existen tres formas de autenticación de IIS:
Acceso anónimo
Autenticación básica
Autenticación de Windows integrada
Normalmente, la mayoría de aplicaciones de Internet utilizan la autenticación básica y el cifrado de nivel de sockets seguros (SSL).
Acceso anónimo
Con el acceso anónimo, IIS no ejecuta la autenticación del cliente. Todo el trabajo que realiza el Agente de servidor de SQL Server Compact 3.5 en nombre del cliente se lleva a cabo bajo la identidad de la cuenta de invitado para Internet. De manera predeterminada, la Cuenta de invitado para Internet es IUSR_nombreEquipo, pero puede elegir una cuenta de usuario de Windows diferente.
Autenticación básica
Con la autenticación básica, el cliente de SQL Server Compact 3.5 debe proporcionar un nombre de usuario y una contraseña de Windows válidos. IIS intenta iniciar sesión utilizando el nombre de usuario y la contraseña proporcionados por el cliente. Si el intento de inicio de sesión se realiza correctamente, todo el trabajo llevado a cabo por el Agente de servidor de SQL Server Compact 3.5 se ejecuta bajo la identidad de la cuenta de usuario de Windows especificada. Si no se puede iniciar sesión, se rechaza la solicitud del cliente. La autenticación básica se puede utilizar tanto para aplicaciones de Internet como de intranet. Requiere que cada cliente tenga una cuenta de Windows válida, con un nombre de usuario y una contraseña asignados.
Importante
De manera predeterminada, la autenticación básica envía el nombre de usuario y la contraseña a través de la red en codificación Base64. Esto puede suponer un peligro para la seguridad si un usuario malintencionado tiene acceso a la contraseña, ya que la codificación Base64 se puede descodificar fácilmente. Para proteger la contraseña de usuario, debe utilizar el cifrado de nivel de sockets seguros (SSL) siempre que use la autenticación básica. Para obtener más información, vea Configurar el cifrado SSL.
Autenticación de Windows integrada
La autenticación de Windows integrada se parece mucho a la autenticación básica. El cliente de SQL Server Compact 3.5 debe proporcionar un nombre de usuario y una contraseña de Windows válidos. IIS intenta iniciar sesión utilizando este nombre de usuario y contraseña. Si el intento de inicio de sesión se realiza correctamente, todo el trabajo llevado a cabo por el Agente de servidor de SQL Server Compact 3.5 se ejecuta bajo la identidad de la cuenta de usuario de Windows especificada. Si no se puede iniciar sesión, se rechaza la solicitud de sincronización del cliente. La autenticación de Windows integrada tiene una ventaja importante en comparación con la autenticación básica: a diferencia de la autenticación básica, la autenticación de Windows integrada no transmite el nombre de usuario y la contraseña del cliente sin cifrar a través de la red. De este modo, se evita el riesgo de que alguien intercepte la contraseña. La autenticación de Windows integrada es la más adecuada para las aplicaciones de intranet. La autenticación de Windows integrada apenas se usa para aplicaciones de Internet, porque no puede funcionar a través de un servidor proxy o firewall.
Nota
Dado que Microsoft Windows CE 4.2 no es compatible con la autenticación implícita, las soluciones de conectividad de SQL Server Compact 3.5 no admiten este método de autenticación.
Autorización de IIS
Una vez que el cliente de IIS se ha autenticado, la autorización de IIS determina si el cliente puede llamar al Agente de servidor de SQL Server Compact 3.5. Es posible controlar quién puede realizar la conectividad de SQL Server Compact 3.5 controlando los clientes que pueden obtener acceso al Agente de servidor de SQL Server Compact 3.5.
IIS le ofrece los mecanismos siguientes para controlar este acceso:
Primero, IIS comprueba la dirección del cliente teniendo en cuenta todas las restricciones de dirección IP configuradas. Se puede configurar el servidor web para evitar que ciertos equipos, grupos de equipos o redes completas obtengan acceso al Agente de servidor de SQL Server Compact 3.5. Cuando un cliente intenta obtener acceso al Agente de servidor de SQL Server Compact 3.5 por primera vez, IIS comprueba la dirección IP del equipo cliente con la configuración de restricciones de direcciones IP del servidor. Si la dirección IP no obtiene acceso, se rechaza la solicitud de sincronización del cliente con el mensaje: "403 Access Forbidden".
Si se configura IIS para solicitar autenticación, IIS comprueba si el cliente tiene una cuenta de usuario de Windows válida, tal como se describe en el apartado Autenticación de IIS de este documento. Si la cuenta de usuario no es válida, se rechaza la solicitud de sincronización del cliente con el mensaje: "403 Access Forbidden".
A continuación, IIS comprueba los permisos web. Esta comprobación de seguridad de IIS no es relevante para las soluciones de conectividad de SQL Server Compact 3.5.
IIS comprueba seguidamente los permisos NTFS del Agente de servidor de SQL Server Compact 3.5 para asegurarse de que el usuario que se está conectando dispone de los permisos adecuados.
Nota
Aunque se puede utilizar IIS con un sistema de archivos FAT (tabla de asignación de archivos), se recomienda que utilice NTFS. NTFS permite el uso de listas de control de acceso (ACL) para conceder o denegar el acceso al Agente de servidor de SQL Server Compact 3.5 y a los archivos de mensajes de entrada y salida del sistema IIS.
Cifrado de IIS
Cuando se configura el Agente de servidor de SQL Server Compact 3.5, es posible especificar el cifrado SSL. Si especifica el cifrado SSL, todas las comunicaciones entre el Agente de cliente de SQL Server Compact 3.5 y el Agente de servidor de SQL Server Compact 3.5 se cifrarán. Para obtener más información, vea Configurar el cifrado SSL.
Debe utilizar el cifrado SSL en los casos siguientes:
Cuando configure IIS para utilizar la autenticación básica.
Esto es esencial para proteger la contraseña del usuario en Internet. De manera predeterminada, la autenticación básica transmite el nombre de usuario y la contraseña a través de la red en codificación Base64. Esto puede suponer un peligro para la seguridad si un usuario malintencionado tiene acceso a la contraseña, ya que la codificación Base64 se puede descodificar fácilmente. Para proteger la contraseña de usuario en Internet, debe utilizar el cifrado SSL siempre que use la autenticación básica.
Solo para RDA: si la aplicación especifica un parámetro OLEDBConnectionString que contiene una contraseña.
Los métodos RDA Pull, Push y SubmitSQL requieren un parámetro OLEDBConnectionString. Esta cadena de conexión se transmite a través de la red en formato de texto no cifrado. Esto puede suponer un peligro para la seguridad si un usuario malintencionado tiene acceso a la contraseña.
Solo para replicación: si el publicador o el distribuidor de SQL Server utiliza la Autenticación de SQL Server.
Si la propiedad DistributorSecurityMode especifica DB_AUTHENTICATION, el distribuidor está utilizando autenticación de SQL Server. Si la propiedad PublisherSecurityMode especifica DB_AUTHENTICATION, el publicador está utilizando autenticación de SQL Server. Cuando se utiliza autenticación de SQL Server, las propiedades DistributorPassword y PublisherPassword se pasan a través de la red en formato de texto sin cifrar. Esto puede suponer un peligro para la seguridad si un usuario malintencionado tiene acceso a la contraseña. Siempre que se utilice autenticación de SQL Server para salvaguardar las propiedades DistributorPassword y PublisherPassword, debería emplearse cifrado SSL.