Implementando Segurança de Acesso ao Código em .Net

No .Net Framework existe algo chamado Segurança de Aceso ao Código, ou simplemente CAS (Code Access Security), é um sistema de segurança que permite administradores e desenvolvedores controlar o acesso das aplicações similarmente como fazem para controlar o acesso dos usuários. O CAS está para as aplicações assim como o role-based security (RBS) está para os usuários. CAS é algo muito grande para ser abordado apenas em um artigo, então aqui tentarei dar uma breve introdução de como ele funciona e como colocar em prática. Para uma abordagem mais profunda acesse:
http://msdn2.microsoft.com/en-us/library/930b76w0(VS.80).aspx

Com o CAS, você pode permitir uma aplicação ler ou gravar no registro enquanto restringe esse acesso a outras aplicações. Mas há um porém, o CAS não pode se sobresair às permissões do usuário (fornecidas pelo RBS). Por exemplo, se o usuário não tem permissão para acessar determinado recurso, a aplicação que o usuário executar também não terá.

Como o CAS você divide as aplicações em 2 grupos:
  • Parcialmente Confiável: A aplicação poderá executar com determinadas permissões, mas sempre verificando se ele tem acesso a determinado recurso.
  • Completamente Confiável: A aplicação não passará por verificação de segurança e poderá acessar todos os recursos que o SO permitir.

As permissões de uma aplicação são determinadas através do que é chamado de Evidência, que nada mais é que dados que identificam a aplicação. Alguns exemplos de evidência da aplicação são o local de onde está sendo executado e seu hash (calculado pelo .Net e que é único para cada versão da aplicação). Baseado na Evidência o .Net enquadra a aplicação em um Grupo de Código. Cada Grupo de Código estará atribuido a um conjunto de permissões, então assim será determinado o que a aplicação pode acessar. Os Grupos de Códigos e os conjuntos de permissões já vêm previamente configurados no .Net e podem ser customizados através da ferramenta de configuração do .Net localizado nas Ferramentas Administrativas do computador.
أحدث أقدم