• Nenhum resultado encontrado

Uma arquitetura de segurança para ambientes de educação a distância

N/A
N/A
Protected

Academic year: 2017

Share "Uma arquitetura de segurança para ambientes de educação a distância"

Copied!
110
0
0

Texto

(1)
(2)
(3)

Resumo

(4)

Abstract

(5)

Sumário

Lista de Figuras... viii

Lista de Tabelas ... ix

Capítulo 1 Introdução ...1

1.1 Considerações Iniciais ...1

1.2 Motivação e Objetivo...2

1.3 Organização da Monografia...2

Capítulo 2 Segurança de Sistemas Computacionais...4

2.1 Considerações Iniciais ...4

2.2 Métodos de Ataque ...4

2.3 Propriedades de Segurança ...5

2.4 Autenticação ...6

2.4.1 Conhecimento ...7

2.4.1.1 Senhas (Passwords)...7

2.4.1.2 PIN’s ...9

2.4.1.3 Chaves de Criptografia ...9

2.4.2 Propriedade ...13

2.4.2.1 Tokens de Desafio/Resposta...13

2.4.3 Biometria ...14

2.4.3.1 Reconhecimento de Face ...15

2.5 Controle de Acesso ...15

2.5.1 Conceitos Básicos ...16

2.5.1.1 Objeto...16

2.5.1.2 Sujeito ...16

2.5.1.3 Tipo de Operação...17

2.5.1.4 Definição Formal de uma Autorização ...17

2.5.2 Políticas de Controle de Acesso...18

2.5.2.1 Política Discretionary ...18

2.5.2.2 Política Mandatory...19

2.5.2.3 Política Baseada em Papéis...20

2.5.3 Matriz de Acesso ...22

2.5.3.1 Abordagens de Implementação...23

2.5.4 Políticas Administrativas ...25

2.5.5 Outros Conceitos Importantes ...26

2.5.5.1 Autorizações Explícitas/Implícitas ...26

2.5.5.2 Autorizações Positivas/Negativas e Fracas/Fortes ...27

2.5.5.3 Regras de Derivação ...29

2.6 Técnicas Utilizadas na Arquitetura de Segurança ...32

2.7 Considerações Finais ...32

Capítulo 3 Educação a Distância ...33

3.1 Considerações Iniciais ...33

3.2 Definição...33

(6)

3.4 Objetivos...35

3.5 Ambientes para EaD e seus Mecanismos de Segurança...36

3.5.1 Blackboard (www.blackboard.com) ...36

3.5.2 Intralearn (www.intralearn.com) ...38

3.5.3 eCollege (www.ecollege.com)...39

3.6 Avaliação dos Aspectos e dos Mecanismos de Segurança dos Ambientes de EaD Pesquisados...39

3.7 Considerações Finais ...40

Capítulo 4 Uma Arquitetura de Segurança para Ambientes de EaD ...41

4.1 Considerações Iniciais ...41

4.2 Descrição da Arquitetura ...42

4.2.1 Módulo de Autenticação...43

4.2.2 Módulo de Controle de Sessão ...44

4.2.3 Módulo de Autorização ...44

4.2.3.1 Operações de Procura, Inserção e Remoção de uma Autorização...45

4.2.3.2 Utilização de Autorizações Coletivas/Individuais...46

4.2.3.3 Utilização de Autorizações Explícitas/Implícitas ...46

4.2.3.4 Utilização de Autorizações Positivas/Negativas...47

4.2.4 Módulo Monitor...48

4.2.5 Módulo Auditor ...49

4.3 Integração da Arquitetura de Segurança com Ambientes de EaD...49

4.4 Vantagens e Desvantagens da Arquitetura de Segurança ...50

4.5 Considerações Finais ...51

Capítulo 5 Aspectos de Implementação ...52

5.1 Considerações Iniciais ...52

5.2 Módulo de Autenticação...52

5.2.1 Modelagem de Classes...53

5.3 Módulo de Controle de Sessão ...53

5.4 Módulo de Autorização...54

5.4.1 Definição de uma Autorização para Controle de Acesso em Ambientes de EaD ...54

5.4.2 Construção das Hierarquias dos Domínios de uma Autorização...55

5.4.2.1 Hierarquia de Papéis ...55

5.4.2.2 Hierarquia de Objetos ...55

5.4.2.3 Hierarquia de Tipos de Operação ...57

5.4.2.4 Interação entre as Hierarquias...57

5.4.2.5 Observações Importantes...59

5.4.3 Modelagem de Classes...60

5.4.3.1 Políticas de Gerenciamento ...61

5.4.4 Algoritmos de Procura, Inserção e Remoção de Autorizações...62

5.4.4.1 Algoritmo de Procura de uma Autorização ...62

5.4.4.2 Algoritmo de Inserção de uma Autorização ...64

5.4.4.3 Algoritmo de Remoção de uma Autorização...68

5.4.5 Relação entre os Conceitos Utilizados pelo Módulo de Autorização...72

5.5 Estrutura do Banco de Dados de Segurança ...73

5.5.1 Relacionamento entre Atores e Papéis de um Ambiente de EaD ...74

5.5.2 Propriedade dos Objetos ...75

5.5.3 Exemplo de Integração entre os Diferentes Casos...76

(7)

Capítulo 6 Estudo de Caso ...78

6.1 Considerações Iniciais ...78

6.2 Ambiente DE-MAW...78

6.2.1 Projeto AMMO ...78

6.2.2 Descrição do Ambiente...79

6.3 Plataforma de Software...82

6.3.1 Applets ...82

6.3.2 Servlets...83

6.3.3 Jakarta Tomcat e Interbase...83

6.3.4 Integração das Tecnologias...84

6.4 Ferramentas Geradas...85

6.4.1 Ferramenta de Autenticação ...85

6.4.1.1 Descrição de Interfaces ...85

6.4.2 Ferramenta de Autorização...87

6.4.2.1 Extensão do BD do Ambiente DE-MAW...87

6.4.2.2 Construção da Hierarquia de Papéis ...89

6.4.2.3 Descrição de Interfaces ...90

6.5 Considerações Finais ...93

Capítulo 7 Conclusões ...94

7.1 Contribuições ...94

7.2 Trabalhos Futuros ...95

Referências Bibliográficas...96

(8)

Lista de Figuras

Figura 2.1 - Criação de uma assinatura digital ...12

Figura 2.2 - Verificação de uma assinatura digital ...12

Figura 2.3 - Exemplo de uma hierarquia de papéis ...21

Figura 2.4 - Um exemplo de ACL ...23

Figura 2.5 - Um exemplo de lista de capacidade...24

Figura 2.6 - Autorização implícita...27

Figura 2.7 - Autorização positiva/negativa e forte/fraca ...28

Figura 2.8 - Grafo de papéis ...29

Figura 2.9 - Grafo de tipos de operação...30

Figura 2.10 - Esquema de autorização de objetos ...31

Figura 2.11 - AOL (instanciação do AOS) ...31

Figura 3.1 - Algumas opções de controle de acesso do ambiente Blackboard...37

Figura 3.2 - Algumas opções de controle de acesso do ambiente Intralearn...39

Figura 4.1 - Arquitetura de segurança...42

Figura 4.2 - Hierarquia entre as ferramentas ...47

Figura 4.3 - Integração da arquitetura de segurança com um ambiente de EaD ...50

Figura 5.1 - Informações utilizadas pelo módulo de autenticação...53

Figura 5.2 - Hierarquia de papéis em um ambiente de EaD ...55

Figura 5.3 - Hierarquia de ferramentas em correspondência com a hierarquia de papéis...56

Figura 5.4 - Hierarquia de páginas web ...57

Figura 5.5 - Hierarquia de operações em um ambiente de EaD ...57

Figura 5.6 - Estrutura de classes do módulo de autorização...60

Figura 5.7 - Relacionamento Ator / Papel - 1º Caso...74

Figura 5.8 - Relacionamento Ator / Papel - 2º Caso...75

Figura 5.9 - Objetos protegidos pertencentes aos cursos...76

Figura 5.10 - Integração dos conceitos anteriores ...77

Figura 6.1 - Arquitetura do projeto AMMO ...79

Figura 6.2 - Arquitetura do ambiente DE-MAW...80

Figura 6.3 - Integração das tecnologias ...84

Figura 6.4 - Interface da ferramenta de autenticação do ambiente DE-MAW / Nome de usuário e senha...86

