Visão geral da segurança do Windows Communication Foundation

O Windows Communication Foundation (WCF) é uma plataforma de programação distribuída baseada em mensagens SOAP, e proteger mensagens entre clientes e serviços é essencial para proteger os dados. O WCF fornece uma plataforma versátil e interoperável para a troca de mensagens seguras com base na infraestrutura de segurança existente e nos padrões de segurança reconhecidos para mensagens SOAP.

O WCF usa conceitos que são familiares se você criou aplicativos seguros e distribuídos com tecnologias existentes, como HTTPS, segurança integrada do Windows ou nomes de usuário e senhas para autenticar usuários. O WCF não apenas se integra às infraestruturas de segurança existentes, mas também estende a segurança distribuída além dos domínios somente do Windows usando mensagens SOAP seguras. Considere o WCF uma implementação de mecanismos de segurança existentes com a principal vantagem de usar SOAP como protocolo, além dos protocolos existentes. Por exemplo, as credenciais que identificam um cliente ou um serviço, como nome de usuário e senha ou certificados X.509, têm perfis SOAP baseados em XML interoperáveis. Usando esses perfis, as mensagens são trocadas com segurança, aproveitando especificações abertas, como assinaturas digitais XML e criptografia XML. Para obter uma lista de especificações, consulte Protocolos de serviços Web suportados por ligações de interoperabilidade fornecidas pelo sistema.

Outro paralelo é o Component Object Model (COM) na plataforma Windows, que permite aplicativos seguros e distribuídos. A OCM dispõe de um mecanismo de segurança abrangente através do qual o contexto de segurança pode ser transmitido entre componentes; Esse mecanismo impõe integridade, confidencialidade e autenticação. No entanto, o COM não permite mensagens seguras e multiplataforma como o WCF. Usando o WCF, você pode criar serviços e clientes que abrangem domínios do Windows na Internet. As mensagens interoperáveis do WCF são essenciais para a criação de serviços dinâmicos e orientados para os negócios que ajudam você a se sentir confiante na segurança de suas informações.

Benefícios de segurança do Windows Communication Foundation

WCF é uma plataforma de programação distribuída baseada em mensagens SOAP. Usando o WCF, você pode criar aplicativos que funcionam como serviços e clientes de serviço, criando e processando mensagens de um número ilimitado de outros serviços e clientes. Em tal aplicativo distribuído, as mensagens podem fluir de nó para nó, através de firewalls, para a Internet e através de vários intermediários SOAP. Isso introduz uma variedade de ameaças à segurança de mensagens. Os exemplos a seguir ilustram algumas ameaças comuns que a segurança do WCF pode ajudar a mitigar ao trocar mensagens entre entidades:

  • Observação do tráfego de rede para obter informações sensíveis. Por exemplo, num cenário de banca online, um cliente solicita a transferência de fundos de uma conta para outra. Um usuário mal-intencionado interceta a mensagem e, tendo o número da conta e a senha, mais tarde realiza uma transferência de fundos da conta comprometida.

  • Entidades desonestas que atuam como serviços sem conhecimento do cliente. Nesse cenário, um usuário mal-intencionado (o fraudulento) age como um serviço online e interceta mensagens do cliente para obter informações confidenciais. Em seguida, o criminoso usa os dados roubados para transferir fundos da conta comprometida. Este ataque também é conhecido como um ataque de phishing.

  • Alteração de mensagens para obter um resultado diferente do pretendido pelo chamador. Por exemplo, alterar o número da conta para a qual um depósito é feito permite que os fundos vão para uma conta fraudulenta.

  • Hacker replays em que um hacker incômodo repete a mesma ordem de compra. Por exemplo, uma livraria online recebe centenas de encomendas e envia os livros a um cliente que não os encomendou.

  • Incapacidade de um serviço para autenticar um cliente. Neste caso, o serviço não pode garantir que a pessoa apropriada executou a transação.

Em resumo, a segurança de transferência oferece as seguintes garantias:

  • Autenticação de ponto de extremidade de serviço (respondente).

  • Autenticação da entidade de cliente (iniciador).

  • Integridade da mensagem.

  • Confidencialidade da mensagem.

  • Deteção de repetição.

Integração com Infraestruturas de Segurança Existentes

Muitas vezes, as implantações de serviços Web têm soluções de segurança existentes, por exemplo, Secure Sockets Layer (SSL) ou o protocolo Kerberos. Alguns aproveitam uma infraestrutura de segurança que já foi implantada, como domínios do Windows usando o Ative Directory. Muitas vezes, é necessário integrar-se com essas tecnologias existentes, avaliando e adotando as mais recentes.

A segurança WCF integra-se com modelos de segurança de transporte existentes e pode aproveitar a infraestrutura existente para modelos de segurança de transferência mais recentes baseados na segurança de mensagens SOAP.

Integração com modelos de autenticação existentes

Uma parte importante de qualquer modelo de segurança de comunicação é a capacidade de identificar e autenticar entidades na comunicação. Essas entidades na comunicação usam "identidades digitais", ou credenciais, para autenticar-se com os pares que se comunicam. À medida que as plataformas de comunicação distribuída evoluíram, vários modelos de autenticação de credenciais e de segurança relacionados foram implementados. Por exemplo, na Internet, o uso de um nome de usuário e senha para identificar usuários é comum. Na intranet, o uso de um controlador de domínio Kerberos para fazer backup da autenticação de usuário e serviço está se tornando comum. Em determinados cenários, como entre dois parceiros de negócios, os certificados podem ser usados para autenticar mutuamente os parceiros.

