Compartilhar via


Protegendo aplicativos de canal par

Assim como outras associações no WinFX, NetPeerTcpBinding tem a segurança habilitada por padrão e oferece segurança baseada em transporte e mensagem (ou ambas). 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).

Transport-Based Segurança

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 conexões. Quando esse tipo de credencial é usado, ClientCredentialSettings.Peer.MeshPassword deve 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ê deve 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 foi enviada por uma parte confiável e se a mensagem não foi adulterada. Atualmente, o Peer Channel dá suporte apenas à assinatura de mensagem de credencial X.509.

Práticas recomendadas

  • Esta seção discute as práticas recomendadas para proteger aplicativos de Canal Par.

Habilitar a segurança com aplicativos de canal par

Devido à natureza distribuída dos protocolos Peer Channel, é difícil impor a adesão à malha, a confidencialidade e a privacidade em uma malha não segura. Também é importante lembrar de proteger a comunicação entre clientes e o serviço resolvedor. Em PNRP (Peer Name Resolution Protocol), use nomes seguros para evitar 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 resolvedor, incluindo segurança baseada em mensagem e 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 compartilhar senhas apenas com partes confiáveis, transmitir senhas usando um meio seguro, alterar senhas com frequência e garantir que as senhas sejam fortes (pelo menos oito caracteres de comprimento, incluir pelo menos uma letra de ambos os casos, um dígito e um caractere especial).

Nunca aceitar certificados de Self-Signed

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 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 se originou de uma fonte confiável e se ninguém violou a mensagem durante a transmissão. Sem autenticação de mensagem, é fácil para um cliente mal-intencionado falsificar ou adulterar mensagens na malha.

Exemplos de códigos de canal par

Cenários de canal par

Consulte também