Protegendo aplicativos ClickOnce

 

Para obter a documentação mais recente do Visual Studio 2017 RC, consulte a documentação do Visual Studio 2017 RC.

ClickOnce aplicativos estão sujeitos a restrições de segurança de acesso do código no .NET Framework para ajudar a limitar o acesso código tem a recursos e operações protegidos. Por esse motivo, é importante que você entenda as implicações de segurança de acesso ao código para gravar seu ClickOnce aplicativos adequadamente. Os aplicativos podem usar confiança total ou usar zonas parciais, como as zonas da 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 para provar que os arquivos não foram violados. A assinatura é uma etapa opcional, o que torna mais fácil alterar os arquivos do aplicativo depois que os manifestos são gerados. No entanto, sem manifestos assinados, é difícil garantir que o instalador do aplicativo não seja violado em ataques man-in-the-middle. Por esse motivo, recomendamos que você assinar o aplicativo e manifestos de implantação para ajudar a proteger seus aplicativos.

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 definidas no Internet Explorer e são baseadas no local do aplicativo. A tabela a seguir lista as permissões padrão com base no local de implantação:

Local de implantaçãoZona de segurança
Executar da WebZona da Internet
Instalar a partir da WebZona da Internet
Instalar a partir do compartilhamento de redeZona da Intranet local
Instalar de CD-ROMConfiança total

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

Permissões para um aplicativo são determinadas pelas configurações de < TrustInfo > elemento elemento do manifesto do aplicativo.Visual Studio gerencia automaticamente essas informações com base nas configurações do projeto segurança página de propriedades. Um ClickOnce aplicativo recebe apenas as permissões específicas que solicita. 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 apenas receberá permissão de acesso a arquivos, permissões de confiança total não. Ao desenvolver seu ClickOnce aplicativo, você deve ter certeza de que você solicite apenas as permissões específicas que o aplicativo precisa. Na maioria dos casos, você pode usar zonas da Internet ou Intranet Local para limitar seu aplicativo para confiança parcial. Para obter mais informações, consulte Como definir uma zona de segurança para um aplicativo ClickOnce. Se seu aplicativo exigir permissões personalizadas, você pode criar uma zona personalizada. Para obter mais informações, consulte Como definir permissões personalizadas para um aplicativo ClickOnce.

Incluindo uma permissão que não faça parte da permissão padrão definido para a zona da qual o aplicativo será implantado fará com que o usuário final pode ser solicitado a conceder permissão ao instalar ou atualizar o tempo. Para impedir que os usuários sejam solicitados, um administrador do sistema pode especificar uma política de implantação do ClickOnce que defina um editor de aplicativo específico como uma fonte confiável. Em computadores onde essa diretiva está implantada, as permissões serão concedidas automaticamente e o usuário não será solicitado.

Como desenvolvedor, é sua responsabilidade garantir que seu aplicativo será executado com as permissões apropriadas. Se o aplicativo solicitar permissões fora de uma zona em tempo de execução, uma exceção de segurança pode aparecer.Visual Studio permite que você depure seu aplicativo na zona de segurança de destino. e fornece ajuda para desenvolver aplicativos seguros. Para obter mais informações, consulte Como depurar um aplicativo ClickOnce com permissões restritas.

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

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/privada. As ferramentas para assinar um manifesto estão disponíveis na assinatura página do Project Designer. Para obter mais informações, consulte Página de Assinatura, Designer de 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.

Depois que 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 é oriundo de uma fonte confiável.

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

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

ClickOnce não suporta a autenticação baseada em formulários do ASP.NET porque ela usa cookies persistentes; eles apresentam riscos de segurança porque eles residem no cache do Internet Explorer e podem ser violados. Portanto, se você estiver implantando ClickOnce aplicativos, qualquer cenário de autenticação além da autenticação do Windows não tem suporte.

Uma consideração de segurança adicional ocorre se você precisar passar argumentos para um ClickOnce aplicativo.ClickOnce os desenvolvedores podem fornecer uma cadeia de caracteres de consulta para aplicativos implantados pela Web. A cadeia de caracteres de consulta assume a forma de uma série de pares 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 cadeia de caracteres de consulta estão desabilitados. Para habilitá-los, o atributo trustUrlParameters deve ser definido no manifesto de implantação do aplicativo. Esse valor pode ser definido entre Visual Studio e MageUI.exe. Para obter etapas detalhadas sobre como habilitar a passagem cadeias de caracteres de consulta, consulte Como recuperar informações de cadeia de caracteres de consulta em um aplicativo ClickOnce online.

Você nunca deve passar argumentos recuperados por meio de uma cadeia de caracteres de consulta para um banco de dados ou para a linha de comando sem verificar os argumentos para certificar-se de que eles são seguros. Argumentos inseguros são os que incluem caracteres de escape do banco de dados ou de linha de comando que pode permitir que um usuário mal-intencionado manipular seu aplicativo para executar comandos arbitrários.

System_CAPS_ICON_note.jpg Observação

Argumentos de cadeia de caracteres de consulta são a única maneira de passar argumentos para um ClickOnce aplicativo na inicialização. Você não pode passar argumentos para um ClickOnce aplicativos de linha de comando.

Talvez você queira ofuscar seu aplicativo ao usar o Dotfuscator para evitar que outros engenharia reversa do código. No entanto, o ofuscamento do assembly não está integrado ao IDE do Visual Studio ou o processo de implantação do ClickOnce. Portanto, você precisará executar o ofuscamento fora do processo de implantação, talvez usando uma etapa de pós-compilação. Depois de criar o projeto, você executará as seguintes etapas manualmente, fora do Visual Studio:

  1. Execute o ofuscamento ao usar o Dotfuscator.

  2. Use Mage.exe ou MageUI.exe para gerar os manifestos do ClickOnce e assiná-los. Para obter mais informações, consulte Mage.exe (Ferramenta de Geração e Edição de Manifesto) e MageUI.exe (Ferramenta de Geração e Edição de Manifesto, cliente gráfico).

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

Segurança e implantação do ClickOnce
Escolhendo uma estratégia de implantação do ClickOnce

Mostrar: