estructura de RPC_SECURITY_QOS (rpcdce.h)
La estructura de RPC_SECURITY_QOS define la configuración de calidad de servicio de seguridad en un identificador de enlace. Vea Comentarios sobre la disponibilidad de versiones en las ediciones de Windows.
Sintaxis
typedef struct _RPC_SECURITY_QOS {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;
Miembros
Version
Versión de la estructura RPC_SECURITY_QOS que se usa. En este tema se documenta la versión 1 de la estructura de RPC_SECURITY_QOS . Consulte RPC_SECURITY_QOS_V2, RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 y RPC_SECURITY_QOS_V5 para otras versiones.
Capabilities
Servicios de seguridad que se proporcionan a la aplicación. Las funcionalidades son un conjunto de marcas que se pueden combinar mediante el operador OR bit a bit.
Valor | Significado |
---|---|
|
Se usa cuando no se necesitan funcionalidades específicas del proveedor. |
|
Especificar esta marca hace que el tiempo de ejecución de RPC solicite la autenticación mutua del proveedor de seguridad. Algunos proveedores de seguridad no admiten la autenticación mutua. Si el proveedor de seguridad no admite la autenticación mutua o no se puede establecer la identidad del servidor, no se puede establecer una llamada de procedimiento remoto a dicho servidor con un error RPC_S_SEC_PKG_ERROR.
Nota RPC se basa en el SSP para indicar qué opciones de seguridad se negociaron correctamente; RPC a su vez produce un error en cualquier llamada para la que el proveedor de servicios de seguridad (SSP) notifica que no pudo negociar una opción. Sin embargo, se sabe que algunos proveedores de seguridad notifican la negociación correcta de una opción incluso cuando la opción no se negoció correctamente. Por ejemplo, NTLM notificará una negociación correcta de la autenticación mutua por motivos de compatibilidad con versiones anteriores, aunque no admita la autenticación mutua. Compruebe con el SSP concreto que se usa para determinar su comportamiento con respecto a las opciones de seguridad.
|
|
No implementado actualmente. |
|
Acepta las credenciales del cliente incluso si la entidad de certificación (CA) no está en la lista de CA de confianza del servidor. Esta constante solo la usa el SSP de SCHANNEL. |
|
Cuando se especifica, esta marca dirige el tiempo de ejecución rpc en el cliente para omitir un error para establecer un contexto de seguridad que admita la delegación. Normalmente, si el cliente solicita delegación y el sistema de seguridad no puede establecer un contexto de seguridad que admita la delegación, se devuelve el error RPC_S_SEC_PKG_ERROR; cuando se especifica esta marca, no se devuelve ningún error.
Nota No se admite en Windows XP y en ediciones de cliente anteriores, no admitidas en las ediciones de windows 2000 y versiones anteriores del servidor.
|
|
Esta marca especifica a RPC que el servidor es local para la máquina que realiza la llamada RPC. En esta situación RPC indica al asignador de puntos de conexión que seleccione solo los puntos de conexión registrados por la entidad de seguridad especificada en los miembros ServerPrincName o Sid (estos miembros están disponibles en RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 y solo RPC_SECURITY_QOS_V5 ). Vea Comentarios para obtener más información.
Nota No se admite en Windows XP y en ediciones de cliente anteriores, no admitidas en las ediciones de windows 2000 y versiones anteriores del servidor.
|
|
Si se establece, el tiempo de ejecución de RPC usa el SSP de SChannel para realizar la autenticación basada en tarjetas inteligentes sin mostrar un cuadro de diálogo de solicitud de PIN por parte del proveedor de servicios criptográficos (CSP).
En la llamada a RpcBindingSetAuthInfoEx, el parámetro AuthIdentity debe ser una estructura SEC_WINNT_AUTH_IDENTITY cuyos miembros contengan lo siguiente:
|
IdentityTracking
Establece el modo de seguimiento de contexto. Debe establecerse en uno de los valores que se muestran en la tabla siguiente.
Valor | Significado |
---|---|
|
El contexto de seguridad solo se crea una vez y nunca se revisa durante toda la comunicación, incluso si el lado cliente lo cambia. Este es el comportamiento predeterminado si no se especifica RPC_SECURITY_QOS. |
|
El contexto se revisa cada vez que se cambia el valor de ModifiedId en el token del cliente. Todos los protocolos usan ModifiedId (consulte la nota).
Windows 2000: Todos los protocolos remotos (todos los protocolos distintos de ncalrpc) usan AuthenticationID, también conocido como LogonId, para realizar un seguimiento de los cambios en la identidad del cliente. El protocolo ncalrpc usa ModifiedId. |
ImpersonationType
Nivel en el que el proceso de servidor puede suplantar al cliente.
Valor | Significado |
---|---|
|
Usa el nivel de suplantación predeterminado. |
|
El cliente no proporciona información de identificación al servidor. El servidor no puede suplantar al cliente ni identificar al cliente. Muchos servidores rechazan las llamadas con este tipo de suplantación.
Nota Algunos proveedores de seguridad pueden tratar este tipo de suplantación como equivalente a RPC_C_IMP_LEVEL_IMPERSONATE. Desde los proveedores de seguridad de Windows, esto se realiza RPC_C_AUTHN_WINNT solo cuando se usa con secuencias de protocolo que no sean ncalrpc. También lo hace RPC_C_AUTHN_GSS_NEGOTIATE, RPC_C_AUTHN_GSS_SCHANNEL y RPC_C_AUTHN_GSS_KERBEROS.
|
|
El servidor puede obtener la identidad del cliente y suplantar al cliente para realizar comprobaciones de lista de Access Control (ACL), pero no puede suplantar al cliente. Consulte Niveles de suplantación para obtener más información.
Nota Algunos proveedores de seguridad pueden tratar este tipo de suplantación como equivalente a RPC_C_IMP_LEVEL_IMPERSONATE. Desde los proveedores de seguridad de Windows, esto se realiza RPC_C_AUTHN_WINNT solo cuando se usa con secuencias de protocolo que no sean ncalrpc. También lo hace RPC_C_AUTHN_GSS_NEGOTIATE, RPC_C_AUTHN_GSS_SCHANNEL y RPC_C_AUTHN_GSS_KERBEROS.
|
|
El servidor puede suplantar el contexto de seguridad del cliente en su sistema local, pero no en sistemas remotos. |
|
El servidor puede suplantar el contexto de seguridad del cliente mientras actúa en su nombre. El servidor también puede realizar llamadas salientes a otros servidores mientras actúa en nombre del cliente. El servidor puede usar el contexto de seguridad del cliente en otras máquinas para acceder a recursos locales y remotos como cliente. |
Comentarios
En la lista siguiente se define la disponibilidad de las versiones de QOS en varios sistemas operativos Windows:
- Versión 1: Windows 2000 y versiones posteriores.
- Versión 2: Windows XP con Service Pack 1 (SP1) y versiones posteriores.
- Versión 3: Windows Server 2003 y versiones posteriores.
- Versión 4: Windows Vista y versiones posteriores.
- Versión 5: Windows 8 y versiones posteriores.
Las funciones de seguridad del lado cliente RpcBindingInqAuthInfoEx y RpcBindingSetAuthInfo usan la estructura de RPC_SECURITY_QOS para consultar o establecer la calidad de seguridad del servicio para un identificador de enlace.
RPC admite la sugerencia de RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT. Esta sugerencia solo se usa cuando se usan puntos de conexión dinámicos y autenticación mutua. Además, no se admite para las secuencias de protocolo ncadg_ . Si esta marca se usa para una secuencia de protocolo de ncadg_ o sin usar la autenticación mutua, se devuelve RPC_S_INVALID_ARG desde la llamada de función RpcBindingSetAuthInfoEx . Esta marca está diseñada para evitar un ataque por denegación de servicio. El uso de esta marca obliga al tiempo de ejecución de RPC a pedir al asignador de puntos de conexión solo los puntos de conexión registrados por la entidad de seguridad especificada en los miembros ServerPrincName o Sid . Esto impide que un atacante de la máquina local intente engañar al cliente RPC para conectarse a un punto de conexión de suplantación de identidad que ha registrado en el asignador de puntos de conexión. Tenga en cuenta que, dado que el ataque solo es local (por ejemplo, desde una máquina de terminal server con muchos usuarios), la marca también funciona solo para las llamadas RPC realizadas localmente.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado | rpcdce.h (incluir Rpc.h) |