Figura 6.5 - Interface da ferramenta de autenticação do ambiente DE-MAW / Questão randômica...86

Figura 6.6 - Interface da ferramenta de autenticação do ambiente DE-MAW / Acesso negado...87

Figura 6.7 - BD do ambiente DE-MAW estendido para dar suporte à arquitetura de segurança ...88

Figura 6.8 - Hierarquia de papéis no ambiente DE-MAW ...89

Figura 6.9 - Interface da ferramenta de autorização do ambiente DE-MAW / Busca...90

Figura 6.10 - Atualização da hierarquia de papéis através da seleção de um ator...91

Figura 6.11 – Autorizações pertencentes aos atores ...91

Figura 6.12 - Interface da ferramenta de autorização do ambiente DE-MAW / Inserção ...92

(9)

Lista de Tabelas

Tabela 2.1 - Tabela de empregados ...20

Tabela 2.2 - Tabela de empregados após filtragem ...20

Tabela 2.3 - Exemplo de uma matriz de acesso...22

Tabela 2.4 - Exemplo de uma relação de autorização ...25

(10)

Capítulo 1

Introdução

1.1 Considerações Iniciais

A educação e seus paradigmas vêm passando por um forte processo de modernização devido ao avanço tecnológico das últimas décadas. Alguns dos principais componentes relacionados ao ensino, como escolas, universidades, professores e alunos, vêm tendo sensíveis mudanças em relação ao desempenho de suas funções.

Considerando os diferentes processos educacionais existentes, a Educação a Distância (EaD) é, provavelmente, o que mais tem se modernizado. Inicialmente, a EaD consistia de cursos à distância que chegavam ao seu público através do uso dos correios. Nos dias de hoje, essa mesma distância é percorrida por conexões idealizadas através de modernos meios de comunicação, possibilitando uma interação muito mais eficiente. Além disso, com a tecnologia atual, muitas possibilidades de aplicação da EaD se fazem presentes com a utilização de recursos audiovisuais, entre outros.

Resumidamente, a EaD tem como proposta trazer inúmeros benefícios para o processo de ensino/aprendizagem, tais como atingir o maior número possível de pessoas, minimizar o problema da distância entre instituição educadora e aluno, proporcionar maior liberdade ao aluno na questão de horários, etc. Para viabilizar esses objetivos, vários recursos devem ser utilizados em harmonia, e que em conjunto formam um ambiente de EaD. Esses recursos compreendem os meios de comunicação para interconexão remota entre computadores, os softwares utilizados para dar suporte ao ensino/aprendizado e metodologias de ensino específicas.

(11)

estágio de controle de acesso. Os mecanismos de controle de acesso garantem o alcance aos objetos protegidos apenas pelo conjunto de usuários autorizados.

Assim, os mecanismos de autenticação e controle de acesso devem estar inseridos em ambientes de EaD de forma a ditarem restrições para cada usuário em cada situação.

1.2 Motivação e Objetivo

O grupo de Banco de Dados do Departamento de Computação da UFSCar vem desenvolvendo um projeto denominado AMMO (Authoring and Manipulation of Multimedia Objects). Esse projeto vem sendo utilizado para a pesquisa de vários aspectos computacionais ligados, principalmente, à manipulação de objetos multimídia. Nesse contexto, está sendo desenvolvido um ambiente denominado DE-MAW (Distance Education-Multimedia Application Web-builder) [Seno, 2000], no qual alguns resultados já foram alcançados e novos trabalhos de pesquisa encontram-se em fase de elaboração.

Entre os pontos que necessitam ser abordados e desenvolvidos referentes ao DE-MAW estão os que envolvem a autenticação de usuários e o controle de acesso sobre as ferramentas que compõem esse ambiente. Considerando esses pontos como motivação inicial, foram pesquisadas na literatura características de segurança estabelecidas sobre ambientes de EaD disponíveis no mercado.

A partir desse levantamento, o objetivo deste trabalho consistiu em criar uma arquitetura de segurança para ambientes de EAD que abrange as características de autenticação e de controle de acesso. Como resultado, foi desenvolvida uma arquitetura de segurança independente das particularidades desse tipo de ambiente. Essa característica permite que projetistas e desenvolvedores possam utilizá-la para a implementação da segurança em seus respectivos ambientes de EaD.

1.3 Organização da Monografia

(12)
(13)

Capítulo 2

Segurança de Sistemas

Computacionais

2.1 Considerações Iniciais

São abordadas neste capítulo questões envolvendo segurança, desde os métodos de ataque usados contra sistemas computacionais até as técnicas de autenticação e de controle de acesso utilizadas para prevenir ações não autorizadas dentro desses sistemas.

A seção 2.2 descreve brevemente os métodos de ataque para o acesso às informações ou recursos protegidos de um sistema computacional. Na seção 2.3 são apresentadas de maneira sucinta as propriedades de segurança para o desenvolvimento de um sistema computacional consideravelmente seguro. As seções 2.4 e 2.5 mostram, respectivamente, a autenticação e o controle de acesso de maneira detalhada, abordando conceitos e métodos de implementação. Na seção 2.6 são citadas quais são os conceitos e mecanismos utilizados na implementação da arquitetura de segurança. Finalmente, a seção 2.7 aborda as considerações finais do capítulo.

2.2 Métodos de Ataque

Um ataque é caracterizado através da intenção da destruição de informação ou de outros recursos, modificação ou deturpação da informação, roubo ou remoção de informação ou de outros recursos, revelação de informação sigilosa e interrupção de serviços.

De acordo com Coulouris [Coulouris et al., 1994], a utilização de um dos seguintes métodos é necessária para que um ataque seja concretizado:

Espreita: é a obtenção de cópias de mensagens sem autorização, realizada

obtendo-se as mensagens diretamente da rede ou examinando informações que estão armazenadas sem proteção adequada;

Personificação: enviar ou receber mensagens utilizando a identidade de outra

(14)

Falsificação: consiste em interceptar mensagens e alterar o seu conteúdo antes de

enviá-las ao destino;

Vírus: é um programa intruso com intenções maléficas que se instala no sistema a

partir da sua execução, possuindo várias formas de ataque;

Infiltração: ocorre quando um programa explora remotamente as facilidades de

processos em execução;

Cavalo de Tróia: consiste em um programa que aparentemente tem uma função útil,

mas que na realidade tem por intenção lesar o sistema em que está instalado.

O cumprimento de certas propriedades de segurança evita em grande parte os ataques descritos acima. Essas propriedades são descritas na próxima seção.

2.3 Propriedades de Segurança

Um sistema computacional é considerado seguro quando está de acordo com algumas propriedades de segurança. Tais propriedades definem normas que regulamentam o acesso às informações e recursos de forma segura.

De acordo com Chin [Chin, 1999], as propriedades que precisam ser consideradas na concepção de um sistema computacional seguro são:

Confidencialidade: apenas as partes envolvidas na comunicação acessam o conteúdo

dos dados que trafegam na rede, sendo que qualquer ação de monitoramento ilegal não deve ser capaz de usufruir desses dados.

Integridade: os dados transmitidos na comunicação não devem ser alterados por

acesso ilegal ou falha.

Autenticação: é necessária a confirmação de identidade pelas partes integrantes de

um processo de comunicação.

Controle de Acesso: o acesso às informações e recursos é restrito às entidades

autorizadas.

(15)

Nas duas próximas seções é realizado um levantamento mais detalhado sobre duas das propriedades de segurança apresentadas acima: autenticação e controle de acesso.

2.4 Autenticação

A necessidade de se identificar pessoas vem desde o início da história do homem e alcançou tais proporções na sociedade atual que ficou muito comum a preocupação com a verificação de identidade, em que possa ser confirmado se alguém é quem realmente diz ser.

Vários métodos criados no passado para a verificação de identidade ficaram mais aprimorados e confiáveis com o avanço tecnológico. Por exemplo, um dos primeiros métodos usados na identificação criminal baseado nas características físicas foi o sistema de medidas Bertillon, criado em 1870 [Everett, 1992]. Esse sistema usava o peso, tamanho da abertura dos braços, tamanho do tronco, tamanho do pé, tamanho dos dedos, tamanho do antebraço e largura da cabeça para o reconhecimento de um indivíduo. Atualmente, outras características consideradas mais confiáveis são utilizadas, entre elas voz, impressão digital, varredura de retina e aspectos faciais.

