Not Another WordPress site

From the Blog

jun
11

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

Posted by Felipe V. Rigo on junho 11th, 2007 at 1:08 pm

Segue abaixo um artigo que comecei a escrever em resposta ao seguinte post:
http://forums.microsoft.com/msdn-br/ShowPost.aspx?postid=565879&siteid=21
e no fim nunca terminei.
Quem quiser ajudar a terminar me escreva que eu compartilho no GoogleDocs.

Implementando Segurança de Acesso ao Código

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.

Deixe um Comentário

One Response to Implementando Segurança de Acesso ao Código no .Net

  1.  

    |

  2. tipo… pelo post que você escreveu deixou a entender que com o CAS é possível proteger DLL de “usos indevidos (leia-se: ter acesso ao código fonte, fazer engenharia reversa, etc.)” o que não é verdade…
    não sei se foi essa a intenção, mas o CAS não tem nada a ver com acesso ao código fonte que você cria através do .NET mas sim com permissões de acesso entre aplicações…
    um exemplo disso é quando você cria um método private, teoricamente ele não pode ser acessado por classes externas, mas através de reflection eu consigo invocar esse método normalmente… o que pode ser evitado através do CAS