EN-3611 Segurança de Redes Autenticação e Controle de Acesso Prof. João Henrique Kleinschmidt Santo André, outubro de 2012 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 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 4 Algoritmo do Password Cracker Obter um arquivo de senhas do sistema Pegar a password criptografada PS do usuário U Criar password “chute” P Criptografar P e obter PC Não PC=PS ? Sim PS quebrada! senha do usuário U é P 5 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, … 6 Quebra de Passwords locais Sotfware Cain: Varre disco do Windows e pega senhas armazenadas senhas de compartilhamento, screensaver, browser, conexão provedor Sabe onde windows guarda as coisas Leva alguns segundos... Tela do Cain v1.51 (www.confine.com) 8 Tokens USB tokens No cinto Pendurado Radio Frequency tokens No Bolso 9 Como chaveiro Smart Card, RF, Proximidade 6 Kb memory, 106Kbps Chip de contato (128KB) Antena Chip Transmissor/ Receptor USB SmartCard Reader 10 Proximity Reader + Fingerprint Verification 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 Reconhecimento de Digital 13 Reconhecimento da Geometria da Mão 14 Reconhecimento da Escrita 15 Reconhecimento Facial 16 Reconhecimento de Voz Padrão obtido Padrão armazenado 17 Reconhecimento da Íris & Retina 18 Reconhecimento da Retina Authentication Server 19 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, preservandoos í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). Exercícios 1 – Fazer uma lista de controle de acesso (ACL): Sujeitos: Alice, Bob, Carol, Davi e Eva. Objetos: Arquivo1 (de Alice), Arquivo2 (de Bob), Arquivo3 (de uso geral), Arquivo4 (uso restrito), Programa1 (de Carol), Programa2 (de uso geral). 2 – Repetir o exercício 1, fazendo uma matriz de controle de acesso. 3 – Repetir o exercício 1, usando políticas baseadas em papéis (considere um cenário como uma escola, hospital, etc).