Compartir vía


Negociación de manta de seguridad

Una manta de seguridad es un grupo de valores que describen la configuración de seguridad que se aplica a todos los servidores proxy de un proceso o solo a un proxy de interfaz determinado. Una manta de seguridad consta de los siguientes valores:

  • Servicio de autenticación
  • Servicio de autorización
  • Nombre principal
  • Nivel de autenticación
  • Nivel de suplantación
  • Identidad de autenticación
  • Capacidades
  • Una lista de control de acceso (ACL) (solo servidores)

La negociación general de seguridad es el proceso que COM usa para elegir la configuración de seguridad de un proxy cuando se crea. Este proceso implica comparar la cobertura de seguridad del servidor con la manta de seguridad del cliente y usar esos valores para crear una manta de seguridad predeterminada adecuada para el proxy. En los párrafos siguientes se explica dónde proceden las mantas de seguridad del cliente y del servidor y cómo COM negocia la cobertura de seguridad del proxy mediante las mantas de seguridad del cliente y del servidor.

El cliente y el servidor pueden llamar a CoInitializeSecurity para especificar sus respectivas mantas de seguridad. Si una aplicación no llama a CoInitializeSecurity explícitamente, COM lo llama implícitamente para la aplicación, con los valores predeterminados adecuados. Para obtener más información sobre estos valores predeterminados, vea valores predeterminados de seguridad COM.

Algunos parámetros para CoInitializeSecurity se aplican cuando la aplicación es un servidor y algunas se aplican cuando la aplicación es un cliente. Cuando la aplicación actúa como servidor, estos parámetros son relevantes: una ACL, una lista de tuplas de nombre principal o servicio de autenticación, servicio de autorización y nivel de autenticación. La llamada de un servidor a CoInitializeSecurity, ya sea implícita o explícita, determina la manta de seguridad del servidor, que permanece fija.

Cuando la aplicación actúa como cliente, los siguientes valores pasados a CoInitializeSecurity son relevantes: un nivel de autenticación, un nivel de suplantación, la identidad de autenticación y las funcionalidades. La llamada implícita o explícita de un cliente a CoInitializeSecurity indica la cobertura de seguridad que el cliente quiere.

Cuando se crea un proxy, COM usa los valores especificados por la manta de seguridad del servidor y la manta de seguridad del cliente para negociar una manta de seguridad predeterminada adecuada para el proxy. COM elige un servicio de autenticación que funciona tanto en el cliente como en el servidor. El servicio de autorización y el nombre de entidad de seguridad se eligen para trabajar con el servicio de autenticación. Para el nivel de autenticación, COM elige el mayor de los niveles de autenticación especificados por el cliente y el servidor. El nivel de suplantación y las funcionalidades elegidas por COM son las especificadas por el cliente. La identidad de autenticación es la especificada por el cliente para el servicio de autenticación elegido.

Una vez calculada la manta de seguridad predeterminada, sus valores se asignan al proxy recién creado. El cliente puede invalidar la configuración de seguridad del proxy llamando a IClientSecurity::SetBlanket. No se negocian los valores especificados para SetBlanket; simplemente se asignan al proxy especificado. Sin embargo, si los parámetros predeterminados (como RPC_C_IMP_LEVEL_DEFAULT) se pasan a SetBlanket, COM usa el algoritmo de negociación general de seguridad descrito anteriormente para calcular los parámetros predeterminados.

seguridad de en COM