segurança de redesprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/seg2016-temp/auten... · p e...

35
EN-3611 Segurança de Redes Autenticação e Controle de Acesso Prof. João Henrique Kleinschmidt Santo André, julho de 2016

Upload: trinhphuc

Post on 11-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

EN-3611

Segurança de Redes

Autenticação e Controle de Acesso

Prof. João Henrique Kleinschmidt

Santo André, julho de 2016

Controle de Acesso

• O acesso a serviços e programas tem que ser controlados.

• Acesso – habilidade de realizar algo com recursos computacionais

• Autorização – permissão dada pelo sistema ou pelo dono do recurso para utilização do mesmo

• O controle de acesso lógico cuida do acesso aos diversos níveis existentes.

• Ex: Permissão para enviar e-mails, controle de licença de software, tempo de transação, direitos de leitura, gravação, criação, remoção e execução de arquivos.

Autenticação de Usuários

• Autenticação com base no que o usuário sabe – Senhas

• Autenticação com base no que o usuário tem – Dispositivos de memória (memory tokens). Ex: cartão bancário

– Dispositivos inteligentes (smart tokens). Ex: smart card

• Autenticação com base nas características do usuário – Biometria

4

Senhas

• Ponto de vista do Invasor – Precisa de um login para escalar privilégios – tentam

adivinhar senhas “fracas”

– Roubam arquivos de senhas em sistemas fracos e tentam as senhas dos mesmos usuários em outros sistemas

• Usuários usam senhas iguais em sistemas diferentes

• Algumas senhas usadas durante anos, alternadamente

• Sua senha do login = senha de banco ?

• Ponto de vista do Administrador – Precisam saber se as senhas dos usuários são “fracas”

– Como? Tentando quebrar!

– Avisando usuários de senha fraca para trocá-las

– Administrador não precisa ver a senha

5

Algoritmo do Password Cracker Obter um

arquivo de senhas

do sistema

Criar password

“chute” P

Criptografar

P e obter PC

PS quebrada!

senha do

usuário U é P

PC=PS

?

Não

Sim

Pegar a password

criptografada PS

do usuário U

6

Tipos de “chute”

• Baseado em dicionários

– Todas as palavras do dicionário + Gírias + palavrões …

• Dicionário combinado

– Chutes com prefixo e sufixo

– Exemplo: login ana, chutes: 1ana, 123ana, ana1, ana123,

• “Força bruta”

– Tenta todas as possíveis combinações de caracteres

– a-z, A-Z, 0-9, !@#$%^&*()_+=-~?<>”’:;][{}\|

– Tempo de quebra depende o tamanho da senha

– Conclusão: senhas maiores são mais difíceis de advinhar

• Salvo se for: aaaaaaaaaaaa, 111111111111, …

8

Tokens

Radio Frequency tokens USB tokens

No cinto Pendurado No Bolso Como chaveiro

9

Smart Card, RF, Proximidade

USB SmartCard Reader Proximity Reader +

Fingerprint Verification

6 Kb memory, 106Kbps

Chip de contato

(128KB)

Antena

Chip Transmissor/

Receptor

Biometria

Típico sistema biométrico

Biometria • Impressão digital

• Retina/Íris do olho

• Características faciais

• Reconhecimento de voz

• Geometria e veias das mãos

• Padrão de escrita

• Poros da pele

• Análise de DNA

• Formato da orelha

• Composição química do odor corporal

• Emissões térmicas

• Geometria dos dedos

• Identificação da unha

• Maneira de andar

12

Reconhecimento de Digital

13

Reconhecimento da Geometria da Mão

14

Reconhecimento da Escrita

15

Reconhecimento Facial

16

Reconhecimento de Voz

Padrão armazenado

Padrão obtido

17

Reconhecimento da Íris & Retina

18

Reconhecimento da Retina

Authentication Server

Uso do Kinect para Biometria

Biometria

• Nível de intrusão: usuários podem não se sentir à vontade com o processo de autenticação e considerá-lo uma invasão de privacidade.

• Nível de esforço: esse fator considera o tempo e o esforço requerido para efetuar a autenticação.

• Nível de precisão: o nível de rejeições e de “falsos positivos” deve ser considerado.

• Custo: fator que deve ser considerado para cada situação.

Single Sign-On

• Os usuários passam a acessar diversas aplicações e recursos, resultando em um grande número de senhas. Isto influencia diretamente na segurança e produtividade.

• O Single Sign-On (SSO) surgiu como um método de identificação e autorização que permite uma administração consistente, de maneira que os usuários podem acessar vários sistemas diferentes, de um modo transparente e unificado, por meio de uma única autenticação.

• Por sua vez, o SSO traz suas próprias implicações de segurança, pois com uma única senha (ou outro método de autenticação) o usuário pode acessar vários sistemas. Se a senha for comprometida, todos os sistemas podem sofrer com isso.

• Ex: Kerberos, Infraestrutura de chaves públicas (ICP)

Kerberos

Visão geral do Kerberos

Kerberos

• O sistema de autenticação Kerberos foi proposto pelo MIT nos anos 80. Hoje, esse sistema é utilizado para centralizar a autenticação de rede em vários sistemas operacionais, como Windows, Solaris, MacOS X e Linux.

