Você está na página 1de 22

Sistemas Operacionais

Mecanismos de Proteção

Francisco José da Silva e Silva

Laboratório de Sistemas Distribuı́dos (LSD)


Departamento de Informática / UFMA
http://www.lsd.ufma.br

19 de agosto de 2010

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 1 / 22


Agenda

1 Conceitos Introdutórios

2 Autenticação

3 Autorização

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 2 / 22


Conceitos Introdutórios

Conceitos Introdutórios

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 3 / 22


Conceitos Introdutórios

Conceitos Introdutórios
Proteção refere-se a qualquer mecanismo através do qual seja
possı́vel controlar o acesso de programas, processos e usuários a
recursos definidos por um sistema de computação;
Segurança é um conceito mais abrangente. Segurança requer não
somente um ambiente adequado de proteção bem como considera o
ambiente externo no qual o sistema opera;
Polı́tica de Segurança define as regras que controlam o acesso
autorizado aos recursos de computação e informações armazenadas.
Por exemplo, uma organização pode definir que apenas empregados
do setor de contabilidade podem armazenar novas informações de
contabilidade;
Mecanismos de proteção, portanto, são ferramentas utilizadas para
implementar a polı́tica de segurança definida pela organização;
O mecanismo determina como algo deve ser feito,
enquanto a polı́tica decide o que deve ser feito.
Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 4 / 22
Conceitos Introdutórios

Autenticação e Autorização

Autenticação
Externa: visa determinar se o usuário é realmente a pessoa que diz ser.
Ou seja, se a pessoa que se logou no sistema é realmente a que deveria
estar utilizando aquela conta;
Interna: visa garantir que um usuário não consiga criar um processo
que pareça ser um processo pertencente a outro usuário.

Autorização visa garantir que processos e usuários somente utilizem


recursos do sistema que sejam a eles permitidos.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 5 / 22


Autenticação

Autenticação

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 6 / 22


Autenticação

Métodos de Autenticação

1 Algo que o usuário possui (como uma chave ou cartão);

2 Algo que o usuário sabe (identificação e senha);

3 Um atributo do usuário (impressão digital, padrão retina, assinatura).

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 7 / 22


Autenticação

Vulnerabilidade das Senhas


Sua Vulnerabilidade está relacionada com a dificuldade de mantê-la
secreta;
Formas para tentar adivinhar uma senha:
1 Obter informações sobre o usuário;
2 Força bruta;
3 Através de dicionários: em 1979, Morris e Thompson realizaram um
estudo em senhas utilizadas em sistemas Unix. Eles elaboraram uma
lista com as senhas mais comuns que incluı́am primeiros nomes,
sobrenomes, nomes de ruas e cidades, palavras mais comuns e strings
pequenas de caracteres randômicos. Cerca de 86% de todas as senhas
constavam da lista.
Falhas de segurança podem também ocorrer devido a esposições
visuais ao teclar a senha e através de monitoramento da rede
(sniffing);
A natureza humana atrapalha: as pessoas repassam suas
senhas a amigos para contornar certas situações.
Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 8 / 22
Autenticação

Contornando as Vulnerabilidades

Os sistemas tentam contornar as vulnerabilidades de algumas formas:


Geração de senhas pelo sistema. Problema: são difı́ceis de lembrar e,
às vezes, os usuários as escrevem em papel;
Tempo de expiração. Problema: usuários repetem entre duas senhas;
Limitação de senhas que não pertençam a um dicionário;
Manutenção do arquivo de senhas criptografado. Não garante
completamente o sigilo já que o atacante pode usar dicionários.
Algumas sugestões:
Utilize senhas de, no mı́nimo, 8 caracteres;
Utilize caracteres maiúsculos e minúsculos, números e pontuações;
Utilize a primeira letra de cada palavra de uma frase ou verso;
Troque sua senha regularmente.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 9 / 22


Autorização

Autorização

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 10 / 22


Autorização

Domı́nios de proteção

Um sistema de computação compreende uma coleção de processos e


