Protegendo aplicativos de ClickOnce

ClickOnceaplicativos estão sujeitos a restrições de segurança de acesso de código na.NET Framework para ajudar a limitar o acesso que código tem para protegido recursos e operações. Por esse motivo, é importante que você entenda as implicações de segurança de acesso a código para escrever sua ClickOnce aplicativos adequadamente. Os aplicativos podem use confiança total ou parciais zonas, como, por exemplo, as zonas de Internet e Intranet, para limitar o acesso.

Além disso, o ClickOnce usa certificados para verificar a autenticidade do Editor do aplicativo e para assinar o aplicativo e implantação manifestos de provar que os arquivos não foi adulterados. A assinatura é uma etapa opcional, o que torna mais fácil de alterar os arquivos do aplicativo após os manifestos são gerados. No entanto, sem manifestos assinados, é difícil garantir que o instalador do aplicativo não foi violado em ataques man-in-the-middle. Por esse motivo, recomendamos que você assina seu aplicativo e manifestos de implantação para ajudar a proteger seus aplicativos.

Zonas

Os aplicativos que são implantados usando ClickOnce tecnologia são restritos a um conjunto de permissões e as ações que são definidas por zona de segurança. Zonas de segurança são definidas no Internet Explorer e baseiam-se no local do aplicativo. A tabela a seguir lista as permissões padrão baseadas no local de implantação:

Local de implantação

Zona de segurança

Executar a partir da Web

Zona da Internet

Instalar a partir da Web

Zona da Internet

Instalar o compartilhamento de arquivos de rede

Zona da Intranet local

Instalar a partir do CD-ROM

Confiança Total

As permissões padrão baseiam-se no local do qual a versão original do aplicativo foi implantada; atualizações para o aplicativo herdará essas permissões. Se o aplicativo está configurado para verificar se há atualizações a partir de um local de rede ou Web e uma versão mais recente disponível, a instalação original pode receber permissões para a zona da Internet ou Intranet em vez das permissões de confiança total. Para impedir que os usuários sejam solicitados, um administrador de sistema pode especificar uma diretiva de implantação de ClickOnce que define um editor de aplicativos específicos como uma fonte confiável. Para computadores nos quais essa diretiva é implantada, permissões serão concedidas automaticamente e o usuário não será solicitado. Para obter mais informações, consulte Visão geral sobre implantação de aplicativos confiáveis. Para configurar a implantação de aplicativos confiáveis, o certificado pode ser instalado para o nível de máquina ou empresa. Para obter mais informações, consulte How to: Adicionar um publicador confiável a um computador cliente para aplicativos de ClickOnce.

Diretivas de segurança de acesso de código

Permissões para um aplicativo são determinadas pelas configurações do <trustInfo> Elemento (aplicativo deClickOnce ) elemento do manifesto de aplicativo. Visual Studiogera automaticamente essas informações com base nas configurações do projeto Security página de propriedades. A ClickOnce aplicativo recebe apenas as permissões específicas que ele solicitações. Por exemplo, onde o acesso ao arquivo requer permissões de confiança total, se o aplicativo solicitar permissão de acesso a arquivos, ele somente recebem permissão de acesso a arquivos, permissões de confiança total não. Ao desenvolver seu ClickOnce aplicativo, você deve certificar-se de que você solicite apenas as permissões específicas que o aplicativo precisa. Na maioria dos casos, você pode usar as zonas da Internet ou Intranet Local para limitar o seu aplicativo para confiança parcial. Para obter mais informações, consulte How to: Definir uma zona de segurança para um aplicativo de ClickOnce. Se seu aplicativo requer permissões personalizadas, você pode criar uma zona personalizada. Para obter mais informações, consulte How to: Definir permissões Personalizar para um aplicativo de ClickOnce.

Incluindo uma permissão que não faz parte do padrão conjunto de permissões para a zona a partir do qual o aplicativo será implantado fará com que o usuário final ser solicitado a conceder permissão de instalar ou atualizar o tempo. Para impedir que os usuários sejam solicitados, um administrador de sistema pode especificar uma diretiva de implantação de ClickOnce que define um editor de aplicativos específicos como uma fonte confiável. Em computadores onde esta diretiva é implantada, permissões serão concedidas automaticamente e o usuário não será solicitado.

Como desenvolvedor, é sua responsabilidade certificar-se de que seu aplicativo será executado com as permissões apropriadas. Se o aplicativo solicitar permissões fora de uma zona de tempo de execução, uma exceção de segurança pode aparecer. Visual Studiopermite que você depurar seu aplicativo na zona de segurança de destino. e fornece ajuda no desenvolvimento de aplicativos seguros. Para obter mais informações, consulte How to: Depurar um aplicativo de ClickOnce com permissões restritas.

