Universidade Federal de São Carlos Programa de Pós-Graduação Tópicos em Sistemas Distribuídos e redes: Privacidade e Personalização Acesso a Sistema Anônimo com Controle de Acesso Baseado em Credenciais Aluno: Thiago de Medeiros Gualberto Professor: Sérgio Donizetti Zorzo Agenda Introdução Modelos de Controle de Acesso Conceitos Básicos Discricionário Obrigatório Simple Distributed Security Infrastructure – SDSI Simple Public Key Infrastructure – SPKI SPKI/SDSI Name cert Auth cert Delegação de direitos x LCA’s Revogação de Direito Aplicação Conclusão Referências Introdução A popularidade das tecnologias de redes sem fio, aliado à evolução dos computadores e o crescente número de dispositivos fixos e portáteis pertencentes a um usuário, os quais compartilham recursos entre si, introduziram novos conceitos e geraram novos desafios na área de redes e segurança da informação; Em um sistema baseado em senhas, o usuário é cadastrado juntamente com o registro de uma senha. O cadastro do usuário e senha estabelece a relação inicial de confiança entre o sistema e o usuário. O mesmo ocorre em sistemas baseado em certificados, quando um certificado é emitido para um usuário uma relação de confiança é estabelecida e o parâmetro de autenticação é definido; Introdução Muitos conceitos de segurança já foram estudados e aplicados em sistemas, como os modelos controle de acesso obrigatório (MAC), discricionário (DAC), baseado em papéis (RBAC), assim como outros modelos de controle de acesso. Conceitos como SSL e certificados digitais também passaram a ser muito utilizados principalmente para garantir a confidencialidade, integridade e autenticidade das informações. Mesmo assim, a aplicação destes conceitos nem sempre impede que usuários do sistema efetuem procedimentos abusivos ou até impróprios, caso não existam políticas de segurança específicas para este fim. Introdução O processo de identificação em sistemas computacionais consiste de um conjunto de procedimentos e mecanismos que permitem que agentes externos (usuários, dispositivos, etc) sejam identificados como principais autorizados segundo as políticas de segurança adotadas no sistema; Autenticação e Autorização; Tarefa complexa; Serviços de nomes, comunicação, etc.. Segundo Neuman (1994), um sistema é dito escalável se ele puder tratar a adição de usuário e recursos sem sofrer uma perda notável de desempenho; Modelos de Controle de Acesso Conceitos Básicos Autenticação, Confidencialidade, Controle de Acesso, Disponibilidade, Integridade; Limitar as ações ou operações que um usuário legítimo de um sistema de computação pode desempenhar baseado em autorizações verificadas no momento do acesso (SANDHU, 1994); Não pode ser visto com um serviço isolado, pois ele interage com os outros serviços para prover segurança; Atua sobre confidencialidade quando permite que dados sigilosos sejam acessíveis apenas a usuários autorizados. Protege a integridade dos dados quando não permite a sua alteração não autorizada. Modelos de Controle de Acesso Conceitos Básicos Autenticação: Processo de identificação seguido de uma verificação de identidade; Segundo JOSHI (2001) exerce uma função primordial no controle de acesso; Identidade do requisitante pode ser garantida; Necessária para aplicação correta das regras de autorização. Modelos de Controle de Acesso Conceitos Básicos Autorização: Verificação da existência de uma permissão, ou ausência de uma restrição, para um requisitante atuar sobre um objeto do sistema; Conceder ou não o acesso para um requisitante; Regra de autorização incorretamente inserida pode acarretar sérios danos ao sistema de segurança: • Permitindo acesso não autorizado; • Impedindo o acesso por uma entidade legítima. A administração das autorizações deve ser conduzida sobre o requisito rígidos de segurança. Modelos de Controle de Acesso Conceitos Básicos Auditoria: Processo através do qual é possível rastrear uma ação no sistema; Requer o registro (logging) de todas as requisições e atividades realizadas para sua futura análise; Segundo Sandhu (1994), controle de auditoria pode ser útil tanto para inibir a violação da segurança por entidades legítmas quanto para analisar o comportamento das entidades e descobrir possíveis violações; Auxiliar na determinação de possíveis falhas no sistema de segurança. Modelos de Controle de Acesso Conceitos Básicos Componentes envolvidos no controle de acesso: Veturini, 2006. Modelos de Controle de Acesso Modelo Discricionário (DAC) Devido a sua flexibilidade é um dos modelos mais utilizados; Controla o acesso das entidades baseado na identidade do requisitante e nas regras de autorização; (SANDHU, 1994) - Definidas para cada entidade, ou grupo de entidades, sobre cada objeto do sistema que a entidade tem acesso; Cada requisição de acesso do requisitante é verificada sobre cada regra de autorização definida; Autorizações são definidas em listas de controle de acesso (LCA), localizadas junto ao objeto protegido. Modelos de Controle de Acesso Modelo Discricionário (DAC) Segundo Joshi (2001), esse tipo de modelo considera que o objeto protegido pertence a uma entidade do sistema, a qual tem direito de definir ou revogar autorizações para outras entidades, ou grupo de entidades; Suporta autorizações positivas ou negativas; Define permissões; Define bloqueios; Modelos de Controle de Acesso Modelo Discricionário (DAC) Modelo fechado ou aberto; Baseados em autorizações positivas explicitamente especificadas, caso nenhuma autorização explicita seja encontrada o acesso é bloqueado; Autorizações negativas explicitamente especificadas. Acesso liberado se nenhum bloqueio for especificado. Autorizações devem ser especificadas para cada entidade (ou grupo) e para cada objeto do sistema; Combinação dos tipos de autorização permite a especificação de permissão ou bloqueio; Modelos de Controle de Acesso Modelo Obrigatório (MAC) Origem na área militar e de segurança nacional; Controle de acesso baseado na classificação de entidade e objetos no sistema; Um nível de segurança é atribuído a cada entidade e objeto no sistema; Reflete a confiança de que a entidade não revelará informações confidenciais a entidades não autorizadas; Quão crítica é a segurança da informação mantida pelo objeto; Tem como objetivo controlar o fluxo de informações, de forma a garantir a confidencialidade e integridade da informação. Modelos de Controle de Acesso Modelo Obrigatório (MAC) Níveis de Segurança Máxima (MA) Média (ME) Baixa (BA) Sem Restrições (SR) • Um NS domina seu nível e todos os níveis abaixo na hierarquia; • Como é garantido a confidencialidade? Modelos de Controle de Acesso Modelo Obrigatório (MAC) Mecanismo de segurança em multi-níveis - Bell-LaPadula; Utiliza regras de bloqueio de leitura para objetos com níveis de segurança acima do nível do requisitante e bloqueio de escrita para objetos com níveis de segurança abaixo do nível do requisitante. Garantir que informações não fluam de um nível de segurança mais alto para um nível de segurança mais baixo; Se sobrescrever dados em objetos de nível mais elevado? Modelos de Controle de Acesso Modelo Obrigatório (MAC) • Nível de segurança atribuído ao objeto relativo à integridade está associado ao grau de confiança que pode ser depositado na informação armazenada, ou de outra forma o potencial dano que poderia ser causado por uma modificação não autorizada; • Como garantir a integridade? Níveis de Integridade Essencial (E) Importante (I) Desnecessária (D) Modelos de Controle de Acesso Modelo Obrigatório (MAC) Não é permitir o fluxo de informações de baixa garantia de integridade para objetos que precisam de alta garantia de integridade; Não proteger o sistema de atividades maliciosas executadas por entidades autênticas, mas sim proteger o sistema de atividades maliciosas que possam ser executados pelas aplicações utilizadas por essas entidades; Simple Distributed Security Infrastructure SDSI foi proposto em 1996 por Lampson e Rivest; Espaço de nomes descentralizados; proprietário de cada chave pública poderia criar um espaço de nomes local relativo a esta chave; poderiam ser conectados de uma maneira flexível a fim de possibilitar a criação de cadeias de autorização e definir grupos de principals autorizados; Simple Public Key Infrastruture SPKI; Modelo de autorização simples e flexivel; Bem definido e de fácil implementação; Identificar keyholders através de uma chave pública (ou hash desta chave) e então vincular autorizações a ela; Uso de namespaces locais; Motivação para desenvolver SDSI e SPKI: complexidade e falta de flexibilidade da ICP baseadas em hierarquias de nomes globais, como o X.509; SPKI/SDSI União do SDSI e SPKI em 1997 – SPKI/SDSI; Sistema de autenticação e autorização para aplicações distribuídas; Principal é representado por uma chave pública e não por um indivíduo; Chave pública é mais estável que um nome; Segundo Elien (1998) é extremamente improvável devido a chaves de 1024 bit – aproximadamente 309 dígitos; Na década de 90 foi formado na IETF o grupo de trabalho SPKI; Organização que desenvolve padrões para transferência de informação na internet – RFC 3160; Refinamento e evolução do SPKI; SPKI/SDSI SPKI/SDSI utiliza-se um local name space associado a cada chave pública; Nome local é um par composto por uma chave pública e um identificador. Ex. kx Thiago Nomes locais em diferentes espaços de nomes são independentes entre si, mesmo que utilizem o mesmo identificador; Proprietário da chave pública é quem decide que tipo de identificador ele deseja utilizar para atribuir nomes no seu espaço local; nomes de pessoas, apelidos, números de telefones, funções organizacionais ou nomes de grupos; SPKI/SDSI Exemplo chaves públicas no SPKI/SDSI: SPKI/SDSI – name certs Certificados de nome – name certs; Publicar nomes locais, permitindo assim que outros principais possam chegar à chave pública do nome definido localmente; Pode associar um nome à uma chave pública, a outro nome dentro do espaço de nomes local do próprio emissor, ou ainda, a outro certificado de nome em um espaço de nomes de outro principal, formando assim as correntes de certificados. SPKI/SDSI – name certs Estrutura assinada pela chave privada do emissor e representada por (I, N, S, V): Issuer (I): chave pública do emissor, que assina o certificado com a respectiva chave privada. Name (N): identificador que justamente com a chave do emissor define o nome local “ks Alice”, que pertence ao espaço de nomes local da chave ks. Subject (S): é o sujeito (identificado por uma chave ou um nome) representado pelo nome local “ks Alice”. Validity dates (V): é a especificação de validade do certificado na forma (T1, T2), representando que o certificado é válido do tempo T1 até o tempo. SPKI/SDSI – name certs Representação de um name cert: Milanez, 2003. SPKI/SDSI – name certs A divulgação de nomes no SPKI/SDSI pode ser feita através de redes de confiança formadas por certificados de nomes ligados por encadeamento de referências. Para efeitos de autorização, estas correntes de nomes devem ser reduzidas a uma chave pública a qual representa o principal que está sendo referenciado; “KeN -> S”, onde Ke é a chave do emissor “e”, “N” é o nome que foi definido dentro do espaço de nomes local de Ke, e “S” representa o sujeito, o qual será referenciado pelo nome “N”; SPKI/SDSI – auth cert Certificados de autorização – auth cert; Associar autorizações a um nome ou a uma chave. O emissor delega permissões de acesso a outros principais no sistema. Estrutura da forma (I, S, D, A, V): Issuer (I): é a chave pública do emissor (issuer) que assina o certificado. O emissor é quem concede a autorização. Subject (S): é um nome ou chave pública que representa o sujeito beneficiário da autorização. Delegation (D): é o bit de delegação que quando assinalado como verdadeiro garante ao sujeito permissão para delegar a autorização que está recebendo. Authorization (A): é a especificação de autorização que define as permissões que estão sendo concedidas pelo emissor para o sujeito. Validity dates (V): é a especificação de validade do certificado na forma (T1, T2), representando que o certificado é válido do tempo T1 até o tempo T2. SPKI/SDSI – auth cert Representação de um auth cert: Milanez, 2003. SPKI/SDSI – auth cert Um certificado de autorização não invalida outros, sendo, portanto o seu efeito cumulativo. Como não existem certificados negativos, uma permissão concedida permanece válida até que os certificados envolvidos expirem ou tornem-se inválidos. Em SPKI/SDSI os certificados de autorização e de nomes se integram da seguinte maneira: enquanto os name certs são utilizados para vincular nomes simbólicos às chaves públicas (ou outros nomes), os auth certs são responsáveis por autorizar operações a elas. SPKI/SDSI – auth cert Uma das principais características da SPKI é a possibilidade de delegação de autorizações presente nos certificados de autorização. campo delegação é do tipo booleano e tem a função de permitir que a autorização concedida por um principal A para um principal B através de um certificado possa ser repassada total ou parcialmente a um principal C (assim como o poder de delegação), desde que o certificado emitido para B contenha o bit de delegação com o valor verdadeiro. Caso um principal possua um certificado que lhe conceda uma determinada autorização, mas com o bit de delegação com valor falso, este não poderá delegar a autorização recebida para outro principal. SPKI/SDSI – auth cert Representação de Delegação de autorização: SPKI/SDSI – auth cert Threshold Subjects: Utilizado somente nos auth certs; Provê tolerância a faltas através do TS; Determina que K dentre N sujeitos devem assinar um pedido ou uma delegação, para que o mesmo seja válido; Chave pública, nome, grupo; Número mínimo de sujeitos assinem uma delegação para que a mesma seja considerada válida; SPKI/SDSI – auth cert Três situações de uso do Threshold Subject: Delegação de direitos x Lista de controle de acesso Sistema prático dirigido ao problema de assegurar que um usuário esteja autorizado a executar uma ação e não ao problema de primeiro identificar o usuário; Permite maior flexibilidade no compartilhamento de recursos através das delegações, indo em contraste com os sistemas de autenticação baseados em infra-estruturas convencionais de chaves públicas juntamente com autorização através de LCA convencionais, construídas a partir de nomes de principais; Infra-estrutura convencional de chaves públicas; Delegação de direitos x Lista de controle de acesso No SPKI não existe AC, e cada principal está apto a emitir um certificado de autorização, podendo então o próprio servidor S emitir um certificado de autorização para o principal U e assim o uso da LCA torna-se desnecessário, já que no momento do acesso U informa os certificados delegados necessários que possui, e com isto basta ao servidor verificar a autenticidade do pedido e os direitos que este possui. Revogação de Direitos Certificados SPKI/SDSI e as entradas nas LCA, possuem um campo opcional que determina o período de validade dos mesmo; Proporciona outros meios para garantir a validade dos certificados/entrada através de “verificações on-line”; Lista de Certificados Revogados – LCR’s. LCR’s invalidam certificados antes de suas datas de expiração; Comprometimento da chave, a qual o certificado faz referência; Revogação de Direitos LCR’s não resolve por completo o problema a qual foram designadas, pois o considerável e variável atraso entre o emissor da LCR que deseja notificar a revogação de algum certificado e seus clientes/servidores invalidariam o uso das mesmas; Segundo Gerck (2000), TLS/SSL estão próximas do desuso completo as LCR’s; Que medida tomar para revogação de direitos? Revogação de Direitos Segundo Rivest (1998), emissão de certificados SPKI/SDSI com um curto período de vida; Controle de Acesso Baseado em Credencial - Aplicação Controle de acesso baseado em credenciais para aplicações em serviços web semânticos; Agarwal, Sprick e Wortmann; Ambiente aberto, distribuído, descentralizado, dinâmico e interoperável; Garantia autônoma de direitos de acesso e tomadas de decisão baseados em estruturas de confiança independentes; DAML’S – Darpa Agent Markup Language; Linguagem para definição de ontologias; Controle de Acesso Baseado em Credencial - Aplicação SPKI/SDSI; Infra-estrutura de chaves públicas simples, com suporte a certificados de delegação de autoridade e possibilidade de utilizar um espaço de nomes independentes (não global) para certificados; Modelo definido com o uso de ontologias; Especificação formal de termos em um domínio e as relações entre eles (GRUBER,1993), estabelecendo uma linguagem comum para a troca de conhecimento; Controle de Acesso Baseado em Credencial - Aplicação Define uma ontologia para serviços, credenciais e LCA’s, sendo que, uma LCA está relacionada com credenciais através de uma condição de controle de acesso; Pré-condição para disparar o processo para utilização de serviços; Credenciais SPKI/SDSI são vinculadas à chave pública e não à identidade, permitindo a privacidade do usuário; Servidores podem emitir credenciais e definir sua estrutura de confiança de forma independente; Controle de Acesso Baseado em Credencial - Aplicação Baseado em autorização e não em autenticação; Posse da credencial e seus atributos é que define os direitos de acesso, não a identidade do possuidor da credencial; Conclusão Referência Elien, J.-E. (1998). Certificate discovery using SPKI/SDSI 2.0 certificates. Master’s thesis, MIT; Gerck, E. (2000). Overview of certification systems: X.509, CA, PGP and SPKI; GRUBER, T. R. – A Translation Approach to Portable Ontology Specification. Thecnical Report KSL 92-71, 1993. Knowledge System Laboratory, Computer Science Department Stanford University, Stanford, California, USA, 1993; JOSHI, J. B. D.; AREF, W. G.; GHAFOOR, A. and SPAFFORD, E. H. – Security Models for Web-based Applications. Communications of the ACM, February 2001, vol. 44, No. 2; Milanez, Marcello H. T. Uso de Cadeias de autorização SPKI na segurança de redes sem fio IEEE 802.11. Dissertação de Mestrado da Universidade Católica do Paraná. Curitiba, 2003; Neuman, B. C. (1994). Readings in Distributed Computing Systems, chapter Scale in distributed systems, pages 463– 489. IEEE Computer Society, Los Alamitos, CA; Referência Rivest, R. L. (1998). Can We Eliminate Certificate Revocations Lists? In Financial Cryptography, pages 178– 183; SANDHU, R., “Lattice-based access control models”. IEEE Computer, 26(11) 9-19, 1994; Venturini, Yeda R. MOS – Modelo Ontológico de Segurança para negociação de políticas de controle de acesso em Multidomínios. Tese de Doutorado. Escola Politécnica da Universidade de São paulo. São Paulo, 2006; Bibliografia P.Nikander, L.Viljanen, "Storing and Retrieving Internet Certificates", in: S.Knapskog, T.Brekne, Proceedings of the Third Nordic Workshop on Secure IT Systems, Trondheim, 5-6 November, 1998, http://www.tcm.hut.fi/~pnr/publications/Nordsec-98.pdf; Tuomas Aura, Carl Ellison, "Privacy and Accountability in Certificate Systems", Research Report A61, Laboratory for Theoretical Computer Science, Helsinki University of Technology, Espoo, Finland, April 2000, http://saturn.hut.fi/Publications/papers/aura/HUT-TCS-A61.pdf; Mello, Emerson R. “Um tutorial sobre SPKI/SDSI Simple Public Key Infrastructure/Simple Distributed Security Infrastructure”, Dep. De Automação e Sistemas, Universidade Federal de Santa Catarina;