470 likes | 588 Views
Tópicos em Sistemas Distribuídos e redes: Privacidade e Personalização. Universidade Federal de São Carlos Programa de Pós-Graduaçã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
E N D
Tópicos em Sistemas Distribuídos e redes: Privacidade e Personalização Universidade Federal de São CarlosPrograma de Pós-GraduaçãoAcesso a Sistema Anônimo com Controle de Acesso Baseado em CredenciaisAluno: Thiago de Medeiros GualbertoProfessor: 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 AcessoConceitos 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 AcessoConceitos 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 AcessoConceitos 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 AcessoConceitos 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 AcessoConceitos Básicos • Componentes envolvidos no controle de acesso: Veturini, 2006.
Modelos de Controle de AcessoModelo 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 AcessoModelo 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 AcessoModelo 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 AcessoModelo 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 AcessoModelo Obrigatório (MAC) • Um NS domina seu nível e todos os níveis abaixo na hierarquia; • Como é garantido a confidencialidade?
Modelos de Controle de AcessoModelo 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 AcessoModelo 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?
Modelos de Controle de AcessoModelo 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 Nsujeitos 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 principalU 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;
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;