A autenticação pode ser definida como um processo no qual as entidades envolvidas em uma comunicação confirmam suas identidades [Linhalis, 2000], ou seja, é a utilização dos métodos de verificação de identidade em uma comunicação1.

Os métodos de autenticação são baseados em quatro princípios [Everett, 1992]:

• Alguma coisa que o usuário conhece;

• Alguma coisa que o usuário tem;

• Alguma característica física do usuário;

• Algum padrão de comportamento do usuário;

Fiorese [Fiorese, 2000] classifica, respectivamente, esses quatro princípios em três categorias diferentes, sendo que a última engloba os dois últimos princípios. São elas: conhecimento, propriedade e biometria. Esta seção apresenta os principais e mais utilizados métodos de autenticação de cada uma.

1 Como neste trabalho os métodos de verificação de identidade são analisados para serem aplicados na

(16)

2.4.1 Conhecimento

Na atualidade, essa é a categoria mais utilizada na implementação da autenticação e seus métodos baseiam-se principalmente na alocação de uma ou mais palavras secretas para um usuário. Tal fato pode ser verificado no cotidiano, no qual inúmeras senhas, PIN’s (Personal

Identification Number) e chaves de criptografia são utilizadas nos sistemas de software para o

reconhecimento da identidade.

2.4.1.1

Senhas (

Passwords

)

A base para o controle de acesso em ambientes computacionais reside no emprego de senhas, devido principalmente às facilidades e baixo custo de implementação que seu uso provê. Embora amplamente utilizadas, são as mais suscetíveis a fraudes através de meios como adivinhação da senha (password guessing), ataque de dicionário (dictionary attack),

monitoramento do tráfego na rede (sniffing), cavalos-de-tróia e cópia de anotações

[Fiorese and Tarouco, 1999].

Para se aumentar a dificuldade do sucesso de tais meios de ataque, a observação de alguns procedimentos simples descritos por Everett [Everett, 1992] na utilização de senhas tornam-se fundamentais. São eles:

Criação de uma senha: senhas devem ser criadas pelo sistema de forma a dificultar a

previsão de seus valores. Por exemplo, seis dígitos numéricos formam uma combinação relativamente segura. Se for permitida a escolha da senha pelo próprio usuário, deve ser estabelecido um tamanho mínimo de caracteres e o sistema deve checar a senha através de um dicionário de senhas previsíveis.

Armazenamento de uma senha: um arquivo de senhas armazenado em um

computador deve conter dados que foram transformados por uma função (criptografia). Os usuários devem ser instruídos a preservarem em segredo os valores de suas senhas.

Distribuição de uma senha: as senhas devem ser distribuídas de forma segura para

os usuários. Telefones nunca devem ser utilizados na distribuição de senhas.

Uso de uma senha: usuários devem preservar a confidencialidade de suas senhas,

(17)

tentativas de acesso caso a senha digitada esteja errada. Por exemplo, após três tentativas o acesso é bloqueado e o log de autenticação deve ser investigado.

Mudança de uma senha: um sistema deve forçar mudanças regulares de uma senha.

A nova senha segue o mesmo padrão de criação citado acima.

Destruição de uma senha: quando um indivíduo deixa de ser usuário de um sistema,

sua senha deve ser destruída e seu valor não mais utilizado para novas senhas.

Deve-se mencionar que os procedimentos citados não estão associados a um método de autenticação específico e sim a todos os métodos de autenticação existentes. Sendo assim, ao se implementar um método de autenticação torna-se obrigatória a análise detalhada de cada um dos itens acima.

Senhas Descartáveis (One-time Passwords)

Uma maneira de se superar a natureza estática das senhas é a utilização do método de senhas descartáveis. Nesse método uma senha é utilizada somente uma vez, sendo necessária em cada conexão uma nova senha. Isso evita que uma pessoa passe por um usuário de um sistema através de uma senha que tenha obtido ilegalmente. Várias implementações desse método estão disponíveis atualmente em hardware e software.

As senhas descartáveis são classificadas em duas categorias: sincronizadas no tempo e desafio/resposta [Fiorese, 2000]. As senhas descartáveis sincronizadas no tempo são calculadas baseando-se em um intervalo pré-determinado de tempo, por exemplo, trinta segundos. Nesse caso, uma nova senha é criada a cada trinta segundos a partir do momento em que o usuário entra em contato com o sistema. No método de senhas descartáveis baseadas em desafio/resposta o sistema envia um desafio para o usuário, geralmente um número ou uma string, e espera uma resposta compatível do usuário. Em ambos os métodos o usuário deve conhecer o algoritmo que gera as senhas para que os valores das respostas enviadas estejam corretos.

Perguntas Randômicas (Random Queries)

(18)

Esse método pode ser combinado com o uso de senhas normais ou senhas descartáveis. Muitas vezes ele é visto como um complemento na autenticação e não como o método principal. Empresas de cartão de crédito geralmente utilizam este método na autenticação de seus usuários em ligações telefônicas. A vantagem é que ele pode ser totalmente implementado em software, não necessitando de hardwareadicional.

2.4.1.2

PIN’s

Um PIN geralmente é formado de quatro a oito dígitos que são escolhidos pelo sistema e atribuídos ao usuário. De acordo com Jackson [Jackson and Hruska, 1992], um PIN é uma seqüência de dígitos usada para verificar a identidade de um usuário, comportando-se como um tipo de senha. Já para Martins [Martins, 2001], ele é definido por conjunto de caracteres numéricos utilizado como chave secreta para identificação do usuário em transações em automação bancária e comercial.

A principal diferença entre um PIN e uma senha é que muitas vezes o primeiro está associado a um dispositivo físico como, por exemplo, um cartão magnético. Isso pode ser observado em um sistema bancário, em que um cartão e uma senha são utilizados na autenticação. O PIN que está armazenado no cartão indica o usuário envolvido na operação para o sistema. Após isso, a senha é requerida para a confirmação de identidade, já que essa é, teoricamente, mantida em segredo pelo usuário legítimo.

2.4.1.3

Chaves de Criptografia

Antes de se tratar da autenticação por chaves de criptografia, é necessária uma visão geral dos conceitos envolvidos nesse mecanismo. Na realidade, a criptografia surgiu para manter informações confidenciais em sigilo através de métodos de criptografia, mas notou-se que ela, após a evolução desses métodos, também poderia ser utilizada de uma forma robusta na autenticação de usuários.

Criptografia

(19)

O principal problema dessa técnica é que se o método de criptografia for descoberto por um indivíduo não autorizado, faz-se necessário criar outro método. Para a resolução desse problema agregou-se o uso de chaves. Dessa forma, através do uso de uma chave, não é mais necessário manter o método de criptografia em sigilo, pois a mensagem criptografada varia de acordo com a chave. Assim, chaves diferentes produzem mensagens criptografadas diferentes com o mesmo método de criptografia. As chaves podem ser utilizadas de várias maneiras, sendo que duas delas são discutidas a seguir.

Criptografia com Chave Secreta (Chave Simétrica)

A mensagem a ser enviada é codificada através de um método de criptografia e uma chave secreta. Para que a mensagem seja decodificada por esse método é necessária a utilização da mesma chave [Silberschatz et al., 1999]. Ambas as partes envolvidas na comunicação, emissor e receptor, devem obter a chave secreta através de um canal seguro. É imprescindível a existência de confiança entre as partes comunicantes em relação ao sigilo da chave usada.

O DES (Data Encryption Standard) é um dos métodos baseados em chave secreta mais utilizados [Ganley and Piper, 1992].

Criptografia com Chave Pública (Chave Assimétrica)

Nessa técnica, para que haja comunicação, são criadas duas chaves pelo receptor, uma pública e a outra secreta. O receptor envia a chave pública para o emissor e mantém a chave secreta em sigilo. O emissor codifica a mensagem a ser enviada através da utilização da chave pública e do método de criptografia pelo qual as chaves foram geradas anteriormente. Após receber a mensagem criptografada, o receptor utiliza a chave secreta para decodificá-la. O método utiliza uma função para definir uma relação entre as duas chaves, dificultando imensamente o conhecimento da chave secreta através da chave pública.

Uma das principais vantagens desse método é que não há necessidade de confiança entre as partes comunicantes, já que apenas o receptor é que detém o conhecimento sobre a chave secreta. Além disso, não é necessário um canal seguro para o envio da chave pública.

(20)

Assinatura Digital

