Proteção Estendida
A proteção estendida é um mecanismo para associar um canal seguro externo, como SSL, a protocolos de autenticação de canal interno, como Kerberos-APREQ e autenticação de cabeçalho HTTP.
O conceito de proteção estendida é definido em RFC2743.
A proteção estendida, quando disponível, é configurada automaticamente no cliente, mas pode exigir configuração no servidor para cenários não padrão.
Configurações com suporte
A proteção estendida tem suporte ao usar WS_HTTP_CHANNEL_BINDING com associações de segurança usando protocolos de Autenticação Integrada do Windows, como WS_HTTP_HEADER_AUTH_SECURITY_BINDING e WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING. Ele é configurado por meio das seguintes propriedades de segurança:
- WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_POLICY
- WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_SCENARIO
- WS_SECURITY_PROPERTY_SERVICE_IDENTITIES
As seguintes configurações que envolvem proteção estendida são possíveis:
Cliente
- WS_SSL_TRANSPORT_SECURITY_BINDING é usado com WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING ou WS_HTTP_HEADER_AUTH_SECURITY_BINDING. Nessa configuração, a associação de autenticação é associada à conexão SSL por meio de um token de proteção estendida que é extraído automaticamente da conexão SSL.
- Nenhum SSL é usado e WS_HTTP_HEADER_AUTH_SECURITY_BINDING é definido. A associação de autenticação é associada por meio do SPN (Nome Principal do Servidor), que é determinado automaticamente a partir do WS_ENDPOINT_ADDRESS.
Servidor
- WS_SSL_TRANSPORT_SECURITY_BINDING é usado com WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING ou WS_HTTP_HEADER_AUTH_SECURITY_BINDING. Nessa configuração, a associação de autenticação é associada à conexão SSL por meio de um token de proteção estendida que é extraído da conexão SSL e validado automaticamente.
- Nenhum SSL é usado e WS_HTTP_HEADER_AUTH_SECURITY_BINDING é definido. A associação de autenticação é associada por meio do SPN (Nome Principal do Servidor), que deve ser fornecido por meio de WS_SECURITY_PROPERTY_SERVICE_IDENTITIES. Quando uma mensagem é recebida, o SPN é extraído e validado para uma correspondência exata com os nomes de serviço fornecidos. Não fornecer SPNs é o equivalente a definir WS_EXTENDED_PROTECTION_POLICY_NEVER.
- Nenhum SSL é usado, WS_EXTENDED_PROTECTION_SCENARIO_BOUND_SERVER é especificado e WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING é usado. Nessa configuração, WS_SECURITY_PROPERTY_SERVICE_IDENTITIES não deve ser definido. Nenhuma verificação de SPN é executada além do que é feito como parte do protocolo Kerberos.
- WS_EXTENDED_PROTECTION_SCENARIO_TERMINATED_SSL é especificado e WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING ou WS_HTTP_HEADER_AUTH_SECURITY_BINDING é usado. WS_SECURITY_PROPERTY_SERVICE_IDENTITIES deve ser definido.
Plataformas compatíveis
A proteção estendida é suportada em plataformas com suporte para ela no sistema operacional. O Windows 7 e o Windows Server 2008 R2 fornecem suporte interno. Outras plataformas podem exigir uma atualização.
Se o sistema operacional do servidor não fornecer esse suporte, todas as informações de proteção estendida enviadas pelo cliente serão ignoradas. Como resultado, os clientes que usam a proteção estendida podem se comunicar com esse servidor, mas o benefício de segurança é perdido. No cliente, o WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING combinado com o WS_SSL_TRANSPORT_SECURITY_BINDING suporta apenas proteção estendida no Vista e superior.
NOTA: A indisponibilidade da proteção estendida não impede que nenhuma configuração específica seja usada.
Interoperabilidade
Um servidor configurado por padrão pode se comunicar com clientes SOAP, independentemente de usarem proteção estendida ou não. A única exceção são os clientes WWSAPI do Windows XP e do Windows Server 2003 que foram atualizados para oferecer suporte à proteção estendida e usar o WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING e o WS_SSL_TRANSPORT_SECURITY_BINDING. Para dar suporte a esses clientes WS_EXTENDED_PROTECTION_POLICY_NEVER devem ser especificados pelo servidor. Os servidores configurados com WS_EXTENDED_PROTECTION_POLICY_ALWAYS rejeitarão a comunicação de clientes que não usam proteção estendida. No cliente, WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING combinado com WS_SSL_TRANSPORT_SECURITY_BINDING resultará no envio da mensagem usando a codificação de transferência em partes HTTP no Vista e superior. Isso pode causar problemas de interoperabilidade com servidores que não oferecem suporte à transferência em partes.
As seguintes enumerações/constantes fazem parte da proteção estendida:
As seguintes estruturas fazem parte da proteção estendida: