Administrar la seguridad (Service Broker)
Service Broker proporciona una estructura de seguridad flexible para ayudar a desarrollar aplicaciones seguras. En este tema se explican las consideraciones para administrar la seguridad de Service Broker.
Diseñar la seguridad
Cada aplicación tiene requisitos de seguridad únicos. Parte de la administración de seguridad consiste en planear cuidadosamente los requisitos de su aplicación. La seguridad de transporte, la seguridad de diálogo y la infraestructura de seguridad integradas en SQL Server funcionan conjuntamente para ayudar a desarrollar aplicaciones seguras.
Todas las aplicaciones utilizan la infraestructura de seguridad integrada en SQL Server. Cada operación de SQL Server se produce en un contexto de seguridad específico. En la mayoría de los casos, se crean entidades de seguridad de base de datos de SQL Server específicamente para la aplicación. Esto ayuda a garantizar que cada paso de la aplicación se ejecuta en un contexto seguro con los privilegios estrictamente necesarios para ese paso. Por ejemplo, la entidad de seguridad que especifica para la activación interna debe ejecutar permisos en el procedimiento almacenado que activa Service Broker. El mismo procedimiento almacenado puede suplantar a un usuario que tenga permiso RECEIVE para la cola y permiso UPDATE para una tabla determinada. La aplicación se diseña de forma que, en cada etapa, el contexto de seguridad de la aplicación no tenga permiso para realizar operaciones no esperadas.
Las aplicaciones que envían mensajes entre instancias de SQL Server pueden utilizar la seguridad de transporte, la seguridad de diálogo o ambas. La seguridad de transporte y la seguridad de diálogo proporcionan protecciones claramente diferenciadas.
La seguridad de diálogo de Service Broker proporciona autorización y cifrado integrales para las conversaciones entre servicios específicos. Así, la seguridad de diálogo ayuda a proteger los datos de inspecciones o modificaciones en el tránsito. Las aplicaciones que transmiten datos confidenciales o reservados o mensajes a través de redes sin confianza, deben utilizar la seguridad de diálogo. Esta seguridad puede ayudar a que un participante de la conversación identifique al otro participante de la conversación.
Dado que la seguridad de diálogo se aplica a servicios específicos, debe configurar la seguridad de diálogo en cada servicio que la utiliza. Sin embargo, una instancia puede utilizar la seguridad de diálogo para algunas conversaciones y permitir que otras conversaciones se transmitan sin cifrar. Por ejemplo, las conversaciones con un servicio que actualiza la información de los clientes pueden utilizar la seguridad de diálogo, mientras que las conversaciones que sólo buscan información sobre números de pieza pueden no necesitar la seguridad de diálogo.
Service Broker utiliza enlaces de servicio remoto en la base de datos que inicia la conversación para determinar la seguridad de la conversación. Así, Service Broker utiliza el nombre de servicio para determinar la seguridad del servicio. En los casos donde existe más de una instancia del mismo servicio de destino, el enrutamiento en los servicios iniciadores debe estar cuidadosamente administrado para que éstos sólo se comuniquen con los servicios de destino que contengan certificados coincidentes. Todos los servicios que tienen el mismo nombre deben configurarse con el mismo certificado.
La seguridad de transporte de Service Broker evita las conexiones de red no autorizadas a los extremos de Service Broker, detecta modificaciones en los mensajes en tránsito y, opcionalmente, proporciona cifrado punto a punto. Esto ayuda a evitar que la base de datos reciba mensajes no deseados. Dado que la seguridad de transporte se aplica a las conexiones de red, se aplica automáticamente a todas las conversaciones entre las instancias de SQL Server. Sin embargo, tenga en cuenta que la seguridad de transporte no proporciona cifrado integral ni autenticación para conversaciones individuales.
Mantener la seguridad
El mantenimiento de la seguridad de las aplicaciones de Service Broker consta de dos tareas principales: auditar la configuración de la aplicación y reemplazar los certificados que utiliza la aplicación.
Realice auditorías periódicas de la aplicación para determinar que la configuración de seguridad no se ha modificado y que cubre las necesidades de la aplicación.
La seguridad de diálogo se basa en los certificados para la autenticación y el cifrado. La seguridad de transporte también puede utilizar certificados. Un certificado tiene un período de validez especificado. El certificado no es válido antes del inicio de este período ni después de que finalice. Service Broker no utiliza certificados que no son válidos en la actualidad. Además, SQL Server incluye la opción ACTIVE FOR BEGIN_DIALOG para que un certificado esté disponible para Service Broker. Para actualizar certificados, cree o cargue nuevos certificados con la opción ACTIVE FOR BEGIN_DIALOG establecida en OFF. Una vez cargados todos los certificados, modifique los certificados actuales de todas las bases de datos para que no estén disponibles en Service Broker. A continuación, modifique los nuevos certificados estableciendo la opción ACTIVE FOR BEGIN_DIALOG de forma que estén disponibles en Service Broker.
Para obtener más información sobre los certificados, vea Certificados y Service Broker y CREATE CERTIFICATE (Transact-SQL).