Segundo Linhalis [Linhalis, 2000], embora a criptografia garanta a confidencialidade de uma mensagem, ela não pode garantir a autenticidade do emissor. Para que esse problema fosse solucionado foi criado o mecanismo de assinatura digital [Sherwood, 1992], que utiliza a criptografia com chave secreta e chave pública. O fator que é considerado como uma ‘assinatura’ é a própria chave secreta, já que apenas seu possuidor tem acesso a ela. Nota-se que nessa técnica ambas as chaves envolvidas no processo de comunicação têm a habilidade de codificar e decodificar uma mensagem, diferentemente do que foi apresentado na subseção anterior.

Um documento digital assinado consiste na tripla <M, P, {M}C>, no qual M é a mensagem a ser enviada, P é a entidade emissora e {M}C é uma cópia da mensagem M criptografada com a chave secreta, sendo essa última a assinatura digital. Assim, qualquer indivíduo que possuir a chave pública correspondente à chave secreta utilizada na assinatura poderá verificar a autenticidade do emissor. Para que M seja mantida em sigilo deve-se codificá-la através de alguma técnica de criptografia.

Para produzir a “impressão digital” de uma mensagem a ser enviada, ou seja, um identificador único e confiável, uma das técnicas utilizadas é a dos algoritmos hash. Esse tipo

de algoritmo recebe uma entrada de tamanho variável e gera como saída um valor de tamanho fixo, chamado hash ou digest, que possui as seguintes propriedades:

• Deve ser computacionalmente impossível encontrar duas mensagens que originem o mesmo valor.

• O hash não revela nada sobre a entrada.

O uso de uma impressão digital fornecida por um algoritmo hash, em uma mensagem é

(21)

Figura 2.1 - Criação de uma assinatura digital

Para a criação da assinatura digital, a mensagem é submetida a uma função hash. O valor gerado pelo algoritmo é então criptografado com a chave secreta do emissor finalizando o processo. Deve-se lembrar que a assinatura em si não é a mensagem a ser enviada, sendo que essa última deve ser criptografada e transmitida junto com a assinatura digital.

O processo de verificação de uma assinatura digital é descrito pela Figura 2.2.

Figura 2.2 - Verificação de uma assinatura digital

Quando chega ao seu receptor, a mensagem é decodificada através do método de criptografia da origem e da chave pública do emissor, que pode ter sido enviada junto com a mensagem ou obtida por um serviço de distribuição de chaves públicas. Após o processo de decodificação, é aplicada à mensagem a mesma função hash da origem, gerando um valor que

deverá ser o mesmo da assinatura enviada. A assinatura então é decodificada e o valor hash

enviado pela origem é obtido. Se os valores hashes, um recuperado da assinatura digital e o outro gerado sobre a mensagem decodificada, forem iguais, significa que o conteúdo da mensagem não foi alterado.

---Codificação

Hash Codificação

Mensagem Mensagem

Codificada

Assinatura

---Decodificação

Hash

Decodificação

Mensagem

Mensagem Codificada

Assinatura

=

OK

-1

(22)

Certificação

Mesmo tendo certeza que a mensagem enviada não foi alterada devido ao uso dos mecanismos de chave privada e pública apresentados anteriormente, como ter certeza de que quem enviou a chave pública é realmente a entidade emissora? Nesse contexto surgem os certificados e as entidades certificadoras. Os certificados servem para documentar a associação de chaves públicas com entidades. São declarações que comprovam que uma determinada chave pública pertence a uma entidade em particular [Sherwood, 1992]. Nesses certificados são armazenadas informações específicas sobre o detentor da chave pública, tais como nome, endereço, telefone, e-mail, etc.

Para garantir que um certificado realmente é válido surgiram as entidades certificadoras. Uma entidade certificadora assina um certificado através de sua chave privada. Para obter as informações do certificado deve-se decodificá-lo com a chave pública da autoridade certificadora que o assinou.

2.4.2 Propriedade

A autenticação baseada na propriedade é realizada com o uso de um objeto, conhecido como token, pertencente ao usuário. Esse tipo de autenticação é conhecido como híbrida, pois

geralmente utiliza uma senha ou PIN além do próprio token. Sua principal vantagem reside na

dificuldade de se forjar um token [Everett, 1992]. Como desvantagens pode-se citar, além do

custo adicional do hardware, o roubo e a perda desse objeto.

De acordo com Fiorese [Fiorese, 2000], um dos principais métodos utilizados com os

tokens é o de desafio/respota.

2.4.2.1

Tokens

de Desafio/Resposta

Nesse método, os tokens são como computadores de bolso com teclado e visor,

possuindo uma pequena capacidade de processamento.

Para efetuar a sua identificação, o usuário informa o seu PIN para que o sistema possa

verificar se trata-se de um usuário válido. Após a verificação, o sistema devolve para o usuário um número randômico como desafio. Por sua vez, o usuário informa o mesmo PIN

anterior para o seu token com o objetivo de habilitar o dispositivo para uso. Logo após isso, o

usuário entra com o número randômico do desafio no token. O dispositivo codifica esse

(23)

Na seqüência, o usuário informa ao sistema o resultado mostrado pelo token. Finalmente, o

sistema decodifica a informação e compara com o número aleatório que ele tinha fornecido anteriormente. Se forem iguais, a autenticação é confirmada. Essa comparação só é possível porque o sistema conhece a chave secreta que está associada ao token, sendo ela recuperada

através do PIN do usuário.

2.4.3 Biometria

Os métodos de autenticação baseados na biometria utilizam-se das características físicas e comportamentais dos usuários para o reconhecimento da identidade. As características físicas geralmente usadas para esse fim são face, íris, retina e impressão digital, enquanto que as características comportamentais são escrita, voz e padrão de digitação [Everett, 1992].

Para que uma característica física ou comportamental possa ser utilizada na autenticação, algumas propriedades devem ser observadas e avaliadas [Fiorese, 2000]:

Universalidade: todos os seres humanos devem possuir tal característica;

Singularidade: a característica não deve ser igual em diferentes seres humanos;

Permanência: a característica não deve variar de acordo com o tempo;

Mensurabilidade: a característica deve ser passível de ser mensurada.

De acordo com a característica usada, essas propriedades denotam diferentes valores. Assim, uma característica pode ser mais adequada para um determinado sistema, enquanto outra não. Por exemplo, a face possui uma alta universalidade, uma baixa singularidade, uma média permanência e uma alta mensurabilidade.

Os métodos que se baseiam na biometria não fornecem uma resposta absoluta como ‘sim/não’, diferenciando-se dos métodos baseados no conhecimento e propriedade. Ao contrário, eles fornecem a porcentagem de um determinado usuário ser ou não ser um usuário legítimo do sistema. Com o avanço tecnológico, as margens de erro dessa verificação diminuem constantemente.

Os principais componentes de um sistema biométrico geralmente são:

Dispositivo de medida: possibilita a entrada da característica física ou

(24)

Software de operação: responsável pela comparação entre a característica extraída

pelo dispositivo de medida e a característica tomada como padrão. Geralmente utiliza redes neurais e lógica fuzzy em sua implementação;

2.4.3.1

Reconhecimento de Face

Para reconhecer o rosto de um ser humano, os softwares que implementam esse método mapeiam a geometria e as proporções da face. Para isso levam em conta vários pontos delimitadores que são capazes de definir distância, tamanho e forma de cada elemento de um rosto: orelhas, nariz, olhos, queixo, etc.

Bons softwares de reconhecimento de face disponíveis no mercado podem reconhecer um indivíduo mesmo que ele tenha mudado o corte/cor dos cabelos, tenha deixado bigode/barba ou use, sem exageros, acessórios como chapéus, brincos e óculos. Isso é possível porque o software baseia-se em detalhes fundamentais para o reconhecimento de uma pessoa, da mesma forma que um ser humano reconhece um outro ser humano mesmo que esse último tenha envelhecido levemente ou esteja com maquiagem.

O dispositivo geralmente utilizado para capturar as imagens utilizadas é uma câmera digital acoplada a um computador. A captura de imagens é dividida em duas fases: registro e verificação. Na fase de registro, as imagens capturadas são utilizadas como as imagens padrão para as posteriores comparações. A verificação consiste na comparação das imagens padrão com uma outra capturada no momento que se deseja realizar o reconhecimento de face.

2.5 Controle de Acesso

Neste ponto, é importante fazer uma clara distinção entre a autenticação e o controle de acesso para que não ocorram confusões quanto à função que cada um exerce. Como já foi visto, a autenticação confirma a identidade de um usuário legítimo em um sistema computacional. Já o propósito do controle de acesso é limitar as ações que esse usuário legítimo pode executar [Sandhu and Samarati, 1994], mantendo o nível de visibilidade de acordo com as regras definidas para esse sistema computacional.

(25)

Na teoria encontrada sobre controle de acesso, geralmente existe uma distinção entre os termos política e mecanismo. Uma política define uma norma de alto nível sobre como os

acessos são controlados, enquanto que um mecanismo é um software ou hardware de baixo

nível que implementa tais políticas.

Nesta seção são descritas algumas políticas de controle de acesso e políticas de administração de autorizações. Além disso, para a visualização de como duas das três políticas de controle de acesso são implementadas, é apresentado o modelo conceitual chamado matriz de acesso. Tal modelo é utilizado pela grande maioria dos softwares que

possuem mecanismos de segurança.

2.5.1 Conceitos Básicos

Antes da descrição detalhada dos itens citados acima, faz-se necessário o conhecimento alguns conceitos básicos. São eles: objeto, sujeito, tipo de operação e a definição formal de uma autorização.

2.5.1.1

Objeto

Muitas abstrações foram feitas no decorrer dos anos para se lidar com o controle de acesso, sendo a mais fundamental delas o conceito de objeto. Um objeto representa um recurso ou informação protegida dentro de um sistema computacional. Por exemplo, uma impressora ou uma tupla de uma relação de um banco de dados.

2.5.1.2

Sujeito

Um sujeito representa um usuário legítimo de um sistema computacional ou um programa que está sendo executado em benefício desse usuário. Tal usuário requer acesso aos objetos protegidos do sistema através de requisições. Caso ele tenha a autorização correspondente à requisição, o direito de acesso é garantido. Caso contrário o direito de acesso é revogado.

(26)

assumir o segundo sujeito, evitando assim alterações acidentais que seriam permitidas se o primeiro sujeito estivesse sendo usado.

2.5.1.3

Tipo de Operação

Um sujeito que requer acesso a um objeto deve informar, além do objeto requerido, o tipo de operação a ser executada sobre esse objeto. Esse tipo de operação varia de acordo com o objeto em questão. Se o objeto for um arquivo, por exemplo, os tipos de operação usuais

são leitura, escrita, execução e propriedade. O tipo de operação leitura permite um sujeito

verificar o conteúdo de um arquivo. De maneira análoga, o tipo de operação escrita permite

um sujeito modificar o conteúdo de um arquivo. Executar um arquivo de programa é a função do tipo de operação execução. E, finalmente, o tipo de operação propriedade permite um

sujeito atribuir direitos a um outro sujeito sobre o arquivo. Em contrapartida, se o objeto representa uma conta bancária, os tipos de operações básicos são consultar saldo, crédito e

débito. Essas operações, que possuem um nível de abstração maior, são implementadas pela

aplicação que utiliza esse tipo de objeto.

2.5.1.4

Definição Formal de uma Autorização

As políticas de controle de acesso discretionary e baseada em papéis (subseções 5.2.1 e

5.2.3 deste capítulo) utilizam-se de uma unidade fundamental para determinar se um sujeito tem ou não tem direito de acessar um objeto protegido. Tal unidade chama-se autorização.

De acordo com Bertino [Bertino and Martino, 1993] e Fernandez [Fernandez et al., 1981] [Fernandez et al., 1993], uma autorização é definida formalmente através de uma tripla

<s, t, o> em que:

s S, é a entidade ativa, denominada sujeito, que requer acesso aos objetos;

t T, é a operação executada sobre o objeto, por exemplo, leitura ou escrita;

o O, é o objeto acessado e/ou modificado.

As letras maiúsculas S, T e O representam os domínios aos quais, respectivamente, os

elementos s, t e o pertencem.

Mediante uma requisição de acesso a um objeto por um sujeito, uma função f é definida

(27)

f: S x T x O (Verdadeiro, Falso).

Dada a requisição de um sujeito s para executar a operação t no objeto o,

f(s, t, o) = Verdadeiro se <s, t, o> existir.

2.5.2 Políticas de Controle de Acesso

Os requerimentos de segurança são variáveis no mundo real, mudando de acordo com o problema que se deseja resolver. Devido a isso, diferentes políticas de controle de acesso foram criadas. Abaixo são descritas as três principais.

2.5.2.1

Política

Discretionary

Por ser muito flexível, a política discretionary é ideal para vários sistemas comerciais e

industriais. Nessa política, para que um sujeito tenha acesso a um determinado objeto, é necessária a existência de uma autorização armazenada no sistema que o associe com o objeto desejado. Assim, a partir de uma requisição de acesso, uma busca é realizada para checar se há a autorização correspondente. Caso tal autorização seja encontrada, o direito de acesso é garantido ao sujeito.

Como exemplo, supõe-se que um DBA (Administrador de Banco de Dados) crie duas contas de sujeitos – A1 e A2 – e garanta o privilégio de criar tabelas para o sujeito da conta A1. Para isso, o DBA utiliza a seguinte declaração em SQL:

GRANT CREATETAB TO A1;

Supõe-se agora que o sujeito da conta A1 crie duas tabelas chamadas, respectivamente, de Empregado e Departamento. Sendo agora o proprietário dessas duas tabelas, o sujeito A1 tem todos os privilégios sobre cada uma delas. Ele está habilitado a usar, por exemplo, as seguintes declarações em SQL para garantir ou revogar direitos ao sujeito A2 sobre as tabelas Empregado e Departamento:

1) GRANT INSERT ON EMPREGADO, DEPARTAMENTO TO A2;

2) GRANT SELECT ON DEPARTAMENTO TO A2;

3) REVOKE SELECT ON DEPARTAMENTO TO A2;

(28)

recuperar os registros existentes na tabela Departamento. A última declaração revoga o direito dado anteriormente ao sujeito A2 de recuperar os registros da tabela Departamento.

A principal característica que deve ser notada na política discretionary é que para cada

acesso deve sempre existir uma autorização ligando o sujeito s ao objeto o no tipo de

operação t. Caso ela não exista, o direito de acesso é negado.

2.5.2.2

Política

Mandatory

A política de controle de acesso mandatory baseia-se na classificação de sujeitos e

objetos de um sistema em níveis de segurança. Os níveis de segurança dos objetos refletem o dano em potencial que pode ocorrer caso um sujeito acesse indevidamente um determinado objeto, enquanto que os níveis de segurança dos sujeitos indicam quais objetos um sujeito pode acessar.

A política de controle de acesso discretionary é conhecida como tudo ou nada, ou seja, o

sujeito tem ou não tem o direito de acessar os objetos de acordo com a existência da tripla

(s, t, o), que corresponde a uma autorização. De forma diferente, a política de controle

mandatory, também conhecida como multinível [Baraani-Dastjerdi et al., 1997], não exige o

relacionamento de um sujeito e um objeto através de uma tripla para que o acesso seja concedido. Nessa política são os níveis de classificação do sujeito e do objeto que determinam os direitos de acesso através de alguma(s) regra(s) pré-estabelecida(s). Uma regra comum e geralmente utilizada é permitir que os sujeitos pertencentes a um certo nível de segurança apenas acessem os dados classificados no mesmo nível ou em um nível de segurança inferior.

Os níveis de segurança mais usuais são Top Secret (TS), Secret (S), Confidential (C) e

Unclassified (U), em que TS é o nível mais alto e U o mais baixo. O modelo mais comumente

usado para a segurança multinível é chamado Modelo de Bell-LaPadulla [Elmasri and Navathe, 2000], o qual classifica cada entidade (sujeito, conta, programa, etc.) e objeto (tabela, tupla, coluna, visão, operação, etc.) em uma das classes de segurança (TS, S, C e U).

Em um sistema gerenciador de banco de dados relacional, por exemplo, cada valor de atributo de uma tabela tem o seu nível de segurança. Cada tupla tem como seu nível de segurança (NT) o maior nível de segurança dos valores dos atributos que a compõe.

(29)

SELECT * FROM EMPREGADO;

Exemplo 1 - Se um sujeito com nível de segurança S executa a consulta citada acima sobre a tabela Empregado, mostrada de acordo com os valores da Tabela 2.1, ele teria acesso a todos os dados da tabela. Isso porque os níveis de classificação de segurança de todos os valores dos atributos são menores ou iguais ao nível de segurança do sujeito.

Nome Salário Performance NT

João U 3500 C Suficiente S S

