Partilhar via


Protegendo aplicativos de canal ponto a ponto

Como outras ligações no WinFX, NetPeerTcpBinding tem 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 vinculação (SecurityMode).

Segurança baseada no transporte

O Peer Channel suporta dois tipos de credenciais de autenticação para proteger o transporte, ambos exigindo a ClientCredentialSettings.Peer definição da propriedade no associado ChannelFactory:

  • Palavra-passe. Os clientes usam o conhecimento de uma senha secreta para autenticar conexões. Quando esse tipo de credencial é usado, deve ter uma senha válida e, opcionalmente, ClientCredentialSettings.Peer.MeshPassword uma X509Certificate2 instância.

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

Segurança baseada em mensagens

Usando a segurança de mensagens, um aplicativo pode assinar mensagens de saída para que todas as partes recetoras possam verificar se a mensagem foi enviada por uma parte confiável e se a mensagem não foi adulterada. Atualmente, o Peer Channel suporta apenas a assinatura de mensagens de credenciais X.509.

Melhores práticas

  • Esta seção discute as práticas recomendadas para proteger aplicativos de canal de mesmo nível.

Habilite a segurança com aplicativos de canal ponto a ponto

Devido à natureza distribuída dos protocolos Peer Channel, é difícil impor a associação de malha, confidencialidade e privacidade em uma malha não segura. Também é importante lembrar de proteger a comunicação entre os clientes e o serviço de resolução. Em PNRP (Peer Name Resolution Protocol), use nomes seguros para evitar falsificação e outros ataques comuns. Proteja um serviço de resolução personalizado ativando a segurança na conexão que os clientes usam para entrar em contato com o serviço de resolvedor, incluindo segurança baseada em mensagem e transporte.

Use 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ê-los seguros. 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, inclua pelo menos uma letra de ambos os casos, um dígito e um caractere especial).

Nunca aceite certificados autoassinados

Nunca aceite uma credencial de certificado com base em nomes de assunto. 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 nas credenciais da autoridade emissora (um emissor confiável ou uma autoridade de certificação raiz).

Usar 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 adulterou a mensagem durante a transmissão. Sem autenticação de mensagens, é fácil para um cliente mal-intencionado falsificar ou adulterar mensagens na malha.

Exemplos de código de canal de mesmo nível

Cenários de canal de mesmo nível

Consulte também