objetos. Os objetos podem ser componentes de hardware (UCP,
segmentos de memória, impressoras, discos, etc.) e de software
(arquivos, programas, semáforos);
Cada objeto pode ser acessado somente através de operações bem
definidas.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 11 / 22


Autorização

Domı́nios de proteção

Um processo opera dentro de um domı́nio de proteção.


Cada domı́nio especifica um conjunto de objetos e os tipos de
operação que podem ser invocadas para cada um deles;
Domı́nios são, portanto, conjuntos de pares ordenados (objeto, direito
de acesso);
No Unix, o domı́nio está associado ao usuário. Mudar de domı́nio
corresponde a alterar temporariamente a identificação do usuário.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 12 / 22


Autorização

Matriz de Acesso

Um modelo de proteção pode ser visto de forma abstrata como uma


matriz de acesso;

O mecanismo de proteção consiste em implementar a matriz de acesso


e garantir a validade da semântica dos valores inseridos na matriz.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 13 / 22


Autorização

Matriz de Acesso: Operações Básicas

Quando o usuário cria um objeto Oj , uma coluna Oj é adicionada à


matriz de acesso juntamente com uma inicialização apropriada de
suas entradas, conforme especificado pelo usuário;
Processos podem possuir a habilidade de mudar de um domı́nio para
outro. A mudança de um domı́nio Di para um Dj só pode ocorrer se
e somente se o direito de acesso switch ∈ access(i , j).
Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 14 / 22
Autorização

Matriz de Acesso: switch

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 15 / 22


Autorização

Matriz de Acesso: Direito de Cópia

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 16 / 22


Autorização

Matriz de Acesso: Direito de Cópia

Denotado por um asterisco (*);

Variações:
1 um direito de acesso é copiado de access(i, j) para access(k, j) e então
removido de access(i, j);
2 a propagação de cópia é limitada: quando um direito de acesso R ∗ é
copiado, somente R (e não R ∗ ) é criado.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 17 / 22


Autorização

Matriz de Acesso: Direito owner

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 18 / 22


Autorização

Matriz de Acesso: Direito control

Os direitos de acesso copy e owner permitem alterar entradas em


uma coluna;
Para alterar entradas em uma linha temos o control;
Se access(i , j) inclui o direito de acesso control, um processo
executando no domı́nio Di pode remover qualquer direito
de acesso da linha j.
Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 19 / 22
Autorização

Implementação da Matriz de Acesso: Tabela Global

Consiste em um conunto ordenado de triplas (domı́nio, objeto,


direito-de-acesso);
Sempre que uma operação M for executada em um objeto Oj dentro
de um domı́nio Di , a tabela global é percorrida procurando-se por
(Di ,Oj , Rk ), com M ∈ Rk ;
Desvantagens:
1 A tabela é normalmente muito extensa para ser mantida em memória
e, portanto, operações de E/S são necessárias;
2 É custoso manter grupos de objetos ou domı́nios. Por exemplo, se um
objeto pode ser visto por todos, uma entrada para cada domı́nio é
necessária.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 20 / 22


Autorização

Implementação da Matriz de Acesso: Lista de Controle de


Acesso

Cada coluna da matriz pode ser implementada como uma lista de


acesso para cada objeto;

Quando uma operação M for executada em um objeto Oj dentro de


um domı́nio Di , varre-se a lista de acesso do objeto Oj , procurando-se
por uma entrada (Di , Rk ) com M ∈ Rk .

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 21 / 22


Autorização

Implementação da Matriz de Acesso: Lista de Capacidades

Trata-se de uma lista de objetos juntamente com as ações permitidas


para estes objetos;
Listas de capacidades são úteis para localizar as informações de
acesso de um processo em particular;
A revogação de capacidade, no entanto, pode ser ineficiente já que
estão distribuı́das no sistema;
A maioria dos sistemas utiliza uma combinação de listas de acesso e
listas de capacidades:
Quando um processo tenta acessar um objeto, a lista de acesso é
verificada, uma capacidade é criada e é entregue ao processo;
Tentativas posteriores de acesso são realizadas utilizando-se a
capacidade.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 22 / 22

Você também pode gostar