Compartilhar via


Segurança no sistema de interação remota

Como um desenvolvedor de aplicativos .NET Remoting, você deve ter uma boa compreensão das implicações de segurança do .NET Remoting não só, mas de aplicativos distribuídos em geral. Sem uma implementação segura, qualquer pessoa poderia chamar um método no seu objeto remoto ou informações confidenciais intercepção medida ele está sendo enviado para ou de um objeto remoto. Para evitar que isso aconteça você deve autenticar os clientes (e possivelmente servidores) e criptografar a comunicação entre os dois.

Há menos reta-ENC Questões assim. Consider a remoto objeto that Defines a método that Takes a delegate as a parâmetro. A mal-intencionado desenvolvedor Could Use the delegado to the aplicativo servidor forçar to executar any Código he or she wishes. Quando um representante quebra um método estático, todas as chamadas em que delegate não são remotos; The Código is chamado in the domínio do aplicativo that invoked the delegado. For exemplo, a cliente Rogue May Use this vulnerabilidade by Make a chamar to the remoto objeto and passing a delegate that wraps a método estático. The assembly that Implements the método estático can be COPIED to the servidor and when the delegate invoked is the método estático would get executado on the servidor. To this from happening you should Sempre declare delegates Used in Objects with Types and Parameters that cannot be guessed by hackers. Além disso você deve Nunca permitir que um cliente definir e passar um tipo para o objeto remoto que está para ser desserializado.

This seção describes the vários approaches to Segurança based on Certain Decisions design. Not all Scenarios are addressed aqui, but these topics Are a raiz good.

Segurança de Acesso de código

Código Security is a Mechanism that helps the that Código has to Protected Resources and Operations. Normally When Código attempts to a Protected, a is performed to ensure that all Frames have to the . When a chamar is made on a remoto objeto, this movimentação de pilha is not performed Na Horizontal the limite arquitetura de comunicação remota. Portanto, a infra-estrutura arquitetura de comunicação remota requer permissão FullTrust para executar o cliente ou o servidor. FullTrust permissões essencialmente desativa segurança Acessar ao código. Any uso não autorizado of a aplicativo arquitetura de comunicação remota Provides Unauthorized Acessar to Permissions FullTrust.

Dica

Vários sistema tipos estender MarshalByRefObject mas também executar verificações de segurança em tempo de execução para evitar tudo fora de domínio do aplicativo de chamar um objeto desse tipo remotamente.AppDomaine Sistema.Windows.Formulários.Formulários são dois exemplos de tais tipos sistema.

Considerações sobre de segurança em aplicativos do sistema de interação remota

Em geral, há duas áreas de segurança que deve ser contemplada em um aplicativo distribuído: Proteger o canal de comunicação e proteger o aplicativo contra uso impróprio.

Securing the canalizar Communication involves ensuring that Mensagens are Encrypted and that they are not Modified in Transit. Proteger um aplicativo contra uso impróprio envolve autenticar e autorizar os chamadores. Autenticar um chamador significa verificar que o chamador é que dizem estiverem. Autorizar um chamador significa verificar se o chamador tem os privilégios necessários para fazer uma chamada determinada ou acessar um recurso protegido.

Os canais internos suportam de segurança da seguinte maneira:

HttpChannel -oferece suporte apenas para autenticação quando remoto objetos são hospedados por serviços de informações Internet (IIS). Só há suporte para criptografia quando o IIS é configurado para usar SSL.

TcpChannel - oferece suporte à autenticação e criptografia.

IpcChannel - oferece suporte à autenticação.

Dica

A autorização é algo que você fornecer em seu código.Os canais internos não podem fornecer isso para você porque eles não souber qual seu código e quais restrições você ter impostas.

Aviso

.NET Framework Remoting não criptografia ou autenticação por padrão.Therefore, it is recommended that you Take All steps necessary to make Certain of the identidade of Clients or Servidores before interacting with them remotely.Because Applications Require Permissions FullTrust to , IF an Unauthorized were Granted on your , the Could Código as though IT were .Sempre autenticar os clientes e criptografar os fluxos de comunicação.

Consulte também

Conceitos

Autenticação com o canal HTTP

Referência

RemotingConfiguration

ChannelServices

Context

MethodCall

RemotingServices

Outros recursos

Visão geral sobre a arquitetura de comunicação remota do .NET Framework

Segurança baseada em função

Segurança de Acesso de código