Protección de las aplicaciones de canal del mismo nivel
Al igual que otros enlaces de WinFX, NetPeerTcpBinding
tiene la seguridad habilitada de forma predeterminada y proporciona seguridad basada en mensajes y transporte (o ambas). En este tema se tratan estos dos tipos de seguridad. La etiqueta de modo de seguridad especifica el tipo de seguridad en la especificación de enlace (SecurityMode
).
Seguridad basada en el transporte.
El canal del mismo nivel admite dos tipos de credenciales de autenticación para proteger el transporte, y ambos requieren que se establezca la propiedad ClientCredentialSettings.Peer
en el ChannelFactory
asociado:
Password. Los clientes utilizan una contraseña secreta para autenticar las conexiones. Cuando se utiliza este tipo de credencial,
ClientCredentialSettings.Peer.MeshPassword
debe llevar una contraseña válida y, opcionalmente, una instanciaX509Certificate2
.Certificado. Se usa autenticación de aplicación concreta. Cuando se usa este tipo de credencial, debe usar una implementación concreta de X509CertificateValidator en
ClientCredentialSettings.Peer.PeerAuthentication
.
Seguridad basada en mensaje
Mediante la seguridad de mensaje, una aplicación puede firmar mensajes salientes para que todas las partes receptoras puedan comprobar que el mensaje ha sido enviado por una parte confiable y que no se ha manipulado. Actualmente, el canal del mismo nivel solo admite la firma de mensajes mediante credenciales X.509.
Prácticas recomendadas
- En esta sección se analizan los procedimientos recomendados para proteger las aplicaciones de canal del mismo nivel.
Habilitación de la seguridad con aplicaciones de canal del mismo nivel
Debido a la naturaleza distribuida de los protocolos de canal del mismo nivel, es difícil imponer la pertenencia a la malla, la confidencialidad y la privacidad en una malla no segura. También es importante recordar proteger la comunicación entre los clientes y el servicio de resolución. Bajo Protocolo de resolución de nombres de mismo nivel (PNRP), use nombres seguros para evitar suplantación y otros ataques comunes. Proteja un servicio de resolución personalizado mediante el permiso de seguridad en las conexiones que el cliente usa para ponerse en contacto con el servicio de resolución, incluida la seguridad tanto basada en transporte como en mensaje.
Use el modelo de seguridad más eficaz posible
Por ejemplo, si cada miembro de la malla necesita ser identificado individualmente, utilice el modelo de autenticación basada en certificados. Si eso no es posible, utilice autenticación basada en contraseña teniendo en cuenta las recomendaciones actuales para así poder mantenerlas seguras. Esto incluye compartir contraseñas solo con partes confiables, transmitir contraseñas a través de un medio seguro, cambiar con frecuencia las contraseñas y asegurarse de que las contraseñas sean eficaces (de por lo menos ocho caracteres, entre ellos una letra en minúscula y otra en mayúscula, un dígito y un carácter especial).
Nunca acepte certificados firmados automáticamente
Nunca acepte una credencial de certificado basada en nombres de sujetos. Observe que cualquiera puede crear un certificado, y cualquiera puede elegir un nombre que usted va a validar. Para evitar la posibilidad de suplantación, valide certificados basados en credenciales de autoridades emisoras (un emisor confiable o una entidad de certificados raíz).
Use autenticación de mensajes
Use la autenticación de mensajes para comprobar que un mensaje fue originado por una fuente de confianza y que nadie ha manipulado el mensaje durante la transmisión. Sin la autenticación de mensaje, es fácil que un cliente malintencionado suplante o manipule mensajes en la malla.
Ejemplos de código del canal del mismo nivel
Escenarios de canal del mismo nivel