Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Windows Communication Foundation (WCF) tem dois modos principais para fornecer segurança (Transport e Message) e um terceiro modo (TransportWithMessageCredential) que combina os dois. Este tópico discute a segurança da mensagem e os motivos para usá-la.
O que é segurança de mensagem?
A segurança da mensagem usa a especificação WS-Security para proteger mensagens. A especificação WS-Security descreve melhorias no sistema de mensagens SOAP para garantir a confidencialidade, a integridade e a autenticação no nível da mensagem SOAP (em vez do nível de transporte).
Em resumo, a segurança da mensagem difere da segurança de transporte encapsulando as credenciais de segurança e declarações com cada mensagem, juntamente com qualquer proteção de mensagem (assinatura ou criptografia). Aplicar a segurança diretamente à mensagem modificando seu conteúdo permite que a mensagem protegida seja independente em relação aos aspectos de segurança. Isso permite alguns cenários que não são possíveis quando a segurança de transporte é usada.
Motivos para usar a segurança da mensagem
Na segurança em nível de mensagem, todas as informações de segurança são encapsuladas na mensagem. Proteger a mensagem com segurança em nível de mensagem em vez de segurança em nível de transporte tem as seguintes vantagens:
Segurança de ponta a ponta. A segurança de transporte, como o SSL (Secure Sockets Layer), só protege mensagens quando a comunicação é ponto a ponto. Se a mensagem for roteada para um ou mais intermediários SOAP (por exemplo, um roteador) antes de chegar ao destinatário final, a mensagem em si não será protegida depois que um intermediário a lê durante a transmissão. Além disso, as informações de autenticação do cliente estão disponíveis apenas para o primeiro intermediário e devem ser retransmissadas para o receptor final de forma fora de banda, se necessário. Isso se aplica mesmo que toda a rota use a segurança SSL entre saltos individuais. Como a segurança da mensagem funciona diretamente com a mensagem e protege o XML nela, a segurança permanece com a mensagem, independentemente de quantos intermediários estejam envolvidos antes de atingir o receptor final. Isso permite um verdadeiro cenário de segurança de ponta a ponta.
Maior flexibilidade. Partes da mensagem, em vez de toda a mensagem, podem ser assinadas ou criptografadas. Isso significa que os intermediários podem exibir as partes da mensagem que se destinam a elas. Se o remetente precisar tornar parte das informações na mensagem visível para os intermediários, mas quiser garantir que ela não seja adulterada, ele pode apenas assiná-la, mas deixá-la sem criptografar. Como a assinatura faz parte da mensagem, o receptor final pode verificar se as informações na mensagem foram recebidas intactas. Um cenário pode ter um serviço intermediário SOAP que roteia a mensagem de acordo com o valor do cabeçalho Action. Por padrão, o WCF não criptografa o valor da ação, mas o assina se a segurança da mensagem é usada. Portanto, essas informações estão disponíveis para todos os intermediários, mas ninguém pode alterá-la.
Suporte para vários transportes. Você pode enviar mensagens protegidas em vários transportes diferentes, como pipes nomeados e TCP, sem precisar contar com o protocolo para segurança. Com a segurança em nível de transporte, todas as informações de segurança têm como escopo uma única conexão de transporte específica e não estão disponíveis no próprio conteúdo da mensagem. A segurança da mensagem torna a mensagem segura independentemente do transporte que você usa para transmitir a mensagem e o contexto de segurança é inserido diretamente dentro da mensagem.
Suporte para um amplo conjunto de credenciais e declarações. A segurança da mensagem é baseada na especificação WS-Security, que fornece uma estrutura extensível capaz de transmitir qualquer tipo de declaração dentro da mensagem SOAP. Ao contrário da segurança de transporte, o conjunto de mecanismos de autenticação ou declarações que você pode usar não é limitado pelos recursos de transporte. A segurança de mensagens do WCF inclui vários tipos de autenticação e transmissão de declaração e pode ser estendida para dar suporte a tipos adicionais conforme necessário. Por esses motivos, por exemplo, um cenário de credenciais federadas não é possível sem a segurança da mensagem. Para obter mais informações sobre os cenários de federação compatíveis com o WCF, consulte Federação e Tokens Emitidos.
Como comparar a segurança de mensagem e do transporte
Prós e contras do Transport-Level Security
A segurança do transporte tem as seguintes vantagens:
Não exige que as partes comunicantes entendam os conceitos de segurança no nível de XML. Isso pode melhorar a interoperabilidade, por exemplo, quando HTTPS é usado para proteger a comunicação.
Desempenho amplamente melhorado.
Aceleradores de hardware estão disponíveis.
O streaming é possível.
A segurança do transporte tem as seguintes desvantagens:
Somente salto a salto.
Conjunto limitado e inextensível de credenciais.
Dependente de transporte.
Desvantagens da segurança de Message-Level
A segurança da mensagem tem as seguintes desvantagens:
Desempenho
Não é possível usar o streaming de mensagens.
Exige a implementação de mecanismos de segurança no nível XML e suporte para a especificação WS-Security. Isso pode afetar a interoperabilidade.