Para obter mais informações sobre segurança de acesso ao código e ClickOnce, consulte Código Segurança de acesso a aplicativos de ClickOnce.

Certificados de assinatura de código

Para publicar um aplicativo usando ClickOnce implantação, você pode assinar os manifestos de aplicativo e implantação para o aplicativo usando um par de chaves pública/particular. As ferramentas para um manifesto de assinatura estão disponíveis na assinatura página da Project Designer. Para obter mais informações, consulte Assinatura de Página, o criador do projeto. Como alternativa, você pode assinar os manifestos com um arquivo de chave durante o processo de publicação usando o Assistente de publicação. Além disso, o Windows Software Development Kit (SDK) inclui uma ferramenta de assinatura de arquivo, SignTool. exe (ferramenta de assinatura), que permite que você assinar o manifesto.

Após os manifestos são assinados, as informações do editor com base na assinatura Authenticode serão exibidas para o usuário na caixa de diálogo permissões durante a instalação, para mostrar ao usuário que o aplicativo proveniente de uma fonte confiável.

Para obter mais informações sobre ClickOnce e certificados, consulte ClickOnce e Authenticode.

ASP.NET autenticação baseada em formulário

Se você quiser controlar quais implantações cada usuário pode acessar, você não deve ativar acesso anônimo a ClickOnce aplicativos implantados em um servidor Web. Em vez disso, você permitiria que os usuários acessem as implantações que você instalou com base na identidade do usuário, usando a autenticação do Windows.

ClickOncenão oferece suporte a ASP.NET autenticação baseada em formulários, porque ele usa cookies persistentes; elas apresentam riscos de segurança porque eles residem no cache do Internet Explorer e podem ser atacado por hackers. Portanto, se você estiver implantando ClickOnce aplicativos, qualquer cenário de autenticação, além de autenticação do Windows é suportado.

Passando argumentos

Uma consideração de segurança adicional ocorre se você tiver que passar argumentos em um ClickOnce aplicativo. ClickOnceos desenvolvedores podem fornecer uma seqüência de consulta para aplicativos implantados pela Web. A seqüência de caracteres de consulta assume a forma de uma série de pares de nome / valor no final da URL usada para iniciar o aplicativo:

http://servername.adatum.com/WindowsApp1.Application?username=joeuser

Por padrão, os argumentos de seqüência de caracteres de consulta estão desativados. Para habilitá-los, o atributo trustUrlParameters deve ser definido no manifesto de implantação. do aplicativo Esse valor pode ser definido de Visual Studio e MageUI.exe. Para obter etapas detalhadas sobre como ativar a passagem de seqüências de caracteres de consulta, consulte How to: Recuperar informações de seqüência de caracteres de consulta em um aplicativo on-line ClickOnce.

Você nunca deve passar argumentos recuperados por meio de uma seqüência de caracteres de consulta para um banco de dados ou à linha de comando, sem verificar os argumentos para certificar-se de que eles são seguros. Argumentos não seguros são aquelas que incluem caracteres de escape de banco de dados ou de linha de comando que podem permitir que um usuário mal-intencionado manipular seu aplicativo para executar comandos arbitrários.

ObservaçãoObservação

Os argumentos de seqüência de caracteres de consulta são a única maneira de passar argumentos para um ClickOnce o aplicativo na inicialização. Você não pode passar argumentos para um ClickOnce aplicativo de linha de comando.

Implantar Assemblies ofuscados

Talvez você queira ofuscar o seu aplicativo usando Dotfuscator para impedir que outras pessoas o código de engenharia reversa. No entanto, o ofuscação de assembly não está integrada ao IDE Visual Studio ou o processo de implantação de ClickOnce. Portanto, você terá que executar o obscurecimento fora do processo de implantação, talvez usando uma etapa de pós-criação. Depois de criar o projeto, você deve executar as seguintes etapas manualmente, fora do Visual Studio:

  1. Execute o obscurecimento usando Dotfuscator.

  2. Use Mage ou MageUI.exe para gerar os manifestos de ClickOnce e assiná-las. Para obter mais informações, consulte Mage (geração de manifesto e ferramenta de edição) e MageUI.exe (geração de manifesto e edição da ferramenta, o cliente gráfico).

  3. Publicar manualmente (copiar) arquivos à sua implantação origem local (servidor Web, compartilhamento UNC ou CD-ROM).

Consulte também

Conceitos

ClickOnce Segurança e implantação

Escolhendo uma estratégia de implantação

Escolhendo uma estratégia de implantação de ClickOnce