Cléber C 5000 S Ótimo C S

Tabela 2.1 - Tabela de empregados

Exemplo 2 - Se um sujeito com nível de segurança C executa a mesma consulta, ocorre o processo conhecido como filtragem, em que os dados com nível de segurança maior que C são omitidos, surgindo o valor null. Esse processo origina uma nova tabela com os níveis de

segurança dos atributos omitidos e de toda a tupla (NT) alterados para C, de acordo com a Tabela 2.2.

Nome Salário Performance NT

João U 3500 C null C C

Cléber C null C Ótimo C C

Tabela 2.2 - Tabela de empregados após filtragem

2.5.2.3

Política Baseada em Papéis

Um papel é usado para simplificar o gerenciamento de segurança [Lunt, 1995], classificando os sujeitos em diferentes categorias. Ele pode ser visto como um conjunto de ações e responsabilidades que uma determinada categoria possui. Dessa forma, as autorizações são atribuídas para os papéis e não diretamente para os sujeitos. Um sujeito que assume um papel específico obtém indiretamente todos os direitos de acesso pertencentes a esse papel. Geralmente um sujeito pode assumir diferentes papéis em um sistema, dependendo da necessidade da ocasião. Em contrapartida, um papel pode ser assumido por vários sujeitos.

As principais vantagens do uso de papéis são mencionadas abaixo:

Gerenciamento de autorizações: o uso de papéis torna independente o

(30)

relacionamento entre os papéis e os objetos, e a segunda entre os sujeitos e os papéis. Com isso, a realocação das autorizações se dá de uma maneira muito mais simples. Por exemplo, supõe-se que um gerente de um setor de uma empresa recebe uma promoção e tem seu cargo elevado para diretor. Se o sistema não utilizar a política baseada em papéis é necessária a remoção e criação de uma série de autorizações individuais. De modo contrário, a única ação a ser tomada se o sistema utilizar o recurso de papéis é a mudança do papel de gerente para diretor.

Hierarquia de papéis: quando criados, os papéis podem ser organizados em uma

hierarquia de acordo com a capacidade de acesso de cada papel. Ao aplicar-se tal hierarquia no exemplo citado no item anterior, o papel Gerente fica abaixo do papel

Diretor devido o cargo de diretor possuir um poder maior que o cargo de gerente em

uma empresa no mundo real. Se houvesse ainda um papel Empregado, ele estaria

abaixo do papel Gerente. Tal hierarquia pode ser vista de acordo com a Figura 2.3.

Figura 2.3 - Exemplo de uma hierarquia de papéis

A principal utilidade dessa hierarquia é a expansão das autorizações de um papel inferior para um papel superior. Na prática isso significa que o papel Gerente, por

exemplo, pode acessar todos os objetos que o papel Empregado acessa, isto porque o

primeiro está acima do segundo na hierarquia de papéis.

Privilégio mínimo: a utilização de papéis permite a flexibilidade de um sujeito

escolher um papel que seja suficiente para a realização de uma tarefa em particular, desde que esse sujeito possa assumir dois ou mais papéis e que o papel escolhido esteja abaixo do maior papel que ele possa assumir na hierarquia. Tal atitude diminui a chance de erros por negligência ou descuido.

Separação de responsabilidades: algumas ações são, muitas vezes, conflitantes entre

si e não podem ser executadas pelo mesmo sujeito. Por exemplo, um funcionário que é responsável pela distribuição dos salários mensais de uma fábrica não deve ser o

Diretor

Gerente

(31)

mesmo que faz os cheques para tal fim, pois ele pode fraudar o sistema emitindo um cheque com valor superior ao valor correto sem que ninguém saiba. Evitar tais quadros individualmente torna-se uma tarefa onerosa e cansativa. O uso de papéis simplifica esse procedimento, em que cada tarefa conflitante é atribuída a um papel e fica proibido pelo sistema um mesmo sujeito assumir dois papéis conflitantes.

2.5.3 Matriz de Acesso

A matriz de acesso é um modelo conceitual que especifica os direitos que cada sujeito possui sobre cada objeto [Sandhu and Samarati, 1994]. Considerando um conjunto de sujeitos

S, um conjunto de objetos O e uma matriz de acesso M que tem uma linha para cada elemento

do conjunto S e uma coluna para cada elemento do conjunto O, uma célula M[s, o] contém os

tipos de operação que o sujeito s pode exercer sobre o objeto o [McLean, 1994]. A Tabela 2.3

exemplifica o conceito de matriz de acesso.

Arquivo 1 Arquivo 2 Arquivo 3 Conta 1 Conta 2

João

propriedade escrita leitura

propriedade escrita leitura

c. saldo crédito

Maria leitura

propriedade escrita

leitura

Escrita c. saldo

débito

c. saldo crédito

José escrita

leitura leitura

c. saldo débito

Tabela 2.3 - Exemplo de uma matriz de acesso

De acordo com a tabela anterior, a primeira coluna indica que João, Maria e José são

sujeitos do sistema. Da mesma forma, a primeira linha indique que Arquivo 1, Arquivo 2,

Arquivo 3, Conta1 e Conta 2 são objetos do sistema. Essa matriz especifica que, por exemplo,

o sujeito João possui os tipos de operação propriedade, escrita e leitura sobre o objeto

Arquivo 1, enquanto que o sujeito Maria possui apenas o tipo de operação leitura.

Embora os tipos de operação consultar saldo, débito e crédito sejam mais abstratos, em

suas execuções eles são desmembrados nos tipos de operação leitura e escrita. A questão

envolvida é que um sujeito não pode executar os tipos de operação leitura e escrita

diretamente sobre um objeto conta bancária. Por exemplo, quando o sujeito José executar o

tipo de operação débito sobre o objeto Conta 2, na realidade o que ocorre é uma leitura do

valor atual do saldo, a sua modificação e, finalmente, uma escrita para a atualização do valor

(32)

2.5.3.1

Abordagens de Implementação

Embora conceitualmente a matriz de acesso especifique e organize as informações de maneira não ambígua, sua implementação raramente é idealizada na forma de uma matriz. Isso porque em um sistema computacional de grande porte a tendência é que a matriz tenha um tamanho enorme e, o que é mais grave, inúmeras das células estariam vazias. Para evitar a ocorrência de tais problemas, são discutidas a seguir algumas abordagens de implementação do modelo conceitual da matriz de acesso.

Lista de Controle de Acesso

Através das listas de controle de acesso (ACLs) [Ryutov and Neuman, 2000]

[Sandhu and Samarati, 1994] é possível recuperar eficientemente os sujeitos que acessam um determinado objeto. Isso porque cada objeto possui uma lista anexada a ele que informa quais são os sujeitos e os tipos de operações que esses sujeitos podem executar sobre tal objeto. Essa abordagem corresponde ao armazenamento da matriz pelas colunas. A ACL equivalente a uma parte da Tabela 2.3 é mostrada na Figura 2.4 a seguir.

Figura 2.4 - Um exemplo de ACL

Uma desvantagem do uso das ACLs é recuperar todos os objetos que um sujeito pode acessar. Para tal tarefa seria necessário analisar a ACL de cada objeto do sistema e verificar se esse sujeito está incluso ou não. Esse problema se repete no caso da necessidade de se excluir todos os direitos de acesso de um sujeito aos objetos. Novamente seria necessário analisar a ACL de cada objeto e excluir os nós correspondentes a tal sujeito. Ambas as operações criam uma sobrecarga de processamento no sistema.

Capacidade

Uma capacidade [Gong, 1989] [Sandhu and Samarati, 1994] é um direito que um

sujeito tem de executar um tipo de operação sobre um determinado objeto. Essa é uma abordagem de implementação da matriz de acesso muito semelhante às ACLs, tendo como diferença o armazenamento da matriz pelas linhas. Nela cada sujeito é associado a uma lista de capacidade que especifica quais objetos e tipos de operações sobre esses objetos ele tem

Arquivo 1 João

propriedade escrita leitura

Maria

leitura

José

(33)

direito. A Figura 2.5 mostra uma parte da Tabela 2.3 através da utilização de uma lista de capacidade.

Figura 2.5 - Um exemplo de lista de capacidade

Os problemas gerados pelo uso das listas de capacidade são, de forma análoga as ACLs, a recuperação de todos os sujeitos que tem direito de acesso a um determinado objeto e a exclusão dos direitos de acesso para um objeto de todos os sujeitos do sistema computacional.