• Os principais componentes de um sistema Kerberos são o Serviço de Autenticação (AS - Authentication Service), o Serviço de Concessão de Tickets (TGS - Ticket Granting Service), a base de chaves, os clientes e os serviços de rede que os clientes podem acessar. Juntos, o AS e o TGS constituem o Centro de Distribuição de Chaves (KDC – Key Distribution Center).

O funcionamento básico do sistema Kerberos é relativamente simples: o cliente se autentica junto ao AS (passo 1) e obtém um ticket de acesso ao serviço de tickets TGS (passo 2). A seguir, solicita ao TGS um ticket de acesso ao servidor desejado (passos 3 e 4). Com esse novo ticket, ele pode se autenticar junto ao servidor desejado e solicitar serviços (passos 5 e 6).

Controle de Acesso

• Em um sistema computacional, o controle de acesso consiste em mediar cada solicitação de acesso de um usuário autenticado a um recurso ou dado mantido pelo sistema, para determinar se aquela solicitação deve ser autorizada ou negada.

• Praticamente todos os recursos de um sistema operacional típico estão submetidos a um controle de acesso, como arquivos, áreas de memória, semáforos, portas de rede, dispositivos de entrada/saída, etc.

• Em controle de acesso, é habitual classificar as entidades de um sistema em dois grupos: os sujeitos e os objetos:

– Sujeitos são todas aquelas entidades que exercem um papel ativo no sistema, como processos, threads ou transações. Normalmente um sujeito opera em nome de um usuário, que pode ser um ser humano ou outro sistema computacional externo.

– Objetos são as entidades passivas utilizadas pelos sujeitos, como arquivos, áreas de memória ou registros em um banco de dados.

Políticas, mecanismos e modelos de controle de acesso

• Uma política de controle de acesso é uma visão abstrata das possibilidades de acesso a recursos (objetos) pelos usuários (sujeitos) de um sistema. Essa política consiste basicamente de um conjunto de regras definindo os acessos possíveis aos recursos do sistema e eventuais condições necessárias para permitir cada acesso.

• As regras ou definições individuais de uma política são denominadas autorizações. Uma política de controle de acesso pode ter autorizações baseadas em identidades (como sujeitos e objetos) ou em outros atributos (como idade, sexo, tipo, preço, etc); as autorizações podem ser individuais (a sujeitos) ou coletivas (a grupos); também podem existir autorizações positivas (permitindo o acesso) ou negativas (negando o acesso); por fim, uma política pode ter autorizações dependentes de condições externas (como o tempo ou a carga do sistema).

Políticas discricionárias

• As políticas discricionárias (DAC - Discretionary Access Control) se baseiam na atribuição de permissões de forma individualizada, ou seja, pode-se claramente conceder (ou negar) a um sujeito específico a permissão de executar a ação sobre um objeto específico.

• Matriz de controle de acesso

• Tabela de autorizações

• Listas de controle de acesso (ACL – Access Control List)

• Lista de capacidades

Matriz de Controle de Acesso

Tabela de Autorizações

Muito usada em sistemas

gerenciadores de banco

de dados

Listas de Controle de Acesso

Muito usada em sistemas operacionais

Lista de Capacidades

Políticas obrigatórias

• Nas políticas obrigatórias o controle de acesso é definido por regras globais incontornáveis, que não dependem das identidades dos sujeitos e objetos nem da vontade de seus proprietários ou mesmo do administrador do sistema.

• Exemplos: – Cheques com valor acima de R$ 5.000,00 devem ser necessariamente depositados

e não podem ser descontados;

– Clientes com renda mensal acima de R$3.000,00 não têm acesso ao crédito consignado.

• Uma das formas mais usuais de política obrigatória são as políticas multi-nível (MLS -Multi-Level Security), que se baseiam na classificação de sujeitos e objetos do sistema em níveis de segurança e na definição de regras usando esses níveis.

Modelo de Bell-LaPadula

• Um modelo de controle de acesso que permite formalizar políticas multi-nível é o de Bell-LaPadula, usado para garantir a confidencialidade das informações. Consiste basicamente de duas regras:

• No-Read-Up (“não ler acima”): impede que um sujeito leia objetos que se encontrem em níveis de segurança acima do seu.

• No-Write-Down (“não escrever abaixo”): impede que um sujeito escreva em objetos abaixo de seu nível de segurança, para evitar o “vazamento” de informações dos níveis superiores para os inferiores.

Modelo de Biba

• Para garantir a integridade das informações, um modelo dual ao de Bell-LaPadula foi proposto por Biba.

• No-Write-Up (“não escrever acima”): impede que um sujeito escreva em objetos acima de seu nível de integridade, preservando-os íntegros.

• No-Read-Down (“não ler abaixo”): impede que um sujeito leia objetos em níveis de integridade abaixo do seu, para não correr o risco de ler informação duvidosa.

Políticas baseadas em papéis • Uma política RBAC (Role-Based Access Control) define um conjunto

de papéis no sistema, como diretor, gerente, suporte, etc. e atribui a cada papel um conjunto de autorizações.

Infraestrutura de controle de acesso

• Deve ser ao mesmo tempo inviolável (impossível de adulterar ou enganar) e incontornável (todos os acessos aos recursos do sistema devem passar por ela).