Assim, no mundo dos serviços Web, onde o mesmo serviço pode estar exposto a clientes corporativos internos, bem como a parceiros externos ou clientes da Internet, é importante que a infraestrutura forneça integração com esses modelos de autenticação de segurança existentes. A segurança WCF suporta uma ampla variedade de tipos de credenciais (modelos de autenticação), incluindo:

  • Chamador anônimo.

  • Credencial de cliente de nome de usuário.

  • Credencial de cliente de certificado.

  • Windows (protocolo Kerberos e NT LanMan [NTLM]).

Normas e interoperabilidade

Em um mundo com grandes implantações existentes, a homogeneidade é rara. As plataformas de computação/comunicações distribuídas precisam de interoperar com as tecnologias que os diferentes fornecedores oferecem. Do mesmo modo, a segurança também deve ser interoperável.

Para permitir sistemas de segurança interoperáveis, as empresas ativas no setor de serviços da Web criaram uma variedade de padrões. Especificamente em relação à segurança, alguns padrões notáveis foram propostos: WS-Security: SOAP Message Security (aceito pelo órgão de padrões OASIS e anteriormente conhecido como WS-Security), WS-Trust, WS-SecureConversation e WS-SecurityPolicy.

O WCF oferece suporte a uma ampla variedade de cenários de interoperabilidade. A BasicHttpBinding classe é direcionada para o Basic Security Profile (BSP) e a WSHttpBinding classe é direcionada para os padrões de segurança mais recentes, como WS-Security 1.1 e WS-SecureConversation. Ao aderir a esses padrões, a segurança WCF pode interoperar e integrar-se com serviços da Web hospedados em sistemas operacionais e plataformas diferentes do Microsoft Windows.

Áreas funcionais de segurança WCF

A segurança do WCF é dividida em três áreas funcionais: segurança de transferência, controle de acesso e auditoria. As seções a seguir discutem brevemente essas áreas e fornecem links para obter mais informações.

Segurança de Transferência

A segurança de transferência engloba três funções principais de segurança: integridade, confidencialidade e autenticação. Integridade é a capacidade de detetar se uma mensagem foi adulterada. Confidencialidade é a capacidade de manter uma mensagem ilegível por qualquer pessoa que não seja o destinatário pretendido, isso é conseguido através da criptografia. Autenticação é a capacidade de verificar uma identidade reivindicada. Juntas, essas três funções ajudam a garantir que as mensagens cheguem com segurança de um ponto a outro.

Modos de Transporte e Segurança de Mensagens

Dois mecanismos principais são usados para implementar a segurança de transferência no WCF: modo de segurança de transporte e modo de segurança de mensagem .

  • O modo de segurança de transporte usa um protocolo de nível de transporte, como HTTPS, para obter segurança de transferência. O modo de transporte tem a vantagem de ser amplamente adotado, disponível em muitas plataformas e menos complexo computacionalmente. No entanto, tem a desvantagem de proteger as mensagens apenas de ponto a ponto.

  • O modo de segurança de mensagens, por outro lado, usa WS-Security (e outras especificações) para implementar a segurança de transferência. Como a segurança da mensagem é aplicada diretamente às mensagens SOAP e está contida dentro dos envelopes SOAP, juntamente com os dados do aplicativo, ela tem a vantagem de ser independente do protocolo de transporte, mais extensível e garantir segurança de ponta a ponta (versus ponto-a-ponto); ele tem a desvantagem de ser várias vezes mais lento do que o modo de segurança de transporte porque tem que lidar com a natureza XML das mensagens SOAP.

Para obter mais informações sobre essas diferenças, consulte Protegendo serviços e clientes.

Um terceiro modo de segurança usa ambos os modos anteriores e traz vantagens de ambos. Este modo é chamado de TransportWithMessageCredential. Nesse modo, a segurança da mensagem é usada para autenticar o cliente e a segurança do transporte é usada para autenticar o servidor e fornecer confidencialidade e integridade da mensagem. Graças a isso, o modo de segurança é quase tão rápido quanto o TransportWithMessageCredential modo de segurança de transporte e fornece extensibilidade de autenticação do cliente da mesma forma que a segurança da mensagem. No entanto, ao contrário do modo de segurança de mensagens, ele não fornece segurança completa de ponta a ponta.

Controlo de Acesso

O controle de acesso também é conhecido como autorização. A autorização permite que diferentes usuários tenham privilégios diferentes para exibir dados. Por exemplo, como os arquivos de recursos humanos de uma empresa contêm dados confidenciais de funcionários, apenas os gerentes têm permissão para visualizar os dados dos funcionários. Além disso, os gerentes podem visualizar apenas os dados de seus subordinados diretos. Neste caso, o controle de acesso é baseado tanto na função ("gerente") quanto na identidade específica do gerente (para evitar que um gerente olhe para os registros de funcionários de outro gerente).

No WCF, os recursos de controle de acesso são fornecidos por meio da integração com o Common Language Runtime (CLR) PrincipalPermissionAttribute e por meio de um conjunto de APIs conhecido como modelo de identidade. Para obter detalhes sobre controle de acesso e autorização baseada em declarações, consulte Estendendo a segurança.

Auditoria

A auditoria é o registo de eventos de segurança no registo de eventos do Windows. Você pode registrar eventos relacionados à segurança, como falhas (ou êxitos) de autenticação. Para obter mais informações, consulte Auditoria. Para obter detalhes de programação, consulte Como auditar eventos de segurança.

Consulte também