Para obter um controle de segurança mais refinado é possível combinar ACLs e Capacidades. Por exemplo, após a autenticação de um sujeito em um sistema distribuído, ele recebe suas capacidades e as apresenta aos servidores para obter os serviços dos objetos que eles disponibilizam. Da mesma forma, os servidores mantêm ACLs para confirmar os direitos de acesso desse sujeito.

Relações de Autorização

A utilização de uma das duas abordagens anteriores ocasiona em ganho ou perda de desempenho, dependendo da informação que se deseja buscar. A implementação da matriz de acesso através de relações de autorização não ocasiona tais inconveniências. Cada linha da relação estabelece um tipo de operação que um sujeito pode executar sobre um objeto. A relação de autorização da Tabela 2.4 a seguir representa a matriz de acesso da Tabela 2.3.

Sujeito Objeto Tipo de Operação

João Arquivo 1 propriedade

João Arquivo 1 escrita

João Arquivo 1 leitura

João Arquivo 3 propriedade

João Arquivo 3 escrita

João Arquivo 3 leitura

João Conta 1 c. saldo

João Conta 1 débito

Maria Arquivo 1 leitura

Maria Arquivo 2 propriedade

Maria Arquivo 2 escrita

Maria Arquivo 2 leitura

Maria Arquivo3 escrita

João Arquivo 1

propriedade escrita

leitura

Arquivo 3

propriedade escrita

leitura

Conta 1

(34)

Maria Conta 1 c. saldo

Maria Conta 1 débito

Maria Conta 2 c. saldo

Maria Conta 2 crédito

José Arquivo 1 escrita

José Arquivo 1 leitura

José Arquivo 2 leitura

José Conta 1 c. saldo

José Conta 1 débito

Tabela 2.4 - Exemplo de uma relação de autorização

Nessa abordagem, se a tabela é ordenada pelo sujeito, consegue-se o efeito do uso da Capacidade. No caso da tabela ser ordenada pelo objeto obtém-se o efeito do uso da ACL.

2.5.4 Políticas Administrativas

Todo modelo de autorização deve incluir políticas administrativas que controlam a especificação das autorizações [Bertino et al, 1999], ou seja, elas determinam a quem é permitido agir sobre os direitos de acesso dos sujeitos e de que forma. Assim, um usuário ou um conjunto de usuários, geralmente conhecidos como administradores, são habilitados a garantir, alterar e revogar autorizações.

Na política de controle de acesso mandatory, os níveis de segurança dos sujeitos são

designados pelo administrador, enquanto que os dos objetos são atribuídos pelos sujeitos que os criam. Na maioria das vezes, o único indivíduo autorizado a modificar os níveis de segurança tanto de sujeitos quanto de objetos nessa política é o administrador.

A política de controle de acesso discretionary permite algumas possibilidades de

políticas administrativas em que, dependendo da situação, uma é mais apropriada que a outra. São elas:

Centralizada: apenas um único administrador (ou grupo) é responsável pelo

gerenciamento das autorizações.

Hierárquica: um administrador central é encarregado de atribuir responsabilidades

(35)

Cooperativa: um determinado número de administradores é necessário para que se

possa autorizar cooperativamente um sujeito a acessar um objeto de conteúdo muito valioso ou secreto.

Proprietária: um determinado objeto pode ser acessado por diversos sujeitos desde

que o seu sujeito criador assim o permita; nessa política cada sujeito é visto como administrador de seus próprios objetos.

Descentralizada: um proprietário pode atribuir direitos administrativos a outros

sujeitos sobre os objetos que lhe pertence.

A política de controle de acesso baseada em papéis possui políticas administrativas muito similares às apresentadas acima, sendo desnecessário apresentá-las.

2.5.5 Outros Conceitos Importantes

Nesta subseção são apresentados os conceitos de autorização implícita, autorização forte/fraca e autorização positiva/negativa. Além disso, é mostrado como as autorizações implícitas são deduzidas dos três domínios de uma autorização.

2.5.5.1

Autorizações Explícitas/Implícitas

Armazenar todas as autorizações em que à função f retorna verdadeiro tornaria o

mecanismo de segurança ineficiente em termos de espaço de armazenamento. As autorizações implícitas são utilizadas para resolver esse problema, diminuindo o número de autorizações explícitas. Uma autorização explícita existe fisicamente, sendo armazenada em um dispositivo de memória secundário. Já uma autorização implícita é deduzida de uma autorização explícita, existindo somente em tempo de execução. Segundo Bertino [Bertino and Martino, 1993] e Rabitti [Rabitti et al., 1991], os domínios de uma autorização permitem o surgimento das seguintes regras de derivação:

• Um gerente acessa todas as informações que seus empregados podem acessar; as autorizações podem derivar de acordo com o domínio de S (sujeitos).

• Um sujeito autorizado a modificar um objeto também pode ler esse mesmo objeto; as autorizações podem derivar de acordo com o domínio de T (tipos de operação).

(36)

Figura 2.6 - Autorização implícita

De acordo com a Figura 2.6, a existência da autorização <Professor, Escrita,

Pesquisa > permite que o sujeito Professor tenha direito de alterar todos os objetos da classe

Pesquisa. Implicitamente ele tem o mesmo direito sobre as classes agregadas à classe

Pesquisa e seus objetos, ou seja, as classes Pesquisador, Documento e Projeto com suas

respectivas instâncias.

2.5.5.2

Autorizações Positivas/Negativas e Fracas/Fortes

Ao se dar uma autorização explícita para um sujeito sobre um objeto, às vezes, deseja-se também que ele não acesse alguns dos objetos componentes do objeto autorizado, ou seja, pretende-se suprimir algumas das autorizações implícitas. Para resolver esse problema foi criado o mecanismo de autorização positiva/negativa e fraca/forte.

Uma autorização forte não admite exceções para suas autorizações implícitas, enquanto que uma autorização fraca admite, sendo essas exceções expressas na forma de autorizações positivas ou negativas.

Uma autorização é positiva por padrão. Caso haja necessidade, pode-se declarar autorizações negativas. As autorizações negativas são úteis para neutralizar as autorizações implícitas vindas de uma autorização fraca positiva explícita atribuída a uma classe ou objeto.

Documento[1]

Universidade

Alunos Administração

Pesquisa

Projeto Documento

Pesquisador

Documento[100]

Documento[2] Projeto[10]

Autorização Explícita

(37)

Com o uso combinado da autorização positiva e negativa/forte e fraca, o mecanismo de segurança alcança um nível muito maior de flexibilidade.

Figura 2.7 - Autorização positiva/negativa e forte/fraca

A Figura 2.7 ilustra o mesmo exemplo dado anteriormente, mas com algumas restrições. Considere que os símbolos para se representar autorizações fortes e fracas são, respectivamente, () e [], e para se representar autorizações positivas e negativas são os sinais

+ e – no tipo de operação da autorização. A autorização fraca positiva

[Professor, +Escrita, Pesquisa], atribui o direito ao sujeito Professor de poder alterar os

objetos da classe Pesquisa e, implicitamente, todos os objetos de suas classes agregadas. Com

a inserção da autorização forte negativa (Professor, -Leitura, Pesquisador) e da autorização

fraca negativa [Professor, -Escrita, Projeto], o sujeito Professor é impedido de ler qualquer

objeto da classe Pesquisador e de escrever em qualquer objeto da classe Projeto. A diferença

entre ambas é que na primeira não é possível qualquer tipo de exceção nas classes de nível inferior diretamente ligadas à classe que aparece na autorização, ou seja, não é permitida a inserção de autorizações positivas abaixo da classe Pesquisador para o sujeito Professor. Na

segunda são permitidos tais tipos de exceções.

Universidade

Aluno Administração

Pesquisa

Projeto Documento

Pesquisador

Documento[100]

Documento[2] Projeto[10]

Autorização Fraca Explícita (escrita, positiva) Autorização Fraca Implícita (escrita, positiva)

Documento[1]

Autorização Forte Explícita (leitura, negativa)

Autorização Fraca Explícita (escrita, negativa)

(38)

2.5.5.3

Regras de Derivação

Na subseção 2.5.5.1 deste capítulo, as regras de derivação definidas sobre os domínios

S, T e O de uma autorização explícita foram vistas sucintamente. As subseções seguintes

descrevem com maiores detalhes cada um desses domínios em relação à derivação.

Domínio de Sujeitos

Em relação ao domínio S, usualmente os sujeitos são agrupados de forma a pertencerem

