Share via


Visão geral de administração de diretiva de segurança

Observação importanteImportante

No .NET Framework versão 4, o common language runtime (CLR) está se afastando fornecendo a diretiva de segurança de computadores.Microsoft recomenda o uso de diretivas de restrição de Software do Windows como um substituto para a diretiva de segurança do CLR.As informações neste tópico se aplica à.NET Framework versão 3.5 e anterior; não se aplica à versão 4.0 e posterior.Para obter mais informações sobre esta e outras alterações, consulte Alterações de segurança na.NET Framework 4.

A.Sistema de segurança do NET Framework é regido por um conjunto configurável de regras denominado diretiva de segurança. Essa diretiva permite que o usuário final ou administrador ajustar as configurações que determinam qual código de recursos tem permissão para acessar e decidir em qual código pode ser executado em todos os.

Por exemplo, suponha que você seja um administrador em uma configuração empresarial e você não confia o software que se origina de uma determinada empresa. Talvez o que a empresa produz software que os funcionários achar divertidos, mas causa aumento de tráfego de rede ou faz com que as estações de trabalho se torne instável. Você pode definir uma diretiva de segurança de nível empresarial que restringe o acesso que tem de software com um nome de alta segurança criptográfico específico (um identificador exclusivo de um programa) para os recursos do computador. Você também pode definir uma diretiva que impede que o software do publisher execução completa.

Este tópico fornece uma visão geral da administração da diretiva de segurança. Para obter informações adicionais, consulte O gerenciamento de diretiva de segurança.

Evidência, grupos de códigos e conjuntos de permissão

Código que atinge o common language runtime é implantado em unidades chamadas módulos (assemblies). No tempo de carregamento, o runtime examina cada assembly de provas, que é identificar as informações sobre o assembly (como, por exemplo, a assinatura digital do autor do código e o local onde o código se origina). O Gerenciador de segurança de tempo de execução de linguagem comum com base em evidências, mapeia o assembly com base na diretiva de segurança de um grupo de códigos. Os grupos de código são definidos para testar formulários específicos de evidências e têm conjuntos de permissões associados a eles. Os assemblies que pertencem a um grupo de códigos recebem as permissões definidas por conjuntos de permissões associado. Para obter mais informações sobre a evidência, grupos de código e conjuntos de permissões, consulte O modelo de diretiva de segurança.

Permissões

As permissões são simplesmente os objetos que representam o direito de acessar um recurso protegido. As permissões são configuráveis e um objeto de permissão único pode assumir várias formas. Por exemplo, o FileIOPermission representa o direito de acessar, criar, ler, gravar ou modificar arquivos no disco rígido local. Para ser significativa, uma permissão deve conter informações específicas sobre o tipo de acesso que ele representa. Você pode configurar um FileIOPermission para representar o direito de ler um arquivo específico, ler e gravar em um arquivo específico, ou leiam os arquivos no diretório inteiro. Os direitos de uma permissão representar e recebem de assemblies que são totalmente configuráveis pelo administrador do computador. Enquanto os aplicativos podem construir e configurar os objetos de permissão como qualquer outro objeto, somente a diretiva de segurança pode conceder uma permissão para um aplicativo. Finalmente, os administradores controlam a concessão de permissão. Para obter uma lista de permissões comuns, consulte As permissões de acesso do código.

Níveis de Diretiva de segurança

Existem quatro níveis de diretiva de segurança definidas pelo modelo de segurança, que correspondem à administração diferente e cenários de hospedagem. A tabela a seguir descreve cada nível. O nível de diretiva da empresa é o mais alto nível e o nível de domínio de aplicativo é o mais baixo.

Nível de diretiva

Descrição

Diretiva corporativa

Definidos pelos administradores de empresa que definir a diretiva de domínios da empresa.

Diretiva de máquina

Definidos pelos administradores de máquina que definir a diretiva para um computador.

Diretiva de usuário

Definidos por usuários que definir a diretiva para uma conta de logon único.

Diretiva de domínio de aplicativo

Definido pelo runtime host (qualquer aplicativo que hospeda o common language runtime) para configuração de diretiva de tempo de carregamento. Este nível não pode ser administrado.

Cada nível de diretiva consiste em uma hierarquia de grupos de código. Os administradores de cada nível de diretiva podem criar seus próprios grupos de códigos e associadas a conjuntos de permissões. No tempo de carregamento, o sistema de segurança de acesso de código examina todos os níveis de diretiva e a concessão de permissão resultante é a interseção de todas as permissões concedidas em cada nível. Os administradores de um nível inferior de diretiva não solte uma decisão de diretiva feita em um nível superior, mas pode aumentar a diretiva, como quiserem. A diretiva de segurança padrão reside no nível de diretiva da máquina.

As configurações de segurança padrão são os seguintes:

  • Níveis de usuário e a enterprise são definidos como irrestritos.

  • O nível de máquina contém as configurações de diretiva específicas e restrições.

  • As configurações definidas pelos três níveis constituem as configurações padrão.

Observe que o usuário irrestrito e os níveis de empresa não resultar em sendo concedidas a um conjunto de permissões irrestritas. Como o nível de máquina define várias restrições e todos os três níveis são considerados como um todo, a concessão de permissão resultante não é permissões irrestritas. Para obter mais informações, consulte O modelo de diretiva de segurança.

O mapeamento de grupos de código para conjuntos de permissões

Você gerencia a diretiva de mapeamento de grupos de código para conjuntos de permissões no nível de diretiva ou níveis que você administra.

Os grupos de código contêm uma condição de associação, um conjunto de permissões associação e atributos do grupo de código. A evidência que apresenta de um assembly para o runtime é comparado com a condição de associação que você especificar para um grupo de códigos. Se um assembly fornece evidências que coincida com a condição de associação, é permitido a entrada para o grupo de códigos. Os administradores a identificam e categorizar os assemblies em grupos de código especificando as condições de participação e atribuindo permissão define a esses grupos de código. Opcionalmente, os atributos do grupo de código podem ser usados para especificar que nenhum nível de diretiva abaixo do nível atual deve ser considerado ou que nenhum código de grupo, exceto a atual deve ser considerado ao atribuir permissão.

Os seguintes tipos de evidências interno podem ser usados como condições de participação:

  • Diretório de instalação do aplicativo.

  • O hash criptográfico do assembly

  • A assinatura digital do Editor do assembly

  • O site da qual provém o assembly

  • O nome de alta segurança criptográfico do assembly

  • A URL da qual provém o assembly

  • A zona da qual provém o assembly

Você pode reduzir ou aumentar as permissões a conjuntos com base em qualquer combinação dessas condições de participação. Porque as condições de associação personalizado podem ser criadas, a lista anterior não representa cada possibilidade. Para obter mais informações, consulte Evidence.

Consulte também

Conceitos

Segurança de Acesso de código

Outros recursos

Práticas Recomendadas de Política de Segurança

Configurando política de segurança

Gerenciamento de política de segurança