Controlo de Acesso User O.S. Resources 1 Mecanismos de Controlo de Acesso Domínio de Protecção Conjunto de recursos que estão sujeitos ao mecanismo de controlo de acesso Estado da Protecção Informações do sistema relevantes para a protecção Matriz de Controlo de Acesso Modo de descrever precisamente o estado de protecção Uma matriz descreve os direitos dos sujeitos sobre os objectos Transições de estado mudam os elementos da matriz Pode ser simplificado: Tomando apenas a matriz-coluna ou matriz-linha Listas de Controlo de Acesso Listas de Capacidades (capabilities) 2
Matriz de Controlo de Acesso (ACM) O mecanismo da ACM (Access Control Matrix) é assim definido: Cada sujeito tem uma lista de objectos de um domínio de protecção que pode aceder; Cada objecto de um domínio de protecção tem uma lista de sujeitos que podem acedê-lo; Estas duas listas formam uma matriz onde cada entrada forma uma tripla <sujeito, objecto, direitos> Onde:» Sujeito é o Id de um utilizador ou processo;» Objecto é o Id de um recurso do domínio de protecção;» Direitos é o conjunto dos direitos de acesso ao objecto cedidos a esse sujeito; A ACM é protegida pelo sistema contra modificações não autorizadas Isto é, tem de correr numa TCB 3 Matriz de Controlo de Acesso s 1 objectos sujeitos o 1 o m s 1 s n sujeitos s 2 s n sujeitos S = { s 1,,s n } e objectos O = { o 1,,o m } entradas A[s i, o j ] R definem direitos R = { r 1,,r k } A[s i, o j ] = { r x,, r y } significa que o sujeito s i tem os direitos r x,, r y sobre o objecto o j Direitos usualmente são combinações do tipo rwd (read, write e delete) Direitos podem aplicar-se também a sujeitos Ex., A[s i, s k ] define os direitos de acesso de um sujeito s i a outro sujeito s k (ex. direitos de acesso de um processo a outro) 4
Exemplo de ACM Finance Person. Product. General Mgr r r r Finance Mgr rwcd --- r Product Mgr --- --- rw Algumas regras de projecto para criar regras de controlo de acesso visando protecção eficaz da informação: Regra do Privilégio Mínimo (least privilege rule): o general manager tem apenas direito de leitura a todos os objectos; ele não precisa ter direitos maiores para exercer sua função (estudar dados e tomar decisões). Regra da Necessidade de Saber (need-to-know rule): os outros managers têm direitos de acesso apenas sobre objectos relacionados com as suas funções; sujeitos devem ter acesso apenas aos objectos requeridas para que eles exerçam sua função. Um sujeito deve ter a menor quantidade de direitos sobre a menor quantidade de objectos necessários para que possa exercer suas funções 5 Lista de Controlo de Acesso (ACL) Mecanismo de controlo de acesso muito popular, usado em muitos sistemas operativos O mecanismo de ACL (Access Control List) é assim definido: Cada objecto tem uma lista (ACL) dos sujeitos que podem acedê-lo; Cada elemento dessa lista é um par <sujeito,direitos> onde:» Sujeito é o Id de um utilizador, processo ou grupo;» Direitos é o conjunto dos direitos de acesso a este objecto cedidos ao sujeito, usualmente uma máscara de bits Ex., xrwd no UNIX (execute, read, write e directory) As ACLs são protegidas contra modificações não autorizadas; Sujeitos com direitos similares sobre um objecto podem ser agrupados; O agrupamento pode levar a vulnerabilidades:» Esconde os direitos de acesso de sujeitos individuais» mínimo múltiplo comum pode levar a ceder direitos ao sujeito errado 6
Examplo de ACL Finance Person. Product. General Mgr r r r Finance Mgr rwcd --- r Product Mgr --- --- rw As ACLs são colunas da matriz de controlo de acesso ACLs (definem que sujeitos acedem cada objecto e como o fazem): Finance: {(General Mgr, r), (Finance Mgr, rwcd)} Personnel: {(General Mgr, r)} Production: {(General Mgr, r),(finance Mgr, r),(production Mgr, rw)} 7 Lista de Capacidades (C-list) O mecanismo de C-list (Capability list) é assim definido: Cada sujeito tem uma lista (C-list) dos objectos que ele pode aceder; Cada elemento desta lista é uma capacidade, um par <objecto,direitos> Onde:» Objecto é o Id do recurso;» Direitos é o conjunto de direitos de acesso ao objecto cedidos ao sujeito, usualmente uma máscara de bits C-list deve ser protegida contra modificações não autorizadas ou forjamento:» Isto é feito através do uso de criptografia para prevenir que o sujeito forje sua lista de capacidades 10
Exemplo de C-list Finance Person. Product. General Mgr r r r Finance Mgr rwcd --- r Product Mgr --- --- rw As listas de capacidades são linhas da matriz de controlo de acesso C-Lists (definem que objectos cada sujeito pode aceder, e como o faz): General Mgr : {(Finance, r), (Personnel, r), (Production, r)} Finance Mgr : {(Finance, rwcd), (Production, r)} Product Mgr : {(Production, rw)} 11 C-lists vs. ACLs Qual é melhor na prática? Considere 2 questões alternativas: 1. Dado um sujeito, que objectos ele pode aceder e como? 2. Dado um objecto, que sujeitos podem acedê-lo e como? ACLs respondem facilmente à segunda questão C-Lists respondem facilmente à primeira Razões para a predominância actual das ACLs: Questão 2 era considerada mais importante no passado Era complicado usar criptografia regularmente no SO 15
Tipos de Políticas de Controlo de Acesso Como preencher as tabelas de controlo de acesso? São precisas regras Elas definem que objectos os sujeitos ou grupos de sujeitos podem aceder, e de que maneira podem fazê-lo O conjunto dessas regras é chamado política de controlo de acesso Tipos de políticas de controlo de acesso: Controlo de Acesso Discricionário (DACC)» Utilizadores do sistema definem os mecanismos de controlo de acesso para permitir ou negar acesso a um objecto Controlo de Acesso Imperativo (MACC)» Mecanismos do sistema controlam acessos a um objecto, um utilizador individual não pode alterar os direitos de acesso 16 Controlo de Acesso Discricionário (DACC) Um sujeito pode dar os direitos de acesso que quiser a quem quiser sobre os objectos que ele criou ou controla Numa política DACC, os direitos de acesso r para um objecto o cedidos a um sujeito s dependem apenas da estratégia ad hoc F do administrador ou proprietário de o em relação a s, decidido geralmente caso a caso Políticas DACC definidas por F podem mudar dinamicamente Esta é a política de controlo de acesso concretizada pela maioria dos sistemas operativos e de gestão bases de dados disponíveis Uma DACC é qualquer função de um sujeito s e um objecto o: DACC : F(s,o) = < s,o,r > 17
Controlo de Acesso Imperativo (MACC) Numa política MACC não é permitido aos utilizadores mudar os direitos de acesso dos objectos, mesmo que eles sejam seus proprietários, se isto for contra a política de controlo de acesso definida no sistema Cada sujeito ou objecto precisa ter uma classe ou etiqueta de segurança estática Os direitos de acesso r cedidos ao sujeito s com a classe de segurança C(s) sobre o objecto o com classe de segurança C(o), depende unicamente da estratégia estática F, que é uma função determinista que tem como entrada as duas classes de segurança, e não o sujeito e o objecto em particular Este tipo de política era geralmente usado em sistemas de alta segurança (ex. militares), mas começa a penetrar nos sistemas comerciais MACC é uma função das classes de segurança do sujeito s e do objecto o: MACC : F(C(s),C(o)) = < s,o,r > 18 RECAP: Política de Segurança Mecanismo de Controlo de Acesso ACM (modelo teórico) ACL (a mais usada nos SOs) C-List (útil em sistemas distribuídos) Política de controlo de acesso Discricionário (usada nos SOs e bases de dados normais ) Imperativo (usada em sistemas militares e governamentais, e progressivamente em sistemas críticos comerciais) Política de Segurança Conjunto de regras de alto nível para um sistema computacional que define, entre outras coisas:» Política de controlo de acesso» Mecanismos de controlo de acesso 19
Comunicação Segura 20 Canais Seguros Comunicação Segura Envelopes Seguros 21
O que é um canal seguro? Três propriedades fundamentais: Autenticidade O que B recebe foi enviado por A, que não pode negar que enviou Confidencialidade Apenas B lê o que A enviou Integridade O que A envia não pode ser alterado sem ser detectado por B 22 Concretização de Comunicação Segura Com criptografia simétrica: Em primeiro lugar existe o problema da geração/distribuição da chave partilhada; a autenticação requer uma terceira parte confiável Uma vez esse problema resolvido, e existindo a chave partilhada, é fácil fornecer confidencialidade, autenticidade e integridade:» Confidencialidade É obtida através do uso de uma cifra simétrica para esconder o conteúdo da mensagem de terceiros que não tenham a chave partilhada» Autenticidade É conseguida através do uso de MACs que só podem ser gerados/verificados por quem tem a chave partilhada» Integridade Vem de borla com o MAC: se a mensagem for modificada, a verificação do MAC falha» Verificação da autenticidade ou integridade só tem significado para os extremos, não para terceiros, porquê? 23
Concretização de Comunicação Segura Com criptografia assimétrica: Confidencialidade:» Emissor A cifra a mensagem com a chave pública de B e envia;» Receptor B decifra a mensagem com sua chave privada. Autenticidade:» Emissor A assina a mensagem com sua chave privada;» Receptor B verifica a mensagem com a chave pública de A. Confidencialidade e Autenticidade:» Emissor A assina a mensagem com sua chave privada e a cifra com a chave pública do receptor B;» O receptor B decifra a mensagem com sua chave privada e verifica a assinatura usando a chave pública de A. Integridade:» Vem de borla com os algoritmo usados: modificações na mensagem em trânsito causam uma falha na verificação da assinatura na mensagem. 24