a um ou mais papéis. Através de uma hierarquia formada por esses papéis é possível encontrar as autorizações implícitas desse domínio. Para a notação gráfica dessa hierarquia é usado um grafo de papéis, de acordo com a Figura 2.8.

Administrador

Gerente Administrativo Gerente Financeiro Gerente Comercial

Empregado

Figura 2.8 - Grafo de papéis

Se o papel Gerente Financeiro tem o direito t sobre o objeto o, então o papel

Administrador tem o mesmo direito. Isso porque Administrador é um ancestral de Gerente

Financeiro dentro do grafo de papéis. Na forma de autorização tem-se que

<Gerente Financeiro, +t, o> <Administrador, +t, o>. Conseqüentemente, se houver uma

autorização negativa para o papel Administrador sobre o objeto o com o direito t, tem-se que

nenhum papel abaixo dele na hierarquia de papéis tem o direito t sobre o objeto o. Como

autorizações tem-se que <Administrador, -t, o> <Gerente Administrativo, -t, o>,

<Gerente Financeiro, -t, o>, <Gerente Comercial, -t, o>, <Empregado, -t, o>. Observe que

(39)

C

E

L

Domínio de Tipos de Operação

Em relação ao domínio T, têm-se as mesmas considerações e características do domínio

S. Um grafo de tipos de operação também é definido, de acordo com a Figura 2.9.

Figura 2.9 - Grafo de tipos de operação

Com o uso das operações de leitura (L), escrita (E) e criação (C) pode-se definir que se

um sujeito possuir um desses tipos de operação sobre um objeto, ele também tem direito a todos os tipos de operação de níveis inferiores do grafo apresentado. Para as autorizações com o tipo de operação negativa, o sujeito não tem direito a nenhuma operação acima do nível da operação em que o direito lhe foi negado. Por exemplo, a implicação [Professor, -L,

Projeto] [Professor, -E, Projeto] é óbvia, pois se um sujeito não tem direito de ler um

objeto, também não tem o direito de escrever nesse objeto.

Domínio de Objetos

Para se explicar a derivação no domínio de objetos, utiliza-se nesta subseção um dos esquemas propostos para sistemas gerenciadores de banco de dados orientados a objetos.

Devido ao fato de um banco de dados conter um grande número de objetos, a derivação em relação ao domínio O torna-se particularmente atraente. Os conceitos AOS (Esquema de

Autorização de Objetos) e AOL (Grafo de Autorização de Objetos) são utilizados para a

definição das regras de derivação. Enquanto o AOS é o esquema da autorização sobre objetos,

o AOL é uma instanciação do AOS em um banco de dados específico.

O conceito AOS define a estrutura de como as autorizações serão propagadas em relação

ao domínio de objetos. A Figura 2.10 apresenta o AOS definido para o gerenciador Orion

(40)

Figura 2.10 - Esquema de autorização de objetos

Figura 2.11 - AOL (instanciação do AOS)

No esquema da Figura 2.10, se um sujeito tem direito de acessar o item sistema, ele tem

o mesmo direito sobre todos os níveis inferiores ao nível do item sistema. Sistema[Universidade]

BD[Alunos] BD[Administração]

BD[Pesquisa]

Classe[Projeto] Classe[Documento]

Classe[Pesquisador]

…Documento[100] Documento[2]

Documento[1]

Conjunto de Instâncias[Documento]

Conjunto de Valores de Atributos [Documento[2]]

Valor de Atributo[Documento[2].Título] Valor de Atributo[Documento[2].Texto]

Sistema

Banco de Dados

Classe

Conjunto de Instâncias

Instância

Conjunto de Valores de Atributos

(41)

Uma instanciação do esquema citado pode ser vista na Figura 2.11. Nota-se que essa figura é uma variação do esquema da Figura 2.6 e Figura 2.7, isso porque ela define realmente em que item da hierarquia o sujeito tem uma autorização. Por exemplo, uma autorização na forma <Professor, +L, Classe[Documento]> permite ao sujeito Professor a leitura da

definição da classe Documento e de suas instâncias, enquanto que uma autorização do tipo

<Professor, +L, Conjunto de Instâncias[Documento]> permite apenas a leitura de suas

instâncias.

2.6 Técnicas Utilizadas na Arquitetura de Segurança

Todo o material sobre as técnicas de segurança que originaram este capítulo foi cuidadosamente analisado durante o desenvolvimento desse trabalho de mestrado para que fosse possível elaborar uma arquitetura de segurança para ambientes de EaD com um bom nível de confiabilidade, com um alto nível de flexibilidade e de baixo custo de implementação.

Dessa forma, para a autenticação de usuários são usados os conceitos de autenticação por conhecimento, mais especificamente senhas e perguntas randômicas codificadas através de chaves de criptografia. A escolha dessas técnicas para a autenticação deve-se principalmente ao bom nível de segurança que elas oferecem juntas e do baixo custo de implementação, já que nenhum hardware adicional é necessário.

Já para a elaboração do mecanismo de controle de acesso são usados os conceitos de autorização individual/coletiva, autorização positiva/negativa e autorização explícita/implícita. A combinação dessas técnicas na arquitetura de segurança fornece um alto grau de flexibilidade na administração das autorizações.

2.7 Considerações Finais

Neste capítulo foram apresentados os métodos de ataque a sistemas computacionais, as propriedades de segurança e uma descrição detalhada sobre autenticação e controle de acesso. Na seção de autenticação, além da base conceitual sobre o assunto, tópicos como criptografia, assinatura digital e certificação foram descritos. Já na seção de controle de acesso foi realizada uma revisão sobre as políticas de segurança discretionary e mandatory, além da

(42)

Capítulo 3

Educação a Distância

3.1 Considerações Iniciais

A educação a distância (EaD) vem sendo intensivamente estudada nas últimas décadas devido principalmente à necessidade da educação continuada imposta pelo mercado de trabalho e aos avanços tecnológicos que possibilitaram uma revolução nos recursos utilizados para o processo de ensino/aprendizagem. Alguns dos principais componentes relacionados ao ensino, como escolas, universidades, professores e alunos, vêm tendo sensíveis mudanças em relação ao desempenho de suas funções diante desse paradigma.

A seção 3.2 mostra a definição de EaD comumente encontrada na literatura. Na seção 3.3 um breve histórico sobre o surgimento e evolução da EaD é apresentado. A seção 3.4 aborda os principais objetivos da utilização da EaD. A seção 3.5 demonstra alguns dos principais ambientes de EaD disponíveis no mercado e suas características em relação aos seus mecanismos de autenticação e de autorização. Na seção 3.6 é mostrada a avaliação desses mesmos mecanismos. E, finalmente, na seção 3.7 são realizadas as considerações finais deste capítulo.

3.2 Definição

Em seu sentido mais fundamental, EaD significa a separação física e/ou temporal entre o professor e o aluno [Gonçalves, 1996]. Para que ela seja caracterizada é necessária a presença de alguns elementos [Sá, 2000], sendo eles:

• Separação do professor e do aluno no espaço e/ou tempo;

• O controle da aprendizagem é realizado mais intensamente pelo aluno do que pelo professor;

• A interação entre professores e alunos é mediada por alguma forma de tecnologia.

Imagem

Figura 2.1 - Criação de uma assinatura digital
Tabela 2.1 - Tabela  de empregados
Tabela 2.3 - Exemplo de uma matriz de acesso
Figura 2.6 - Autorização implícita
+7

Referências

Documentos relacionados

dois gestores, pelo fato deles serem os mais indicados para avaliarem administrativamente a articulação entre o ensino médio e a educação profissional, bem como a estruturação

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

Estudar o efeito da plastificação do ATp com glicerol nas características físico-químicas da blenda PLA/ATp; Analisar a mudança na cristalinidade dos laminados submetidos a

O termo extrusão do núcleo pulposo aguda e não compressiva (Enpanc) é usado aqui, pois descreve as principais características da doença e ajuda a

Fita 1 Lado A - O entrevistado faz um resumo sobre o histórico da relação entre sua família e a região na qual está localizada a Fazenda Santo Inácio; diz que a Fazenda

Apesar dos esforços para reduzir os níveis de emissão de poluentes ao longo das últimas décadas na região da cidade de Cubatão, as concentrações dos poluentes

Identificar a língua espanhola como instrumento de acesso a informações, a outras culturas e grupos sociais com foco na área de Recursos Humanos.. Aplicar

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários