Compartilhar via


Protegendo aplicativos de canal par

Como outras associações no WinFX, a NetPeerTcpBinding tem a segurança habilitada por padrão e oferece segurança baseada em transporte e em mensagem (ou ambos). Este tópico discute esses dois tipos de segurança. O tipo de segurança é especificado pela marca de modo de segurança na especificação de associação (SecurityMode).

Segurança baseada em transporte

O Canal Par dá suporte a dois tipos de credenciais de autenticação para proteger o transporte, que exigem a configuração da propriedade ClientCredentialSettings.Peer na ChannelFactory associada:

  • Senha. Os clientes usam o conhecimento de uma senha secreta para autenticar as conexões. Quando esse tipo de credencial é usado, ClientCredentialSettings.Peer.MeshPassword precisa conter uma senha válida e, opcionalmente, uma instância de X509Certificate2.

  • Certificado. A autenticação de aplicativo específica é usada. Quando esse tipo de credencial é usado, você precisa usar uma implementação concreta de X509CertificateValidator em ClientCredentialSettings.Peer.PeerAuthentication.

Segurança baseada em mensagem

Usando a segurança da mensagem, um aplicativo pode assinar mensagens de saída para que todas as partes receptoras possam verificar se a mensagem é enviada por uma parte confiável e se a mensagem não foi adulterada. Atualmente, o Canal Par só dá suporte à assinatura de mensagem de credencial X.509.

Práticas Recomendadas

  • Esta seção aborda as melhores práticas para proteger os aplicativos de Canal Par.

Habilitar a segurança com aplicativos de canal par

Devido à natureza distribuída dos protocolos de Canal Par, é difícil impor a associação de malha, a confidencialidade e a privacidade em uma malha sem segurança. Também é importante lembrar de proteger a comunicação entre os clientes e o serviço de resolvedor. No protocolo PNRP, use nomes seguros para evitar a falsificação e outros ataques comuns. Proteja um serviço de resolvedor personalizado habilitando a segurança na conexão que os clientes usam para entrar em contato com o serviço de resolvedor, incluindo a segurança baseada em mensagem e em transporte.

Usar o modelo de segurança mais forte possível

Por exemplo, se cada membro da malha precisar ser identificado individualmente, use o modelo de autenticação baseado em certificado. Se isso não for possível, use a autenticação baseada em senha seguindo as recomendações atuais para mantê-las seguras. Isso inclui o compartilhamento de senhas apenas com partes confiáveis, a transmissão de senhas usando um meio seguro, a alteração de senhas com frequência e a garantia de que as senhas sejam fortes (pelo menos, oito caracteres, incluir, no mínimo, uma letra maiúscula e minúscula, um dígito e um caractere especial).

Nunca aceitar certificados autoassinados

Nunca aceite uma credencial de certificado baseada em nomes de entidades. Observe que qualquer pessoa pode criar um certificado, e qualquer pessoa pode escolher um nome que você está validando. Para evitar a possibilidade de falsificação, valide os certificados com base na emissão de credenciais de autoridade (um emissor confiável ou uma autoridade de certificação raiz).

Usar a autenticação de mensagem

Use a autenticação de mensagem para verificar se uma mensagem veio de uma fonte confiável e se ninguém a violou durante a transmissão. Sem a autenticação de mensagem, é fácil para um cliente mal-intencionado falsificar ou adulterar as mensagens na malha.

Exemplos de códigos de canal par

Cenários de canal par

Confira também